@simplysm/sd-cli 10.0.22 → 10.0.23

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 (239) hide show
  1. package/dist/SdTsIncrementalBuilder.d.ts +1 -1
  2. package/dist/SdTsIncrementalBuilder.js.map +1 -1
  3. package/dist/SdTsIncrementalBuilder.mjs +39 -16
  4. package/package.json +4 -4
  5. package/src/SdTsIncrementalBuilder.ts +29 -4
  6. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.d.ts +0 -20
  7. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.js.map +0 -1
  8. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.mjs +0 -12
  9. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.d.ts +0 -43
  10. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.js.map +0 -1
  11. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.mjs +0 -54
  12. package/dist/sd-core-common/src/decorators/PropertyValidate.d.ts +0 -16
  13. package/dist/sd-core-common/src/decorators/PropertyValidate.js.map +0 -1
  14. package/dist/sd-core-common/src/decorators/PropertyValidate.mjs +0 -26
  15. package/dist/sd-core-common/src/decorators/decorator-return-types.d.ts +0 -14
  16. package/dist/sd-core-common/src/decorators/decorator-return-types.js.map +0 -1
  17. package/dist/sd-core-common/src/decorators/decorator-return-types.mjs +0 -2
  18. package/dist/sd-core-common/src/errors/ArgumentError.d.ts +0 -10
  19. package/dist/sd-core-common/src/errors/ArgumentError.js.map +0 -1
  20. package/dist/sd-core-common/src/errors/ArgumentError.mjs +0 -13
  21. package/dist/sd-core-common/src/errors/NeverEntryError.d.ts +0 -10
  22. package/dist/sd-core-common/src/errors/NeverEntryError.js.map +0 -1
  23. package/dist/sd-core-common/src/errors/NeverEntryError.mjs +0 -13
  24. package/dist/sd-core-common/src/errors/NotImplementError.d.ts +0 -10
  25. package/dist/sd-core-common/src/errors/NotImplementError.js.map +0 -1
  26. package/dist/sd-core-common/src/errors/NotImplementError.mjs +0 -13
  27. package/dist/sd-core-common/src/errors/SdError.d.ts +0 -23
  28. package/dist/sd-core-common/src/errors/SdError.js.map +0 -1
  29. package/dist/sd-core-common/src/errors/SdError.mjs +0 -40
  30. package/dist/sd-core-common/src/errors/TimeoutError.d.ts +0 -11
  31. package/dist/sd-core-common/src/errors/TimeoutError.js.map +0 -1
  32. package/dist/sd-core-common/src/errors/TimeoutError.mjs +0 -16
  33. package/dist/sd-core-common/src/extensions/ArrayExtension.d.ts +0 -147
  34. package/dist/sd-core-common/src/extensions/ArrayExtension.js.map +0 -1
  35. package/dist/sd-core-common/src/extensions/ArrayExtension.mjs +0 -448
  36. package/dist/sd-core-common/src/extensions/MapExtension.d.ts +0 -4
  37. package/dist/sd-core-common/src/extensions/MapExtension.js.map +0 -1
  38. package/dist/sd-core-common/src/extensions/MapExtension.mjs +0 -15
  39. package/dist/sd-core-common/src/extensions/SetExtension.d.ts +0 -3
  40. package/dist/sd-core-common/src/extensions/SetExtension.js.map +0 -1
  41. package/dist/sd-core-common/src/extensions/SetExtension.mjs +0 -10
  42. package/dist/sd-core-common/src/index.d.ts +0 -32
  43. package/dist/sd-core-common/src/index.js.map +0 -1
  44. package/dist/sd-core-common/src/index.mjs +0 -33
  45. package/dist/sd-core-common/src/types/DateOnly.d.ts +0 -135
  46. package/dist/sd-core-common/src/types/DateOnly.js.map +0 -1
  47. package/dist/sd-core-common/src/types/DateOnly.mjs +0 -220
  48. package/dist/sd-core-common/src/types/DateTime.d.ts +0 -42
  49. package/dist/sd-core-common/src/types/DateTime.js.map +0 -1
  50. package/dist/sd-core-common/src/types/DateTime.mjs +0 -156
  51. package/dist/sd-core-common/src/types/DeepPartial.d.ts +0 -3
  52. package/dist/sd-core-common/src/types/DeepPartial.js.map +0 -1
  53. package/dist/sd-core-common/src/types/DeepPartial.mjs +0 -2
  54. package/dist/sd-core-common/src/types/ObjectSet.d.ts +0 -4
  55. package/dist/sd-core-common/src/types/ObjectSet.js.map +0 -1
  56. package/dist/sd-core-common/src/types/ObjectSet.mjs +0 -18
  57. package/dist/sd-core-common/src/types/Time.d.ts +0 -27
  58. package/dist/sd-core-common/src/types/Time.js.map +0 -1
  59. package/dist/sd-core-common/src/types/Time.mjs +0 -108
  60. package/dist/sd-core-common/src/types/Type.d.ts +0 -7
  61. package/dist/sd-core-common/src/types/Type.js.map +0 -1
  62. package/dist/sd-core-common/src/types/Type.mjs +0 -2
  63. package/dist/sd-core-common/src/types/UnwrappedType.d.ts +0 -1
  64. package/dist/sd-core-common/src/types/UnwrappedType.js.map +0 -1
  65. package/dist/sd-core-common/src/types/UnwrappedType.mjs +0 -2
  66. package/dist/sd-core-common/src/types/Uuid.d.ts +0 -8
  67. package/dist/sd-core-common/src/types/Uuid.js.map +0 -1
  68. package/dist/sd-core-common/src/types/Uuid.mjs +0 -26
  69. package/dist/sd-core-common/src/types/WrappedType.d.ts +0 -1
  70. package/dist/sd-core-common/src/types/WrappedType.js.map +0 -1
  71. package/dist/sd-core-common/src/types/WrappedType.mjs +0 -2
  72. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.d.ts +0 -12
  73. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.js.map +0 -1
  74. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.mjs +0 -67
  75. package/dist/sd-core-common/src/utils/FunctionQueue.d.ts +0 -8
  76. package/dist/sd-core-common/src/utils/FunctionQueue.js.map +0 -1
  77. package/dist/sd-core-common/src/utils/FunctionQueue.mjs +0 -46
  78. package/dist/sd-core-common/src/utils/FunctionUtil.d.ts +0 -6
  79. package/dist/sd-core-common/src/utils/FunctionUtil.js.map +0 -1
  80. package/dist/sd-core-common/src/utils/FunctionUtil.mjs +0 -31
  81. package/dist/sd-core-common/src/utils/JsonConvert.d.ts +0 -8
  82. package/dist/sd-core-common/src/utils/JsonConvert.js.map +0 -1
  83. package/dist/sd-core-common/src/utils/JsonConvert.mjs +0 -78
  84. package/dist/sd-core-common/src/utils/MathUtil.d.ts +0 -3
  85. package/dist/sd-core-common/src/utils/MathUtil.js.map +0 -1
  86. package/dist/sd-core-common/src/utils/MathUtil.mjs +0 -6
  87. package/dist/sd-core-common/src/utils/NumberUtil.d.ts +0 -6
  88. package/dist/sd-core-common/src/utils/NumberUtil.js.map +0 -1
  89. package/dist/sd-core-common/src/utils/NumberUtil.mjs +0 -32
  90. package/dist/sd-core-common/src/utils/ObjectUtil.d.ts +0 -80
  91. package/dist/sd-core-common/src/utils/ObjectUtil.js.map +0 -1
  92. package/dist/sd-core-common/src/utils/ObjectUtil.mjs +0 -452
  93. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.d.ts +0 -6
  94. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.js.map +0 -1
  95. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.mjs +0 -27
  96. package/dist/sd-core-common/src/utils/StringUtil.d.ts +0 -8
  97. package/dist/sd-core-common/src/utils/StringUtil.js.map +0 -1
  98. package/dist/sd-core-common/src/utils/StringUtil.mjs +0 -77
  99. package/dist/sd-core-common/src/utils/Wait.d.ts +0 -4
  100. package/dist/sd-core-common/src/utils/Wait.js.map +0 -1
  101. package/dist/sd-core-common/src/utils/Wait.mjs +0 -23
  102. package/dist/sd-core-node/src/index.d.ts +0 -6
  103. package/dist/sd-core-node/src/index.js.map +0 -1
  104. package/dist/sd-core-node/src/index.mjs +0 -7
  105. package/dist/sd-core-node/src/utils/FsUtil.d.ts +0 -44
  106. package/dist/sd-core-node/src/utils/FsUtil.js.map +0 -1
  107. package/dist/sd-core-node/src/utils/FsUtil.mjs +0 -493
  108. package/dist/sd-core-node/src/utils/Logger.d.ts +0 -91
  109. package/dist/sd-core-node/src/utils/Logger.js.map +0 -1
  110. package/dist/sd-core-node/src/utils/Logger.mjs +0 -185
  111. package/dist/sd-core-node/src/utils/PathUtil.d.ts +0 -6
  112. package/dist/sd-core-node/src/utils/PathUtil.js.map +0 -1
  113. package/dist/sd-core-node/src/utils/PathUtil.mjs +0 -24
  114. package/dist/sd-core-node/src/utils/SdFsWatcher.d.ts +0 -15
  115. package/dist/sd-core-node/src/utils/SdFsWatcher.js.map +0 -1
  116. package/dist/sd-core-node/src/utils/SdFsWatcher.mjs +0 -43
  117. package/dist/sd-core-node/src/utils/SdProcess.d.ts +0 -5
  118. package/dist/sd-core-node/src/utils/SdProcess.js.map +0 -1
  119. package/dist/sd-core-node/src/utils/SdProcess.mjs +0 -36
  120. package/dist/sd-orm-common/src/CaseQueryHelper.d.ts +0 -12
  121. package/dist/sd-orm-common/src/CaseQueryHelper.js.map +0 -1
  122. package/dist/sd-orm-common/src/CaseQueryHelper.mjs +0 -19
  123. package/dist/sd-orm-common/src/CaseWhenQueryHelper.d.ts +0 -12
  124. package/dist/sd-orm-common/src/CaseWhenQueryHelper.js.map +0 -1
  125. package/dist/sd-orm-common/src/CaseWhenQueryHelper.mjs +0 -20
  126. package/dist/sd-orm-common/src/DbContext.d.ts +0 -81
  127. package/dist/sd-orm-common/src/DbContext.js.map +0 -1
  128. package/dist/sd-orm-common/src/DbContext.mjs +0 -635
  129. package/dist/sd-orm-common/src/IDbConnection.d.ts +0 -15
  130. package/dist/sd-orm-common/src/IDbConnection.js.map +0 -1
  131. package/dist/sd-orm-common/src/IDbConnection.mjs +0 -2
  132. package/dist/sd-orm-common/src/IDbContextExecutor.d.ts +0 -17
  133. package/dist/sd-orm-common/src/IDbContextExecutor.js.map +0 -1
  134. package/dist/sd-orm-common/src/IDbContextExecutor.mjs +0 -2
  135. package/dist/sd-orm-common/src/IDbMigration.d.ts +0 -4
  136. package/dist/sd-orm-common/src/IDbMigration.js.map +0 -1
  137. package/dist/sd-orm-common/src/IDbMigration.mjs +0 -2
  138. package/dist/sd-orm-common/src/QueryBuilder.d.ts +0 -48
  139. package/dist/sd-orm-common/src/QueryBuilder.js.map +0 -1
  140. package/dist/sd-orm-common/src/QueryBuilder.mjs +0 -1022
  141. package/dist/sd-orm-common/src/QueryHelper.d.ts +0 -75
  142. package/dist/sd-orm-common/src/QueryHelper.js.map +0 -1
  143. package/dist/sd-orm-common/src/QueryHelper.mjs +0 -627
  144. package/dist/sd-orm-common/src/QueryUnit.d.ts +0 -10
  145. package/dist/sd-orm-common/src/QueryUnit.js.map +0 -1
  146. package/dist/sd-orm-common/src/QueryUnit.mjs +0 -16
  147. package/dist/sd-orm-common/src/Queryable.d.ts +0 -105
  148. package/dist/sd-orm-common/src/Queryable.js.map +0 -1
  149. package/dist/sd-orm-common/src/Queryable.mjs +0 -1375
  150. package/dist/sd-orm-common/src/SdOrmDataType.d.ts +0 -21
  151. package/dist/sd-orm-common/src/SdOrmDataType.js.map +0 -1
  152. package/dist/sd-orm-common/src/SdOrmDataType.mjs +0 -2
  153. package/dist/sd-orm-common/src/commons.d.ts +0 -400
  154. package/dist/sd-orm-common/src/commons.js.map +0 -1
  155. package/dist/sd-orm-common/src/commons.mjs +0 -8
  156. package/dist/sd-orm-common/src/decorators.d.ts +0 -29
  157. package/dist/sd-orm-common/src/decorators.js.map +0 -1
  158. package/dist/sd-orm-common/src/decorators.mjs +0 -89
  159. package/dist/sd-orm-common/src/index.d.ts +0 -17
  160. package/dist/sd-orm-common/src/index.js.map +0 -1
  161. package/dist/sd-orm-common/src/index.mjs +0 -18
  162. package/dist/sd-orm-common/src/models/SystemMigration.d.ts +0 -3
  163. package/dist/sd-orm-common/src/models/SystemMigration.js.map +0 -1
  164. package/dist/sd-orm-common/src/models/SystemMigration.mjs +0 -13
  165. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.d.ts +0 -14
  166. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.js.map +0 -1
  167. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.mjs +0 -66
  168. package/dist/sd-orm-common/src/utils/SdOrmUtil.d.ts +0 -8
  169. package/dist/sd-orm-common/src/utils/SdOrmUtil.js.map +0 -1
  170. package/dist/sd-orm-common/src/utils/SdOrmUtil.mjs +0 -248
  171. package/dist/sd-orm-node/src/DbConnectionFactory.d.ts +0 -4
  172. package/dist/sd-orm-node/src/DbConnectionFactory.js.map +0 -1
  173. package/dist/sd-orm-node/src/DbConnectionFactory.mjs +0 -17
  174. package/dist/sd-orm-node/src/NodeDbContextExecutor.d.ts +0 -19
  175. package/dist/sd-orm-node/src/NodeDbContextExecutor.js.map +0 -1
  176. package/dist/sd-orm-node/src/NodeDbContextExecutor.mjs +0 -71
  177. package/dist/sd-orm-node/src/SdOrm.d.ts +0 -10
  178. package/dist/sd-orm-node/src/SdOrm.js.map +0 -1
  179. package/dist/sd-orm-node/src/SdOrm.mjs +0 -25
  180. package/dist/sd-orm-node/src/index.d.ts +0 -4
  181. package/dist/sd-orm-node/src/index.js.map +0 -1
  182. package/dist/sd-orm-node/src/index.mjs +0 -5
  183. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.d.ts +0 -25
  184. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.js.map +0 -1
  185. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.mjs +0 -321
  186. package/dist/sd-orm-node-mssql/src/index.d.ts +0 -2
  187. package/dist/sd-orm-node-mssql/src/index.js.map +0 -1
  188. package/dist/sd-orm-node-mssql/src/index.mjs +0 -3
  189. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.d.ts +0 -22
  190. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.js.map +0 -1
  191. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.mjs +0 -200
  192. package/dist/sd-orm-node-mysql/src/index.d.ts +0 -2
  193. package/dist/sd-orm-node-mysql/src/index.js.map +0 -1
  194. package/dist/sd-orm-node-mysql/src/index.mjs +0 -3
  195. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.d.ts +0 -22
  196. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.js.map +0 -1
  197. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.mjs +0 -172
  198. package/dist/sd-orm-node-sqlite/src/index.d.ts +0 -2
  199. package/dist/sd-orm-node-sqlite/src/index.js.map +0 -1
  200. package/dist/sd-orm-node-sqlite/src/index.mjs +0 -3
  201. package/dist/sd-service-common/src/commons-orm.d.ts +0 -4
  202. package/dist/sd-service-common/src/commons-orm.js.map +0 -1
  203. package/dist/sd-service-common/src/commons-orm.mjs +0 -2
  204. package/dist/sd-service-common/src/commons-smtp.d.ts +0 -29
  205. package/dist/sd-service-common/src/commons-smtp.js.map +0 -1
  206. package/dist/sd-service-common/src/commons-smtp.mjs +0 -2
  207. package/dist/sd-service-common/src/commons.d.ts +0 -57
  208. package/dist/sd-service-common/src/commons.js.map +0 -1
  209. package/dist/sd-service-common/src/commons.mjs +0 -3
  210. package/dist/sd-service-common/src/index.d.ts +0 -3
  211. package/dist/sd-service-common/src/index.js.map +0 -1
  212. package/dist/sd-service-common/src/index.mjs +0 -4
  213. package/dist/sd-service-server/src/ApiServiceError.d.ts +0 -12
  214. package/dist/sd-service-server/src/ApiServiceError.js.map +0 -1
  215. package/dist/sd-service-server/src/ApiServiceError.mjs +0 -15
  216. package/dist/sd-service-server/src/SdServiceServer.d.ts +0 -39
  217. package/dist/sd-service-server/src/SdServiceServer.js.map +0 -1
  218. package/dist/sd-service-server/src/SdServiceServer.mjs +0 -513
  219. package/dist/sd-service-server/src/commons.d.ts +0 -23
  220. package/dist/sd-service-server/src/commons.js.map +0 -1
  221. package/dist/sd-service-server/src/commons.mjs +0 -3
  222. package/dist/sd-service-server/src/index.d.ts +0 -8
  223. package/dist/sd-service-server/src/index.js.map +0 -1
  224. package/dist/sd-service-server/src/index.mjs +0 -9
  225. package/dist/sd-service-server/src/services/SdAutoUpdateService.d.ts +0 -4
  226. package/dist/sd-service-server/src/services/SdAutoUpdateService.js.map +0 -1
  227. package/dist/sd-service-server/src/services/SdAutoUpdateService.mjs +0 -20
  228. package/dist/sd-service-server/src/services/SdCryptoService.d.ts +0 -7
  229. package/dist/sd-service-server/src/services/SdCryptoService.js.map +0 -1
  230. package/dist/sd-service-server/src/services/SdCryptoService.mjs +0 -39
  231. package/dist/sd-service-server/src/services/SdOrmService.d.ts +0 -22
  232. package/dist/sd-service-server/src/services/SdOrmService.js.map +0 -1
  233. package/dist/sd-service-server/src/services/SdOrmService.mjs +0 -115
  234. package/dist/sd-service-server/src/services/SdSmtpClientService.d.ts +0 -6
  235. package/dist/sd-service-server/src/services/SdSmtpClientService.js.map +0 -1
  236. package/dist/sd-service-server/src/services/SdSmtpClientService.mjs +0 -44
  237. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.d.ts +0 -4
  238. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.js.map +0 -1
  239. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.mjs +0 -36
