@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
@@ -7,13 +7,13 @@ import type { ViewBuilder } from "../view-builder";
7
7
  // ============================================
8
8
 
9
9
  /**
10
- * Foreign Key relation builder (N:1)
10
+ * Foreign Key 관계 builder (N:1)
11
11
  *
12
- * Define FK relation from current Table to target Table
13
- * Creates actual FK constraint in the DB
12
+ * 현재 Table에서 대상 Table로의 FK 관계를 정의
13
+ * DB에 실제 FK 제약조건을 생성
14
14
  *
15
- * @template TOwner - Owner Table builder type
16
- * @template TTargetFn - Target Table builder factory type
15
+ * @template TOwner - 소유 Table builder 타입
16
+ * @template TTargetFn - 대상 Table builder factory 타입
17
17
  *
18
18
  * @example
19
19
  * ```typescript
@@ -29,19 +29,19 @@ import type { ViewBuilder } from "../view-builder";
29
29
  * }));
30
30
  * ```
31
31
  *
32
- * @see {@link ForeignKeyTargetBuilder} Reverse-reference builder
33
- * @see {@link RelationKeyBuilder} Relation without DB FK
32
+ * @see {@link ForeignKeyTargetBuilder} 역참조 builder
33
+ * @see {@link RelationKeyBuilder} DB FK 없는 관계
34
34
  */
35
35
  export class ForeignKeyBuilder<
36
36
  TOwner extends TableBuilder<any, any>,
37
37
  TTargetFn extends () => TableBuilder<any, any>,
