openxiangda-devkit-core 2.0.0-alpha.107 → 2.0.0-alpha.108
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/application-services.d.ts +181 -1
- package/dist/application-services.d.ts.map +1 -1
- package/dist/application-services.js +33 -0
- package/dist/application-services.js.map +1 -1
- package/dist/application-ui-contract.d.ts +5 -0
- package/dist/application-ui-contract.d.ts.map +1 -0
- package/dist/application-ui-contract.js +149 -0
- package/dist/application-ui-contract.js.map +1 -0
- package/dist/command-registry.d.ts +2 -2
- package/dist/command-registry.js +1 -1
- package/dist/command-registry.js.map +1 -1
- package/dist/compiler/application-model.d.ts +60 -0
- package/dist/compiler/application-model.d.ts.map +1 -0
- package/dist/compiler/application-model.js +141 -0
- package/dist/compiler/application-model.js.map +1 -0
- package/dist/compiler/bundle.d.ts.map +1 -1
- package/dist/compiler/bundle.js +19 -9
- package/dist/compiler/bundle.js.map +1 -1
- package/dist/compiler/config.d.ts +19 -5
- package/dist/compiler/config.d.ts.map +1 -1
- package/dist/compiler/config.js +137 -60
- package/dist/compiler/config.js.map +1 -1
- package/dist/compiler/field-surface.js +1 -1
- package/dist/compiler/field-surface.js.map +1 -1
- package/dist/compiler/permission-review.d.ts +139 -0
- package/dist/compiler/permission-review.d.ts.map +1 -0
- package/dist/compiler/permission-review.js +131 -0
- package/dist/compiler/permission-review.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/optional-backend.d.ts +14 -0
- package/dist/optional-backend.d.ts.map +1 -0
- package/dist/optional-backend.js +145 -0
- package/dist/optional-backend.js.map +1 -0
- package/dist/workspace-loader.d.ts.map +1 -1
- package/dist/workspace-loader.js +16 -1
- package/dist/workspace-loader.js.map +1 -1
- package/package.json +3 -2
- package/templates/backend/.turbo/turbo-build.log +4 -0
- package/templates/backend/.turbo/turbo-check.log +4 -0
- package/templates/backend/.turbo/turbo-test.log +13 -0
- package/templates/backend/Dockerfile +20 -0
- package/templates/backend/node_modules/.bin/openxiangda +21 -0
- package/templates/backend/node_modules/.bin/tsc +21 -0
- package/templates/backend/node_modules/.bin/tsserver +21 -0
- package/templates/backend/node_modules/.bin/tsx +21 -0
- package/templates/backend/package.json +27 -0
- package/templates/backend/src/app.module.ts +23 -0
- package/templates/backend/src/main.ts +5 -0
- package/templates/backend/test/smoke.test.ts +17 -0
- package/templates/backend/tsconfig.json +9 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type Diagnostic } from 'openxiangda-contracts';
|
|
2
|
+
import type { AppDataFieldDeclaration, AppDataResourceDeclaration } from './config.js';
|
|
3
|
+
/** Storage and access facts; screen-specific choices belong to views. */
|
|
4
|
+
export type AppModelFieldDeclaration = Omit<AppDataFieldDeclaration, 'widget' | 'section' | 'list' | 'filter' | 'searchable' | 'sortable'>;
|
|
5
|
+
export interface AppDataModelDeclaration {
|
|
6
|
+
code: string;
|
|
7
|
+
name: string;
|
|
8
|
+
fields: readonly AppModelFieldDeclaration[];
|
|
9
|
+
mutationOwner?: AppDataResourceDeclaration['mutationOwner'];
|
|
10
|
+
invariants?: AppDataResourceDeclaration['invariants'];
|
|
11
|
+
dataPolicyCode?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface AppResourceFormDeclaration {
|
|
14
|
+
model: string;
|
|
15
|
+
fields?: readonly string[];
|
|
16
|
+
layout?: 'flat' | 'sections';
|
|
17
|
+
}
|
|
18
|
+
export interface AppResourceListDeclaration {
|
|
19
|
+
model: string;
|
|
20
|
+
fields?: readonly string[];
|
|
21
|
+
filterFields?: readonly string[];
|
|
22
|
+
searchableFields?: readonly string[];
|
|
23
|
+
defaultPageSize?: number;
|
|
24
|
+
defaultSort?: {
|
|
25
|
+
field: string;
|
|
26
|
+
order?: 'asc' | 'desc';
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface AppCrudViewDeclaration {
|
|
30
|
+
model: string;
|
|
31
|
+
/** Omit for the existing default page; named views need a stable code and name. */
|
|
32
|
+
code?: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
/** Shared form/detail grouping; field selection and order remain view-owned. */
|
|
35
|
+
sections?: readonly {
|
|
36
|
+
title: string;
|
|
37
|
+
fields: readonly string[];
|
|
38
|
+
}[];
|
|
39
|
+
list?: AppResourceListDeclaration;
|
|
40
|
+
form?: AppResourceFormDeclaration;
|
|
41
|
+
detail?: AppResourceFormDeclaration;
|
|
42
|
+
generated?: AppDataResourceDeclaration['generated'];
|
|
43
|
+
mobile?: AppDataResourceDeclaration['mobile'];
|
|
44
|
+
}
|
|
45
|
+
export interface AppModuleDeclaration {
|
|
46
|
+
code: string;
|
|
47
|
+
models: readonly AppDataModelDeclaration[];
|
|
48
|
+
/** Only selected models receive standard pages. Navigation remains explicit. */
|
|
49
|
+
crud?: readonly AppCrudViewDeclaration[];
|
|
50
|
+
}
|
|
51
|
+
export declare function defineDataModel<const Model extends AppDataModelDeclaration>(model: Model): Model;
|
|
52
|
+
export declare function defineResourceForm(model: AppDataModelDeclaration, form?: Omit<AppResourceFormDeclaration, 'model'>): AppResourceFormDeclaration;
|
|
53
|
+
export declare function defineResourceList(model: AppDataModelDeclaration, list?: Omit<AppResourceListDeclaration, 'model'>): AppResourceListDeclaration;
|
|
54
|
+
export declare function defineApplicationModule<const Module extends AppModuleDeclaration>(module: Module): Module;
|
|
55
|
+
/** One authoring projection into the platform's existing execution contract. */
|
|
56
|
+
export declare function materializeApplicationModules(modules: readonly AppModuleDeclaration[]): {
|
|
57
|
+
resources: AppDataResourceDeclaration[];
|
|
58
|
+
diagnostics: Diagnostic[];
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=application-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-model.d.ts","sourceRoot":"","sources":["../../src/compiler/application-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB,yEAAyE;AACzE,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,uBAAuB,EACvB,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CACrE,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5C,aAAa,CAAC,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC;IAC5D,UAAU,CAAC,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACtD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnE,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAClC,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAClC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,SAAS,CAAC,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC3C,gFAAgF;IAChF,IAAI,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC1C;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,KAAK,SAAS,uBAAuB,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAEhG;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,EAC9B,IAAI,GAAE,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAM,GACnD,0BAA0B,CAE5B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,EAC9B,IAAI,GAAE,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAM,GACnD,0BAA0B,CAE5B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,MAAM,SAAS,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzG;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE;;;EA2HrF"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { SCHEMA_VERSIONS } from 'openxiangda-contracts';
|
|
2
|
+
export function defineDataModel(model) {
|
|
3
|
+
return Object.freeze(model);
|
|
4
|
+
}
|
|
5
|
+
export function defineResourceForm(model, form = {}) {
|
|
6
|
+
return Object.freeze({ ...form, model: model.code });
|
|
7
|
+
}
|
|
8
|
+
export function defineResourceList(model, list = {}) {
|
|
9
|
+
return Object.freeze({ ...list, model: model.code });
|
|
10
|
+
}
|
|
11
|
+
export function defineApplicationModule(module) {
|
|
12
|
+
return Object.freeze(module);
|
|
13
|
+
}
|
|
14
|
+
/** One authoring projection into the platform's existing execution contract. */
|
|
15
|
+
export function materializeApplicationModules(modules) {
|
|
16
|
+
const diagnostics = [];
|
|
17
|
+
const resources = [];
|
|
18
|
+
const moduleCodes = new Set();
|
|
19
|
+
const issue = (code, message, path) => {
|
|
20
|
+
diagnostics.push({ schemaVersion: SCHEMA_VERSIONS.diagnostic, code, severity: 'error', message, path, retryable: false });
|
|
21
|
+
};
|
|
22
|
+
modules.forEach((module, moduleIndex) => {
|
|
23
|
+
const path = `modules[${moduleIndex}]`;
|
|
24
|
+
if (!module.code || moduleCodes.has(module.code)) {
|
|
25
|
+
issue('APP_MODULE_CODE_INVALID', '模块需要唯一的 code', `${path}.code`);
|
|
26
|
+
}
|
|
27
|
+
moduleCodes.add(module.code);
|
|
28
|
+
const models = new Map(module.models.map(model => [model.code, model]));
|
|
29
|
+
const views = new Map();
|
|
30
|
+
(module.crud || []).forEach((view, viewIndex) => {
|
|
31
|
+
const viewPath = `${path}.crud[${viewIndex}]`;
|
|
32
|
+
const model = models.get(view.model);
|
|
33
|
+
if (!model) {
|
|
34
|
+
issue('APP_CRUD_MODEL_INVALID', '标准 CRUD 必须引用本模块的数据模型', `${viewPath}.model`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const siblings = views.get(view.model) || [];
|
|
38
|
+
if (siblings.some(item => item.code === view.code) ||
|
|
39
|
+
(view.code !== undefined && (!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(view.code) || view.code.length > 64 || !view.name?.trim() || view.name.length > 255)) ||
|
|
40
|
+
siblings.filter(item => item.code !== undefined).length >= 20) {
|
|
41
|
+
issue('APP_VIEW_CODE_INVALID', '视图需要唯一的 code 和名称,每个模型最多 20 个命名视图', `${viewPath}.code`);
|
|
42
|
+
}
|
|
43
|
+
views.set(view.model, [...siblings, view]);
|
|
44
|
+
const fields = new Map(model.fields.map(field => [field.code, field]));
|
|
45
|
+
const validateSelection = (selection, pointer) => {
|
|
46
|
+
if (!selection)
|
|
47
|
+
return;
|
|
48
|
+
const seen = new Set();
|
|
49
|
+
selection.forEach((code, index) => {
|
|
50
|
+
const field = fields.get(code);
|
|
51
|
+
if (!field || seen.has(code) || (field.hidden ?? field.system) === true) {
|
|
52
|
+
issue('APP_VIEW_FIELD_INVALID', '视图字段必须存在、不重复且不是内部隐藏字段', `${pointer}[${index}]`);
|
|
53
|
+
}
|
|
54
|
+
seen.add(code);
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
for (const kind of ['list', 'form', 'detail']) {
|
|
58
|
+
const definition = view[kind];
|
|
59
|
+
if (definition && definition.model !== model.code) {
|
|
60
|
+
issue('APP_VIEW_MODEL_MISMATCH', '列表/表单必须绑定当前 CRUD 的数据模型', `${viewPath}.${kind}.model`);
|
|
61
|
+
}
|
|
62
|
+
validateSelection(definition?.fields, `${viewPath}.${kind}.fields`);
|
|
63
|
+
}
|
|
64
|
+
validateSelection(view.list?.filterFields, `${viewPath}.list.filterFields`);
|
|
65
|
+
validateSelection(view.list?.searchableFields, `${viewPath}.list.searchableFields`);
|
|
66
|
+
if (view.list?.defaultSort)
|
|
67
|
+
validateSelection([view.list.defaultSort.field], `${viewPath}.list.defaultSort.field`);
|
|
68
|
+
validateSelection(view.sections?.flatMap(section => [...section.fields]), `${viewPath}.sections.fields`);
|
|
69
|
+
if (view.sections?.some(section => !section.title.trim() || section.title.length > 255)) {
|
|
70
|
+
issue('APP_VIEW_SECTION_INVALID', '分组标题不能为空或超过 255 个字符', `${viewPath}.sections`);
|
|
71
|
+
}
|
|
72
|
+
const create = view.generated?.create ?? (!model.mutationOwner || model.mutationOwner === 'native');
|
|
73
|
+
if (view.code !== undefined && create && view.form?.fields) {
|
|
74
|
+
const missing = model.fields.filter(field => field.required && !field.system && field.type !== 'serial-number' && field.access?.create !== false && !view.form.fields.includes(field.code));
|
|
75
|
+
if (missing.length)
|
|
76
|
+
issue('APP_VIEW_CREATE_REQUIRED_FIELD_MISSING', `新建视图缺少必填字段:${missing.map(field => field.code).join('、')};请补齐字段或关闭 create`, `${viewPath}.form.fields`);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
module.models.forEach(model => {
|
|
80
|
+
const selected = views.get(model.code) || [];
|
|
81
|
+
const view = selected.find(item => item.code === undefined);
|
|
82
|
+
const publicFields = model.fields.filter(field => (field.hidden ?? field.system) !== true);
|
|
83
|
+
const listFields = view?.list?.fields || publicFields.slice(0, 8).map(field => field.code);
|
|
84
|
+
const formFields = view?.form?.fields || publicFields.filter(field => !field.system).map(field => field.code);
|
|
85
|
+
const detailFields = view?.detail?.fields || publicFields.map(field => field.code);
|
|
86
|
+
const native = !model.mutationOwner || model.mutationOwner === 'native';
|
|
87
|
+
const sections = new Map(view?.sections?.flatMap(section => section.fields.map(code => [code, section.title.trim()])));
|
|
88
|
+
resources.push({
|
|
89
|
+
code: model.code,
|
|
90
|
+
name: model.name,
|
|
91
|
+
...(selected.some(item => item.code !== undefined) ? { views: selected.filter(item => item.code !== undefined).map(item => {
|
|
92
|
+
const groups = item.sections?.map(section => ({ title: section.title.trim(), fields: [...section.fields] }));
|
|
93
|
+
return {
|
|
94
|
+
code: item.code, name: item.name?.trim() || item.code,
|
|
95
|
+
generated: { list: true, detail: true, create: native, update: native, delete: native, ...item.generated },
|
|
96
|
+
list: { fieldOrder: [...(item.list?.fields || publicFields.slice(0, 8).map(field => field.code))],
|
|
97
|
+
defaultPageSize: item.list?.defaultPageSize || 20,
|
|
98
|
+
searchableFields: [...(item.list?.searchableFields || [])], filterFields: [...(item.list?.filterFields || [])],
|
|
99
|
+
...(item.list?.defaultSort ? { defaultSort: item.list.defaultSort } : {}) },
|
|
100
|
+
form: { layout: item.form?.layout || (groups?.length ? 'sections' : 'flat'),
|
|
101
|
+
fieldOrder: [...(item.form?.fields || publicFields.filter(field => !field.system).map(field => field.code))] },
|
|
102
|
+
detail: { layout: item.detail?.layout || (groups?.length ? 'sections' : 'flat'),
|
|
103
|
+
fieldOrder: [...(item.detail?.fields || publicFields.map(field => field.code))] },
|
|
104
|
+
mobile: { enabled: item.mobile?.enabled ?? true }, ...(groups?.length ? { sections: groups } : {}),
|
|
105
|
+
};
|
|
106
|
+
}) } : {}),
|
|
107
|
+
...(model.mutationOwner ? { mutationOwner: model.mutationOwner } : {}),
|
|
108
|
+
...(model.invariants ? { invariants: model.invariants } : {}),
|
|
109
|
+
...(model.dataPolicyCode ? { dataPolicyCode: model.dataPolicyCode } : {}),
|
|
110
|
+
generated: {
|
|
111
|
+
list: Boolean(view), detail: Boolean(view),
|
|
112
|
+
create: Boolean(view) && native, update: Boolean(view) && native,
|
|
113
|
+
delete: Boolean(view) && native, ...view?.generated,
|
|
114
|
+
},
|
|
115
|
+
fields: model.fields.map(field => {
|
|
116
|
+
const section = sections.get(field.code);
|
|
117
|
+
return {
|
|
118
|
+
...field,
|
|
119
|
+
...(section ? { section } : {}),
|
|
120
|
+
// Display filters never silently turn every column into an index.
|
|
121
|
+
indexed: field.indexed ?? false,
|
|
122
|
+
list: Boolean(view) && listFields.includes(field.code),
|
|
123
|
+
filter: selected.some(item => item.list?.filterFields?.includes(field.code)),
|
|
124
|
+
searchable: selected.some(item => item.list?.searchableFields?.includes(field.code)),
|
|
125
|
+
sortable: selected.some(item => item.list?.defaultSort?.field === field.code),
|
|
126
|
+
};
|
|
127
|
+
}),
|
|
128
|
+
list: {
|
|
129
|
+
fields: view ? [...listFields] : [],
|
|
130
|
+
...(view?.list?.defaultPageSize ? { defaultPageSize: view.list.defaultPageSize } : {}),
|
|
131
|
+
...(view?.list?.defaultSort ? { defaultSort: view.list.defaultSort } : {}),
|
|
132
|
+
},
|
|
133
|
+
form: { layout: view?.form?.layout || (sections.size ? 'sections' : 'flat'), fields: [...formFields] },
|
|
134
|
+
detail: { layout: view?.detail?.layout || (sections.size ? 'sections' : 'flat'), fields: [...detailFields] },
|
|
135
|
+
mobile: view?.mobile || { enabled: Boolean(view) },
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
return { resources, diagnostics };
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=application-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-model.js","sourceRoot":"","sources":["../../src/compiler/application-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/compiler/bundle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/compiler/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,EAiBL,KAAK,WAAW,EAWhB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EAMtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAoBrB,eAAO,MAAM,oBAAoB,gCAAsC,CAAC;AACxE,eAAO,MAAM,sBAAsB,kCAAiC,CAAC;AACrE,eAAO,MAAM,yBAAyB,YACC,CAAC;AAExC,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IACpD,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAAG;QAClD,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,mBAAmB,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,mDAAmD,CAAC;KAChE,CAAC;CACH;AA8CD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,gBAAgB,SAA4B,GAC3C,0BAA0B,CAuD5B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,GAC3B,qBAAqB,CAsevB;AA8DD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,SAA4B,GAC3C,gBAAgB,CAQlB;AA4dD,eAAO,MAAM,oCAAoC;;;;EAIN,CAAC;AA+tB5C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,mBAAgC,UAqOzC;AA6LD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,UAEvD"}
|
package/dist/compiler/bundle.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { projectDataResourceView } from 'openxiangda-contracts';
|
|
1
2
|
import { createHash } from 'node:crypto';
|
|
2
3
|
import { canonicalJson, applicationEventHandlerPathV2, DATA_EVENT_TYPES_V2, nativePlatformCapabilityCatalog, OPENXIANGDA_COMPILER_CONTRACT_VERSION, SCHEMA_VERSIONS, WORKFLOW_EVENT_TYPES_V2, sha256Digest, } from 'openxiangda-contracts';
|
|
3
4
|
import { AppConfigValidationError, } from './config.js';
|
|
@@ -837,8 +838,8 @@ function compileWorkflowLaunchContract(config, launch) {
|
|
|
837
838
|
},
|
|
838
839
|
};
|
|
839
840
|
}
|
|
840
|
-
function generatedAdminResourcePath(resourceCode, operation) {
|
|
841
|
-
const base = `/admin/resources/${resourceCode}`;
|
|
841
|
+
function generatedAdminResourcePath(resourceCode, operation, viewCode) {
|
|
842
|
+
const base = `/admin/resources/${resourceCode}${viewCode ? `/views/${viewCode}` : ""}`;
|
|
842
843
|
if (operation === 'list')
|
|
843
844
|
return base;
|
|
844
845
|
if (operation === 'create')
|
|
@@ -849,13 +850,18 @@ function generatedAdminResourcePath(resourceCode, operation) {
|
|
|
849
850
|
}
|
|
850
851
|
function compileAdminPages(config) {
|
|
851
852
|
const pages = [];
|
|
852
|
-
for (const
|
|
853
|
+
for (const selection of sorted(config.data?.resources || [], item => item.code).flatMap(resource => [
|
|
854
|
+
{ resource, viewCode: undefined },
|
|
855
|
+
...(resource.surface?.views || []).map(view => ({ viewCode: view.code,
|
|
856
|
+
resource: { ...resource, name: view.name, surface: projectDataResourceView(resource.surface, view.code) } })),
|
|
857
|
+
])) {
|
|
858
|
+
const { resource, viewCode } = selection;
|
|
853
859
|
const generated = generatedResourceOperations(resource);
|
|
854
860
|
const candidates = [
|
|
855
861
|
{
|
|
856
862
|
operation: 'list',
|
|
857
863
|
kind: 'resource-list',
|
|
858
|
-
path: generatedAdminResourcePath(resource.code, 'list'),
|
|
864
|
+
path: generatedAdminResourcePath(resource.code, 'list', viewCode),
|
|
859
865
|
label: resource.name,
|
|
860
866
|
capability: resource.capabilities.read,
|
|
861
867
|
navigationEligible: true,
|
|
@@ -863,7 +869,7 @@ function compileAdminPages(config) {
|
|
|
863
869
|
{
|
|
864
870
|
operation: 'detail',
|
|
865
871
|
kind: 'resource-detail',
|
|
866
|
-
path: generatedAdminResourcePath(resource.code, 'detail'),
|
|
872
|
+
path: generatedAdminResourcePath(resource.code, 'detail', viewCode),
|
|
867
873
|
label: `${resource.name}详情`,
|
|
868
874
|
capability: resource.capabilities.read,
|
|
869
875
|
navigationEligible: false,
|
|
@@ -871,7 +877,7 @@ function compileAdminPages(config) {
|
|
|
871
877
|
{
|
|
872
878
|
operation: 'create',
|
|
873
879
|
kind: 'resource-create',
|
|
874
|
-
path: generatedAdminResourcePath(resource.code, 'create'),
|
|
880
|
+
path: generatedAdminResourcePath(resource.code, 'create', viewCode),
|
|
875
881
|
label: `新增${resource.name}`,
|
|
876
882
|
capability: resource.capabilities.create,
|
|
877
883
|
navigationEligible: false,
|
|
@@ -879,7 +885,7 @@ function compileAdminPages(config) {
|
|
|
879
885
|
{
|
|
880
886
|
operation: 'update',
|
|
881
887
|
kind: 'resource-update',
|
|
882
|
-
path: generatedAdminResourcePath(resource.code, 'update'),
|
|
888
|
+
path: generatedAdminResourcePath(resource.code, 'update', viewCode),
|
|
883
889
|
label: `编辑${resource.name}`,
|
|
884
890
|
capability: resource.capabilities.update,
|
|
885
891
|
navigationEligible: false,
|
|
@@ -889,13 +895,14 @@ function compileAdminPages(config) {
|
|
|
889
895
|
if (!generated[candidate.operation])
|
|
890
896
|
continue;
|
|
891
897
|
pages.push({
|
|
892
|
-
code: `resource:${resource.code}:${candidate.operation}`,
|
|
898
|
+
code: `resource:${resource.code}${viewCode ? `:view:${viewCode}` : ""}:${candidate.operation}`,
|
|
893
899
|
kind: candidate.kind,
|
|
894
900
|
path: candidate.path,
|
|
895
901
|
label: candidate.label,
|
|
896
902
|
navigationEligible: candidate.navigationEligible,
|
|
897
903
|
capability: candidate.capability,
|
|
898
904
|
resourceCode: resource.code,
|
|
905
|
+
...(viewCode ? { viewCode } : {}),
|
|
899
906
|
});
|
|
900
907
|
}
|
|
901
908
|
}
|
|
@@ -1045,7 +1052,7 @@ function validManifestStaticPath(path) {
|
|
|
1045
1052
|
}
|
|
1046
1053
|
function pageCodeForReference(reference) {
|
|
1047
1054
|
if (reference.kind === 'resource')
|
|
1048
|
-
return `resource:${reference.resourceCode}:list`;
|
|
1055
|
+
return `resource:${reference.resourceCode}${reference.viewCode ? `:view:${reference.viewCode}` : ""}:list`;
|
|
1049
1056
|
return `operation:${reference.routeCode}`;
|
|
1050
1057
|
}
|
|
1051
1058
|
function compileAdminNavigation(config) {
|
|
@@ -1692,6 +1699,7 @@ function normalizeResourceSurface(surface) {
|
|
|
1692
1699
|
? { requiredHint: field.requiredHint }
|
|
1693
1700
|
: {}),
|
|
1694
1701
|
...(field.system !== undefined ? { system: field.system } : {}),
|
|
1702
|
+
...(field.hidden !== undefined ? { hidden: field.hidden } : {}),
|
|
1695
1703
|
readCapabilities: uniqueSorted(field.readCapabilities),
|
|
1696
1704
|
createCapabilities: uniqueSorted(field.createCapabilities),
|
|
1697
1705
|
updateCapabilities: uniqueSorted(field.updateCapabilities),
|
|
@@ -1723,6 +1731,7 @@ function normalizeResourceSurface(surface) {
|
|
|
1723
1731
|
},
|
|
1724
1732
|
]));
|
|
1725
1733
|
return {
|
|
1734
|
+
...(surface.views?.length ? { views: sorted(surface.views, view => view.code) } : {}),
|
|
1726
1735
|
...(surface.mutationOwner !== undefined
|
|
1727
1736
|
? { mutationOwner: surface.mutationOwner }
|
|
1728
1737
|
: {}),
|
|
@@ -1733,6 +1742,7 @@ function normalizeResourceSurface(surface) {
|
|
|
1733
1742
|
...(surface.list
|
|
1734
1743
|
? {
|
|
1735
1744
|
list: {
|
|
1745
|
+
...(surface.list.fieldOrder ? { fieldOrder: [...surface.list.fieldOrder] } : {}),
|
|
1736
1746
|
...(surface.list.defaultPageSize !== undefined
|
|
1737
1747
|
? { defaultPageSize: surface.list.defaultPageSize }
|
|
1738
1748
|
: {}),
|