@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
@@ -8,22 +8,22 @@ import type { DataRecord } from "../../types/db";
8
8
  // ============================================
9
9
 
10
10
  /**
11
- * Column definition builder
11
+ * Column 정의 builder
12
12
  *
13
- * Define column type, nullable, autoIncrement, default, and description via Fluent API
14
- * Used in TableBuilder.columns()
13
+ * Fluent API로 column 타입, nullable, autoIncrement, default, description 정의
14
+ * TableBuilder.columns()에서 사용
15
15
  *
16
- * @template TValue - Column value type
17
- * @template TMeta - Column Metadata type
16
+ * @template TValue - Column 타입
17
+ * @template TMeta - Column 메타데이터 타입
18
18
  *
19
19
  * @example
20
20
  * ```typescript
21
21
  * Table("User")
22
22
  * .columns((c) => ({
23
- * id: c.bigint().autoIncrement(), // bigint, auto increment
24
- * name: c.varchar(100), // varchar(100), required
23
+ * id: c.bigint().autoIncrement(), // bigint, 자동 증가
24
+ * name: c.varchar(100), // varchar(100), 필수
25
25
  * email: c.varchar(200).nullable(), // varchar(200), nullable
26
- * status: c.varchar(20).default("active"), // varchar(20), default value
26
+ * status: c.varchar(20).default("active"), // varchar(20), 기본값
27
27
  * createdAt: c.datetime().description("created datetime"),
28
28
  * }));
29
29
  * ```
@@ -33,16 +33,16 @@ import type { DataRecord } from "../../types/db";
33
33
  */
