@simplysm/orm-common 13.0.83 → 13.0.85

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 (73) hide show
  1. package/dist/ddl/initialize.d.ts +2 -2
  2. package/dist/ddl/initialize.js +1 -1
  3. package/dist/ddl/initialize.js.map +1 -1
  4. package/dist/ddl/table-ddl.d.ts +1 -1
  5. package/dist/exec/queryable.d.ts +115 -115
  6. package/dist/exec/queryable.js +68 -68
  7. package/dist/exec/queryable.js.map +1 -1
  8. package/dist/expr/expr.d.ts +248 -248
  9. package/dist/expr/expr.js +250 -250
  10. package/dist/query-builder/base/expr-renderer-base.d.ts +7 -7
  11. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +3 -3
  12. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  13. package/dist/query-builder/mssql/mssql-expr-renderer.js +5 -5
  14. package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
  15. package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
  16. package/dist/query-builder/mssql/mssql-query-builder.js +7 -7
  17. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +2 -2
  18. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  19. package/dist/query-builder/mysql/mysql-expr-renderer.js +4 -4
  20. package/dist/query-builder/mysql/mysql-query-builder.d.ts +10 -10
  21. package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
  22. package/dist/query-builder/mysql/mysql-query-builder.js +4 -4
  23. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +2 -2
  24. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  25. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +4 -4
  26. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +8 -8
  27. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
  28. package/dist/query-builder/postgresql/postgresql-query-builder.js +7 -7
  29. package/dist/query-builder/query-builder.d.ts +1 -1
  30. package/dist/schema/factory/column-builder.d.ts +46 -46
  31. package/dist/schema/factory/column-builder.js +25 -25
  32. package/dist/schema/factory/index-builder.d.ts +22 -22
  33. package/dist/schema/factory/index-builder.js +14 -14
  34. package/dist/schema/factory/relation-builder.d.ts +93 -93
  35. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  36. package/dist/schema/factory/relation-builder.js +37 -37
  37. package/dist/schema/procedure-builder.d.ts +38 -38
  38. package/dist/schema/procedure-builder.d.ts.map +1 -1
  39. package/dist/schema/procedure-builder.js +26 -26
  40. package/dist/schema/table-builder.d.ts +38 -38
  41. package/dist/schema/table-builder.d.ts.map +1 -1
  42. package/dist/schema/table-builder.js +29 -29
  43. package/dist/schema/view-builder.d.ts +26 -26
  44. package/dist/schema/view-builder.d.ts.map +1 -1
  45. package/dist/schema/view-builder.js +18 -18
  46. package/dist/types/db.d.ts +40 -40
  47. package/dist/types/expr.d.ts +75 -75
  48. package/dist/types/expr.d.ts.map +1 -1
  49. package/dist/types/query-def.d.ts +32 -32
  50. package/dist/types/query-def.d.ts.map +1 -1
  51. package/package.json +2 -2
  52. package/src/ddl/initialize.ts +16 -16
  53. package/src/ddl/table-ddl.ts +1 -1
  54. package/src/exec/queryable.ts +163 -163
  55. package/src/expr/expr.ts +257 -257
  56. package/src/query-builder/base/expr-renderer-base.ts +8 -8
  57. package/src/query-builder/mssql/mssql-expr-renderer.ts +20 -20
  58. package/src/query-builder/mssql/mssql-query-builder.ts +28 -28
  59. package/src/query-builder/mysql/mysql-expr-renderer.ts +22 -22
  60. package/src/query-builder/mysql/mysql-query-builder.ts +65 -65
  61. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +15 -15
  62. package/src/query-builder/postgresql/postgresql-query-builder.ts +43 -43
  63. package/src/query-builder/query-builder.ts +1 -1
  64. package/src/schema/factory/column-builder.ts +48 -48
  65. package/src/schema/factory/index-builder.ts +22 -22
  66. package/src/schema/factory/relation-builder.ts +95 -95
  67. package/src/schema/procedure-builder.ts +38 -38
  68. package/src/schema/table-builder.ts +38 -38
  69. package/src/schema/view-builder.ts +28 -28
  70. package/src/types/db.ts +41 -41
  71. package/src/types/expr.ts +79 -79
  72. package/src/types/query-def.ts +37 -37
  73. package/tests/ddl/basic.expected.ts +8 -8
package/dist/expr/expr.js CHANGED
@@ -11,9 +11,9 @@ const expr = {
11
11
  *
12
12
  * Widen to base type matching dataType, remove literal type
13
13
  *
14
- * @param dataType - Value의 data type ("string", "number", "boolean", "DateTime", "DateOnly", "Time", "Uuid", "Buffer")
15
- * @param value - 래핑할 value (undefined allow)
16
- * @returns 래핑된 ExprUnit instance
14
+ * @param dataType - The data type of the value ("string", "number", "boolean", "DateTime", "DateOnly", "Time", "Uuid", "Buffer")
15
+ * @param value - Value to wrap (undefined allowed)
16
+ * @returns Wrapped ExprUnit instance
17
17
  *
18
18
  * @example
19
19
  * ```typescript
@@ -191,16 +191,16 @@ const expr = {
191
191
  /**
192
192
  * range comparison (BETWEEN)
193
193
  *
194
- * from/to undefined이면 해당 방향은 무제한
194
+ * If from/to is undefined, that direction is unbounded
195
195
  *
196
196
  * @param source - Column or expression to compare
197
- * @param from - start value (undefined이면 하한 N/A)
198
- * @param to - value (undefined이면 상한 N/A)
197
+ * @param from - Start value (no lower bound if undefined)
198
+ * @param to - End value (no upper bound if undefined)
199
199
  * @returns WHERE condition expression
200
200
  *
201
201
  * @example
202
202
  * ```typescript
203
- * // range 지정
203
+ * // Specify range
204
204
  * db.user().where((u) => [expr.between(u.age, 18, 65)])
205
205
  * // WHERE age BETWEEN 18 AND 65
206
206
  *
@@ -220,9 +220,9 @@ const expr = {
220
220
  //#endregion
221
221
  //#region ========== WHERE - NULL check ==========
222
222
  /**
223
- * NULL 체크 (IS NULL)
223
+ * NULL check (IS NULL)
224
224
  *
225
- * @param source - 체크할 column 또는 expression
225
+ * @param source - Column or expression to check
226
226
  * @returns WHERE condition expression
227
227
  *
228
228
  * @example
@@ -240,22 +240,22 @@ const expr = {
240
240
  //#endregion
241
241
  //#region ========== WHERE - String search ==========
242
242
  /**
243
- * LIKE pattern 매칭
243
+ * LIKE pattern matching
244
244
  *
245
- * `%`는 0개 이상의 문자, `_`는 단일 문자와 매칭.
246
- * 특수문자는 `\`로 escape됨
245
+ * `%` matches zero or more characters, `_` matches a single character.
246
+ * Special characters are escaped with `\`
247
247
  *
248
- * @param source - 검색할 column 또는 expression
249
- * @param pattern - 검색 pattern (%, _ wildcard 사용 가능)
248
+ * @param source - Column or expression to search
249
+ * @param pattern - Search pattern (%, _ wildcards available)
250
250
  * @returns WHERE condition expression
251
251
  *
252
252
  * @example
253
253
  * ```typescript
254
- * // 접두사 검색
254
+ * // Prefix search
255
255
  * db.user().where((u) => [expr.like(u.name, "John%")])
256
256
  * // WHERE name LIKE 'John%' ESCAPE '\'
257
257
  *
258
- * // include 검색
258
+ * // Contains search
259
259
  * db.user().where((u) => [expr.like(u.email, "%@gmail.com")])
260
260
  * ```
261
261
  */
@@ -267,12 +267,12 @@ const expr = {
267
267
  });
268
268
  },
