@ddd-tool/domain-designer-cli 0.0.0-alpha.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 (31) hide show
  1. package/LICENSE +201 -0
  2. package/bin/domain-designer-cli.cjs +161 -0
  3. package/bin/domain-designer-cli.cjs.map +7 -0
  4. package/index.html +13 -0
  5. package/package.json +57 -0
  6. package/src/App.vue +12 -0
  7. package/src/assets/logo.svg +1 -0
  8. package/src/assets/main.css +8 -0
  9. package/src/main.ts +27 -0
  10. package/src/views/Index.vue +16 -0
  11. package/src/views/design-en.ts +112 -0
  12. package/src/views/design-zh.ts +101 -0
  13. package/src/views/index.ts +7 -0
  14. package/templates/node_modules/@ddd-tool/domain-designer-core/actor.d.ts +2 -0
  15. package/templates/node_modules/@ddd-tool/domain-designer-core/agg.d.ts +2 -0
  16. package/templates/node_modules/@ddd-tool/domain-designer-core/command.d.ts +3 -0
  17. package/templates/node_modules/@ddd-tool/domain-designer-core/common.d.ts +201 -0
  18. package/templates/node_modules/@ddd-tool/domain-designer-core/define.d.ts +172 -0
  19. package/templates/node_modules/@ddd-tool/domain-designer-core/desc.d.ts +2 -0
  20. package/templates/node_modules/@ddd-tool/domain-designer-core/event.d.ts +2 -0
  21. package/templates/node_modules/@ddd-tool/domain-designer-core/index.d.ts +203 -0
  22. package/templates/node_modules/@ddd-tool/domain-designer-core/info/field.d.ts +2 -0
  23. package/templates/node_modules/@ddd-tool/domain-designer-core/info/index.d.ts +3 -0
  24. package/templates/node_modules/@ddd-tool/domain-designer-core/policy.d.ts +2 -0
  25. package/templates/node_modules/@ddd-tool/domain-designer-core/read-model.d.ts +2 -0
  26. package/templates/node_modules/@ddd-tool/domain-designer-core/service.d.ts +2 -0
  27. package/templates/node_modules/@ddd-tool/domain-designer-core/system.d.ts +2 -0
  28. package/templates/runWeb.bat +1 -0
  29. package/templates//347/244/272/344/276/213.ts +31 -0
  30. package/tsconfig.json +30 -0
  31. package/vite.config.ts +19 -0
