@simplysm/orm-node 13.0.0-beta.6

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 (172) hide show
  1. package/.cache/typecheck-node.tsbuildinfo +1 -0
  2. package/README.md +418 -0
  3. package/dist/connections/mssql-db-conn.js +386 -0
  4. package/dist/connections/mssql-db-conn.js.map +7 -0
  5. package/dist/connections/mysql-db-conn.js +227 -0
  6. package/dist/connections/mysql-db-conn.js.map +7 -0
  7. package/dist/connections/postgresql-db-conn.js +191 -0
  8. package/dist/connections/postgresql-db-conn.js.map +7 -0
  9. package/dist/core-common/src/common.types.d.ts +74 -0
  10. package/dist/core-common/src/common.types.d.ts.map +1 -0
  11. package/dist/core-common/src/env.d.ts +6 -0
  12. package/dist/core-common/src/env.d.ts.map +1 -0
  13. package/dist/core-common/src/errors/argument-error.d.ts +25 -0
  14. package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
  15. package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
  16. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
  17. package/dist/core-common/src/errors/sd-error.d.ts +27 -0
  18. package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
  19. package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
  20. package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
  21. package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
  22. package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
  23. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
  24. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
  25. package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
  26. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
  27. package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
  28. package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
  29. package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
  30. package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
  31. package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
  32. package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
  33. package/dist/core-common/src/features/event-emitter.d.ts +66 -0
  34. package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
  35. package/dist/core-common/src/features/serial-queue.d.ts +47 -0
  36. package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
  37. package/dist/core-common/src/index.d.ts +32 -0
  38. package/dist/core-common/src/index.d.ts.map +1 -0
  39. package/dist/core-common/src/types/date-only.d.ts +152 -0
  40. package/dist/core-common/src/types/date-only.d.ts.map +1 -0
  41. package/dist/core-common/src/types/date-time.d.ts +96 -0
  42. package/dist/core-common/src/types/date-time.d.ts.map +1 -0
  43. package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
  44. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
  45. package/dist/core-common/src/types/time.d.ts +68 -0
  46. package/dist/core-common/src/types/time.d.ts.map +1 -0
  47. package/dist/core-common/src/types/uuid.d.ts +35 -0
  48. package/dist/core-common/src/types/uuid.d.ts.map +1 -0
  49. package/dist/core-common/src/utils/bytes.d.ts +51 -0
  50. package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
  51. package/dist/core-common/src/utils/date-format.d.ts +90 -0
  52. package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
  53. package/dist/core-common/src/utils/json.d.ts +34 -0
  54. package/dist/core-common/src/utils/json.d.ts.map +1 -0
  55. package/dist/core-common/src/utils/num.d.ts +60 -0
  56. package/dist/core-common/src/utils/num.d.ts.map +1 -0
  57. package/dist/core-common/src/utils/obj.d.ts +258 -0
  58. package/dist/core-common/src/utils/obj.d.ts.map +1 -0
  59. package/dist/core-common/src/utils/path.d.ts +23 -0
  60. package/dist/core-common/src/utils/path.d.ts.map +1 -0
  61. package/dist/core-common/src/utils/primitive.d.ts +18 -0
  62. package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
  63. package/dist/core-common/src/utils/str.d.ts +103 -0
  64. package/dist/core-common/src/utils/str.d.ts.map +1 -0
  65. package/dist/core-common/src/utils/template-strings.d.ts +84 -0
  66. package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
  67. package/dist/core-common/src/utils/transferable.d.ts +47 -0
  68. package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
  69. package/dist/core-common/src/utils/wait.d.ts +19 -0
  70. package/dist/core-common/src/utils/wait.d.ts.map +1 -0
  71. package/dist/core-common/src/utils/xml.d.ts +36 -0
  72. package/dist/core-common/src/utils/xml.d.ts.map +1 -0
  73. package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
  74. package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
  75. package/dist/db-conn-factory.js +88 -0
  76. package/dist/db-conn-factory.js.map +7 -0
  77. package/dist/index.js +9 -0
  78. package/dist/index.js.map +7 -0
  79. package/dist/node-db-context-executor.js +129 -0
  80. package/dist/node-db-context-executor.js.map +7 -0
  81. package/dist/orm-common/src/db-context.d.ts +669 -0
  82. package/dist/orm-common/src/db-context.d.ts.map +1 -0
  83. package/dist/orm-common/src/errors/db-transaction-error.d.ts +51 -0
  84. package/dist/orm-common/src/errors/db-transaction-error.d.ts.map +1 -0
  85. package/dist/orm-common/src/exec/executable.d.ts +79 -0
  86. package/dist/orm-common/src/exec/executable.d.ts.map +1 -0
  87. package/dist/orm-common/src/exec/queryable.d.ts +708 -0
  88. package/dist/orm-common/src/exec/queryable.d.ts.map +1 -0
  89. package/dist/orm-common/src/exec/search-parser.d.ts +72 -0
  90. package/dist/orm-common/src/exec/search-parser.d.ts.map +1 -0
  91. package/dist/orm-common/src/expr/expr-unit.d.ts +25 -0
  92. package/dist/orm-common/src/expr/expr-unit.d.ts.map +1 -0
  93. package/dist/orm-common/src/expr/expr.d.ts +1369 -0
  94. package/dist/orm-common/src/expr/expr.d.ts.map +1 -0
  95. package/dist/orm-common/src/index.d.ts +32 -0
  96. package/dist/orm-common/src/index.d.ts.map +1 -0
  97. package/dist/orm-common/src/models/system-migration.d.ts +10 -0
  98. package/dist/orm-common/src/models/system-migration.d.ts.map +1 -0
  99. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts +95 -0
  100. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts.map +1 -0
  101. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts +66 -0
  102. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts.map +1 -0
  103. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts +84 -0
  104. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -0
  105. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts +45 -0
  106. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts.map +1 -0
  107. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts +84 -0
  108. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -0
  109. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts +54 -0
  110. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts.map +1 -0
  111. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts +84 -0
  112. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -0
  113. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts +52 -0
  114. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -0
  115. package/dist/orm-common/src/query-builder/query-builder.d.ts +7 -0
  116. package/dist/orm-common/src/query-builder/query-builder.d.ts.map +1 -0
  117. package/dist/orm-common/src/schema/factory/column-builder.d.ts +394 -0
  118. package/dist/orm-common/src/schema/factory/column-builder.d.ts.map +1 -0
  119. package/dist/orm-common/src/schema/factory/index-builder.d.ts +151 -0
  120. package/dist/orm-common/src/schema/factory/index-builder.d.ts.map +1 -0
  121. package/dist/orm-common/src/schema/factory/relation-builder.d.ts +337 -0
  122. package/dist/orm-common/src/schema/factory/relation-builder.d.ts.map +1 -0
  123. package/dist/orm-common/src/schema/procedure-builder.d.ts +202 -0
  124. package/dist/orm-common/src/schema/procedure-builder.d.ts.map +1 -0
  125. package/dist/orm-common/src/schema/table-builder.d.ts +259 -0
  126. package/dist/orm-common/src/schema/table-builder.d.ts.map +1 -0
  127. package/dist/orm-common/src/schema/view-builder.d.ts +183 -0
  128. package/dist/orm-common/src/schema/view-builder.d.ts.map +1 -0
  129. package/dist/orm-common/src/types/column.d.ts +172 -0
  130. package/dist/orm-common/src/types/column.d.ts.map +1 -0
  131. package/dist/orm-common/src/types/db.d.ts +175 -0
  132. package/dist/orm-common/src/types/db.d.ts.map +1 -0
  133. package/dist/orm-common/src/types/expr.d.ts +474 -0
  134. package/dist/orm-common/src/types/expr.d.ts.map +1 -0
  135. package/dist/orm-common/src/types/query-def.d.ts +351 -0
  136. package/dist/orm-common/src/types/query-def.d.ts.map +1 -0
  137. package/dist/orm-common/src/utils/result-parser.d.ts +38 -0
  138. package/dist/orm-common/src/utils/result-parser.d.ts.map +1 -0
  139. package/dist/orm-node/src/connections/mssql-db-conn.d.ts +44 -0
  140. package/dist/orm-node/src/connections/mssql-db-conn.d.ts.map +1 -0
  141. package/dist/orm-node/src/connections/mysql-db-conn.d.ts +38 -0
  142. package/dist/orm-node/src/connections/mysql-db-conn.d.ts.map +1 -0
  143. package/dist/orm-node/src/connections/postgresql-db-conn.d.ts +39 -0
  144. package/dist/orm-node/src/connections/postgresql-db-conn.d.ts.map +1 -0
  145. package/dist/orm-node/src/db-conn-factory.d.ts +25 -0
  146. package/dist/orm-node/src/db-conn-factory.d.ts.map +1 -0
  147. package/dist/orm-node/src/index.d.ts +9 -0
  148. package/dist/orm-node/src/index.d.ts.map +1 -0
  149. package/dist/orm-node/src/node-db-context-executor.d.ts +77 -0
  150. package/dist/orm-node/src/node-db-context-executor.d.ts.map +1 -0
  151. package/dist/orm-node/src/pooled-db-conn.d.ts +79 -0
  152. package/dist/orm-node/src/pooled-db-conn.d.ts.map +1 -0
  153. package/dist/orm-node/src/sd-orm.d.ts +78 -0
  154. package/dist/orm-node/src/sd-orm.d.ts.map +1 -0
  155. package/dist/orm-node/src/types/db-conn.d.ts +159 -0
  156. package/dist/orm-node/src/types/db-conn.d.ts.map +1 -0
  157. package/dist/pooled-db-conn.js +134 -0
  158. package/dist/pooled-db-conn.js.map +7 -0
  159. package/dist/sd-orm.js +44 -0
  160. package/dist/sd-orm.js.map +7 -0
  161. package/dist/types/db-conn.js +17 -0
  162. package/dist/types/db-conn.js.map +7 -0
  163. package/package.json +50 -0
  164. package/src/connections/mssql-db-conn.ts +483 -0
  165. package/src/connections/mysql-db-conn.ts +299 -0
  166. package/src/connections/postgresql-db-conn.ts +254 -0
  167. package/src/db-conn-factory.ts +114 -0
  168. package/src/index.ts +13 -0
  169. package/src/node-db-context-executor.ts +162 -0
  170. package/src/pooled-db-conn.ts +175 -0
  171. package/src/sd-orm.ts +102 -0
  172. package/src/types/db-conn.ts +196 -0
