@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
@@ -3,14 +3,14 @@ import type { Queryable } from "../exec/queryable";
3
3
  import type { DataRecord } from "../types/db";
4
4
  import { createRelationFactory, type InferDeepRelations, type RelationBuilderRecord } from "./factory/relation-builder";
5
5
  /**
6
- * Database View definition builder
6
+ * Database View 정의 builder
7
7
  *
8
- * Define View query and relations via Fluent API
9
- * Use with DbContext's queryable() for type-safe query composition
8
+ * Fluent API로 View query 관계를 정의
9
+ * DbContext queryable() 함께 사용하여 타입 안전한 query 구성
10
10
  *
11
- * @template TDbContext - DbContext type
12
- * @template TData - View data record type
13
- * @template TRelations - Relation definition record type
11
+ * @template TDbContext - DbContext 타입
12
+ * @template TData - View 데이터 레코드 타입
13
+ * @template TRelations - 관계 정의 레코드 타입
14
14
  *
15
15
  * @example
16
16
  * ```typescript
@@ -35,8 +35,8 @@ import { createRelationFactory, type InferDeepRelations, type RelationBuilderRec
35
35
  * }
36
36
  * ```
37
37
  *
38
- * @see {@link View} factory function
39
- * @see {@link queryable} Queryable Generate
38
+ * @see {@link View} factory 함수
39
+ * @see {@link queryable} Queryable 생성
40
40
  */
