@simplysm/core-node 13.0.0-beta.7 → 13.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.
- package/dist/features/fs-watcher.d.ts.map +1 -0
- package/dist/features/fs-watcher.js +3 -3
- package/dist/features/fs-watcher.js.map +1 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -6
- package/dist/index.js.map +0 -1
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js.map +0 -1
- package/dist/worker/create-worker.d.ts.map +1 -0
- package/dist/worker/create-worker.js.map +0 -1
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js.map +0 -1
- package/dist/worker/worker.d.ts.map +1 -0
- package/dist/worker/worker.js +4 -3
- package/dist/worker/worker.js.map +1 -2
- package/package.json +6 -5
- package/src/features/fs-watcher.ts +176 -0
- package/src/index.ts +11 -0
- package/src/utils/fs.ts +550 -0
- package/src/utils/path.ts +128 -0
- package/src/worker/create-worker.ts +141 -0
- package/src/worker/types.ts +86 -0
- package/src/worker/worker.ts +209 -0
- package/dist/core-common/src/common.types.d.ts +0 -74
- package/dist/core-common/src/common.types.d.ts.map +0 -1
- package/dist/core-common/src/env.d.ts +0 -6
- package/dist/core-common/src/env.d.ts.map +0 -1
- package/dist/core-common/src/errors/argument-error.d.ts +0 -25
- package/dist/core-common/src/errors/argument-error.d.ts.map +0 -1
- package/dist/core-common/src/errors/not-implemented-error.d.ts +0 -29
- package/dist/core-common/src/errors/not-implemented-error.d.ts.map +0 -1
- package/dist/core-common/src/errors/sd-error.d.ts +0 -27
- package/dist/core-common/src/errors/sd-error.d.ts.map +0 -1
- package/dist/core-common/src/errors/timeout-error.d.ts +0 -31
- package/dist/core-common/src/errors/timeout-error.d.ts.map +0 -1
- package/dist/core-common/src/extensions/arr-ext.d.ts +0 -15
- package/dist/core-common/src/extensions/arr-ext.d.ts.map +0 -1
- package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +0 -19
- package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +0 -1
- package/dist/core-common/src/extensions/arr-ext.types.d.ts +0 -215
- package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +0 -1
- package/dist/core-common/src/extensions/map-ext.d.ts +0 -57
- package/dist/core-common/src/extensions/map-ext.d.ts.map +0 -1
- package/dist/core-common/src/extensions/set-ext.d.ts +0 -36
- package/dist/core-common/src/extensions/set-ext.d.ts.map +0 -1
- package/dist/core-common/src/features/debounce-queue.d.ts +0 -53
- package/dist/core-common/src/features/debounce-queue.d.ts.map +0 -1
- package/dist/core-common/src/features/event-emitter.d.ts +0 -66
- package/dist/core-common/src/features/event-emitter.d.ts.map +0 -1
- package/dist/core-common/src/features/serial-queue.d.ts +0 -47
- package/dist/core-common/src/features/serial-queue.d.ts.map +0 -1
- package/dist/core-common/src/index.d.ts +0 -32
- package/dist/core-common/src/index.d.ts.map +0 -1
- package/dist/core-common/src/types/date-only.d.ts +0 -152
- package/dist/core-common/src/types/date-only.d.ts.map +0 -1
- package/dist/core-common/src/types/date-time.d.ts +0 -96
- package/dist/core-common/src/types/date-time.d.ts.map +0 -1
- package/dist/core-common/src/types/lazy-gc-map.d.ts +0 -80
- package/dist/core-common/src/types/lazy-gc-map.d.ts.map +0 -1
- package/dist/core-common/src/types/time.d.ts +0 -68
- package/dist/core-common/src/types/time.d.ts.map +0 -1
- package/dist/core-common/src/types/uuid.d.ts +0 -35
- package/dist/core-common/src/types/uuid.d.ts.map +0 -1
- package/dist/core-common/src/utils/bytes.d.ts +0 -51
- package/dist/core-common/src/utils/bytes.d.ts.map +0 -1
- package/dist/core-common/src/utils/date-format.d.ts +0 -90
- package/dist/core-common/src/utils/date-format.d.ts.map +0 -1
- package/dist/core-common/src/utils/json.d.ts +0 -34
- package/dist/core-common/src/utils/json.d.ts.map +0 -1
- package/dist/core-common/src/utils/num.d.ts +0 -60
- package/dist/core-common/src/utils/num.d.ts.map +0 -1
- package/dist/core-common/src/utils/obj.d.ts +0 -258
- package/dist/core-common/src/utils/obj.d.ts.map +0 -1
- package/dist/core-common/src/utils/path.d.ts +0 -23
- package/dist/core-common/src/utils/path.d.ts.map +0 -1
- package/dist/core-common/src/utils/primitive.d.ts +0 -18
- package/dist/core-common/src/utils/primitive.d.ts.map +0 -1
- package/dist/core-common/src/utils/str.d.ts +0 -103
- package/dist/core-common/src/utils/str.d.ts.map +0 -1
- package/dist/core-common/src/utils/template-strings.d.ts +0 -84
- package/dist/core-common/src/utils/template-strings.d.ts.map +0 -1
- package/dist/core-common/src/utils/transferable.d.ts +0 -47
- package/dist/core-common/src/utils/transferable.d.ts.map +0 -1
- package/dist/core-common/src/utils/wait.d.ts +0 -19
- package/dist/core-common/src/utils/wait.d.ts.map +0 -1
- package/dist/core-common/src/utils/xml.d.ts +0 -36
- package/dist/core-common/src/utils/xml.d.ts.map +0 -1
- package/dist/core-common/src/zip/sd-zip.d.ts +0 -80
- package/dist/core-common/src/zip/sd-zip.d.ts.map +0 -1
- package/dist/core-node/src/features/fs-watcher.d.ts.map +0 -1
- package/dist/core-node/src/index.d.ts.map +0 -1
- package/dist/core-node/src/utils/fs.d.ts.map +0 -1
- package/dist/core-node/src/utils/path.d.ts.map +0 -1
- package/dist/core-node/src/worker/create-worker.d.ts.map +0 -1
- package/dist/core-node/src/worker/types.d.ts.map +0 -1
- package/dist/core-node/src/worker/worker.d.ts.map +0 -1
- /package/dist/{core-node/src/features → features}/fs-watcher.d.ts +0 -0
- /package/dist/{core-node/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{core-node/src/utils → utils}/fs.d.ts +0 -0
- /package/dist/{core-node/src/utils → utils}/path.d.ts +0 -0
- /package/dist/{core-node/src/worker → worker}/create-worker.d.ts +0 -0
- /package/dist/{core-node/src/worker → worker}/types.d.ts +0 -0
- /package/dist/{core-node/src/worker → worker}/worker.d.ts +0 -0
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Array 확장 헬퍼 함수
|
|
3
|
-
*/
|
|
4
|
-
import type { ComparableType } from "./arr-ext.types";
|
|
5
|
-
/**
|
|
6
|
-
* DateTime, DateOnly, Time을 비교 가능한 primitive 값으로 변환
|
|
7
|
-
*/
|
|
8
|
-
export declare function toComparable(value: ComparableType): string | number | boolean | undefined;
|
|
9
|
-
/**
|
|
10
|
-
* 정렬을 위한 비교 함수
|
|
11
|
-
*
|
|
12
|
-
* @param pp 비교 대상 1
|
|
13
|
-
* @param pn 비교 대상 2
|
|
14
|
-
* @param desc true: 내림차순, false: 오름차순
|
|
15
|
-
* @returns 음수: pp가 앞, 0: 같음, 양수: pn이 앞
|
|
16
|
-
* @note null/undefined 값은 오름차순 시 앞으로, 내림차순 시 뒤로 정렬됨
|
|
17
|
-
*/
|
|
18
|
-
export declare function compareForOrder(pp: ComparableType, pn: ComparableType, desc: boolean): number;
|
|
19
|
-
//# sourceMappingURL=arr-ext.helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arr-ext.helpers.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAuB7F"}
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Array 확장 타입 정의
|
|
3
|
-
*/
|
|
4
|
-
import type { PrimitiveTypeMap, PrimitiveTypeStr, Type } from "../common.types";
|
|
5
|
-
import type { DateTime } from "../types/date-time";
|
|
6
|
-
import type { DateOnly } from "../types/date-only";
|
|
7
|
-
import type { Time } from "../types/time";
|
|
8
|
-
export interface ReadonlyArrayExt<T> {
|
|
9
|
-
/**
|
|
10
|
-
* 조건에 맞는 단일 요소 반환
|
|
11
|
-
* @param predicate 필터 조건 (생략 시 배열 전체 대상)
|
|
12
|
-
* @returns 요소가 없으면 undefined
|
|
13
|
-
* @throws ArgumentError 조건에 맞는 요소가 2개 이상이면 발생
|
|
14
|
-
*/
|
|
15
|
-
single(predicate?: (item: T, index: number) => boolean): T | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* 첫 번째 요소 반환
|
|
18
|
-
* @param predicate 필터 조건 (생략 시 첫 번째 요소 반환)
|
|
19
|
-
* @returns 요소가 없으면 undefined
|
|
20
|
-
*/
|
|
21
|
-
first(predicate?: (item: T, index: number) => boolean): T | undefined;
|
|
22
|
-
/** 비동기 필터 (순차 실행) */
|
|
23
|
-
filterAsync(predicate: (item: T, index: number) => Promise<boolean>): Promise<T[]>;
|
|
24
|
-
/**
|
|
25
|
-
* 마지막 요소 반환
|
|
26
|
-
* @param predicate 필터 조건 (생략 시 마지막 요소 반환)
|
|
27
|
-
* @returns 요소가 없으면 undefined
|
|
28
|
-
*/
|
|
29
|
-
last(predicate?: (item: T, index: number) => boolean): T | undefined;
|
|
30
|
-
/** null/undefined 제거 */
|
|
31
|
-
filterExists(): NonNullable<T>[];
|
|
32
|
-
/** 특정 타입의 요소만 필터링 (PrimitiveTypeStr 또는 생성자 타입) */
|
|
33
|
-
ofType<K extends PrimitiveTypeStr>(type: K): Extract<T, PrimitiveTypeMap[K]>[];
|
|
34
|
-
ofType<N extends T>(type: Type<N>): N[];
|
|
35
|
-
/** 비동기 매핑 (순차 실행) */
|
|
36
|
-
mapAsync<R>(selector: (item: T, index: number) => Promise<R>): Promise<R[]>;
|
|
37
|
-
/** 중첩 배열 평탄화 */
|
|
38
|
-
mapMany(): T extends readonly (infer U)[] ? U[] : T;
|
|
39
|
-
/** 매핑 후 평탄화 */
|
|
40
|
-
mapMany<R>(selector: (item: T, index: number) => R[]): R[];
|
|
41
|
-
/** 비동기 매핑 후 평탄화 (순차 실행) */
|
|
42
|
-
mapManyAsync<R>(selector: (item: T, index: number) => Promise<R[]>): Promise<R[]>;
|
|
43
|
-
/**
|
|
44
|
-
* 비동기 병렬 처리 (Promise.all 사용)
|
|
45
|
-
* @note 하나라도 reject되면 전체가 fail-fast로 reject됨 (Promise.all 동작)
|
|
46
|
-
*/
|
|
47
|
-
parallelAsync<R>(fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
|
|
48
|
-
/**
|
|
49
|
-
* 키 기준 그룹화
|
|
50
|
-
* @param keySelector 그룹 키 선택 함수
|
|
51
|
-
* @note O(n²) 복잡도 (객체 키 지원을 위해 깊은 비교 사용). primitive 키만 필요하면 toArrayMap()이 O(n)으로 더 효율적
|
|
52
|
-
*/
|
|
53
|
-
groupBy<K>(keySelector: (item: T, index: number) => K): {
|
|
54
|
-
key: K;
|
|
55
|
-
values: T[];
|
|
56
|
-
}[];
|
|
57
|
-
/**
|
|
58
|
-
* 키 기준 그룹화 (값 변환 포함)
|
|
59
|
-
* @param keySelector 그룹 키 선택 함수
|
|
60
|
-
* @param valueSelector 값 변환 함수
|
|
61
|
-
* @note O(n²) 복잡도 (객체 키 지원을 위해 깊은 비교 사용). primitive 키만 필요하면 toArrayMap()이 O(n)으로 더 효율적
|
|
62
|
-
*/
|
|
63
|
-
groupBy<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): {
|
|
64
|
-
key: K;
|
|
65
|
-
values: V[];
|
|
66
|
-
}[];
|
|
67
|
-
toMap<K>(keySelector: (item: T, index: number) => K): Map<K, T>;
|
|
68
|
-
toMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V>;
|
|
69
|
-
toMapAsync<K>(keySelector: (item: T, index: number) => Promise<K>): Promise<Map<K, T>>;
|
|
70
|
-
toMapAsync<K, V>(keySelector: (item: T, index: number) => Promise<K> | K, valueSelector: (item: T, index: number) => Promise<V> | V): Promise<Map<K, V>>;
|
|
71
|
-
toArrayMap<K>(keySelector: (item: T, index: number) => K): Map<K, T[]>;
|
|
72
|
-
toArrayMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V[]>;
|
|
73
|
-
toSetMap<K>(keySelector: (item: T, index: number) => K): Map<K, Set<T>>;
|
|
74
|
-
toSetMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, Set<V>>;
|
|
75
|
-
toMapValues<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (items: T[]) => V): Map<K, V>;
|
|
76
|
-
toObject(keySelector: (item: T, index: number) => string): Record<string, T>;
|
|
77
|
-
toObject<V>(keySelector: (item: T, index: number) => string, valueSelector: (item: T, index: number) => V): Record<string, V>;
|
|
78
|
-
/**
|
|
79
|
-
* 평탄한 배열을 트리 구조로 변환한다
|
|
80
|
-
*
|
|
81
|
-
* @param keyProp 각 항목의 고유 키 속성명
|
|
82
|
-
* @param parentKey 부모 항목의 키를 참조하는 속성명
|
|
83
|
-
* @returns 루트 항목들의 배열 (각 항목에 children 속성 추가)
|
|
84
|
-
*
|
|
85
|
-
* @remarks
|
|
86
|
-
* - parentKey 값이 null/undefined인 항목이 루트가 된다
|
|
87
|
-
* - 내부적으로 toArrayMap을 사용하여 O(n) 복잡도로 처리한다
|
|
88
|
-
* - 원본 항목은 복사되어 children 속성이 추가된다
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* ```typescript
|
|
92
|
-
* interface Item {
|
|
93
|
-
* id: number;
|
|
94
|
-
* parentId?: number;
|
|
95
|
-
* name: string;
|
|
96
|
-
* }
|
|
97
|
-
*
|
|
98
|
-
* const items: Item[] = [
|
|
99
|
-
* { id: 1, name: "root" },
|
|
100
|
-
* { id: 2, parentId: 1, name: "child1" },
|
|
101
|
-
* { id: 3, parentId: 1, name: "child2" },
|
|
102
|
-
* { id: 4, parentId: 2, name: "grandchild" },
|
|
103
|
-
* ];
|
|
104
|
-
*
|
|
105
|
-
* const tree = items.toTree("id", "parentId");
|
|
106
|
-
* // [{ id: 1, name: "root", children: [
|
|
107
|
-
* // { id: 2, name: "child1", children: [
|
|
108
|
-
* // { id: 4, name: "grandchild", children: [] }
|
|
109
|
-
* // ]},
|
|
110
|
-
* // { id: 3, name: "child2", children: [] }
|
|
111
|
-
* // ]}]
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
toTree<K extends keyof T, P extends keyof T>(keyProp: K, parentKey: P): TreeArray<T>[];
|
|
115
|
-
/**
|
|
116
|
-
* 중복 제거
|
|
117
|
-
* @param options matchAddress: 주소 비교 (true면 Set 사용), keyFn: 커스텀 키 함수 (O(n) 성능)
|
|
118
|
-
* @note 객체 배열에서 keyFn 없이 사용 시 O(n²) 복잡도. 대량 데이터는 keyFn 사용 권장
|
|
119
|
-
*/
|
|
120
|
-
distinct(options?: boolean | {
|
|
121
|
-
matchAddress?: boolean;
|
|
122
|
-
keyFn?: (item: T) => string | number;
|
|
123
|
-
}): T[];
|
|
124
|
-
orderBy(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
|
|
125
|
-
orderByDesc(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
|
|
126
|
-
/**
|
|
127
|
-
* 두 배열 비교 (INSERT/DELETE/UPDATE)
|
|
128
|
-
* @param target 비교 대상 배열
|
|
129
|
-
* @param options keys: 키 비교용, excludes: 비교 제외 속성
|
|
130
|
-
* @note target에 중복 키가 있으면 첫 번째 매칭만 사용됨
|
|
131
|
-
*/
|
|
132
|
-
diffs<P>(target: P[], options?: {
|
|
133
|
-
keys?: string[];
|
|
134
|
-
excludes?: string[];
|
|
135
|
-
}): ArrayDiffsResult<T, P>[];
|
|
136
|
-
oneWayDiffs<K extends keyof T>(orgItems: T[] | Map<T[K], T>, keyPropNameOrFn: K | ((item: T) => K), options?: {
|
|
137
|
-
includeSame?: boolean;
|
|
138
|
-
excludes?: string[];
|
|
139
|
-
includes?: string[];
|
|
140
|
-
}): ArrayDiffs2Result<T>[];
|
|
141
|
-
merge<P>(target: P[], options?: {
|
|
142
|
-
keys?: string[];
|
|
143
|
-
excludes?: string[];
|
|
144
|
-
}): (T | P | (T & P))[];
|
|
145
|
-
/**
|
|
146
|
-
* 요소의 합계 반환
|
|
147
|
-
* @param selector 값 선택 함수 (생략 시 요소 자체를 number로 사용)
|
|
148
|
-
* @returns 빈 배열인 경우 0 반환
|
|
149
|
-
*/
|
|
150
|
-
sum(selector?: (item: T, index: number) => number): number;
|
|
151
|
-
min(): T extends number | string ? T | undefined : never;
|
|
152
|
-
min<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
|
|
153
|
-
max(): T extends number | string ? T | undefined : never;
|
|
154
|
-
max<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
|
|
155
|
-
shuffle(): T[];
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* 원본 배열을 변경하는 확장 메서드
|
|
159
|
-
* @mutates 모든 메서드가 원본 배열을 직접 변경합니다
|
|
160
|
-
*/
|
|
161
|
-
export interface MutableArrayExt<T> {
|
|
162
|
-
/**
|
|
163
|
-
* 원본 배열에서 중복 제거
|
|
164
|
-
* @param options matchAddress: 주소 비교 (true면 Set 사용), keyFn: 커스텀 키 함수 (O(n) 성능)
|
|
165
|
-
* @note 객체 배열에서 keyFn 없이 사용 시 O(n²) 복잡도. 대량 데이터는 keyFn 사용 권장
|
|
166
|
-
* @mutates
|
|
167
|
-
*/
|
|
168
|
-
distinctThis(options?: boolean | {
|
|
169
|
-
matchAddress?: boolean;
|
|
170
|
-
keyFn?: (item: T) => string | number;
|
|
171
|
-
}): T[];
|
|
172
|
-
/** 원본 배열 오름차순 정렬 @mutates */
|
|
173
|
-
orderByThis(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
|
|
174
|
-
/** 원본 배열 내림차순 정렬 @mutates */
|
|
175
|
-
orderByDescThis(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
|
|
176
|
-
/** 원본 배열에 항목 삽입 @mutates */
|
|
177
|
-
insert(index: number, ...items: T[]): this;
|
|
178
|
-
/** 원본 배열에서 항목 제거 @mutates */
|
|
179
|
-
remove(item: T): this;
|
|
180
|
-
/** 원본 배열에서 조건에 맞는 항목 제거 @mutates */
|
|
181
|
-
remove(selector: (item: T, index: number) => boolean): this;
|
|
182
|
-
/** 원본 배열에서 항목 토글 (있으면 제거, 없으면 추가) @mutates */
|
|
183
|
-
toggle(item: T): this;
|
|
184
|
-
/** 원본 배열 비우기 @mutates */
|
|
185
|
-
clear(): this;
|
|
186
|
-
}
|
|
187
|
-
export type ArrayDiffsResult<T, P> = {
|
|
188
|
-
source: undefined;
|
|
189
|
-
target: P;
|
|
190
|
-
} | {
|
|
191
|
-
source: T;
|
|
192
|
-
target: undefined;
|
|
193
|
-
} | {
|
|
194
|
-
source: T;
|
|
195
|
-
target: P;
|
|
196
|
-
};
|
|
197
|
-
export type ArrayDiffs2Result<T> = {
|
|
198
|
-
type: "create";
|
|
199
|
-
item: T;
|
|
200
|
-
orgItem: undefined;
|
|
201
|
-
} | {
|
|
202
|
-
type: "update";
|
|
203
|
-
item: T;
|
|
204
|
-
orgItem: T;
|
|
205
|
-
} | {
|
|
206
|
-
type: "same";
|
|
207
|
-
item: T;
|
|
208
|
-
orgItem: T;
|
|
209
|
-
};
|
|
210
|
-
export type TreeArray<T> = T & {
|
|
211
|
-
children: TreeArray<T>[];
|
|
212
|
-
};
|
|
213
|
-
/** 정렬/비교 가능한 타입 */
|
|
214
|
-
export type ComparableType = string | number | boolean | DateTime | DateOnly | Time | undefined;
|
|
215
|
-
//# sourceMappingURL=arr-ext.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arr-ext.types.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map 확장 메서드
|
|
3
|
-
*/
|
|
4
|
-
declare global {
|
|
5
|
-
interface Map<K, V> {
|
|
6
|
-
/**
|
|
7
|
-
* 키에 해당하는 값이 없으면 새 값을 설정하고 반환
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* **주의**: V 타입이 함수인 경우(예: `Map<string, () => void>`),
|
|
11
|
-
* 두 번째 인자로 함수를 직접 전달하면 팩토리로 인식되어 호출됩니다.
|
|
12
|
-
* 함수 자체를 값으로 저장하려면 팩토리로 감싸세요.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // 일반 값
|
|
17
|
-
* map.getOrCreate("key", 0);
|
|
18
|
-
* map.getOrCreate("key", []);
|
|
19
|
-
*
|
|
20
|
-
* // 팩토리 함수 (계산 비용이 큰 경우)
|
|
21
|
-
* map.getOrCreate("key", () => expensiveComputation());
|
|
22
|
-
*
|
|
23
|
-
* // 함수를 값으로 저장하는 경우
|
|
24
|
-
* const fnMap = new Map<string, () => void>();
|
|
25
|
-
* const myFn = () => console.log("hello");
|
|
26
|
-
* fnMap.getOrCreate("key", () => myFn); // 팩토리로 감싸기
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
getOrCreate(key: K, newValue: V): V;
|
|
30
|
-
getOrCreate(key: K, newValueFn: () => V): V;
|
|
31
|
-
/**
|
|
32
|
-
* 키에 해당하는 값을 함수로 업데이트한다
|
|
33
|
-
*
|
|
34
|
-
* @param key 업데이트할 키
|
|
35
|
-
* @param updateFn 현재 값을 받아 새 값을 반환하는 함수 (키가 없으면 undefined 전달)
|
|
36
|
-
*
|
|
37
|
-
* @remarks
|
|
38
|
-
* 키가 존재하지 않아도 updateFn이 호출되어 새 값이 설정된다.
|
|
39
|
-
* 기존 값 기반 계산이 필요한 경우 (카운터 증가, 배열에 추가 등) 유용하다.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const countMap = new Map<string, number>();
|
|
44
|
-
*
|
|
45
|
-
* // 카운터 증가
|
|
46
|
-
* countMap.update("key", (v) => (v ?? 0) + 1);
|
|
47
|
-
*
|
|
48
|
-
* // 배열에 항목 추가
|
|
49
|
-
* const arrayMap = new Map<string, string[]>();
|
|
50
|
-
* arrayMap.update("key", (v) => [...(v ?? []), "item"]);
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
update(key: K, updateFn: (v: V | undefined) => V): void;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
export {};
|
|
57
|
-
//# sourceMappingURL=map-ext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map-ext.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/map-ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;QAChB;;;;;;;;;;;;;;;;;;;;;;WAsBG;QACH,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QACpC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE5C;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,IAAI,CAAC;KACzD;CACF;AA6BD,OAAO,EAAE,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Set 확장 메서드
|
|
3
|
-
*/
|
|
4
|
-
declare global {
|
|
5
|
-
interface Set<T> {
|
|
6
|
-
/**
|
|
7
|
-
* 여러 값을 한 번에 추가
|
|
8
|
-
*/
|
|
9
|
-
adds(...values: T[]): this;
|
|
10
|
-
/**
|
|
11
|
-
* 값을 토글한다 (있으면 제거, 없으면 추가)
|
|
12
|
-
*
|
|
13
|
-
* @param value 토글할 값
|
|
14
|
-
* @param addOrDel 강제로 추가("add") 또는 제거("del") 지정 (생략 시 자동 토글)
|
|
15
|
-
* @returns this (메서드 체이닝 가능)
|
|
16
|
-
*
|
|
17
|
-
* @remarks
|
|
18
|
-
* addOrDel 파라미터로 조건부 추가/제거를 간결하게 표현할 수 있다.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const set = new Set<number>([1, 2, 3]);
|
|
23
|
-
*
|
|
24
|
-
* set.toggle(2); // 2가 있으므로 제거 → {1, 3}
|
|
25
|
-
* set.toggle(4); // 4가 없으므로 추가 → {1, 3, 4}
|
|
26
|
-
*
|
|
27
|
-
* // 조건부 토글
|
|
28
|
-
* const isAdmin = true;
|
|
29
|
-
* set.toggle(5, isAdmin ? "add" : "del"); // 강제 추가
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
toggle(value: T, addOrDel?: "add" | "del"): this;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
36
|
-
//# sourceMappingURL=set-ext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-ext.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/set-ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC,CAAC;QACb;;WAEG;QACH,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAE3B;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;KAClD;CACF;AAgCD,OAAO,EAAE,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 비동기 함수 디바운스 큐
|
|
3
|
-
*
|
|
4
|
-
* 짧은 시간 내에 여러 번 호출되면 마지막 요청만 실행하고 이전 요청은 무시합니다.
|
|
5
|
-
* 입력 필드 자동완성, 연속적인 상태 변경 배치 처리 등에 유용합니다.
|
|
6
|
-
*
|
|
7
|
-
* @remarks
|
|
8
|
-
* 실행 중에 추가된 요청은 디바운스 지연 없이 현재 실행이 완료된 직후 처리됩니다.
|
|
9
|
-
* 이는 실행 완료 전에 들어온 요청이 누락되지 않도록 하기 위한 의도적 설계입니다.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const queue = new DebounceQueue(300); // 300ms 딜레이
|
|
13
|
-
* queue.run(() => console.log("1")); // 무시됨
|
|
14
|
-
* queue.run(() => console.log("2")); // 무시됨
|
|
15
|
-
* queue.run(() => console.log("3")); // 300ms 후 실행됨
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* // 에러 처리
|
|
19
|
-
* queue.on("error", (err) => console.error(err));
|
|
20
|
-
*/
|
|
21
|
-
import { SdError } from "../errors/sd-error";
|
|
22
|
-
import { EventEmitter } from "./event-emitter";
|
|
23
|
-
interface DebounceQueueEvents {
|
|
24
|
-
error: SdError;
|
|
25
|
-
}
|
|
26
|
-
export declare class DebounceQueue extends EventEmitter<DebounceQueueEvents> {
|
|
27
|
-
private readonly _delay?;
|
|
28
|
-
private static readonly _logger;
|
|
29
|
-
private _pendingFn;
|
|
30
|
-
private _isRunning;
|
|
31
|
-
private _isDisposed;
|
|
32
|
-
private _timer;
|
|
33
|
-
/**
|
|
34
|
-
* @param _delay 디바운스 지연 시간 (밀리초). 생략 시 즉시 실행 (다음 이벤트 루프)
|
|
35
|
-
*/
|
|
36
|
-
constructor(_delay?: number | undefined);
|
|
37
|
-
/**
|
|
38
|
-
* 대기 중인 작업과 타이머 정리
|
|
39
|
-
*/
|
|
40
|
-
dispose(): void;
|
|
41
|
-
/**
|
|
42
|
-
* using 문 지원
|
|
43
|
-
*/
|
|
44
|
-
[Symbol.dispose](): void;
|
|
45
|
-
/**
|
|
46
|
-
* 함수를 큐에 추가
|
|
47
|
-
* 이전에 추가된 함수가 있으면 대체됨
|
|
48
|
-
*/
|
|
49
|
-
run(fn: () => void | Promise<void>): void;
|
|
50
|
-
private _processLast;
|
|
51
|
-
}
|
|
52
|
-
export {};
|
|
53
|
-
//# sourceMappingURL=debounce-queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debounce-queue.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/features/debounce-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAWtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAVpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAE3E,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAA4C;IAE1D;;OAEG;gBAC0B,MAAM,CAAC,EAAE,MAAM,YAAA;IAI5C;;OAEG;IACM,OAAO,IAAI,IAAI;IAUxB;;OAEG;IACM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIjC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;YAiB3B,YAAY;CA+B3B"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EventTarget 래퍼 - EventEmitter와 유사한 API 제공
|
|
3
|
-
*
|
|
4
|
-
* 브라우저와 Node.js 모두에서 사용 가능한 타입 안전한 이벤트 에미터이다.
|
|
5
|
-
* 내부적으로 EventTarget을 사용하여 구현되어 있다.
|
|
6
|
-
*
|
|
7
|
-
* @typeParam T 이벤트 타입 맵. 키는 이벤트 이름, 값은 이벤트 데이터 타입
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* interface MyEvents {
|
|
11
|
-
* data: string;
|
|
12
|
-
* error: Error;
|
|
13
|
-
* done: void;
|
|
14
|
-
* }
|
|
15
|
-
*
|
|
16
|
-
* class MyEmitter extends EventEmitter<MyEvents> {}
|
|
17
|
-
*
|
|
18
|
-
* const emitter = new MyEmitter();
|
|
19
|
-
* emitter.on("data", (data) => console.log(data)); // data: string
|
|
20
|
-
* emitter.emit("data", "hello");
|
|
21
|
-
* emitter.emit("done"); // void 타입은 인자 없이 호출
|
|
22
|
-
*/
|
|
23
|
-
export declare class EventEmitter<T extends {
|
|
24
|
-
[K in keyof T]: unknown;
|
|
25
|
-
} = Record<string, unknown>> {
|
|
26
|
-
private readonly _target;
|
|
27
|
-
private readonly _listenerMap;
|
|
28
|
-
/**
|
|
29
|
-
* 이벤트 리스너 등록
|
|
30
|
-
*
|
|
31
|
-
* @param type 이벤트 타입
|
|
32
|
-
* @param listener 이벤트 핸들러
|
|
33
|
-
* @note 같은 리스너를 같은 이벤트에 중복 등록하면 무시됨
|
|
34
|
-
*/
|
|
35
|
-
on<K extends keyof T & string>(type: K, listener: (data: T[K]) => void): void;
|
|
36
|
-
/**
|
|
37
|
-
* 이벤트 리스너 제거
|
|
38
|
-
*
|
|
39
|
-
* @param type 이벤트 타입
|
|
40
|
-
* @param listener 제거할 이벤트 핸들러
|
|
41
|
-
*/
|
|
42
|
-
off<K extends keyof T & string>(type: K, listener: (data: T[K]) => void): void;
|
|
43
|
-
/**
|
|
44
|
-
* 이벤트 발생
|
|
45
|
-
*
|
|
46
|
-
* @param type 이벤트 타입
|
|
47
|
-
* @param args 이벤트 데이터 (void 타입이면 생략)
|
|
48
|
-
*/
|
|
49
|
-
emit<K extends keyof T & string>(type: K, ...args: T[K] extends void ? [] : [data: T[K]]): void;
|
|
50
|
-
/**
|
|
51
|
-
* 특정 이벤트의 리스너 수 반환
|
|
52
|
-
*
|
|
53
|
-
* @param type 이벤트 타입
|
|
54
|
-
* @returns 등록된 리스너 수
|
|
55
|
-
*/
|
|
56
|
-
listenerCount<K extends keyof T & string>(type: K): number;
|
|
57
|
-
/**
|
|
58
|
-
* 모든 이벤트 리스너를 제거한다.
|
|
59
|
-
*/
|
|
60
|
-
dispose(): void;
|
|
61
|
-
/**
|
|
62
|
-
* using 문 지원
|
|
63
|
-
*/
|
|
64
|
-
[Symbol.dispose](): void;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=event-emitter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/features/event-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwD;IAErF;;;;;;OAMG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAgB7E;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAgB9E;;;;;OAKG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI/F;;;;;OAKG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM;IAI1D;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB"}
|
|
@@ -1,47 +0,0 @@
|
|
|
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
|
-
*/
|
|
18
|
-
import { SdError } from "../errors/sd-error";
|
|
19
|
-
import { EventEmitter } from "./event-emitter";
|
|
20
|
-
interface SerialQueueEvents {
|
|
21
|
-
error: SdError;
|
|
22
|
-
}
|
|
23
|
-
export declare class SerialQueue extends EventEmitter<SerialQueueEvents> {
|
|
24
|
-
private readonly _gap;
|
|
25
|
-
private static readonly _logger;
|
|
26
|
-
private readonly _queue;
|
|
27
|
-
private _isQueueRunning;
|
|
28
|
-
/**
|
|
29
|
-
* @param _gap 각 작업 사이의 간격 (ms)
|
|
30
|
-
*/
|
|
31
|
-
constructor(_gap?: number);
|
|
32
|
-
/**
|
|
33
|
-
* 대기 중인 큐 비우기 (현재 실행 중인 작업은 완료됨)
|
|
34
|
-
*/
|
|
35
|
-
dispose(): void;
|
|
36
|
-
/**
|
|
37
|
-
* using 문 지원
|
|
38
|
-
*/
|
|
39
|
-
[Symbol.dispose](): void;
|
|
40
|
-
/**
|
|
41
|
-
* 함수를 큐에 추가하고 실행
|
|
42
|
-
*/
|
|
43
|
-
run(fn: () => void | Promise<void>): void;
|
|
44
|
-
private _process;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=serial-queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serial-queue.d.ts","sourceRoot":"","sources":["../../../../../core-common/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;AAI/C,UAAU,iBAAiB;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,WAAY,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IASlD,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAEzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;gBAC0B,IAAI,GAAE,MAAU;IAI7C;;OAEG;IACM,OAAO,IAAI,IAAI;IAKxB;;OAEG;IACM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIjC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;YAK3B,QAAQ;CA+BvB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import "./extensions/arr-ext";
|
|
2
|
-
import "./extensions/set-ext";
|
|
3
|
-
import "./extensions/map-ext";
|
|
4
|
-
export * from "./env";
|
|
5
|
-
export type { ArrayDiffsResult, ArrayDiffs2Result, TreeArray } from "./extensions/arr-ext";
|
|
6
|
-
export * from "./errors/sd-error";
|
|
7
|
-
export * from "./errors/argument-error";
|
|
8
|
-
export * from "./errors/not-implemented-error";
|
|
9
|
-
export * from "./errors/timeout-error";
|
|
10
|
-
export * from "./types/uuid";
|
|
11
|
-
export * from "./types/lazy-gc-map";
|
|
12
|
-
export * from "./types/date-time";
|
|
13
|
-
export * from "./types/date-only";
|
|
14
|
-
export * from "./types/time";
|
|
15
|
-
export * from "./features/debounce-queue";
|
|
16
|
-
export * from "./features/serial-queue";
|
|
17
|
-
export * from "./features/event-emitter";
|
|
18
|
-
export * from "./utils/date-format";
|
|
19
|
-
export * from "./utils/bytes";
|
|
20
|
-
export * from "./utils/json";
|
|
21
|
-
export * from "./utils/num";
|
|
22
|
-
export * from "./utils/obj";
|
|
23
|
-
export * from "./utils/primitive";
|
|
24
|
-
export * from "./utils/str";
|
|
25
|
-
export * from "./utils/template-strings";
|
|
26
|
-
export * from "./utils/transferable";
|
|
27
|
-
export * from "./utils/wait";
|
|
28
|
-
export * from "./utils/xml";
|
|
29
|
-
export * from "./utils/path";
|
|
30
|
-
export * from "./zip/sd-zip";
|
|
31
|
-
export * from "./common.types";
|
|
32
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core-common/src/index.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAE9B,cAAc,OAAO,CAAC;AAGtB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG3F,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AAIvC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAI7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAIzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAI7B,cAAc,cAAc,CAAC;AAI7B,cAAc,gBAAgB,CAAC"}
|