@@ -0,0 +1,474 @@
1
+ import type { ColumnPrimitive, DataType } from "./column";
2
+ import type { SelectQueryDef } from "./query-def";
3
+ /**
4
+ * 날짜 연산 단위
5
+ *
6
+ * dateDiff, dateAdd 등 날짜 함수에서 사용
7
+ */
8
+ export type DateSeparator = "year" | "month" | "day" | "hour" | "minute" | "second";
9
+ /**
10
+ * 컬럼 참조 표현식
11
+ *
12
+ * @property path - 컬럼 경로 (테이블별칭.컬럼명 등)
13
+ */
14
+ export interface ExprColumn {
15
+ type: "column";
16
+ path: string[];
17
+ }
18
+ /**
19
+ * 리터럴 값 표현식
20
+ *
21
+ * @property value - 컬럼 프리미티브 값
22
+ */
23
+ export interface ExprValue {
24
+ type: "value";
25
+ value: ColumnPrimitive;
26
+ }
27
+ /**
28
+ * Raw SQL 표현식
29
+ *
30
+ * @property sql - SQL 문자열 (파라미터는 {0}, {1}로 표시)
31
+ * @property params - 파라미터 표현식 배열
32
+ */
33
+ export interface ExprRaw {
34
+ type: "raw";
35
+ sql: string;
36
+ params: Expr[];
37
+ }
38
+ /** 동등 비교 (=) - NULL-safe */
39
+ export interface ExprEq {
40
+ type: "eq";
41
+ source: Expr;
42
+ target: Expr;
43
+ }
44
+ /** 초과 비교 (>) */
45
+ export interface ExprGt {
46
+ type: "gt";
47
+ source: Expr;
48
+ target: Expr;
49
+ }
50
+ /** 미만 비교 (<) */
51
+ export interface ExprLt {
52
+ type: "lt";
53
+ source: Expr;
54
+ target: Expr;
55
+ }
56
+ /** 이상 비교 (>=) */
57
+ export interface ExprGte {
58
+ type: "gte";
59
+ source: Expr;
60
+ target: Expr;
61
+ }
62
+ /** 이하 비교 (<=) */
63
+ export interface ExprLte {
64
+ type: "lte";
65
+ source: Expr;
66
+ target: Expr;
67
+ }
68
+ /** 범위 비교 (BETWEEN from AND to) */
69
+ export interface ExprBetween {
70
+ type: "between";
71
+ source: Expr;
72
+ from?: Expr;
73
+ to?: Expr;
74
+ }
75
+ /** NULL 검사 (IS NULL) */
76
+ export interface ExprIsNull {
77
+ type: "null";
78
+ arg: Expr;
79
+ }
80
+ /** 패턴 매칭 (LIKE) */
81
+ export interface ExprLike {
82
+ type: "like";
83
+ source: Expr;
84
+ pattern: Expr;
85
+ }
86
+ /** 정규식 매칭 (REGEXP) */
87
+ export interface ExprRegexp {
88
+ type: "regexp";
89
+ source: Expr;
90
+ pattern: Expr;
91
+ }
92
+ /** 값 목록 포함 검사 (IN) */
93
+ export interface ExprIn {
94
+ type: "in";
95
+ source: Expr;
96
+ values: Expr[];
97
+ }
98
+ /** 서브쿼리 결과 포함 검사 (IN subquery) */
99
+ export interface ExprInQuery {
100
+ type: "inQuery";
101
+ source: Expr;
102
+ query: SelectQueryDef;
103
+ }
104
+ /** 서브쿼리 존재 검사 (EXISTS) */
105
+ export interface ExprExists {
106
+ type: "exists";
107
+ query: SelectQueryDef;
108
+ }
109
+ /** 논리 부정 (NOT) */
110
+ export interface ExprNot {
111
+ type: "not";
112
+ arg: WhereExpr;
113
+ }
114
+ /** 논리 곱 (AND) */
115
+ export interface ExprAnd {
116
+ type: "and";
117
+ conditions: WhereExpr[];
118
+ }
119
+ /** 논리 합 (OR) */
120
+ export interface ExprOr {
121
+ type: "or";
122
+ conditions: WhereExpr[];
123
+ }
124
+ /** 문자열 연결 (CONCAT) */
125
+ export interface ExprConcat {
126
+ type: "concat";
127
+ args: Expr[];
128
+ }
129
+ /** 왼쪽 N자 추출 (LEFT) */
130
+ export interface ExprLeft {
131
+ type: "left";
132
+ source: Expr;
133
+ length: Expr;
134
+ }
135
+ /** 오른쪽 N자 추출 (RIGHT) */
136
+ export interface ExprRight {
137
+ type: "right";
138
+ source: Expr;
139
+ length: Expr;
140
+ }
141
+ /** 좌우 공백 제거 (TRIM) */
142
+ export interface ExprTrim {
143
+ type: "trim";
144
+ arg: Expr;
145
+ }
146
+ /** 왼쪽 패딩 (LPAD) */
147
+ export interface ExprPadStart {
148
+ type: "padStart";
149
+ source: Expr;
150
+ length: Expr;
151
+ fillString: Expr;
152
+ }
153
+ /** 문자열 치환 (REPLACE) */
154
+ export interface ExprReplace {
155
+ type: "replace";
156
+ source: Expr;
157
+ from: Expr;
158
+ to: Expr;
159
+ }
160
+ /** 대문자 변환 (UPPER) */
161
+ export interface ExprUpper {
162
+ type: "upper";
163
+ arg: Expr;
164
+ }
165
+ /** 소문자 변환 (LOWER) */
166
+ export interface ExprLower {
167
+ type: "lower";
168
+ arg: Expr;
169
+ }
170
+ /** 문자 길이 (CHAR_LENGTH) */
171
+ export interface ExprLength {
172
+ type: "length";
173
+ arg: Expr;
174
+ }
175
+ /** 바이트 길이 (LENGTH/DATALENGTH) */
176
+ export interface ExprByteLength {
177
+ type: "byteLength";
178
+ arg: Expr;
179
+ }
180
+ /** 부분 문자열 (SUBSTRING) */
181
+ export interface ExprSubstring {
182
+ type: "substring";
183
+ source: Expr;
184
+ start: Expr;
185
+ length?: Expr;
186
+ }
187
+ /** 문자열 위치 (LOCATE/CHARINDEX/POSITION) */
188
+ export interface ExprIndexOf {
189
+ type: "indexOf";
190
+ source: Expr;
191
+ search: Expr;
192
+ }
193
+ /** 절대값 (ABS) */
194
+ export interface ExprAbs {
195
+ type: "abs";
196
+ arg: Expr;
197
+ }
198
+ /** 반올림 (ROUND) */
199
+ export interface ExprRound {
200
+ type: "round";
201
+ arg: Expr;
202
+ digits: number;
203
+ }
204
+ /** 올림 (CEIL) */
205
+ export interface ExprCeil {
206
+ type: "ceil";
207
+ arg: Expr;
208
+ }
209
+ /** 내림 (FLOOR) */
210
+ export interface ExprFloor {
211
+ type: "floor";
212
+ arg: Expr;
213
+ }
214
+ /** 연도 추출 (YEAR) */
215
+ export interface ExprYear {
216
+ type: "year";
217
+ arg: Expr;
218
+ }
219
+ /** 월 추출 (MONTH) */
220
+ export interface ExprMonth {
221
+ type: "month";
222
+ arg: Expr;
223
+ }
224
+ /** 일 추출 (DAY) */
225
+ export interface ExprDay {
226
+ type: "day";
227
+ arg: Expr;
228
+ }
229
+ /** 시간 추출 (HOUR) */
230
+ export interface ExprHour {
231
+ type: "hour";
232
+ arg: Expr;
233
+ }
234
+ /** 분 추출 (MINUTE) */
235
+ export interface ExprMinute {
236
+ type: "minute";
237
+ arg: Expr;
238
+ }
239
+ /** 초 추출 (SECOND) */
240
+ export interface ExprSecond {
241
+ type: "second";
242
+ arg: Expr;
243
+ }
244
+ /** ISO 주차 (WEEK) */
245
+ export interface ExprIsoWeek {
246
+ type: "isoWeek";
247
+ arg: Expr;
248
+ }
249
+ /** ISO 주 시작일 */
250
+ export interface ExprIsoWeekStartDate {
251
+ type: "isoWeekStartDate";
252
+ arg: Expr;
253
+ }
254
+ /** ISO 연월 (YYYYMM 형식) */
255
+ export interface ExprIsoYearMonth {
256
+ type: "isoYearMonth";
257
+ arg: Expr;
258
+ }
259
+ /** 날짜 차이 (DATEDIFF) */
260
+ export interface ExprDateDiff {
261
+ type: "dateDiff";
262
+ separator: DateSeparator;
263
+ from: Expr;
264
+ to: Expr;
265
+ }
266
+ /** 날짜 연산 (DATEADD) */
267
+ export interface ExprDateAdd {
268
+ type: "dateAdd";
269
+ separator: DateSeparator;
270
+ source: Expr;
271
+ value: Expr;
272
+ }
273
+ /** 날짜 포맷 (FORMAT/DATE_FORMAT) */
274
+ export interface ExprFormatDate {
275
+ type: "formatDate";
276
+ source: Expr;
277
+ format: string;
278
+ }
279
+ /** NULL 대체 (COALESCE - 첫 번째 non-null 반환) */
280
+ export interface ExprIfNull {
281
+ type: "ifNull";
282
+ args: Expr[];
283
+ }
284
+ /** 조건부 NULL (NULLIF - source === value 이면 NULL) */
285
+ export interface ExprNullIf {
286
+ type: "nullIf";
287
+ source: Expr;
288
+ value: Expr;
289
+ }
290
+ /** 조건을 값으로 변환 (boolean → 0/1) */
291
+ export interface ExprIs {
292
+ type: "is";
293
+ condition: WhereExpr;
294
+ }
295
+ /** CASE WHEN 표현식 */
296
+ export interface ExprSwitch {
297
+ type: "switch";
298
+ cases: {
299
+ when: WhereExpr;
300
+ then: Expr;
301
+ }[];
302
+ else: Expr;
303
+ }
304
+ /** IF 표현식 (IIF/IF) */
305
+ export interface ExprIf {
306
+ type: "if";
307
+ condition: WhereExpr;
308
+ then: Expr;
309
+ else?: Expr;
310
+ }
311
+ /** 레코드 수 (COUNT) */
312
+ export interface ExprCount {
313
+ type: "count";
314
+ arg?: Expr;
315
+ distinct?: boolean;
316
+ }
317
+ /** 합계 (SUM) */
318
+ export interface ExprSum {
319
+ type: "sum";
320
+ arg: Expr;
321
+ }
322
+ /** 평균 (AVG) */
323
+ export interface ExprAvg {
324
+ type: "avg";
325
+ arg: Expr;
326
+ }
327
+ /** 최대값 (MAX) */
328
+ export interface ExprMax {
329
+ type: "max";
330
+ arg: Expr;
331
+ }
332
+ /** 최소값 (MIN) */
333
+ export interface ExprMin {
334
+ type: "min";
335
+ arg: Expr;
336
+ }
337
+ /** 최대값 선택 (GREATEST) */
338
+ export interface ExprGreatest {
339
+ type: "greatest";
340
+ args: Expr[];
341
+ }
342
+ /** 최소값 선택 (LEAST) */
343
+ export interface ExprLeast {
344
+ type: "least";
345
+ args: Expr[];
346
+ }
347
+ /** 행 번호 (ROW_NUMBER 단순 버전) */
348
+ export interface ExprRowNum {
349
+ type: "rowNum";
350
+ }
351
+ /** 난수 (RAND/RANDOM) */
352
+ export interface ExprRandom {
353
+ type: "random";
354
+ }
355
+ /** 타입 변환 (CAST) */
356
+ export interface ExprCast {
357
+ type: "cast";
358
+ source: Expr;
359
+ targetType: DataType;
360
+ }
361
+ /** ROW_NUMBER() */
362
+ export interface WinFnRowNumber {
363
+ type: "rowNumber";
364
+ }
365
+ /** RANK() */
366
+ export interface WinFnRank {
367
+ type: "rank";
368
+ }
369
+ /** DENSE_RANK() */
370
+ export interface WinFnDenseRank {
371
+ type: "denseRank";
372
+ }
373
+ /** NTILE(n) */
374
+ export interface WinFnNtile {
375
+ type: "ntile";
376
+ n: number;
377
+ }
378
+ /** LAG() - 이전 행 값 */
379
+ export interface WinFnLag {
380
+ type: "lag";
381
+ column: Expr;
382
+ offset?: number;
383
+ default?: Expr;
384
+ }
385
+ /** LEAD() - 다음 행 값 */
386
+ export interface WinFnLead {
387
+ type: "lead";
388
+ column: Expr;
389
+ offset?: number;
390
+ default?: Expr;
391
+ }
392
+ /** FIRST_VALUE() */
393
+ export interface WinFnFirstValue {
394
+ type: "firstValue";
395
+ column: Expr;
396
+ }
397
+ /** LAST_VALUE() */
398
+ export interface WinFnLastValue {
399
+ type: "lastValue";
400
+ column: Expr;
401
+ }
402
+ /** 윈도우 SUM */
403
+ export interface WinFnSum {
404
+ type: "sum";
405
+ column: Expr;
406
+ }
407
+ /** 윈도우 AVG */
408
+ export interface WinFnAvg {
409
+ type: "avg";
410
+ column: Expr;
411
+ }
412
+ /** 윈도우 COUNT */
413
+ export interface WinFnCount {
414
+ type: "count";
415
+ column?: Expr;
416
+ }
417
+ /** 윈도우 MIN */
418
+ export interface WinFnMin {
419
+ type: "min";
420
+ column: Expr;
421
+ }
422
+ /** 윈도우 MAX */
423
+ export interface WinFnMax {
424
+ type: "max";
425
+ column: Expr;
426
+ }
427
+ /**
428
+ * 윈도우 함수 유니언 타입
429
+ *
430
+ * 순위, 탐색, 집계 윈도우 함수
431
+ */
432
+ export type WinFn = WinFnRowNumber | WinFnRank | WinFnDenseRank | WinFnNtile | WinFnLag | WinFnLead | WinFnFirstValue | WinFnLastValue | WinFnSum | WinFnAvg | WinFnCount | WinFnMin | WinFnMax;
433
+ /**
434
+ * 윈도우 스펙 (OVER 절)
435
+ *
436
+ * @property partitionBy - PARTITION BY 표현식 목록
437
+ * @property orderBy - ORDER BY [컬럼, 방향] 목록
438
+ */
439
+ export interface WinSpec {
440
+ partitionBy?: Expr[];
441
+ orderBy?: [Expr, ("ASC" | "DESC")?][];
442
+ }
443
+ /**
444
+ * 윈도우 표현식
445
+ *
446
+ * 윈도우 함수 + 윈도우 스펙 조합
447
+ */
448
+ export interface ExprWindow {
449
+ type: "window";
450
+ fn: WinFn;
451
+ spec: WinSpec;
452
+ }
453
+ /** 스칼라 서브쿼리 */
454
+ export interface ExprSubquery {
455
+ type: "subquery";
456
+ queryDef: SelectQueryDef;
457
+ }
458
+ /**
459
+ * WHERE 절에 사용되는 표현식 (boolean 반환)
460
+ *
461
+ * 비교 연산 + 논리 연산의 유니언 타입
462
+ * where(), having() 등에서 사용
463
+ */
464
+ export type WhereExpr = ExprEq | ExprGt | ExprLt | ExprGte | ExprLte | ExprBetween | ExprIsNull | ExprLike | ExprRegexp | ExprIn | ExprInQuery | ExprExists | ExprNot | ExprAnd | ExprOr;
465
+ /**
466
+ * 모든 표현식 유니언 타입
467
+ *
468
+ * 값, 문자열, 숫자, 날짜, 조건, 집계, 윈도우 등 모든 표현식
469
+ * select(), orderBy() 등에서 사용
470
+ *
471
+ * @see {@link WhereExpr} WHERE 절 전용 표현식
472
+ */
473
+ export type Expr = ExprColumn | ExprValue | ExprRaw | ExprConcat | ExprLeft | ExprRight | ExprTrim | ExprPadStart | ExprReplace | ExprUpper | ExprLower | ExprLength | ExprByteLength | ExprSubstring | ExprIndexOf | ExprAbs | ExprRound | ExprCeil | ExprFloor | ExprYear | ExprMonth | ExprDay | ExprHour | ExprMinute | ExprSecond | ExprIsoWeek | ExprIsoWeekStartDate | ExprIsoYearMonth | ExprDateDiff | ExprDateAdd | ExprFormatDate | ExprIfNull | ExprNullIf | ExprIs | ExprSwitch | ExprIf | ExprCount | ExprSum | ExprAvg | ExprMax | ExprMin | ExprGreatest | ExprLeast | ExprRowNum | ExprRandom | ExprCast | ExprWindow | ExprSubquery;
474
+ //# sourceMappingURL=expr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["../../../../../orm-common/src/types/expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAIpF;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,IAAI,EAAE,CAAC;CAChB;AAMD,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,iBAAiB;AACjB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,iBAAiB;AACjB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,EAAE,CAAC,EAAE,IAAI,CAAC;CACX;AAED,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX;AAED,mBAAmB;AACnB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;CACf;AAED,sBAAsB;AACtB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;CACf;AAED,sBAAsB;AACtB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,0BAA0B;AAC1B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,cAAc,CAAC;CACvB;AAMD,kBAAkB;AAClB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,iBAAiB;AACjB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,gBAAgB;AAChB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAMD,sBAAsB;AACtB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,sBAAsB;AACtB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,wBAAwB;AACxB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAED,sBAAsB;AACtB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX;AAED,mBAAmB;AACnB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,uBAAuB;AACvB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,qBAAqB;AACrB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,IAAI,CAAC;CACX;AAED,qBAAqB;AACrB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,IAAI,CAAC;CACX;AAED,0BAA0B;AAC1B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;CACX;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,IAAI,CAAC;CACX;AAED,yBAAyB;AACzB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CACd;AAMD,gBAAgB;AAChB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAED,kBAAkB;AAClB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gBAAgB;AAChB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX;AAED,iBAAiB;AACjB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,IAAI,CAAC;CACX;AAMD,mBAAmB;AACnB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX;AAED,mBAAmB;AACnB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,IAAI,CAAC;CACX;AAED,iBAAiB;AACjB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAED,mBAAmB;AACnB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX;AAED,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;CACX;AAED,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;CACX;AAED,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;CACX;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,GAAG,EAAE,IAAI,CAAC;CACX;AAED,yBAAyB;AACzB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,IAAI,CAAC;CACX;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,sBAAsB;AACtB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;CACb;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;CACb;AAED,iCAAiC;AACjC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;IACzC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,sBAAsB;AACtB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAMD,oBAAoB;AACpB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAe;AACf,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAED,eAAe;AACf,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAED,gBAAgB;AAChB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAED,gBAAgB;AAChB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AAMD,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,qBAAqB;AACrB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,uBAAuB;AACvB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,mBAAmB;AACnB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC;CACtB;AAQD,mBAAmB;AACnB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,aAAa;AACb,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mBAAmB;AACnB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,eAAe;AACf,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;CACX;AAED,qBAAqB;AACrB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,sBAAsB;AACtB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,oBAAoB;AACpB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;CACd;AAED,mBAAmB;AACnB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC;CACd;AAED,cAAc;AACd,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;CACd;AAED,cAAc;AACd,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAED,cAAc;AACd,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;CACd;AAED,cAAc;AACd,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,KAAK,GACb,cAAc,GACd,SAAS,GACT,cAAc,GACd,UAAU,GACV,QAAQ,GACR,SAAS,GACT,eAAe,GACf,cAAc,GACd,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC;AAEb;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;CACf;AAMD,eAAe;AACf,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAEjB,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,WAAW,GACX,UAAU,GACV,QAAQ,GACR,UAAU,GACV,MAAM,GACN,WAAW,GACX,UAAU,GAGV,OAAO,GACP,OAAO,GACP,MAAM,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,MAAM,IAAI,GAEZ,UAAU,GACV,SAAS,GACT,OAAO,GAGP,UAAU,GACV,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,SAAS,GACT,SAAS,GACT,UAAU,GACV,cAAc,GACd,aAAa,GACb,WAAW,GAGX,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GAGT,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,oBAAoB,GACpB,gBAAgB,GAChB,YAAY,GACZ,WAAW,GACX,cAAc,GAGd,UAAU,GACV,UAAU,GACV,MAAM,GACN,UAAU,GACV,MAAM,GAGN,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GAGP,YAAY,GACZ,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GAGR,UAAU,GAGV,YAAY,CAAC"}