269
269
  /**
270
- * regular expression pattern 매칭
270
+ * Regular expression pattern matching
271
271
  *
272
- * DBMS별 regular expression 문법 차이 주의 필요
272
+ * Note: regex syntax may differ between DBMS implementations
273
273
  *
274
- * @param source - 검색할 column 또는 expression
275
- * @param pattern - regular expression pattern
274
+ * @param source - Column or expression to search
275
+ * @param pattern - Regular expression pattern
276
276
  * @returns WHERE condition expression
277
277
  *
278
278
  * @example
@@ -291,10 +291,10 @@ const expr = {
291
291
  //#endregion
292
292
  //#region ========== WHERE - IN ==========
293
293
  /**
294
- * IN operator - Value 목록과 comparison
294
+ * IN operator - Compare against a list of values
295
295
  *
296
296
  * @param source - Column or expression to compare
297
- * @param values - 비교할 value 목록
297
+ * @param values - List of values to compare against
298
298
  * @returns WHERE condition expression
299
299
  *
300
300
  * @example
@@ -311,14 +311,14 @@ const expr = {
311
311
  });
312
312
  },
313
313
  /**
314
- * IN (SELECT ...) - Subquery 결과와 comparison
314
+ * IN (SELECT ...) - Compare against subquery results
315
315
  *
316
- * Subquery는 반드시 단일 column만 SELECT해야
316
+ * The subquery must SELECT only a single column
317
317
  *
318
318
  * @param source - Column or expression to compare
319
- * @param query - 단일 column을 반환하는 Queryable
319
+ * @param query - Queryable that returns a single column
320
320
  * @returns WHERE condition expression
321
- * @throws {Error} Subquery가 단일 column이 아닌 경우
321
+ * @throws {Error} When the subquery does not return a single column
322
322
  *
323
323
  * @example
324
324
  * ```typescript
@@ -345,16 +345,16 @@ const expr = {
345
345
  });
346
346
  },
347
347
  /**
348
- * EXISTS (SELECT ...) - Subquery result 존재 여부 확인
348
+ * EXISTS (SELECT ...) - Check if subquery returns any rows
349
349
  *
350
- * Subquery가 하나 이상의 행을 반환하면 true
350
+ * Returns true if the subquery returns one or more rows
351
351
  *
352
- * @param query - 존재 여부를 확인할 Queryable
352
+ * @param query - Queryable to check for existence
353
353
  * @returns WHERE condition expression
354
354
  *
355
355
  * @example
356
356
  * ```typescript
357
- * // 주문이 있는 사용자 조회
357
+ * // Query users who have orders
358
358
  * db.user().where((u) => [
359
359
  * expr.exists(
360
360
  * db.order().where((o) => [expr.eq(o.userId, u.id)])
@@ -373,10 +373,10 @@ const expr = {
373
373
  //#endregion
374
374
  //#region ========== WHERE - Logical operators ==========
375
375
  /**
376
- * NOT operator - Condition 부정
376
+ * NOT operator - Negate a condition
377
377
  *
378
- * @param arg - 부정할 condition
379
- * @returns 부정된 WHERE condition expression
378
+ * @param arg - Condition to negate
379
+ * @returns Negated WHERE condition expression
380
380
  *
381
381
  * @example
382
382
  * ```typescript
@@ -391,12 +391,12 @@ const expr = {
391
391
  });
392
392
  },
393
393
  /**
394
- * AND operator - 모든 condition 충족
394
+ * AND operator - All conditions must be satisfied
395
395
  *
396
- * 여러 조건을 AND 결합. where() 메서드에 배열로 전달하면 automatic으로 AND applied
396
+ * Combines multiple conditions with AND. Passing an array to where() automatically applies AND
397
397
  *
398
- * @param conditions - AND로 결합할 condition 목록
399
- * @returns 결합된 WHERE condition expression
398
+ * @param conditions - List of conditions to combine with AND
399
+ * @returns Combined WHERE condition expression
400
400
  *
401
401
  * @example
402
402
  * ```typescript
@@ -419,10 +419,10 @@ const expr = {
419
419
  });
420
420
  },
421
421
  /**
422
- * OR operator - 하나 이상의 condition 충족
422
+ * OR operator - At least one condition must be satisfied
423
423
  *
424
- * @param conditions - OR로 결합할 condition 목록
425
- * @returns 결합된 WHERE condition expression
424
+ * @param conditions - List of conditions to combine with OR
425
+ * @returns Combined WHERE condition expression
426
426
  *
427
427
  * @example
428
428
  * ```typescript
@@ -445,14 +445,14 @@ const expr = {
445
445
  });
446
446
  },
447
447
  //#endregion
448
- //#region ========== SELECT - 문자열 ==========
448
+ //#region ========== SELECT - String ==========
449
449
  /**
450
- * 문자열 연결 (CONCAT)
450
+ * String concatenation (CONCAT)
451
451
  *
452
- * NULL 값은 문자열로 processing됨 (DBMS별 automatic Transform)
452
+ * NULL values are treated as empty strings (auto-transformed per DBMS)
453
453
  *
454
- * @param args - 연결할 문자열들
455
- * @returns 연결된 문자열 expression
454
+ * @param args - Strings to concatenate
455
+ * @returns Concatenated string expression
456
456
  *
457
457
  * @example
458
458
  * ```typescript
@@ -469,11 +469,11 @@ const expr = {
469
469
  });
470
470
  },
471
471
  /**
472
- * 문자열 왼쪽에서 지정 길이만큼 추출 (LEFT)
472
+ * Extract specified length from the left of a string (LEFT)
473
473
  *
474
- * @param source - original string
475
- * @param length - 추출할 문자
476
- * @returns 추출된 문자열 expression
474
+ * @param source - Original string
475
+ * @param length - Number of characters to extract
476
+ * @returns Extracted string expression
477
477
  *
478
478
  * @example
479
479
  * ```typescript
@@ -491,11 +491,11 @@ const expr = {
491
491
  });
492
492
  },
493
493
  /**
494
- * 문자열 오른쪽에서 지정 길이만큼 추출 (RIGHT)
494
+ * Extract specified length from the right of a string (RIGHT)
495
495
  *
496
- * @param source - original string
497
- * @param length - 추출할 문자
498
- * @returns 추출된 문자열 expression
496
+ * @param source - Original string
497
+ * @param length - Number of characters to extract
498
+ * @returns Extracted string expression
499
499
  *
500
500
  * @example
501
501
  * ```typescript
@@ -513,10 +513,10 @@ const expr = {
513
513
  });
514
514
  },
515
515
  /**
516
- * 문자열 양쪽 공백 Remove (TRIM)
516
+ * Remove whitespace from both sides of a string (TRIM)
517
517
  *
518
- * @param source - original string
519
- * @returns 공백이 제거된 문자열 expression
518
+ * @param source - Original string
519
+ * @returns String expression with whitespace removed
520
520
  *
521
521
  * @example
522
522
  * ```typescript
@@ -533,14 +533,14 @@ const expr = {
533
533
  });
534
534
  },
535
535
  /**
536
- * 문자열 왼쪽 패딩 (LPAD)
536
+ * Left padding (LPAD)
537
537
  *
538
- * 지정 길이가 때까지 왼쪽에 fillString loop Add
538
+ * Repeatedly adds fillString on the left until the target length is reached
539
539
  *
540
- * @param source - original string
541
- * @param length - 목표 길이
542
- * @param fillString - 패딩에 사용할 문자열
543
- * @returns 패딩된 문자열 expression
540
+ * @param source - Original string
541
+ * @param length - Target length
542
+ * @param fillString - String to use for padding
543
+ * @returns Padded string expression
544
544
  *
545
545
  * @example
546
546
  * ```typescript
@@ -560,12 +560,12 @@ const expr = {
560
560
  });
561
561
  },
562
562
  /**
563
- * 문자열 치환 (REPLACE)
563
+ * String replacement (REPLACE)
564
564
  *
565
- * @param source - original string
566
- * @param from - 찾을 문자열
567
- * @param to - 대체할 문자열
568
- * @returns 치환된 문자열 expression
565
+ * @param source - Original string
566
+ * @param from - String to find
567
+ * @param to - Replacement string
568
+ * @returns Replaced string expression
569
569
  *
570
570
  * @example
571
571
  * ```typescript
@@ -584,10 +584,10 @@ const expr = {
584
584
  });
585
585
  },
586
586
  /**
587
- * 문자열 대문자 Transform (UPPER)
587
+ * Convert string to uppercase (UPPER)
588
588
  *
589
- * @param source - original string
590
- * @returns 대문자로 Transform된 문자열 expression
589
+ * @param source - Original string
590
+ * @returns Uppercase string expression
591
591
  *
592
592
  * @example
593
593
  * ```typescript
@@ -604,10 +604,10 @@ const expr = {
604
604
  });
605
605
  },
606
606
  /**
607
- * 문자열 소문자 Transform (LOWER)
607
+ * Convert string to lowercase (LOWER)
608
608
  *
609
- * @param source - original string
610
- * @returns 소문자로 Transform된 문자열 expression
609
+ * @param source - Original string
610
+ * @returns Lowercase string expression
611
611
  *
612
612
  * @example
613
613
  * ```typescript
@@ -624,10 +624,10 @@ const expr = {
624
624
  });
625
625
  },
626
626
  /**
627
- * 문자열 길이 (문자 )
627
+ * String length (character count)
628
628
  *
629
- * @param source - original string
630
- * @returns 문자
629
+ * @param source - Original string
630
+ * @returns Character count
631
631
  *
632
632
  * @example
633
633
  * ```typescript
@@ -644,12 +644,12 @@ const expr = {
644
644
  });
645
645
  },
646
646
  /**
647
- * 문자열 바이트 길이
647
+ * String byte length
648
648
  *
649
- * UTF-8 환경에서 한글은 3바이트
649
+ * In UTF-8, CJK characters are 3 bytes each
650
650
  *
651
- * @param source - original string
652
- * @returns 바이트
651
+ * @param source - Original string
652
+ * @returns Byte count
653
653
  *
654
654
  * @example
655
655
  * ```typescript
@@ -666,19 +666,19 @@ const expr = {
666
666
  });
667
667
  },
668
668
  /**
669
- * 문자열 일부 추출 (SUBSTRING)
669
+ * Extract part of a string (SUBSTRING)
670
670
  *
671
- * SQL 표준에 따라 1-based index 사용
671
+ * Uses 1-based index per SQL standard
672
672
  *
673
- * @param source - original string
674
- * @param start - start 위치 (1부터 start)
675
- * @param length - 추출할 길이 (생략 끝까지)
676
- * @returns 추출된 문자열 expression
673
+ * @param source - Original string
674
+ * @param start - Start position (starting from 1)
675
+ * @param length - Length to extract (to the end if omitted)
676
+ * @returns Extracted string expression
677
677
  *
678
678
  * @example
679
679
  * ```typescript
680
680
  * db.user().select((u) => ({
681
- * // "Hello World"에서 Index 1부터 5글자: "Hello"
681
+ * // From "Hello World", 5 characters starting at index 1: "Hello"
682
682
  * prefix: expr.substring(u.name, 1, 5),
683
683
  * }))
684
684
  * // SELECT SUBSTRING(name, 1, 5) AS prefix
@@ -693,13 +693,13 @@ const expr = {
693
693
  });
694
694
  },
695
695
  /**
696
- * 문자열 위치 찾기 (LOCATE/CHARINDEX)
696
+ * Find position within a string (LOCATE/CHARINDEX)
697
697
  *
698
- * 1-based index return, 없으면 0 return
698
+ * Returns 1-based index, or 0 if not found
699
699
  *
700
- * @param source - 검색할 문자열
701
- * @param search - 찾을 문자열
702
- * @returns 위치 (1부터 start, 없으면 0)
700
+ * @param source - String to search in
701
+ * @param search - String to find
702
+ * @returns Position (starting from 1, 0 if not found)
703
703
  *
704
704
  * @example
705
705
  * ```typescript
@@ -720,10 +720,10 @@ const expr = {
720
720
  //#endregion
721
721
  //#region ========== SELECT - Number ==========
722
722
  /**
723
- * 절대값 (ABS)
723
+ * Absolute value (ABS)
724
724
  *
725
- * @param source - 원본 Number
726
- * @returns 절대값 expression
725
+ * @param source - Original number
726
+ * @returns Absolute value expression
727
727
  *
728
728
  * @example
729
729
  * ```typescript
@@ -740,11 +740,11 @@ const expr = {
740
740
  });
741
741
  },
742
742
  /**
743
- * 반올림 (ROUND)
743
+ * Round (ROUND)
744
744
  *
745
- * @param source - 원본 Number
746
- * @param digits - 소수점 이하 자릿수
747
- * @returns 반올림된 Number expression
745
+ * @param source - Original number
746
+ * @param digits - Number of decimal places
747
+ * @returns Rounded number expression
748
748
  *
749
749
  * @example
750
750
  * ```typescript
@@ -763,10 +763,10 @@ const expr = {
763
763
  });
764
764
  },
765
765
  /**
766
- * 올림 (CEILING)
766
+ * Ceiling (CEILING)
767
767
  *
768
- * @param source - 원본 Number
769
- * @returns 올림된 Number expression
768
+ * @param source - Original number
769
+ * @returns Ceiling number expression
770
770
  *
771
771
  * @example
772
772
  * ```typescript
@@ -784,10 +784,10 @@ const expr = {
784
784
  });
785
785
  },
786
786
  /**
787
- * 버림 (FLOOR)
787
+ * Floor (FLOOR)
788
788
  *
789
- * @param source - 원본 Number
790
- * @returns 버림된 Number expression
789
+ * @param source - Original number
790
+ * @returns Floor number expression
791
791
  *
792
792
  * @example
793
793
  * ```typescript
@@ -807,10 +807,10 @@ const expr = {
807
807
  //#endregion
808
808
  //#region ========== SELECT - Date ==========
809
809
  /**
810
- * 연도 추출 (YEAR)
810
+ * Extract year (YEAR)
811
811
  *
812
- * @param source - DateTime 또는 DateOnly expression
813
- * @returns 연도 (4자리 Number)
812
+ * @param source - DateTime or DateOnly expression
813
+ * @returns Year (4-digit number)
814
814
  *
815
815
  * @example
816
816
  * ```typescript
@@ -827,10 +827,10 @@ const expr = {
827
827
  });
828
828
  },
829
829
  /**
830
- * 추출 (MONTH)
830
+ * Extract month (MONTH)
831
831
  *
832
- * @param source - DateTime 또는 DateOnly expression
833
- * @returns (1~12)
832
+ * @param source - DateTime or DateOnly expression
833
+ * @returns Month (1~12)
834
834
  *
835
835
  * @example
836
836
  * ```typescript
@@ -847,10 +847,10 @@ const expr = {
847
847
  });
848
848
  },
849
849
  /**
850
- * 추출 (DAY)
850
+ * Extract day (DAY)
851
851
  *
852
- * @param source - DateTime 또는 DateOnly expression
853
- * @returns (1~31)
852
+ * @param source - DateTime or DateOnly expression
853
+ * @returns Day (1~31)
854
854
  *
855
855
  * @example
856
856
  * ```typescript
@@ -867,10 +867,10 @@ const expr = {
867
867
  });
868
868
  },
869
869
  /**
870
- * 추출 (HOUR)
870
+ * Extract hour (HOUR)
871
871
  *
872
- * @param source - DateTime 또는 Time expression
873
- * @returns (0~23)
872
+ * @param source - DateTime or Time expression
873
+ * @returns Hour (0~23)
874
874
  *
875
875
  * @example
876
876
  * ```typescript
@@ -887,10 +887,10 @@ const expr = {
887
887
  });
888
888
  },
889
889
  /**
890
- * 추출 (MINUTE)
890
+ * Extract minute (MINUTE)
891
891
  *
892
- * @param source - DateTime 또는 Time expression
893
- * @returns (0~59)
892
+ * @param source - DateTime or Time expression
893
+ * @returns Minute (0~59)
894
894
  *
895
895
  * @example
896
896
  * ```typescript
@@ -907,10 +907,10 @@ const expr = {
907
907
  });
908
908
  },
909
909
  /**
910
- * 추출 (SECOND)
910
+ * Extract second (SECOND)
911
911
  *
912
- * @param source - DateTime 또는 Time expression
913
- * @returns (0~59)
912
+ * @param source - DateTime or Time expression
913
+ * @returns Second (0~59)
914
914
  *
915
915
  * @example
916
916
  * ```typescript
@@ -927,12 +927,12 @@ const expr = {
927
927
  });
928
928
  },
929
929
  /**
930
- * ISO 주차 추출
930
+ * Extract ISO week number
931
931
  *
932
- * ISO 8601 기준 주차 (월요일 start, 1~53)
932
+ * ISO 8601 week number (starts Monday, 1~53)
933
933
  *
934
934
  * @param source - DateOnly expression
935
- * @returns ISO 주차 번호
935
+ * @returns ISO week number
936
936
  *
937
937
  * @example
938
938
  * ```typescript
@@ -949,19 +949,19 @@ const expr = {
949
949
  });
950
950
  },
951
951
  /**
952
- * ISO 시작일 (월요일)
952
+ * ISO week start date (Monday)
953
953
  *
954
- * 해당 Date가 속한 주의 월요일 return
954
+ * Returns the Monday of the week the given date belongs to
955
955
  *
956
956
  * @param source - DateOnly expression
957
- * @returns 주의 start Date (월요일)
957
+ * @returns Week start date (Monday)
958
958
  *
959
959
  * @example
960
960
  * ```typescript
961
961
  * db.order().select((o) => ({
962
962
  * weekStart: expr.isoWeekStartDate(o.orderDate),
963
963
  * }))
964
- * // 2024-01-10 () → 2024-01-08 ()
964
+ * // 2024-01-10 (Wed) → 2024-01-08 (Mon)
965
965
  * ```
966
966
  */
