@simplysm/orm-common 13.0.100 → 14.0.4

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 (246) hide show
  1. package/README.md +90 -147
  2. package/dist/create-db-context.d.ts +10 -10
  3. package/dist/create-db-context.js +312 -276
  4. package/dist/create-db-context.js.map +1 -6
  5. package/dist/ddl/column-ddl.d.ts +4 -4
  6. package/dist/ddl/column-ddl.js +41 -35
  7. package/dist/ddl/column-ddl.js.map +1 -6
  8. package/dist/ddl/initialize.d.ts +17 -17
  9. package/dist/ddl/initialize.js +200 -142
  10. package/dist/ddl/initialize.js.map +1 -6
  11. package/dist/ddl/relation-ddl.d.ts +6 -6
  12. package/dist/ddl/relation-ddl.js +55 -48
  13. package/dist/ddl/relation-ddl.js.map +1 -6
  14. package/dist/ddl/schema-ddl.d.ts +4 -4
  15. package/dist/ddl/schema-ddl.js +21 -15
  16. package/dist/ddl/schema-ddl.js.map +1 -6
  17. package/dist/ddl/table-ddl.d.ts +20 -20
  18. package/dist/ddl/table-ddl.js +139 -93
  19. package/dist/ddl/table-ddl.js.map +1 -6
  20. package/dist/define-db-context.js +10 -13
  21. package/dist/define-db-context.js.map +1 -6
  22. package/dist/errors/db-transaction-error.d.ts +15 -15
  23. package/dist/errors/db-transaction-error.d.ts.map +1 -1
  24. package/dist/errors/db-transaction-error.js +53 -19
  25. package/dist/errors/db-transaction-error.js.map +1 -6
  26. package/dist/exec/executable.d.ts +23 -23
  27. package/dist/exec/executable.js +94 -40
  28. package/dist/exec/executable.js.map +1 -6
  29. package/dist/exec/queryable.d.ts +97 -97
  30. package/dist/exec/queryable.js +1310 -1204
  31. package/dist/exec/queryable.js.map +1 -6
  32. package/dist/exec/search-parser.d.ts +31 -31
  33. package/dist/exec/search-parser.d.ts.map +1 -1
  34. package/dist/exec/search-parser.js +158 -59
  35. package/dist/exec/search-parser.js.map +1 -6
  36. package/dist/expr/expr-unit.d.ts +4 -4
  37. package/dist/expr/expr-unit.js +24 -18
  38. package/dist/expr/expr-unit.js.map +1 -6
  39. package/dist/expr/expr.d.ts +108 -108
  40. package/dist/expr/expr.js +1872 -1844
  41. package/dist/expr/expr.js.map +1 -6
  42. package/dist/index.js +23 -1
  43. package/dist/index.js.map +1 -6
  44. package/dist/models/system-migration.js +7 -7
  45. package/dist/models/system-migration.js.map +1 -6
  46. package/dist/query-builder/base/expr-renderer-base.d.ts +10 -10
  47. package/dist/query-builder/base/expr-renderer-base.js +27 -21
  48. package/dist/query-builder/base/expr-renderer-base.js.map +1 -6
  49. package/dist/query-builder/base/query-builder-base.d.ts +21 -21
  50. package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
  51. package/dist/query-builder/base/query-builder-base.js +90 -80
  52. package/dist/query-builder/base/query-builder-base.js.map +1 -6
  53. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +5 -5
  54. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  55. package/dist/query-builder/mssql/mssql-expr-renderer.js +447 -420
  56. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -6
  57. package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
  58. package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
  59. package/dist/query-builder/mssql/mssql-query-builder.js +483 -443
  60. package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -6
  61. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +5 -5
  62. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  63. package/dist/query-builder/mysql/mysql-expr-renderer.js +451 -419
  64. package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -6
  65. package/dist/query-builder/mysql/mysql-query-builder.d.ts +10 -10
  66. package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
  67. package/dist/query-builder/mysql/mysql-query-builder.js +570 -479
  68. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -6
  69. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +5 -5
  70. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  71. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +449 -422
  72. package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -6
  73. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +8 -8
  74. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
  75. package/dist/query-builder/postgresql/postgresql-query-builder.js +511 -460
  76. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -6
  77. package/dist/query-builder/query-builder.d.ts +1 -1
  78. package/dist/query-builder/query-builder.js +13 -13
  79. package/dist/query-builder/query-builder.js.map +1 -6
  80. package/dist/schema/factory/column-builder.d.ts +84 -84
  81. package/dist/schema/factory/column-builder.js +248 -185
  82. package/dist/schema/factory/column-builder.js.map +1 -6
  83. package/dist/schema/factory/index-builder.d.ts +38 -38
  84. package/dist/schema/factory/index-builder.js +144 -85
  85. package/dist/schema/factory/index-builder.js.map +1 -6
  86. package/dist/schema/factory/relation-builder.d.ts +99 -99
  87. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  88. package/dist/schema/factory/relation-builder.js +274 -136
  89. package/dist/schema/factory/relation-builder.js.map +1 -6
  90. package/dist/schema/procedure-builder.d.ts +51 -51
  91. package/dist/schema/procedure-builder.d.ts.map +1 -1
  92. package/dist/schema/procedure-builder.js +205 -131
  93. package/dist/schema/procedure-builder.js.map +1 -6
  94. package/dist/schema/table-builder.d.ts +55 -55
  95. package/dist/schema/table-builder.d.ts.map +1 -1
  96. package/dist/schema/table-builder.js +274 -205
  97. package/dist/schema/table-builder.js.map +1 -6
  98. package/dist/schema/view-builder.d.ts +44 -44
  99. package/dist/schema/view-builder.d.ts.map +1 -1
  100. package/dist/schema/view-builder.js +189 -116
  101. package/dist/schema/view-builder.js.map +1 -6
  102. package/dist/types/column.d.ts +21 -21
  103. package/dist/types/column.js +60 -30
  104. package/dist/types/column.js.map +1 -6
  105. package/dist/types/db-context-def.d.ts +9 -9
  106. package/dist/types/db-context-def.js +2 -1
  107. package/dist/types/db-context-def.js.map +1 -6
  108. package/dist/types/db.d.ts +47 -47
  109. package/dist/types/db.js +15 -5
  110. package/dist/types/db.js.map +1 -6
  111. package/dist/types/expr.d.ts +81 -81
  112. package/dist/types/expr.d.ts.map +1 -1
  113. package/dist/types/expr.js +3 -1
  114. package/dist/types/expr.js.map +1 -6
  115. package/dist/types/query-def.d.ts +46 -46
  116. package/dist/types/query-def.d.ts.map +1 -1
  117. package/dist/types/query-def.js +31 -24
  118. package/dist/types/query-def.js.map +1 -6
  119. package/dist/utils/result-parser.d.ts +11 -11
  120. package/dist/utils/result-parser.js +362 -221
  121. package/dist/utils/result-parser.js.map +1 -6
  122. package/docs/core.md +117 -145
  123. package/docs/expression.md +186 -203
  124. package/docs/query-builder.md +75 -42
  125. package/docs/queryable.md +189 -151
  126. package/docs/schema-builders.md +172 -283
  127. package/docs/types.md +229 -173
  128. package/package.json +7 -5
  129. package/src/create-db-context.ts +31 -31
  130. package/src/ddl/column-ddl.ts +4 -4
  131. package/src/ddl/initialize.ts +38 -38
  132. package/src/ddl/relation-ddl.ts +6 -6
  133. package/src/ddl/schema-ddl.ts +4 -4
  134. package/src/ddl/table-ddl.ts +24 -24
  135. package/src/errors/db-transaction-error.ts +13 -13
  136. package/src/exec/executable.ts +25 -25
  137. package/src/exec/queryable.ts +152 -152
  138. package/src/exec/search-parser.ts +50 -50
  139. package/src/expr/expr-unit.ts +4 -4
  140. package/src/expr/expr.ts +118 -118
  141. package/src/index.ts +8 -8
  142. package/src/models/system-migration.ts +1 -1
  143. package/src/query-builder/base/expr-renderer-base.ts +21 -21
  144. package/src/query-builder/base/query-builder-base.ts +33 -33
  145. package/src/query-builder/mssql/mssql-expr-renderer.ts +28 -28
  146. package/src/query-builder/mssql/mssql-query-builder.ts +37 -37
  147. package/src/query-builder/mysql/mysql-expr-renderer.ts +29 -29
  148. package/src/query-builder/mysql/mysql-query-builder.ts +70 -70
  149. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +22 -22
  150. package/src/query-builder/postgresql/postgresql-query-builder.ts +54 -54
  151. package/src/query-builder/query-builder.ts +1 -1
  152. package/src/schema/factory/column-builder.ts +86 -86
  153. package/src/schema/factory/index-builder.ts +38 -38
  154. package/src/schema/factory/relation-builder.ts +102 -102
  155. package/src/schema/procedure-builder.ts +52 -52
  156. package/src/schema/table-builder.ts +56 -56
  157. package/src/schema/view-builder.ts +47 -47
  158. package/src/types/column.ts +24 -24
  159. package/src/types/db-context-def.ts +15 -15
  160. package/src/types/db.ts +50 -50
  161. package/src/types/expr.ts +103 -103
  162. package/src/types/query-def.ts +50 -50
  163. package/src/utils/result-parser.ts +88 -88
  164. package/docs/utilities.md +0 -27
  165. package/tests/db-context/create-db-context.spec.ts +0 -193
  166. package/tests/db-context/define-db-context.spec.ts +0 -17
  167. package/tests/ddl/basic.expected.ts +0 -341
  168. package/tests/ddl/basic.spec.ts +0 -557
  169. package/tests/ddl/column-builder.expected.ts +0 -310
  170. package/tests/ddl/column-builder.spec.ts +0 -525
  171. package/tests/ddl/index-builder.expected.ts +0 -38
  172. package/tests/ddl/index-builder.spec.ts +0 -148
  173. package/tests/ddl/procedure-builder.expected.ts +0 -52
  174. package/tests/ddl/procedure-builder.spec.ts +0 -128
  175. package/tests/ddl/relation-builder.expected.ts +0 -36
  176. package/tests/ddl/relation-builder.spec.ts +0 -171
  177. package/tests/ddl/table-builder.expected.ts +0 -113
  178. package/tests/ddl/table-builder.spec.ts +0 -399
  179. package/tests/ddl/view-builder.expected.ts +0 -38
  180. package/tests/ddl/view-builder.spec.ts +0 -116
  181. package/tests/dml/delete.expected.ts +0 -96
  182. package/tests/dml/delete.spec.ts +0 -127
  183. package/tests/dml/insert.expected.ts +0 -192
  184. package/tests/dml/insert.spec.ts +0 -210
  185. package/tests/dml/update.expected.ts +0 -176
  186. package/tests/dml/update.spec.ts +0 -222
  187. package/tests/dml/upsert.expected.ts +0 -215
  188. package/tests/dml/upsert.spec.ts +0 -190
  189. package/tests/errors/queryable-errors.spec.ts +0 -126
  190. package/tests/escape.spec.ts +0 -59
  191. package/tests/examples/pivot.expected.ts +0 -211
  192. package/tests/examples/pivot.spec.ts +0 -200
  193. package/tests/examples/sampling.expected.ts +0 -69
  194. package/tests/examples/sampling.spec.ts +0 -42
  195. package/tests/examples/unpivot.expected.ts +0 -120
  196. package/tests/examples/unpivot.spec.ts +0 -161
  197. package/tests/exec/search-parser.spec.ts +0 -267
  198. package/tests/executable/basic.expected.ts +0 -18
  199. package/tests/executable/basic.spec.ts +0 -54
  200. package/tests/expr/comparison.expected.ts +0 -282
  201. package/tests/expr/comparison.spec.ts +0 -334
  202. package/tests/expr/conditional.expected.ts +0 -134
  203. package/tests/expr/conditional.spec.ts +0 -249
  204. package/tests/expr/date.expected.ts +0 -332
  205. package/tests/expr/date.spec.ts +0 -459
  206. package/tests/expr/math.expected.ts +0 -62
  207. package/tests/expr/math.spec.ts +0 -59
  208. package/tests/expr/string.expected.ts +0 -218
  209. package/tests/expr/string.spec.ts +0 -300
  210. package/tests/expr/utility.expected.ts +0 -147
  211. package/tests/expr/utility.spec.ts +0 -155
  212. package/tests/select/basic.expected.ts +0 -322
  213. package/tests/select/basic.spec.ts +0 -433
  214. package/tests/select/filter.expected.ts +0 -357
  215. package/tests/select/filter.spec.ts +0 -954
  216. package/tests/select/group.expected.ts +0 -169
  217. package/tests/select/group.spec.ts +0 -159
  218. package/tests/select/join.expected.ts +0 -582
  219. package/tests/select/join.spec.ts +0 -692
  220. package/tests/select/order.expected.ts +0 -150
  221. package/tests/select/order.spec.ts +0 -140
  222. package/tests/select/recursive-cte.expected.ts +0 -244
  223. package/tests/select/recursive-cte.spec.ts +0 -514
  224. package/tests/select/result-meta.spec.ts +0 -270
  225. package/tests/select/subquery.expected.ts +0 -363
  226. package/tests/select/subquery.spec.ts +0 -441
  227. package/tests/select/view.expected.ts +0 -155
  228. package/tests/select/view.spec.ts +0 -235
  229. package/tests/select/window.expected.ts +0 -345
  230. package/tests/select/window.spec.ts +0 -433
  231. package/tests/setup/MockExecutor.ts +0 -18
  232. package/tests/setup/TestDbContext.ts +0 -59
  233. package/tests/setup/models/Company.ts +0 -13
  234. package/tests/setup/models/Employee.ts +0 -10
  235. package/tests/setup/models/MonthlySales.ts +0 -11
  236. package/tests/setup/models/Post.ts +0 -16
  237. package/tests/setup/models/Sales.ts +0 -10
  238. package/tests/setup/models/User.ts +0 -19
  239. package/tests/setup/procedure/GetAllUsers.ts +0 -9
  240. package/tests/setup/procedure/GetUserById.ts +0 -12
  241. package/tests/setup/test-utils.ts +0 -72
  242. package/tests/setup/views/ActiveUsers.ts +0 -8
  243. package/tests/setup/views/UserSummary.ts +0 -11
  244. package/tests/types/nullable-queryable-record.spec.ts +0 -97
  245. package/tests/utils/result-parser-perf.spec.ts +0 -143
  246. package/tests/utils/result-parser.spec.ts +0 -667