41
41
  export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends DataRecord, TRelations extends RelationBuilderRecord> {
42
42
  readonly meta: {
@@ -47,18 +47,18 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
47
47
  viewFn?: (db: TDbContext) => Queryable<TData, any>;
48
48
  relations?: TRelations;
49
49
  };
50
- /** Relation definition (type for inference) */
50
+ /** 관계 정의 (타입 추론용) */
51
51
  readonly $relations: TRelations;
52
- /** Full Type inference */
52
+ /** 전체 타입 추론 */
53
53
  readonly $inferSelect: TData;
54
54
  /**
55
- * @param meta - View Metadata
56
- * @param meta.name - View name
57
- * @param meta.description - View description (comment)
58
- * @param meta.database - Database name
59
- * @param meta.schema - Schema name (MSSQL/PostgreSQL)
60
- * @param meta.viewFn - View Query definition function
61
- * @param meta.relations - Relation definition
55
+ * @param meta - View 메타데이터
56
+ * @param meta.name - View 이름
57
+ * @param meta.description - View 설명 (comment)
58
+ * @param meta.database - Database 이름
59
+ * @param meta.schema - Schema 이름 (MSSQL/PostgreSQL)
60
+ * @param meta.viewFn - View query 정의 함수
61
+ * @param meta.relations - 관계 정의
62
62
  */
63
63
  constructor(meta: {
64
64
  name: string;
@@ -69,17 +69,17 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
69
69
  relations?: TRelations;
70
70
  });
71
71
  /**
72
- * View set description
72
+ * View 설명 설정
73
73
  *
74
- * @param desc - View description (used as DDL Comment)
75
- * @returns new ViewBuilder instance
74
+ * @param desc - View 설명 (DDL Comment로 사용됨)
75
+ * @returns ViewBuilder 인스턴스
76
76
  */
77
77
  description(desc: string): ViewBuilder<TDbContext, TData, TRelations>;
78
78
  /**
79
- * Database set name
79
+ * Database 이름 설정
80
80
  *
81
- * @param db - Database name
82
- * @returns new ViewBuilder instance
81
+ * @param db - Database 이름
82
+ * @returns ViewBuilder 인스턴스
83
83
  *
84
84
  * @example
85
85
  * ```typescript
@@ -88,23 +88,23 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
88
88
  */
89
89
  database(db: string): ViewBuilder<TDbContext, TData, TRelations>;
90
90
  /**
91
- * schema set name
91
+ * Schema 이름 설정
92
92
  *
93
- * Used in MSSQL, PostgreSQL
93
+ * MSSQL, PostgreSQL에서 사용
94
94
  *
95
- * @param schema - Schema name (MSSQL: dbo, PostgreSQL: public)
96
- * @returns new ViewBuilder instance
95
+ * @param schema - Schema 이름 (MSSQL: dbo, PostgreSQL: public)
96
+ * @returns ViewBuilder 인스턴스
97
97
  */
98
98
  schema(schema: string): ViewBuilder<TDbContext, TData, TRelations>;
99
99
  /**
100
- * View Query definition
100
+ * View query 정의
101
101
  *
102
- * Define the View's data source through a SELECT query
102
+ * SELECT query를 통해 View 데이터 소스를 정의
103
103
  *
104
- * @template TViewData - View data type
105
- * @template TDb - DbContext type
106
- * @param viewFn - Function that receives a DbContext and returns a Queryable
107
- * @returns new ViewBuilder instance
104
+ * @template TViewData - View 데이터 타입
105
+ * @template TDb - DbContext 타입
106
+ * @param viewFn - DbContext 받아 Queryable을 반환하는 함수
107
+ * @returns ViewBuilder 인스턴스
108
108
  *
109
109
  * @example
110
110
  * ```typescript
@@ -123,13 +123,13 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
123
123
  */
124
124
  query<TViewData extends DataRecord, TDb extends DbContextBase>(viewFn: (db: TDb) => Queryable<TViewData, any>): ViewBuilder<TDb, TViewData, TRelations>;
125
125
  /**
126
- * Relation definition
126
+ * 관계 정의
127
127
  *
128
- * Set up relations with other Tables/Views
128
+ * 다른 Table/View와의 관계를 설정
129
129
  *
130
- * @template T - Relation definition type
131
- * @param fn - Function that receives a relation factory and returns relation definitions
132
- * @returns new ViewBuilder instance
130
+ * @template T - 관계 정의 타입
131
+ * @param fn - 관계 factory를 받아 관계 정의를 반환하는 함수
132
+ * @returns ViewBuilder 인스턴스
133
133
  *
134
134
  * @example
135
135
  * ```typescript
@@ -146,12 +146,12 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
146
146
  relations<T extends RelationBuilderRecord>(fn: (r: ReturnType<typeof createRelationFactory<this, keyof TData & string>>) => T): ViewBuilder<TDbContext, TData & InferDeepRelations<T>, TRelations>;
147
147
  }
148
148
  /**
149
- * View builder factory function
149
+ * View builder factory 함수
150
150
  *
151
- * Creates a ViewBuilder for defining View schema via Fluent API
151
+ * Fluent API로 View schema 정의하기 위한 ViewBuilder를 생성
152
152
  *
153
- * @param name - View name
154
- * @returns ViewBuilder instance
153
+ * @param name - View 이름
154
+ * @returns ViewBuilder 인스턴스
155
155
  *
156
156
  * @example
157
157
  * ```typescript
@@ -164,7 +164,7 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
164
164
  * .select(u => ({ id: u.id, name: u.name }))
165
165
  * );
166
166
  *
167
- * // aggregation View
167
+ * // 집계 View
168
168
  * const UserStats = View("UserStats")
169
169
  * .database("mydb")
170
170
  * .query((db: MyDb) =>
@@ -177,7 +177,7 @@ export declare class ViewBuilder<TDbContext extends DbContextBase, TData extends
177
177
  * );
178
178
  * ```
179
179
  *
180
- * @see {@link ViewBuilder} builder class
180
+ * @see {@link ViewBuilder} builder 클래스
181
181
  */
182
182
  export declare function View(name: string): ViewBuilder<DbContextBase, DataRecord, RelationBuilderRecord>;
183
183
  //# sourceMappingURL=view-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-builder.d.ts","sourceRoot":"","sources":["..\\..\\src\\schema\\view-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAMpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,WAAW,CACtB,UAAU,SAAS,aAAa,EAChC,KAAK,SAAS,UAAU,EACxB,UAAU,SAAS,qBAAqB;IAiBtC,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB;IAtBH,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAG,UAAU,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,YAAY,EAAG,KAAK,CAAC;IAE9B;;;;;;;;OAQG;gBAEQ,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB;IAGH;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIrE;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIhE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIlE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,aAAa,EAC3D,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAC7C,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;IAI1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,CAAC,SAAS,qBAAqB,EACvC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,GACjF,WAAW,CAAC,UAAU,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;CAQtE;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,iEAEhC"}
1
+ {"version":3,"file":"view-builder.d.ts","sourceRoot":"","sources":["..\\..\\src\\schema\\view-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAMpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,WAAW,CACtB,UAAU,SAAS,aAAa,EAChC,KAAK,SAAS,UAAU,EACxB,UAAU,SAAS,qBAAqB;IAiBtC,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB;IAtBH,qBAAqB;IACrB,QAAQ,CAAC,UAAU,EAAG,UAAU,CAAC;IACjC,eAAe;IACf,QAAQ,CAAC,YAAY,EAAG,KAAK,CAAC;IAE9B;;;;;;;;OAQG;gBAEQ,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB;IAGH;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIrE;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIhE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIlE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,aAAa,EAC3D,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAC7C,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;IAI1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,CAAC,SAAS,qBAAqB,EACvC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,GACjF,WAAW,CAAC,UAAU,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;CAQtE;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,iEAEhC"}
@@ -1,118 +1,191 @@
1
- import {
2
- createRelationFactory
3
- } from "./factory/relation-builder.js";
4
- class ViewBuilder {
5
- /**
6
- * @param meta - View Metadata
7
- * @param meta.name - View name
8
- * @param meta.description - View description (comment)
9
- * @param meta.database - Database name
10
- * @param meta.schema - Schema name (MSSQL/PostgreSQL)
11
- * @param meta.viewFn - View Query definition function
12
- * @param meta.relations - Relation definition
13
- */
14
- constructor(meta) {
15
- this.meta = meta;
16
- }
17
- /** Relation definition (type for inference) */
18
- $relations;
19
- /** Full Type inference */
20
- $inferSelect;
21
- /**
22
- * View set description
23
- *
24
- * @param desc - View description (used as DDL Comment)
25
- * @returns new ViewBuilder instance
26
- */
27
- description(desc) {
28
- return new ViewBuilder({ ...this.meta, description: desc });
29
- }
30
- /**
31
- * Database set name
32
- *
33
- * @param db - Database name
34
- * @returns new ViewBuilder instance
35
- *
36
- * @example
37
- * ```typescript
38
- * const UserSummary = View("UserSummary").database("mydb");
39
- * ```
40
- */
41
- database(db) {
42
- return new ViewBuilder({ ...this.meta, database: db });
43
- }
44
- /**
45
- * schema set name
46
- *
47
- * Used in MSSQL, PostgreSQL
48
- *
49
- * @param schema - Schema name (MSSQL: dbo, PostgreSQL: public)
50
- * @returns new ViewBuilder instance
51
- */
52
- schema(schema) {
53
- return new ViewBuilder({ ...this.meta, schema });
54
- }
55
- /**
56
- * View Query definition
57
- *
58
- * Define the View's data source through a SELECT query
59
- *
60
- * @template TViewData - View data type
61
- * @template TDb - DbContext type
62
- * @param viewFn - Function that receives a DbContext and returns a Queryable
63
- * @returns new ViewBuilder instance
64
- *
65
- * @example
66
- * ```typescript
67
- * const ActiveUsers = View("ActiveUsers")
68
- * .database("mydb")
69
- * .query((db: MyDb) =>
70
- * db.user()
71
- * .where(u => [expr.eq(u.status, "active")])
72
- * .select(u => ({
73
- * id: u.id,
74
- * name: u.name,
75
- * email: u.email,
76
- * }))
77
- * );
78
- * ```
79
- */
80
- query(viewFn) {
81
- return new ViewBuilder({ ...this.meta, viewFn });
82
- }
83
- /**
84
- * Relation definition
85
- *
86
- * Set up relations with other Tables/Views
87
- *
88
- * @template T - Relation definition type
89
- * @param fn - Function that receives a relation factory and returns relation definitions
90
- * @returns new ViewBuilder instance
91
- *
92
- * @example
93
- * ```typescript
94
- * const UserSummary = View("UserSummary")
95
- * .query((db: MyDb) => db.user().select(...))
96
- * .relations((r) => ({
97
- * posts: r.foreignKeyTarget(Post, "author"),
98
- * }));
99
- * ```
100
- *
101
- * @see {@link ForeignKeyBuilder} FK builder
102
- * @see {@link ForeignKeyTargetBuilder} FK reverse-reference builder
103
- */
104
- relations(fn) {
105
- return new ViewBuilder({
106
- ...this.meta,
107
- relations: fn(createRelationFactory(() => this))
108
- });
109
- }
1
+ import { createRelationFactory, } from "./factory/relation-builder.js";
2
+ // ============================================
3
+ // ViewBuilder
4
+ // ============================================
5
+ /**
6
+ * Database View 정의 builder
7
+ *
8
+ * Fluent API로 View query와 관계를 정의
9
+ * DbContext의 queryable()과 함께 사용하여 타입 안전한 query 구성
10
+ *
11
+ * @template TDbContext - DbContext 타입
12
+ * @template TData - View 데이터 레코드 타입
13
+ * @template TRelations - 관계 정의 레코드 타입
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // View definition
18
+ * const UserSummary = View("UserSummary")
19
+ * .database("mydb")
20
+ * .query((db: MyDb) =>
21
+ * db.user()
22
+ * .select(u => ({
23
+ * id: u.id,
24
+ * name: u.name,
25
+ * postCount: expr.subquery(
26
+ * db.post().where(p => [expr.eq(p.authorId, u.id)]),
27
+ * q => expr.count(q.id)
28
+ * ),
29
+ * }))
30
+ * );
31
+ *
32
+ * // Used in DbContext
33
+ * class MyDb extends DbContext {
34
+ * readonly userSummary = queryable(this, UserSummary);
35
+ * }
36
+ * ```
37
+ *
38
+ * @see {@link View} factory 함수
39
+ * @see {@link queryable} Queryable 생성
40
+ */
41
+ export class ViewBuilder {
42
+ meta;
43
+ /** 관계 정의 (타입 추론용) */
44
+ $relations;
45
+ /** 전체 타입 추론 */
46
+ $inferSelect;
47
+ /**
48
+ * @param meta - View 메타데이터
49
+ * @param meta.name - View 이름
50
+ * @param meta.description - View 설명 (comment)
51
+ * @param meta.database - Database 이름
52
+ * @param meta.schema - Schema 이름 (MSSQL/PostgreSQL)
53
+ * @param meta.viewFn - View query 정의 함수
54
+ * @param meta.relations - 관계 정의
55
+ */
56
+ constructor(meta) {
57
+ this.meta = meta;
58
+ }
59
+ /**
60
+ * View 설명 설정
61
+ *
62
+ * @param desc - View 설명 (DDL Comment로 사용됨)
63
+ * @returns ViewBuilder 인스턴스
64
+ */
65
+ description(desc) {
66
+ return new ViewBuilder({ ...this.meta, description: desc });
67
+ }
68
+ /**
69
+ * Database 이름 설정
70
+ *
71
+ * @param db - Database 이름
72
+ * @returns 새 ViewBuilder 인스턴스
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * const UserSummary = View("UserSummary").database("mydb");
77
+ * ```
78
+ */
79
+ database(db) {
80
+ return new ViewBuilder({ ...this.meta, database: db });
81
+ }
82
+ /**
83
+ * Schema 이름 설정
84
+ *
85
+ * MSSQL, PostgreSQL에서 사용
86
+ *
87
+ * @param schema - Schema 이름 (MSSQL: dbo, PostgreSQL: public)
88
+ * @returns ViewBuilder 인스턴스
89
+ */
90
+ schema(schema) {
91
+ return new ViewBuilder({ ...this.meta, schema });
92
+ }
93
+ /**
94
+ * View query 정의
95
+ *
96
+ * SELECT query를 통해 View의 데이터 소스를 정의
97
+ *
98
+ * @template TViewData - View 데이터 타입
99
+ * @template TDb - DbContext 타입
100
+ * @param viewFn - DbContext를 받아 Queryable을 반환하는 함수
101
+ * @returns ViewBuilder 인스턴스
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * const ActiveUsers = View("ActiveUsers")
106
+ * .database("mydb")
107
+ * .query((db: MyDb) =>
108
+ * db.user()
109
+ * .where(u => [expr.eq(u.status, "active")])
110
+ * .select(u => ({
111
+ * id: u.id,
112
+ * name: u.name,
113
+ * email: u.email,
114
+ * }))
115
+ * );
116
+ * ```
117
+ */
118
+ query(viewFn) {
119
+ return new ViewBuilder({ ...this.meta, viewFn });
120
+ }
121
+ /**
122
+ * 관계 정의
123
+ *
124
+ * 다른 Table/View와의 관계를 설정
125
+ *
126
+ * @template T - 관계 정의 타입
127
+ * @param fn - 관계 factory를 받아 관계 정의를 반환하는 함수
128
+ * @returns 새 ViewBuilder 인스턴스
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * const UserSummary = View("UserSummary")
133
+ * .query((db: MyDb) => db.user().select(...))
134
+ * .relations((r) => ({
135
+ * posts: r.foreignKeyTarget(Post, "author"),
136
+ * }));
137
+ * ```
138
+ *
139
+ * @see {@link ForeignKeyBuilder} FK builder
140
+ * @see {@link ForeignKeyTargetBuilder} FK reverse-reference builder
141
+ */
142
+ relations(fn) {
143
+ // TypeScript 제네릭 타입 추론 한계로 인해 캐스팅이 불가피
144
+ // TRelations 타입 파라미터와 새로 생성된 관계 타입 T 간의 타입 불일치 해결
145
+ return new ViewBuilder({
146
+ ...this.meta,
147
+ relations: fn(createRelationFactory(() => this)),
148
+ });
149
+ }
110
150
  }
111
- function View(name) {
112
- return new ViewBuilder({ name });
151
+ // ============================================
152
+ // View 함수
153
+ // ============================================
154
+ /**
155
+ * View builder factory 함수
156
+ *
157
+ * Fluent API로 View schema를 정의하기 위한 ViewBuilder를 생성
158
+ *
159
+ * @param name - View 이름
160
+ * @returns ViewBuilder 인스턴스
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * // Basic usage
165
+ * const ActiveUsers = View("ActiveUsers")
166
+ * .database("mydb")
167
+ * .query((db: MyDb) =>
168
+ * db.user()
169
+ * .where(u => [expr.eq(u.status, "active")])
170
+ * .select(u => ({ id: u.id, name: u.name }))
171
+ * );
172
+ *
173
+ * // 집계 View
174
+ * const UserStats = View("UserStats")
175
+ * .database("mydb")
176
+ * .query((db: MyDb) =>
177
+ * db.user()
178
+ * .groupBy(u => ({ status: u.status }))
179
+ * .select(u => ({
180
+ * status: u.status,
181
+ * count: expr.count(u.id),
182
+ * }))
183
+ * );
184
+ * ```
185
+ *
186
+ * @see {@link ViewBuilder} builder 클래스
187
+ */
188
+ export function View(name) {
189
+ return new ViewBuilder({ name });
113
190
  }
114
- export {
115
- View,
116
- ViewBuilder
117
- };
118
- //# sourceMappingURL=view-builder.js.map
191
+ //# sourceMappingURL=view-builder.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/schema/view-builder.ts"],
4
- "mappings": "AAGA;AAAA,EACE;AAAA,OAGK;AA0CA,MAAM,YAIX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,YACW,MAQT;AARS;AAAA,EAQR;AAAA;AAAA,EAtBM;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BT,YAAY,MAA0D;AACpE,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,SAAS,IAAwD;AAC/D,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,UAAU,GAAG,CAAC;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,QAA4D;AACjE,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BA,MACE,QACyC;AACzC,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,UACE,IACoE;AAGpE,WAAO,IAAI,YAAY;AAAA,MACrB,GAAG,KAAK;AAAA,MACR,WAAW,GAAG,sBAAkD,MAAM,IAAI,CAAC;AAAA,IAC7E,CAAC;AAAA,EACH;AACF;AAwCO,SAAS,KAAK,MAAc;AACjC,SAAO,IAAI,YAAY,EAAE,KAAK,CAAC;AACjC;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"view-builder.js","sourceRoot":"","sources":["..\\..\\src\\schema\\view-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,GAGtB,MAAM,4BAA4B,CAAC;AAEpC,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAO,WAAW;IAoBX;IAfX,qBAAqB;IACZ,UAAU,CAAc;IACjC,eAAe;IACN,YAAY,CAAS;IAE9B;;;;;;;;OAQG;IACH,YACW,IAOR;QAPQ,SAAI,GAAJ,IAAI,CAOZ;IACA,CAAC;IAEJ;;;;;OAKG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CACH,MAA8C;QAE9C,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CACP,EAAkF;QAElF,uCAAuC;QACvC,kDAAkD;QAClD,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,IAAI,CAAC,IAAI;YACZ,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAA6B,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;SAC7E,CAAQ,CAAC;IACZ,CAAC;CACF;AAED,+CAA+C;AAC/C,UAAU;AACV,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,OAAO,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { DateOnly, DateTime, Time, Uuid, type Bytes } from "@simplysm/core-common";
2
2
  /**
3
- * SQL data type definition
3
+ * SQL 데이터 타입 정의
4
4
  *
5
- * DBMS Mapping:
5
+ * DBMS 매핑:
6
6
  * - `int`: INT (4 bytes)
7
7
  * - `bigint`: BIGINT (8 bytes)
8
8
  * - `float`: FLOAT/REAL (4 bytes)
@@ -59,9 +59,9 @@ export type DataType = {
59
59
  type: "uuid";
60
60
  };
61
61
  /**
62
- * Column primitive type mapping
62
+ * Column 원시 타입 매핑
63
63
  *
64
- * TypeScript type name (string) → Actual TypeScript type mapping
64
+ * TypeScript 타입 이름 (문자열) → 실제 TypeScript 타입 매핑
65
65
  *
66
66
  * @example
67
67
  * ```typescript
@@ -80,7 +80,7 @@ export type ColumnPrimitiveMap = {
80
80
  Bytes: Bytes;
81
81
  };
82
82
  /**
83
- * Column primitive type name (string)
83
+ * Column 원시 타입 이름 (문자열)
84
84
  *
85
85
  * @example
86
86
  * ```typescript
@@ -90,13 +90,13 @@ export type ColumnPrimitiveMap = {
90
90
  */
91
91
  export type ColumnPrimitiveStr = keyof ColumnPrimitiveMap;
92
92
  /**
93
- * All primitive types that can be stored in columns
93
+ * Column에 저장 가능한 모든 원시 타입
94
94
  *
95
- * undefined represents NULL
95
+ * undefined NULL을 나타냄
96
96
  */
97
97
  export type ColumnPrimitive = ColumnPrimitiveMap[ColumnPrimitiveStr] | undefined;
98
98
  /**
99
- * SQL DataType → TypeScript type name mapping
99
+ * SQL DataType → TypeScript 타입 이름 매핑
100
100
  *
101
101
  * @example
102
102
  * ```typescript
@@ -121,7 +121,7 @@ export declare const dataTypeStrToColumnPrimitiveStr: {
121
121
  uuid: "Uuid";
122
122
  };
123
123
  /**
124
- * TypeScript Type inference from DataType
124
+ * DataType으로부터 TypeScript 타입 추론
125
125
  *
126
126
  * @template T - DataType
127
127
  *
@@ -133,11 +133,11 @@ export declare const dataTypeStrToColumnPrimitiveStr: {
133
133
  */
134
134
  export type InferColumnPrimitiveFromDataType<TDataType extends DataType> = ColumnPrimitiveMap[(typeof dataTypeStrToColumnPrimitiveStr)[TDataType["type"]]];
135
135
  /**
136
- * Infer ColumnPrimitiveStr from runtime value
136
+ * 런타임 값에서 ColumnPrimitiveStr 추론
137
137
  *
138
- * @param value - Column value
139
- * @returns ColumnPrimitiveStr type name
140
- * @throws Error if value type is unknown
138
+ * @param value - Column
139
+ * @returns ColumnPrimitiveStr 타입 이름
140
+ * @throws 타입이 없을 때 Error
141
141
  *
142
142
  * @example
143
143
  * ```typescript
@@ -148,16 +148,16 @@ export type InferColumnPrimitiveFromDataType<TDataType extends DataType> = Colum
148
148
  */
149
149
  export declare function inferColumnPrimitiveStr(value: ColumnPrimitive): ColumnPrimitiveStr;
150
150
  /**
151
- * Column metadata
151
+ * Column 메타데이터
152
152
  *
153
- * Generated by ColumnBuilder and passed to TableBuilder
153
+ * ColumnBuilder에서 생성되어 TableBuilder에 전달됨
154
154
  *
155
- * @property type - TypeScript type name (ColumnPrimitiveStr)
156
- * @property dataType - SQL data type
157
- * @property autoIncrement - Whether to auto-increment
158
- * @property nullable - Whether to allow NULL
159
- * @property default - Default value
160
- * @property description - Column description (DDL comment)
155
+ * @property type - TypeScript 타입 이름 (ColumnPrimitiveStr)
156
+ * @property dataType - SQL 데이터 타입
157
+ * @property autoIncrement - 자동 증가 여부
158
+ * @property nullable - NULL 허용 여부
159
+ * @property default - 기본값
160
+ * @property description - Column 설명 (DDL 코멘트)
161
161
  *
162
162
  * @see {@link ColumnBuilder} Column builder
163
163
  */