mcp-vue-codegen 1.0.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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +82 -0
  3. package/build/generators/api.d.ts +3 -0
  4. package/build/generators/api.d.ts.map +1 -0
  5. package/build/generators/api.js +8 -0
  6. package/build/generators/api.js.map +1 -0
  7. package/build/generators/form-vue.d.ts +3 -0
  8. package/build/generators/form-vue.d.ts.map +1 -0
  9. package/build/generators/form-vue.js +8 -0
  10. package/build/generators/form-vue.js.map +1 -0
  11. package/build/generators/index-vue.d.ts +3 -0
  12. package/build/generators/index-vue.d.ts.map +1 -0
  13. package/build/generators/index-vue.js +8 -0
  14. package/build/generators/index-vue.js.map +1 -0
  15. package/build/generators/options.d.ts +3 -0
  16. package/build/generators/options.d.ts.map +1 -0
  17. package/build/generators/options.js +8 -0
  18. package/build/generators/options.js.map +1 -0
  19. package/build/index.d.ts +3 -0
  20. package/build/index.d.ts.map +1 -0
  21. package/build/index.js +74 -0
  22. package/build/index.js.map +1 -0
  23. package/build/templates/api.tpl.d.ts +3 -0
  24. package/build/templates/api.tpl.d.ts.map +1 -0
  25. package/build/templates/api.tpl.js +53 -0
  26. package/build/templates/api.tpl.js.map +1 -0
  27. package/build/templates/form-vue.tpl.d.ts +3 -0
  28. package/build/templates/form-vue.tpl.d.ts.map +1 -0
  29. package/build/templates/form-vue.tpl.js +862 -0
  30. package/build/templates/form-vue.tpl.js.map +1 -0
  31. package/build/templates/index-vue.tpl.d.ts +3 -0
  32. package/build/templates/index-vue.tpl.d.ts.map +1 -0
  33. package/build/templates/index-vue.tpl.js +591 -0
  34. package/build/templates/index-vue.tpl.js.map +1 -0
  35. package/build/templates/options.tpl.d.ts +3 -0
  36. package/build/templates/options.tpl.d.ts.map +1 -0
  37. package/build/templates/options.tpl.js +48 -0
  38. package/build/templates/options.tpl.js.map +1 -0
  39. package/build/tools/generate.d.ts +11 -0
  40. package/build/tools/generate.d.ts.map +1 -0
  41. package/build/tools/generate.js +95 -0
  42. package/build/tools/generate.js.map +1 -0
  43. package/build/tools/validate.d.ts +1051 -0
  44. package/build/tools/validate.d.ts.map +1 -0
  45. package/build/tools/validate.js +147 -0
  46. package/build/tools/validate.js.map +1 -0
  47. package/build/types/schema.d.ts +124 -0
  48. package/build/types/schema.d.ts.map +1 -0
  49. package/build/types/schema.js +7 -0
  50. package/build/types/schema.js.map +1 -0
  51. package/package.json +34 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA8HjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAkBjE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAG3D"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableSchemaZod = void 0;
