@simplysm/orm-common 13.0.69 → 13.0.70

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 (204) hide show
  1. package/README.md +54 -1447
  2. package/dist/create-db-context.d.ts +10 -10
  3. package/dist/create-db-context.js +9 -9
  4. package/dist/create-db-context.js.map +1 -1
  5. package/dist/ddl/column-ddl.d.ts +4 -4
  6. package/dist/ddl/initialize.d.ts +17 -17
  7. package/dist/ddl/initialize.js +2 -2
  8. package/dist/ddl/initialize.js.map +1 -1
  9. package/dist/ddl/relation-ddl.d.ts +6 -6
  10. package/dist/ddl/schema-ddl.d.ts +4 -4
  11. package/dist/ddl/table-ddl.d.ts +24 -24
  12. package/dist/ddl/table-ddl.js +4 -4
  13. package/dist/ddl/table-ddl.js.map +1 -1
  14. package/dist/errors/db-transaction-error.d.ts +15 -15
  15. package/dist/errors/db-transaction-error.d.ts.map +1 -1
  16. package/dist/exec/executable.d.ts +23 -23
  17. package/dist/exec/executable.js +3 -3
  18. package/dist/exec/executable.js.map +1 -1
  19. package/dist/exec/queryable.d.ts +160 -160
  20. package/dist/exec/queryable.js +119 -119
  21. package/dist/exec/queryable.js.map +1 -1
  22. package/dist/exec/search-parser.d.ts +37 -37
  23. package/dist/exec/search-parser.d.ts.map +1 -1
  24. package/dist/expr/expr-unit.d.ts +4 -4
  25. package/dist/expr/expr.d.ts +257 -257
  26. package/dist/expr/expr.js +265 -265
  27. package/dist/expr/expr.js.map +1 -1
  28. package/dist/query-builder/base/expr-renderer-base.d.ts +9 -9
  29. package/dist/query-builder/base/expr-renderer-base.js +2 -2
  30. package/dist/query-builder/base/expr-renderer-base.js.map +1 -1
  31. package/dist/query-builder/base/query-builder-base.d.ts +26 -26
  32. package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
  33. package/dist/query-builder/base/query-builder-base.js +22 -22
  34. package/dist/query-builder/base/query-builder-base.js.map +1 -1
  35. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
  36. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  37. package/dist/query-builder/mssql/mssql-expr-renderer.js +18 -18
  38. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
  39. package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
  40. package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
  41. package/dist/query-builder/mssql/mssql-query-builder.js +11 -11
  42. package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
  43. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
  44. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  45. package/dist/query-builder/mysql/mysql-expr-renderer.js +17 -17
  46. package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
  47. package/dist/query-builder/mysql/mysql-query-builder.d.ts +8 -8
  48. package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
  49. package/dist/query-builder/mysql/mysql-query-builder.js +5 -5
  50. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
  51. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
  52. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  53. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +17 -17
  54. package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
  55. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +5 -5
  56. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
  57. package/dist/query-builder/postgresql/postgresql-query-builder.js +8 -8
  58. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
  59. package/dist/query-builder/query-builder.d.ts +1 -1
  60. package/dist/schema/factory/column-builder.d.ts +79 -79
  61. package/dist/schema/factory/column-builder.js +42 -42
  62. package/dist/schema/factory/index-builder.d.ts +39 -39
  63. package/dist/schema/factory/index-builder.js +26 -26
  64. package/dist/schema/factory/relation-builder.d.ts +99 -99
  65. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  66. package/dist/schema/factory/relation-builder.js +38 -38
  67. package/dist/schema/procedure-builder.d.ts +49 -49
  68. package/dist/schema/procedure-builder.d.ts.map +1 -1
  69. package/dist/schema/procedure-builder.js +33 -33
  70. package/dist/schema/table-builder.d.ts +59 -59
  71. package/dist/schema/table-builder.d.ts.map +1 -1
  72. package/dist/schema/table-builder.js +43 -43
  73. package/dist/schema/view-builder.d.ts +49 -49
  74. package/dist/schema/view-builder.d.ts.map +1 -1
  75. package/dist/schema/view-builder.js +32 -32
  76. package/dist/types/column.d.ts +22 -22
  77. package/dist/types/column.js +1 -1
  78. package/dist/types/column.js.map +1 -1
  79. package/dist/types/db.d.ts +40 -40
  80. package/dist/types/expr.d.ts +59 -59
  81. package/dist/types/expr.d.ts.map +1 -1
  82. package/dist/types/query-def.d.ts +44 -44
  83. package/dist/types/query-def.d.ts.map +1 -1
  84. package/dist/utils/result-parser.d.ts +11 -11
  85. package/dist/utils/result-parser.js +3 -3
  86. package/dist/utils/result-parser.js.map +1 -1
  87. package/package.json +5 -5
  88. package/src/create-db-context.ts +20 -20
  89. package/src/ddl/column-ddl.ts +4 -4
  90. package/src/ddl/initialize.ts +259 -259
  91. package/src/ddl/relation-ddl.ts +89 -89
  92. package/src/ddl/schema-ddl.ts +4 -4
  93. package/src/ddl/table-ddl.ts +189 -189
  94. package/src/errors/db-transaction-error.ts +13 -13
  95. package/src/exec/executable.ts +25 -25
  96. package/src/exec/queryable.ts +2033 -2033
  97. package/src/exec/search-parser.ts +57 -57
  98. package/src/expr/expr-unit.ts +4 -4
  99. package/src/expr/expr.ts +2140 -2140
  100. package/src/query-builder/base/expr-renderer-base.ts +237 -237
  101. package/src/query-builder/base/query-builder-base.ts +213 -213
  102. package/src/query-builder/mssql/mssql-expr-renderer.ts +607 -607
  103. package/src/query-builder/mssql/mssql-query-builder.ts +650 -650
  104. package/src/query-builder/mysql/mysql-expr-renderer.ts +613 -613
  105. package/src/query-builder/mysql/mysql-query-builder.ts +759 -759
  106. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +611 -611
  107. package/src/query-builder/postgresql/postgresql-query-builder.ts +686 -686
  108. package/src/query-builder/query-builder.ts +19 -19
  109. package/src/schema/factory/column-builder.ts +423 -423
  110. package/src/schema/factory/index-builder.ts +164 -164
  111. package/src/schema/factory/relation-builder.ts +453 -453
  112. package/src/schema/procedure-builder.ts +232 -232
  113. package/src/schema/table-builder.ts +319 -319
  114. package/src/schema/view-builder.ts +221 -221
  115. package/src/types/column.ts +188 -188
  116. package/src/types/db.ts +208 -208
  117. package/src/types/expr.ts +697 -697
  118. package/src/types/query-def.ts +513 -513
  119. package/src/utils/result-parser.ts +458 -458
  120. package/tests/db-context/create-db-context.spec.ts +224 -0
  121. package/tests/db-context/define-db-context.spec.ts +68 -0
  122. package/tests/ddl/basic.expected.ts +341 -0
  123. package/tests/ddl/basic.spec.ts +714 -0
  124. package/tests/ddl/column-builder.expected.ts +310 -0
  125. package/tests/ddl/column-builder.spec.ts +637 -0
  126. package/tests/ddl/index-builder.expected.ts +38 -0
  127. package/tests/ddl/index-builder.spec.ts +202 -0
  128. package/tests/ddl/procedure-builder.expected.ts +52 -0
  129. package/tests/ddl/procedure-builder.spec.ts +234 -0
  130. package/tests/ddl/relation-builder.expected.ts +36 -0
  131. package/tests/ddl/relation-builder.spec.ts +372 -0
  132. package/tests/ddl/table-builder.expected.ts +113 -0
  133. package/tests/ddl/table-builder.spec.ts +433 -0
  134. package/tests/ddl/view-builder.expected.ts +38 -0
  135. package/tests/ddl/view-builder.spec.ts +176 -0
  136. package/tests/dml/delete.expected.ts +96 -0
  137. package/tests/dml/delete.spec.ts +160 -0
  138. package/tests/dml/insert.expected.ts +192 -0
  139. package/tests/dml/insert.spec.ts +288 -0
  140. package/tests/dml/update.expected.ts +176 -0
  141. package/tests/dml/update.spec.ts +318 -0
  142. package/tests/dml/upsert.expected.ts +215 -0
  143. package/tests/dml/upsert.spec.ts +242 -0
  144. package/tests/errors/queryable-errors.spec.ts +177 -0
  145. package/tests/escape.spec.ts +100 -0
  146. package/tests/examples/pivot.expected.ts +211 -0
  147. package/tests/examples/pivot.spec.ts +533 -0
  148. package/tests/examples/sampling.expected.ts +69 -0
  149. package/tests/examples/sampling.spec.ts +104 -0
  150. package/tests/examples/unpivot.expected.ts +120 -0
  151. package/tests/examples/unpivot.spec.ts +226 -0
  152. package/tests/exec/search-parser.spec.ts +283 -0
  153. package/tests/executable/basic.expected.ts +18 -0
  154. package/tests/executable/basic.spec.ts +54 -0
  155. package/tests/expr/comparison.expected.ts +282 -0
  156. package/tests/expr/comparison.spec.ts +400 -0
  157. package/tests/expr/conditional.expected.ts +134 -0
  158. package/tests/expr/conditional.spec.ts +276 -0
  159. package/tests/expr/date.expected.ts +332 -0
  160. package/tests/expr/date.spec.ts +526 -0
  161. package/tests/expr/math.expected.ts +62 -0
  162. package/tests/expr/math.spec.ts +106 -0
  163. package/tests/expr/string.expected.ts +218 -0
  164. package/tests/expr/string.spec.ts +356 -0
  165. package/tests/expr/utility.expected.ts +147 -0
  166. package/tests/expr/utility.spec.ts +182 -0
  167. package/tests/select/basic.expected.ts +322 -0
  168. package/tests/select/basic.spec.ts +502 -0
  169. package/tests/select/filter.expected.ts +357 -0
  170. package/tests/select/filter.spec.ts +1068 -0
  171. package/tests/select/group.expected.ts +169 -0
  172. package/tests/select/group.spec.ts +244 -0
  173. package/tests/select/join.expected.ts +582 -0
  174. package/tests/select/join.spec.ts +805 -0
  175. package/tests/select/order.expected.ts +150 -0
  176. package/tests/select/order.spec.ts +189 -0
  177. package/tests/select/recursive-cte.expected.ts +244 -0
  178. package/tests/select/recursive-cte.spec.ts +514 -0
  179. package/tests/select/result-meta.spec.ts +270 -0
  180. package/tests/select/subquery.expected.ts +363 -0
  181. package/tests/select/subquery.spec.ts +537 -0
  182. package/tests/select/view.expected.ts +155 -0
  183. package/tests/select/view.spec.ts +235 -0
  184. package/tests/select/window.expected.ts +345 -0
  185. package/tests/select/window.spec.ts +618 -0
  186. package/tests/setup/MockExecutor.ts +18 -0
  187. package/tests/setup/TestDbContext.ts +59 -0
  188. package/tests/setup/models/Company.ts +13 -0
  189. package/tests/setup/models/Employee.ts +10 -0
  190. package/tests/setup/models/MonthlySales.ts +11 -0
  191. package/tests/setup/models/Post.ts +16 -0
  192. package/tests/setup/models/Sales.ts +10 -0
  193. package/tests/setup/models/User.ts +19 -0
  194. package/tests/setup/procedure/GetAllUsers.ts +9 -0
  195. package/tests/setup/procedure/GetUserById.ts +12 -0
  196. package/tests/setup/test-utils.ts +72 -0
  197. package/tests/setup/views/ActiveUsers.ts +8 -0
  198. package/tests/setup/views/UserSummary.ts +11 -0
  199. package/tests/types/nullable-queryable-record.spec.ts +145 -0
  200. package/tests/utils/result-parser-perf.spec.ts +210 -0
  201. package/tests/utils/result-parser.spec.ts +701 -0
  202. package/docs/expressions.md +0 -172
  203. package/docs/queries.md +0 -444
  204. package/docs/schema.md +0 -245
