@simplysm/core-common 13.0.99 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/common.types.d.ts +14 -14
  2. package/dist/common.types.js +2 -1
  3. package/dist/common.types.js.map +1 -6
  4. package/dist/env.d.ts +5 -0
  5. package/dist/env.d.ts.map +1 -1
  6. package/dist/env.js +12 -8
  7. package/dist/env.js.map +1 -6
  8. package/dist/errors/argument-error.d.ts +10 -10
  9. package/dist/errors/argument-error.d.ts.map +1 -1
  10. package/dist/errors/argument-error.js +31 -14
  11. package/dist/errors/argument-error.js.map +1 -6
  12. package/dist/errors/not-implemented-error.d.ts +8 -8
  13. package/dist/errors/not-implemented-error.js +30 -12
  14. package/dist/errors/not-implemented-error.js.map +1 -6
  15. package/dist/errors/sd-error.d.ts +10 -10
  16. package/dist/errors/sd-error.d.ts.map +1 -1
  17. package/dist/errors/sd-error.js +45 -24
  18. package/dist/errors/sd-error.js.map +1 -6
  19. package/dist/errors/timeout-error.d.ts +10 -10
  20. package/dist/errors/timeout-error.js +34 -15
  21. package/dist/errors/timeout-error.js.map +1 -6
  22. package/dist/extensions/arr-ext.d.ts +2 -2
  23. package/dist/extensions/arr-ext.helpers.d.ts +10 -10
  24. package/dist/extensions/arr-ext.helpers.js +112 -89
  25. package/dist/extensions/arr-ext.helpers.js.map +1 -6
  26. package/dist/extensions/arr-ext.js +458 -422
  27. package/dist/extensions/arr-ext.js.map +1 -6
  28. package/dist/extensions/arr-ext.types.d.ts +57 -57
  29. package/dist/extensions/arr-ext.types.d.ts.map +1 -1
  30. package/dist/extensions/arr-ext.types.js +6 -1
  31. package/dist/extensions/arr-ext.types.js.map +1 -6
  32. package/dist/extensions/map-ext.d.ts +16 -16
  33. package/dist/extensions/map-ext.js +27 -22
  34. package/dist/extensions/map-ext.js.map +1 -6
  35. package/dist/extensions/set-ext.d.ts +11 -11
  36. package/dist/extensions/set-ext.js +32 -25
  37. package/dist/extensions/set-ext.js.map +1 -6
  38. package/dist/features/debounce-queue.d.ts +17 -17
  39. package/dist/features/debounce-queue.js +98 -70
  40. package/dist/features/debounce-queue.js.map +1 -6
  41. package/dist/features/event-emitter.d.ts +20 -20
  42. package/dist/features/event-emitter.js +101 -78
  43. package/dist/features/event-emitter.js.map +1 -6
  44. package/dist/features/serial-queue.d.ts +11 -11
  45. package/dist/features/serial-queue.js +78 -57
  46. package/dist/features/serial-queue.js.map +1 -6
  47. package/dist/globals.d.ts +4 -4
  48. package/dist/globals.js +9 -1
  49. package/dist/globals.js.map +1 -6
  50. package/dist/index.js +28 -27
  51. package/dist/index.js.map +1 -6
  52. package/dist/types/date-only.d.ts +64 -64
  53. package/dist/types/date-only.d.ts.map +1 -1
  54. package/dist/types/date-only.js +263 -252
  55. package/dist/types/date-only.js.map +1 -6
  56. package/dist/types/date-time.d.ts +36 -36
  57. package/dist/types/date-time.d.ts.map +1 -1
  58. package/dist/types/date-time.js +196 -288
  59. package/dist/types/date-time.js.map +1 -6
  60. package/dist/types/lazy-gc-map.d.ts +26 -26
  61. package/dist/types/lazy-gc-map.d.ts.map +1 -1
  62. package/dist/types/lazy-gc-map.js +202 -159
  63. package/dist/types/lazy-gc-map.js.map +1 -6
  64. package/dist/types/time.d.ts +23 -23
  65. package/dist/types/time.d.ts.map +1 -1
  66. package/dist/types/time.js +169 -158
  67. package/dist/types/time.js.map +1 -6
  68. package/dist/types/uuid.d.ts +11 -11
  69. package/dist/types/uuid.d.ts.map +1 -1
  70. package/dist/types/uuid.js +95 -70
  71. package/dist/types/uuid.js.map +1 -6
  72. package/dist/utils/bytes.d.ts +17 -17
  73. package/dist/utils/bytes.js +137 -81
  74. package/dist/utils/bytes.js.map +1 -6
  75. package/dist/utils/date-format.d.ts +40 -40
  76. package/dist/utils/date-format.js +187 -101
  77. package/dist/utils/date-format.js.map +1 -6
  78. package/dist/utils/error.d.ts +4 -4
  79. package/dist/utils/error.js +11 -6
  80. package/dist/utils/error.js.map +1 -6
  81. package/dist/utils/json.d.ts +19 -19
  82. package/dist/utils/json.js +187 -135
  83. package/dist/utils/json.js.map +1 -6
  84. package/dist/utils/num.d.ts +20 -20
  85. package/dist/utils/num.js +76 -34
  86. package/dist/utils/num.js.map +1 -6
  87. package/dist/utils/obj.d.ts +111 -111
  88. package/dist/utils/obj.d.ts.map +1 -1
  89. package/dist/utils/obj.js +706 -496
  90. package/dist/utils/obj.js.map +1 -6
  91. package/dist/utils/path.d.ts +10 -10
  92. package/dist/utils/path.js +35 -18
  93. package/dist/utils/path.js.map +1 -6
  94. package/dist/utils/primitive.d.ts +5 -5
  95. package/dist/utils/primitive.js +34 -14
  96. package/dist/utils/primitive.js.map +1 -6
  97. package/dist/utils/str.d.ts +38 -38
  98. package/dist/utils/str.js +217 -113
  99. package/dist/utils/str.js.map +1 -6
  100. package/dist/utils/template-strings.d.ts +26 -26
  101. package/dist/utils/template-strings.js +113 -40
  102. package/dist/utils/template-strings.js.map +1 -6
  103. package/dist/utils/transferable.d.ts +18 -18
  104. package/dist/utils/transferable.js +218 -151
  105. package/dist/utils/transferable.js.map +1 -6
  106. package/dist/utils/wait.d.ts +9 -9
  107. package/dist/utils/wait.js +30 -15
  108. package/dist/utils/wait.js.map +1 -6
  109. package/dist/utils/xml.d.ts +13 -13
  110. package/dist/utils/xml.js +84 -46
  111. package/dist/utils/xml.js.map +1 -6
  112. package/dist/utils/zip.d.ts +22 -22
  113. package/dist/utils/zip.js +172 -148
  114. package/dist/utils/zip.js.map +1 -6
  115. package/package.json +5 -7
  116. package/src/common.types.ts +14 -14
  117. package/src/env.ts +9 -1
  118. package/src/errors/argument-error.ts +15 -15
  119. package/src/errors/not-implemented-error.ts +9 -9
  120. package/src/errors/sd-error.ts +12 -12
  121. package/src/errors/timeout-error.ts +12 -12
  122. package/src/extensions/arr-ext.helpers.ts +16 -16
  123. package/src/extensions/arr-ext.ts +35 -35
  124. package/src/extensions/arr-ext.types.ts +57 -57
  125. package/src/extensions/map-ext.ts +16 -16
  126. package/src/extensions/set-ext.ts +11 -11
  127. package/src/features/debounce-queue.ts +23 -23
  128. package/src/features/event-emitter.ts +25 -25
  129. package/src/features/serial-queue.ts +13 -13
  130. package/src/globals.ts +4 -4
  131. package/src/index.ts +5 -5
  132. package/src/types/date-only.ts +84 -83
  133. package/src/types/date-time.ts +43 -42
  134. package/src/types/lazy-gc-map.ts +44 -44
  135. package/src/types/time.ts +29 -29
  136. package/src/types/uuid.ts +15 -15
  137. package/src/utils/bytes.ts +35 -35
  138. package/src/utils/date-format.ts +59 -59
  139. package/src/utils/error.ts +4 -4
  140. package/src/utils/json.ts +41 -41
  141. package/src/utils/num.ts +20 -20
  142. package/src/utils/obj.ts +138 -138
  143. package/src/utils/path.ts +10 -10
  144. package/src/utils/primitive.ts +6 -6
  145. package/src/utils/str.ts +48 -48
  146. package/src/utils/template-strings.ts +29 -29
  147. package/src/utils/transferable.ts +38 -38
  148. package/src/utils/wait.ts +10 -10
  149. package/src/utils/xml.ts +19 -19
  150. package/src/utils/zip.ts +25 -25
  151. package/README.md +0 -160
  152. package/docs/errors.md +0 -119
  153. package/docs/extensions.md +0 -387
  154. package/docs/features.md +0 -143
  155. package/docs/types.md +0 -287
  156. package/docs/utils.md +0 -757
  157. package/tests/errors/errors.spec.ts +0 -80
  158. package/tests/extensions/array-extension.spec.ts +0 -654
  159. package/tests/extensions/map-extension.spec.ts +0 -117
  160. package/tests/extensions/set-extension.spec.ts +0 -67
  161. package/tests/types/date-only.spec.ts +0 -533
  162. package/tests/types/date-time.spec.ts +0 -246
  163. package/tests/types/lazy-gc-map.spec.ts +0 -606
  164. package/tests/types/time.spec.ts +0 -428
  165. package/tests/types/uuid.spec.ts +0 -74
  166. package/tests/utils/bytes-utils.spec.ts +0 -197
  167. package/tests/utils/date-format.spec.ts +0 -350
  168. package/tests/utils/debounce-queue.spec.ts +0 -226
  169. package/tests/utils/json.spec.ts +0 -400
  170. package/tests/utils/number.spec.ts +0 -136
  171. package/tests/utils/object.spec.ts +0 -810
  172. package/tests/utils/path.spec.ts +0 -70
  173. package/tests/utils/primitive.spec.ts +0 -43
  174. package/tests/utils/sd-event-emitter.spec.ts +0 -189
  175. package/tests/utils/serial-queue.spec.ts +0 -305
  176. package/tests/utils/string.spec.ts +0 -265
  177. package/tests/utils/template-strings.spec.ts +0 -48
  178. package/tests/utils/transferable.spec.ts +0 -639
  179. package/tests/utils/wait.spec.ts +0 -123
  180. package/tests/utils/xml.spec.ts +0 -146
  181. package/tests/utils/zip.spec.ts +0 -221
