@g1cloud/entity-modeler-next 5.2.27 → 5.2.28
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.
- package/dist/core/javaTypes.d.ts +14 -2
- package/dist/core/validation.d.ts +13 -1
- package/dist/entity-modeler-next.css +1 -1
- package/dist/entity-modeler.js +1394 -1378
- package/dist/entity-modeler.umd.cjs +5 -5
- package/package.json +1 -1
package/dist/core/javaTypes.d.ts
CHANGED
|
@@ -42,10 +42,22 @@ export declare function javaTypeFromDataType(dataType: string | undefined): stri
|
|
|
42
42
|
* 자바 타입 ↔ 물리 DB 타입 호환 판정. `CHK-TYPE-7`의 판정 산식(단일 출처).
|
|
43
43
|
*
|
|
44
44
|
* 반환값 3-상태: `true` 호환 · `false` 부정합 · **`undefined` 판정 불가**(호출자는 skip한다). undefined는
|
|
45
|
-
* ①어느 한쪽이 빈값 ②자바 타입이 `DATA_TYPES_BY_JAVA_TYPE`
|
|
45
|
+
* ①어느 한쪽이 빈값 ②자바 타입이 `DATA_TYPES_BY_JAVA_TYPE` 밖이고 주입 카탈로그에도 없음
|
|
46
46
|
* ③물리 타입이 `ALL_DATA_TYPES` 밖(미지 값 — 그 축은 `CHK-TYPE-1`이 타깃 다이얼렉트 기준으로 지목한다.
|
|
47
47
|
* 여기서 함께 신고하면 한 컬럼에 두 경고가 겹치고 사용자가 할 일이 갈린다).
|
|
48
48
|
*
|
|
49
|
+
* ★★**③ predefined customtype 축은 «주입될 때만» 판정한다**(2026-09-04 신설 · `predefinedCustomTypes`).
|
|
50
|
+
* 계기 = 사용자 질문 *「MultiLangString 지정하고 JSONB 설정 안 한 경우 경고가 있어?」* → 없었고, 이유가
|
|
51
|
+
* **규칙 부재가 아니라 이 함수의 구조적 skip** 이었다(그 타입들은 lib 정적 표에 «없는 것이 정상»이다 —
|
|
52
|
+
* 호스트 주입이므로). 전수 실측 861컬럼: `MultiLangString` **JSONB 287/289** · `StoredFile` 1/1 ·
|
|
53
|
+
* `GroupCodeEnum` VARCHAR 515/518 · ★`CustomType` **지배 형상 없음**(JSONB 27·CLOB 17·VARCHAR 8종).
|
|
54
|
+
* ⇒ ★**lib 에 표를 박지 않는 이유가 바로 그 마지막 줄이다** — 규약의 소유자는 호스트 카탈로그이고
|
|
55
|
+
* 코어가 `MultiLangString → JSONB` 를 안다고 적으면 그건 모델러 밖 지식의 하드코딩이다.
|
|
56
|
+
* ⚠️**엔트리의 `dataType` 을 「시드 기본값」이자 「허용 기준」으로 겸용**한다(축 신설 0). 실측이 단일
|
|
57
|
+
* 형상(99%)이라 지금은 같은 값이지만, **한 타입에 복수 물리 타입이 정당해지면 그때 엔트리에 허용 집합을
|
|
58
|
+
* 신설**한다(그 전까지 집합 축을 미리 만들면 쓰이지 않는 표현이 하나 는다). 미주입이면 **inert** —
|
|
59
|
+
* `reservedWords`·`selectableDataTypes` 와 같은 ctx 게이트다.
|
|
60
|
+
*
|
|
49
61
|
* ★★**정수형 × `NUMERIC`/`DECIMAL`은 정밀도 무관 호환**이다(2026-08-24 운영 DB 실측으로 확정).
|
|
50
62
|
* 이 자리에 한때 *"무정밀도면 부정합"* 조건이 있었고 **실측이 그것을 무너뜨렸다** — 근거 이력을 남긴다:
|
|
51
63
|
* · 1차 근거는 실물 **Java 필드 타입**이었다(`private int`이므로 컬럼도 정수여야 한다).
|
|
@@ -60,7 +72,7 @@ export declare function javaTypeFromDataType(dataType: string | undefined): stri
|
|
|
60
72
|
* Hibernate 가 아니라 마이그레이션이 만들고(`dbTypes.ts` 주석), Hibernate 는 정수 필드의 `precision`을
|
|
61
73
|
* 무시하므로 어노테이션은 *의도*일 뿐이다.
|
|
62
74
|
*/
|
|
63
|
-
export declare function isJavaDataTypeCompatible(javaType: string | undefined, dataType: string | undefined): boolean | undefined;
|
|
75
|
+
export declare function isJavaDataTypeCompatible(javaType: string | undefined, dataType: string | undefined, predefinedCustomTypes?: PredefinedCustomTypeCatalog): boolean | undefined;
|
|
64
76
|
/** 저장값 → 박싱 타입명(`PrimitiveInt`→`Integer`). 원시가 아니면 undefined. */
|
|
65
77
|
export declare function boxedJavaTypeOf(value: string | undefined): string | undefined;
|
|
66
78
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EmbeddableCatalog, LogicalModel, ModelId, SuperClassCatalog } from './types';
|
|
1
|
+
import { EmbeddableCatalog, LogicalModel, ModelId, PredefinedCustomTypeCatalog, SuperClassCatalog } from './types';
|
|
2
2
|
export declare const PHYSICAL_NAME_MAX_LENGTH = 63;
|
|
3
3
|
/**
|
|
4
4
|
* 물리명이 이식성 권장 한도를 초과하면 **초과 길이(문자 수)**, 아니면 null(비차단 — 호출부는 저장을
|
|
@@ -62,6 +62,18 @@ export interface ValidationContext {
|
|
|
62
62
|
* dangling으로 오탐될 수 있다 — 카탈로그가 주입돼야 정확 판정(로컬 컬럼만 참조하는 모델은 무영향).
|
|
63
63
|
*/
|
|
64
64
|
superClassCatalog?: SuperClassCatalog;
|
|
65
|
+
/**
|
|
66
|
+
* ③ predefined customtype 카탈로그(`MultiLangString`·`StoredFile` 등 호스트 주입 단일 컬럼 커스텀 타입)
|
|
67
|
+
* — `CHK-TYPE-7` 이 그 타입들의 `dataType` 규약을 판정하는 출처. 미주입이면 종전대로 **판정 불가로 skip**
|
|
68
|
+
* (reservedWords·embeddableCatalog 와 동형 ctx 게이트 = **inert-by-default**).
|
|
69
|
+
*
|
|
70
|
+
* ★**왜 lib 이 표를 안 갖는가**: 이 타입들은 프레임워크 공통분 + 프로젝트별 추가분이라 규약의 소유자가
|
|
71
|
+
* 호스트다(`types.ts` `PredefinedCustomTypeEntry` 주석과 같은 근거). 실측이 그 판단을 뒷받침한다 —
|
|
72
|
+
* `CustomType`(④ 자유 축)은 지배 형상이 아예 없어(JSONB 27·CLOB 17·VARCHAR 8종) 어떤 정적 표도 틀린다.
|
|
73
|
+
* ⚠️주입은 **`ScaffoldOptions.customTypeCatalog`(④ 컨버터 FQN 맵)와 다른 축**이다 — 이름이 비슷해
|
|
74
|
+
* 헷갈리기 쉽다(2026-09-04 착수 실측: 호스트가 주입 중인 것은 ④ 쪽이고 ③ 은 주입 0이었다).
|
|
75
|
+
*/
|
|
76
|
+
predefinedCustomTypes?: PredefinedCustomTypeCatalog;
|
|
65
77
|
}
|
|
66
78
|
/**
|
|
67
79
|
* 설계 품질 검증 — 논리 모델(+선택 컨텍스트)을 받아 이슈 목록을 돌려준다.
|