@@ -17,13 +17,13 @@ import {
17
17
  // ============================================
18
18
 
19
19
  /**
20
- * Database Table definition builder
20
+ * Database Table 정의 builder
21
21
  *
22
- * Define Table columns, PK, indexes, and relations via Fluent API
23
- * Use with DbContext's queryable() for type-safe query composition
22
+ * Fluent API로 Table column, PK, index, 관계를 정의
23
+ * DbContext queryable() 함께 사용하여 타입 안전한 query 구성
24
24
  *
25
- * @template TColumns - Column definition record type
26
- * @template TRelations - Relation definition record type
25
+ * @template TColumns - Column 정의 레코드 타입
26
+ * @template TRelations - 관계 정의 레코드 타입
27
27
  *
28
28
  * @example
29
29
  * ```typescript
@@ -45,37 +45,37 @@ import {
45
45
  * }
46
46
  * ```
47
47
  *
48
- * @see {@link Table} factory function
49
- * @see {@link queryable} Queryable Generate
48
+ * @see {@link Table} factory 함수
49
+ * @see {@link queryable} Queryable 생성
50
50
  */
51
51
  export class TableBuilder<
52
52
  TColumns extends ColumnBuilderRecord,
53
53
  TRelations extends RelationBuilderRecord,
54
54
  > {
55
- /** Column definition (type for inference) */
55
+ /** Column 정의 (타입 추론용) */
56
56
  readonly $columns!: TColumns;
57
- /** Relation definition (type for inference) */
57
+ /** 관계 정의 (타입 추론용) */
58
58
  readonly $relations!: TRelations;
59
59
 
60
- /** Full Type inference (column + relation) */
60
+ /** 전체 타입 추론 (column + 관계) */
61
61
  readonly $inferSelect!: InferColumns<TColumns> & InferDeepRelations<TRelations>;
62
- /** Column-only Type inference */
62
+ /** Column 전용 타입 추론 */
63
63
  readonly $inferColumns!: InferColumns<TColumns>;
64
- /** INSERT Type inference (autoIncrement excluded, nullable/default are optional) */
64
+ /** INSERT 타입 추론 (autoIncrement 제외, nullable/default optional) */
65
65
  readonly $inferInsert!: InferInsertColumns<TColumns>;
66
- /** UPDATE Type inference (all fields optional) */
66
+ /** UPDATE 타입 추론 (모든 필드 optional) */
67
67
  readonly $inferUpdate!: InferUpdateColumns<TColumns>;
68
68
 
69
69
  /**
70
- * @param meta - Table Metadata
71
- * @param meta.name - Table name
72
- * @param meta.description - Table description (comment)
73
- * @param meta.database - Database name
74
- * @param meta.schema - Schema name (MSSQL/PostgreSQL)
75
- * @param meta.columns - Column definition
76
- * @param meta.primaryKey - PK column array
77
- * @param meta.relations - Relation definition
78
- * @param meta.indexes - Index definition
70
+ * @param meta - Table 메타데이터
71
+ * @param meta.name - Table 이름
72
+ * @param meta.description - Table 설명 (comment)
73
+ * @param meta.database - Database 이름
74
+ * @param meta.schema - Schema 이름 (MSSQL/PostgreSQL)
75
+ * @param meta.columns - Column 정의
76
+ * @param meta.primaryKey - PK column 배열
77
+ * @param meta.relations - 관계 정의
78
+ * @param meta.indexes - Index 정의
79
79
  */
80
80
  constructor(
81
81
  readonly meta: {
@@ -92,20 +92,20 @@ export class TableBuilder<
92
92
  ) {}
93
93
 
94
94
  /**
95
- * Table set description
95
+ * Table 설명 설정
96
96
  *
97
- * @param desc - Table description (used as DDL Comment)
98
- * @returns new TableBuilder instance
97
+ * @param desc - Table 설명 (DDL Comment로 사용됨)
98
+ * @returns TableBuilder 인스턴스
99
99
  */
100
100
  description(desc: string) {
101
101
  return new TableBuilder({ ...this.meta, description: desc });
102
102
  }
103
103
 
104
104
  /**
105
- * Database set name
105
+ * Database 이름 설정
106
106
  *
107
- * @param db - Database name
108
- * @returns new TableBuilder instance
107
+ * @param db - Database 이름
108
+ * @returns TableBuilder 인스턴스
109
109
  *
110
110
  * @example
111
111
  * ```typescript
@@ -117,12 +117,12 @@ export class TableBuilder<
117
117
  }
118
118
 
119
119
  /**
120
- * schema set name
120
+ * Schema 이름 설정
121
121
  *
122
- * Used in MSSQL, PostgreSQL
122
+ * MSSQL, PostgreSQL에서 사용
123
123
  *
124
- * @param schema - Schema name (MSSQL: dbo, PostgreSQL: public)
125
- * @returns new TableBuilder instance
124
+ * @param schema - Schema 이름 (MSSQL: dbo, PostgreSQL: public)
125
+ * @returns TableBuilder 인스턴스
126
126
  *
127
127
  * @example
128
128
  * ```typescript
@@ -136,13 +136,13 @@ export class TableBuilder<
136
136
  }
137
137
 
138
138
  /**
139
- * Column definition
139
+ * Column 정의
140
140
  *
141
- * Type-safe Column definition through column factory
141
+ * Column factory를 통한 타입 안전한 column 정의
142
142
  *
143
- * @template TNewColumnDefs - New Column definition type
144
- * @param fn - Function that receives a Column factory and returns Column definitions
145
- * @returns new TableBuilder instance
143
+ * @template TNewColumnDefs - Column 정의 타입
144
+ * @param fn - Column factory 받아 column 정의를 반환하는 함수
145
+ * @returns TableBuilder 인스턴스
146
146
  *
147
147
  * @example
148
148
  * ```typescript
@@ -165,19 +165,19 @@ export class TableBuilder<
165
165
  }
166
166
 
167
167
  /**
168
- * Primary Key configuration
168
+ * Primary Key 설정
169
169
  *
170
- * @param columns - Column names composing the PK (composite PK supported)
171
- * @returns new TableBuilder instance
170
+ * @param columns - PK를 구성하는 column 이름 (복합 PK 지원)
171
+ * @returns TableBuilder 인스턴스
172
172
  *
173
173
  * @example
174
174
  * ```typescript
175
- * // Single PK
175
+ * // 단일 PK
176
176
  * const User = Table("User")
177
177
  * .columns((c) => ({ id: c.bigint() }))
178
178
  * .primaryKey("id");
179
179
  *
180
- * // Composite PK
180
+ * // 복합 PK
181
181
  * const UserRole = Table("UserRole")
182
182
  * .columns((c) => ({
183
183
  * userId: c.bigint(),
@@ -194,10 +194,10 @@ export class TableBuilder<
194
194
  }
195
195
 
196
196
  /**
197
- * Index definition
197
+ * Index 정의
198
198
  *
199
- * @param fn - Function that receives an Index factory and returns an Index array
200
- * @returns new TableBuilder instance
199
+ * @param fn - Index factory 받아 index 배열을 반환하는 함수
200
+ * @returns TableBuilder 인스턴스
201
201
  *
202
202
  * @example
203
203
  * ```typescript
@@ -225,13 +225,13 @@ export class TableBuilder<
225
225
  }
226
226
 
227
227
  /**
228
- * Relation definition
228
+ * 관계 정의
229
229
  *
230
- * Set up FK, reverse-references, and other inter-Table relations
230
+ * FK, 역참조 Table 간 관계를 설정
231
231
  *
232
- * @template T - Relation definition type
233
- * @param fn - Function that receives a relation factory and returns relation definitions
234
- * @returns new TableBuilder instance
232
+ * @template T - 관계 정의 타입
233
+ * @param fn - 관계 factory를 받아 관계 정의를 반환하는 함수
234
+ * @returns TableBuilder 인스턴스
235
235
  *
236
236
  * @example
237
237
  * ```typescript
@@ -273,16 +273,16 @@ export class TableBuilder<
273
273
  }
274
274
 
275
275
  // ============================================
276
- // Table function
276
+ // Table 함수
277
277
  // ============================================
278
278
 
279
279
  /**
280
- * Table builder factory function
280
+ * Table builder factory 함수
281
281
  *
282
- * Creates a TableBuilder for defining Table schema via Fluent API
282
+ * Fluent API로 Table schema 정의하기 위한 TableBuilder를 생성
283
283
  *
284
- * @param name - Table name
285
- * @returns TableBuilder instance
284
+ * @param name - Table 이름
285
+ * @returns TableBuilder 인스턴스
286
286
  *
287
287
  * @example
288
288
  * ```typescript
@@ -312,7 +312,7 @@ export class TableBuilder<
312
312
  * }));
313
313
  * ```
314
314
  *
315
- * @see {@link TableBuilder} builder class
315
+ * @see {@link TableBuilder} builder 클래스
316
316
  */
317
317
  export function Table(name: string) {
318
318
  return new TableBuilder({ name });
@@ -12,14 +12,14 @@ import {
12
12
  // ============================================
13
13
 
14
14
  /**
15
- * Database View definition builder
15
+ * Database View 정의 builder
16
16
  *
17
- * Define View query and relations via Fluent API
18
- * Use with DbContext's queryable() for type-safe query composition
17
+ * Fluent API로 View query 관계를 정의
18
+ * DbContext queryable() 함께 사용하여 타입 안전한 query 구성
19
19
  *
20
- * @template TDbContext - DbContext type
21
- * @template TData - View data record type
22
- * @template TRelations - Relation definition record type
20
+ * @template TDbContext - DbContext 타입
21
+ * @template TData - View 데이터 레코드 타입
22
+ * @template TRelations - 관계 정의 레코드 타입
23
23
  *
24
24
  * @example
25
25
  * ```typescript
@@ -44,27 +44,27 @@ import {
44
44
  * }
45
45
  * ```
46
46
  *
47
- * @see {@link View} factory function
48
- * @see {@link queryable} Queryable Generate
47
+ * @see {@link View} factory 함수
48
+ * @see {@link queryable} Queryable 생성
49
49
  */
50
50
  export class ViewBuilder<
51
51
  TDbContext extends DbContextBase,
52
52
  TData extends DataRecord,
53
53
  TRelations extends RelationBuilderRecord,
54
54
  > {
55
- /** Relation definition (type for inference) */
55
+ /** 관계 정의 (타입 추론용) */
56
56
  readonly $relations!: TRelations;
57
- /** Full Type inference */
57
+ /** 전체 타입 추론 */
58
58
  readonly $inferSelect!: TData;
59
59
 
60
60
  /**
61
- * @param meta - View Metadata
62
- * @param meta.name - View name
63
- * @param meta.description - View description (comment)
64
- * @param meta.database - Database name
65
- * @param meta.schema - Schema name (MSSQL/PostgreSQL)
66
- * @param meta.viewFn - View Query definition function
67
- * @param meta.relations - Relation definition
61
+ * @param meta - View 메타데이터
62
+ * @param meta.name - View 이름
63
+ * @param meta.description - View 설명 (comment)
64
+ * @param meta.database - Database 이름
65
+ * @param meta.schema - Schema 이름 (MSSQL/PostgreSQL)
66
+ * @param meta.viewFn - View query 정의 함수
67
+ * @param meta.relations - 관계 정의
68
68
  */
69
69
  constructor(
70
70
  readonly meta: {
@@ -78,20 +78,20 @@ export class ViewBuilder<
78
78
  ) {}
79
79
 
80
80
  /**
81
- * View set description
81
+ * View 설명 설정
82
82
  *
83
- * @param desc - View description (used as DDL Comment)
84
- * @returns new ViewBuilder instance
83
+ * @param desc - View 설명 (DDL Comment로 사용됨)
84
+ * @returns ViewBuilder 인스턴스
85
85
  */
86
86
  description(desc: string): ViewBuilder<TDbContext, TData, TRelations> {
87
87
  return new ViewBuilder({ ...this.meta, description: desc });
88
88
  }
89
89
 
90
90
  /**
91
- * Database set name
91
+ * Database 이름 설정
92
92
  *
93
- * @param db - Database name
94
- * @returns new ViewBuilder instance
93
+ * @param db - Database 이름
94
+ * @returns ViewBuilder 인스턴스
95
95
  *
96
96
  * @example
97
97
  * ```typescript
@@ -103,26 +103,26 @@ export class ViewBuilder<
103
103
  }
104
104
 
105
105
  /**
106
- * schema set name
106
+ * Schema 이름 설정
107
107
  *
108
- * Used in MSSQL, PostgreSQL
108
+ * MSSQL, PostgreSQL에서 사용
109
109
  *
110
- * @param schema - Schema name (MSSQL: dbo, PostgreSQL: public)
111
- * @returns new ViewBuilder instance
110
+ * @param schema - Schema 이름 (MSSQL: dbo, PostgreSQL: public)
111
+ * @returns ViewBuilder 인스턴스
112
112
  */
113
113
  schema(schema: string): ViewBuilder<TDbContext, TData, TRelations> {
114
114
  return new ViewBuilder({ ...this.meta, schema });
115
115
  }
116
116
 
117
117
  /**
118
- * View Query definition
118
+ * View query 정의
119
119
  *
120
- * Define the View's data source through a SELECT query
120
+ * SELECT query를 통해 View 데이터 소스를 정의
121
121
  *
122
- * @template TViewData - View data type
123
- * @template TDb - DbContext type
124
- * @param viewFn - Function that receives a DbContext and returns a Queryable
125
- * @returns new ViewBuilder instance
122
+ * @template TViewData - View 데이터 타입
123
+ * @template TDb - DbContext 타입
124
+ * @param viewFn - DbContext 받아 Queryable을 반환하는 함수
125
+ * @returns ViewBuilder 인스턴스
126
126
  *
127
127
  * @example
128
128
  * ```typescript
@@ -146,13 +146,13 @@ export class ViewBuilder<
146
146
  }
147
147
 
148
148
  /**
149
- * Relation definition
149
+ * 관계 정의
150
150
  *
151
- * Set up relations with other Tables/Views
151
+ * 다른 Table/View와의 관계를 설정
152
152
  *
153
- * @template T - Relation definition type
154
- * @param fn - Function that receives a relation factory and returns relation definitions
155
- * @returns new ViewBuilder instance
153
+ * @template T - 관계 정의 타입
154
+ * @param fn - 관계 factory를 받아 관계 정의를 반환하는 함수
155
+ * @returns ViewBuilder 인스턴스
156
156
  *
157
157
  * @example
158
158
  * ```typescript
@@ -169,8 +169,8 @@ export class ViewBuilder<
169
169
  relations<T extends RelationBuilderRecord>(
170
170
  fn: (r: ReturnType<typeof createRelationFactory<this, keyof TData & string>>) => T,
171
171
  ): ViewBuilder<TDbContext, TData & InferDeepRelations<T>, TRelations> {
172
- // Casting is unavoidable due to TypeScript generic type inference limitations
173
- // Resolves type mismatch between TRelations type parameter and newly created relation type T
172
+ // TypeScript 제네릭 타입 추론 한계로 인해 캐스팅이 불가피
173
+ // TRelations 타입 파라미터와 새로 생성된 관계 타입 T 간의 타입 불일치 해결
174
174
  return new ViewBuilder({
175
175
  ...this.meta,
176
176
  relations: fn(createRelationFactory<this, keyof TData & string>(() => this)),
@@ -179,16 +179,16 @@ export class ViewBuilder<
179
179
  }
180
180
 
181
181
  // ============================================
182
- // View function
182
+ // View 함수
183
183
  // ============================================
184
184
 
185
185
  /**
186
- * View builder factory function
186
+ * View builder factory 함수
187
187
  *
188
- * Creates a ViewBuilder for defining View schema via Fluent API
188
+ * Fluent API로 View schema 정의하기 위한 ViewBuilder를 생성
189
189
  *
190
- * @param name - View name
191
- * @returns ViewBuilder instance
190
+ * @param name - View 이름
191
+ * @returns ViewBuilder 인스턴스
192
192
  *
193
193
  * @example
194
194
  * ```typescript
@@ -201,7 +201,7 @@ export class ViewBuilder<
201
201
  * .select(u => ({ id: u.id, name: u.name }))
202
202
  * );
203
203
  *
204
- * // aggregation View
204
+ * // 집계 View
205
205
  * const UserStats = View("UserStats")
206
206
  * .database("mydb")
207
207
  * .query((db: MyDb) =>
@@ -214,7 +214,7 @@ export class ViewBuilder<
214
214
  * );
215
215
  * ```
216
216
  *
217
- * @see {@link ViewBuilder} builder class
217
+ * @see {@link ViewBuilder} builder 클래스
218
218
  */
219
219
  export function View(name: string) {
220
220
  return new ViewBuilder({ name });
@@ -1,13 +1,13 @@
1
1
  import { DateOnly, DateTime, Time, Uuid, type Bytes } from "@simplysm/core-common";
2
2
 
3
3
  // ============================================
4
- // DataType (SQL type definition)
4
+ // DataType (SQL 타입 정의)
5
5
  // ============================================
6
6
 
7
7
  /**
8
- * SQL data type definition
8
+ * SQL 데이터 타입 정의
9
9
  *
10
- * DBMS Mapping:
10
+ * DBMS 매핑:
11
11
  * - `int`: INT (4 bytes)
12
12
  * - `bigint`: BIGINT (8 bytes)
13
13
  * - `float`: FLOAT/REAL (4 bytes)
@@ -47,13 +47,13 @@ export type DataType =
47
47
  | { type: "uuid" };
48
48
 
49
49
  // ============================================
50
- // ColumnPrimitive (TypeScript Type)
50
+ // ColumnPrimitive (TypeScript 타입)
51
51
  // ============================================
52
52
 
53
53
  /**
54
- * Column primitive type mapping
54
+ * Column 원시 타입 매핑
55
55
  *
56
- * TypeScript type name (string) → Actual TypeScript type mapping
56
+ * TypeScript 타입 이름 (문자열) → 실제 TypeScript 타입 매핑
57
57
  *
58
58
  * @example
59
59
  * ```typescript
@@ -73,7 +73,7 @@ export type ColumnPrimitiveMap = {
73
73
  };
74
74
 
75
75
  /**
76
- * Column primitive type name (string)
76
+ * Column 원시 타입 이름 (문자열)
77
77
  *
78
78
  * @example
79
79
  * ```typescript
@@ -84,9 +84,9 @@ export type ColumnPrimitiveMap = {
84
84
  export type ColumnPrimitiveStr = keyof ColumnPrimitiveMap;
85
85
 
86
86
  /**
87
- * All primitive types that can be stored in columns
87
+ * Column에 저장 가능한 모든 원시 타입
88
88
  *
89
- * undefined represents NULL
89
+ * undefined NULL을 나타냄
90
90
  */
91
91
  export type ColumnPrimitive = ColumnPrimitiveMap[ColumnPrimitiveStr] | undefined;
92
92
 
@@ -95,7 +95,7 @@ export type ColumnPrimitive = ColumnPrimitiveMap[ColumnPrimitiveStr] | undefined
95
95
  // ============================================
96
96
 
97
97
  /**
98
- * SQL DataType → TypeScript type name mapping
98
+ * SQL DataType → TypeScript 타입 이름 매핑
99
99
  *
100
100
  * @example
101
101
  * ```typescript
@@ -121,7 +121,7 @@ export const dataTypeStrToColumnPrimitiveStr = {
121
121
  };
122
122
 
123
123
  /**
124
- * TypeScript Type inference from DataType
124
+ * DataType으로부터 TypeScript 타입 추론
125
125
  *
126
126
  * @template T - DataType
127
127
  *
@@ -135,11 +135,11 @@ export type InferColumnPrimitiveFromDataType<TDataType extends DataType> =
135
135
  ColumnPrimitiveMap[(typeof dataTypeStrToColumnPrimitiveStr)[TDataType["type"]]];
136
136
 
137
137
  /**
138
- * Infer ColumnPrimitiveStr from runtime value
138
+ * 런타임 값에서 ColumnPrimitiveStr 추론
139
139
  *
140
- * @param value - Column value
141
- * @returns ColumnPrimitiveStr type name
142
- * @throws Error if value type is unknown
140
+ * @param value - Column
141
+ * @returns ColumnPrimitiveStr 타입 이름
142
+ * @throws 타입이 없을 때 Error
143
143
  *
144
144
  * @example
145
145
  * ```typescript
@@ -157,7 +157,7 @@ export function inferColumnPrimitiveStr(value: ColumnPrimitive): ColumnPrimitive
157
157
  if (value instanceof Time) return "Time";
158
158
  if (value instanceof Uuid) return "Uuid";
159
159
  if (value instanceof Uint8Array) return "Bytes";
160
- throw new Error(`Unknown value type: ${typeof value}`);
160
+ throw new Error(`알 없는 값 타입: ${typeof value}`);
161
161
  }
162
162
 
163
163
  // ============================================
@@ -165,16 +165,16 @@ export function inferColumnPrimitiveStr(value: ColumnPrimitive): ColumnPrimitive
165
165
  // ============================================
166
166
 
167
167
  /**
168
- * Column metadata
168
+ * Column 메타데이터
169
169
  *
170
- * Generated by ColumnBuilder and passed to TableBuilder
170
+ * ColumnBuilder에서 생성되어 TableBuilder에 전달됨
171
171
  *
172
- * @property type - TypeScript type name (ColumnPrimitiveStr)
173
- * @property dataType - SQL data type
174
- * @property autoIncrement - Whether to auto-increment
175
- * @property nullable - Whether to allow NULL
176
- * @property default - Default value
177
- * @property description - Column description (DDL comment)
172
+ * @property type - TypeScript 타입 이름 (ColumnPrimitiveStr)
173
+ * @property dataType - SQL 데이터 타입
174
+ * @property autoIncrement - 자동 증가 여부
175
+ * @property nullable - NULL 허용 여부
176
+ * @property default - 기본값
177
+ * @property description - Column 설명 (DDL 코멘트)
178
178
  *
179
179
  * @see {@link ColumnBuilder} Column builder
180
180
  */
@@ -8,11 +8,11 @@ import type { DataRecord, IsolationLevel, Migration, ResultMeta } from "./db";
8
8
  import type { QueryDef, QueryDefObjectName } from "./query-def";
9
9
 
10
10
  /**
11
- * DbContext core interface
11
+ * DbContext 핵심 인터페이스
12
12
  *
13
- * Internal interface used by Queryable, Executable, and ViewBuilder.
14
- * Both the old DbContext class and new createDbContext return objects
15
- * that satisfy this interface.
13
+ * Queryable, Executable, ViewBuilder에서 사용하는 내부 인터페이스.
14
+ * 기존 DbContext 클래스와 새로운 createDbContext 반환 객체 모두
15
+ * 인터페이스를 만족함.
16
16
  */
17
17
  export interface DbContextBase {
18
18
  status: DbContextStatus;
@@ -33,9 +33,9 @@ export interface DbContextBase {
33
33
  export type DbContextStatus = "ready" | "connect" | "transact";
34
34
 
35
35
  /**
36
- * DbContext definition (blueprint)
36
+ * DbContext 정의 (blueprint)
37
37
  *
38
- * Created by defineDbContext(). Contains schema metadata but no runtime state.
38
+ * defineDbContext() 생성됨. Schema 메타데이터만 포함하며 런타임 상태는 없음.
39
39
  */
40
40
  export interface DbContextDef<
41
41
  TTables extends Record<string, TableBuilder<any, any>>,
@@ -51,35 +51,35 @@ export interface DbContextDef<
51
51
  }
52
52
 
53
53
  /**
54
- * Full DbContext instance type (created by createDbContext)
54
+ * 전체 DbContext 인스턴스 타입 (createDbContext로 생성)
55
55
  *
56
- * Extends DbContextBase with queryable accessors, DDL methods,
57
- * and connection/transaction management.
56
+ * DbContextBase queryable 접근자, DDL 메서드,
57
+ * 연결/트랜잭션 관리로 확장.
58
58
  */
59
59
  export type DbContextInstance<TDef extends DbContextDef<any, any, any>> = DbContextBase &
60
60
  DbContextConnectionMethods &
61
61
  DbContextDdlMethods & {
62
- // Auto-mapped table queryable accessors
62
+ // 자동 매핑된 table queryable 접근자
63
63
  [K in keyof TDef["meta"]["tables"]]: () => import("../exec/queryable").Queryable<
64
64
  TDef["meta"]["tables"][K]["$inferSelect"],
65
65
  TDef["meta"]["tables"][K]
66
66
  >;
67
67
  } & {
68
- // Auto-mapped view queryable accessors
68
+ // 자동 매핑된 view queryable 접근자
69
69
  [K in keyof TDef["meta"]["views"]]: () => import("../exec/queryable").Queryable<
70
70
  TDef["meta"]["views"][K]["$inferSelect"],
71
71
  never
72
72
  >;
73
73
  } & {
74
- // Auto-mapped procedure executable accessors
74
+ // 자동 매핑된 procedure executable 접근자
75
75
  [K in keyof TDef["meta"]["procedures"]]: () => import("../exec/executable").Executable<
76
76
  TDef["meta"]["procedures"][K]["$params"],
77
77
  TDef["meta"]["procedures"][K]["$returns"]
78
78
  >;
79
79
  } & {
80
- // System table
80
+ // 시스템 table
81
81
  _migration: () => import("../exec/queryable").Queryable<{ code: string }, any>;
82
- // Initialization
82
+ // 초기화
83
83
  initialize(options?: { dbs?: string[]; force?: boolean }): Promise<void>;
84
84
  };
85
85
 
@@ -123,7 +123,7 @@ export interface DbContextDdlMethods {
123
123
  schemaExists(database: string, schema?: string): Promise<boolean>;
124
124
  truncate(table: QueryDefObjectName): Promise<void>;
125
125
  switchFk(table: QueryDefObjectName, enabled: boolean): Promise<void>;
126
- // QueryDef generators
126
+ // QueryDef 생성기
127
127
  getCreateTableQueryDef(table: TableBuilder<any, any>): QueryDef;
128
128
  getCreateViewQueryDef(view: ViewBuilder<any, any, any>): QueryDef;
129
129
  getCreateProcQueryDef(procedure: ProcedureBuilder<any, any>): QueryDef;