967
967
  isoWeekStartDate(source) {
@@ -971,12 +971,12 @@ const expr = {
971
971
  });
972
972
  },
973
973
  /**
974
- * ISO 연월 (해당 월의 1일)
974
+ * ISO year-month (first day of the month)
975
975
  *
976
- * 해당 Date의 첫째 return
976
+ * Returns the first day of the month for the given date
977
977
  *
978
978
  * @param source - DateOnly expression
979
- * @returns 월의 첫째
979
+ * @returns First day of the month
980
980
  *
981
981
  * @example
982
982
  * ```typescript
@@ -993,12 +993,12 @@ const expr = {
993
993
  });
994
994
  },
995
995
  /**
996
- * Date 차이 계산 (DATEDIFF)
996
+ * Calculate date difference (DATEDIFF)
997
997
  *
998
- * @param unit - 단위 ("year", "month", "day", "hour", "minute", "second")
999
- * @param from - start Date
1000
- * @param to - Date
1001
- * @returns 차이 value (to - from)
998
+ * @param unit - Unit ("year", "month", "day", "hour", "minute", "second")
999
+ * @param from - Start date
1000
+ * @param to - End date
1001
+ * @returns Difference value (to - from)
1002
1002
  *
1003
1003
  * @example
1004
1004
  * ```typescript
@@ -1017,12 +1017,12 @@ const expr = {
1017
1017
  });
1018
1018
  },
1019
1019
  /**
1020
- * Date 더하기 (DATEADD)
1020
+ * Add to date (DATEADD)
1021
1021
  *
1022
- * @param unit - 단위 ("year", "month", "day", "hour", "minute", "second")
1023
- * @param source - 원본 Date
1024
- * @param value - 더할 value (음수 가능)
1025
- * @returns 계산된 Date
1022
+ * @param unit - Unit ("year", "month", "day", "hour", "minute", "second")
1023
+ * @param source - Original date
1024
+ * @param value - Value to add (negative allowed)
1025
+ * @returns Calculated date
1026
1026
  *
1027
1027
  * @example
1028
1028
  * ```typescript
@@ -1041,13 +1041,13 @@ const expr = {
1041
1041
  });
1042
1042
  },
1043
1043
  /**
1044
- * Date 포맷 (DATE_FORMAT)
1044
+ * Date format (DATE_FORMAT)
1045
1045
  *
1046
- * DBMS별로 포맷 문자열 규칙이 다를 있음
1046
+ * Format string rules may differ between DBMS implementations
1047
1047
  *
1048
1048
  * @param source - Date expression
1049
- * @param format - 포맷 문자열 (예: "%Y-%m-%d")
1050
- * @returns 포맷된 문자열 expression
1049
+ * @param format - Format string (e.g., "%Y-%m-%d")
1050
+ * @returns Formatted string expression
1051
1051
  *
1052
1052
  * @example
1053
1053
  * ```typescript
@@ -1068,12 +1068,12 @@ const expr = {
1068
1068
  //#endregion
1069
1069
  //#region ========== SELECT - Condition ==========
1070
1070
  /**
1071
- * NULL 대체 (COALESCE/IFNULL)
1071
+ * NULL replacement (COALESCE/IFNULL)
1072
1072
  *
1073
- * 번째 non-null 값을 return. 마지막 인자가 non-nullable이면 결과도 non-nullable
1073
+ * Returns the first non-null value. If the last argument is non-nullable, the result is also non-nullable
1074
1074
  *
1075
- * @param args - Inspect할 값들 (마지막은 Default value)
1076
- * @returns 번째 non-null value
1075
+ * @param args - Values to inspect (last is default value)
1076
+ * @returns First non-null value
1077
1077
  *
1078
1078
  * @example
1079
1079
  * ```typescript
@@ -1085,18 +1085,18 @@ const expr = {
1085
1085
  */