@@ -1,66 +1,87 @@
1
+ /**
2
+ * 비동기 직렬 큐
3
+ *
4
+ * 큐에 추가된 함수들은 순차적으로 실행됨.
5
+ * 하나의 작업이 완료된 후에야 다음 작업이 시작됨.
6
+ * 에러가 발생해도 후속 작업은 계속 실행됨.
7
+ *
8
+ * @example
9
+ * const queue = new SerialQueue();
10
+ * queue.run(async () => { await fetch("/api/1"); });
11
+ * queue.run(async () => { await fetch("/api/2"); }); // 1 완료 후 실행
12
+ * queue.run(async () => { await fetch("/api/3"); }); // 2 완료 후 실행
13
+ *
14
+ * @example
15
+ * // 에러 처리
16
+ * queue.on("error", (err) => console.error(err));
17
+ */
1
18
  import { SdError } from "../errors/sd-error.js";
2
19
  import { EventEmitter } from "./event-emitter.js";
3
20
  import consola from "consola";
4
21
  import { time } from "../utils/wait.js";
5
- class SerialQueue extends EventEmitter {
6
- /**
7
- * @param _gap Gap between each task (ms)
8
- */
9
- constructor(_gap = 0) {
10
- super();
11
- this._gap = _gap;
12
- }
13
- static _logger = consola.withTag("SerialQueue");
14
- _queue = [];
15
- _isQueueRunning = false;
16
- /**
17
- * Clear pending queue (currently executing task will complete)
18
- */
19
- dispose() {
20
- this._queue.length = 0;
21
- super.dispose();
22
- }
23
- /**
24
- * Supports using statement
25
- */
26
- [Symbol.dispose]() {
27
- this.dispose();
28
- }
29
- /**
30
- * Add a function to the queue and execute it
31
- */
32
- run(fn) {
33
- this._queue.push(fn);
34
- void this._process();
35
- }
36
- async _process() {
37
- if (this._isQueueRunning) return;
38
- this._isQueueRunning = true;
39
- try {
40
- while (this._queue.length > 0) {
41
- const fn = this._queue.shift();
42
- if (!fn) break;
22
+ export class SerialQueue extends EventEmitter {
23
+ _gap;
24
+ static _logger = consola.withTag("SerialQueue");
25
+ _queue = [];
26
+ _isQueueRunning = false;
27
+ /**
28
+ * @param _gap 작업 사이의 간격 (ms)
29
+ */
30
+ constructor(_gap = 0) {
31
+ super();
32
+ this._gap = _gap;
33
+ }
34
+ /**
35
+ * 대기 중인 큐 비우기 (현재 실행 중인 작업은 완료됨)
36
+ */
37
+ dispose() {
38
+ this._queue.length = 0;
39
+ super.dispose();
40
+ }
41
+ /**
42
+ * using 문 지원
43
+ */
44
+ [Symbol.dispose]() {
45
+ this.dispose();
46
+ }
47
+ /**
48
+ * 큐에 함수를 추가하고 실행
49
+ */
50
+ run(fn) {
51
+ this._queue.push(fn);
52
+ void this._process();
53
+ }
54
+ async _process() {
55
+ if (this._isQueueRunning)
56
+ return;
57
+ this._isQueueRunning = true;
43
58
  try {
44
- await fn();
45
- } catch (err) {
46
- const error = err instanceof Error ? err : new Error(String(err));
47
- const sdError = new SdError(error, "Error occurred while executing queue task");
48
- if (this.listenerCount("error") > 0) {
49
- this.emit("error", sdError);
50
- } else {
51
- SerialQueue._logger.error(sdError);
52
- }
59
+ while (this._queue.length > 0) {
60
+ const fn = this._queue.shift();
61
+ if (!fn)
62
+ break;
63
+ try {
64
+ await fn();
65
+ }
66
+ catch (err) {
67
+ const error = err instanceof Error ? err : new Error(String(err));
68
+ const sdError = new SdError(error, "큐 작업 실행 중 오류 발생");
69
+ // 리스너가 있으면 이벤트로 발행, 없으면 로그 출력
70
+ if (this.listenerCount("error") > 0) {
71
+ this.emit("error", sdError);
72
+ }
73
+ else {
74
+ SerialQueue._logger.error(sdError);
75
+ }
76
+ }
77
+ if (this._gap > 0 && this._queue.length > 0) {
78
+ await time(this._gap);
79
+ }
80
+ }
53
81
  }
54
- if (this._gap > 0 && this._queue.length > 0) {
55
- await time(this._gap);
82
+ finally {
83
+ this._isQueueRunning = false;
56
84
  }
57
- }
58
- } finally {
59
- this._isQueueRunning = false;
60
85
  }
61
- }
62
86
  }
63
- export {
64
- SerialQueue
65
- };
66
- //# sourceMappingURL=serial-queue.js.map
87
+ //# sourceMappingURL=serial-queue.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/features/serial-queue.ts"],
4
- "mappings": "AAiBA,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,OAAO,aAAa;AACpB,SAAS,YAAY;AAMd,MAAM,oBAAoB,aAAgC;AAAA;AAAA;AAAA;AAAA,EAS/D,YAA6B,OAAe,GAAG;AAC7C,UAAM;AADqB;AAAA,EAE7B;AAAA,EAVA,OAAwB,UAAU,QAAQ,QAAQ,aAAa;AAAA,EAE9C,SAAyC,CAAC;AAAA,EACnD,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAYjB,UAAgB;AACvB,SAAK,OAAO,SAAS;AACrB,UAAM,QAAQ;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,CAAU,OAAO,OAAO,IAAU;AAChC,SAAK,QAAQ;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,IAAsC;AACxC,SAAK,OAAO,KAAK,EAAE;AACnB,SAAK,KAAK,SAAS;AAAA,EACrB;AAAA,EAEA,MAAc,WAA0B;AACtC,QAAI,KAAK,gBAAiB;AAC1B,SAAK,kBAAkB;AAEvB,QAAI;AACF,aAAO,KAAK,OAAO,SAAS,GAAG;AAC7B,cAAM,KAAK,KAAK,OAAO,MAAM;AAC7B,YAAI,CAAC,GAAI;AAET,YAAI;AACF,gBAAM,GAAG;AAAA,QACX,SAAS,KAAK;AACZ,gBAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAChE,gBAAM,UAAU,IAAI,QAAQ,OAAO,2CAA2C;AAG9E,cAAI,KAAK,cAAc,OAAO,IAAI,GAAG;AACnC,iBAAK,KAAK,SAAS,OAAO;AAAA,UAC5B,OAAO;AACL,wBAAY,QAAQ,MAAM,OAAO;AAAA,UACnC;AAAA,QACF;AAEA,YAAI,KAAK,OAAO,KAAK,KAAK,OAAO,SAAS,GAAG;AAC3C,gBAAM,KAAK,KAAK,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,IACF,UAAE;AACA,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AACF;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"serial-queue.js","sourceRoot":"","sources":["../../src/features/serial-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMrC,MAAM,OAAO,WAAY,SAAQ,YAA+B;IASjC;IARrB,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,GAAmC,EAAE,CAAC;IACrD,eAAe,GAAG,KAAK,CAAC;IAEhC;;OAEG;IACH,YAA6B,OAAe,CAAC;QAC3C,KAAK,EAAE,CAAC;QADmB,SAAI,GAAJ,IAAI,CAAY;IAE7C,CAAC;IAED;;OAEG;IACM,OAAO;QACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACM,CAAC,MAAM,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAA8B;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,CAAC,EAAE;oBAAE,MAAM;gBAEf,IAAI,CAAC;oBACH,MAAM,EAAE,EAAE,CAAC;gBACb,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;oBAEtD,8BAA8B;oBAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC"}
package/dist/globals.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Whether development mode is enabled
2
+ * 개발 모드 활성화 여부
3
3
  *
4
- * Substituted at build time:
5
- * - Library build: Not substituted (kept as-is)
6
- * - Client/Server build: Substituted with `define: { '__DEV__': 'true/false' }`
4
+ * 빌드 시점에 치환됨:
5
+ * - 라이브러리 빌드: 치환되지 않음 (그대로 유지)
6
+ * - 클라이언트/서버 빌드: `define: { '__DEV__': 'true/false' }`로 치환
7
7
  */
8
8
  export {};
9
9
  declare global {
package/dist/globals.js CHANGED
@@ -1 +1,9 @@
1
- //# sourceMappingURL=globals.js.map
1
+ /**
2
+ * 개발 모드 활성화 여부
3
+ *
4
+ * 빌드 시점에 치환됨:
5
+ * - 라이브러리 빌드: 치환되지 않음 (그대로 유지)
6
+ * - 클라이언트/서버 빌드: `define: { '__DEV__': 'true/false' }`로 치환
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=globals.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,47 +1,48 @@
1
+ // @simplysm/core-common
2
+ // 공통 유틸리티 패키지
1
3
  import "./extensions/arr-ext.js";
2
4
  import "./extensions/set-ext.js";
3
5
  import "./extensions/map-ext.js";
4
6
  export * from "./env.js";
7
+ // arr-extension 재내보내기
5
8
  export * from "./extensions/arr-ext.js";
9
+ //#region errors
6
10
  export * from "./errors/sd-error.js";
7
11
  export * from "./errors/argument-error.js";
8
12
  export * from "./errors/not-implemented-error.js";
9
13
  export * from "./errors/timeout-error.js";
14
+ //#endregion
15
+ //#region types
10
16
  export * from "./types/uuid.js";
11
17
  export * from "./types/lazy-gc-map.js";
12
18
  export * from "./types/date-time.js";
13
19
  export * from "./types/date-only.js";
14
20
  export * from "./types/time.js";
21
+ //#endregion
22
+ //#region features
15
23
  export * from "./features/debounce-queue.js";
16
24
  export * from "./features/serial-queue.js";
17
25
  export * from "./features/event-emitter.js";
18
- import * as obj from "./utils/obj.js";
19
- import * as str from "./utils/str.js";
20
- import * as num from "./utils/num.js";
21
- import * as bytes from "./utils/bytes.js";
22
- import * as path from "./utils/path.js";
23
- import * as json from "./utils/json.js";
24
- import * as xml from "./utils/xml.js";
25
- import * as wait from "./utils/wait.js";
26
- import * as transfer from "./utils/transferable.js";
27
- import * as err from "./utils/error.js";
28
- import * as dt from "./utils/date-format.js";
29
- import * as primitive from "./utils/primitive.js";
26
+ //#endregion
27
+ //#region utils (네임스페이스 내보내기)
28
+ export * as obj from "./utils/obj.js";
29
+ export * as str from "./utils/str.js";
30
+ export * as num from "./utils/num.js";
31
+ export * as bytes from "./utils/bytes.js";
32
+ export * as path from "./utils/path.js";
33
+ export * as json from "./utils/json.js";
34
+ export * as xml from "./utils/xml.js";
35
+ export * as wait from "./utils/wait.js";
36
+ export * as transfer from "./utils/transferable.js";
37
+ export * as err from "./utils/error.js";
38
+ export * as dt from "./utils/date-format.js";
39
+ export * as primitive from "./utils/primitive.js";
40
+ //#endregion
41
+ //#region utils (직접 내보내기)
30
42
  export * from "./utils/template-strings.js";
31
43
  export * from "./utils/zip.js";
44
+ //#endregion
45
+ //#region 타입 유틸리티
32
46
  export * from "./common.types.js";
33
- export {
34
- bytes,
35
- dt,
36
- err,
37
- json,
38
- num,
39
- obj,
40
- path,
41
- primitive,
42
- str,
43
- transfer,
44
- wait,
45
- xml
46
- };
47
- //# sourceMappingURL=index.js.map
47
+ //#endregion
48
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts"],
4
- "mappings": "AAGA,OAAO;AACP,OAAO;AACP,OAAO;AAEP,cAAc;AAGd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAId,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAId,cAAc;AACd,cAAc;AACd,cAAc;AAId,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,YAAY,eAAe;AAI3B,cAAc;AACd,cAAc;AAId,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc;AAEd,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAE9B,cAAc,OAAO,CAAC;AAEtB,sBAAsB;AACtB,cAAc,sBAAsB,CAAC;AAErC,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,YAAY;AAEZ,eAAe;AACf,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,YAAY;AAEZ,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,YAAY;AAEZ,6BAA6B;AAC7B,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,YAAY;AAEZ,yBAAyB;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,YAAY;AAEZ,iBAAiB;AACjB,cAAc,gBAAgB,CAAC;AAC/B,YAAY"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Date class (without time: yyyy-MM-dd, immutable)
2
+ * 날짜 클래스 (시간 제외: yyyy-MM-dd, 불변)
3
3
  *
4
- * An immutable class that stores only the date without time information.
5
- * Operates based on local timezone.
4
+ * 시간 정보 없이 날짜만 저장하는 불변 클래스.
5
+ * 로컬 타임존 기준으로 동작함.
6
6
  *
7
7
  * @example
8
8
  * const today = new DateOnly();
@@ -12,38 +12,38 @@
12
12
  export declare class DateOnly {
13
13
  private static readonly MS_PER_DAY;
14
14
  readonly date: Date;
15
- /** Current time */
15
+ /** 현재 시간 */
16
16
  constructor();
17
- /** Initialize with year, month, day */
17
+ /** 년, 월, 일로 초기화 */
18
18
  constructor(year: number, month: number, day: number);
19
- /** Create from tick (millisecond) */
19
+ /** tick (밀리초)으로 생성 */
20
20
  constructor(tick: number);
21
- /** Create from Date type */
21
+ /** Date 타입으로 생성 */
22
22
  constructor(date: Date);
23
23
  /**
24
- * Parse a string into DateOnly
25
- * @param str Date string
26
- * @returns DateOnly instance
24
+ * 문자열을 DateOnly로 파싱
25
+ * @param str 날짜 문자열
26
+ * @returns DateOnly 인스턴스
27
27
  *
28
- * Supported formats:
29
- * - `yyyy-MM-dd` (e.g., '2024-01-15') - Extracted directly from string, timezone-independent
30
- * - `yyyyMMdd` (e.g., '20240115') - Extracted directly from string, timezone-independent
31
- * - ISO 8601 (e.g., '2024-01-15T00:00:00Z') - Interpreted as UTC, then converted to local timezone
28
+ * 지원 형식:
29
+ * - `yyyy-MM-dd` (예: '2024-01-15') - 문자열에서 직접 추출, 타임존 무관
30
+ * - `yyyyMMdd` (예: '20240115') - 문자열에서 직접 추출, 타임존 무관
31
+ * - ISO 8601 (예: '2024-01-15T00:00:00Z') - UTC 해석 로컬 타임존으로 변환
32
32
  *
33
- * @note For different server/client timezones, `yyyy-MM-dd` format is recommended
34
- * @note For DST regions when parsing ISO 8601 format, the offset of the parsing target date is used.
33
+ * @note 서버/클라이언트 타임존이 다른 경우 `yyyy-MM-dd` 형식 권장
34
+ * @note DST 지역에서 ISO 8601 형식 파싱 파싱 대상 날짜의 오프셋이 사용됨.
35
35
  */
36
36
  static parse(str: string): DateOnly;
37
37
  /**
38
- * Return the base year and month based on week information
39
- * @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
40
- * @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
41
- * @returns Base year and month of the week containing this date
38
+ * 주차 정보 기반으로 기준 연도와 반환
39
+ * @param weekStartDay 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
40
+ * @param minDaysInFirstWeek 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
41
+ * @returns 날짜가 포함된 주의 기준 연도와
42
42
  *
43
43
  * @example
44
- * // ISO 8601 standard (Monday start, first week minimum 4 days)
44
+ * // ISO 8601 표준 (월요일 시작, 최소 4)
45
45
  * new DateOnly(2024, 1, 1).getBaseYearMonthSeqForWeekSeq(1, 4)
46
- * // US style (Sunday start, first week minimum 1 day)
46
+ * // 미국식 (일요일 시작, 최소 1)
47
47
  * new DateOnly(2024, 1, 1).getBaseYearMonthSeqForWeekSeq(0, 1)
48
48
  */
49
49
  getBaseYearMonthSeqForWeekSeq(weekStartDay?: number, minDaysInFirstWeek?: number): {
@@ -51,23 +51,23 @@ export declare class DateOnly {
51
51
  monthSeq: number;
52
52
  };
53
53
  /**
54
- * Calculate the start date of the week based on week information
55
- * @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
56
- * @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
57
- * @returns Start date of the week containing this date
54
+ * 주차 정보 기반으로 해당 주의 시작 날짜 계산
55
+ * @param weekStartDay 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
56
+ * @param minDaysInFirstWeek 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
57
+ * @returns 날짜가 포함된 주의 시작 날짜
58
58
  */
59
59
  getWeekSeqStartDate(weekStartDay?: number, minDaysInFirstWeek?: number): DateOnly;
60
60
  /**
61
- * Return year and week sequence information
62
- * @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
63
- * @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
64
- * @returns Year and week number within that year
61
+ * 연도와 주차 정보 반환
62
+ * @param weekStartDay 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
63
+ * @param minDaysInFirstWeek 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
64
+ * @returns 해당 연도와 연도 내의 주차 번호
65
65
  *
66
66
  * @example
67
- * // ISO 8601 standard (Monday start, first week minimum 4 days)
67
+ * // ISO 8601 표준 (월요일 시작, 최소 4)
68
68
  * new DateOnly(2025, 1, 6).getWeekSeqOfYear(); // { year: 2025, weekSeq: 2 }
69
69
  *
70
- * // US style (Sunday start, first week minimum 1 day)
70
+ * // 미국식 (일요일 시작, 최소 1)
71
71
  * new DateOnly(2025, 1, 1).getWeekSeqOfYear(0, 1); // { year: 2025, weekSeq: 1 }
72
72
  */
73
73
  getWeekSeqOfYear(weekStartDay?: number, minDaysInFirstWeek?: number): {
@@ -75,16 +75,16 @@ export declare class DateOnly {
75
75
  weekSeq: number;
76
76
  };
77
77
  /**
78
- * Return year, month and week sequence information for the given date
79
- * @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
80
- * @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
81
- * @returns Year, month and week number within that month
78
+ * 해당 날짜의 연도, 월, 주차 정보 반환
79
+ * @param weekStartDay 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
80
+ * @param minDaysInFirstWeek 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
81
+ * @returns 연도, 월, 해당 내의 주차 번호
82
82
  *
83
83
  * @example
84
- * // ISO 8601 standard (Monday start, first week minimum 4 days)
84
+ * // ISO 8601 표준 (월요일 시작, 최소 4)
85
85
  * new DateOnly(2025, 1, 15).getWeekSeqOfMonth(); // { year: 2025, monthSeq: 1, weekSeq: 3 }
86
86
  *
87
- * // US style (Sunday start, first week minimum 1 day)
87
+ * // 미국식 (일요일 시작, 최소 1)
88
88
  * new DateOnly(2025, 1, 15).getWeekSeqOfMonth(0, 1); // { year: 2025, monthSeq: 1, weekSeq: 3 }
89
89
  */
90
90
  getWeekSeqOfMonth(weekStartDay?: number, minDaysInFirstWeek?: number): {
@@ -93,58 +93,58 @@ export declare class DateOnly {
93
93
  weekSeq: number;
94
94
  };
95
95
  /**
96
- * Get the start date of a week based on week information
97
- * @param arg Year, optional month, and week number
98
- * @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
99
- * @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
100
- * @returns Start date of the specified week
96
+ * 주차 정보 기반으로 해당 주의 시작 날짜 반환
97
+ * @param arg 연도, 선택적 월, 주차 번호
98
+ * @param weekStartDay 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
99
+ * @param minDaysInFirstWeek 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
100
+ * @returns 지정된 주의 시작 날짜
101
101
  *
102
102
  * @example
103
- * // Start date of week 2 in 2025 (ISO 8601 standard)
104
- * DateOnly.getDateByYearWeekSeq({ year: 2025, weekSeq: 2 }); // 2025-01-06 (Monday)
103
+ * // 2025년 2주차 시작 날짜 (ISO 8601 표준)
104
+ * DateOnly.getDateByYearWeekSeq({ year: 2025, weekSeq: 2 }); // 2025-01-06 (월요일)
105
105
  *
106
- * // Start date of week 3 in January 2025
107
- * DateOnly.getDateByYearWeekSeq({ year: 2025, month: 1, weekSeq: 3 }); // 2025-01-13 (Monday)
106
+ * // 2025년 1월 3주차 시작 날짜
107
+ * DateOnly.getDateByYearWeekSeq({ year: 2025, month: 1, weekSeq: 3 }); // 2025-01-13 (월요일)
108
108
  */
109
109
  static getDateByYearWeekSeq(arg: {
110
110
  year: number;
111
111
  month?: number;
112
112
  weekSeq: number;
113
113
  }, weekStartDay?: number, minDaysInFirstWeek?: number): DateOnly;
114
- /** Whether the date is set correctly */
114
+ /** 날짜가 올바르게 설정되었는지 여부 */
115
115
  get isValid(): boolean;
116
116
  get year(): number;
117
117
  get month(): number;
118
118
  get day(): number;
119
119
  get tick(): number;
120
- /** Day of week (Sunday~Saturday: 0~6) */
120
+ /** 요일 (일요일~토요일: 0~6) */
121
121
  get dayOfWeek(): number;
122
- /** Return new instance with specified year */
122
+ /** 지정된 연도로 인스턴스 반환 */
123
123
  setYear(year: number): DateOnly;
124
124
  /**
125
- * Return new DateOnly instance with specified month
126
- * @param month Month to set (1-12, out-of-range values are adjusted in year)
127
- * @note If current day is greater than target month's day count, it will be adjusted to last day of month
128
- * (e.g., setMonth(2) on Jan 31 Feb 28 or 29)
125
+ * 지정된 월로 DateOnly 인스턴스 반환
126
+ * @param month 설정할 (1-12, 범위 밖의 값은 연도에서 조정됨)
127
+ * @note 현재 일이 대상 월의 일수보다 크면 해당 월의 마지막 일로 조정됨
128
+ * (예: 1월 31일에서 setMonth(2) → 2월 28 또는 29)
129
129
  */
130
130
  setMonth(month: number): DateOnly;
131
131
  /**
132
- * Return new DateOnly instance with specified day
133
- * @param day Day to set
134
- * @note Days outside valid month range are automatically adjusted to next/previous month per JavaScript Date behavior
135
- * (e.g., day=32 in January February 1)
132
+ * 지정된 일로 DateOnly 인스턴스 반환
133
+ * @param day 설정할
134
+ * @note 유효한 범위를 벗어나는 일은 JavaScript Date 동작에 따라 자동으로 다음/이전 월로 조정됨
135
+ * (예: 1월에 day=32 → 2월 1)
136
136
  */
137
137
  setDay(day: number): DateOnly;
138
- /** Return new instance with specified years added */
138
+ /** 지정된 연수를 더한 인스턴스 반환 */
139
139
  addYears(years: number): DateOnly;
140
- /** Return new instance with specified months added */
140
+ /** 지정된 월수를 더한 인스턴스 반환 */
141
141
  addMonths(months: number): DateOnly;
142
- /** Return new instance with specified days added */
142
+ /** 지정된 일수를 더한 인스턴스 반환 */
143
143
  addDays(days: number): DateOnly;
144
144
  /**
145
- * Convert to string with specified format
146
- * @param format Format string
147
- * @see dtFormat for supported format strings
145
+ * 지정된 형식으로 문자열 변환
146
+ * @param format 형식 문자열
147
+ * @see dtFormat 지원되는 형식 문자열 참조
148
148
  */
149
149
  toFormatString(formatStr: string): string;
150
150
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"date-only.d.ts","sourceRoot":"","sources":["../../src/types/date-only.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAEzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,mBAAmB;;IAEnB,uCAAuC;gBAC3B,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IACpD,qCAAqC;gBACzB,IAAI,EAAE,MAAM;IACxB,4BAA4B;gBAChB,IAAI,EAAE,IAAI;IAiBtB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAwCnC;;;;;;;;;;;OAWG;IACH,6BAA6B,CAAC,YAAY,GAAE,MAAU,EAAE,kBAAkB,GAAE,MAAU;;;;IA2BtF;;;;;OAKG;IACH,mBAAmB,CAAC,YAAY,GAAE,MAAU,EAAE,kBAAkB,GAAE,MAAU;IAW5E;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,YAAY,GAAE,MAAU,EACxB,kBAAkB,GAAE,MAAU,GAC7B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAepC;;;;;;;;;;;;OAYG;IACH,iBAAiB,CACf,YAAY,GAAE,MAAU,EACxB,kBAAkB,GAAE,MAAU,GAC7B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAgBtD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,oBAAoB,CACzB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACtD,YAAY,GAAE,MAAU,EACxB,kBAAkB,GAAE,MAAU;IAYhC,wCAAwC;IACxC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yCAAyC;IACzC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAMD,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAI/B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAKjC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAQ7B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAIjC,sDAAsD;IACtD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAInC,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAQ/B;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQzC,QAAQ,IAAI,MAAM;CAKnB"}
1
+ {"version":3,"file":"date-only.d.ts","sourceRoot":"","sources":["../../src/types/date-only.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAEzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,YAAY;;IAEZ,mBAAmB;gBACP,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IACpD,sBAAsB;gBACV,IAAI,EAAE,MAAM;IACxB,mBAAmB;gBACP,IAAI,EAAE,IAAI;IAiBtB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAwCnC;;;;;;;;;;;OAWG;IACH,6BAA6B,CAAC,YAAY,GAAE,MAAU,EAAE,kBAAkB,GAAE,MAAU;;;;IA2BtF;;;;;OAKG;IACH,mBAAmB,CAAC,YAAY,GAAE,MAAU,EAAE,kBAAkB,GAAE,MAAU;IAW5E;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,YAAY,GAAE,MAAU,EACxB,kBAAkB,GAAE,MAAU,GAC7B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAepC;;;;;;;;;;;;OAYG;IACH,iBAAiB,CACf,YAAY,GAAE,MAAU,EACxB,kBAAkB,GAAE,MAAU,GAC7B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAgBtD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,oBAAoB,CACzB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACtD,YAAY,GAAE,MAAU,EACxB,kBAAkB,GAAE,MAAU;IAYhC,yBAAyB;IACzB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wBAAwB;IACxB,IAAI,SAAS,IAAI,MAAM,CAEtB;IAMD,wBAAwB;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAK/B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAKjC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAQ7B,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAIjC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAInC,2BAA2B;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAQ/B;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQzC,QAAQ,IAAI,MAAM;CAKnB"}