@@ -1,10 +1,10 @@
1
1
  /**
2
- * 인덱스 정의 빌더
2
+ * Index definition builder
3
3
  *
4
- * Fluent API를 통해 인덱스의 컬럼, 유니크 여부, 정렬 순서를 정의
5
- * TableBuilder.indexes()에서 사용
4
+ * Fluent API를 통해 Index의 column, 유니크 여부, sorting 순서를 definition
5
+ * TableBuilder.indexes()used in
6
6
  *
7
- * @template TKeys - 인덱스 컬럼 배열 타입
7
+ * @template TKeys - Index column key array type
8
8
  *
9
9
  * @example
10
10
  * ```typescript
@@ -16,10 +16,10 @@
16
16
  * createdAt: c.datetime(),
17
17
  * }))
18
18
  * .indexes((i) => [
19
- * // 유니크 인덱스
19
+ * // 유니크 Index
20
20
  * i.index("email").unique(),
21
21
  *
22
- * // 복합 인덱스 + 정렬 순서
22
+ * // 복합 Index + sorting order
23
23
  * i.index("name", "createdAt").orderBy("ASC", "DESC"),
24
24
  *
25
25
  * // 커스텀 이름
@@ -27,8 +27,8 @@
27
27
  * ]);
28
28
  * ```
29
29
  *
30
- * @see {@link createIndexFactory} 인덱스 팩토리
31
- * @see {@link TableBuilder} 테이블 빌더
30
+ * @see {@link createIndexFactory} Index factory
31
+ * @see {@link TableBuilder} Table builder
32
32
  */