4
+ exports.validateSchema = validateSchema;
5
+ exports.parseSchema = parseSchema;
6
+ const zod_1 = require("zod");
7
+ // Zod schema for ExtraMapping
8
+ const ExtraMappingSchema = zod_1.z.object({
9
+ source: zod_1.z.string(),
10
+ target: zod_1.z.string(),
11
+ });
12
+ // Zod schema for RefConfig
13
+ const RefConfigSchema = zod_1.z.object({
14
+ refComponent: zod_1.z.string(),
15
+ refTitle: zod_1.z.string(),
16
+ idField: zod_1.z.string(),
17
+ nameField: zod_1.z.string(),
18
+ rootId: zod_1.z.string().optional(),
19
+ containParentFlag: zod_1.z.string().optional(),
20
+ extraMappings: zod_1.z.array(ExtraMappingSchema),
21
+ });
22
+ // Zod schema for FieldDef
23
+ const FieldDefSchema = zod_1.z.object({
24
+ columnName: zod_1.z.string(),
25
+ fieldName: zod_1.z.string(),
26
+ label: zod_1.z.string(),
27
+ dataType: zod_1.z.string(),
28
+ inputType: zod_1.z.string(),
29
+ required: zod_1.z.boolean(),
30
+ showInTable: zod_1.z.boolean(),
31
+ alwaysHide: zod_1.z.boolean(),
32
+ showInForm: zod_1.z.boolean().optional(),
33
+ smartSearch: zod_1.z.boolean(),
34
+ tableWidth: zod_1.z.string(),
35
+ formColSpan: zod_1.z.number().optional(),
36
+ disabled: zod_1.z.boolean().optional(),
37
+ maxLength: zod_1.z.number().optional(),
38
+ textareaRows: zod_1.z.number().optional(),
39
+ showWordLimit: zod_1.z.boolean().optional(),
40
+ formSection: zod_1.z.string().optional(),
41
+ formRow: zod_1.z.number().optional(),
42
+ isSystemField: zod_1.z.boolean().optional(),
43
+ isPrimaryKey: zod_1.z.boolean().optional(),
44
+ isForeignKey: zod_1.z.boolean().optional(),
45
+ defaultValue: zod_1.z.string().optional(),
46
+ dictCode: zod_1.z.string().optional(),
47
+ needFormatter: zod_1.z.boolean().optional(),
48
+ dateFormat: zod_1.z.string().optional(),
49
+ isTimeQueryField: zod_1.z.boolean().optional(),
50
+ refConfig: RefConfigSchema.optional(),
51
+ editableInTable: zod_1.z.boolean().optional(),
52
+ editInputType: zod_1.z.string().optional(),
53
+ editBindField: zod_1.z.string().optional(),
54
+ editRuleProp: zod_1.z.string().optional(),
55
+ });
56
+ // Zod schema for FormSection
57
+ const FormSectionSchema = zod_1.z.object({
58
+ name: zod_1.z.string(),
59
+ collapseIndex: zod_1.z.string(),
60
+ title: zod_1.z.string(),
61
+ });
62
+ // Zod schema for DetailRefMapping
63
+ const DetailRefMappingSchema = zod_1.z.object({
64
+ source: zod_1.z.string(),
65
+ target: zod_1.z.string(),
66
+ });
67
+ // Zod schema for DetailRefConfig
68
+ const DetailRefConfigSchema = zod_1.z.object({
69
+ component: zod_1.z.string(),
70
+ componentPath: zod_1.z.string(),
71
+ idMapping: DetailRefMappingSchema,
72
+ nameMapping: DetailRefMappingSchema,
73
+ codeMapping: DetailRefMappingSchema.optional(),
74
+ extraMappings: zod_1.z.array(DetailRefMappingSchema),
75
+ });
76
+ // Zod schema for DetailValidateConfig
77
+ const DetailValidateConfigSchema = zod_1.z.object({
78
+ rowNameType: zod_1.z.string(),
79
+ rowName: zod_1.z.string(),
80
+ });
81
+ // Zod schema for ModuleConfig
82
+ const ModuleConfigSchema = zod_1.z.object({
83
+ moduleName: zod_1.z.string(),
84
+ businessName: zod_1.z.string(),
85
+ entityName: zod_1.z.string(),
86
+ componentName: zod_1.z.string(),
87
+ apiBasePath: zod_1.z.string(),
88
+ apiFilePath: zod_1.z.string(),
89
+ permissionPrefix: zod_1.z.string(),
90
+ processDefKey: zod_1.z.string().optional(),
91
+ hasWorkflow: zod_1.z.boolean(),
92
+ hasExport: zod_1.z.boolean(),
93
+ exportUrl: zod_1.z.string().optional(),
94
+ hasPrint: zod_1.z.boolean(),
95
+ printFileNameField: zod_1.z.string().optional(),
96
+ labelWidth: zod_1.z.string(),
97
+ });
98
+ // Zod schema for MasterConfig
99
+ const MasterConfigSchema = zod_1.z.object({
100
+ tableName: zod_1.z.string(),
101
+ collapseTitle: zod_1.z.string(),
102
+ createInfoTitle: zod_1.z.string(),
103
+ formSections: zod_1.z.array(FormSectionSchema),
104
+ filterTypes: zod_1.z.record(zod_1.z.number()),
105
+ fields: zod_1.z.array(FieldDefSchema),
106
+ });
107
+ // Zod schema for DetailConfig
108
+ const DetailConfigSchema = zod_1.z.object({
109
+ tableName: zod_1.z.string(),
110
+ detailTitle: zod_1.z.string(),
111
+ detailCollapseTitle: zod_1.z.string(),
112
+ detailFkField: zod_1.z.string(),
113
+ detailRowKey: zod_1.z.string(),
114
+ detailListName: zod_1.z.string(),
115
+ detailRefType: zod_1.z.string(),
116
+ detailRefConfig: DetailRefConfigSchema,
117
+ detailValidateConfig: DetailValidateConfigSchema,
118
+ fields: zod_1.z.array(FieldDefSchema),
119
+ });
120
+ // Complete TableSchema
121
+ exports.TableSchemaZod = zod_1.z.object({
122
+ module: ModuleConfigSchema,
123
+ master: MasterConfigSchema,
124
+ detail: DetailConfigSchema.optional(),
125
+ });
126
+ function validateSchema(schemaJson) {
127
+ try {
128
+ const parsed = JSON.parse(schemaJson);
129
+ const result = exports.TableSchemaZod.safeParse(parsed);
130
+ if (result.success) {
131
+ return { valid: true, errors: [] };
132
+ }
133
+ const errors = result.error.issues.map(issue => {
134
+ const path = issue.path.join('.');
135
+ return `[${path}] ${issue.message}`;
136
+ });
137
+ return { valid: false, errors };
138
+ }
139
+ catch (e) {
140
+ return { valid: false, errors: [`JSON 解析失败: ${e.message}`] };
141
+ }
142
+ }
143
+ function parseSchema(schemaJson) {
144
+ const parsed = JSON.parse(schemaJson);
145
+ return exports.TableSchemaZod.parse(parsed);
146
+ }
147
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * JSON 文档的 TypeScript 类型定义
3
+ * 定义了数据库表字段 JSON 文档的完整接口
4
+ */
5
+ /** 弹窗选择器的字段映射 */
6
+ export interface ExtraMapping {
7
+ source: string;
8
+ target: string;
9
+ }
10
+ /** 弹窗选择器配置 */
11
+ export interface RefConfig {
12
+ refComponent: string;
13
+ refTitle: string;
14
+ idField: string;
15
+ nameField: string;
16
+ rootId?: string;
17
+ containParentFlag?: string;
18
+ extraMappings: ExtraMapping[];
19
+ }
20
+ /** 字段定义 */
21
+ export interface FieldDef {
22
+ columnName: string;
23
+ fieldName: string;
24
+ label: string;
25
+ dataType: string;
26
+ inputType: string;
27
+ required: boolean;
28
+ showInTable: boolean;
29
+ alwaysHide: boolean;
30
+ showInForm?: boolean;
31
+ smartSearch: boolean;
32
+ tableWidth: string;
33
+ formColSpan?: number;
34
+ disabled?: boolean;
35
+ maxLength?: number;
36
+ textareaRows?: number;
37
+ showWordLimit?: boolean;
38
+ formSection?: string;
39
+ formRow?: number;
40
+ isSystemField?: boolean;
41
+ isPrimaryKey?: boolean;
42
+ isForeignKey?: boolean;
43
+ defaultValue?: string;
44
+ dictCode?: string;
45
+ needFormatter?: boolean;
46
+ dateFormat?: string;
47
+ isTimeQueryField?: boolean;
48
+ refConfig?: RefConfig;
49
+ editableInTable?: boolean;
50
+ editInputType?: string;
51
+ editBindField?: string;
52
+ editRuleProp?: string;
53
+ }
54
+ /** 表单分区配置 */
55
+ export interface FormSection {
56
+ name: string;
57
+ collapseIndex: string;
58
+ title: string;
59
+ }
60
+ /** 从表弹窗选择器的映射配置 */
61
+ export interface DetailRefMapping {
62
+ source: string;
63
+ target: string;
64
+ }
65
+ /** 从表弹窗选择器配置 */
66
+ export interface DetailRefConfig {
67
+ component: string;
68
+ componentPath: string;
69
+ idMapping: DetailRefMapping;
70
+ nameMapping: DetailRefMapping;
71
+ codeMapping?: DetailRefMapping;
72
+ extraMappings: DetailRefMapping[];
73
+ }
74
+ /** 从表校验配置 */
75
+ export interface DetailValidateConfig {
76
+ rowNameType: string;
77
+ rowName: string;
78
+ }
79
+ /** 模块配置 */
80
+ export interface ModuleConfig {
81
+ moduleName: string;
82
+ businessName: string;
83
+ entityName: string;
84
+ componentName: string;
85
+ apiBasePath: string;
86
+ apiFilePath: string;
87
+ permissionPrefix: string;
88
+ processDefKey?: string;
89
+ hasWorkflow: boolean;
90
+ hasExport: boolean;
91
+ exportUrl?: string;
92
+ hasPrint: boolean;
93
+ printFileNameField?: string;
94
+ labelWidth: string;
95
+ }
96
+ /** 主表配置 */
97
+ export interface MasterConfig {
98
+ tableName: string;
99
+ collapseTitle: string;
100
+ createInfoTitle: string;
101
+ formSections: FormSection[];
102
+ filterTypes: Record<string, number>;
103
+ fields: FieldDef[];
104
+ }
105
+ /** 从表配置 */
106
+ export interface DetailConfig {
107
+ tableName: string;
108
+ detailTitle: string;
109
+ detailCollapseTitle: string;
110
+ detailFkField: string;
111
+ detailRowKey: string;
112
+ detailListName: string;
113
+ detailRefType: string;
114
+ detailRefConfig: DetailRefConfig;
115
+ detailValidateConfig: DetailValidateConfig;
116
+ fields: FieldDef[];
117
+ }
118
+ /** 完整 JSON 文档 schema */
119
+ export interface TableSchema {
120
+ module: ModuleConfig;
121
+ master: MasterConfig;
122
+ detail?: DetailConfig;
123
+ }
124
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * JSON 文档的 TypeScript 类型定义
4
+ * 定义了数据库表字段 JSON 文档的完整接口
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "mcp-vue-codegen",
3
+ "version": "1.0.0",
4
+ "description": "MCP Server for generating Vue3 CRUD module code from database table schema JSON",
5
+ "author": "anshu",
6
+ "main": "build/index.js",
7
+ "bin": {
8
+ "mcp-vue-codegen": "build/index.js"
9
+ },
10
+ "files": [
11
+ "build",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "start": "node build/index.js",
18
+ "dev": "tsc --watch",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "keywords": ["mcp", "vue3", "codegen", "crud"],
22
+ "license": "MIT",
23
+ "engines": {
24
+ "node": ">=18"
25
+ },
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^1.12.1",
28
+ "zod": "^3.25.67"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "^22.15.21",
32
+ "typescript": "^5.8.3"
33
+ }
34
+ }