1086
1086
  coalesce,
1087
1087
  /**
1088
- * 특정 값이면 NULL return (NULLIF)
1088
+ * Return NULL if value matches (NULLIF)
1089
1089
  *
1090
- * source === value 이면 NULL return, 아니면 source return
1090
+ * Returns NULL if source === value, otherwise returns source
1091
1091
  *
1092
- * @param source - 원본 value
1093
- * @param value - 비교할 value
1094
- * @returns NULL 또는 원본 value
1092
+ * @param source - Original value
1093
+ * @param value - Value to compare
1094
+ * @returns NULL or original value
1095
1095
  *
1096
1096
  * @example
1097
1097
  * ```typescript
1098
1098
  * db.user().select((u) => ({
1099
- * // 문자열을 NULL로 Transform
1099
+ * // Convert empty string to NULL
1100
1100
  * bio: expr.nullIf(u.bio, ""),
1101
1101
  * }))
1102
1102
  * // SELECT NULLIF(bio, '') AS bio
@@ -1110,11 +1110,11 @@ const expr = {
1110
1110
  });
1111
1111
  },
1112
1112
  /**
1113
- * WHERE 표현식을 boolean으로 Transform
1113
+ * Transform WHERE expression to boolean
1114
1114
  *
1115
- * SELECT 절에서 condition 결과를 boolean column으로 사용할 사용
1115
+ * Used when condition results should be used as a boolean column in SELECT clause
1116
1116
  *
1117
- * @param condition - Transform할 condition
1117
+ * @param condition - Condition to transform
1118
1118
  * @returns boolean expression
1119
1119
  *
1120
1120
  * @example
@@ -1134,7 +1134,7 @@ const expr = {
1134
1134
  /**
1135
1135
  * CASE WHEN expression builder
1136
1136
  *
1137
- * 체이닝 방식으로 condition 분기를 구성
1137
+ * Build conditional branches using method chaining
1138
1138
  *
1139
1139
  * @returns SwitchExprBuilder instance
1140
1140
  *
@@ -1154,12 +1154,12 @@ const expr = {
1154
1154
  return createSwitchBuilder();
1155
1155
  },
1156
1156
  /**
1157
- * 단순 IF condition (삼항 operator)
1157
+ * Simple IF condition (ternary operator)
1158
1158
  *
1159
1159
  * @param condition - Condition
1160
- * @param then - Condition이 참일 value
1161
- * @param else_ - Condition이 거짓일 value
1162
- * @returns 조건부 value expression
1160
+ * @param then - Value when condition is true
1161
+ * @param else_ - Value when condition is false
1162
+ * @returns Conditional value expression
1163
1163
  *
1164
1164
  * @example
1165
1165
  * ```typescript
@@ -1193,20 +1193,20 @@ const expr = {
1193
1193
  },
1194
1194
  //#endregion
1195
1195
  //#region ========== SELECT - Aggregate ==========
1196
- // SUM, AVG, MAX등의 집계는 모든 값이 NULL이거나 행이 없을 때만 NULL return (값이 NULL 행은 무시함)
1196
+ // Aggregates like SUM, AVG, MAX return NULL only when all values are NULL or no rows exist (rows with NULL values are ignored)
1197
1197
  /**
1198
- * row 카운트 (COUNT)
1198
+ * Count rows (COUNT)
1199
1199
  *
1200
- * @param arg - 카운트할 column (생략 전체 row 수)
1201
- * @param distinct - true 중복 Remove
1202
- * @returns row
1200
+ * @param arg - Column to count (all rows if omitted)
1201
+ * @param distinct - If true, remove duplicates
1202
+ * @returns Row count
1203
1203
  *
1204
1204
  * @example
1205
1205
  * ```typescript
1206
- * // 전체 row
1206
+ * // Total row count
1207
1207
  * db.user().select(() => ({ total: expr.count() }))
1208
1208
  *
1209
- * // 중복 Remove 카운트
1209
+ * // Distinct count
1210
1210
  * db.order().select((o) => ({
1211
1211
  * uniqueCustomers: expr.count(o.customerId, true),
1212
1212
  * }))
@@ -1220,12 +1220,12 @@ const expr = {
1220
1220
  });
1221
1221
  },
1222
1222
  /**
1223
- * 합계 (SUM)
1223
+ * Sum (SUM)
1224
1224
  *
1225
- * NULL 값은 무시됨. 모든 값이 NULL이면 NULL return
1225
+ * NULL values are ignored. Returns NULL if all values are NULL
1226
1226
  *
1227
- * @param arg - 합계를 구할 Number column
1228
- * @returns 합계 (또는 NULL)
1227
+ * @param arg - Number column to sum
1228
+ * @returns Sum (or NULL)
1229
1229
  *
1230
1230
  * @example
1231
1231
  * ```typescript
@@ -1242,12 +1242,12 @@ const expr = {
1242
1242
  });
1243
1243
  },
1244
1244
  /**
1245
- * 평균 (AVG)
1245
+ * Average (AVG)
1246
1246
  *
1247
- * NULL 값은 무시됨. 모든 값이 NULL이면 NULL return
1247
+ * NULL values are ignored. Returns NULL if all values are NULL
1248
1248
  *
1249
- * @param arg - 평균을 구할 Number column
1250
- * @returns 평균 (또는 NULL)
1249
+ * @param arg - Number column to average
1250
+ * @returns Average (or NULL)
1251
1251
  *
1252
1252
  * @example
1253
1253
  * ```typescript
@@ -1264,12 +1264,12 @@ const expr = {
1264
1264
  });
1265
1265
  },
1266
1266
  /**
1267
- * 최대값 (MAX)
1267
+ * Maximum value (MAX)
1268
1268
  *
1269
- * NULL 값은 무시됨. 모든 값이 NULL이면 NULL return
1269
+ * NULL values are ignored. Returns NULL if all values are NULL
1270
1270
  *
1271
- * @param arg - 최대값을 구할 column
1272
- * @returns 최대값 (또는 NULL)
1271
+ * @param arg - Column to find maximum of
1272
+ * @returns Maximum value (or NULL)
1273
1273
  *
1274
1274
  * @example
1275
1275
  * ```typescript
@@ -1286,12 +1286,12 @@ const expr = {
1286
1286
  });
1287
1287
  },
1288
1288
  /**
1289
- * 최소값 (MIN)
1289
+ * Minimum value (MIN)
1290
1290
  *
1291
- * NULL 값은 무시됨. 모든 값이 NULL이면 NULL return
1291
+ * NULL values are ignored. Returns NULL if all values are NULL
1292
1292
  *
1293
- * @param arg - 최소값을 구할 column
1294
- * @returns 최소값 (또는 NULL)
1293
+ * @param arg - Column to find minimum of
1294
+ * @returns Minimum value (or NULL)
1295
1295
  *
1296
1296
  * @example
1297
1297
  * ```typescript
@@ -1310,10 +1310,10 @@ const expr = {
1310
1310
  //#endregion
1311
1311
  //#region ========== SELECT - Other ==========
1312
1312
  /**
1313
- * 여러 value 최대값 (GREATEST)
1313
+ * Greatest value among multiple values (GREATEST)
1314
1314
  *
1315
- * @param args - 비교할 값들
1316
- * @returns 최대값
1315
+ * @param args - Values to compare
1316
+ * @returns Greatest value
1317
1317
  *
1318
1318
  * @example
1319
1319
  * ```typescript
@@ -1330,10 +1330,10 @@ const expr = {
1330
1330
  });
1331
1331
  },
1332
1332
  /**
1333
- * 여러 value 최소값 (LEAST)
1333
+ * Least value among multiple values (LEAST)
1334
1334
  *
1335
- * @param args - 비교할 값들
1336
- * @returns 최소값
1335
+ * @param args - Values to compare
1336
+ * @returns Least value
1337
1337
  *
1338
1338
  * @example
1339
1339
  * ```typescript
@@ -1350,9 +1350,9 @@ const expr = {
1350
1350
  });
1351
1351
  },
1352
1352
  /**
1353
- * row 번호 (ROW_NUMBER 없이 전체 행에 대한 순번)
1353
+ * Row number (sequential number for all rows without ROW_NUMBER)
1354
1354
  *
1355
- * @returns row 번호 (1부터 start)
1355
+ * @returns Row number (starting from 1)
1356
1356
  *
1357
1357
  * @example
1358
1358
  * ```typescript
@@ -1368,15 +1368,15 @@ const expr = {
1368
1368
  });
1369
1369
  },
1370
1370
  /**
1371
- * 난수 Generate (RAND/RANDOM)
1371
+ * Generate random number (RAND/RANDOM)
1372
1372
  *
1373
- * 0~1 사이의 난수 return. ORDER BY에서 랜덤 정렬용으로 주로 사용
1373
+ * Returns a random number between 0 and 1. Mainly used for random ordering in ORDER BY
1374
1374
  *
1375
- * @returns 0~1 사이의 난수
1375
+ * @returns Random number between 0 and 1
1376
1376
  *
1377
1377
  * @example
1378
1378
  * ```typescript
1379
- * // 랜덤 sorting
1379
+ * // Random sorting
1380
1380
  * db.user().orderBy(() => expr.random()).limit(10)
1381
1381
  * ```
1382
1382
  */