34
34
  export class ColumnBuilder<TValue extends ColumnPrimitive, TMeta extends ColumnMeta> {
35
35
  /**
36
- * @param meta - Column Metadata
36
+ * @param meta - Column 메타데이터
37
37
  */
38
38
  constructor(readonly meta: TMeta) {}
39
39
 
40
40
  /**
41
- * Auto Increment configuration
41
+ * Auto Increment 설정
42
42
  *
43
- * Auto increments on INSERT. Treated as optional in INSERT Type inference
43
+ * INSERT 자동 증가. INSERT 타입 추론에서 선택적(optional)으로 처리됨
44
44
  *
45
- * @returns new ColumnBuilder instance
45
+ * @returns ColumnBuilder 인스턴스
46
46
  *
47
47
  * @example
48
48
  * ```typescript
@@ -54,11 +54,11 @@ export class ColumnBuilder<TValue extends ColumnPrimitive, TMeta extends ColumnM
54
54
  }
55
55
 
56
56
  /**
57
- * Nullable configuration
57
+ * Nullable 설정
58
58
  *
59
- * Allow NULL. Adds undefined to the value type
59
+ * NULL 허용. 타입에 undefined가 추가됨
60
60
  *
61
- * @returns new ColumnBuilder instance
61
+ * @returns ColumnBuilder 인스턴스
62
62
  *
63
63
  * @example
64
64
  * ```typescript
@@ -70,12 +70,12 @@ export class ColumnBuilder<TValue extends ColumnPrimitive, TMeta extends ColumnM
70
70
  }
71
71
 
72
72
  /**
73
- * Default value configuration
73
+ * 기본값 설정
74
74
  *
75
- * Used when no value is specified on INSERT. Treated as optional in INSERT Type inference
75
+ * INSERT 값이 지정되지 않으면 사용됨. INSERT 타입 추론에서 선택적(optional)으로 처리됨
76
76
  *
77
- * @param value - Default value
78
- * @returns new ColumnBuilder instance
77
+ * @param value - 기본값
78
+ * @returns ColumnBuilder 인스턴스
79
79
  *
80
80
  * @example
81
81
  * ```typescript
@@ -90,10 +90,10 @@ export class ColumnBuilder<TValue extends ColumnPrimitive, TMeta extends ColumnM
90
90
  }
91
91
 
92
92
  /**
93
- * column set description
93
+ * Column 설명 설정
94
94
  *
95
- * @param desc - Column description (used as DDL Comment)
96
- * @returns new ColumnBuilder instance
95
+ * @param desc - Column 설명 (DDL Comment로 사용됨)
96
+ * @returns ColumnBuilder 인스턴스
97
97
  *
98
98
  * @example
99
99
  * ```typescript
@@ -110,85 +110,85 @@ export class ColumnBuilder<TValue extends ColumnPrimitive, TMeta extends ColumnM
110
110
  // ============================================
111
111
 
112
112
  /**
113
- * Column builder factory creation
113
+ * Column builder factory 생성
114
114
  *
115
- * Column type factory used in TableBuilder.columns()
116
- * Provides builder creation methods for all basic data types
115
+ * TableBuilder.columns()에서 사용하는 column 타입 factory
116
+ * 모든 기본 데이터 타입에 대한 builder 생성 메서드를 제공
117
117
  *
118
- * @returns Object containing builder creation methods for each Column type
118
+ * @returns Column 타입별 builder 생성 메서드를 포함하는 객체
119
119
  *
120
120
  * @example
121
121
  * ```typescript
122
122
  * Table("User")
123
123
  * .columns((c) => ({
124
- * // Number type
124
+ * // 숫자 타입
125
125
  * id: c.bigint().autoIncrement(),
126
126
  * count: c.int(),
127
127
  * price: c.decimal(10, 2),
128
128
  *
129
- * // String type
129
+ * // 문자열 타입
130
130
  * name: c.varchar(100),
131
131
  * code: c.char(10),
132
132
  * content: c.text(),
133
133
  *
134
- * // Date/time type
134
+ * // 날짜/시간 타입
135
135
  * createdAt: c.datetime(),
136
136
  * birthDate: c.date(),
137
137
  * startTime: c.time(),
138
138
  *
139
- * // Other type
139
+ * // 기타 타입
140
140
  * isActive: c.boolean(),
141
141
  * data: c.binary(),
142
142
  * uuid: c.uuid(),
143
143
  * }));
144
144
  * ```
145
145
  *
146
- * @see {@link ColumnBuilder} Column builder class
146
+ * @see {@link ColumnBuilder} Column builder 클래스
147
147
  */
148
148
  export function createColumnFactory() {
149
149
  return {
150
150
  /**
151
- * INT column (4 bytes, -2^31 ~ 2^31-1)
151
+ * INT column (4바이트, -2^31 ~ 2^31-1)
152
152
  *
153
- * @returns ColumnBuilder instance
153
+ * @returns ColumnBuilder 인스턴스
154
154
  */
155
155
  int(): ColumnBuilder<number, { type: "number"; dataType: { type: "int" } }> {
156
156
  return new ColumnBuilder({ type: "number", dataType: { type: "int" } });
157
157
  },
158
158
 
159
159
  /**
160
- * BIGINT column (8 bytes, -2^63 ~ 2^63-1)
160
+ * BIGINT column (8바이트, -2^63 ~ 2^63-1)
161
161
  *
162
- * @returns ColumnBuilder instance
162
+ * @returns ColumnBuilder 인스턴스
163
163
  */
164
164
  bigint(): ColumnBuilder<number, { type: "number"; dataType: { type: "bigint" } }> {
165
165
  return new ColumnBuilder({ type: "number", dataType: { type: "bigint" } });
166
166
  },
167
167
 
168
168
  /**
169
- * FLOAT column (4 bytes, single-precision floating point)
169
+ * FLOAT column (4바이트, 단정밀도 부동소수점)
170
170
  *
171
- * @returns ColumnBuilder instance
171
+ * @returns ColumnBuilder 인스턴스
172
172
  */
173
173
  float(): ColumnBuilder<number, { type: "number"; dataType: { type: "float" } }> {
174
174
  return new ColumnBuilder({ type: "number", dataType: { type: "float" } });
175
175
  },
176
176
 
177
177
  /**
178
- * DOUBLE column (8 bytes, double-precision floating point)
178
+ * DOUBLE column (8바이트, 배정밀도 부동소수점)
179
179
  *
180
- * @returns ColumnBuilder instance
180
+ * @returns ColumnBuilder 인스턴스
181
181
  */
182
182
  double(): ColumnBuilder<number, { type: "number"; dataType: { type: "double" } }> {
183
183
  return new ColumnBuilder({ type: "number", dataType: { type: "double" } });
184
184
  },
185
185
 
186
186
  /**
187
- * DECIMAL column (fixed-point)
187
+ * DECIMAL column (고정 소수점)
188
188
  *
189
- * @param precision - Total number of digits
190
- * @param scale - Number of digits after the decimal point (optional)
191
- * @returns ColumnBuilder instance
189
+ * @param precision - 전체 자릿수
190
+ * @param scale - 소수점 이하 자릿수 (선택)
191
+ * @returns ColumnBuilder 인스턴스
192
192
  *
193
193
  * @example
194
194
  * ```typescript
@@ -206,10 +206,10 @@ export function createColumnFactory() {
206
206
  },
207
207
 
208
208
  /**
209
- * VARCHAR column (variable-length string)
209
+ * VARCHAR column (가변 길이 문자열)
210
210
  *
211
- * @param length - Maximum length
212
- * @returns ColumnBuilder instance
211
+ * @param length - 최대 길이
212
+ * @returns ColumnBuilder 인스턴스
213
213
  *
214
214
  * @example
215
215
  * ```typescript
@@ -223,10 +223,10 @@ export function createColumnFactory() {
223
223
  },
224
224
 
225
225
  /**
226
- * CHAR column (fixed-length string)
226
+ * CHAR column (고정 길이 문자열)
227
227
  *
228
- * @param length - Fixed length
229
- * @returns ColumnBuilder instance
228
+ * @param length - 고정 길이
229
+ * @returns ColumnBuilder 인스턴스
230
230
  *
231
231
  * @example
232
232
  * ```typescript
@@ -240,20 +240,20 @@ export function createColumnFactory() {
240
240
  },
241
241
 
242
242
  /**
243
- * TEXT column (large text)
243
+ * TEXT column (대용량 텍스트)
244
244
  *
245
- * @returns ColumnBuilder instance
245
+ * @returns ColumnBuilder 인스턴스
246
246
  */
247
247
  text(): ColumnBuilder<string, { type: "string"; dataType: { type: "text" } }> {
248
248
  return new ColumnBuilder({ type: "string", dataType: { type: "text" } });
249
249
  },
250
250
 
251
251
  /**
252
- * BINARY column (binary data)
252
+ * BINARY column (바이너리 데이터)
253
253
  *
254
- * Per DBMS: MySQL=LONGBLOB, MSSQL=VARBINARY(MAX), PostgreSQL=BYTEA
254
+ * DBMS별: MySQL=LONGBLOB, MSSQL=VARBINARY(MAX), PostgreSQL=BYTEA
255
255
  *
256
- * @returns ColumnBuilder instance
256
+ * @returns ColumnBuilder 인스턴스
257
257
  */
258
258
  binary(): ColumnBuilder<Bytes, { type: "Bytes"; dataType: { type: "binary" } }> {
259
259
  return new ColumnBuilder({ type: "Bytes", dataType: { type: "binary" } });
@@ -262,36 +262,36 @@ export function createColumnFactory() {
262
262
  /**
263
263
  * BOOLEAN column
264
264
  *
265
- * Per DBMS: MySQL=TINYINT(1), MSSQL=BIT, PostgreSQL=BOOLEAN
265
+ * DBMS별: MySQL=TINYINT(1), MSSQL=BIT, PostgreSQL=BOOLEAN
266
266
  *
267
- * @returns ColumnBuilder instance
267
+ * @returns ColumnBuilder 인스턴스
268
268
  */
269
269
  boolean(): ColumnBuilder<boolean, { type: "boolean"; dataType: { type: "boolean" } }> {
270
270
  return new ColumnBuilder({ type: "boolean", dataType: { type: "boolean" } });
271
271
  },
272
272
 
273
273
  /**
274
- * DATETIME column (date + time)
274
+ * DATETIME column (날짜 + 시간)
275
275
  *
276
- * @returns ColumnBuilder instance
276
+ * @returns ColumnBuilder 인스턴스
277
277
  */
278
278
  datetime(): ColumnBuilder<DateTime, { type: "DateTime"; dataType: { type: "datetime" } }> {
279
279
  return new ColumnBuilder({ type: "DateTime", dataType: { type: "datetime" } });
280
280
  },
281
281
 
282
282
  /**
283
- * DATE column (date only)
283
+ * DATE column (날짜만)
284
284
  *
285
- * @returns ColumnBuilder instance
285
+ * @returns ColumnBuilder 인스턴스
286
286
  */
287
287
  date(): ColumnBuilder<DateOnly, { type: "DateOnly"; dataType: { type: "date" } }> {
288
288
  return new ColumnBuilder({ type: "DateOnly", dataType: { type: "date" } });
289
289
  },
290
290
 
291
291
  /**
292
- * TIME column (time only)
292
+ * TIME column (시간만)
293
293
  *
294
- * @returns ColumnBuilder instance
294
+ * @returns ColumnBuilder 인스턴스
295
295
  */
296
296
  time(): ColumnBuilder<Time, { type: "Time"; dataType: { type: "time" } }> {
297
297
  return new ColumnBuilder({ type: "Time", dataType: { type: "time" } });
@@ -300,9 +300,9 @@ export function createColumnFactory() {
300
300
  /**
301
301
  * UUID column
302
302
  *
303
- * Per DBMS: MySQL=BINARY(16), MSSQL=UNIQUEIDENTIFIER, PostgreSQL=UUID
303
+ * DBMS별: MySQL=BINARY(16), MSSQL=UNIQUEIDENTIFIER, PostgreSQL=UUID
304
304
  *
305
- * @returns ColumnBuilder instance
305
+ * @returns ColumnBuilder 인스턴스
306
306
  */
307
307
  uuid(): ColumnBuilder<Uuid, { type: "Uuid"; dataType: { type: "uuid" } }> {
308
308
  return new ColumnBuilder({ type: "Uuid", dataType: { type: "uuid" } });
@@ -311,24 +311,24 @@ export function createColumnFactory() {
311
311
  }
312
312
 
313
313
  // ============================================
314
- // ColumnDefRecord - Column builder record
314
+ // ColumnDefRecord - Column builder 레코드
315
315
  // ============================================
316
316
 
317
317
  /**
318
- * Column builder record type
318
+ * Column builder 레코드 타입
319
319
  *
320
- * Used as the return type of TableBuilder.columns()
320
+ * TableBuilder.columns()의 반환 타입으로 사용됨
321
321
  */
322
322
  export type ColumnBuilderRecord = Record<string, ColumnBuilder<ColumnPrimitive, ColumnMeta>>;
323
323
 
324
324
  // ============================================
325
- // Infer - Type inference utilities
325
+ // Infer - 타입 추론 유틸리티
326
326
  // ============================================
327
327
 
328
328
  /**
329
- * Infer actual value types from a Column builder record
329
+ * Column builder 레코드에서 실제 타입을 추론
330
330
  *
331
- * @template T - Column builder record type
331
+ * @template T - Column builder 레코드 타입
332
332
  *
333
333
  * @example
334
334
  * ```typescript
@@ -341,20 +341,20 @@ export type InferColumns<TBuilders extends ColumnBuilderRecord> = {
341
341
  };
342
342
 
343
343
  /**
344
- * Infer expression input types from a Column builder record
344
+ * Column builder 레코드에서 expression 입력 타입을 추론
345
345
  *
346
- * @template T - Column builder record type
346
+ * @template T - Column builder 레코드 타입
347
347
  */
348
348
  export type InferColumnExprs<TBuilders extends ColumnBuilderRecord> = {
349
349
  [K in keyof TBuilders]: TBuilders[K] extends ColumnBuilder<infer V, any> ? ExprInput<V> : never;
350
350
  };
351
351
 
352
352
  /**
353
- * Extract required column keys for INSERT
353
+ * INSERT용 필수 column key 추출
354
354
  *
355
- * Only columns without autoIncrement, nullable, or default are required
355
+ * autoIncrement, nullable, default 없는 column만 필수
356
356
  *
357
- * @template T - Column builder record type
357
+ * @template T - Column builder 레코드 타입
358
358
  */
359
359
  export type RequiredInsertKeys<TBuilders extends ColumnBuilderRecord> = {
360
360
  [K in keyof TBuilders]: TBuilders[K]["meta"] extends infer M extends ColumnMeta
@@ -369,11 +369,11 @@ export type RequiredInsertKeys<TBuilders extends ColumnBuilderRecord> = {
369
369
  }[keyof TBuilders];
370
370
 
371
371
  /**
372
- * Extract optional column keys for INSERT
372
+ * INSERT용 선택적 column key 추출
373
373
  *
374
- * Columns with autoIncrement, nullable, or default are optional
374
+ * autoIncrement, nullable, default 있는 column은 선택적(optional)
375
375
  *
376
- * @template T - Column builder record type
376
+ * @template T - Column builder 레코드 타입
377
377
  */
378
378
  export type OptionalInsertKeys<TBuilders extends ColumnBuilderRecord> = Exclude<
379
379
  keyof TBuilders,
@@ -381,11 +381,11 @@ export type OptionalInsertKeys<TBuilders extends ColumnBuilderRecord> = Exclude<
381
381
  >;
382
382
 
383
383
  /**
384
- * INSERT Type inference
384
+ * INSERT 타입 추론
385
385
  *
386
- * Required columns are required, optional columns are Partial
386
+ * 필수 column은 필수, 선택적 column은 Partial
387
387
  *
388
- * @template T - Column builder record type
388
+ * @template T - Column builder 레코드 타입
389
389
  *
390
390
  * @example
391
391
  * ```typescript
@@ -400,20 +400,20 @@ export type InferInsertColumns<TBuilders extends ColumnBuilderRecord> = Pick<
400
400
  Partial<Pick<InferColumns<TBuilders>, OptionalInsertKeys<TBuilders>>>;
401
401
 
402
402
  /**
403
- * UPDATE Type inference
403
+ * UPDATE 타입 추론
404
404
  *
405
- * All columns are optional
405
+ * 모든 column이 선택적(optional)
406
406
  *
407
- * @template T - Column builder record type
407
+ * @template T - Column builder 레코드 타입
408
408
  */
409
409
  export type InferUpdateColumns<TBuilders extends ColumnBuilderRecord> = Partial<
410
410
  InferColumns<TBuilders>
411
411
  >;
412
412
 
413
413
  /**
414
- * Transform from data record to Column builder record
414
+ * 데이터 레코드에서 Column builder 레코드로 변환
415
415
  *
416
- * @template TData - data record type
416
+ * @template TData - 데이터 레코드 타입
417
417
  */
418
418
  export type DataToColumnBuilderRecord<TData extends DataRecord> = {
419
419
  [K in keyof TData as TData[K] extends ColumnPrimitive ? K : never]: ColumnBuilder<
@@ -3,12 +3,12 @@
3
3
  // ============================================
4
4
 
5
5
  /**
6
- * Index definition builder
6
+ * Index 정의 builder
7
7
  *
8
- * Define Index columns, uniqueness, and sort order via Fluent API
9
- * Used in TableBuilder.indexes()
8
+ * Fluent API로 index column, 유니크 여부, 정렬 순서를 정의
9
+ * TableBuilder.indexes()에서 사용
10
10
  *
11
- * @template TKeys - Index column key array type
11
+ * @template TKeys - Index column key 배열 타입
12
12
  *
13
13
  * @example
14
14
  * ```typescript
@@ -20,13 +20,13 @@
20
20
  * createdAt: c.datetime(),
21
21
  * }))
22
22
  * .indexes((i) => [
23
- * // Unique index
23
+ * // 유니크 index
24
24
  * i.index("email").unique(),
25
25
  *
26
- * // Composite index + sort order
26
+ * // 복합 index + 정렬 순서
27
27
  * i.index("name", "createdAt").orderBy("ASC", "DESC"),
28
28
  *
29
- * // Custom name
29
+ * // 커스텀 이름
30
30
  * i.index("createdAt").name("IX_User_CreatedAt"),
31
31
  * ]);
32
32
  * ```
@@ -36,12 +36,12 @@
36
36
  */
37
37
  export class IndexBuilder<TKeys extends string[]> {
38
38
  /**
39
- * @param meta - Index Metadata
40
- * @param meta.columns - Index column array
41
- * @param meta.name - Index name (optional)
42
- * @param meta.unique - Whether it is a unique index
43
- * @param meta.orderBy - Sort order per column
44
- * @param meta.description - Index description
39
+ * @param meta - Index 메타데이터
40
+ * @param meta.columns - Index column 배열
41
+ * @param meta.name - Index 이름 (선택)
42
+ * @param meta.unique - 유니크 index 여부
43
+ * @param meta.orderBy - column별 정렬 순서
44
+ * @param meta.description - Index 설명
45
45
  */
46
46
  constructor(
47
47
  readonly meta: {
@@ -54,10 +54,10 @@ export class IndexBuilder<TKeys extends string[]> {
54
54
  ) {}
55
55
 
56
56
  /**
57
- * Index set name
57
+ * Index 이름 설정
58
58
  *
59
- * @param name - Index name
60
- * @returns new IndexBuilder instance
59
+ * @param name - Index 이름
60
+ * @returns IndexBuilder 인스턴스
61
61
  *
62
62
  * @example
63
63
  * ```typescript
@@ -69,9 +69,9 @@ export class IndexBuilder<TKeys extends string[]> {
69
69
  }
70
70
 
71
71
  /**
72
- * Unique index configuration
72
+ * 유니크 index 설정
73
73
  *
74
- * @returns new IndexBuilder instance
74
+ * @returns IndexBuilder 인스턴스
75
75
  *
76
76
  * @example
77
77
  * ```typescript
@@ -83,19 +83,19 @@ export class IndexBuilder<TKeys extends string[]> {
83
83
  }
84
84
 
85
85
  /**
86
- * Sort order configuration
86
+ * 정렬 순서 설정
87
87
  *
88
- * Specify ASC or DESC for each column
88
+ * column에 ASC 또는 DESC 지정
89
89
  *
90
- * @param orderBy - Sort order per column (must match the number of columns)
91
- * @returns new IndexBuilder instance
90
+ * @param orderBy - column별 정렬 순서 (column 수와 일치해야 )
91
+ * @returns IndexBuilder 인스턴스
92
92
  *
93
93
  * @example
94
94
  * ```typescript
95
- * // Single column
95
+ * // 단일 column
96
96
  * i.index("createdAt").orderBy("DESC")
97
97
  *
98
- * // Composite column
98
+ * // 복합 column
99
99
  * i.index("status", "createdAt").orderBy("ASC", "DESC")
100
100
  * ```
101
101
  */
@@ -104,10 +104,10 @@ export class IndexBuilder<TKeys extends string[]> {
104
104
  }
105
105
 
106
106
  /**
107
- * Index set description
107
+ * Index 설명 설정
108
108
  *
109
- * @param description - Index description (used as DDL Comment)
110
- * @returns new IndexBuilder instance
109
+ * @param description - Index 설명 (DDL Comment로 사용됨)
110
+ * @returns IndexBuilder 인스턴스
111
111
  */
112
112
  description(description: string): IndexBuilder<TKeys> {
113
113
  return new IndexBuilder({ ...this.meta, description });
@@ -119,12 +119,12 @@ export class IndexBuilder<TKeys extends string[]> {
119
119
  // ============================================
120
120
 
121
121
  /**
122
- * Index builder factory creation
122
+ * Index builder factory 생성
123
123
  *
124
- * Index factory used in TableBuilder.indexes()
124
+ * TableBuilder.indexes()에서 사용하는 index factory
125
125
  *
126
- * @template TColumnKey - Table column key type
127
- * @returns Object containing Index creation methods
126
+ * @template TColumnKey - Table column key 타입
127
+ * @returns Index 생성 메서드를 포함하는 객체
128
128
  *
129
129
  * @example
130
130
  * ```typescript
@@ -140,21 +140,21 @@ export class IndexBuilder<TKeys extends string[]> {
140
140
  * ]);
141
141
  * ```
142
142
  *
143
- * @see {@link IndexBuilder} Index builder class
143
+ * @see {@link IndexBuilder} Index builder 클래스
144
144
  */
145
145
  export function createIndexFactory<TColumnKey extends string>() {
146
146
  return {
147
147
  /**
148
- * Index Generate
148
+ * Index 생성
149
149
  *
150
- * @template TKeys - Index column key array type
151
- * @param columns - Index column names
152
- * @returns IndexBuilder instance
150
+ * @template TKeys - Index column key 배열 타입
151
+ * @param columns - Index column 이름들
152
+ * @returns IndexBuilder 인스턴스
153
153
  *
154
154
  * @example
155
155
  * ```typescript
156
- * i.index("email") // Single column
157
- * i.index("name", "email") // Composite column
156
+ * i.index("email") // 단일 column
157
+ * i.index("name", "email") // 복합 column
158
158
  * ```
159
159
  */
160
160
  index<TKeys extends TColumnKey[]>(...columns: [...TKeys]): IndexBuilder<TKeys> {