38
38
  > {
39
39
  /**
40
- * @param meta - FK Metadata
41
- * @param meta.ownerFn - Owner Table factory
42
- * @param meta.columns - FK column name array
43
- * @param meta.targetFn - Target Table factory
44
- * @param meta.description - Relation description
40
+ * @param meta - FK 메타데이터
41
+ * @param meta.ownerFn - 소유 Table factory
42
+ * @param meta.columns - FK column 이름 배열
43
+ * @param meta.targetFn - 대상 Table factory
44
+ * @param meta.description - 관계 설명
45
45
  */
46
46
  constructor(
47
47
  readonly meta: {
@@ -53,10 +53,10 @@ export class ForeignKeyBuilder<
53
53
  ) {}
54
54
 
55
55
  /**
56
- * Set relation description
56
+ * 관계 설명 설정
57
57
  *
58
- * @param desc - Relation description
59
- * @returns New ForeignKeyBuilder instance
58
+ * @param desc - 관계 설명
59
+ * @returns ForeignKeyBuilder 인스턴스
60
60
  */
61
61
  description(desc: string): ForeignKeyBuilder<TOwner, TTargetFn> {
62
62
  return new ForeignKeyBuilder({ ...this.meta, description: desc });
@@ -64,13 +64,13 @@ export class ForeignKeyBuilder<
64
64
  }
65
65
 
66
66
  /**
67
- * Foreign Key reverse-reference builder (1:N)
67
+ * Foreign Key 역참조 builder (1:N)
68
68
  *
69
- * Define reverse-reference for FK from another Table referencing current Table
70
- * Loaded as array on include() (single object when single() is called)
69
+ * 다른 Table이 현재 Table을 참조하는 FK의 역참조를 정의
70
+ * include() 배열로 로드됨 (single() 호출 시 단일 객체)
71
71
  *
72
- * @template TTargetTableFn - Referencing Table builder factory type
73
- * @template TIsSingle - Whether it is a single object
72
+ * @template TTargetTableFn - 참조하는 Table builder factory 타입
73
+ * @template TIsSingle - 단일 객체 여부
74
74
  *
75
75
  * @example
76
76
  * ```typescript
@@ -96,11 +96,11 @@ export class ForeignKeyTargetBuilder<
96
96
  TIsSingle extends boolean,
97
97
  > {
98
98
  /**
99
- * @param meta - FK reverse-reference Metadata
100
- * @param meta.targetTableFn - Referencing Table factory
101
- * @param meta.relationName - FK relation name of the referencing Table
102
- * @param meta.description - Relation description
103
- * @param meta.isSingle - Whether it is a single object
99
+ * @param meta - FK 역참조 메타데이터
100
+ * @param meta.targetTableFn - 참조하는 Table factory
101
+ * @param meta.relationName - 참조하는 Table의 FK 관계 이름
102
+ * @param meta.description - 관계 설명
103
+ * @param meta.isSingle - 단일 객체 여부
104
104
  */
105
105
  constructor(
106
106
  readonly meta: {
@@ -112,21 +112,21 @@ export class ForeignKeyTargetBuilder<
112
112
  ) {}
113
113
 
114
114
  /**
115
- * Set relation description
115
+ * 관계 설명 설정
116
116
  *
117
- * @param desc - Relation description
118
- * @returns New ForeignKeyTargetBuilder instance
117
+ * @param desc - 관계 설명
118
+ * @returns ForeignKeyTargetBuilder 인스턴스
119
119
  */
120
120
  description(desc: string): ForeignKeyTargetBuilder<TTargetTableFn, TIsSingle> {
121
121
  return new ForeignKeyTargetBuilder({ ...this.meta, description: desc });
122
122
  }
123
123
 
124
124
  /**
125
- * Set as single object relation (1:1)
125
+ * 단일 객체 관계로 설정 (1:1)
126
126
  *
127
- * Default is array (1:N), single object when single() is called
127
+ * 기본값은 배열(1:N), single() 호출 단일 객체
128
128
  *
129
- * @returns New ForeignKeyTargetBuilder instance (isSingle=true)
129
+ * @returns ForeignKeyTargetBuilder 인스턴스 (isSingle=true)
130
130
  *
131
131
  * @example
132
132
  * ```typescript
@@ -143,13 +143,13 @@ export class ForeignKeyTargetBuilder<
143
143
  // ============================================
144
144
 
145
145
  /**
146
- * Logical relation builder (N:1) - No DB FK creation
146
+ * 논리적 관계 builder (N:1) - DB FK 미생성
147
147
  *
148
- * Same as ForeignKeyBuilder but does not create FK constraints in the DB
149
- * Can also be used in Views
148
+ * ForeignKeyBuilder 동일하지만 DB에 FK 제약조건을 생성하지 않음
149
+ * View에서도 사용 가능
150
150
  *
151
- * @template TOwner - Owner Table/View builder type
152
- * @template TTargetFn - Target Table/View builder factory type
151
+ * @template TOwner - 소유 Table/View builder 타입
152
+ * @template TTargetFn - 대상 Table/View builder factory 타입
153
153
  *
154
154
  * @example
155
155
  * ```typescript
@@ -169,18 +169,18 @@ export class ForeignKeyTargetBuilder<
169
169
  * }));
170
170
  * ```
171
171
  *
172
- * @see {@link ForeignKeyBuilder} DB FK creation version
172
+ * @see {@link ForeignKeyBuilder} DB FK 생성 버전
173
173
  */
174
174
  export class RelationKeyBuilder<
175
175
  TOwner extends TableBuilder<any, any> | ViewBuilder<any, any, any>,
176
176
  TTargetFn extends () => TableBuilder<any, any> | ViewBuilder<any, any, any>,
177
177
  > {
178
178
  /**
179
- * @param meta - Relation Metadata
180
- * @param meta.ownerFn - Owner Table/View factory
181
- * @param meta.columns - Relation column name array
182
- * @param meta.targetFn - Target Table/View factory
183
- * @param meta.description - Relation description
179
+ * @param meta - 관계 메타데이터
180
+ * @param meta.ownerFn - 소유 Table/View factory
181
+ * @param meta.columns - 관계 column 이름 배열
182
+ * @param meta.targetFn - 대상 Table/View factory
183
+ * @param meta.description - 관계 설명
184
184
  */
185
185
  constructor(
186
186
  readonly meta: {
@@ -192,10 +192,10 @@ export class RelationKeyBuilder<
192
192
  ) {}
193
193
 
194
194
  /**
195
- * Set relation description
195
+ * 관계 설명 설정
196
196
  *
197
- * @param desc - Relation description
198
- * @returns New RelationKeyBuilder instance
197
+ * @param desc - 관계 설명
198
+ * @returns RelationKeyBuilder 인스턴스
199
199
  */
200
200
  description(desc: string): RelationKeyBuilder<TOwner, TTargetFn> {
201
201
  return new RelationKeyBuilder({ ...this.meta, description: desc });
@@ -203,13 +203,13 @@ export class RelationKeyBuilder<
203
203
  }
204
204
 
205
205
  /**
206
- * Logical relation reverse-reference builder (1:N) - No DB FK creation
206
+ * 논리적 관계 역참조 builder (1:N) - DB FK 미생성
207
207
  *
208
- * Same as ForeignKeyTargetBuilder but does not create FK constraints in the DB
209
- * Can also be used in Views
208
+ * ForeignKeyTargetBuilder 동일하지만 DB에 FK 제약조건을 생성하지 않음
209
+ * View에서도 사용 가능
210
210
  *
211
- * @template TTargetTableFn - Referencing Table/View builder factory type
212
- * @template TIsSingle - Whether it is a single object
211
+ * @template TTargetTableFn - 참조하는 Table/View builder factory 타입
212
+ * @template TIsSingle - 단일 객체 여부
213
213
  *
214
214
  * @example
215
215
  * ```typescript
@@ -221,18 +221,18 @@ export class RelationKeyBuilder<
221
221
  * }));
222
222
  * ```
223
223
  *
224
- * @see {@link ForeignKeyTargetBuilder} DB FK creation version
224
+ * @see {@link ForeignKeyTargetBuilder} DB FK 생성 버전
225
225
  */
226
226
  export class RelationKeyTargetBuilder<
227
227
  TTargetTableFn extends () => TableBuilder<any, any> | ViewBuilder<any, any, any>,
228
228
  TIsSingle extends boolean,
229
229
  > {
230
230
  /**
231
- * @param meta - Relation reverse-reference Metadata
232
- * @param meta.targetTableFn - Referencing Table/View factory
233
- * @param meta.relationName - Relation name of the referencing Table/View
234
- * @param meta.description - Relation description
235
- * @param meta.isSingle - Whether it is a single object
231
+ * @param meta - 관계 역참조 메타데이터
232
+ * @param meta.targetTableFn - 참조하는 Table/View factory
233
+ * @param meta.relationName - 참조하는 Table/View의 관계 이름
234
+ * @param meta.description - 관계 설명
235
+ * @param meta.isSingle - 단일 객체 여부
236
236
  */
237
237
  constructor(
238
238
  readonly meta: {
@@ -244,21 +244,21 @@ export class RelationKeyTargetBuilder<
244
244
  ) {}
245
245
 
246
246
  /**
247
- * Set relation description
247
+ * 관계 설명 설정
248
248
  *
249
- * @param desc - Relation description
250
- * @returns New RelationKeyTargetBuilder instance
249
+ * @param desc - 관계 설명
250
+ * @returns RelationKeyTargetBuilder 인스턴스
251
251
  */
252
252
  description(desc: string): RelationKeyTargetBuilder<TTargetTableFn, TIsSingle> {
253
253
  return new RelationKeyTargetBuilder({ ...this.meta, description: desc });
254
254
  }
255
255
 
256
256
  /**
257
- * Set as single object relation (1:1)
257
+ * 단일 객체 관계로 설정 (1:1)
258
258
  *
259
- * Default is array (1:N), single object when single() is called
259
+ * 기본값은 배열(1:N), single() 호출 단일 객체
260
260
  *
261
- * @returns New RelationKeyTargetBuilder instance (isSingle=true)
261
+ * @returns RelationKeyTargetBuilder 인스턴스 (isSingle=true)
262
262
  */
263
263
  single(): RelationKeyTargetBuilder<TTargetTableFn, true> {
264
264
  return new RelationKeyTargetBuilder({ ...this.meta, isSingle: true });
@@ -266,18 +266,18 @@ export class RelationKeyTargetBuilder<
266
266
  }
267
267
 
268
268
  /**
269
- * FK relation factory type (table only)
269
+ * FK 관계 factory 타입 (table 전용)
270
270
  *
271
- * @template TOwner - Owner Table builder type
272
- * @template TColumnKey - Column key type
271
+ * @template TOwner - 소유 Table builder 타입
272
+ * @template TColumnKey - Column key 타입
273
273
  */
274
274
  type RelationFkFactory<TOwner extends TableBuilder<any, any>, TColumnKey extends string> = {
275
- /** N:1 FK relationship definition (DB FK Create) */
275
+ /** N:1 FK 관계 정의 (DB FK 생성) */
276
276
  foreignKey<TTargetFn extends () => TableBuilder<any, any>>(
277
277
  columns: TColumnKey[],
278
278
  targetFn: TTargetFn,
279
279
  ): ForeignKeyBuilder<TOwner, TTargetFn>;
280
- /** 1:N FK reverse-reference definition */
280
+ /** 1:N FK 역참조 정의 */
281
281
  foreignKeyTarget<TTargetTableFn extends () => TableBuilder<any, any>>(
282
282
  targetTableFn: TTargetTableFn,
283
283
  relationName: string,
@@ -285,21 +285,21 @@ type RelationFkFactory<TOwner extends TableBuilder<any, any>, TColumnKey extends
285
285
  };
286
286
 
287
287
  /**
288
- * Logical relation factory type (shared for table/View)
288
+ * 논리적 관계 factory 타입 (table/View 공용)
289
289
  *
290
- * @template TOwner - Owner Table/View builder type
291
- * @template TColumnKey - Column key type
290
+ * @template TOwner - 소유 Table/View builder 타입
291
+ * @template TColumnKey - Column key 타입
292
292
  */
293
293
  type RelationRkFactory<
294
294
  TOwner extends TableBuilder<any, any> | ViewBuilder<any, any, any>,
295
295
  TColumnKey extends string,
296
296
  > = {
297
- /** N:1 logical relation definition (no DB FK creation) */
297
+ /** N:1 논리적 관계 정의 (DB FK 미생성) */
298
298
  relationKey<TTargetFn extends () => TableBuilder<any, any> | ViewBuilder<any, any, any>>(
299
299
  columns: TColumnKey[],
300
300
  targetFn: TTargetFn,
301
301
  ): RelationKeyBuilder<TOwner, TTargetFn>;
302
- /** 1:N logical reverse-reference definition */
302
+ /** 1:N 논리적 역참조 정의 */
303
303
  relationKeyTarget<
304
304
  TTargetTableFn extends () => TableBuilder<any, any> | ViewBuilder<any, any, any>,
305
305
  >(
@@ -309,15 +309,15 @@ type RelationRkFactory<
309
309
  };
310
310
 
311
311
  /**
312
- * Relation builder factory creation
312
+ * 관계 builder factory 생성
313
313
  *
314
- * Used in TableBuilder.relations() and ViewBuilder.relations()
315
- * Table can use both FK + RelationKey, View can only use RelationKey
314
+ * TableBuilder.relations() ViewBuilder.relations()에서 사용
315
+ * Table FK + RelationKey 모두 사용 가능, View는 RelationKey만 사용 가능
316
316
  *
317
- * @template TOwner - Owner Table/View builder type
318
- * @template TColumnKey - Column key type
319
- * @param ownerFn - Owner Table/View factory function
320
- * @returns Relation builder factory
317
+ * @template TOwner - 소유 Table/View builder 타입
318
+ * @template TColumnKey - Column key 타입
319
+ * @param ownerFn - 소유 Table/View factory 함수
320
+ * @returns 관계 builder factory
321
321
  *
322
322
  * @example
323
323
  * ```typescript
@@ -374,13 +374,13 @@ export function createRelationFactory<
374
374
  }
375
375
 
376
376
  // ============================================
377
- // builder record
377
+ // builder 레코드
378
378
  // ============================================
379
379
 
380
380
  /**
381
- * relationship builder record type
381
+ * 관계 builder 레코드 타입
382
382
  *
383
- * Return type of TableBuilder.relations() and ViewBuilder.relations()
383
+ * TableBuilder.relations() ViewBuilder.relations()의 반환 타입
384
384
  */
385
385
  export type RelationBuilderRecord = Record<
386
386
  string,
@@ -391,15 +391,15 @@ export type RelationBuilderRecord = Record<
391
391
  >;
392
392
 
393
393
  // ============================================
394
- // Infer - relationship Type inference
394
+ // Infer - 관계 타입 추론
395
395
  // ============================================
396
396
 
397
397
  /**
398
- * Extract target type from FK/RelationKey (single object)
398
+ * FK/RelationKey에서 대상 타입 추출 (단일 객체)
399
399
  *
400
- * Target type of N:1 relation
400
+ * N:1 관계의 대상 타입
401
401
  *
402
- * @template T - FK or RelationKey builder type
402
+ * @template T - FK 또는 RelationKey builder 타입
403
403
  */
404
404
  export type ExtractRelationTarget<TRelation> = TRelation extends
405
405
  | ForeignKeyBuilder<any, infer TTargetFn>
@@ -412,12 +412,12 @@ export type ExtractRelationTarget<TRelation> = TRelation extends
412
412
  : never;
413
413
 
414
414
  /**
415
- * Extract target type from FKTarget/RelationKeyTarget (array or single object)
415
+ * FKTarget/RelationKeyTarget에서 대상 타입 추출 (배열 또는 단일 객체)
416
416
  *
417
- * Target type of 1:N relation (single object when single() is called)
418
- * TTargetTableFn: () => Post form for lazy evaluation to prevent circular references
417
+ * 1:N 관계의 대상 타입 (single() 호출 시 단일 객체)
418
+ * TTargetTableFn: 순환 참조 방지를 위한 지연 평가용 () => Post 형태
419
419
  *
420
- * @template T - FKTarget or RelationKeyTarget builder type
420
+ * @template T - FKTarget 또는 RelationKeyTarget builder 타입
421
421
  */
422
422
  export type ExtractRelationTargetResult<TRelation> = TRelation extends
423
423
  | ForeignKeyTargetBuilder<infer TTargetTableFn, infer TIsSingle>
@@ -434,11 +434,11 @@ export type ExtractRelationTargetResult<TRelation> = TRelation extends
434
434
  : never;
435
435
 
436
436
  /**
437
- * Deep relation Type inference from relation definitions
437
+ * 관계 정의에서 심층 관계 타입 추론
438
438
  *
439
- * Makes all relations optional so accessing without include() results in undefined
439
+ * include() 없이 접근 undefined가 되도록 모든 관계를 optional로 설정
440
440
  *
441
- * @template TRelations - Relation builder record type
441
+ * @template TRelations - 관계 builder 레코드 타입
442
442
  *
443
443
  * @example
444
444
  * ```typescript
@@ -5,13 +5,13 @@ import { type ColumnBuilderRecord, createColumnFactory } from "./factory/column-
5
5
  // ============================================
6
6
 
7
7
  /**
8
- * Stored Procedure definition builder
8
+ * Stored Procedure 정의 builder
9
9
  *
10
- * Define Procedure parameters, return type, and body via Fluent API
11
- * Use with DbContext's executable() for type-safe Procedure invocation
10
+ * Fluent API로 Procedure 파라미터, 반환 타입, 본문을 정의
11
+ * DbContext executable() 함께 사용하여 타입 안전한 Procedure 호출
12
12
  *
13
- * @template TParams - Parameter Column definition type
14
- * @template TReturns - Return Column definition type
13
+ * @template TParams - 파라미터 Column 정의 타입
14
+ * @template TReturns - 반환 Column 정의 타입
15
15
  *
16
16
  * @example
17
17
  * ```typescript
@@ -37,27 +37,27 @@ import { type ColumnBuilderRecord, createColumnFactory } from "./factory/column-
37
37
  * const users = await db.getUserById({ userId: 1n }).execute();
38
38
  * ```
39
39
  *
40
- * @see {@link Procedure} factory function
41
- * @see {@link executable} Executable Generate
40
+ * @see {@link Procedure} factory 함수
41
+ * @see {@link executable} Executable 생성
42
42
  */
43
43
  export class ProcedureBuilder<
44
44
  TParams extends ColumnBuilderRecord,
45
45
  TReturns extends ColumnBuilderRecord,
46
46
  > {
47
- /** Parameter definition (type for inference) */
47
+ /** 파라미터 정의 (타입 추론용) */
48
48
  readonly $params!: TParams;
49
- /** return type definition (type for inference) */
49
+ /** 반환 타입 정의 (타입 추론용) */
50
50
  readonly $returns!: TReturns;
51
51
 
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(
63
63
  readonly meta: {
@@ -72,20 +72,20 @@ export class ProcedureBuilder<
72
72
  ) {}
73
73
 
74
74
  /**
75
- * Procedure set description
75
+ * Procedure 설명 설정
76
76
  *
77
- * @param desc - Procedure description (used as DDL Comment)
78
- * @returns new ProcedureBuilder instance
77
+ * @param desc - Procedure 설명 (DDL Comment로 사용됨)
78
+ * @returns ProcedureBuilder 인스턴스
79
79
  */
80
80
  description(desc: string): ProcedureBuilder<TParams, TReturns> {
81
81
  return new ProcedureBuilder({ ...this.meta, description: desc });
82
82
  }
83
83
 
84
84
  /**
85
- * Database set name
85
+ * Database 이름 설정
86
86
  *
87
- * @param db - Database name
88
- * @returns new ProcedureBuilder instance
87
+ * @param db - Database 이름
88
+ * @returns ProcedureBuilder 인스턴스
89
89
  *
90
90
  * @example
91
91
  * ```typescript
@@ -97,26 +97,26 @@ export class ProcedureBuilder<
97
97
  }
98
98
 
99
99
  /**
100
- * schema set name
100
+ * Schema 이름 설정
101
101
  *
102
- * MSSQL, PostgreSQLused in
102
+ * MSSQL, PostgreSQL에서 사용
103
103
  *
104
- * @param schema - Schema name (MSSQL: dbo, PostgreSQL: public)
105
- * @returns new ProcedureBuilder instance
104
+ * @param schema - Schema 이름 (MSSQL: dbo, PostgreSQL: public)
105
+ * @returns ProcedureBuilder 인스턴스
106
106
  */
107
107
  schema(schema: string): ProcedureBuilder<TParams, TReturns> {
108
108
  return new ProcedureBuilder({ ...this.meta, schema });
109
109
  }
110
110
 
111
111
  /**
112
- * Parameter definition
112
+ * 파라미터 정의
113
113
  *
114
- * Define Procedure input parameters
115
- * Note DBMS-specific parameter syntax differences (MSSQL: @param, MySQL/PostgreSQL: param)
114
+ * Procedure 입력 파라미터를 정의
115
+ * DBMS 파라미터 구문 차이에 주의 (MSSQL: @param, MySQL/PostgreSQL: param)
116
116
  *
117
- * @template T - New parameter definition type
118
- * @param fn - Function that receives a Column factory and returns parameter definitions
119
- * @returns new ProcedureBuilder instance
117
+ * @template T - 파라미터 정의 타입
118
+ * @param fn - Column factory 받아 파라미터 정의를 반환하는 함수
119
+ * @returns ProcedureBuilder 인스턴스
120
120
  *
121
121
  * @example
122
122
  * ```typescript
@@ -134,13 +134,13 @@ export class ProcedureBuilder<
134
134
  }
135
135
 
136
136
  /**
137
- * Return type definition
137
+ * 반환 타입 정의
138
138
  *
139
- * Define Procedure return result columns
139
+ * Procedure 반환 결과 column을 정의
140
140
  *
141
- * @template T - New return type definition
142
- * @param fn - Function that receives a Column factory and returns Column definitions
143
- * @returns new ProcedureBuilder instance
141
+ * @template T - 반환 타입 정의
142
+ * @param fn - Column factory 받아 column 정의를 반환하는 함수
143
+ * @returns ProcedureBuilder 인스턴스
144
144
  *
145
145
  * @example
146
146
  * ```typescript
@@ -160,15 +160,15 @@ export class ProcedureBuilder<
160
160
  }
161
161
 
162
162
  /**
163
- * Set Procedure body SQL
163
+ * Procedure 본문 SQL 설정
164
164
  *
165
- * Note DBMS-specific SQL syntax differences:
166
- * - MySQL: parameter name as-is (userId)
167
- * - MSSQL: @ prefix (@userId)
168
- * - PostgreSQL: RETURN QUERY required
165
+ * DBMS SQL 구문 차이에 주의:
166
+ * - MySQL: 파라미터 이름 그대로 (userId)
167
+ * - MSSQL: @ 접두사 (@userId)
168
+ * - PostgreSQL: RETURN QUERY 필요
169
169
  *
170
- * @param sql - Procedure body SQL
171
- * @returns new ProcedureBuilder instance
170
+ * @param sql - Procedure 본문 SQL
171
+ * @returns ProcedureBuilder 인스턴스
172
172
  *
173
173
  * @example
174
174
  * ```typescript
@@ -189,16 +189,16 @@ export class ProcedureBuilder<
189
189
  }
190
190
 
191
191
  // ============================================
192
- // Procedure function
192
+ // Procedure 함수
193
193
  // ============================================
194
194
 
195
195
  /**
196
- * Procedure builder factory function
196
+ * Procedure builder factory 함수
197
197
  *
198
- * Creates a ProcedureBuilder for defining stored Procedure schema via Fluent API
198
+ * Fluent API로 stored Procedure schema 정의하기 위한 ProcedureBuilder를 생성
199
199
  *
200
- * @param name - Procedure name
201
- * @returns ProcedureBuilder instance
200
+ * @param name - Procedure 이름
201
+ * @returns ProcedureBuilder 인스턴스
202
202
  *
203
203
  * @example
204
204
  * ```typescript
@@ -215,7 +215,7 @@ export class ProcedureBuilder<
215
215
  * }))
216
216
  * .body("SELECT id, name, email FROM User WHERE id = userId");
217
217
  *
218
- * // Procedure without parameters
218
+ * // 파라미터 없는 Procedure
219
219
  * const GetAllActiveUsers = Procedure("GetAllActiveUsers")
220
220
  * .database("mydb")
221
221
  * .returns((c) => ({
@@ -225,7 +225,7 @@ export class ProcedureBuilder<
225
225
  * .body("SELECT id, name FROM User WHERE status = 'active'");
226
226
  * ```
227
227
  *
228
- * @see {@link ProcedureBuilder} builder class
228
+ * @see {@link ProcedureBuilder} builder 클래스
229
229
  */
230
230
  export function Procedure(name: string): ProcedureBuilder<never, never> {
231
231
  return new ProcedureBuilder({ name });