@@ -1388,9 +1388,9 @@ const expr = {
1388
1388
  /**
1389
1389
  * type transformation (CAST)
1390
1390
  *
1391
- * @param source - Transform할 expression
1392
- * @param targetType - 대상 data type
1393
- * @returns Transform된 expression
1391
+ * @param source - Expression to transform
1392
+ * @param targetType - Target data type
1393
+ * @returns Transformed expression
1394
1394
  *
1395
1395
  * @example
1396
1396
  * ```typescript
@@ -1408,12 +1408,12 @@ const expr = {
1408
1408
  });
1409
1409
  },
1410
1410
  /**
1411
- * 스칼라 Subquery - SELECT 절에서 단일 value return Subquery
1411
+ * Scalar Subquery - Subquery that returns a single value in SELECT clause
1412
1412
  *
1413
- * Subquery는 반드시 단일 row, 단일 column을 반환해야 함
1413
+ * The subquery must return exactly one row and one column
1414
1414
  *
1415
1415
  * @param dataType - Data type of the returned value
1416
- * @param queryable - 스칼라 값을 반환하는 Queryable
1416
+ * @param queryable - Queryable that returns a scalar value
1417
1417
  * @returns Subquery result expression
1418
1418
  *
1419
1419
  * @example
@@ -1439,12 +1439,12 @@ const expr = {
1439
1439
  //#endregion
1440
1440
  //#region ========== SELECT - Window Functions ==========
1441
1441
  /**
1442
- * ROW_NUMBER() - 파티션 row 번호
1442
+ * ROW_NUMBER() - Row number within a partition
1443
1443
  *
1444
- * 파티션 내에서 1부터 시작하는 sequential 번호 부여
1444
+ * Assigns sequential numbers starting from 1 within each partition
1445
1445
  *
1446
1446
  * @param spec - Window spec (partitionBy, orderBy)
1447
- * @returns row 번호 (1부터 start)
1447
+ * @returns Row number (starting from 1)
1448
1448
  *
1449
1449
  * @example
1450
1450
  * ```typescript
@@ -1466,10 +1466,10 @@ const expr = {
1466
1466
  });
1467
1467
  },
1468
1468
  /**
1469
- * RANK() - 파티션 순위 (동점 같은 순위, 다음 순위 건너뜀)
1469
+ * RANK() - Rank within a partition (ties get same rank, next rank is skipped)
1470
1470
  *
1471
1471
  * @param spec - Window spec (partitionBy, orderBy)
1472
- * @returns 순위 (동점 건너뜀: 1, 1, 3)
1472
+ * @returns Rank (skips after ties: 1, 1, 3)
1473
1473
  *
1474
1474
  * @example
1475
1475
  * ```typescript
@@ -1489,10 +1489,10 @@ const expr = {
1489
1489
  });
1490
1490
  },
1491
1491
  /**
1492
- * DENSE_RANK() - 파티션 밀집 순위 (동점 같은 순위, 다음 순위 유지)
1492
+ * DENSE_RANK() - Dense rank within a partition (ties get same rank, next rank is consecutive)
1493
1493
  *
1494
1494
  * @param spec - Window spec (partitionBy, orderBy)
1495
- * @returns 밀집 순위 (동점 연속: 1, 1, 2)
1495
+ * @returns Dense rank (consecutive after ties: 1, 1, 2)
1496
1496
  *
1497
1497
  * @example
1498
1498
  * ```typescript
@@ -1512,15 +1512,15 @@ const expr = {
1512
1512
  });
1513
1513
  },
1514
1514
  /**
1515
- * NTILE(n) - 파티션을 n 그룹으로 split
1515
+ * NTILE(n) - Split partition into n groups
1516
1516
  *
1517
- * @param n - 분할할 그룹
1517
+ * @param n - Number of groups to split into
1518
1518
  * @param spec - Window spec (partitionBy, orderBy)
1519
- * @returns 그룹 번호 (1 ~ n)
1519
+ * @returns Group number (1 ~ n)
1520
1520
  *
1521
1521
  * @example
1522
1522
  * ```typescript
1523
- * // 상위 25%를 찾기 위한 사분위 split
1523
+ * // Quartile split to find top 25%
1524
1524
  * db.user().select((u) => ({
1525
1525
  * name: u.name,
1526
1526
  * quartile: expr.ntile(4, {
@@ -1537,12 +1537,12 @@ const expr = {
1537
1537
  });
1538
1538
  },
1539
1539
  /**
1540
- * LAG() - 이전 행의 value 참조
1540
+ * LAG() - Reference value from a previous row
1541
1541
  *
1542
- * @param column - column to reference
1542
+ * @param column - Column to reference
1543
1543
  * @param spec - Window spec (partitionBy, orderBy)
1544
- * @param options - offset (Basic 1), default (이전 행이 없을 Default value)
1545
- * @returns 이전 행의 value (또는 Default value/NULL)
1544
+ * @param options - offset (default 1), default (default value when no previous row)
1545
+ * @returns Previous row's value (or default value/NULL)
1546
1546
  *
1547
1547
  * @example
1548
1548
  * ```typescript
@@ -1569,12 +1569,12 @@ const expr = {
1569
1569
  });
1570
1570
  },
1571
1571
  /**
1572
- * LEAD() - 다음 행의 value 참조
1572
+ * LEAD() - Reference value from a following row
1573
1573
  *
1574
- * @param column - column to reference
1574
+ * @param column - Column to reference
1575
1575
  * @param spec - Window spec (partitionBy, orderBy)
1576
- * @param options - offset (Basic 1), default (다음 행이 없을 Default value)
1577
- * @returns 다음 행의 value (또는 Default value/NULL)
1576
+ * @param options - offset (default 1), default (default value when no following row)
1577
+ * @returns Following row's value (or default value/NULL)
1578
1578
  *
1579
1579
  * @example
1580
1580
  * ```typescript
@@ -1601,11 +1601,11 @@ const expr = {
1601
1601
  });
1602
1602
  },
1603
1603
  /**
1604
- * FIRST_VALUE() - 파티션/프레임의 번째 value
1604
+ * FIRST_VALUE() - First value in the partition/frame
1605
1605
  *
1606
- * @param column - column to reference
1606
+ * @param column - Column to reference
1607
1607
  * @param spec - Window spec (partitionBy, orderBy)
1608
- * @returns 번째 value
1608
+ * @returns First value
1609
1609
  *
1610
1610
  * @example
1611
1611
  * ```typescript
@@ -1626,11 +1626,11 @@ const expr = {
1626
1626
  });
1627
1627
  },
1628
1628
  /**
1629
- * LAST_VALUE() - 파티션/프레임의 마지막 value
1629
+ * LAST_VALUE() - Last value in the partition/frame
1630
1630
  *
1631
- * @param column - column to reference
1631
+ * @param column - Column to reference
1632
1632
  * @param spec - Window spec (partitionBy, orderBy)
1633
- * @returns 마지막 value
1633
+ * @returns Last value
1634
1634
  *
1635
1635
  * @example
1636
1636
  * ```typescript
@@ -1651,15 +1651,15 @@ const expr = {
1651
1651
  });
1652
1652
  },
1653
1653
  /**
1654
- * SUM() OVER - Window 합계
1654
+ * SUM() OVER - Window sum
1655
1655
  *
1656
- * @param column - 합계를 구할 column
1656
+ * @param column - Column to sum
1657
1657
  * @param spec - Window spec (partitionBy, orderBy)
1658
- * @returns Window 합계
1658
+ * @returns Sum within window
1659
1659
  *
1660
1660
  * @example
1661
1661
  * ```typescript
1662
- * // 누적 합계
1662
+ * // Running total
1663
1663
  * db.order().select((o) => ({
1664
1664
  * ...o,
1665
1665
  * runningTotal: expr.sumOver(o.amount, {
@@ -1677,15 +1677,15 @@ const expr = {
1677
1677
  });
1678
1678
  },
1679
1679
  /**
1680
- * AVG() OVER - Window 평균
1680
+ * AVG() OVER - Window average
1681
1681
  *
1682
- * @param column - 평균을 구할 column
1682
+ * @param column - Column to average
1683
1683
  * @param spec - Window spec (partitionBy, orderBy)
1684
- * @returns Window 평균
1684
+ * @returns Average within window
1685
1685
  *
1686
1686
  * @example
1687
1687
  * ```typescript
1688
- * // move 평균
1688
+ * // Moving average
1689
1689
  * db.stock().select((s) => ({
1690
1690
  * ...s,
1691
1691
  * movingAvg: expr.avgOver(s.price, {
@@ -1703,11 +1703,11 @@ const expr = {
1703
1703
  });
1704
1704
  },
1705
1705
  /**
1706
- * COUNT() OVER - Window 카운트
1706
+ * COUNT() OVER - Window count
1707
1707
  *
1708
1708
  * @param spec - Window spec (partitionBy, orderBy)
1709
- * @param column - 카운트할 column (생략 전체 row 수)
1710
- * @returns Window row
1709
+ * @param column - Column to count (all rows if omitted)
1710
+ * @returns Row count within window
1711
1711
  *
1712
1712
  * @example
1713
1713
  * ```typescript
@@ -1727,11 +1727,11 @@ const expr = {
1727
1727
  });
1728
1728
  },
1729
1729
  /**
1730
- * MIN() OVER - Window 최소값
1730
+ * MIN() OVER - Window minimum
1731
1731
  *
1732
- * @param column - 최소값을 구할 column
1732
+ * @param column - Column to find minimum of
1733
1733
  * @param spec - Window spec (partitionBy, orderBy)
1734
- * @returns Window 최소값
1734
+ * @returns Minimum value within window
1735
1735
  *
1736
1736
  * @example
1737
1737
  * ```typescript
@@ -1751,11 +1751,11 @@ const expr = {
1751
1751
  });
1752
1752
  },
1753
1753
  /**
1754
- * MAX() OVER - Window 최대값
1754
+ * MAX() OVER - Window maximum
1755
1755
  *
1756
- * @param column - 최대값을 구할 column
1756
+ * @param column - Column to find maximum of
1757
1757
  * @param spec - Window spec (partitionBy, orderBy)
1758
- * @returns Window 최대값
1758
+ * @returns Maximum value within window
1759
1759
  *
1760
1760
  * @example
1761
1761
  * ```typescript
@@ -1777,9 +1777,9 @@ const expr = {
1777
1777
  //#endregion
1778
1778
  //#region ========== Helper ==========
1779
1779
  /**
1780
- * ExprInput Expr Transform (내부용)
1780
+ * Transform ExprInput to Expr (internal use)
1781
1781
  *
1782
- * @param value - Transform할 value
1782
+ * @param value - Value to transform
1783
1783
  * @returns Expr JSON AST
1784
1784
  */
1785
1785
  toExpr(value) {