@g1cloud/entity-modeler-next 5.2.45 → 5.2.47
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/editor/controller.d.ts +23 -0
- package/dist/entity-modeler-next.css +1 -1
- package/dist/entity-modeler.js +9282 -9104
- package/dist/entity-modeler.umd.cjs +32 -29
- 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;
|
|
@@ -355,6 +355,24 @@ export interface EditorController {
|
|
|
355
355
|
* languages[0]로 폴백. 미주입 시 'ko'. 라벨 우선 표시 등 확장 여지의 기준점.
|
|
356
356
|
*/
|
|
357
357
|
userLanguage: Ref<LangCode>;
|
|
358
|
+
/**
|
|
359
|
+
* 프로젝트 «기본» 언어(호스트 주입) — **산출물에 굳는** 언어를 고르는 축. 현재 소비처는 DDL
|
|
360
|
+
* 내보내기의 `COMMENT ON` 로케일(`ddl.ts` `commentLocale`)이다.
|
|
361
|
+
*
|
|
362
|
+
* ★★**언어 축 셋과 «넷째»인 이유 — 딸린 대상이 다르다.** `languages`(입력셋)·`userLanguage`
|
|
363
|
+
* (접속 유저)·`uiLocale`(툴 크롬) 셋은 전부 **보는 사람**에 딸린 값이라 산출물에 굳히면 *누가
|
|
364
|
+
* 뽑았느냐*에 따라 결과가 달라진다. DDL 주석처럼 **DB 에 남는** 값은 프로젝트에 딸린 이 축을
|
|
365
|
+
* 써야 한다 — 레거시 `AbstractSrcGen.getDefaultLanguage()`(= `systemSetting.language`)와 같은
|
|
366
|
+
* 자리이고, 호스트는 `server/utils/projectLocale.ts` 가 소유한다.
|
|
367
|
+
*
|
|
368
|
+
* ⚠️**`userLanguage` 를 여기 넘기지 말 것**(`ddl.ts` 의 같은 경고와 한 쌍이다).
|
|
369
|
+
*
|
|
370
|
+
* ★**미주입 = `undefined` 이고 폴백하지 않는다** — 형제 축들과 달리 기본값을 두지 않는 것은
|
|
371
|
+
* 「모르는 값 규약」이다. 프로젝트가 언어를 선언한 적이 없는데 `'ko'` 로 채우면 **한국어 주석이
|
|
372
|
+
* 달린 DDL 이 DB 에 굳는다**(호스트 `resolveProjectLocale` 가 레거시의 `"en"` 하드 폴백을
|
|
373
|
+
* 걷어낸 것과 같은 근거). 소비처는 미주입이면 그 축을 **끈다**(주석 미방출).
|
|
374
|
+
*/
|
|
375
|
+
projectLanguage: Ref<LangCode | undefined>;
|
|
358
376
|
/**
|
|
359
377
|
* 툴 크롬(버튼·라벨·툴팁·검증 메시지) 언어(호스트 주입) — 콘텐츠 축 `userLanguage`와 **별개**.
|
|
360
378
|
* 미주입 시 'ko'(무회귀). reactive하므로 .value 갱신 시 UI 문자열이 즉시 재렌더.
|
|
@@ -528,6 +546,11 @@ export declare function createEditorController(initial?: EditorState, options?:
|
|
|
528
546
|
superClassCatalog?: SuperClassCatalog;
|
|
529
547
|
languages?: LangCode[];
|
|
530
548
|
userLanguage?: LangCode;
|
|
549
|
+
/**
|
|
550
|
+
* 프로젝트 기본 언어 — 산출물에 «굳는» 언어(DDL `COMMENT ON` 로케일). 보는 사람에 딸린
|
|
551
|
+
* `userLanguage` 를 넘기지 말 것. **미주입 시 폴백하지 않는다**(= 주석 미방출).
|
|
552
|
+
*/
|
|
553
|
+
projectLanguage?: LangCode;
|
|
531
554
|
/** 툴 크롬 언어(콘텐츠 축 `userLanguage`와 별개). 미주입 시 'ko'(무회귀). */
|
|
532
555
|
uiLocale?: UiLocale;
|
|
533
556
|
/** `fromPersisted` 산출 meta(트랙 B 마커 + revSeed). schemaVersion·opWriteEnabled로 opMode·read-only 판정. */
|