@@ -1,147 +0,0 @@
1
- import { Type } from "../types/Type";
2
- import { WrappedType } from "../types/WrappedType";
3
- import { DateOnly } from "../types/DateOnly";
4
- import { DateTime } from "../types/DateTime";
5
- import { Time } from "../types/Time";
6
- declare global {
7
- interface Array<T> {
8
- /**
9
- * 필터에 맞는 하나의 값 찾기 (여러값이 있을 경우 오류 발생)
10
- * @param predicate 필터
11
- */
12
- single(predicate?: (item: T, index: number) => boolean): T | undefined;
13
- first(predicate?: (item: T, index: number) => boolean): T | undefined;
14
- filterAsync(predicate: (item: T, index: number) => Promise<boolean>): Promise<T[]>;
15
- last(predicate?: (item: T, index: number) => boolean): T | undefined;
16
- filterExists(): NonNullable<T>[];
17
- ofType<N extends T>(type: Type<WrappedType<N>>): N[];
18
- mapAsync<R>(selector: (item: T, index: number) => Promise<R>): Promise<R[]>;
19
- mapMany(): T;
20
- mapMany<R>(selector: (item: T, index: number) => R[]): R[];
21
- mapManyAsync<R>(selector: (item: T, index: number) => Promise<R[]>): Promise<R[]>;
22
- parallelAsync<R>(fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
23
- groupBy<K>(keySelector: (item: T, index: number) => K): {
24
- key: K;
25
- values: T[];
26
- }[];
27
- groupBy<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): {
28
- key: K;
29
- values: V[];
30
- }[];
31
- toMap<K>(keySelector: (item: T, index: number) => K): Map<K, T>;
32
- toMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V>;
33
- toMapAsync<K>(keySelector: (item: T, index: number) => Promise<K>): Promise<Map<K, T>>;
34
- toMapAsync<K, V>(keySelector: (item: T, index: number) => Promise<K> | K, valueSelector: (item: T, index: number) => Promise<V> | V): Promise<Map<K, V>>;
35
- toArrayMap<K>(keySelector: (item: T, index: number) => K): Map<K, T[]>;
36
- toArrayMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V[]>;
37
- toMapValues<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (items: T[]) => V): Map<K, V>;
38
- toObject(keySelector: (item: T, index: number) => string): Record<string, T>;
39
- toObject<V>(keySelector: (item: T, index: number) => string, valueSelector: (item: T, index: number) => V): Record<string, V>;
40
- toTree<K extends keyof T, P extends keyof T>(keyProp: K, parentKey: P): ITreeArray<T>[];
41
- distinct(matchAddress?: boolean): T[];
42
- distinctThis(matchAddress?: boolean): T[];
43
- orderBy(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
44
- orderByThis(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
45
- orderByDesc(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
46
- orderByDescThis(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
47
- diffs<P>(target: P[], options?: {
48
- keys?: string[];
49
- excludes?: string[];
50
- }): TArrayDiffsResult<T, P>[];
51
- oneWayDiffs<K extends keyof T>(orgItems: T[] | Map<T[K], T>, key: K, options?: {
52
- includeSame?: boolean;
53
- excludes?: string[];
54
- }): TArrayDiffs2Result<T>[];
55
- merge<P>(target: P[], options?: {
56
- keys?: string[];
57
- excludes?: string[];
58
- }): (T | P | (T & P))[];
59
- sum(selector?: (item: T, index: number) => number): number;
60
- min(): T | undefined;
61
- min<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
62
- max(): T | undefined;
63
- max<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
64
- shuffle(): T[];
65
- insert(index: number, ...items: T[]): this;
66
- remove(item: T): this;
67
- remove(selector: (item: T, index: number) => boolean): this;
68
- clear(): this;
69
- }
70
- interface ReadonlyArray<T> {
71
- single(predicate?: (item: T, index: number) => boolean): T | undefined;
72
- first(predicate?: (item: T, index: number) => boolean): T | undefined;
73
- filterAsync(predicate: (item: T, index: number) => Promise<boolean>): Promise<T[]>;
74
- last(predicate?: (item: T, index: number) => boolean): T | undefined;
75
- filterExists(): NonNullable<T>[];
76
- ofType<N extends T>(type: Type<WrappedType<N>>): N[];
77
- mapAsync<R>(selector: (item: T, index: number) => Promise<R>): Promise<R[]>;
78
- mapMany(): T;
79
- mapMany<R>(selector: (item: T, index: number) => R[]): R[];
80
- mapManyAsync<R>(selector: (item: T, index: number) => Promise<R[]>): Promise<R[]>;
81
- parallelAsync<R>(fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
82
- groupBy<K>(keySelector: (item: T, index: number) => K): {
83
- key: K;
84
- values: T[];
85
- }[];
86
- groupBy<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): {
87
- key: K;
88
- values: V[];
89
- }[];
90
- toMap<K>(keySelector: (item: T, index: number) => K): Map<K, T>;
91
- toMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V>;
92
- toMapAsync<K>(keySelector: (item: T, index: number) => Promise<K>): Promise<Map<K, T>>;
93
- toMapAsync<K, V>(keySelector: (item: T, index: number) => Promise<K> | K, valueSelector: (item: T, index: number) => Promise<V> | V): Promise<Map<K, V>>;
94
- toArrayMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V[]>;
95
- toMapValues<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (items: T[]) => V): Map<K, V>;
96
- toObject(keySelector: (item: T, index: number) => string): Record<string, T>;
97
- toObject<V>(keySelector: (item: T, index: number) => string, valueSelector: (item: T, index: number) => V): Record<string, V>;
98
- toTree<K extends keyof T, P extends keyof T>(keyProp: K, parentKey: P): ITreeArray<T>[];
99
- distinct(matchAddress?: boolean): T[];
100
- orderBy(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
101
- orderByDesc(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
102
- diffs<P>(target: P[], options?: {
103
- keys?: string[];
104
- excludes?: string[];
105
- }): TArrayDiffsResult<T, P>[];
106
- oneWayDiffs<K extends keyof T>(orgItems: T[] | Map<T[K], T>, key: K, options?: {
107
- includeSame?: boolean;
108
- excludes?: string[];
109
- }): TArrayDiffs2Result<T>[];
110
- merge<P>(target: P[], options?: {
111
- keys?: string[];
112
- excludes?: string[];
113
- }): (T | P | (T & P))[];
114
- sum(selector?: (item: T, index: number) => number): number;
115
- min(): T | undefined;
116
- min<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
117
- max(): T | undefined;
118
- max<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
119
- }
120
- }
121
- export type TArrayDiffsResult<T, P> = {
122
- source: undefined;
123
- target: P;
124
- } | // INSERT
125
- {
126
- source: T;
127
- target: undefined;
128
- } | // DELETE
129
- {
130
- source: T;
131
- target: P;
132
- };
133
- export type TArrayDiffs2Result<T> = {
134
- type: "create";
135
- item: T;
136
- } | {
137
- type: "update";
138
- item: T;
139
- orgItem: T;
140
- } | {
141
- type: "same";
142
- item: T;
143
- orgItem: T;
144
- };
145
- export type ITreeArray<T> = T & {
146
- children: ITreeArray<T>[];
147
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrayExtension.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/extensions/ArrayExtension.ts"],"names":[],"mappings":"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"}
@@ -1,448 +0,0 @@
1
- import { NeverEntryError } from "../errors/NeverEntryError";
2
- import { ObjectUtil } from "../utils/ObjectUtil";
3
- import { DateOnly } from "../types/DateOnly";
4
- import { DateTime } from "../types/DateTime";
5
- import { Time } from "../types/Time";
6
- ((prototype) => {
7
- prototype.single = function (predicate) {
8
- const arr = predicate !== undefined ? this.filter(predicate) : this;
9
- if (arr.length > 1) {
10
- throw new Error(`복수의 결과물이 있습니다. (${arr.length}개)`);
11
- }
12
- return arr[0];
13
- };
14
- prototype.first = function (predicate) {
15
- return predicate !== undefined ? this.find(predicate) : this[0];
16
- };
17
- prototype.filterAsync = async function (predicate) {
18
- const arr = [];
19
- for (let i = 0; i < this.length; i++) {
20
- if (await predicate(this[i], i)) {
21
- arr.push(this[i]);
22
- }
23
- }
24
- return arr;
25
- };
26
- prototype.last = function (predicate) {
27
- if (predicate !== undefined) {
28
- for (let i = this.length - 1; i >= 0; i--) {
29
- if (predicate(this[i], i)) {
30
- return this[i];
31
- }
32
- }
33
- return undefined;
34
- }
35
- else {
36
- return this[this.length - 1];
37
- }
38
- };
39
- prototype.filterExists = function () {
40
- return this.filter((item) => item !== undefined);
41
- };
42
- prototype.ofType = function (type) {
43
- return this.filter((item) => item instanceof type || item?.constructor === type);
44
- };
45
- prototype.mapAsync = async function (selector) {
46
- const result = [];
47
- for (let i = 0; i < this.length; i++) {
48
- result.push(await selector(this[i], i));
49
- }
50
- return result;
51
- };
52
- prototype.mapMany = function (selector) {
53
- const arr = selector ? this.map(selector) : this;
54
- return arr.length > 0 ? arr.reduce((p, n) => (p ?? []).concat(n ?? [])) : arr;
55
- };
56
- prototype.mapManyAsync = async function (selector) {
57
- const arr = selector !== undefined ? await this.mapAsync(selector) : this;
58
- return arr.mapMany();
59
- };
60
- prototype.parallelAsync = async function (fn) {
61
- return await Promise.all(this.map(async (item, index) => await fn(item, index)));
62
- };
63
- prototype.groupBy = function (keySelector, valueSelector) {
64
- const result = [];
65
- for (let i = 0; i < this.length; i++) {
66
- const keyObj = keySelector(this[i], i);
67
- const valueObj = valueSelector !== undefined ? valueSelector(this[i], i) : this[i];
68
- const existsRecord = result.single((item) => ObjectUtil.equal(item.key, keyObj));
69
- if (existsRecord !== undefined) {
70
- existsRecord.values.push(valueObj);
71
- }
72
- else {
73
- result.push({ key: keyObj, values: [valueObj] });
74
- }
75
- }
76
- return result;
77
- };
78
- prototype.toMap = function (keySelector, valueSelector) {
79
- const result = new Map();
80
- for (let i = 0; i < this.length; i++) {
81
- const item = this[i];
82
- const keyObj = keySelector(item, i);
83
- const valueObj = valueSelector !== undefined ? valueSelector(item, i) : item;
84
- if (result.has(keyObj)) {
85
- throw new Error(`키가 중복되었습니다. (중복된키: ${JSON.stringify(keyObj)})`);
86
- }
87
- result.set(keyObj, valueObj);
88
- }
89
- return result;
90
- };
91
- prototype.toMapAsync = async function (keySelector, valueSelector) {
92
- const result = new Map();
93
- for (let i = 0; i < this.length; i++) {
94
- const item = this[i];
95
- const keyObj = await keySelector(item, i);
96
- const valueObj = valueSelector !== undefined ? await valueSelector(item, i) : item;
97
- if (result.has(keyObj)) {
98
- throw new Error(`키가 중복되었습니다. (중복된키: ${JSON.stringify(keyObj)})`);
99
- }
100
- result.set(keyObj, valueObj);
101
- }
102
- return result;
103
- };
104
- prototype.toArrayMap = function (keySelector, valueSelector) {
105
- const result = new Map();
106
- for (let i = 0; i < this.length; i++) {
107
- const item = this[i];
108
- const keyObj = keySelector(item, i);
109
- const valueObj = valueSelector !== undefined ? valueSelector(item, i) : item;
110
- const arr = result.getOrCreate(keyObj, []);
111
- arr.push(valueObj);
112
- }
113
- return result;
114
- };
115
- prototype.toMapValues = function (keySelector, valueSelector) {
116
- const itemsMap = new Map();
117
- for (let i = 0; i < this.length; i++) {
118
- const item = this[i];
119
- const keyObj = keySelector(item, i);
120
- const arr = itemsMap.getOrCreate(keyObj, []);
121
- arr.push(item);
122
- }
123
- const result = new Map();
124
- for (const key of itemsMap.keys()) {
125
- result.set(key, valueSelector(itemsMap.get(key)));
126
- }
127
- return result;
128
- };
129
- prototype.toObject = function (keySelector, valueSelector) {
130
- const result = {};
131
- for (let i = 0; i < this.length; i++) {
132
- const item = this[i];
133
- const key = keySelector(item, i);
134
- const valueObj = valueSelector !== undefined ? valueSelector(item, i) : item;
135
- if (result[key] !== undefined) {
136
- throw new Error(`키가 중복되었습니다. (중복된키: ${key})`);
137
- }
138
- result[key] = valueObj;
139
- }
140
- return result;
141
- };
142
- prototype.toTree = function (key, parentKey) {
143
- const fn = (items) => {
144
- return items.map((item) => ({
145
- ...ObjectUtil.clone(item),
146
- // @ts-expect-error
147
- children: fn(this.filter((item1) => item1[parentKey] === item[key]))
148
- }));
149
- };
150
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
151
- const rootItems = this.filter((item1) => item1[parentKey] == null);
152
- return fn(rootItems);
153
- };
154
- prototype.distinct = function (matchAddress) {
155
- const result = [];
156
- for (const item of this) {
157
- if (!result.some((item1) => (matchAddress === true ? item1 === item : ObjectUtil.equal(item1, item)))) {
158
- result.push(item);
159
- }
160
- }
161
- return result;
162
- };
163
- prototype.distinctThis = function (matchAddress) {
164
- const distinctArray = this.distinct(matchAddress);
165
- this.clear().push(...distinctArray);
166
- return this;
167
- };
168
- prototype.orderBy = function (selector) {
169
- return this.concat().sort((p, n) => {
170
- const pn = selector !== undefined ? selector(n) : n;
171
- const pp = selector !== undefined ? selector(p) : p;
172
- const cpn = pn instanceof DateOnly ? pn.tick
173
- : pn instanceof DateTime ? pn.tick
174
- : pn instanceof Time ? pn.tick
175
- : pn;
176
- const cpp = pp instanceof DateOnly ? pp.tick
177
- : pp instanceof DateTime ? pp.tick
178
- : pp instanceof Time ? pp.tick
179
- : pp;
180
- if (cpn === cpp) {
181
- return 0;
182
- }
183
- else if (typeof cpn === "string" && typeof cpp === "string") {
184
- return cpp.localeCompare(cpn);
185
- }
186
- else if (typeof cpn === "number" && typeof cpp === "number") {
187
- return (cpn > cpp ? -1 : cpn < cpp ? 1 : 0);
188
- }
189
- else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
190
- return cpn === cpp ? 0 : cpn ? -1 : 1;
191
- }
192
- else if (typeof cpp === "undefined") {
193
- return -1;
194
- }
195
- else if (typeof cpn === "undefined") {
196
- return 1;
197
- }
198
- else {
199
- throw new Error("orderBy를 사용할 수 없는 타입입니다.");
200
- }
201
- });
202
- };
203
- prototype.orderByThis = function (selector) {
204
- return this.sort((p, n) => {
205
- const pn = selector !== undefined ? selector(n) : n;
206
- const pp = selector !== undefined ? selector(p) : p;
207
- const cpn = pn instanceof DateOnly ? pn.tick
208
- : pn instanceof DateTime ? pn.tick
209
- : pn instanceof Time ? pn.tick
210
- : pn;
211
- const cpp = pp instanceof DateOnly ? pp.tick
212
- : pp instanceof DateTime ? pp.tick
213
- : pp instanceof Time ? pp.tick
214
- : pp;
215
- if (cpn === cpp) {
216
- return 0;
217
- }
218
- else if (typeof cpn === "string" && typeof cpp === "string") {
219
- return cpp.localeCompare(cpn);
220
- }
221
- else if (typeof cpn === "number" && typeof cpp === "number") {
222
- return (cpn > cpp ? -1 : cpn < cpp ? 1 : 0);
223
- }
224
- else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
225
- return cpn === cpp ? 0 : cpn ? -1 : 1;
226
- }
227
- else if (typeof cpp === "undefined") {
228
- return -1;
229
- }
230
- else if (typeof cpn === "undefined") {
231
- return 1;
232
- }
233
- else {
234
- throw new Error("orderBy를 사용할 수 없는 타입입니다.");
235
- }
236
- });
237
- };
238
- prototype.orderByDesc = function (selector) {
239
- return this.concat().sort((p, n) => {
240
- const pn = selector !== undefined ? selector(n) : n;
241
- const pp = selector !== undefined ? selector(p) : p;
242
- const cpn = pn instanceof DateOnly ? pn.tick
243
- : pn instanceof DateTime ? pn.tick
244
- : pn instanceof Time ? pn.tick
245
- : pn;
246
- const cpp = pp instanceof DateOnly ? pp.tick
247
- : pp instanceof DateTime ? pp.tick
248
- : pp instanceof Time ? pp.tick
249
- : pp;
250
- if (cpn === cpp) {
251
- return 0;
252
- }
253
- else if (typeof cpn === "string" && typeof cpp === "string") {
254
- return cpn.localeCompare(cpp);
255
- }
256
- else if (typeof cpn === "number" && typeof cpp === "number") {
257
- return (cpn < cpp ? -1 : cpn > cpp ? 1 : 0);
258
- }
259
- else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
260
- return cpn === cpp ? 0 : cpn ? 1 : -1;
261
- }
262
- else if (typeof cpp === "undefined") {
263
- return 1;
264
- }
265
- else if (typeof cpn === "undefined") {
266
- return -1;
267
- }
268
- else {
269
- throw new Error("orderBy를 사용할 수 없는 타입입니다.");
270
- }
271
- });
272
- };
273
- prototype.orderByDescThis = function (selector) {
274
- return this.sort((p, n) => {
275
- const pn = selector !== undefined ? selector(n) : n;
276
- const pp = selector !== undefined ? selector(p) : p;
277
- const cpn = pn instanceof DateOnly ? pn.tick
278
- : pn instanceof DateTime ? pn.tick
279
- : pn instanceof Time ? pn.tick
280
- : pn;
281
- const cpp = pp instanceof DateOnly ? pp.tick
282
- : pp instanceof DateTime ? pp.tick
283
- : pp instanceof Time ? pp.tick
284
- : pp;
285
- if (cpn === cpp) {
286
- return 0;
287
- }
288
- else if (typeof cpn === "string" && typeof cpp === "string") {
289
- return cpn.localeCompare(cpp);
290
- }
291
- else if (typeof cpn === "number" && typeof cpp === "number") {
292
- return (cpn < cpp ? -1 : cpn > cpp ? 1 : 0);
293
- }
294
- else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
295
- return cpn === cpp ? 0 : cpn ? 1 : -1;
296
- }
297
- else if (typeof cpp === "undefined") {
298
- return 1;
299
- }
300
- else if (typeof cpn === "undefined") {
301
- return -1;
302
- }
303
- else {
304
- throw new Error("orderBy를 사용할 수 없는 타입입니다.");
305
- }
306
- });
307
- };
308
- prototype.diffs = function (target, options) {
309
- const result = [];
310
- const uncheckedTarget = [].concat(target); // source 비교시, 수정으로 판단되거나 변경사항이 없는것으로 판단된 target 은 제외시킴
311
- for (const sourceItem of this) {
312
- //target 에 동일한 항목이 없을 때
313
- const sameTarget = uncheckedTarget.single((targetItem) => (ObjectUtil.equal(targetItem, sourceItem, options?.excludes !== undefined ? { excludes: options.excludes } : undefined)));
314
- if (sameTarget === undefined) {
315
- //키 설정시
316
- if (options?.keys !== undefined) {
317
- //target 에 동일한 항목은 아니지만, key 가 같은게 있는 경우: source => target 수정된 항목
318
- const sameKeyTargetItem = uncheckedTarget.single((targetItem) => ObjectUtil.equal(targetItem, sourceItem, { includes: options.keys }));
319
- if (sameKeyTargetItem !== undefined) {
320
- result.push({ source: sourceItem, target: sameKeyTargetItem });
321
- uncheckedTarget.remove(sameKeyTargetItem);
322
- continue;
323
- }
324
- }
325
- //기타: source 에서 삭제된 항목
326
- result.push({ source: sourceItem, target: undefined });
327
- }
328
- else {
329
- uncheckedTarget.remove(sameTarget);
330
- }
331
- }
332
- for (const uncheckedTargetItem of uncheckedTarget) {
333
- //target 에 추가된 항목
334
- result.push({ source: undefined, target: uncheckedTargetItem });
335
- }
336
- return result;
337
- };
338
- prototype.oneWayDiffs = function (orgItems, key, options) {
339
- const orgItemMap = orgItems instanceof Map ? orgItems : orgItems.toMap((orgItem) => orgItem[key]);
340
- const includeSame = options?.includeSame ?? false;
341
- const diffs = [];
342
- for (const item of this) {
343
- if (item[key] === undefined) {
344
- diffs.push({ type: "create", item });
345
- continue;
346
- }
347
- const orgItem = orgItemMap.get(item[key]);
348
- if (!orgItem) {
349
- diffs.push({ type: "create", item });
350
- continue;
351
- }
352
- if (ObjectUtil.equal(orgItem, item, { excludes: options?.excludes })) {
353
- if (includeSame) {
354
- diffs.push({ type: "same", item, orgItem });
355
- }
356
- continue;
357
- }
358
- diffs.push({ type: "update", item, orgItem });
359
- }
360
- return diffs;
361
- };
362
- prototype.merge = function (target, options) {
363
- const diffs = this.diffs(target, options);
364
- const result = ObjectUtil.clone(this);
365
- for (const diff of diffs) {
366
- // 변경시
367
- if (diff.source !== undefined && diff.target !== undefined) {
368
- const resultSourceItem = result.single((item) => ObjectUtil.equal(item, diff.source));
369
- if (resultSourceItem === undefined) {
370
- throw new NeverEntryError();
371
- }
372
- result[result.indexOf(resultSourceItem)] = ObjectUtil.merge(diff.source, diff.target);
373
- }
374
- // 추가시
375
- else if (diff.target !== undefined) {
376
- result.push(diff.target);
377
- }
378
- }
379
- return result;
380
- };
381
- prototype.sum = function (selector) {
382
- let result = 0;
383
- for (let i = 0; i < this.length; i++) {
384
- const item = selector !== undefined ? selector(this[i], i) : this[i];
385
- if (typeof item !== "number") {
386
- throw new Error("sum 은 number 에 대해서만 사용할 수 있습니다.");
387
- }
388
- result += item;
389
- }
390
- return result;
391
- };
392
- prototype.min = function (selector) {
393
- let result;
394
- for (let i = 0; i < this.length; i++) {
395
- const item = selector !== undefined ? selector(this[i], i) : this[i];
396
- if (typeof item !== "number" && typeof item !== "string") {
397
- throw new Error("min 은 number/string 에 대해서만 사용할 수 있습니다.");
398
- }
399
- if (result === undefined || result > item) {
400
- result = item;
401
- }
402
- }
403
- return result;
404
- };
405
- prototype.max = function (selector) {
406
- let result;
407
- for (let i = 0; i < this.length; i++) {
408
- const item = selector !== undefined ? selector(this[i], i) : this[i];
409
- if (typeof item !== "number" && typeof item !== "string") {
410
- throw new Error("max 은 number/string 에 대해서만 사용할 수 있습니다.");
411
- }
412
- if (result === undefined || result < item) {
413
- result = item;
414
- }
415
- }
416
- return result;
417
- };
418
- prototype.shuffle = function () {
419
- if (this.length <= 1) {
420
- return ObjectUtil.clone(this);
421
- }
422
- let result = this;
423
- while (true) {
424
- result = result.orderBy(() => Math.random());
425
- if (!ObjectUtil.equal(result, this)) {
426
- break;
427
- }
428
- }
429
- return result;
430
- };
431
- prototype.insert = function (index, ...items) {
432
- this.splice(index, 0, ...items);
433
- return this;
434
- };
435
- prototype.remove = function (itemOrSelector) {
436
- const removeItems = typeof itemOrSelector === "function" ? this.filter(itemOrSelector.bind(this)) : [itemOrSelector];
437
- for (const removeItem of removeItems) {
438
- while (this.includes(removeItem)) {
439
- this.splice(this.indexOf(removeItem), 1);
440
- }
441
- }
442
- return this;
443
- };
444
- prototype.clear = function () {
445
- return this.remove(() => true);
446
- };
447
- })(Array.prototype);
448
- //# sourceMappingURL=ArrayExtension.js.map
@@ -1,4 +0,0 @@
1
- interface Map<K, V> {
2
- getOrCreate(key: K, newValue: V): V;
3
- getOrCreate(key: K, newValueFn: () => V): V;
4
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapExtension.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/extensions/MapExtension.ts"],"names":[],"mappings":";AAMA,CAAC,CAAC,SAAS,EAAE,EAAE;IACb,SAAS,CAAC,WAAW,GAAG,UAAiC,GAAM,EAAE,QAAuB;QACtF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,IAAI,QAAQ,YAAY,QAAQ,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aACzB;SACF;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- ((prototype) => {
3
- prototype.getOrCreate = function (key, newValue) {
4
- if (!this.has(key)) {
5
- if (newValue instanceof Function) {
6
- this.set(key, newValue());
7
- }
8
- else {
9
- this.set(key, newValue);
10
- }
11
- }
12
- return this.get(key);
13
- };
14
- })(Map.prototype);
15
- //# sourceMappingURL=MapExtension.js.map
@@ -1,3 +0,0 @@
1
- declare interface Set<T> {
2
- adds(...values: T[]): this;
3
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"SetExtension.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/extensions/SetExtension.ts"],"names":[],"mappings":";AAIA,CAAC,CAAC,SAAS,EAAE,EAAE;IACb,SAAS,CAAC,IAAI,GAAG,UAA2B,GAAG,MAAW;QACxD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACf;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}