@g1cloud/entity-modeler-next 5.2.44 → 5.2.46
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/ddlCommentMarker.d.ts +10 -0
- package/dist/core/parseSqlDdl.d.ts +51 -3
- package/dist/core/scaffoldJava.d.ts +2 -0
- package/dist/entity-modeler-next.css +1 -1
- package/dist/entity-modeler.js +11484 -11245
- package/dist/entity-modeler.umd.cjs +37 -34
- package/dist/i18n/ko.d.ts +7 -0
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LangCode } from './types';
|
|
2
|
+
/** 방출용 한 줄. */
|
|
3
|
+
export declare function ddlCommentLocaleMarker(locale: LangCode): string;
|
|
4
|
+
/**
|
|
5
|
+
* 원문에서 마커를 읽는다 — 없거나 모르는 코드면 `undefined`.
|
|
6
|
+
*
|
|
7
|
+
* ⚠️**주석 제거 «전»의 원문**에 대고 써야 한다(`splitStatements` 가 `--` 를 지운다). 그리고 모르는 코드는
|
|
8
|
+
* 받지 않는다 — 호스트 `asLangCode` 와 같은 화이트리스트 판정이다(오타·미지원 코드를 로케일로 믿지 않는다).
|
|
9
|
+
*/
|
|
10
|
+
export declare function readDdlCommentLocaleMarker(text: string): LangCode | undefined;
|
|
@@ -1,11 +1,59 @@
|
|
|
1
|
-
import { LogicalModel } from './types';
|
|
1
|
+
import { LangCode, LogicalModel } from './types';
|
|
2
2
|
import { MergeDiagramSource } from './mergeDiagram';
|
|
3
3
|
export interface ParseSqlDdlResult {
|
|
4
4
|
logical: LogicalModel;
|
|
5
5
|
/** best-effort 파싱에서 건너뛴 statement·해석 못한 부분(부분 성공 가시화). */
|
|
6
6
|
warnings: string[];
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* 판독 옵션 — 지금은 «주석 로케일» 하나다.
|
|
10
|
+
*
|
|
11
|
+
* ★**우선순위는 호스트 방출 산식의 거울**이다(`server/utils/ddl.ts`: `opts.locale ?? 프로젝트 기본 언어`):
|
|
12
|
+
* 여기서도 **명시 지정이 마커를 이긴다**. 마커는 *「이 텍스트가 어느 로케일로 방출됐다」* 는 사실이고
|
|
13
|
+
* 지정은 *「이 텍스트를 어느 슬롯으로 읽어라」* 는 지시여서, 사람이 아는 것을 도구가 덮지 않는다.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️**둘 다 없으면 주석을 «읽지 않는다»** — 프로젝트 설정으로 채우지 않는다(「모르는 값 규약」: 텍스트의
|
|
16
|
+
* 언어는 우리가 정하는 값이 아니라 이미 정해져 있는 사실이고, 굳히면 ko 문자열이 ja 슬롯에 들어가
|
|
17
|
+
* 「번역 완료」로 **오독**된다). 대신 warnings 로 *「N건을 유보했다」* 를 남긴다(닫힌 오답 대신 열린 신호).
|
|
18
|
+
*/
|
|
19
|
+
export interface ParseSqlDdlOptions {
|
|
20
|
+
commentLocale?: LangCode;
|
|
21
|
+
}
|
|
8
22
|
/** SQL DDL을 논리 모델로 파싱(순수·best-effort). warnings에 건너뛴 부분 보고. */
|
|
9
|
-
export declare function parseSqlDdl(text: string): ParseSqlDdlResult;
|
|
23
|
+
export declare function parseSqlDdl(text: string, opts?: ParseSqlDdlOptions): ParseSqlDdlResult;
|
|
24
|
+
/**
|
|
25
|
+
* 붙여넣은 DDL 의 주석 «증거» — 로케일을 **고르지 않고** 판단 근거만 낸다.
|
|
26
|
+
*
|
|
27
|
+
* ★★**어포던스 설계의 핵심이 이것이다.** 마커 없는 외부 DDL 에서 임포트는 사람에게 로케일을 한 번 묻는데,
|
|
28
|
+
* COMMENT 수천 건을 붙여넣은 사람에게 *「로케일?」* 만 물으면 **그 사람도 추측**이다(수신자가 행동할 수
|
|
29
|
+
* 없는 물음 = 반쪽 설계). 문자 계열 분포를 함께 보여 주면 답할 수 있다.
|
|
30
|
+
*
|
|
31
|
+
* ⚠️★**이름은 «문자 체계»이고 UI 라벨은 «언어»다 — 의도적으로 갈라 둔 자리**(2026-09-11 사용자 지적):
|
|
32
|
+
* 여기서 재는 것은 문자(가나·한글)이고 그것이 `undecidable` 버킷이 존재하는 이유다(한자는 ja↔zh,
|
|
33
|
+
* 라틴은 en↔fr 공유 = 언어로 환원되지 않는다). 반면 **사용자가 답하는 단위는 언어**이므로 모달 라벨은
|
|
34
|
+
* `한국어(한글) 3` 처럼 «언어(문자 근거)» 로 적는다 — 가나⇒일본어·한글⇒한국어는 1:1 안전 매핑이라
|
|
35
|
+
* 도구가 아는 변환을 사용자에게 미루지 않는다. ⇒ **필드명을 언어로 바꾸지 말고, 라벨을 문자로 되돌리지도
|
|
36
|
+
* 말 것**(한쪽만 맞추면 다른 쪽이 틀린다).
|
|
37
|
+
*
|
|
38
|
+
* ★**판정은 «확정되는 것»만 말한다** — 가나가 있으면 ja, 한글이 있으면 ko 는 유니코드 범위로 확정이지만
|
|
39
|
+
* **한자 단독(ja↔zh)·라틴(en↔fr)은 갈리지 않는다** ⇒ `unknown` 이라고 적는다. 둘이 함께 있으면 `mixed` 다
|
|
40
|
+
* (실물은 파일 «간» 혼재가 실재한다 — ko 74.5% / ja 14.4% ⇒ 한 임포트 한 로케일로는 한쪽이 오적재이므로
|
|
41
|
+
* 그 사실을 표기해 사람이 나눠 임포트할 수 있게 한다).
|
|
42
|
+
*/
|
|
43
|
+
export interface SqlDdlCommentEvidence {
|
|
44
|
+
/** 읽을 수 있는 `COMMENT ON TABLE/COLUMN` 문 수. */
|
|
45
|
+
comments: number;
|
|
46
|
+
/** 텍스트가 스스로 밝힌 로케일(우리 산출물) — 있으면 묻지 않는다. */
|
|
47
|
+
markerLocale?: LangCode;
|
|
48
|
+
/** 가나 포함 건수(= ja 확정 근거). */
|
|
49
|
+
kana: number;
|
|
50
|
+
/** 한글 포함 건수(= ko 확정 근거). */
|
|
51
|
+
hangul: number;
|
|
52
|
+
/** 한자 단독·라틴·그 외 — **갈리지 않는** 건수. */
|
|
53
|
+
undecidable: number;
|
|
54
|
+
verdict: 'ko' | 'ja' | 'mixed' | 'unknown';
|
|
55
|
+
}
|
|
56
|
+
/** 위 인터페이스 주석이 근거 정본. */
|
|
57
|
+
export declare function inspectSqlDdlComments(text: string): SqlDdlCommentEvidence;
|
|
10
58
|
/** SQL DDL → 임포트 소스(논리 + auto-layout). controller.importEntities가 그대로 소비. */
|
|
11
|
-
export declare function sqlDdlToImportSource(text: string): MergeDiagramSource;
|
|
59
|
+
export declare function sqlDdlToImportSource(text: string, opts?: ParseSqlDdlOptions): MergeDiagramSource;
|
|
@@ -16,6 +16,8 @@ declare const CONVERTER_FQN: {
|
|
|
16
16
|
readonly booleanYnBoxed: "net.g1project.ecp.common.jpa.converter.BooleanToYNStringConverter";
|
|
17
17
|
/** 레거시 ③ 단일 컬럼 Money(`CustomMoneyType`). forward Money ②(2컬럼)는 `@CompositeType` 경로로 별개. */
|
|
18
18
|
readonly money: "net.g1project.bluecomm.money.MoneyAttributeConverter";
|
|
19
|
+
/** 비율(`Rate`) — Money 와 **같은 패키지·같은 관용구**. 실물 전수 12/12 이 `@Convert`(예외 0). */
|
|
20
|
+
readonly rate: "net.g1project.bluecomm.money.RateAttributeConverter";
|
|
19
21
|
};
|
|
20
22
|
/** 컨버터 축 — `CONVERTER_FQN` 키. */
|
|
21
23
|
export type ConverterAxis = keyof typeof CONVERTER_FQN;
|