@@ -0,0 +1,172 @@
1
+ export interface DomainDesignDescProvider {
2
+ (temp: undefined): undefined;
3
+ (temp: string): DomainDesignDesc;
4
+ (temp: DomainDesignDesc): DomainDesignDesc;
5
+ (temp: TemplateStringsArray, ...values: DomainDesignDescValue[]): DomainDesignDesc;
6
+ }
7
+ export type DomainDesignDesc = Readonly<{
8
+ readonly _attributes: {
9
+ rule: 'Desc';
10
+ readonly template: TemplateStringsArray;
11
+ readonly values: DomainDesignDescValue[];
12
+ };
13
+ }>;
14
+ export type DomainDesignDescValue = DomainDesignInfo<any, any> | DomainDesignCommand<any> | DomainDesignFacadeCommand<any> | DomainDesignEvent<any> | DomainDesignAgg<any> | DomainDesignActor | DomainDesignSystem | DomainDesignPolicy | DomainDesignService;
15
+ export type DomainDesignInfoProvider = () => {
16
+ any: <NAME extends string>(name: NAME, desc?: string | DomainDesignDesc) => DomainDesignInfo<'Any', NAME>;
17
+ entity: <NAME extends string, ARR extends Array<DomainDesignInfo<DomainDesignInfoType, string> | string>>(name: NAME, infos?: ARR, desc?: string | DomainDesignDesc) => DomainDesignInfo<'Entity', NAME>;
18
+ func: <NAME extends string>(name: NAME, dependsOn: NonEmptyArray<DomainDesignInfoFuncDependsOn | string>, desc?: string | DomainDesignDesc) => DomainDesignInfo<'Function', NAME>;
19
+ field: DomainDesignInfoFieldProvider;
20
+ };
21
+ export type DomainDesignInfoType = 'Field' | 'Entity' | 'Function' | 'Any';
22
+ export type DomainDesignInfoSubtype<TYPE extends DomainDesignInfoType> = TYPE extends 'Field' ? 'Id' | 'Time' | 'Enum' | 'Number' | 'String' | 'Boolean' | 'Any' : TYPE extends 'Document' ? 'None' : TYPE extends 'Function' ? DomainDesignInfoFuncDependsOn[] : TYPE extends 'Entity' ? DomainDesignInfo<DomainDesignInfoType, string>[] : TYPE extends 'Any' ? 'None' : never;
23
+ export type DomainDesignInfo<TYPE extends DomainDesignInfoType, NAME extends string> = Readonly<{
24
+ _attributes: {
25
+ __code: string;
26
+ rule: 'Info';
27
+ type: TYPE;
28
+ subtype: DomainDesignInfoSubtype<TYPE>;
29
+ name: NAME;
30
+ description?: DomainDesignDesc;
31
+ };
32
+ }>;
33
+ export type DomainDesignInfoFuncDependsOn = DomainDesignInfo<Exclude<DomainDesignInfoType, 'Function'>, string>;
34
+ export type DomainDesignInfoObject = NonEmptyObject<Record<string, DomainDesignInfo<DomainDesignInfoType, string>>>;
35
+ export type CustomInfoArrayToInfoObject<ARR extends Array<DomainDesignInfo<any, any> | string>> = {
36
+ [K in ARR[number] as K extends DomainDesignInfo<any, infer U> ? U : K extends string ? K : never]: K extends DomainDesignInfo<any, any> ? K : K extends string ? DomainDesignInfo<'Any', K> : never;
37
+ };
38
+ export interface DomainDesignInfoFieldProvider {
39
+ any<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
40
+ id<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
41
+ time<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
42
+ enum<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
43
+ num<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
44
+ str<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
45
+ bool<NAME extends string>(name: NAME, desc?: string | DomainDesignDesc): DomainDesignInfo<'Field', NAME>;
46
+ }
47
+ export type DomainDesignActorProvider = (name: string, desc?: string | DomainDesignDesc) => DomainDesignActor;
48
+ export type DomainDesignActor = Readonly<{
49
+ readonly _attributes: {
50
+ __code: string;
51
+ rule: 'Actor';
52
+ name: string;
53
+ description?: DomainDesignDesc;
54
+ };
55
+ command<COMMAND extends DomainDesignCommand<any>>(command: COMMAND): COMMAND;
56
+ command<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignCommand<CustomInfoArrayToInfoObject<ARR>>;
57
+ facadeCmd<FACADECMD extends DomainDesignFacadeCommand<any>>(command: FACADECMD): FACADECMD;
58
+ facadeCmd<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignFacadeCommand<CustomInfoArrayToInfoObject<ARR>>;
59
+ readModel<READ_MODEL extends DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
60
+ readModel<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>): DomainDesignReadModel<CustomInfoArrayToInfoObject<ARR>>;
61
+ }>;
62
+ export type DomainDesignCommandProvider = <G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>, desc?: string | DomainDesignDesc) => DomainDesignCommand<CustomInfoArrayToInfoObject<ARR>>;
63
+ export type DomainDesignCommand<INFOS extends DomainDesignInfoObject> = Readonly<{
64
+ readonly _attributes: {
65
+ __code: string;
66
+ rule: 'Command';
67
+ name: string;
68
+ infos: INFOS;
69
+ description?: DomainDesignDesc;
70
+ };
71
+ inner: INFOS;
72
+ agg<AGG extends DomainDesignAgg<any>>(agg: AGG): AGG;
73
+ agg<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, agg: ARR, desc?: string | DomainDesignDesc): DomainDesignAgg<CustomInfoArrayToInfoObject<ARR>>;
74
+ }>;
75
+ export type DomainDesignFacadeCommandProvider = <G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>, desc?: string | DomainDesignDesc) => DomainDesignFacadeCommand<CustomInfoArrayToInfoObject<ARR>>;
76
+ export type DomainDesignFacadeCommand<INFOS extends DomainDesignInfoObject> = Readonly<{
77
+ readonly _attributes: {
78
+ __code: string;
79
+ rule: 'FacadeCommand';
80
+ name: string;
81
+ infos: INFOS;
82
+ description?: DomainDesignDesc;
83
+ };
84
+ inner: INFOS;
85
+ agg<AGG extends DomainDesignAgg<any>>(agg: AGG): AGG;
86
+ agg<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, agg: ARR, desc?: string | DomainDesignDesc): DomainDesignAgg<CustomInfoArrayToInfoObject<ARR>>;
87
+ service(service: DomainDesignService): DomainDesignService;
88
+ service(name: string, desc?: string | DomainDesignDesc): DomainDesignService;
89
+ }>;
90
+ export type DomainDesignEventProvider = <G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>, desc?: string | DomainDesignDesc) => DomainDesignEvent<CustomInfoArrayToInfoObject<ARR>>;
91
+ export type DomainDesignEvent<INFOS extends DomainDesignInfoObject> = Readonly<{
92
+ readonly _attributes: {
93
+ __code: string;
94
+ rule: 'Event';
95
+ name: string;
96
+ infos: INFOS;
97
+ description?: DomainDesignDesc;
98
+ };
99
+ inner: INFOS;
100
+ policy(policy: DomainDesignPolicy): DomainDesignPolicy;
101
+ policy(name: string, desc?: string | DomainDesignDesc): DomainDesignPolicy;
102
+ system(system: DomainDesignSystem): DomainDesignSystem;
103
+ system(name: string, desc?: string | DomainDesignDesc): DomainDesignSystem;
104
+ readModel<READ_MODEL extends DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
105
+ readModel<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>): DomainDesignReadModel<CustomInfoArrayToInfoObject<ARR>>;
106
+ }>;
107
+ export type DomainDesignAggProvider = <G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>, desc?: string | DomainDesignDesc) => DomainDesignAgg<CustomInfoArrayToInfoObject<ARR>>;
108
+ export type DomainDesignAgg<INFOS extends DomainDesignInfoObject> = Readonly<{
109
+ readonly _attributes: {
110
+ __code: string;
111
+ rule: 'Agg';
112
+ name: string;
113
+ infos: INFOS;
114
+ description?: DomainDesignDesc;
115
+ };
116
+ inner: INFOS;
117
+ event<EVENT extends DomainDesignEvent<any>>(event: EVENT): EVENT;
118
+ event<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignEvent<CustomInfoArrayToInfoObject<ARR>>;
119
+ }>;
120
+ export type DomainDesignPolicyProvider = (name: string, desc?: string | DomainDesignDesc) => DomainDesignPolicy;
121
+ export type DomainDesignPolicy = Readonly<{
122
+ readonly _attributes: {
123
+ __code: string;
124
+ rule: 'Policy';
125
+ name: string;
126
+ description?: DomainDesignDesc;
127
+ };
128
+ service(service: DomainDesignService): DomainDesignService;
129
+ service(name: string, desc?: string | DomainDesignDesc): DomainDesignService;
130
+ }>;
131
+ export type DomainDesignSystemProvider = (name: string, desc?: string | DomainDesignDesc) => DomainDesignSystem;
132
+ export type DomainDesignSystem = Readonly<{
133
+ readonly _attributes: {
134
+ __code: string;
135
+ rule: 'System';
136
+ name: string;
137
+ description?: DomainDesignDesc;
138
+ };
139
+ command<COMMAND extends DomainDesignCommand<any>>(command: COMMAND): COMMAND;
140
+ command<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignCommand<CustomInfoArrayToInfoObject<ARR>>;
141
+ facadeCmd<FACADECMD extends DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
142
+ facadeCmd<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignFacadeCommand<CustomInfoArrayToInfoObject<ARR>>;
143
+ }>;
144
+ export type DomainDesignServiceProvider = (name: string, desc?: string | DomainDesignDesc) => DomainDesignService;
145
+ export type DomainDesignService = Readonly<{
146
+ readonly _attributes: {
147
+ __code: string;
148
+ rule: 'Service';
149
+ name: string;
150
+ description?: DomainDesignDesc;
151
+ };
152
+ command<COMMAND extends DomainDesignCommand<any>>(command: COMMAND): COMMAND;
153
+ command<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignCommand<CustomInfoArrayToInfoObject<ARR>>;
154
+ facadeCmd<FACADECMD extends DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
155
+ facadeCmd<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | DomainDesignDesc): DomainDesignFacadeCommand<CustomInfoArrayToInfoObject<ARR>>;
156
+ agg<AGG extends DomainDesignAgg<any>>(agg: AGG): AGG;
157
+ agg<G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, agg: ARR, desc?: string | DomainDesignDesc): DomainDesignAgg<CustomInfoArrayToInfoObject<ARR>>;
158
+ }>;
159
+ export type DomainDesignReadModelProvider = <G_NAME extends string, ARR extends NonEmptyArray<DomainDesignInfo<DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | NonEmptyInitFunc<() => ARR>, desc?: string | DomainDesignDesc) => DomainDesignReadModel<CustomInfoArrayToInfoObject<ARR>>;
160
+ export type DomainDesignReadModel<INFOS extends DomainDesignInfoObject> = Readonly<{
161
+ readonly _attributes: {
162
+ __code: string;
163
+ rule: 'ReadModel';
164
+ name: string;
165
+ infos: INFOS;
166
+ description?: DomainDesignDesc;
167
+ };
168
+ inner: INFOS;
169
+ }>;
170
+ export type NonEmptyArray<T> = [T, ...T[]];
171
+ export type NonEmptyObject<T extends object> = keyof T extends never ? never : T;
172
+ export type NonEmptyInitFunc<T extends () => object> = keyof ReturnType<T> extends never ? never : T;
@@ -0,0 +1,2 @@
1
+ import { DomainDesignDescProvider } from './define';
2
+ export declare function createDescProvider(_designCode: string): DomainDesignDescProvider;
@@ -0,0 +1,2 @@
1
+ import { DomainDesignEventProvider } from './define';
2
+ export declare function eventProvider(designId: string): DomainDesignEventProvider;
@@ -0,0 +1,203 @@
1
+ export declare function createDomainDesigner(): {
2
+ startWorkflow: (name: string) => string;
3
+ defineUserStory: (name: string, workflowNames: import("@ddd-tool/domain-designer-core/define").NonEmptyArray<string>) => void;
4
+ desc: import("@ddd-tool/domain-designer-core/define").DomainDesignDescProvider;
5
+ info: {
6
+ any: <NAME extends string>(name: NAME, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc) => import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<"Any", NAME>;
7
+ entity: <NAME extends string, ARR extends Array<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, string> | string>>(name: NAME, infos?: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc) => import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<"Entity", NAME>;
8
+ func: <NAME extends string>(name: NAME, dependsOn: import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoFuncDependsOn | string>, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc) => import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<"Function", NAME>;
9
+ field: import("@ddd-tool/domain-designer-core/define").DomainDesignInfoFieldProvider;
10
+ };
11
+ actor: import("@ddd-tool/domain-designer-core/define").DomainDesignActorProvider;
12
+ facadeCmd: import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommandProvider;
13
+ command: import("@ddd-tool/domain-designer-core/define").DomainDesignCommandProvider;
14
+ agg: import("@ddd-tool/domain-designer-core/define").DomainDesignAggProvider;
15
+ event: import("@ddd-tool/domain-designer-core/define").DomainDesignEventProvider;
16
+ system: import("@ddd-tool/domain-designer-core/define").DomainDesignSystemProvider;
17
+ policy: import("@ddd-tool/domain-designer-core/define").DomainDesignPolicyProvider;
18
+ service: import("@ddd-tool/domain-designer-core/define").DomainDesignServiceProvider;
19
+ readModel: import("@ddd-tool/domain-designer-core/define").DomainDesignReadModelProvider;
20
+ _getContext: () => {
21
+ startWorkflow(name: string): string;
22
+ defineUserStory(name: string, workflowNames: import("@ddd-tool/domain-designer-core/define").NonEmptyArray<string>): void;
23
+ linkTo(srcRule: "Info" | "Actor" | "Command" | "FacadeCommand" | "Event" | "Agg" | "Policy" | "System" | "Service" | "ReadModel", srcCode: string, targetRule: "Info" | "Actor" | "Command" | "FacadeCommand" | "Event" | "Agg" | "Policy" | "System" | "Service" | "ReadModel", targetCode: string, linkType?: import("@ddd-tool/domain-designer-core/common").LinkType): void;
24
+ getId(): string;
25
+ getWorkflows(): Record<string, string[]>;
26
+ getUserStories(): Record<string, string[]>;
27
+ getLinks(): Record<string, import("@ddd-tool/domain-designer-core/common").LinkType>;
28
+ getIdMap(): Record<string, object>;
29
+ getCommands(): Readonly<{
30
+ readonly _attributes: {
31
+ __code: string;
32
+ rule: "Command";
33
+ name: string;
34
+ infos: any;
35
+ description?: Readonly<{
36
+ readonly _attributes: {
37
+ rule: "Desc";
38
+ readonly template: TemplateStringsArray;
39
+ readonly values: import("@ddd-tool/domain-designer-core/define").DomainDesignDescValue[];
40
+ };
41
+ }> | undefined;
42
+ };
43
+ inner: any;
44
+ agg<AGG extends import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<any>>(agg: AGG): AGG;
45
+ agg<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, agg: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
46
+ }>[];
47
+ getFacadeCommands(): Readonly<{
48
+ readonly _attributes: {
49
+ __code: string;
50
+ rule: "FacadeCommand";
51
+ name: string;
52
+ infos: any;
53
+ description?: Readonly<{
54
+ readonly _attributes: {
55
+ rule: "Desc";
56
+ readonly template: TemplateStringsArray;
57
+ readonly values: import("@ddd-tool/domain-designer-core/define").DomainDesignDescValue[];
58
+ };
59
+ }> | undefined;
60
+ };
61
+ inner: any;
62
+ agg<AGG extends import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<any>>(agg: AGG): AGG;
63
+ agg<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, agg: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
64
+ service(service: import("@ddd-tool/domain-designer-core/define").DomainDesignService): import("@ddd-tool/domain-designer-core/define").DomainDesignService;
65
+ service(name: string, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignService;
66
+ }>[];
67
+ getActors(): Readonly<{
68
+ readonly _attributes: {
69
+ __code: string;
70
+ rule: "Actor";
71
+ name: string;
72
+ description?: import("@ddd-tool/domain-designer-core/define").DomainDesignDesc;
73
+ };
74
+ command<COMMAND extends import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<any>>(command: COMMAND): COMMAND;
75
+ command<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
76
+ facadeCmd<FACADECMD extends import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<any>>(command: FACADECMD): FACADECMD;
77
+ facadeCmd<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
78
+ readModel<READ_MODEL extends import("@ddd-tool/domain-designer-core/define").DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
79
+ readModel<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | import("@ddd-tool/domain-designer-core/define").NonEmptyInitFunc<() => ARR>): import("@ddd-tool/domain-designer-core/define").DomainDesignReadModel<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
80
+ }>[];
81
+ getEvents(): Readonly<{
82
+ readonly _attributes: {
83
+ __code: string;
84
+ rule: "Event";
85
+ name: string;
86
+ infos: any;
87
+ description?: Readonly<{
88
+ readonly _attributes: {
89
+ rule: "Desc";
90
+ readonly template: TemplateStringsArray;
91
+ readonly values: import("@ddd-tool/domain-designer-core/define").DomainDesignDescValue[];
92
+ };
93
+ }> | undefined;
94
+ };
95
+ inner: any;
96
+ policy(policy: import("@ddd-tool/domain-designer-core/define").DomainDesignPolicy): import("@ddd-tool/domain-designer-core/define").DomainDesignPolicy;
97
+ policy(name: string, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignPolicy;
98
+ system(system: import("@ddd-tool/domain-designer-core/define").DomainDesignSystem): import("@ddd-tool/domain-designer-core/define").DomainDesignSystem;
99
+ system(name: string, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignSystem;
100
+ readModel<READ_MODEL extends import("@ddd-tool/domain-designer-core/define").DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
101
+ readModel<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | import("@ddd-tool/domain-designer-core/define").NonEmptyInitFunc<() => ARR>): import("@ddd-tool/domain-designer-core/define").DomainDesignReadModel<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
102
+ }>[];
103
+ getPolicies(): Readonly<{
104
+ readonly _attributes: {
105
+ __code: string;
106
+ rule: "Policy";
107
+ name: string;
108
+ description?: import("@ddd-tool/domain-designer-core/define").DomainDesignDesc;
109
+ };
110
+ service(service: import("@ddd-tool/domain-designer-core/define").DomainDesignService): import("@ddd-tool/domain-designer-core/define").DomainDesignService;
111
+ service(name: string, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignService;
112
+ }>[];
113
+ getServices(): Readonly<{
114
+ readonly _attributes: {
115
+ __code: string;
116
+ rule: "Service";
117
+ name: string;
118
+ description?: import("@ddd-tool/domain-designer-core/define").DomainDesignDesc;
119
+ };
120
+ command<COMMAND extends import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<any>>(command: COMMAND): COMMAND;
121
+ command<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
122
+ facadeCmd<FACADECMD extends import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
123
+ facadeCmd<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
124
+ agg<AGG extends import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<any>>(agg: AGG): AGG;
125
+ agg<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, agg: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
126
+ }>[];
127
+ getSystems(): Readonly<{
128
+ readonly _attributes: {
129
+ __code: string;
130
+ rule: "System";
131
+ name: string;
132
+ description?: import("@ddd-tool/domain-designer-core/define").DomainDesignDesc;
133
+ };
134
+ command<COMMAND extends import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<any>>(command: COMMAND): COMMAND;
135
+ command<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
136
+ facadeCmd<FACADECMD extends import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
137
+ facadeCmd<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
138
+ }>[];
139
+ getAggs(): Readonly<{
140
+ readonly _attributes: {
141
+ __code: string;
142
+ rule: "Agg";
143
+ name: string;
144
+ infos: any;
145
+ description?: Readonly<{
146
+ readonly _attributes: {
147
+ rule: "Desc";
148
+ readonly template: TemplateStringsArray;
149
+ readonly values: import("@ddd-tool/domain-designer-core/define").DomainDesignDescValue[];
150
+ };
151
+ }> | undefined;
152
+ };
153
+ inner: any;
154
+ event<EVENT extends import("@ddd-tool/domain-designer-core/define").DomainDesignEvent<any>>(event: EVENT): EVENT;
155
+ event<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc): import("@ddd-tool/domain-designer-core/define").DomainDesignEvent<import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>>;
156
+ }>[];
157
+ getReadModels(): Readonly<{
158
+ readonly _attributes: {
159
+ __code: string;
160
+ rule: "ReadModel";
161
+ name: string;
162
+ infos: any;
163
+ description?: Readonly<{
164
+ readonly _attributes: {
165
+ rule: "Desc";
166
+ readonly template: TemplateStringsArray;
167
+ readonly values: import("@ddd-tool/domain-designer-core/define").DomainDesignDescValue[];
168
+ };
169
+ }> | undefined;
170
+ };
171
+ inner: any;
172
+ }>[];
173
+ registerCommand(command: import("@ddd-tool/domain-designer-core/define").DomainDesignCommand<any>): void;
174
+ registerFacadeCommand(command: import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommand<any>): void;
175
+ registerActor(actor: import("@ddd-tool/domain-designer-core/define").DomainDesignActor): void;
176
+ registerEvent(event: import("@ddd-tool/domain-designer-core/define").DomainDesignEvent<any>): void;
177
+ registerPolicy(policy: import("@ddd-tool/domain-designer-core/define").DomainDesignPolicy): void;
178
+ registerService(service: import("@ddd-tool/domain-designer-core/define").DomainDesignService): void;
179
+ registerSystem(system: import("@ddd-tool/domain-designer-core/define").DomainDesignSystem): void;
180
+ registerAgg(agg: import("@ddd-tool/domain-designer-core/define").DomainDesignAgg<any>): void;
181
+ registerReadModel(readModel: import("@ddd-tool/domain-designer-core/define").DomainDesignReadModel<any>): void;
182
+ customInfoArrToInfoObj<G_NAME extends string, ARR extends import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<any, G_NAME> | G_NAME>>(arr: ARR): import("@ddd-tool/domain-designer-core/define").CustomInfoArrayToInfoObject<ARR>;
183
+ createDesc: import("@ddd-tool/domain-designer-core/define").DomainDesignDescProvider;
184
+ info: {
185
+ any: <NAME extends string>(name: NAME, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc) => import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<"Any", NAME>;
186
+ entity: <NAME extends string, ARR extends Array<import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoType, string> | string>>(name: NAME, infos?: ARR, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc) => import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<"Entity", NAME>;
187
+ func: <NAME extends string>(name: NAME, dependsOn: import("@ddd-tool/domain-designer-core/define").NonEmptyArray<import("@ddd-tool/domain-designer-core/define").DomainDesignInfoFuncDependsOn | string>, desc?: string | import("@ddd-tool/domain-designer-core/define").DomainDesignDesc) => import("@ddd-tool/domain-designer-core/define").DomainDesignInfo<"Function", NAME>;
188
+ field: import("@ddd-tool/domain-designer-core/define").DomainDesignInfoFieldProvider;
189
+ };
190
+ createPersion: import("@ddd-tool/domain-designer-core/define").DomainDesignActorProvider;
191
+ createCommand: import("@ddd-tool/domain-designer-core/define").DomainDesignCommandProvider;
192
+ createFacadeCommand: import("@ddd-tool/domain-designer-core/define").DomainDesignFacadeCommandProvider;
193
+ createAgg: import("@ddd-tool/domain-designer-core/define").DomainDesignAggProvider;
194
+ createEvent: import("@ddd-tool/domain-designer-core/define").DomainDesignEventProvider;
195
+ createPolicy: import("@ddd-tool/domain-designer-core/define").DomainDesignPolicyProvider;
196
+ createService: import("@ddd-tool/domain-designer-core/define").DomainDesignServiceProvider;
197
+ createSystem: import("@ddd-tool/domain-designer-core/define").DomainDesignSystemProvider;
198
+ createReadModel: import("@ddd-tool/domain-designer-core/define").DomainDesignReadModelProvider;
199
+ };
200
+ };
201
+ export type DomainDesigner = ReturnType<typeof createDomainDesigner>;
202
+ export type { DomainDesignAgg, DomainDesignCommand, DomainDesignFacadeCommand, DomainDesignDesc, DomainDesignEvent, DomainDesignInfo, DomainDesignInfoType, DomainDesignActor, DomainDesignSystem, DomainDesignService, DomainDesignPolicy, } from '@ddd-tool/domain-designer-core/define';
203
+ export { isDomainDesignInfoFunc } from '@ddd-tool/domain-designer-core/info';
@@ -0,0 +1,2 @@
1
+ import { DomainDesignInfoFieldProvider } from '../define';
2
+ export declare function createInfoFieldProvider(designId: string): DomainDesignInfoFieldProvider;
@@ -0,0 +1,3 @@
1
+ import type { DomainDesignInfo, DomainDesignInfoProvider, DomainDesignInfoType } from '../define';
2
+ export declare function createInfoProvider(designId: string): DomainDesignInfoProvider;
3
+ export declare function isDomainDesignInfoFunc<NAME extends string>(info: DomainDesignInfo<DomainDesignInfoType, NAME>): info is DomainDesignInfo<'Function', NAME>;
@@ -0,0 +1,2 @@
1
+ import { DomainDesignPolicyProvider } from '@ddd-tool/domain-designer-core/define';
2
+ export declare function createPolicyProvider(designId: string): DomainDesignPolicyProvider;
@@ -0,0 +1,2 @@
1
+ import { DomainDesignReadModelProvider } from './define';
2
+ export declare function createReadModelProvider(designId: string): DomainDesignReadModelProvider;
@@ -0,0 +1,2 @@
1
+ import { DomainDesignServiceProvider } from '@ddd-tool/domain-designer-core/define';
2
+ export declare function createServiceProvider(designId: string): DomainDesignServiceProvider;
@@ -0,0 +1,2 @@
1
+ import { DomainDesignSystemProvider } from '@ddd-tool/domain-designer-core/define';
2
+ export declare function createSystemProvider(designId: string): DomainDesignSystemProvider;
@@ -0,0 +1 @@
1
+ npx domain-designer-cli runWeb --source=F:/vscode_projects/@ddd-tool/demo
@@ -0,0 +1,31 @@
1
+ import { createDomainDesigner } from '@ddd-tool/domain-designer-core'
2
+
3
+ const d = createDomainDesigner()
4
+
5
+ const 参与者 = d.actor('参与者')
6
+ const 命令 = d.command('命令', ['不关心类型的信息', d.info.field.id('主键字段')])
7
+ const 事件 = d.event('事件', () => {
8
+ const 防止作用域泄露的参数1 = d.info.field.str('防止作用域泄露的参数1')
9
+ const 防止作用域泄露的参数2 = d.info.field.enum('防止作用域泄露的参数2', '枚举类型 1有效 2无效')
10
+ const 防止作用域泄露的实体主键 = d.info.field.id('主键')
11
+ const 防止作用域泄露的实体属性 = '实体属性'
12
+ return [
13
+ d.info.func('方法', [防止作用域泄露的参数1, 防止作用域泄露的参数2]),
14
+ d.info.entity('实体', [防止作用域泄露的实体主键, 防止作用域泄露的实体属性]),
15
+ ]
16
+ })
17
+ const 外部系统 = d.system('外部系统')
18
+
19
+ const 聚合 = d.agg(
20
+ '聚合',
21
+ [事件.inner.方法, 事件.inner.实体, 命令.inner.不关心类型的信息, 命令.inner.主键字段],
22
+ d.desc`如果你愿意,可以在注释中使用类型安全的强引用来描述与其他元素的关系。
23
+ 如: ${参与者}可以在执行${命令}时,可选地指定${命令.inner.不关心类型的信息}字段`
24
+ )
25
+
26
+ const 工作流 = d.startWorkflow('开始一个工作流')
27
+ 参与者.command(命令).agg(聚合).event(事件).system(外部系统)
28
+
29
+ d.defineUserStory('定义一个用户故事', [工作流])
30
+
31
+ export default d
package/tsconfig.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "extends": "@tsconfig/node22/tsconfig.json",
3
+ "include": [
4
+ "src/*",
5
+ "src/**/*",
6
+ "__tests__",
7
+ "scripts",
8
+ "src-cli/*",
9
+ "src-cli/**/*",
10
+ ],
11
+ "compilerOptions": {
12
+ "strict": true,
13
+ "moduleResolution": "Bundler",
14
+ "module": "ESNext",
15
+ "target": "ESNext",
16
+ "esModuleInterop": true,
17
+ "sourceMap": true,
18
+ "lib": [
19
+ "DOM"
20
+ ],
21
+ "types": [
22
+ "node"
23
+ ],
24
+ "paths": {
25
+ "@/*": [
26
+ "./src/*"
27
+ ],
28
+ }
29
+ }
30
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { fileURLToPath, URL } from 'node:url'
2
+
3
+ import { defineConfig } from 'vite'
4
+ import vue from '@vitejs/plugin-vue'
5
+
6
+ export default defineConfig({
7
+ plugins: [vue()],
8
+ esbuild: {
9
+ drop: ['console', 'debugger'], // 移除 console 和 debugger 语句
10
+ },
11
+ resolve: {
12
+ alias: {
13
+ '@': fileURLToPath(new URL('./src', import.meta.url)),
14
+ '@ddd-tool/domain-designer-core': fileURLToPath(
15
+ new URL('./node_modules/@ddd-tool/domain-designer-core', import.meta.url)
16
+ ),
17
+ },
18
+ },
19
+ })