sonamu 0.7.53 → 0.8.0
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/api/config.d.ts +9 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +1 -1
- package/dist/api/sonamu.d.ts +21 -1
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +159 -65
- package/dist/auth/plugins/entity-definitions/anonymous.d.ts +10 -0
- package/dist/auth/plugins/entity-definitions/anonymous.d.ts.map +1 -0
- package/dist/auth/plugins/entity-definitions/anonymous.js +23 -0
- package/dist/auth/plugins/entity-definitions/api-key.d.ts +9 -0
- package/dist/auth/plugins/entity-definitions/api-key.d.ts.map +1 -0
- package/dist/auth/plugins/entity-definitions/api-key.js +199 -0
- package/dist/auth/plugins/entity-definitions/index.d.ts +6 -0
- package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/index.js +20 -2
- package/dist/auth/plugins/entity-definitions/jwt.d.ts +9 -0
- package/dist/auth/plugins/entity-definitions/jwt.d.ts.map +1 -0
- package/dist/auth/plugins/entity-definitions/jwt.js +67 -0
- package/dist/auth/plugins/entity-definitions/organization.d.ts +9 -0
- package/dist/auth/plugins/entity-definitions/organization.d.ts.map +1 -0
- package/dist/auth/plugins/entity-definitions/organization.js +424 -0
- package/dist/auth/plugins/entity-definitions/passkey.d.ts +10 -0
- package/dist/auth/plugins/entity-definitions/passkey.d.ts.map +1 -0
- package/dist/auth/plugins/entity-definitions/passkey.js +129 -0
- package/dist/auth/plugins/entity-definitions/sso.d.ts +10 -0
- package/dist/auth/plugins/entity-definitions/sso.d.ts.map +1 -0
- package/dist/auth/plugins/entity-definitions/sso.js +110 -0
- package/dist/auth/plugins/entity-definitions/types.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/types.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/types.js +1 -1
- package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/admin.js +2 -4
- package/dist/auth/plugins/wrappers/anonymous.d.ts +18 -0
- package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -0
- package/dist/auth/plugins/wrappers/anonymous.js +26 -0
- package/dist/auth/plugins/wrappers/api-key.d.ts +18 -0
- package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -0
- package/dist/auth/plugins/wrappers/api-key.js +38 -0
- package/dist/auth/plugins/wrappers/index.d.ts +6 -0
- package/dist/auth/plugins/wrappers/index.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/index.js +7 -1
- package/dist/auth/plugins/wrappers/jwt.d.ts +18 -0
- package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -0
- package/dist/auth/plugins/wrappers/jwt.js +30 -0
- package/dist/auth/plugins/wrappers/organization.d.ts +18 -0
- package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -0
- package/dist/auth/plugins/wrappers/organization.js +67 -0
- package/dist/auth/plugins/wrappers/passkey.d.ts +18 -0
- package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -0
- package/dist/auth/plugins/wrappers/passkey.js +32 -0
- package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/phone-number.js +2 -4
- package/dist/auth/plugins/wrappers/sso.d.ts +853 -0
- package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -0
- package/dist/auth/plugins/wrappers/sso.js +36 -0
- package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/two-factor.js +2 -4
- package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/username.js +2 -4
- package/dist/bin/build-config.d.ts +2 -2
- package/dist/bin/build-config.js +6 -7
- package/dist/bin/cli.js +417 -32
- package/dist/bin/fixture.d.ts +27 -0
- package/dist/bin/fixture.d.ts.map +1 -0
- package/dist/bin/fixture.js +245 -0
- package/dist/cache/decorator.d.ts +4 -3
- package/dist/cache/decorator.d.ts.map +1 -1
- package/dist/cache/decorator.js +5 -4
- package/dist/cone/cone-generator.d.ts +33 -0
- package/dist/cone/cone-generator.d.ts.map +1 -0
- package/dist/cone/cone-generator.js +286 -0
- package/dist/database/_batch_update.d.ts.map +1 -1
- package/dist/database/_batch_update.js +16 -2
- package/dist/database/puri-subset.test-d.js +1 -1
- package/dist/database/puri-subset.types.d.ts +1 -1
- package/dist/database/puri-subset.types.d.ts.map +1 -1
- package/dist/database/puri-subset.types.js +1 -1
- package/dist/database/puri.d.ts +4 -0
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +20 -2
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/database/upsert-builder.js +19 -3
- package/dist/dict/en.d.ts +15 -0
- package/dist/dict/en.d.ts.map +1 -1
- package/dist/dict/en.js +2 -1
- package/dist/dict/ko.d.ts +15 -0
- package/dist/dict/ko.d.ts.map +1 -1
- package/dist/dict/ko.js +2 -1
- package/dist/dict/rc-keys.d.ts +28 -0
- package/dist/dict/rc-keys.d.ts.map +1 -1
- package/dist/dict/rc-keys.js +31 -1
- package/dist/dict/sd.d.ts.map +1 -1
- package/dist/dict/sd.js +20 -4
- package/dist/entity/entity-manager.d.ts +298 -2
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +4 -1
- package/dist/entity/entity-template-cone.d.ts +14 -0
- package/dist/entity/entity-template-cone.d.ts.map +1 -0
- package/dist/entity/entity-template-cone.js +222 -0
- package/dist/entity/entity.d.ts +47 -2
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +161 -14
- package/dist/ssr/renderer.js +3 -3
- package/dist/syncer/api-parser.js +12 -1
- package/dist/syncer/checksum.d.ts +0 -14
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +1 -23
- package/dist/syncer/syncer-actions.d.ts.map +1 -1
- package/dist/syncer/syncer-actions.js +8 -2
- package/dist/syncer/syncer.d.ts +1 -1
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +17 -10
- package/dist/tasks/workflow-manager.d.ts +13 -1
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.js +18 -1
- package/dist/template/entity-converter.js +4 -4
- package/dist/template/helpers.d.ts +10 -0
- package/dist/template/helpers.d.ts.map +1 -1
- package/dist/template/helpers.js +48 -1
- package/dist/template/implementations/entry-server.template.d.ts +1 -1
- package/dist/template/implementations/entry-server.template.js +7 -2
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +5 -1
- package/dist/template/implementations/generated_http.template.d.ts +1 -0
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.js +6 -2
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +29 -8
- package/dist/template/implementations/queries.template.d.ts.map +1 -1
- package/dist/template/implementations/queries.template.js +9 -1
- package/dist/template/implementations/sd.template.d.ts +1 -1
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +28 -4
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +12 -12
- package/dist/template/implementations/view_form.template.d.ts +11 -7
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.js +97 -87
- package/dist/template/implementations/view_list.template.d.ts +3 -3
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +115 -109
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
- package/dist/template/implementations/view_search_input.template.js +18 -14
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +95 -7
- package/dist/testing/_relation-graph.js +1 -1
- package/dist/testing/data-explorer.d.ts +61 -0
- package/dist/testing/data-explorer.d.ts.map +1 -0
- package/dist/testing/data-explorer.js +274 -0
- package/dist/testing/faker-mappings.d.ts +20 -0
- package/dist/testing/faker-mappings.d.ts.map +1 -0
- package/dist/testing/faker-mappings.js +421 -0
- package/dist/testing/fixture-generator.d.ts +161 -0
- package/dist/testing/fixture-generator.d.ts.map +1 -0
- package/dist/testing/fixture-generator.js +954 -0
- package/dist/testing/fixture-manager.d.ts +6 -1
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +72 -4
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4 -1
- package/dist/types/types.d.ts +1520 -26
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +136 -22
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/ui/ai-client.js +9 -4
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +303 -24
- package/dist/ui-web/assets/index-CsUr-_pV.js +254 -0
- package/dist/ui-web/assets/index-T42zzs1K.css +1 -0
- package/dist/ui-web/index.html +2 -2
- package/dist/utils/fs-utils.d.ts +2 -1
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +14 -3
- package/package.json +19 -11
- package/src/api/config.ts +12 -1
- package/src/api/sonamu.ts +179 -65
- package/src/auth/plugins/entity-definitions/anonymous.ts +17 -0
- package/src/auth/plugins/entity-definitions/api-key.ts +93 -0
- package/src/auth/plugins/entity-definitions/index.ts +18 -0
- package/src/auth/plugins/entity-definitions/jwt.ts +35 -0
- package/src/auth/plugins/entity-definitions/organization.ts +215 -0
- package/src/auth/plugins/entity-definitions/passkey.ts +64 -0
- package/src/auth/plugins/entity-definitions/sso.ts +62 -0
- package/src/auth/plugins/entity-definitions/types.ts +11 -1
- package/src/auth/plugins/wrappers/admin.ts +1 -3
- package/src/auth/plugins/wrappers/anonymous.ts +30 -0
- package/src/auth/plugins/wrappers/api-key.ts +42 -0
- package/src/auth/plugins/wrappers/index.ts +6 -0
- package/src/auth/plugins/wrappers/jwt.ts +34 -0
- package/src/auth/plugins/wrappers/organization.ts +73 -0
- package/src/auth/plugins/wrappers/passkey.ts +36 -0
- package/src/auth/plugins/wrappers/phone-number.ts +1 -3
- package/src/auth/plugins/wrappers/sso.ts +40 -0
- package/src/auth/plugins/wrappers/two-factor.ts +1 -3
- package/src/auth/plugins/wrappers/username.ts +1 -3
- package/src/bin/build-config.ts +6 -6
- package/src/bin/cli.ts +452 -31
- package/src/bin/fixture.ts +302 -0
- package/src/cache/decorator.ts +4 -3
- package/src/cone/cone-generator.ts +363 -0
- package/src/database/_batch_update.ts +11 -0
- package/src/database/puri-subset.test-d.ts +13 -13
- package/src/database/puri-subset.types.ts +1 -1
- package/src/database/puri.ts +43 -1
- package/src/database/upsert-builder.ts +16 -2
- package/src/dict/en.ts +1 -0
- package/src/dict/ko.ts +1 -0
- package/src/dict/rc-keys.ts +32 -0
- package/src/dict/sd.ts +23 -3
- package/src/entity/entity-manager.ts +4 -0
- package/src/entity/entity-template-cone.ts +298 -0
- package/src/entity/entity.ts +189 -13
- package/src/shared/app.shared.ts.txt +5 -0
- package/src/shared/web.shared.ts.txt +9 -5
- package/src/skills/project/README.md +21 -0
- package/src/skills/project/architecture.md +373 -0
- package/src/skills/project/business-logic.md +270 -0
- package/src/skills/project/requirements.md +160 -0
- package/src/skills/sonamu/SKILL.md +168 -3
- package/src/skills/sonamu/api.md +102 -0
- package/src/skills/sonamu/database.md +220 -1
- package/src/skills/sonamu/entity-relations.md +89 -1
- package/src/skills/sonamu/fixture-cli.md +501 -0
- package/src/skills/sonamu/frontend.md +214 -0
- package/src/skills/sonamu/i18n.md +95 -0
- package/src/skills/sonamu/model.md +153 -0
- package/src/skills/sonamu/project-init.md +178 -8
- package/src/skills/sonamu/scaffolding.md +112 -0
- package/src/skills/sonamu/subset.md +9 -3
- package/src/skills/sonamu/testing.md +287 -2
- package/src/skills/sonamu/workflow.md +70 -5
- package/src/ssr/renderer.ts +2 -2
- package/src/syncer/api-parser.ts +12 -0
- package/src/syncer/checksum.ts +0 -38
- package/src/syncer/syncer-actions.ts +7 -1
- package/src/syncer/syncer.ts +16 -5
- package/src/tasks/workflow-manager.ts +29 -8
- package/src/template/entity-converter.ts +3 -3
- package/src/template/helpers.ts +49 -0
- package/src/template/implementations/entry-server.template.ts +1 -1
- package/src/template/implementations/generated.template.ts +4 -0
- package/src/template/implementations/generated_http.template.ts +1 -0
- package/src/template/implementations/generated_sso.template.ts +40 -11
- package/src/template/implementations/queries.template.ts +8 -0
- package/src/template/implementations/sd.template.ts +22 -3
- package/src/template/implementations/services.template.ts +11 -10
- package/src/template/implementations/view_form.template.ts +111 -101
- package/src/template/implementations/view_list.template.ts +120 -119
- package/src/template/implementations/view_search_input.template.ts +17 -13
- package/src/template/zod-converter.ts +103 -6
- package/src/testing/_relation-graph.ts +1 -1
- package/src/testing/data-explorer.ts +427 -0
- package/src/testing/faker-mappings.ts +434 -0
- package/src/testing/fixture-generator.ts +1166 -0
- package/src/testing/fixture-manager.ts +91 -6
- package/src/testing/index.ts +3 -0
- package/src/types/types.ts +222 -26
- package/src/ui/ai-client.ts +9 -1
- package/src/ui/api.ts +429 -23
- package/src/utils/fs-utils.ts +14 -1
- package/dist/template/implementations/view_enums_select.template.d.ts +0 -17
- package/dist/template/implementations/view_enums_select.template.d.ts.map +0 -1
- package/dist/template/implementations/view_enums_select.template.js +0 -62
- package/dist/template/implementations/view_id_async_select.template.d.ts +0 -17
- package/dist/template/implementations/view_id_async_select.template.d.ts.map +0 -1
- package/dist/template/implementations/view_id_async_select.template.js +0 -125
- package/dist/ui-web/assets/index-Bd_2AkLb.css +0 -1
- package/dist/ui-web/assets/index-BpSbhQWo.js +0 -225
- package/src/template/implementations/view_enums_select.template.ts +0 -65
- package/src/template/implementations/view_id_async_select.template.ts +0 -139
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { fakerMappings } from "../testing/faker-mappings.js";
|
|
2
|
+
import { isBelongsToOneRelationProp, isEnumDefWithCone, isOneToOneRelationProp, isRelationProp, isSubsetDefWithCone } from "../types/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Entity의 템플릿 cone을 생성합니다.
|
|
5
|
+
*
|
|
6
|
+
* LLM을 사용하지 않고 faker-mappings.ts를 활용하여 기본 cone을 생성합니다.
|
|
7
|
+
* stub entity 생성 시 자동으로 호출되어 최소한의 cone 메타데이터를 제공합니다.
|
|
8
|
+
*/ export function generateTemplateCones(entity, locale = "ko") {
|
|
9
|
+
const mapping = fakerMappings[locale];
|
|
10
|
+
if (!mapping) {
|
|
11
|
+
throw new Error(`Unsupported locale: ${locale}`);
|
|
12
|
+
}
|
|
13
|
+
// 1. Entity cone
|
|
14
|
+
const entityCone = {
|
|
15
|
+
desc: getEntityDesc(entity, locale),
|
|
16
|
+
fixtureHint: getEntityFixtureHint(entity, locale)
|
|
17
|
+
};
|
|
18
|
+
// 2. Prop cones
|
|
19
|
+
const propCones = {};
|
|
20
|
+
for (const prop of entity.props){
|
|
21
|
+
const fakerConfig = findFakerMapping(prop, mapping);
|
|
22
|
+
propCones[prop.name] = {
|
|
23
|
+
desc: fakerConfig?.comment || getDefaultDesc(prop, locale),
|
|
24
|
+
fixtureGenerator: fakerConfig?.faker,
|
|
25
|
+
fixtureHint: getFixtureHint(prop, fakerConfig, locale),
|
|
26
|
+
dataSource: shouldHaveDataSource(prop) ? {
|
|
27
|
+
strategy: "recent",
|
|
28
|
+
config: {
|
|
29
|
+
limit: 5
|
|
30
|
+
}
|
|
31
|
+
} : undefined
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// 3. Subset cones
|
|
35
|
+
const subsetCones = {};
|
|
36
|
+
for (const [key, subset] of Object.entries(entity.subsets || {})){
|
|
37
|
+
subsetCones[key] = {
|
|
38
|
+
desc: getSubsetDesc(key, subset, locale),
|
|
39
|
+
note: getSubsetNote(key, subset, locale)
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// 4. Enum cones
|
|
43
|
+
const enumCones = {};
|
|
44
|
+
for (const [enumId, enumDef] of Object.entries(entity.enums || {})){
|
|
45
|
+
const values = isEnumDefWithCone(enumDef) ? enumDef.values : enumDef;
|
|
46
|
+
enumCones[enumId] = {
|
|
47
|
+
desc: getEnumDesc(enumId, locale),
|
|
48
|
+
note: getEnumNote(enumId, values, locale),
|
|
49
|
+
values: Object.keys(values).reduce((acc, key)=>{
|
|
50
|
+
acc[key] = {
|
|
51
|
+
desc: getEnumValueDesc(values[key] || key, locale)
|
|
52
|
+
};
|
|
53
|
+
return acc;
|
|
54
|
+
}, {})
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
entityCone,
|
|
59
|
+
propCones,
|
|
60
|
+
subsetCones,
|
|
61
|
+
enumCones
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Prop에 맞는 faker mapping을 찾습니다.
|
|
66
|
+
*
|
|
67
|
+
* 우선순위:
|
|
68
|
+
* 1. field_patterns에서 prop name 매칭 (정확한 이름 매칭)
|
|
69
|
+
* 2. field_patterns에서 부분 매칭 (name 필드가 user_name이면 name 매칭)
|
|
70
|
+
* 3. type_defaults에서 prop type 매칭
|
|
71
|
+
*/ function findFakerMapping(prop, mapping) {
|
|
72
|
+
if (isRelationProp(prop)) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const propName = prop.name.toLowerCase();
|
|
76
|
+
// 1. 정확한 필드명 매칭
|
|
77
|
+
if (mapping.field_patterns[propName]) {
|
|
78
|
+
return mapping.field_patterns[propName];
|
|
79
|
+
}
|
|
80
|
+
// 2. 부분 매칭 (user_name → name, email_address → email)
|
|
81
|
+
for (const [pattern, config] of Object.entries(mapping.field_patterns)){
|
|
82
|
+
if (propName.includes(pattern) || propName.endsWith(`_${pattern}`)) {
|
|
83
|
+
return config;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// 3. 타입 기본값 매칭
|
|
87
|
+
const typeKey = prop.type;
|
|
88
|
+
if (mapping.type_defaults[typeKey]) {
|
|
89
|
+
return mapping.type_defaults[typeKey];
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Entity 설명을 생성합니다.
|
|
95
|
+
*/ function getEntityDesc(entity, locale) {
|
|
96
|
+
const title = entity.title || entity.id;
|
|
97
|
+
const templates = {
|
|
98
|
+
ko: `${title} 엔티티`,
|
|
99
|
+
en: `${title} entity`,
|
|
100
|
+
ja: `${title}エンティティ`
|
|
101
|
+
};
|
|
102
|
+
return templates[locale];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Entity fixture hint를 생성합니다.
|
|
106
|
+
*/ function getEntityFixtureHint(entity, locale) {
|
|
107
|
+
const title = entity.title || entity.id;
|
|
108
|
+
const templates = {
|
|
109
|
+
ko: `${title} 테스트 데이터를 생성합니다. 각 필드는 실제 데이터와 유사한 형식으로 생성됩니다.`,
|
|
110
|
+
en: `Generates ${title} test data. Each field is generated in a format similar to real data.`,
|
|
111
|
+
ja: `${title}のテストデータを生成します。各フィールドは実際のデータに似た形式で生成されます。`
|
|
112
|
+
};
|
|
113
|
+
return templates[locale];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Prop 기본 설명을 생성합니다 (faker mapping이 없는 경우).
|
|
117
|
+
*/ function getDefaultDesc(prop, locale) {
|
|
118
|
+
if (isRelationProp(prop)) {
|
|
119
|
+
const templates = {
|
|
120
|
+
ko: `${prop.with} 참조`,
|
|
121
|
+
en: `Reference to ${prop.with}`,
|
|
122
|
+
ja: `${prop.with}への参照`
|
|
123
|
+
};
|
|
124
|
+
return templates[locale];
|
|
125
|
+
}
|
|
126
|
+
const templates = {
|
|
127
|
+
ko: prop.name,
|
|
128
|
+
en: prop.name,
|
|
129
|
+
ja: prop.name
|
|
130
|
+
};
|
|
131
|
+
return templates[locale];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Prop fixture hint를 생성합니다.
|
|
135
|
+
*/ function getFixtureHint(prop, fakerConfig, locale) {
|
|
136
|
+
if (isRelationProp(prop)) {
|
|
137
|
+
const templates = {
|
|
138
|
+
ko: `기존 ${prop.with} 데이터를 참조합니다`,
|
|
139
|
+
en: `References existing ${prop.with} data`,
|
|
140
|
+
ja: `既存の${prop.with}データを参照します`
|
|
141
|
+
};
|
|
142
|
+
return templates[locale];
|
|
143
|
+
}
|
|
144
|
+
if (fakerConfig?.comment) {
|
|
145
|
+
const templates = {
|
|
146
|
+
ko: `${fakerConfig.comment} 형식으로 생성됩니다`,
|
|
147
|
+
en: `Generated as ${fakerConfig.comment}`,
|
|
148
|
+
ja: `${fakerConfig.comment}形式で生成されます`
|
|
149
|
+
};
|
|
150
|
+
return templates[locale];
|
|
151
|
+
}
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Prop이 dataSource를 가져야 하는지 판단합니다.
|
|
156
|
+
*
|
|
157
|
+
* BelongsToOne 또는 OneToOne (hasJoinColumn: true)인 경우 dataSource가 필요합니다.
|
|
158
|
+
*/ function shouldHaveDataSource(prop) {
|
|
159
|
+
if (!isRelationProp(prop)) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
// BelongsToOne은 항상 dataSource 필요
|
|
163
|
+
if (isBelongsToOneRelationProp(prop)) {
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
// OneToOne은 hasJoinColumn: true인 경우에만 dataSource 필요
|
|
167
|
+
if (isOneToOneRelationProp(prop)) {
|
|
168
|
+
return prop.hasJoinColumn === true;
|
|
169
|
+
}
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Subset 설명을 생성합니다.
|
|
174
|
+
*/ function getSubsetDesc(key, _subset, locale) {
|
|
175
|
+
const templates = {
|
|
176
|
+
ko: `${key} 서브셋`,
|
|
177
|
+
en: `${key} subset`,
|
|
178
|
+
ja: `${key}サブセット`
|
|
179
|
+
};
|
|
180
|
+
return templates[locale];
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Subset note를 생성합니다.
|
|
184
|
+
*/ function getSubsetNote(_key, subset, locale) {
|
|
185
|
+
const fields = isSubsetDefWithCone(subset) ? subset.fields : subset;
|
|
186
|
+
const fieldNames = fields.map((f)=>typeof f === "string" ? f : f.field).join(", ");
|
|
187
|
+
const templates = {
|
|
188
|
+
ko: `포함된 필드: ${fieldNames}`,
|
|
189
|
+
en: `Included fields: ${fieldNames}`,
|
|
190
|
+
ja: `含まれるフィールド: ${fieldNames}`
|
|
191
|
+
};
|
|
192
|
+
return templates[locale];
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Enum 설명을 생성합니다.
|
|
196
|
+
*/ function getEnumDesc(_enumId, locale) {
|
|
197
|
+
const templates = {
|
|
198
|
+
ko: `열거형`,
|
|
199
|
+
en: `enum`,
|
|
200
|
+
ja: `列挙型`
|
|
201
|
+
};
|
|
202
|
+
return templates[locale];
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Enum note를 생성합니다.
|
|
206
|
+
*/ function getEnumNote(_enumId, values, locale) {
|
|
207
|
+
const valueList = Object.keys(values).join(", ");
|
|
208
|
+
const templates = {
|
|
209
|
+
ko: `가능한 값: ${valueList}`,
|
|
210
|
+
en: `Possible values: ${valueList}`,
|
|
211
|
+
ja: `可能な値: ${valueList}`
|
|
212
|
+
};
|
|
213
|
+
return templates[locale];
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Enum value 설명을 생성합니다.
|
|
217
|
+
*/ function getEnumValueDesc(label, _locale) {
|
|
218
|
+
// label을 그대로 사용
|
|
219
|
+
return label;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRpdHkvZW50aXR5LXRlbXBsYXRlLWNvbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBGYWtlck1hcHBpbmdDb25maWcsIGZha2VyTWFwcGluZ3MgfSBmcm9tIFwiLi4vdGVzdGluZy9mYWtlci1tYXBwaW5nc1wiO1xuaW1wb3J0IHR5cGUgeyBDb25lLCBFbnRpdHlKc29uLCBFbnRpdHlQcm9wLCBPbmVUb09uZVJlbGF0aW9uUHJvcCwgU3Vic2V0RGVmIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQge1xuICBpc0JlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcCxcbiAgaXNFbnVtRGVmV2l0aENvbmUsXG4gIGlzT25lVG9PbmVSZWxhdGlvblByb3AsXG4gIGlzUmVsYXRpb25Qcm9wLFxuICBpc1N1YnNldERlZldpdGhDb25lLFxufSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcblxuLyoqXG4gKiBFbnRpdHnsnZgg7YWc7ZSM66a/IGNvbmXsnYQg7IOd7ISx7ZWp64uI64ukLlxuICpcbiAqIExMTeydhCDsgqzsmqntlZjsp4Ag7JWK6rOgIGZha2VyLW1hcHBpbmdzLnRz66W8IO2ZnOyaqe2VmOyXrCDquLDrs7ggY29uZeydhCDsg53shLHtlanri4jri6QuXG4gKiBzdHViIGVudGl0eSDsg53shLEg7IucIOyekOuPmeycvOuhnCDtmLjstpzrkJjslrQg7LWc7IaM7ZWc7J2YIGNvbmUg66mU7YOA642w7J207YSw66W8IOygnOqzte2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVGVtcGxhdGVDb25lcyhcbiAgZW50aXR5OiBFbnRpdHlKc29uLFxuICBsb2NhbGU6IFwia29cIiB8IFwiZW5cIiB8IFwiamFcIiA9IFwia29cIixcbik6IHtcbiAgZW50aXR5Q29uZT86IENvbmU7XG4gIHByb3BDb25lczogUmVjb3JkPHN0cmluZywgQ29uZT47XG4gIHN1YnNldENvbmVzOiBSZWNvcmQ8c3RyaW5nLCBDb25lPjtcbiAgZW51bUNvbmVzOiBSZWNvcmQ8c3RyaW5nLCBDb25lPjtcbn0ge1xuICBjb25zdCBtYXBwaW5nID0gZmFrZXJNYXBwaW5nc1tsb2NhbGVdO1xuXG4gIGlmICghbWFwcGluZykge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbG9jYWxlOiAke2xvY2FsZX1gKTtcbiAgfVxuXG4gIC8vIDEuIEVudGl0eSBjb25lXG4gIGNvbnN0IGVudGl0eUNvbmU6IENvbmUgPSB7XG4gICAgZGVzYzogZ2V0RW50aXR5RGVzYyhlbnRpdHksIGxvY2FsZSksXG4gICAgZml4dHVyZUhpbnQ6IGdldEVudGl0eUZpeHR1cmVIaW50KGVudGl0eSwgbG9jYWxlKSxcbiAgfTtcblxuICAvLyAyLiBQcm9wIGNvbmVzXG4gIGNvbnN0IHByb3BDb25lczogUmVjb3JkPHN0cmluZywgQ29uZT4gPSB7fTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIGVudGl0eS5wcm9wcykge1xuICAgIGNvbnN0IGZha2VyQ29uZmlnID0gZmluZEZha2VyTWFwcGluZyhwcm9wLCBtYXBwaW5nKTtcblxuICAgIHByb3BDb25lc1twcm9wLm5hbWVdID0ge1xuICAgICAgZGVzYzogZmFrZXJDb25maWc/LmNvbW1lbnQgfHwgZ2V0RGVmYXVsdERlc2MocHJvcCwgbG9jYWxlKSxcbiAgICAgIGZpeHR1cmVHZW5lcmF0b3I6IGZha2VyQ29uZmlnPy5mYWtlcixcbiAgICAgIGZpeHR1cmVIaW50OiBnZXRGaXh0dXJlSGludChwcm9wLCBmYWtlckNvbmZpZywgbG9jYWxlKSxcbiAgICAgIGRhdGFTb3VyY2U6IHNob3VsZEhhdmVEYXRhU291cmNlKHByb3ApXG4gICAgICAgID8geyBzdHJhdGVneTogXCJyZWNlbnRcIiwgY29uZmlnOiB7IGxpbWl0OiA1IH0gfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gMy4gU3Vic2V0IGNvbmVzXG4gIGNvbnN0IHN1YnNldENvbmVzOiBSZWNvcmQ8c3RyaW5nLCBDb25lPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHN1YnNldF0gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5LnN1YnNldHMgfHwge30pKSB7XG4gICAgc3Vic2V0Q29uZXNba2V5XSA9IHtcbiAgICAgIGRlc2M6IGdldFN1YnNldERlc2Moa2V5LCBzdWJzZXQsIGxvY2FsZSksXG4gICAgICBub3RlOiBnZXRTdWJzZXROb3RlKGtleSwgc3Vic2V0LCBsb2NhbGUpLFxuICAgIH07XG4gIH1cblxuICAvLyA0LiBFbnVtIGNvbmVzXG4gIGNvbnN0IGVudW1Db25lczogUmVjb3JkPHN0cmluZywgQ29uZT4gPSB7fTtcbiAgZm9yIChjb25zdCBbZW51bUlkLCBlbnVtRGVmXSBvZiBPYmplY3QuZW50cmllcyhlbnRpdHkuZW51bXMgfHwge30pKSB7XG4gICAgY29uc3QgdmFsdWVzID0gaXNFbnVtRGVmV2l0aENvbmUoZW51bURlZikgPyBlbnVtRGVmLnZhbHVlcyA6IGVudW1EZWY7XG5cbiAgICBlbnVtQ29uZXNbZW51bUlkXSA9IHtcbiAgICAgIGRlc2M6IGdldEVudW1EZXNjKGVudW1JZCwgbG9jYWxlKSxcbiAgICAgIG5vdGU6IGdldEVudW1Ob3RlKGVudW1JZCwgdmFsdWVzLCBsb2NhbGUpLFxuICAgICAgdmFsdWVzOiBPYmplY3Qua2V5cyh2YWx1ZXMpLnJlZHVjZShcbiAgICAgICAgKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSB7XG4gICAgICAgICAgICBkZXNjOiBnZXRFbnVtVmFsdWVEZXNjKHZhbHVlc1trZXldIHx8IGtleSwgbG9jYWxlKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHsgZGVzYzogc3RyaW5nIH0+LFxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgZW50aXR5Q29uZSwgcHJvcENvbmVzLCBzdWJzZXRDb25lcywgZW51bUNvbmVzIH07XG59XG5cbi8qKlxuICogUHJvcOyXkCDrp57ripQgZmFrZXIgbWFwcGluZ+ydhCDssL7sirXri4jri6QuXG4gKlxuICog7Jqw7ISg7Iic7JyEOlxuICogMS4gZmllbGRfcGF0dGVybnPsl5DshJwgcHJvcCBuYW1lIOunpOy5rSAo7KCV7ZmV7ZWcIOydtOumhCDrp6Tsua0pXG4gKiAyLiBmaWVsZF9wYXR0ZXJuc+yXkOyEnCDrtoDrtoQg66ek7LmtIChuYW1lIO2VhOuTnOqwgCB1c2VyX25hbWXsnbTrqbQgbmFtZSDrp6Tsua0pXG4gKiAzLiB0eXBlX2RlZmF1bHRz7JeQ7IScIHByb3AgdHlwZSDrp6Tsua1cbiAqL1xuZnVuY3Rpb24gZmluZEZha2VyTWFwcGluZyhcbiAgcHJvcDogRW50aXR5UHJvcCxcbiAgbWFwcGluZzoge1xuICAgIGZpZWxkX3BhdHRlcm5zOiBSZWNvcmQ8c3RyaW5nLCBGYWtlck1hcHBpbmdDb25maWc+O1xuICAgIHR5cGVfZGVmYXVsdHM6IFJlY29yZDxzdHJpbmcsIEZha2VyTWFwcGluZ0NvbmZpZz47XG4gIH0sXG4pOiBGYWtlck1hcHBpbmdDb25maWcgfCB1bmRlZmluZWQge1xuICBpZiAoaXNSZWxhdGlvblByb3AocHJvcCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcHJvcE5hbWUgPSBwcm9wLm5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAvLyAxLiDsoJXtmZXtlZwg7ZWE65Oc66qFIOunpOy5rVxuICBpZiAobWFwcGluZy5maWVsZF9wYXR0ZXJuc1twcm9wTmFtZV0pIHtcbiAgICByZXR1cm4gbWFwcGluZy5maWVsZF9wYXR0ZXJuc1twcm9wTmFtZV07XG4gIH1cblxuICAvLyAyLiDrtoDrtoQg66ek7LmtICh1c2VyX25hbWUg4oaSIG5hbWUsIGVtYWlsX2FkZHJlc3Mg4oaSIGVtYWlsKVxuICBmb3IgKGNvbnN0IFtwYXR0ZXJuLCBjb25maWddIG9mIE9iamVjdC5lbnRyaWVzKG1hcHBpbmcuZmllbGRfcGF0dGVybnMpKSB7XG4gICAgaWYgKHByb3BOYW1lLmluY2x1ZGVzKHBhdHRlcm4pIHx8IHByb3BOYW1lLmVuZHNXaXRoKGBfJHtwYXR0ZXJufWApKSB7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIC8vIDMuIO2DgOyehSDquLDrs7jqsJIg66ek7LmtXG4gIGNvbnN0IHR5cGVLZXkgPSBwcm9wLnR5cGU7XG4gIGlmIChtYXBwaW5nLnR5cGVfZGVmYXVsdHNbdHlwZUtleV0pIHtcbiAgICByZXR1cm4gbWFwcGluZy50eXBlX2RlZmF1bHRzW3R5cGVLZXldO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBFbnRpdHkg7ISk66qF7J2EIOyDneyEse2VqeuLiOuLpC5cbiAqL1xuZnVuY3Rpb24gZ2V0RW50aXR5RGVzYyhlbnRpdHk6IEVudGl0eUpzb24sIGxvY2FsZTogXCJrb1wiIHwgXCJlblwiIHwgXCJqYVwiKTogc3RyaW5nIHtcbiAgY29uc3QgdGl0bGUgPSBlbnRpdHkudGl0bGUgfHwgZW50aXR5LmlkO1xuXG4gIGNvbnN0IHRlbXBsYXRlcyA9IHtcbiAgICBrbzogYCR7dGl0bGV9IOyXlO2LsO2LsGAsXG4gICAgZW46IGAke3RpdGxlfSBlbnRpdHlgLFxuICAgIGphOiBgJHt0aXRsZX3jgqjjg7Pjg4bjgqPjg4bjgqNgLFxuICB9O1xuXG4gIHJldHVybiB0ZW1wbGF0ZXNbbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBFbnRpdHkgZml4dHVyZSBoaW5066W8IOyDneyEse2VqeuLiOuLpC5cbiAqL1xuZnVuY3Rpb24gZ2V0RW50aXR5Rml4dHVyZUhpbnQoZW50aXR5OiBFbnRpdHlKc29uLCBsb2NhbGU6IFwia29cIiB8IFwiZW5cIiB8IFwiamFcIik6IHN0cmluZyB7XG4gIGNvbnN0IHRpdGxlID0gZW50aXR5LnRpdGxlIHx8IGVudGl0eS5pZDtcblxuICBjb25zdCB0ZW1wbGF0ZXMgPSB7XG4gICAga286IGAke3RpdGxlfSDthYzsiqTtirgg642w7J207YSw66W8IOyDneyEse2VqeuLiOuLpC4g6rCBIO2VhOuTnOuKlCDsi6TsoJwg642w7J207YSw7JmAIOycoOyCrO2VnCDtmJXsi53snLzroZwg7IOd7ISx65Cp64uI64ukLmAsXG4gICAgZW46IGBHZW5lcmF0ZXMgJHt0aXRsZX0gdGVzdCBkYXRhLiBFYWNoIGZpZWxkIGlzIGdlbmVyYXRlZCBpbiBhIGZvcm1hdCBzaW1pbGFyIHRvIHJlYWwgZGF0YS5gLFxuICAgIGphOiBgJHt0aXRsZX3jga7jg4bjgrnjg4jjg4fjg7zjgr/jgpLnlJ/miJDjgZfjgb7jgZnjgILlkITjg5XjgqPjg7zjg6vjg4njga/lrp/pmpvjga7jg4fjg7zjgr/jgavkvLzjgZ/lvaLlvI/jgafnlJ/miJDjgZXjgozjgb7jgZnjgIJgLFxuICB9O1xuXG4gIHJldHVybiB0ZW1wbGF0ZXNbbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBQcm9wIOq4sOuzuCDshKTrqoXsnYQg7IOd7ISx7ZWp64uI64ukIChmYWtlciBtYXBwaW5n7J20IOyXhuuKlCDqsr3smrApLlxuICovXG5mdW5jdGlvbiBnZXREZWZhdWx0RGVzYyhwcm9wOiBFbnRpdHlQcm9wLCBsb2NhbGU6IFwia29cIiB8IFwiZW5cIiB8IFwiamFcIik6IHN0cmluZyB7XG4gIGlmIChpc1JlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHtcbiAgICAgIGtvOiBgJHtwcm9wLndpdGh9IOywuOyhsGAsXG4gICAgICBlbjogYFJlZmVyZW5jZSB0byAke3Byb3Aud2l0aH1gLFxuICAgICAgamE6IGAke3Byb3Aud2l0aH3jgbjjga7lj4LnhadgLFxuICAgIH07XG4gICAgcmV0dXJuIHRlbXBsYXRlc1tsb2NhbGVdO1xuICB9XG5cbiAgY29uc3QgdGVtcGxhdGVzID0ge1xuICAgIGtvOiBwcm9wLm5hbWUsXG4gICAgZW46IHByb3AubmFtZSxcbiAgICBqYTogcHJvcC5uYW1lLFxuICB9O1xuXG4gIHJldHVybiB0ZW1wbGF0ZXNbbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBQcm9wIGZpeHR1cmUgaGludOulvCDsg53shLHtlanri4jri6QuXG4gKi9cbmZ1bmN0aW9uIGdldEZpeHR1cmVIaW50KFxuICBwcm9wOiBFbnRpdHlQcm9wLFxuICBmYWtlckNvbmZpZzogRmFrZXJNYXBwaW5nQ29uZmlnIHwgdW5kZWZpbmVkLFxuICBsb2NhbGU6IFwia29cIiB8IFwiZW5cIiB8IFwiamFcIixcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc1JlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHtcbiAgICAgIGtvOiBg6riw7KG0ICR7cHJvcC53aXRofSDrjbDsnbTthLDrpbwg7LC47KGw7ZWp64uI64ukYCxcbiAgICAgIGVuOiBgUmVmZXJlbmNlcyBleGlzdGluZyAke3Byb3Aud2l0aH0gZGF0YWAsXG4gICAgICBqYTogYOaXouWtmOOBriR7cHJvcC53aXRofeODh+ODvOOCv+OCkuWPgueFp+OBl+OBvuOBmWAsXG4gICAgfTtcbiAgICByZXR1cm4gdGVtcGxhdGVzW2xvY2FsZV07XG4gIH1cblxuICBpZiAoZmFrZXJDb25maWc/LmNvbW1lbnQpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSB7XG4gICAgICBrbzogYCR7ZmFrZXJDb25maWcuY29tbWVudH0g7ZiV7Iud7Jy866GcIOyDneyEseuQqeuLiOuLpGAsXG4gICAgICBlbjogYEdlbmVyYXRlZCBhcyAke2Zha2VyQ29uZmlnLmNvbW1lbnR9YCxcbiAgICAgIGphOiBgJHtmYWtlckNvbmZpZy5jb21tZW50feW9ouW8j+OBp+eUn+aIkOOBleOCjOOBvuOBmWAsXG4gICAgfTtcbiAgICByZXR1cm4gdGVtcGxhdGVzW2xvY2FsZV07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFByb3DsnbQgZGF0YVNvdXJjZeulvCDqsIDsoLjslbwg7ZWY64qU7KeAIO2MkOuLqO2VqeuLiOuLpC5cbiAqXG4gKiBCZWxvbmdzVG9PbmUg65iQ64qUIE9uZVRvT25lIChoYXNKb2luQ29sdW1uOiB0cnVlKeyduCDqsr3smrAgZGF0YVNvdXJjZeqwgCDtlYTsmpTtlanri4jri6QuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZEhhdmVEYXRhU291cmNlKHByb3A6IEVudGl0eVByb3ApOiBib29sZWFuIHtcbiAgaWYgKCFpc1JlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEJlbG9uZ3NUb09uZeydgCDtla3sg4EgZGF0YVNvdXJjZSDtlYTsmpRcbiAgaWYgKGlzQmVsb25nc1RvT25lUmVsYXRpb25Qcm9wKHByb3ApKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBPbmVUb09uZeydgCBoYXNKb2luQ29sdW1uOiB0cnVl7J24IOqyveyasOyXkOunjCBkYXRhU291cmNlIO2VhOyalFxuICBpZiAoaXNPbmVUb09uZVJlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgIHJldHVybiAocHJvcCBhcyBPbmVUb09uZVJlbGF0aW9uUHJvcCkuaGFzSm9pbkNvbHVtbiA9PT0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBTdWJzZXQg7ISk66qF7J2EIOyDneyEse2VqeuLiOuLpC5cbiAqL1xuZnVuY3Rpb24gZ2V0U3Vic2V0RGVzYyhrZXk6IHN0cmluZywgX3N1YnNldDogU3Vic2V0RGVmLCBsb2NhbGU6IFwia29cIiB8IFwiZW5cIiB8IFwiamFcIik6IHN0cmluZyB7XG4gIGNvbnN0IHRlbXBsYXRlcyA9IHtcbiAgICBrbzogYCR7a2V5fSDshJzruIzshYtgLFxuICAgIGVuOiBgJHtrZXl9IHN1YnNldGAsXG4gICAgamE6IGAke2tleX3jgrXjg5bjgrvjg4Pjg4hgLFxuICB9O1xuXG4gIHJldHVybiB0ZW1wbGF0ZXNbbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBTdWJzZXQgbm90ZeulvCDsg53shLHtlanri4jri6QuXG4gKi9cbmZ1bmN0aW9uIGdldFN1YnNldE5vdGUoX2tleTogc3RyaW5nLCBzdWJzZXQ6IFN1YnNldERlZiwgbG9jYWxlOiBcImtvXCIgfCBcImVuXCIgfCBcImphXCIpOiBzdHJpbmcge1xuICBjb25zdCBmaWVsZHMgPSBpc1N1YnNldERlZldpdGhDb25lKHN1YnNldCkgPyBzdWJzZXQuZmllbGRzIDogc3Vic2V0O1xuICBjb25zdCBmaWVsZE5hbWVzID0gZmllbGRzLm1hcCgoZikgPT4gKHR5cGVvZiBmID09PSBcInN0cmluZ1wiID8gZiA6IGYuZmllbGQpKS5qb2luKFwiLCBcIik7XG5cbiAgY29uc3QgdGVtcGxhdGVzID0ge1xuICAgIGtvOiBg7Y+s7ZWo65CcIO2VhOuTnDogJHtmaWVsZE5hbWVzfWAsXG4gICAgZW46IGBJbmNsdWRlZCBmaWVsZHM6ICR7ZmllbGROYW1lc31gLFxuICAgIGphOiBg5ZCr44G+44KM44KL44OV44Kj44O844Or44OJOiAke2ZpZWxkTmFtZXN9YCxcbiAgfTtcblxuICByZXR1cm4gdGVtcGxhdGVzW2xvY2FsZV07XG59XG5cbi8qKlxuICogRW51bSDshKTrqoXsnYQg7IOd7ISx7ZWp64uI64ukLlxuICovXG5mdW5jdGlvbiBnZXRFbnVtRGVzYyhfZW51bUlkOiBzdHJpbmcsIGxvY2FsZTogXCJrb1wiIHwgXCJlblwiIHwgXCJqYVwiKTogc3RyaW5nIHtcbiAgY29uc3QgdGVtcGxhdGVzID0ge1xuICAgIGtvOiBg7Je06rGw7ZiVYCxcbiAgICBlbjogYGVudW1gLFxuICAgIGphOiBg5YiX5oyZ5Z6LYCxcbiAgfTtcblxuICByZXR1cm4gdGVtcGxhdGVzW2xvY2FsZV07XG59XG5cbi8qKlxuICogRW51bSBub3Rl66W8IOyDneyEse2VqeuLiOuLpC5cbiAqL1xuZnVuY3Rpb24gZ2V0RW51bU5vdGUoXG4gIF9lbnVtSWQ6IHN0cmluZyxcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBsb2NhbGU6IFwia29cIiB8IFwiZW5cIiB8IFwiamFcIixcbik6IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlTGlzdCA9IE9iamVjdC5rZXlzKHZhbHVlcykuam9pbihcIiwgXCIpO1xuXG4gIGNvbnN0IHRlbXBsYXRlcyA9IHtcbiAgICBrbzogYOqwgOuKpe2VnCDqsJI6ICR7dmFsdWVMaXN0fWAsXG4gICAgZW46IGBQb3NzaWJsZSB2YWx1ZXM6ICR7dmFsdWVMaXN0fWAsXG4gICAgamE6IGDlj6/og73jgarlgKQ6ICR7dmFsdWVMaXN0fWAsXG4gIH07XG5cbiAgcmV0dXJuIHRlbXBsYXRlc1tsb2NhbGVdO1xufVxuXG4vKipcbiAqIEVudW0gdmFsdWUg7ISk66qF7J2EIOyDneyEse2VqeuLiOuLpC5cbiAqL1xuZnVuY3Rpb24gZ2V0RW51bVZhbHVlRGVzYyhsYWJlbDogc3RyaW5nLCBfbG9jYWxlOiBcImtvXCIgfCBcImVuXCIgfCBcImphXCIpOiBzdHJpbmcge1xuICAvLyBsYWJlbOydhCDqt7jrjIDroZwg7IKs7JqpXG4gIHJldHVybiBsYWJlbDtcbn1cbiJdLCJuYW1lcyI6WyJmYWtlck1hcHBpbmdzIiwiaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AiLCJpc0VudW1EZWZXaXRoQ29uZSIsImlzT25lVG9PbmVSZWxhdGlvblByb3AiLCJpc1JlbGF0aW9uUHJvcCIsImlzU3Vic2V0RGVmV2l0aENvbmUiLCJnZW5lcmF0ZVRlbXBsYXRlQ29uZXMiLCJlbnRpdHkiLCJsb2NhbGUiLCJtYXBwaW5nIiwiRXJyb3IiLCJlbnRpdHlDb25lIiwiZGVzYyIsImdldEVudGl0eURlc2MiLCJmaXh0dXJlSGludCIsImdldEVudGl0eUZpeHR1cmVIaW50IiwicHJvcENvbmVzIiwicHJvcCIsInByb3BzIiwiZmFrZXJDb25maWciLCJmaW5kRmFrZXJNYXBwaW5nIiwibmFtZSIsImNvbW1lbnQiLCJnZXREZWZhdWx0RGVzYyIsImZpeHR1cmVHZW5lcmF0b3IiLCJmYWtlciIsImdldEZpeHR1cmVIaW50IiwiZGF0YVNvdXJjZSIsInNob3VsZEhhdmVEYXRhU291cmNlIiwic3RyYXRlZ3kiLCJjb25maWciLCJsaW1pdCIsInVuZGVmaW5lZCIsInN1YnNldENvbmVzIiwia2V5Iiwic3Vic2V0IiwiT2JqZWN0IiwiZW50cmllcyIsInN1YnNldHMiLCJnZXRTdWJzZXREZXNjIiwibm90ZSIsImdldFN1YnNldE5vdGUiLCJlbnVtQ29uZXMiLCJlbnVtSWQiLCJlbnVtRGVmIiwiZW51bXMiLCJ2YWx1ZXMiLCJnZXRFbnVtRGVzYyIsImdldEVudW1Ob3RlIiwia2V5cyIsInJlZHVjZSIsImFjYyIsImdldEVudW1WYWx1ZURlc2MiLCJwcm9wTmFtZSIsInRvTG93ZXJDYXNlIiwiZmllbGRfcGF0dGVybnMiLCJwYXR0ZXJuIiwiaW5jbHVkZXMiLCJlbmRzV2l0aCIsInR5cGVLZXkiLCJ0eXBlIiwidHlwZV9kZWZhdWx0cyIsInRpdGxlIiwiaWQiLCJ0ZW1wbGF0ZXMiLCJrbyIsImVuIiwiamEiLCJ3aXRoIiwiaGFzSm9pbkNvbHVtbiIsIl9zdWJzZXQiLCJfa2V5IiwiZmllbGRzIiwiZmllbGROYW1lcyIsIm1hcCIsImYiLCJmaWVsZCIsImpvaW4iLCJfZW51bUlkIiwidmFsdWVMaXN0IiwibGFiZWwiLCJfbG9jYWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFrQ0EsYUFBYSxRQUFRLCtCQUE0QjtBQUVuRixTQUNFQywwQkFBMEIsRUFDMUJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxjQUFjLEVBQ2RDLG1CQUFtQixRQUNkLG9CQUFpQjtBQUV4Qjs7Ozs7Q0FLQyxHQUNELE9BQU8sU0FBU0Msc0JBQ2RDLE1BQWtCLEVBQ2xCQyxTQUE2QixJQUFJO0lBT2pDLE1BQU1DLFVBQVVULGFBQWEsQ0FBQ1EsT0FBTztJQUVyQyxJQUFJLENBQUNDLFNBQVM7UUFDWixNQUFNLElBQUlDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRUYsUUFBUTtJQUNqRDtJQUVBLGlCQUFpQjtJQUNqQixNQUFNRyxhQUFtQjtRQUN2QkMsTUFBTUMsY0FBY04sUUFBUUM7UUFDNUJNLGFBQWFDLHFCQUFxQlIsUUFBUUM7SUFDNUM7SUFFQSxnQkFBZ0I7SUFDaEIsTUFBTVEsWUFBa0MsQ0FBQztJQUN6QyxLQUFLLE1BQU1DLFFB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
|
package/dist/entity/entity.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { type EntityIndex, type EntityJson, type EntityProp, type EntityPropNode, type EntitySubsetRow, type RelationProp, type SubsetQuery } from "../types/types";
|
|
2
|
+
import { type Cone, type EntityIndex, type EntityJson, type EntityProp, type EntityPropNode, type EntitySubsetRow, type RelationProp, type SubsetQuery } from "../types/types";
|
|
3
3
|
export declare class Entity {
|
|
4
4
|
id: string;
|
|
5
5
|
parentId?: string;
|
|
6
6
|
table: string;
|
|
7
7
|
title: string;
|
|
8
|
+
cone?: Cone;
|
|
8
9
|
names: {
|
|
9
10
|
parentFs: string;
|
|
10
11
|
fs: string;
|
|
@@ -35,7 +36,13 @@ export declare class Entity {
|
|
|
35
36
|
[key: string]: string;
|
|
36
37
|
};
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
+
enumCones: {
|
|
40
|
+
[enumId: string]: Cone;
|
|
41
|
+
};
|
|
42
|
+
subsetCones: {
|
|
43
|
+
[subsetKey: string]: Cone;
|
|
44
|
+
};
|
|
45
|
+
constructor({ id, parentId, table, title, cone, props, indexes, subsets, enums }: EntityJson);
|
|
39
46
|
/**
|
|
40
47
|
* 쿼리용 서브셋 필드를 반환합니다 (subsets + subsetsInternal 합침)
|
|
41
48
|
*/
|
|
@@ -110,6 +117,39 @@ export declare class Entity {
|
|
|
110
117
|
registerTableSpecs(): void;
|
|
111
118
|
toJson(): EntityJson;
|
|
112
119
|
save(): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* 템플릿 cone 메타데이터를 생성합니다.
|
|
122
|
+
*
|
|
123
|
+
* LLM을 사용하지 않고 faker-mappings.ts를 활용하여 기본 cone을 생성합니다.
|
|
124
|
+
* stub entity 생성 시 자동으로 호출되어 최소한의 cone 메타데이터를 제공합니다.
|
|
125
|
+
*
|
|
126
|
+
* @param locale - 생성 시 사용할 locale (기본값: Sonamu.config.i18n.defaultLocale 또는 "ko")
|
|
127
|
+
*/
|
|
128
|
+
generateTemplateCones(locale?: "ko" | "en" | "ja"): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* LLM을 사용하여 cone 메타데이터를 생성합니다.
|
|
131
|
+
*
|
|
132
|
+
* @param options.preserveExisting - 기존 cone 보존 여부 (기본값: true)
|
|
133
|
+
* @param options.onlyEmpty - fixtureHint가 없는 cone만 생성 (기본값: false)
|
|
134
|
+
* @param options.locale - 생성 시 사용할 locale (기본값: "ko")
|
|
135
|
+
*/
|
|
136
|
+
generateCones(options?: {
|
|
137
|
+
preserveExisting?: boolean;
|
|
138
|
+
onlyEmpty?: boolean;
|
|
139
|
+
locale?: "ko" | "en" | "ja";
|
|
140
|
+
}): Promise<import("../cone/cone-generator").ConeGenerationResult>;
|
|
141
|
+
/**
|
|
142
|
+
* 기존 cone들을 수집합니다 (entity, props, enums, subsets).
|
|
143
|
+
*
|
|
144
|
+
* @returns 키가 "entity:id", "prop:name", "enum:enumId", "subset:key" 형식인 cone 맵
|
|
145
|
+
*/
|
|
146
|
+
private collectExistingCones;
|
|
147
|
+
/**
|
|
148
|
+
* 생성된 cone들을 Entity에 적용합니다.
|
|
149
|
+
*
|
|
150
|
+
* @param result - LLM으로 생성된 cone 결과
|
|
151
|
+
*/
|
|
152
|
+
private applyCones;
|
|
113
153
|
getSubsetRows(_subsets?: {
|
|
114
154
|
[key: string]: string[];
|
|
115
155
|
}, _subsetsInternal?: {
|
|
@@ -139,5 +179,10 @@ export declare class Entity {
|
|
|
139
179
|
* length 등 세부 정보에 접근할 때 사용합니다.
|
|
140
180
|
*/
|
|
141
181
|
getPkProp(): EntityProp;
|
|
182
|
+
/**
|
|
183
|
+
* 엔티티의 PK 배열 타입을 반환합니다.
|
|
184
|
+
* LoaderQuery의 fromIds 타입으로 사용됩니다.
|
|
185
|
+
*/
|
|
186
|
+
getPkArrayType(): string;
|
|
142
187
|
}
|
|
143
188
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity/entity.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity/entity.ts"],"names":[],"mappings":"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"}
|