33
33
  export declare class IndexBuilder<TKeys extends string[]> {
34
34
  readonly meta: {
@@ -41,12 +41,12 @@ export declare class IndexBuilder<TKeys extends string[]> {
41
41
  description?: string;
42
42
  };
43
43
  /**
44
- * @param meta - 인덱스 메타데이터
45
- * @param meta.columns - 인덱스 컬럼 배열
46
- * @param meta.name - 인덱스 이름 (선택)
47
- * @param meta.unique - 유니크 인덱스 여부
48
- * @param meta.orderBy - 컬럼별 정렬 순서
49
- * @param meta.description - 인덱스 설명
44
+ * @param meta - Index Metadata
45
+ * @param meta.columns - Index column array
46
+ * @param meta.name - Index 이름 (Select)
47
+ * @param meta.unique - 유니크 Index 여부
48
+ * @param meta.orderBy - Column별 sorting order
49
+ * @param meta.description - Index description
50
50
  */
51
51
  constructor(meta: {
52
52
  columns: TKeys;
@@ -58,10 +58,10 @@ export declare class IndexBuilder<TKeys extends string[]> {
58
58
  description?: string;
59
59
  });
60
60
  /**
61
- * 인덱스 이름 설정
61
+ * Index set name
62
62
  *
63
- * @param name - 인덱스 이름
64
- * @returns IndexBuilder 인스턴스
63
+ * @param name - Index 이름
64
+ * @returns new IndexBuilder instance
65
65
  *
66
66
  * @example
67
67
  * ```typescript
@@ -70,9 +70,9 @@ export declare class IndexBuilder<TKeys extends string[]> {
70
70
  */
71
71
  name(name: string): IndexBuilder<TKeys>;
72
72
  /**
73
- * 유니크 인덱스 설정
73
+ * 유니크 Index 설정
74
74
  *
75
- * @returns IndexBuilder 인스턴스
75
+ * @returns new IndexBuilder instance
76
76
  *
77
77
  * @example
78
78
  * ```typescript
@@ -81,19 +81,19 @@ export declare class IndexBuilder<TKeys extends string[]> {
81
81
  */
82
82
  unique(): IndexBuilder<TKeys>;
83
83
  /**
84
- * 정렬 순서 설정
84
+ * sorting order 설정
85
85
  *
86
- * 각 컬럼에 대해 ASC 또는 DESC 지정
86
+ * 각 column에 대해 ASC 또는 DESC 지정
87
87
  *
88
- * @param orderBy - 컬럼별 정렬 순서 (컬럼 수와 동일해야 함)
89
- * @returns IndexBuilder 인스턴스
88
+ * @param orderBy - Column별 sorting order (column 수와 동일해야 함)
89
+ * @returns new IndexBuilder instance
90
90
  *
91
91
  * @example
92
92
  * ```typescript
93
- * // 단일 컬럼
93
+ * // 단일 column
94
94
  * i.index("createdAt").orderBy("DESC")
95
95
  *
96
- * // 복합 컬럼
96
+ * // 복합 column
97
97
  * i.index("status", "createdAt").orderBy("ASC", "DESC")
98
98
  * ```
99
99
  */
@@ -101,20 +101,20 @@ export declare class IndexBuilder<TKeys extends string[]> {
101
101
  [K in keyof TKeys]: "ASC" | "DESC";
102
102
  }): IndexBuilder<TKeys>;
103
103
  /**
104
- * 인덱스 설명 설정
104
+ * Index set description
105
105
  *
106
- * @param description - 인덱스 설명 (DDL 주석으로 사용)
107
- * @returns IndexBuilder 인스턴스
106
+ * @param description - Index description (DDL Comment으로 사용)
107
+ * @returns new IndexBuilder instance
108
108
  */
109
109
  description(description: string): IndexBuilder<TKeys>;
110
110
  }
111
111
  /**
112
- * 인덱스 빌더 팩토리 생성
112
+ * Index builder factory Generate
113
113
  *
114
- * TableBuilder.indexes()에서 사용하는 인덱스 팩토리
114
+ * TableBuilder.indexes()used in하는 Index factory
115
115
  *
116
- * @template TColumnKey - 테이블 컬럼 타입
117
- * @returns 인덱스 생성 메서드를 포함한 객체
116
+ * @template TColumnKey - Table column key type
117
+ * @returns Index Generate 메서드를 포함한 object
118
118
  *
119
119
  * @example
120
120
  * ```typescript
@@ -130,20 +130,20 @@ export declare class IndexBuilder<TKeys extends string[]> {
130
130
  * ]);
131
131
  * ```
132
132
  *
133
- * @see {@link IndexBuilder} 인덱스 빌더 클래스
133
+ * @see {@link IndexBuilder} Index builder class
134
134
  */
135
135
  export declare function createIndexFactory<TColumnKey extends string>(): {
136
136
  /**
137
- * 인덱스 생성
137
+ * Index Generate
138
138
  *
139
- * @template TKeys - 인덱스 컬럼 배열 타입
140
- * @param columns - 인덱스 컬럼명들
141
- * @returns IndexBuilder 인스턴스
139
+ * @template TKeys - Index column key array type
140
+ * @param columns - Index column명들
141
+ * @returns IndexBuilder instance
142
142
  *
143
143
  * @example
144
144
  * ```typescript
145
- * i.index("email") // 단일 컬럼
146
- * i.index("name", "email") // 복합 컬럼
145
+ * i.index("email") // 단일 column
146
+ * i.index("name", "email") // 복합 column
147
147
  * ```
148
148
  */
149
149
  index<TKeys extends TColumnKey[]>(...columns: TKeys): IndexBuilder<TKeys>;
@@ -1,20 +1,20 @@
1
1
  class IndexBuilder {
2
2
  /**
3
- * @param meta - 인덱스 메타데이터
4
- * @param meta.columns - 인덱스 컬럼 배열
5
- * @param meta.name - 인덱스 이름 (선택)
6
- * @param meta.unique - 유니크 인덱스 여부
7
- * @param meta.orderBy - 컬럼별 정렬 순서
8
- * @param meta.description - 인덱스 설명
3
+ * @param meta - Index Metadata
4
+ * @param meta.columns - Index column array
5
+ * @param meta.name - Index 이름 (Select)
6
+ * @param meta.unique - 유니크 Index 여부
7
+ * @param meta.orderBy - Column별 sorting order
8
+ * @param meta.description - Index description
9
9
  */
10
10
  constructor(meta) {
11
11
  this.meta = meta;
12
12
  }
13
13
  /**
14
- * 인덱스 이름 설정
14
+ * Index set name
15
15
  *
16
- * @param name - 인덱스 이름
17
- * @returns IndexBuilder 인스턴스
16
+ * @param name - Index 이름
17
+ * @returns new IndexBuilder instance
18
18
  *
19
19
  * @example
20
20
  * ```typescript
@@ -25,9 +25,9 @@ class IndexBuilder {
25
25
  return new IndexBuilder({ ...this.meta, name });
26
26
  }
27
27
  /**
28
- * 유니크 인덱스 설정
28
+ * 유니크 Index 설정
29
29
  *
30
- * @returns IndexBuilder 인스턴스
30
+ * @returns new IndexBuilder instance
31
31
  *
32
32
  * @example
33
33
  * ```typescript
@@ -38,19 +38,19 @@ class IndexBuilder {
38
38
  return new IndexBuilder({ ...this.meta, unique: true });
39
39
  }
40
40
  /**
41
- * 정렬 순서 설정
41
+ * sorting order 설정
42
42
  *
43
- * 각 컬럼에 대해 ASC 또는 DESC 지정
43
+ * 각 column에 대해 ASC 또는 DESC 지정
44
44
  *
45
- * @param orderBy - 컬럼별 정렬 순서 (컬럼 수와 동일해야 함)
46
- * @returns IndexBuilder 인스턴스
45
+ * @param orderBy - Column별 sorting order (column 수와 동일해야 함)
46
+ * @returns new IndexBuilder instance
47
47
  *
48
48
  * @example
49
49
  * ```typescript
50
- * // 단일 컬럼
50
+ * // 단일 column
51
51
  * i.index("createdAt").orderBy("DESC")
52
52
  *
53
- * // 복합 컬럼
53
+ * // 복합 column
54
54
  * i.index("status", "createdAt").orderBy("ASC", "DESC")
55
55
  * ```
56
56
  */
@@ -58,10 +58,10 @@ class IndexBuilder {
58
58
  return new IndexBuilder({ ...this.meta, orderBy });
59
59
  }
60
60
  /**
61
- * 인덱스 설명 설정
61
+ * Index set description
62
62
  *
63
- * @param description - 인덱스 설명 (DDL 주석으로 사용)
64
- * @returns IndexBuilder 인스턴스
63
+ * @param description - Index description (DDL Comment으로 사용)
64
+ * @returns new IndexBuilder instance
65
65
  */
66
66
  description(description) {
67
67
  return new IndexBuilder({ ...this.meta, description });
@@ -70,16 +70,16 @@ class IndexBuilder {
70
70
  function createIndexFactory() {
71
71
  return {
72
72
  /**
73
- * 인덱스 생성
73
+ * Index Generate
74
74
  *
75
- * @template TKeys - 인덱스 컬럼 배열 타입
76
- * @param columns - 인덱스 컬럼명들
77
- * @returns IndexBuilder 인스턴스
75
+ * @template TKeys - Index column key array type
76
+ * @param columns - Index column명들
77
+ * @returns IndexBuilder instance
78
78
  *
79
79
  * @example
80
80
  * ```typescript
81
- * i.index("email") // 단일 컬럼
82
- * i.index("name", "email") // 복합 컬럼
81
+ * i.index("email") // 단일 column
82
+ * i.index("name", "email") // 복합 column
83
83
  * ```
84
84
  */
85
85
  index(...columns) {