@simplysm/orm-common 13.0.99 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/create-db-context.d.ts +10 -10
  2. package/dist/create-db-context.js +312 -276
  3. package/dist/create-db-context.js.map +1 -6
  4. package/dist/ddl/column-ddl.d.ts +4 -4
  5. package/dist/ddl/column-ddl.js +41 -35
  6. package/dist/ddl/column-ddl.js.map +1 -6
  7. package/dist/ddl/initialize.d.ts +17 -17
  8. package/dist/ddl/initialize.js +200 -142
  9. package/dist/ddl/initialize.js.map +1 -6
  10. package/dist/ddl/relation-ddl.d.ts +6 -6
  11. package/dist/ddl/relation-ddl.js +55 -48
  12. package/dist/ddl/relation-ddl.js.map +1 -6
  13. package/dist/ddl/schema-ddl.d.ts +4 -4
  14. package/dist/ddl/schema-ddl.js +21 -15
  15. package/dist/ddl/schema-ddl.js.map +1 -6
  16. package/dist/ddl/table-ddl.d.ts +20 -20
  17. package/dist/ddl/table-ddl.js +139 -93
  18. package/dist/ddl/table-ddl.js.map +1 -6
  19. package/dist/define-db-context.js +10 -13
  20. package/dist/define-db-context.js.map +1 -6
  21. package/dist/errors/db-transaction-error.d.ts +15 -15
  22. package/dist/errors/db-transaction-error.d.ts.map +1 -1
  23. package/dist/errors/db-transaction-error.js +53 -19
  24. package/dist/errors/db-transaction-error.js.map +1 -6
  25. package/dist/exec/executable.d.ts +23 -23
  26. package/dist/exec/executable.js +94 -40
  27. package/dist/exec/executable.js.map +1 -6
  28. package/dist/exec/queryable.d.ts +97 -97
  29. package/dist/exec/queryable.js +1310 -1204
  30. package/dist/exec/queryable.js.map +1 -6
  31. package/dist/exec/search-parser.d.ts +31 -31
  32. package/dist/exec/search-parser.d.ts.map +1 -1
  33. package/dist/exec/search-parser.js +158 -59
  34. package/dist/exec/search-parser.js.map +1 -6
  35. package/dist/expr/expr-unit.d.ts +4 -4
  36. package/dist/expr/expr-unit.js +24 -18
  37. package/dist/expr/expr-unit.js.map +1 -6
  38. package/dist/expr/expr.d.ts +6 -6
  39. package/dist/expr/expr.js +1872 -1844
  40. package/dist/expr/expr.js.map +1 -6
  41. package/dist/index.js +23 -1
  42. package/dist/index.js.map +1 -6
  43. package/dist/models/system-migration.js +7 -7
  44. package/dist/models/system-migration.js.map +1 -6
  45. package/dist/query-builder/base/expr-renderer-base.d.ts +10 -10
  46. package/dist/query-builder/base/expr-renderer-base.js +27 -21
  47. package/dist/query-builder/base/expr-renderer-base.js.map +1 -6
  48. package/dist/query-builder/base/query-builder-base.d.ts +21 -21
  49. package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
  50. package/dist/query-builder/base/query-builder-base.js +90 -80
  51. package/dist/query-builder/base/query-builder-base.js.map +1 -6
  52. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
  53. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  54. package/dist/query-builder/mssql/mssql-expr-renderer.js +447 -420
  55. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -6
  56. package/dist/query-builder/mssql/mssql-query-builder.js +483 -443
  57. package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -6
  58. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
  59. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  60. package/dist/query-builder/mysql/mysql-expr-renderer.js +451 -419
  61. package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -6
  62. package/dist/query-builder/mysql/mysql-query-builder.js +570 -479
  63. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -6
  64. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
  65. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  66. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +449 -422
  67. package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -6
  68. package/dist/query-builder/postgresql/postgresql-query-builder.js +511 -460
  69. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -6
  70. package/dist/query-builder/query-builder.d.ts +1 -1
  71. package/dist/query-builder/query-builder.js +13 -13
  72. package/dist/query-builder/query-builder.js.map +1 -6
  73. package/dist/schema/factory/column-builder.d.ts +84 -84
  74. package/dist/schema/factory/column-builder.js +248 -185
  75. package/dist/schema/factory/column-builder.js.map +1 -6
  76. package/dist/schema/factory/index-builder.d.ts +38 -38
  77. package/dist/schema/factory/index-builder.js +144 -85
  78. package/dist/schema/factory/index-builder.js.map +1 -6
  79. package/dist/schema/factory/relation-builder.d.ts +91 -91
  80. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  81. package/dist/schema/factory/relation-builder.js +274 -136
  82. package/dist/schema/factory/relation-builder.js.map +1 -6
  83. package/dist/schema/procedure-builder.d.ts +51 -51
  84. package/dist/schema/procedure-builder.d.ts.map +1 -1
  85. package/dist/schema/procedure-builder.js +205 -131
  86. package/dist/schema/procedure-builder.js.map +1 -6
  87. package/dist/schema/table-builder.d.ts +55 -55
  88. package/dist/schema/table-builder.d.ts.map +1 -1
  89. package/dist/schema/table-builder.js +274 -205
  90. package/dist/schema/table-builder.js.map +1 -6
  91. package/dist/schema/view-builder.d.ts +44 -44
  92. package/dist/schema/view-builder.d.ts.map +1 -1
  93. package/dist/schema/view-builder.js +189 -116
  94. package/dist/schema/view-builder.js.map +1 -6
  95. package/dist/types/column.js +60 -30
  96. package/dist/types/column.js.map +1 -6
  97. package/dist/types/db-context-def.d.ts +9 -9
  98. package/dist/types/db-context-def.js +2 -1
  99. package/dist/types/db-context-def.js.map +1 -6
  100. package/dist/types/db.d.ts +47 -47
  101. package/dist/types/db.js +15 -5
  102. package/dist/types/db.js.map +1 -6
  103. package/dist/types/expr.d.ts +81 -81
  104. package/dist/types/expr.d.ts.map +1 -1
  105. package/dist/types/expr.js +3 -1
  106. package/dist/types/expr.js.map +1 -6
  107. package/dist/types/query-def.d.ts +46 -46
  108. package/dist/types/query-def.d.ts.map +1 -1
  109. package/dist/types/query-def.js +31 -24
  110. package/dist/types/query-def.js.map +1 -6
  111. package/dist/utils/result-parser.js +362 -221
  112. package/dist/utils/result-parser.js.map +1 -6
  113. package/package.json +5 -7
  114. package/src/create-db-context.ts +31 -31
  115. package/src/ddl/column-ddl.ts +4 -4
  116. package/src/ddl/initialize.ts +38 -38
  117. package/src/ddl/relation-ddl.ts +6 -6
  118. package/src/ddl/schema-ddl.ts +4 -4
  119. package/src/ddl/table-ddl.ts +24 -24
  120. package/src/errors/db-transaction-error.ts +13 -13
  121. package/src/exec/executable.ts +25 -25
  122. package/src/exec/queryable.ts +134 -134
  123. package/src/exec/search-parser.ts +50 -50
  124. package/src/expr/expr-unit.ts +4 -4
  125. package/src/expr/expr.ts +13 -13
  126. package/src/index.ts +8 -8
  127. package/src/models/system-migration.ts +1 -1
  128. package/src/query-builder/base/expr-renderer-base.ts +21 -21
  129. package/src/query-builder/base/query-builder-base.ts +33 -33
  130. package/src/query-builder/mssql/mssql-expr-renderer.ts +11 -11
  131. package/src/query-builder/mssql/mssql-query-builder.ts +11 -11
  132. package/src/query-builder/mysql/mysql-expr-renderer.ts +15 -15
  133. package/src/query-builder/mysql/mysql-query-builder.ts +3 -3
  134. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +9 -9
  135. package/src/query-builder/postgresql/postgresql-query-builder.ts +7 -7
  136. package/src/query-builder/query-builder.ts +1 -1
  137. package/src/schema/factory/column-builder.ts +86 -86
  138. package/src/schema/factory/index-builder.ts +38 -38
  139. package/src/schema/factory/relation-builder.ts +93 -93
  140. package/src/schema/procedure-builder.ts +52 -52
  141. package/src/schema/table-builder.ts +56 -56
  142. package/src/schema/view-builder.ts +45 -45
  143. package/src/types/column.ts +1 -1
  144. package/src/types/db-context-def.ts +15 -15
  145. package/src/types/db.ts +50 -50
  146. package/src/types/expr.ts +103 -103
  147. package/src/types/query-def.ts +50 -50
  148. package/src/utils/result-parser.ts +39 -39
  149. package/README.md +0 -192
  150. package/docs/core.md +0 -234
  151. package/docs/expression.md +0 -234
  152. package/docs/query-builder.md +0 -93
  153. package/docs/queryable.md +0 -198
  154. package/docs/schema-builders.md +0 -463
  155. package/docs/types.md +0 -445
  156. package/docs/utilities.md +0 -27
  157. package/tests/db-context/create-db-context.spec.ts +0 -193
  158. package/tests/db-context/define-db-context.spec.ts +0 -17
  159. package/tests/ddl/basic.expected.ts +0 -341
  160. package/tests/ddl/basic.spec.ts +0 -557
  161. package/tests/ddl/column-builder.expected.ts +0 -310
  162. package/tests/ddl/column-builder.spec.ts +0 -525
  163. package/tests/ddl/index-builder.expected.ts +0 -38
  164. package/tests/ddl/index-builder.spec.ts +0 -148
  165. package/tests/ddl/procedure-builder.expected.ts +0 -52
  166. package/tests/ddl/procedure-builder.spec.ts +0 -128
  167. package/tests/ddl/relation-builder.expected.ts +0 -36
  168. package/tests/ddl/relation-builder.spec.ts +0 -171
  169. package/tests/ddl/table-builder.expected.ts +0 -113
  170. package/tests/ddl/table-builder.spec.ts +0 -399
  171. package/tests/ddl/view-builder.expected.ts +0 -38
  172. package/tests/ddl/view-builder.spec.ts +0 -116
  173. package/tests/dml/delete.expected.ts +0 -96
  174. package/tests/dml/delete.spec.ts +0 -127
  175. package/tests/dml/insert.expected.ts +0 -192
  176. package/tests/dml/insert.spec.ts +0 -210
  177. package/tests/dml/update.expected.ts +0 -176
  178. package/tests/dml/update.spec.ts +0 -222
  179. package/tests/dml/upsert.expected.ts +0 -215
  180. package/tests/dml/upsert.spec.ts +0 -190
  181. package/tests/errors/queryable-errors.spec.ts +0 -126
  182. package/tests/escape.spec.ts +0 -59
  183. package/tests/examples/pivot.expected.ts +0 -211
  184. package/tests/examples/pivot.spec.ts +0 -200
  185. package/tests/examples/sampling.expected.ts +0 -69
  186. package/tests/examples/sampling.spec.ts +0 -42
  187. package/tests/examples/unpivot.expected.ts +0 -120
  188. package/tests/examples/unpivot.spec.ts +0 -161
  189. package/tests/exec/search-parser.spec.ts +0 -267
  190. package/tests/executable/basic.expected.ts +0 -18
  191. package/tests/executable/basic.spec.ts +0 -54
  192. package/tests/expr/comparison.expected.ts +0 -282
  193. package/tests/expr/comparison.spec.ts +0 -334
  194. package/tests/expr/conditional.expected.ts +0 -134
  195. package/tests/expr/conditional.spec.ts +0 -249
  196. package/tests/expr/date.expected.ts +0 -332
  197. package/tests/expr/date.spec.ts +0 -459
  198. package/tests/expr/math.expected.ts +0 -62
  199. package/tests/expr/math.spec.ts +0 -59
  200. package/tests/expr/string.expected.ts +0 -218
  201. package/tests/expr/string.spec.ts +0 -300
  202. package/tests/expr/utility.expected.ts +0 -147
  203. package/tests/expr/utility.spec.ts +0 -155
  204. package/tests/select/basic.expected.ts +0 -322
  205. package/tests/select/basic.spec.ts +0 -433
  206. package/tests/select/filter.expected.ts +0 -357
  207. package/tests/select/filter.spec.ts +0 -954
  208. package/tests/select/group.expected.ts +0 -169
  209. package/tests/select/group.spec.ts +0 -159
  210. package/tests/select/join.expected.ts +0 -582
  211. package/tests/select/join.spec.ts +0 -692
  212. package/tests/select/order.expected.ts +0 -150
  213. package/tests/select/order.spec.ts +0 -140
  214. package/tests/select/recursive-cte.expected.ts +0 -244
  215. package/tests/select/recursive-cte.spec.ts +0 -514
  216. package/tests/select/result-meta.spec.ts +0 -270
  217. package/tests/select/subquery.expected.ts +0 -363
  218. package/tests/select/subquery.spec.ts +0 -441
  219. package/tests/select/view.expected.ts +0 -155
  220. package/tests/select/view.spec.ts +0 -235
  221. package/tests/select/window.expected.ts +0 -345
  222. package/tests/select/window.spec.ts +0 -433
  223. package/tests/setup/MockExecutor.ts +0 -18
  224. package/tests/setup/TestDbContext.ts +0 -59
  225. package/tests/setup/models/Company.ts +0 -13
  226. package/tests/setup/models/Employee.ts +0 -10
  227. package/tests/setup/models/MonthlySales.ts +0 -11
  228. package/tests/setup/models/Post.ts +0 -16
  229. package/tests/setup/models/Sales.ts +0 -10
  230. package/tests/setup/models/User.ts +0 -19
  231. package/tests/setup/procedure/GetAllUsers.ts +0 -9
  232. package/tests/setup/procedure/GetUserById.ts +0 -12
  233. package/tests/setup/test-utils.ts +0 -72
  234. package/tests/setup/views/ActiveUsers.ts +0 -8
  235. package/tests/setup/views/UserSummary.ts +0 -11
  236. package/tests/types/nullable-queryable-record.spec.ts +0 -97
  237. package/tests/utils/result-parser-perf.spec.ts +0 -143
  238. package/tests/utils/result-parser.spec.ts +0 -667
