@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
@@ -1,16 +1,16 @@
1
1
  /**
2
- * Search query parsing result (LIKE pattern)
2
+ * 검색 쿼리 파싱 결과 (LIKE 패턴)
3
3
  */
4
4
  export interface ParsedSearchQuery {
5
- /** General search terms (OR condition) - LIKE pattern */
5
+ /** 일반 검색어 (OR 조건) - LIKE 패턴 */
6
6
  or: string[];
7
- /** Required search terms (AND condition, + prefix or quotes) - LIKE pattern */
7
+ /** 필수 검색어 (AND 조건, + 접두사 또는 따옴표) - LIKE 패턴 */
8
8
  must: string[];
9
- /** Excluded search terms (NOT condition, - prefix) - LIKE pattern */
9
+ /** 제외 검색어 (NOT 조건, - 접두사) - LIKE 패턴 */
10
10
  not: string[];
11
11
  }
12
12
 
13
- // Replace escape sequences with placeholders
13
+ // 이스케이프 시퀀스를 플레이스홀더로 치환
14
14
  const ESC = {
15
15
  BACKSLASH: "\x00BACKSLASH\x00",
16
16
  ASTERISK: "\x00ASTERISK\x00",
@@ -21,38 +21,38 @@ const ESC = {
21
21
  };
22
22
 
23
23
  /**
24
- * Parse search query string and convert to SQL LIKE pattern.
24
+ * 검색 쿼리 문자열을 파싱하여 SQL LIKE 패턴으로 변환한다.
25
25
  *
26
- * ## Search Syntax
26
+ * ## 검색 구문
27
27
  *
28
- * | Syntax | Meaning | Example |
28
+ * | 구문 | 의미 | 예시 |
29
29
  * |--------|---------|---------|
30
- * | `term1 term2` | OR (one of them) | `apple banana` |
31
- * | `+term` | Required (AND) | `+apple +banana` |
32
- * | `-term` | Excluded (NOT) | `apple -banana` |
33
- * | `"exact phrase"` | Exact match (required) | `"delicious fruit"` |
34
- * | `*` | Wildcard | `app*` → `app%` |
30
+ * | `term1 term2` | OR (하나 이상 일치) | `apple banana` |
31
+ * | `+term` | 필수 포함 (AND) | `+apple +banana` |
32
+ * | `-term` | 제외 (NOT) | `apple -banana` |
33
+ * | `"exact phrase"` | 정확한 구문 일치 (필수) | `"맛있는 과일"` |
34
+ * | `*` | 와일드카드 | `app*` → `app%` |
35
35
  *
36
- * ## Escape Sequences
36
+ * ## 이스케이프 시퀀스
37
37
  *
38
- * | Input | Meaning |
38
+ * | 입력 | 의미 |
39
39
  * |-------|---------|
40
- * | `\\` | Literal `\` |
41
- * | `\*` | Literal `*` |
42
- * | `\%` | Literal `%` |
43
- * | `\"` | Literal `"` |
44
- * | `\+` | Literal `+` |
45
- * | `\-` | Literal `-` |
40
+ * | `\\` | 리터럴 `\` |
41
+ * | `\*` | 리터럴 `*` |
42
+ * | `\%` | 리터럴 `%` |
43
+ * | `\"` | 리터럴 `"` |
44
+ * | `\+` | 리터럴 `+` |
45
+ * | `\-` | 리터럴 `-` |
46
46
  *
47
- * ## Special Cases
47
+ * ## 특수 케이스
48
48
  *
49
- * - Unclosed quotes (`"text`) are treated as regular text including the quote character.
49
+ * - 닫히지 않은 따옴표(`"text`) 따옴표를 포함한 일반 텍스트로 처리된다.
50
50
  *
51
- * ## Examples
51
+ * ## 예시
52
52
  *
53
53
  * ```typescript
54
54
  * parseSearchQuery('apple "delicious fruit" -banana +strawberry')
55
- * // Result:
55
+ * // 결과:
56
56
  * // {
57
57
  * // or: ["%apple%"],
58
58
  * // must: ["%delicious fruit%", "%strawberry%"],
@@ -60,24 +60,24 @@ const ESC = {
60
60
  * // }
61
61
  *
62
62
  * parseSearchQuery('app* test')
63
- * // Result:
63
+ * // 결과:
64
64
  * // {
65
- * // or: ["app%", "%test%"], // app* starts with "app", test is substring match
65
+ * // or: ["app%", "%test%"], // app*는 "app"으로 시작, test 부분 문자열 검색
66
66
  * // must: [],
67
67
  * // not: []
68
68
  * // }
69
69
  *
70
- * parseSearchQuery('app\\*test') // escaped *
71
- * // Result:
70
+ * parseSearchQuery('app\\*test') // 이스케이프된 *
71
+ * // 결과:
72
72
  * // {
73
- * // or: ["%app*test%"], // literal *
73
+ * // or: ["%app*test%"], // 리터럴 *
74
74
  * // must: [],
75
75
  * // not: []
76
76
  * // }
77
77
  * ```
78
78
  *
79
- * @param searchText Search query string
80
- * @returns Parsed search query object (LIKE pattern)
79
+ * @param searchText 검색 쿼리 문자열
80
+ * @returns 파싱된 검색 쿼리 객체 (LIKE 패턴)
81
81
  */
82
82
  export function parseSearchQuery(searchText: string): ParsedSearchQuery {
83
83
  const result: ParsedSearchQuery = {
@@ -98,7 +98,7 @@ export function parseSearchQuery(searchText: string): ParsedSearchQuery {
98
98
  .replace(/\\\+/g, ESC.PLUS)
99
99
  .replace(/\\-/g, ESC.MINUS);
100
100
 
101
- // Extract quoted sections
101
+ // 따옴표 구간 추출
102
102
  const quotedRegex = /([+-]?)"([^"]*)"/g;
103
103
  let match: RegExpExecArray | null;
104
104
 
@@ -115,21 +115,21 @@ export function parseSearchQuery(searchText: string): ParsedSearchQuery {
115
115
  } else if (prefix === "-") {
116
116
  result.not.push(pattern);
117
117
  } else {
118
- // Quoted text is treated as must (exact match = required)
118
+ // 따옴표 텍스트는 must로 처리 (정확한 일치 = 필수)
119
119
  result.must.push(pattern);
120
120
  }
121
121
  }
122
122
 
123
- // Remove quoted sections
123
+ // 따옴표 구간 제거
124
124
  processed = processed.replace(/[+-]?"[^"]*"/g, " ");
125
125
 
126
- // Split tokens by whitespace
126
+ // 공백으로 토큰 분리
127
127
  const tokens = processed.split(/\s+/).filter((t) => t.length > 0);
128
128
 
129
129
  for (let token of tokens) {
130
130
  let targetArray = result.or;
131
131
 
132
- // Handle + or - prefix
132
+ // + 또는 - 접두사 처리
133
133
  if (token.startsWith("+")) {
134
134
  targetArray = result.must;
135
135
  token = token.slice(1);
@@ -148,32 +148,32 @@ export function parseSearchQuery(searchText: string): ParsedSearchQuery {
148
148
  }
149
149
 
150
150
  /**
151
- * Convert search term to SQL LIKE pattern (internal function)
151
+ * 검색어를 SQL LIKE 패턴으로 변환 (내부 함수)
152
152
  *
153
- * Wildcard rules:
154
- * - `apple` (no wildcard) → `%apple%` (substring match, default)
155
- * - `apple*` → `apple%` (starts with)
156
- * - `*apple` → `%apple` (ends with)
157
- * - `*apple*` → `%apple%` (explicit substring)
158
- * - `a*ple` → `a%ple` (in the middle)
153
+ * 와일드카드 규칙:
154
+ * - `apple` (와일드카드 없음) → `%apple%` (부분 문자열 검색, 기본값)
155
+ * - `apple*` → `apple%` (시작 일치)
156
+ * - `*apple` → `%apple` ( 일치)
157
+ * - `*apple*` → `%apple%` (명시적 부분 문자열)
158
+ * - `a*ple` → `a%ple` (중간 일치)
159
159
  */
160
160
  function termToLikePattern(term: string): string {
161
- // Convert wildcard * to temporary marker (escaped ones are already handled as ESC.ASTERISK)
161
+ // 와일드카드 *를 임시 마커로 변환 (이스케이프된 것은 이미 ESC.ASTERISK로 처리됨)
162
162
  const WILDCARD = "\x01WILDCARD\x01";
163
163
  const hasWildcard = term.includes("*");
164
164
  let pattern = term.replace(/\*/g, WILDCARD);
165
165
 
166
- // Escape SQL LIKE special characters (\ → \\, % → \%, _ → \_, [ → \[)
166
+ // SQL LIKE 특수 문자 이스케이프 (\ → \\, % → \%, _ → \_, [ → \[)
167
167
  pattern = pattern
168
168
  .replace(/\\/g, "\\\\")
169
169
  .replace(/%/g, "\\%")
170
170
  .replace(/_/g, "\\_")
171
171
  .replace(/\[/g, "\\[");
172
172
 
173
- // Convert wildcard marker → % (SQL wildcard)
173
+ // 와일드카드 마커 → % (SQL 와일드카드)로 변환
174
174
  pattern = pattern.replaceAll(WILDCARD, "%");
175
175
 
176
- // Restore escape placeholders
176
+ // 이스케이프 플레이스홀더 복원
177
177
  pattern = pattern
178
178
  .replaceAll(ESC.BACKSLASH, "\\\\") // \\ → SQL \\
179
179
  .replaceAll(ESC.ASTERISK, "*") // \* → literal * (not special in SQL)
@@ -182,8 +182,8 @@ function termToLikePattern(term: string): string {
182
182
  .replaceAll(ESC.PLUS, "+")
183
183
  .replaceAll(ESC.MINUS, "-");
184
184
 
185
- // If no wildcard, add % on both sides (default substring search)
186
- // If wildcard exists, use the pattern as specified by the user
185
+ // 와일드카드가 없으면 양쪽에 % 추가 (기본 부분 문자열 검색)
186
+ // 와일드카드가 있으면 사용자가 지정한 패턴 그대로 사용
187
187
  if (hasWildcard) {
188
188
  return pattern;
189
189
  }
@@ -2,8 +2,8 @@ import type { ColumnPrimitive, ColumnPrimitiveStr } from "../types/column";
2
2
  import type { Expr, WhereExpr } from "../types/expr";
3
3
 
4
4
  /**
5
- * Type-safe expression wrapper
6
- * Tracks expression return type using TypeScript generics
5
+ * 타입 안전 표현식 래퍼
6
+ * TypeScript 제네릭을 사용하여 표현식 반환 타입을 추적한다
7
7
  */
8
8
  export class ExprUnit<TPrimitive extends ColumnPrimitive> {
9
9
  readonly $infer!: TPrimitive;
@@ -19,13 +19,13 @@ export class ExprUnit<TPrimitive extends ColumnPrimitive> {
19
19
  }
20
20
 
21
21
  /**
22
- * Expression wrapper for WHERE clause
22
+ * WHERE 절용 표현식 래퍼
23
23
  */
24
24
  export class WhereExprUnit {
25
25
  constructor(readonly expr: WhereExpr) {}
26
26
  }
27
27
 
28
28
  /**
29
- * Input type that accepts ExprUnit or literal values
29
+ * ExprUnit 또는 리터럴 값을 받는 입력 타입
30
30
  */
31
31
  export type ExprInput<TPrimitive extends ColumnPrimitive> = ExprUnit<TPrimitive> | TPrimitive;