@@ -1,142 +1,280 @@
1
1
  import {} from "./column-builder.js";
2
- class ForeignKeyBuilder {
3
- /**
4
- * @param meta - FK Metadata
5
- * @param meta.ownerFn - Owner Table factory
6
- * @param meta.columns - FK column name array
7
- * @param meta.targetFn - Target Table factory
8
- * @param meta.description - Relation description
9
- */
10
- constructor(meta) {
11
- this.meta = meta;
12
- }
13
- /**
14
- * Set relation description
15
- *
16
- * @param desc - Relation description
17
- * @returns New ForeignKeyBuilder instance
18
- */
19
- description(desc) {
20
- return new ForeignKeyBuilder({ ...this.meta, description: desc });
21
- }
22
- }
23
- class ForeignKeyTargetBuilder {
24
- /**
25
- * @param meta - FK reverse-reference Metadata
26
- * @param meta.targetTableFn - Referencing Table factory
27
- * @param meta.relationName - FK relation name of the referencing Table
28
- * @param meta.description - Relation description
29
- * @param meta.isSingle - Whether it is a single object
30
- */
31
- constructor(meta) {
32
- this.meta = meta;
33
- }
34
- /**
35
- * Set relation description
36
- *
37
- * @param desc - Relation description
38
- * @returns New ForeignKeyTargetBuilder instance
39
- */
40
- description(desc) {
41
- return new ForeignKeyTargetBuilder({ ...this.meta, description: desc });
42
- }
43
- /**
44
- * Set as single object relation (1:1)
45
- *
46
- * Default is array (1:N), single object when single() is called
47
- *
48
- * @returns New ForeignKeyTargetBuilder instance (isSingle=true)
49
- *
50
- * @example
51
- * ```typescript
52
- * profile: r.foreignKeyTarget(() => Profile, "user").single()
53
- * ```
54
- */
55
- single() {
56
- return new ForeignKeyTargetBuilder({ ...this.meta, isSingle: true });
57
- }
2
+ // ============================================
3
+ // ForeignKeyBuilder
4
+ // ============================================
5
+ /**
6
+ * Foreign Key 관계 builder (N:1)
7
+ *
8
+ * 현재 Table에서 대상 Table로의 FK 관계를 정의
9
+ * DB에 실제 FK 제약조건을 생성
10
+ *
11
+ * @template TOwner - 소유 Table builder 타입
12
+ * @template TTargetFn - 대상 Table builder factory 타입
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const Post = Table("Post")
17
+ * .columns((c) => ({
18
+ * id: c.bigint().autoIncrement(),
19
+ * authorId: c.bigint(), // FK column
20
+ * }))
21
+ * .primaryKey("id")
22
+ * .relations((r) => ({
23
+ * // N:1 relationship - Post → User
24
+ * author: r.foreignKey(["authorId"], () => User),
25
+ * }));
26
+ * ```
27
+ *
28
+ * @see {@link ForeignKeyTargetBuilder} 역참조 builder
29
+ * @see {@link RelationKeyBuilder} DB FK 없는 관계
30
+ */
31
+ export class ForeignKeyBuilder {
32
+ meta;
33
+ /**
34
+ * @param meta - FK 메타데이터
35
+ * @param meta.ownerFn - 소유 Table factory
36
+ * @param meta.columns - FK column 이름 배열
37
+ * @param meta.targetFn - 대상 Table factory
38
+ * @param meta.description - 관계 설명
39
+ */
40
+ constructor(meta) {
41
+ this.meta = meta;
42
+ }
43
+ /**
44
+ * 관계 설명 설정
45
+ *
46
+ * @param desc - 관계 설명
47
+ * @returns 새 ForeignKeyBuilder 인스턴스
48
+ */
49
+ description(desc) {
50
+ return new ForeignKeyBuilder({ ...this.meta, description: desc });
51
+ }
58
52
  }
59
- class RelationKeyBuilder {
60
- /**
61
- * @param meta - Relation Metadata
62
- * @param meta.ownerFn - Owner Table/View factory
63
- * @param meta.columns - Relation column name array
64
- * @param meta.targetFn - Target Table/View factory
65
- * @param meta.description - Relation description
66
- */
67
- constructor(meta) {
68
- this.meta = meta;
69
- }
70
- /**
71
- * Set relation description
72
- *
73
- * @param desc - Relation description
74
- * @returns New RelationKeyBuilder instance
75
- */
76
- description(desc) {
77
- return new RelationKeyBuilder({ ...this.meta, description: desc });
78
- }
53
+ /**
54
+ * Foreign Key 역참조 builder (1:N)
55
+ *
56
+ * 다른 Table이 현재 Table 참조하는 FK의 역참조를 정의
57
+ * include() 배열로 로드됨 (single() 호출 시 단일 객체)
58
+ *
59
+ * @template TTargetTableFn - 참조하는 Table builder factory 타입
60
+ * @template TIsSingle - 단일 객체 여부
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const User = Table("User")
65
+ * .columns((c) => ({
66
+ * id: c.bigint().autoIncrement(),
67
+ * name: c.varchar(100),
68
+ * }))
69
+ * .primaryKey("id")
70
+ * .relations((r) => ({
71
+ * // 1:N relationship - User ← Post.author
72
+ * posts: r.foreignKeyTarget(() => Post, "author"),
73
+ *
74
+ * // 1:1 relation (single object)
75
+ * profile: r.foreignKeyTarget(() => Profile, "user").single(),
76
+ * }));
77
+ * ```
78
+ *
79
+ * @see {@link ForeignKeyBuilder} FK builder
80
+ */
81
+ export class ForeignKeyTargetBuilder {
82
+ meta;
83
+ /**
84
+ * @param meta - FK 역참조 메타데이터
85
+ * @param meta.targetTableFn - 참조하는 Table factory
86
+ * @param meta.relationName - 참조하는 Table의 FK 관계 이름
87
+ * @param meta.description - 관계 설명
88
+ * @param meta.isSingle - 단일 객체 여부
89
+ */
90
+ constructor(meta) {
91
+ this.meta = meta;
92
+ }
93
+ /**
94
+ * 관계 설명 설정
95
+ *
96
+ * @param desc - 관계 설명
97
+ * @returns 새 ForeignKeyTargetBuilder 인스턴스
98
+ */
99
+ description(desc) {
100
+ return new ForeignKeyTargetBuilder({ ...this.meta, description: desc });
101
+ }
102
+ /**
103
+ * 단일 객체 관계로 설정 (1:1)
104
+ *
105
+ * 기본값은 배열(1:N), single() 호출 시 단일 객체
106
+ *
107
+ * @returns 새 ForeignKeyTargetBuilder 인스턴스 (isSingle=true)
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * profile: r.foreignKeyTarget(() => Profile, "user").single()
112
+ * ```
113
+ */
114
+ single() {
115
+ return new ForeignKeyTargetBuilder({ ...this.meta, isSingle: true });
116
+ }
79
117
  }
80
- class RelationKeyTargetBuilder {
81
- /**
82
- * @param meta - Relation reverse-reference Metadata
83
- * @param meta.targetTableFn - Referencing Table/View factory
84
- * @param meta.relationName - Relation name of the referencing Table/View
85
- * @param meta.description - Relation description
86
- * @param meta.isSingle - Whether it is a single object
87
- */
88
- constructor(meta) {
89
- this.meta = meta;
90
- }
91
- /**
92
- * Set relation description
93
- *
94
- * @param desc - Relation description
95
- * @returns New RelationKeyTargetBuilder instance
96
- */
97
- description(desc) {
98
- return new RelationKeyTargetBuilder({ ...this.meta, description: desc });
99
- }
100
- /**
101
- * Set as single object relation (1:1)
102
- *
103
- * Default is array (1:N), single object when single() is called
104
- *
105
- * @returns New RelationKeyTargetBuilder instance (isSingle=true)
106
- */
107
- single() {
108
- return new RelationKeyTargetBuilder({ ...this.meta, isSingle: true });
109
- }
118
+ // ============================================
119
+ // RelationKeyBuilder (same as FK but does not register FK in DB)
120
+ // ============================================
121
+ /**
122
+ * 논리적 관계 builder (N:1) - DB FK 미생성
123
+ *
124
+ * ForeignKeyBuilder와 동일하지만 DB에 FK 제약조건을 생성하지 않음
125
+ * View에서도 사용 가능
126
+ *
127
+ * @template TOwner - 소유 Table/View builder 타입
128
+ * @template TTargetFn - 대상 Table/View builder factory 타입
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * // Relation definition from View to Table
133
+ * const UserSummary = View("UserSummary")
134
+ * .query((db: MyDb) => db.user().select(...))
135
+ * .relations((r) => ({
136
+ * // View Table (no FK creation)
137
+ * company: r.relationKey(["companyId"], () => Company),
138
+ * }));
139
+ *
140
+ * // Relation definition from Table without FK
141
+ * const Report = Table("Report")
142
+ * .columns((c) => ({ userId: c.bigint() }))
143
+ * .relations((r) => ({
144
+ * user: r.relationKey(["userId"], () => User),
145
+ * }));
146
+ * ```
147
+ *
148
+ * @see {@link ForeignKeyBuilder} DB FK 생성 버전
149
+ */
150
+ export class RelationKeyBuilder {
151
+ meta;
152
+ /**
153
+ * @param meta - 관계 메타데이터
154
+ * @param meta.ownerFn - 소유 Table/View factory
155
+ * @param meta.columns - 관계 column 이름 배열
156
+ * @param meta.targetFn - 대상 Table/View factory
157
+ * @param meta.description - 관계 설명
158
+ */
159
+ constructor(meta) {
160
+ this.meta = meta;
161
+ }
162
+ /**
163
+ * 관계 설명 설정
164
+ *
165
+ * @param desc - 관계 설명
166
+ * @returns 새 RelationKeyBuilder 인스턴스
167
+ */
168
+ description(desc) {
169
+ return new RelationKeyBuilder({ ...this.meta, description: desc });
170
+ }
110
171
  }
111
- function createRelationFactory(ownerFn) {
112
- return {
113
- foreignKey(columns, targetFn) {
114
- return new ForeignKeyBuilder({
115
- ownerFn,
116
- columns,
117
- targetFn
118
- });
119
- },
120
- foreignKeyTarget(targetTableFn, relationName) {
121
- return new ForeignKeyTargetBuilder({ targetTableFn, relationName });
122
- },
123
- relationKey(columns, targetFn) {
124
- return new RelationKeyBuilder({
125
- ownerFn,
126
- columns,
127
- targetFn
128
- });
129
- },
130
- relationKeyTarget(targetTableFn, relationName) {
131
- return new RelationKeyTargetBuilder({ targetTableFn, relationName });
172
+ /**
173
+ * 논리적 관계 역참조 builder (1:N) - DB FK 미생성
174
+ *
175
+ * ForeignKeyTargetBuilder와 동일하지만 DB에 FK 제약조건을 생성하지 않음
176
+ * View에서도 사용 가능
177
+ *
178
+ * @template TTargetTableFn - 참조하는 Table/View builder factory 타입
179
+ * @template TIsSingle - 단일 객체 여부
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * const Company = Table("Company")
184
+ * .columns((c) => ({ id: c.bigint() }))
185
+ * .relations((r) => ({
186
+ * // Reverse-reference (no FK creation)
187
+ * employees: r.relationKeyTarget(() => UserSummary, "company"),
188
+ * }));
189
+ * ```
190
+ *
191
+ * @see {@link ForeignKeyTargetBuilder} DB FK 생성 버전
192
+ */
193
+ export class RelationKeyTargetBuilder {
194
+ meta;
195
+ /**
196
+ * @param meta - 관계 역참조 메타데이터
197
+ * @param meta.targetTableFn - 참조하는 Table/View factory
198
+ * @param meta.relationName - 참조하는 Table/View의 관계 이름
199
+ * @param meta.description - 관계 설명
200
+ * @param meta.isSingle - 단일 객체 여부
201
+ */
202
+ constructor(meta) {
203
+ this.meta = meta;
204
+ }
205
+ /**
206
+ * 관계 설명 설정
207
+ *
208
+ * @param desc - 관계 설명
209
+ * @returns 새 RelationKeyTargetBuilder 인스턴스
210
+ */
211
+ description(desc) {
212
+ return new RelationKeyTargetBuilder({ ...this.meta, description: desc });
132
213
  }
133
- };
214
+ /**
215
+ * 단일 객체 관계로 설정 (1:1)
216
+ *
217
+ * 기본값은 배열(1:N), single() 호출 시 단일 객체
218
+ *
219
+ * @returns 새 RelationKeyTargetBuilder 인스턴스 (isSingle=true)
220
+ */
221
+ single() {
222
+ return new RelationKeyTargetBuilder({ ...this.meta, isSingle: true });
223
+ }
224
+ }
225
+ /**
226
+ * 관계 builder factory 생성
227
+ *
228
+ * TableBuilder.relations()와 ViewBuilder.relations()에서 사용
229
+ * Table은 FK + RelationKey 모두 사용 가능, View는 RelationKey만 사용 가능
230
+ *
231
+ * @template TOwner - 소유 Table/View builder 타입
232
+ * @template TColumnKey - Column key 타입
233
+ * @param ownerFn - 소유 Table/View factory 함수
234
+ * @returns 관계 builder factory
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * // Table - both FK and RelationKey available
239
+ * const Post = Table("Post")
240
+ * .columns((c) => ({
241
+ * id: c.bigint(),
242
+ * authorId: c.bigint(),
243
+ * }))
244
+ * .relations((r) => ({
245
+ * author: r.foreignKey(["authorId"], () => User), // FK Generate
246
+ * }));
247
+ *
248
+ * // View - only RelationKey available
249
+ * const UserSummary = View("UserSummary")
250
+ * .query(...)
251
+ * .relations((r) => ({
252
+ * posts: r.relationKeyTarget(() => Post, "author"), // No FK creation
253
+ * }));
254
+ * ```
255
+ */
256
+ export function createRelationFactory(ownerFn) {
257
+ return {
258
+ foreignKey(columns, targetFn) {
259
+ return new ForeignKeyBuilder({
260
+ ownerFn: ownerFn,
261
+ columns,
262
+ targetFn,
263
+ });
264
+ },
265
+ foreignKeyTarget(targetTableFn, relationName) {
266
+ return new ForeignKeyTargetBuilder({ targetTableFn, relationName });
267
+ },
268
+ relationKey(columns, targetFn) {
269
+ return new RelationKeyBuilder({
270
+ ownerFn: ownerFn,
271
+ columns,
272
+ targetFn,
273
+ });
274
+ },
275
+ relationKeyTarget(targetTableFn, relationName) {
276
+ return new RelationKeyTargetBuilder({ targetTableFn, relationName });
277
+ },
278
+ };
134
279
  }
135
- export {
136
- ForeignKeyBuilder,
137
- ForeignKeyTargetBuilder,
138
- RelationKeyBuilder,
139
- RelationKeyTargetBuilder,
140
- createRelationFactory
141
- };
142
- //# sourceMappingURL=relation-builder.js.map
280
+ //# sourceMappingURL=relation-builder.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/schema/factory/relation-builder.ts"],
4
- "mappings": "AAAA,eAAkC;AAkC3B,MAAM,kBAGX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YACW,MAMT;AANS;AAAA,EAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,YAAY,MAAoD;AAC9D,WAAO,IAAI,kBAAkB,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EAClE;AACF;AA8BO,MAAM,wBAGX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YACW,MAMT;AANS;AAAA,EAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,YAAY,MAAkE;AAC5E,WAAO,IAAI,wBAAwB,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,SAAwD;AACtD,WAAO,IAAI,wBAAwB,EAAE,GAAG,KAAK,MAAM,UAAU,KAAK,CAAC;AAAA,EACrE;AACF;AAmCO,MAAM,mBAGX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YACW,MAMT;AANS;AAAA,EAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,YAAY,MAAqD;AAC/D,WAAO,IAAI,mBAAmB,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EACnE;AACF;AAuBO,MAAM,yBAGX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YACW,MAMT;AANS;AAAA,EAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,YAAY,MAAmE;AAC7E,WAAO,IAAI,yBAAyB,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,SAAyD;AACvD,WAAO,IAAI,yBAAyB,EAAE,GAAG,KAAK,MAAM,UAAU,KAAK,CAAC;AAAA,EACtE;AACF;AA4EO,SAAS,sBAId,SAGwC;AACxC,SAAO;AAAA,IACL,WAAW,SAAS,UAAU;AAC5B,aAAO,IAAI,kBAAkB;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,iBAAiB,eAAe,cAAc;AAC5C,aAAO,IAAI,wBAAwB,EAAE,eAAe,aAAa,CAAC;AAAA,IACpE;AAAA,IACA,YAAY,SAAS,UAAU;AAC7B,aAAO,IAAI,mBAAmB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,kBAAkB,eAAe,cAAc;AAC7C,aAAO,IAAI,yBAAyB,EAAE,eAAe,aAAa,CAAC;AAAA,IACrE;AAAA,EACF;AAGF;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"relation-builder.js","sourceRoot":"","sources":["..\\..\\..\\src\\schema\\factory\\relation-builder.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { type ColumnBuilderRecord, createColumnFactory } from "./factory/column-builder";
2
2
  /**
3
- * Stored Procedure definition builder
3
+ * Stored Procedure 정의 builder
4
4
  *
5
- * Define Procedure parameters, return type, and body via Fluent API
6
- * Use with DbContext's executable() for type-safe Procedure invocation
5
+ * Fluent API로 Procedure 파라미터, 반환 타입, 본문을 정의
6
+ * DbContext executable() 함께 사용하여 타입 안전한 Procedure 호출
7
7
  *
8
- * @template TParams - Parameter Column definition type
9
- * @template TReturns - Return Column definition type
8
+ * @template TParams - 파라미터 Column 정의 타입
9
+ * @template TReturns - 반환 Column 정의 타입
10
10
  *
11
11
  * @example
12
12
  * ```typescript
@@ -32,8 +32,8 @@ import { type ColumnBuilderRecord, createColumnFactory } from "./factory/column-
32
32
  * const users = await db.getUserById({ userId: 1n }).execute();
33
33
  * ```
34
34
  *
35
- * @see {@link Procedure} factory function
36
- * @see {@link executable} Executable Generate
35
+ * @see {@link Procedure} factory 함수
36
+ * @see {@link executable} Executable 생성
37
37
  */
38
38
  export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TReturns extends ColumnBuilderRecord> {
39
39
  readonly meta: {
@@ -45,19 +45,19 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
45
45
  returns?: TReturns;
46
46
  query?: string;
47
47
  };
48
- /** Parameter definition (type for inference) */
48
+ /** 파라미터 정의 (타입 추론용) */
49
49
  readonly $params: TParams;
50
- /** return type definition (type for inference) */
50
+ /** 반환 타입 정의 (타입 추론용) */
51
51
  readonly $returns: TReturns;
52
52
  /**
53
- * @param meta - Procedure Metadata
54
- * @param meta.name - Procedure name
55
- * @param meta.description - Procedure description (comment)
56
- * @param meta.database - Database name
57
- * @param meta.schema - Schema name (MSSQL/PostgreSQL)
58
- * @param meta.params - Parameter definition
59
- * @param meta.returns - Return type definition
60
- * @param meta.query - Procedure body SQL
53
+ * @param meta - Procedure 메타데이터
54
+ * @param meta.name - Procedure 이름
55
+ * @param meta.description - Procedure 설명 (comment)
56
+ * @param meta.database - Database 이름
57
+ * @param meta.schema - Schema 이름 (MSSQL/PostgreSQL)
58
+ * @param meta.params - 파라미터 정의
59
+ * @param meta.returns - 반환 타입 정의
60
+ * @param meta.query - Procedure 본문 SQL
61
61
  */
62
62
  constructor(meta: {
63
63
  name: string;
@@ -69,17 +69,17 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
69
69
  query?: string;
70
70
  });
71
71
  /**
72
- * Procedure set description
72
+ * Procedure 설명 설정
73
73
  *
74
- * @param desc - Procedure description (used as DDL Comment)
75
- * @returns new ProcedureBuilder instance
74
+ * @param desc - Procedure 설명 (DDL Comment로 사용됨)
75
+ * @returns ProcedureBuilder 인스턴스
76
76
  */
77
77
  description(desc: string): ProcedureBuilder<TParams, TReturns>;
78
78
  /**
79
- * Database set name
79
+ * Database 이름 설정
80
80
  *
81
- * @param db - Database name
82
- * @returns new ProcedureBuilder instance
81
+ * @param db - Database 이름
82
+ * @returns ProcedureBuilder 인스턴스
83
83
  *
84
84
  * @example
85
85
  * ```typescript
@@ -88,23 +88,23 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
88
88
  */
89
89
  database(db: string): ProcedureBuilder<TParams, TReturns>;
90
90
  /**
91
- * schema set name
91
+ * Schema 이름 설정
92
92
  *
93
- * MSSQL, PostgreSQLused in
93
+ * MSSQL, PostgreSQL에서 사용
94
94
  *
95
- * @param schema - Schema name (MSSQL: dbo, PostgreSQL: public)
96
- * @returns new ProcedureBuilder instance
95
+ * @param schema - Schema 이름 (MSSQL: dbo, PostgreSQL: public)
96
+ * @returns ProcedureBuilder 인스턴스
97
97
  */
98
98
  schema(schema: string): ProcedureBuilder<TParams, TReturns>;
99
99
  /**
100
- * Parameter definition
100
+ * 파라미터 정의
101
101
  *
102
- * Define Procedure input parameters
103
- * Note DBMS-specific parameter syntax differences (MSSQL: @param, MySQL/PostgreSQL: param)
102
+ * Procedure 입력 파라미터를 정의
103
+ * DBMS 파라미터 구문 차이에 주의 (MSSQL: @param, MySQL/PostgreSQL: param)
104
104
  *
105
- * @template T - New parameter definition type
106
- * @param fn - Function that receives a Column factory and returns parameter definitions
107
- * @returns new ProcedureBuilder instance
105
+ * @template T - 파라미터 정의 타입
106
+ * @param fn - Column factory 받아 파라미터 정의를 반환하는 함수
107
+ * @returns ProcedureBuilder 인스턴스
108
108
  *
109
109
  * @example
110
110
  * ```typescript
@@ -117,13 +117,13 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
117
117
  */
118
118
  params<T extends ColumnBuilderRecord>(fn: (c: ReturnType<typeof createColumnFactory>) => T): ProcedureBuilder<T, TReturns>;
119
119
  /**
120
- * Return type definition
120
+ * 반환 타입 정의
121
121
  *
122
- * Define Procedure return result columns
122
+ * Procedure 반환 결과 column을 정의
123
123
  *
124
- * @template T - New return type definition
125
- * @param fn - Function that receives a Column factory and returns Column definitions
126
- * @returns new ProcedureBuilder instance
124
+ * @template T - 반환 타입 정의
125
+ * @param fn - Column factory 받아 column 정의를 반환하는 함수
126
+ * @returns ProcedureBuilder 인스턴스
127
127
  *
128
128
  * @example
129
129
  * ```typescript
@@ -138,15 +138,15 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
138
138
  */
139
139
  returns<T extends ColumnBuilderRecord>(fn: (c: ReturnType<typeof createColumnFactory>) => T): ProcedureBuilder<TParams, T>;
140
140
  /**
141
- * Set Procedure body SQL
141
+ * Procedure 본문 SQL 설정
142
142
  *
143
- * Note DBMS-specific SQL syntax differences:
144
- * - MySQL: parameter name as-is (userId)
145
- * - MSSQL: @ prefix (@userId)
146
- * - PostgreSQL: RETURN QUERY required
143
+ * DBMS SQL 구문 차이에 주의:
144
+ * - MySQL: 파라미터 이름 그대로 (userId)
145
+ * - MSSQL: @ 접두사 (@userId)
146
+ * - PostgreSQL: RETURN QUERY 필요
147
147
  *
148
- * @param sql - Procedure body SQL
149
- * @returns new ProcedureBuilder instance
148
+ * @param sql - Procedure 본문 SQL
149
+ * @returns ProcedureBuilder 인스턴스
150
150
  *
151
151
  * @example
152
152
  * ```typescript
@@ -164,12 +164,12 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
164
164
  body(sql: string): ProcedureBuilder<TParams, TReturns>;
165
165
  }
166
166
  /**
167
- * Procedure builder factory function
167
+ * Procedure builder factory 함수
168
168
  *
169
- * Creates a ProcedureBuilder for defining stored Procedure schema via Fluent API
169
+ * Fluent API로 stored Procedure schema 정의하기 위한 ProcedureBuilder를 생성
170
170
  *
171
- * @param name - Procedure name
172
- * @returns ProcedureBuilder instance
171
+ * @param name - Procedure 이름
172
+ * @returns ProcedureBuilder 인스턴스
173
173
  *
174
174
  * @example
175
175
  * ```typescript
@@ -186,7 +186,7 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
186
186
  * }))
187
187
  * .body("SELECT id, name, email FROM User WHERE id = userId");
188
188
  *
189
- * // Procedure without parameters
189
+ * // 파라미터 없는 Procedure
190
190
  * const GetAllActiveUsers = Procedure("GetAllActiveUsers")
191
191
  * .database("mydb")
192
192
  * .returns((c) => ({
@@ -196,7 +196,7 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
196
196
  * .body("SELECT id, name FROM User WHERE status = 'active'");
197
197
  * ```
198
198
  *
199
- * @see {@link ProcedureBuilder} builder class
199
+ * @see {@link ProcedureBuilder} builder 클래스
200
200
  */
201
201
  export declare function Procedure(name: string): ProcedureBuilder<never, never>;
202
202
  //# sourceMappingURL=procedure-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["..\\..\\src\\schema\\procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,gBAAgB,CAC3B,OAAO,SAAS,mBAAmB,EACnC,QAAQ,SAAS,mBAAmB;IAkBlC,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAxBH,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAG,OAAO,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAC;IAE7B;;;;;;;;;OASG;gBAEQ,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAGH;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAI9D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAIzD;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAI3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,CAAC,SAAS,mBAAmB,EAClC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,GACnD,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC;IAIhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,CAAC,SAAS,mBAAmB,EACnC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,GACnD,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAI/B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;CAGvD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAEtE"}
1
+ {"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["..\\..\\src\\schema\\procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,gBAAgB,CAC3B,OAAO,SAAS,mBAAmB,EACnC,QAAQ,SAAS,mBAAmB;IAkBlC,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAxBH,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAG,OAAO,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAC;IAE7B;;;;;;;;;OASG;gBAEQ,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAGH;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAI9D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAIzD;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAI3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,CAAC,SAAS,mBAAmB,EAClC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,GACnD,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC;IAIhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,CAAC,SAAS,mBAAmB,EACnC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,GACnD,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAI/B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;CAGvD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAEtE"}