@ddd-tool/domain-designer-cli 0.0.0-alpha.21 → 0.0.0-alpha.22

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/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright [yyyy] [name of copyright owner]
189
+ Copyright 2024 <AlphaFoxz@github.com>
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -1,21 +1,31 @@
1
1
  # domain-designer-cli
2
2
 
3
- 目标是作为 ddd 建模生产力工具
3
+ 通过编写 ts 的方式进行领域设计,目标是作为 ddd 建模生产力工具
4
+
5
+ 设计原则:
6
+
7
+ - 尽可能让代码与视图拥有相近的表达能力
8
+
9
+ - 借助 ts 代码检查保证一定的完备性
10
+
11
+ - 探索在设计的时候,如何更多地表达 `WHY`,而不是像传统设计图一样只表达 `HOW`。(工作流 + 用户故事)
4
12
 
5
13
  ## 1 前置依赖
6
14
 
7
15
  [nodejs](https://nodejs.org/en/download/) >= 18
8
16
 
9
- [pnpm](https://pnpm.io/) >= 9 OR [bun](https://bun.sh/)
17
+ [bun](https://bun.sh/) OR [pnpm](https://pnpm.io/) >= 9
18
+
19
+ - 确保有全局的 `bun` 或者 `pnpm` 指令 bun
10
20
 
11
- - 确保有全局的`pnpm`或者`bun`指令
21
+ - 本程序会优先使用 bun 运行,如果没有则切换为 pnpm
12
22
 
13
23
  ## 2 安装
14
24
 
15
25
  ```bash
16
- pnpm i @ddd-tool/domain-designer-cli -g
17
- # or
18
26
  bun i @ddd-tool/domain-designer-cli -g
27
+ # or
28
+ pnpm i @ddd-tool/domain-designer-cli -g
19
29
  ```
20
30
 
21
31
  ## 3 更新版本
@@ -23,9 +33,9 @@ bun i @ddd-tool/domain-designer-cli -g
23
33
  ### 3.1 更新软件
24
34
 
25
35
  ```bash
26
- pnpm i @ddd-tool/domain-designer-cli@latest -g
27
- # or
28
36
  bun i @ddd-tool/domain-designer-cli@latest -g
37
+ # or
38
+ pnpm i @ddd-tool/domain-designer-cli@latest -g
29
39
  ```
30
40
 
31
41
  ### 3.2 更新工作空间
@@ -46,19 +56,23 @@ domain-designer-cli update
46
56
  domain-designer-cli init
47
57
  ```
48
58
 
59
+ - 推荐将工作空间中的所有文件放入实际项目,随项目一起进行版本控制。由于 ts 代码的表达能力并不弱,在多人协作的时候,即使其他人没有安装本工具,也可以通过代码安全地了解、调整领域模型。
60
+
49
61
  - 初始化后的目录包含如下内容:
50
62
 
51
- - node_modules。为 ide 提供代码补全的最小.d.ts 包,不包含任何实现
63
+ - node_modules 目录:为 ide 提供代码补全的少量 `.d.ts` 文件,不包含任何实现
52
64
 
53
- - 一个示例 ts 文件。可以快速了解如何使用 ts 代码进行建模
65
+ - 示例 ts 文件。可以快速了解如何使用 ts 代码进行建模
54
66
 
55
- - RunWeb 脚本。用于实时查看建模效果
67
+ - RunWeb 脚本:用于实时查看建模效果
56
68
 
57
69
  ### 4.2 编写 ts 文件
58
70
 
59
71
  - 可以自行创建多个任意名称的 ts 文件
60
72
 
61
- - 多个 ts 文件会被 web 服务识别为多个数据源,可在 web 页面的设置中切换数据源
73
+ - 特殊规则:只有位于工作空间根目录、且默认导出了一个 DomainDesigner 实例的 ts 文件才会被识别为一个“数据源”,如示例文件中的 `export default d`。除此以外,所有规则与普通 ts 项目一致
74
+
75
+ - 多个数据源 ts 文件会被 web 服务识别为多个数据源,可在 web 页面的设置中切换数据源
62
76
 
63
77
  ### 4.3 Web 端运行
64
78
 
@@ -69,3 +83,7 @@ domain-designer-cli init
69
83
  - 对于每个 ts 文件内的修改,刷新页面即可看到效果
70
84
 
71
85
  - 如果新增或者删除了 ts 文件,需要重新运行`RunWeb`脚本
86
+
87
+ ## License
88
+
89
+ This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
@@ -123,7 +123,7 @@ Filtered results for: ${this.inputValue?this.inputValue:Fe.gray("Enter something
123
123
  `,s)}while(r!==-1);return n+=t.slice(s),n}var{stdout:dh,stderr:fh}=uh,Hn=Symbol("GENERATOR"),Et=Symbol("STYLER"),Xt=Symbol("IS_EMPTY"),ph=["ansi","ansi","ansi256","ansi16m"],Ot=Object.create(null),_v=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let i=dh?dh.level:0;t.level=e.level===void 0?i:e.level};var wv=t=>{let e=(...i)=>i.join(" ");return _v(e,t),Object.setPrototypeOf(e,Zt.prototype),e};function Zt(t){return wv(t)}Object.setPrototypeOf(Zt.prototype,Function.prototype);for(let[t,e]of Object.entries(fe))Ot[t]={get(){let i=sr(this,Wn(e.open,e.close,this[Et]),this[Xt]);return Object.defineProperty(this,t,{value:i}),i}};Ot.visible={get(){let t=sr(this,this[Et],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var Vn=(t,e,i,...r)=>t==="rgb"?e==="ansi16m"?fe[i].ansi16m(...r):e==="ansi256"?fe[i].ansi256(fe.rgbToAnsi256(...r)):fe[i].ansi(fe.rgbToAnsi(...r)):t==="hex"?Vn("rgb",e,i,...fe.hexToRgb(...r)):fe[i][t](...r),xv=["rgb","hex","ansi256"];for(let t of xv){Ot[t]={get(){let{level:i}=this;return function(...r){let s=Wn(Vn(t,ph[i],"color",...r),fe.color.close,this[Et]);return sr(this,s,this[Xt])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);Ot[e]={get(){let{level:i}=this;return function(...r){let s=Wn(Vn(t,ph[i],"bgColor",...r),fe.bgColor.close,this[Et]);return sr(this,s,this[Xt])}}}}var Sv=Object.defineProperties(()=>{},{...Ot,level:{enumerable:!0,get(){return this[Hn].level},set(t){this[Hn].level=t}}}),Wn=(t,e,i)=>{let r,s;return i===void 0?(r=t,s=e):(r=i.openAll+t,s=e+i.closeAll),{open:t,close:e,openAll:r,closeAll:s,parent:i}},sr=(t,e,i)=>{let r=(...s)=>Av(r,s.length===1?""+s[0]:s.join(" "));return Object.setPrototypeOf(r,Sv),r[Hn]=t,r[Et]=e,r[Xt]=i,r},Av=(t,e)=>{if(t.level<=0||!e)return t[Xt]?"":e;let i=t[Et];if(i===void 0)return e;let{openAll:r,closeAll:s}=i;if(e.includes("\x1B"))for(;i!==void 0;)e=ch(e,i.close,i.open),i=i.parent;let n=e.indexOf(`
124
124
  `);return n!==-1&&(e=hh(e,s,r,n)),r+e+s};Object.defineProperties(Zt.prototype,Ot);var Ev=Zt(),Nw=Zt({level:fh?fh.level:0});var Qe=Ev;var g={print(...t){console.log(...t)},printError(...t){console.error(this.error(...Se(...t)))},printSuccess(...t){console.log(this.success(...Se(...t)))},printWarn(...t){console.log(this.warn(...Se(...t)))},printInfo(...t){console.log(this.info(...Se(...t)))},printDebug(...t){console.log(this.debug(...Se(...t)))},error(...t){return Qe.red(...Se(...t))},success(...t){return Qe.green(...Se(...t))},warn(...t){return Qe.yellow(...Se(...t))},info(...t){return Qe.blueBright(...Se(...t))},debug(...t){return Qe.gray(...Se(...t))}};function Se(...t){return t?t.reduce((e,i)=>(i||e.push(""),i instanceof Error?e.push(i.message+`
125
125
  `+i.stack):typeof i=="string"?e.push(i):typeof i=="object"?e.push(JSON.stringify(i,null,2)):e.push(i.toString()),e),[]):[""]}var Bn=V(qi(),1);var L=V(qi(),1);var Ov="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",mh=(t=21)=>{let e="",i=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=Ov[i[t]&63];return e};function Cv(t,e=!0,i=!1){let r=(0,L.ref)(),s,n=(0,L.ref)(!1),o=()=>{},a=new Proxy(t,{apply:function(h,c,d){let x=h(...d);if(x instanceof Error){if(r.value=x,s=x,e)throw o(),x}else n.value=!0,r.value=void 0,s=!0,o()}}),l=()=>{},u=new Proxy(h=>{r.value=h},{apply:function(h,c,d){h(...d),l(...d)}});return{promise:new Promise((h,c)=>{if(e&&s instanceof Error){c(s);return}else if(s===!0){h();return}let d;i&&(d=setTimeout(()=>{let x=new Error("timeout!");r.value=x,e&&c(x)},i)),o=()=>{d&&(clearTimeout(d),d=void 0),h()}}),callback:a,onError:u,resolved:(0,L.computed)(()=>n.value),error:(0,L.computed)(()=>r.value)}}function Tv(){return mh()}function Rv(t){let e=Mv(t);return(0,L.shallowReadonly)({states:e.states,commands:e.commands,events:e.events})}function Mv(t){let e=t.states;for(let o of Object.keys(t.states))e[o]=(0,L.readonly)(e[o]);let i=(0,L.shallowReadonly)(t.states),r=(0,L.readonly)(t.commands),s={},n=t.events;for(let o in t.events)s[o]=n[o].api;return(0,L.shallowReadonly)({states:i,commands:r,events:(0,L.shallowReadonly)(s),destroy:t.destroy})}function nr(t){let{callback:e,onError:i,promise:r,resolved:s}=Cv(()=>{},!1,5e3);function n(c){if(s.value===!0)throw new Error("Agg already initialized");o.push(c())}let o=[],a=t({onCreated(c){Promise.resolve().then(c)},onBeforeInitialize:n,isInitialized:(0,L.computed)(()=>s.value),untilInitialized:r});setTimeout(()=>Promise.all(o).then(()=>{e()}).catch(c=>{i(c)}));let l=a.states||{},u=a.commands||{},h=a.events||{};return{_code:Tv(),type:"Singleton",api:Rv({states:l,commands:u,events:h,destroy:()=>{}}),isInitialized:s,async untilInitialized(){return await r.catch(c=>{throw new Error(`Failed to initialize Agg: ${c.message}
126
- Stack : ${c.stack||"unkown"}`)})}}}var Iv={"signal.{str}":"Error: {str}","signal.scriptStart":"===== Script start =====","signal.successComplete":"===== Program execution succeeded =====","signal.exitWithError":"===== Exit with error =====","question.subcommand":"Select the business type","question.subcommand.init":"Initialize project","question.subcommand.updateWorkspace":"Update Workspace","question.subcommand.runWeb":"Run Web server","question.subcommand.runWeb.source":"Please enter the ts file directory","question.subcommand.info":"[ test ]","error.userCancel":"User canceled","error.invalidArgs{str}":"Invalid args: {str}","error.badArgs":"Bad args","error.shouldBeValidDir{dir}":"{dir} should be a valid directory","error.shouldBeEmptyDir{dir}":"{dir} should be an empty directory","error.noPackageManager":"No package manager found, please install bun or pnpm"},Un=Iv;var Pv={"signal.{str}":"\u9519\u8BEF: {str}","signal.scriptStart":"===== \u811A\u672C\u5F00\u59CB\u6267\u884C =====","signal.successComplete":"===== \u811A\u672C\u6267\u884C\u6210\u529F =====","signal.exitWithError":"===== \u811A\u672C\u5F02\u5E38\u9000\u51FA =====","question.subcommand":"\u8BF7\u9009\u62E9\u8981\u6267\u884C\u7684\u4E1A\u52A1\u7C7B\u578B","question.subcommand.init":"\u521D\u59CB\u5316\u9879\u76EE","question.subcommand.updateWorkspace":"\u66F4\u65B0\u4F9D\u8D56","question.subcommand.runWeb":"\u8FD0\u884C Web \u670D\u52A1","question.subcommand.runWeb.source":"\u8BF7\u8F93\u5165ts\u6587\u4EF6\u76EE\u5F55","question.subcommand.info":"\u3010\u6D4B\u8BD5\u3011","error.userCancel":"\u7528\u6237\u7EC8\u6B62\u4E86\u811A\u672C\u6267\u884C","error.invalidArgs{str}":"\u65E0\u6548\u7684\u53C2\u6570: {str}","error.badArgs":"\u9519\u8BEF\u7684\u53C2\u6570","error.shouldBeValidDir{dir}":"{dir} \u5E94\u8BE5\u662F\u4E00\u4E2A\u6709\u6548\u7684\u76EE\u5F55","error.shouldBeEmptyDir{dir}":"{dir} \u5E94\u8BE5\u662F\u4E00\u4E2A\u7A7A\u76EE\u5F55","error.noPackageManager":"\u672A\u627E\u5230\u5305\u7BA1\u7406\u5668,\u8BF7\u5B89\u88C5 bun \u6216 pnpm"},gh=Pv;var Dv=nr(()=>{let t=(0,Bn.ref)("zh"),e=(0,Bn.ref)(Un);function i(r,s,n){let o=e.value[r];return o||(typeof s=="string"?o=s:typeof n=="string"&&(o=n)),o?(typeof s=="object"&&(o=o.replace(/\{\s*([a-zA-z_]+)\s*\}/g,(a,l)=>String(s[l]))),o):""}return{states:{currentLang:t},commands:{t:i,setCurrentLang(r){r==="en"?e.value=Un:r==="zh"?e.value=gh:isNever(r),t.value=r}}}});function Ae(){return Dv.api}var Nv=Ae().commands.t;function Qt(){throw Error(Nv("error.userCancel"))}var Z={name:"@ddd-tool/domain-designer-cli",version:"0.0.0-alpha.21",private:!0,type:"module",files:["./src"],repository:{type:"git",url:"git+https://github.com/ddd-tool/domain-designer-cli-node.git"},bugs:{url:"https://github.com/ddd-tool/domain-designer-cli-node/issues"},readme:"ERROR: No README data found!",homepage:"https://github.com/ddd-tool/domain-designer-cli-node#readme",_id:"@ddd-tool/domain-designer-cli@0.0.0-alpha.21"};var ft=require("child_process"),bh=V(require("os"),1);function yh(){let t=or(),e=null;return t==="windows"?e=(0,ft.spawnSync)("where bun",{encoding:"utf-8",shell:!0}).status:t==="linux"?e=(0,ft.spawnSync)("hash bun",{encoding:"utf-8",shell:!0}).status:t==="mac"&&(e=(0,ft.spawnSync)("hash bun",{encoding:"utf-8",shell:!0}).status),e===0}function vh(){let t=or(),e=null;return t==="windows"?e=(0,ft.spawnSync)("where pnpm",{encoding:"utf-8",shell:!0}).status:t==="linux"?e=(0,ft.spawnSync)("hash pnpm",{encoding:"utf-8",shell:!0}).status:t==="mac"&&(e=(0,ft.spawnSync)("hash pnpm",{encoding:"utf-8",shell:!0}).status),e===0}function or(){let t=bh.default.type();return t==="Windows_NT"?"windows":t==="Linux"?"linux":t==="Darwin"?"mac":"undefined"}function ar(){let t=Z.repository.url.replace(/git\+/g,""),e=`REM App Name: Domain Designer Cli
126
+ Stack : ${c.stack||"unkown"}`)})}}}var Iv={"signal.{str}":"Error: {str}","signal.scriptStart":"===== Script start =====","signal.successComplete":"===== Program execution succeeded =====","signal.exitWithError":"===== Exit with error =====","question.subcommand":"Select the business type","question.subcommand.init":"Initialize project","question.subcommand.updateWorkspace":"Update Workspace","question.subcommand.runWeb":"Run Web server","question.subcommand.runWeb.source":"Please enter the ts file directory","question.subcommand.info":"[ test ]","error.userCancel":"User canceled","error.invalidArgs{str}":"Invalid args: {str}","error.badArgs":"Bad args","error.shouldBeValidDir{dir}":"{dir} should be a valid directory","error.shouldBeEmptyDir{dir}":"{dir} should be an empty directory","error.noPackageManager":"No package manager found, please install bun or pnpm"},Un=Iv;var Pv={"signal.{str}":"\u9519\u8BEF: {str}","signal.scriptStart":"===== \u811A\u672C\u5F00\u59CB\u6267\u884C =====","signal.successComplete":"===== \u811A\u672C\u6267\u884C\u6210\u529F =====","signal.exitWithError":"===== \u811A\u672C\u5F02\u5E38\u9000\u51FA =====","question.subcommand":"\u8BF7\u9009\u62E9\u8981\u6267\u884C\u7684\u4E1A\u52A1\u7C7B\u578B","question.subcommand.init":"\u521D\u59CB\u5316\u9879\u76EE","question.subcommand.updateWorkspace":"\u66F4\u65B0\u4F9D\u8D56","question.subcommand.runWeb":"\u8FD0\u884C Web \u670D\u52A1","question.subcommand.runWeb.source":"\u8BF7\u8F93\u5165ts\u6587\u4EF6\u76EE\u5F55","question.subcommand.info":"\u3010\u6D4B\u8BD5\u3011","error.userCancel":"\u7528\u6237\u7EC8\u6B62\u4E86\u811A\u672C\u6267\u884C","error.invalidArgs{str}":"\u65E0\u6548\u7684\u53C2\u6570: {str}","error.badArgs":"\u9519\u8BEF\u7684\u53C2\u6570","error.shouldBeValidDir{dir}":"{dir} \u5E94\u8BE5\u662F\u4E00\u4E2A\u6709\u6548\u7684\u76EE\u5F55","error.shouldBeEmptyDir{dir}":"{dir} \u5E94\u8BE5\u662F\u4E00\u4E2A\u7A7A\u76EE\u5F55","error.noPackageManager":"\u672A\u627E\u5230\u5305\u7BA1\u7406\u5668,\u8BF7\u5B89\u88C5 bun \u6216 pnpm"},gh=Pv;var Dv=nr(()=>{let t=(0,Bn.ref)("zh"),e=(0,Bn.ref)(Un);function i(r,s,n){let o=e.value[r];return o||(typeof s=="string"?o=s:typeof n=="string"&&(o=n)),o?(typeof s=="object"&&(o=o.replace(/\{\s*([a-zA-z_]+)\s*\}/g,(a,l)=>String(s[l]))),o):""}return{states:{currentLang:t},commands:{t:i,setCurrentLang(r){r==="en"?e.value=Un:r==="zh"?e.value=gh:isNever(r),t.value=r}}}});function Ae(){return Dv.api}var Nv=Ae().commands.t;function Qt(){throw Error(Nv("error.userCancel"))}var Z={name:"@ddd-tool/domain-designer-cli",version:"0.0.0-alpha.22",private:!0,type:"module",files:["./src"],repository:{type:"git",url:"git+https://github.com/ddd-tool/domain-designer-cli-node.git"},bugs:{url:"https://github.com/ddd-tool/domain-designer-cli-node/issues"},readme:"ERROR: No README data found!",homepage:"https://github.com/ddd-tool/domain-designer-cli-node#readme",_id:"@ddd-tool/domain-designer-cli@0.0.0-alpha.22"};var ft=require("child_process"),bh=V(require("os"),1);function yh(){let t=or(),e=null;return t==="windows"?e=(0,ft.spawnSync)("where bun",{encoding:"utf-8",shell:!0}).status:t==="linux"?e=(0,ft.spawnSync)("hash bun",{encoding:"utf-8",shell:!0}).status:t==="mac"&&(e=(0,ft.spawnSync)("hash bun",{encoding:"utf-8",shell:!0}).status),e===0}function vh(){let t=or(),e=null;return t==="windows"?e=(0,ft.spawnSync)("where pnpm",{encoding:"utf-8",shell:!0}).status:t==="linux"?e=(0,ft.spawnSync)("hash pnpm",{encoding:"utf-8",shell:!0}).status:t==="mac"&&(e=(0,ft.spawnSync)("hash pnpm",{encoding:"utf-8",shell:!0}).status),e===0}function or(){let t=bh.default.type();return t==="Windows_NT"?"windows":t==="Linux"?"linux":t==="Darwin"?"mac":"undefined"}function ar(){let t=Z.repository.url.replace(/git\+/g,""),e=`REM App Name: Domain Designer Cli
127
127
  REM Script Version: ${Z.version}
128
128
  REM Repo Addr: ${t}
129
129
  REM Package Manager: ${process.env.PACKAGE_MANAGER}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-tool/domain-designer-cli",
3
- "version": "0.0.0-alpha.21",
3
+ "version": "0.0.0-alpha.22",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "type": "module",
@@ -27,8 +27,8 @@
27
27
  "repository": "https://github.com/ddd-tool/domain-designer-cli-node",
28
28
  "license": "Apache-2.0",
29
29
  "devDependencies": {
30
- "@ddd-tool/domain-designer-core": "0.0.0-alpha.12",
31
- "@ddd-tool/domain-designer-ui-component": "0.0.0-alpha.14",
30
+ "@ddd-tool/domain-designer-core": "0.0.0-alpha.16",
31
+ "@ddd-tool/domain-designer-ui-component": "0.0.0-alpha.15",
32
32
  "@primevue/themes": "^4.2.5",
33
33
  "@types/node": "^22.10.2",
34
34
  "@vitejs/plugin-vue": "^5.2.1",
@@ -38,6 +38,7 @@
38
38
  "primevue": "^4.2.5",
39
39
  "typescript": "^5.7.2",
40
40
  "vite": "^6.0.5",
41
+ "vite-plugin-top-level-await": "^1.4.4",
41
42
  "vue": "^3.5.13",
42
43
  "vue-tsc": "^2.1.10"
43
44
  },
@@ -0,0 +1,4 @@
1
+ import { type DomainDesigner, type Warning } from './define';
2
+ export declare function checkDomainDesigner(d: DomainDesigner): Record<string, Warning[]>;
3
+ export declare function checkStory(d: DomainDesigner, story: string, r?: Record<string, Warning[]>): Record<string, Warning[]>;
4
+ export declare function checkWorkflow(d: DomainDesigner, workflow: string, r?: Record<string, Warning[]>): Record<string, Warning[]>;
@@ -21,7 +21,7 @@ export type DomainDesignInternalContext = ReturnType<typeof createInternalContex
21
21
  declare function createInternalContext(initFn: ContextInitializer): {
22
22
  startWorkflow(name: string): string;
23
23
  defineUserStory(name: string, workflowNames: NonEmptyArray<string>): void;
24
- linkTo(srcRule: Rule, srcCode: string, targetRule: Rule, targetCode: string, linkType?: LinkType): void;
24
+ linkTo(srcRule: Rule, srcId: string, targetRule: Rule, targetId: string, linkType?: LinkType): void;
25
25
  getId(): string;
26
26
  getWorkflows(): Record<string, string[]>;
27
27
  getUserStories(): Record<string, string[]>;
@@ -191,6 +191,13 @@ export type DomainDesignReadModel<INFOS extends DomainDesignInfoObject> = Readon
191
191
  export type DomainDesignOptions = {
192
192
  toFormatType?: 'BngleBrackets' | 'JSON' | 'JSONPretty';
193
193
  };
194
+ export type Warning = {
195
+ _attributes: {
196
+ rule: 'CheckResult';
197
+ };
198
+ type: 'warning';
199
+ message: string;
200
+ };
194
201
  export type NonEmptyArray<T> = [T, ...T[]];
195
202
  export type NonEmptyObject<T extends object> = keyof T extends never ? never : T;
196
203
  export type NonEmptyInitFunc<T extends () => object> = keyof ReturnType<T> extends never ? never : T;
@@ -205,3 +212,225 @@ export declare function isDomainDesignPolicy(param: any): param is DomainDesignP
205
212
  export declare function isDomainDesignReadModel(param: any): param is DomainDesignReadModel<any>;
206
213
  export declare function isDomainDesignService(param: any): param is DomainDesignService;
207
214
  export declare function isDomainDesignSystem(param: any): param is DomainDesignSystem;
215
+ export declare function isDomainDesigner(param: any): param is DomainDesigner;
216
+ export type DomainDesigner = {
217
+ startWorkflow: (name: string) => string;
218
+ defineUserStory: (name: string, workflowNames: import('./define').NonEmptyArray<string>) => void;
219
+ desc: import('./define').DomainDesignDescProvider;
220
+ info: {
221
+ document<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Document', NAME>;
222
+ func<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Function', NAME>;
223
+ func<NAME extends string>(name: NAME, dependsOn: import('./define').NonEmptyArray<import('./define').DomainDesignInfoFuncDependsOn | string | [string, string | import('./define').DomainDesignDesc]>, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Function', NAME>;
224
+ id<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Id', NAME>;
225
+ valueObj<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'ValueObject', NAME>;
226
+ version<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Version', NAME>;
227
+ };
228
+ actor: import('./define').DomainDesignActorProvider;
229
+ command: import('./define').DomainDesignCommandProvider;
230
+ facadeCmd: import('./define').DomainDesignFacadeCommandProvider;
231
+ agg: import('./define').DomainDesignAggProvider;
232
+ event: import('./define').DomainDesignEventProvider;
233
+ system: import('./define').DomainDesignSystemProvider;
234
+ policy: import('./define').DomainDesignPolicyProvider;
235
+ service: import('./define').DomainDesignServiceProvider;
236
+ readModel: import('./define').DomainDesignReadModelProvider;
237
+ _getContext: () => {
238
+ startWorkflow(name: string): string;
239
+ defineUserStory(name: string, workflowNames: import('./define').NonEmptyArray<string>): void;
240
+ linkTo(srcRule: 'Info' | 'Actor' | 'Command' | 'FacadeCommand' | 'Agg' | 'Event' | 'Policy' | 'Service' | 'System' | 'ReadModel', srcCode: string, targetRule: 'Info' | 'Actor' | 'Command' | 'FacadeCommand' | 'Agg' | 'Event' | 'Policy' | 'Service' | 'System' | 'ReadModel', targetCode: string, linkType?: import('./common').LinkType): void;
241
+ getId(): string;
242
+ getWorkflows(): Record<string, string[]>;
243
+ getUserStories(): Record<string, string[]>;
244
+ getLinks(): Record<string, import('./common').LinkType>;
245
+ getIdMap(): Record<string, object>;
246
+ getCommands(): Readonly<{
247
+ readonly _attributes: {
248
+ __id: string;
249
+ rule: 'Command';
250
+ name: string;
251
+ infos: any;
252
+ description?: Readonly<{
253
+ readonly _attributes: {
254
+ rule: 'Desc';
255
+ readonly template: TemplateStringsArray;
256
+ readonly values: import('./define').DomainDesignDescValue[];
257
+ };
258
+ }> | undefined;
259
+ };
260
+ inner: any;
261
+ agg<AGG extends import('./define').DomainDesignAgg<any>>(agg: AGG): AGG;
262
+ agg<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, agg: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignAgg<import('./define').CustomInfoArrayToInfoObject<ARR>>;
263
+ toFormat(): string;
264
+ }>[];
265
+ getFacadeCommands(): Readonly<{
266
+ readonly _attributes: {
267
+ __id: string;
268
+ rule: 'FacadeCommand';
269
+ name: string;
270
+ infos: any;
271
+ description?: Readonly<{
272
+ readonly _attributes: {
273
+ rule: 'Desc';
274
+ readonly template: TemplateStringsArray;
275
+ readonly values: import('./define').DomainDesignDescValue[];
276
+ };
277
+ }> | undefined;
278
+ };
279
+ inner: any;
280
+ agg<AGG extends import('./define').DomainDesignAgg<any>>(agg: AGG): AGG;
281
+ agg<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, agg: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignAgg<import('./define').CustomInfoArrayToInfoObject<ARR>>;
282
+ service(service: import('./define').DomainDesignService): import('./define').DomainDesignService;
283
+ service(name: string, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignService;
284
+ toFormat(): string;
285
+ }>[];
286
+ getActors(): Readonly<{
287
+ readonly _attributes: {
288
+ __id: string;
289
+ rule: 'Actor';
290
+ name: string;
291
+ description?: import('./define').DomainDesignDesc;
292
+ };
293
+ command<COMMAND extends import('./define').DomainDesignCommand<any>>(command: COMMAND): COMMAND;
294
+ command<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').DomainDesignInfo<import('./define').DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignCommand<import('./define').CustomInfoArrayToInfoObject<ARR>>;
295
+ facadeCmd<FACADECMD extends import('./define').DomainDesignFacadeCommand<any>>(command: FACADECMD): FACADECMD;
296
+ facadeCmd<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').DomainDesignInfo<import('./define').DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignFacadeCommand<import('./define').CustomInfoArrayToInfoObject<ARR>>;
297
+ readModel<READ_MODEL extends import('./define').DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
298
+ readModel<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').DomainDesignInfo<import('./define').DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | import('./define').NonEmptyInitFunc<() => ARR>): import('./define').DomainDesignReadModel<import('./define').CustomInfoArrayToInfoObject<ARR>>;
299
+ toFormat(): string;
300
+ }>[];
301
+ getEvents(): Readonly<{
302
+ readonly _attributes: {
303
+ __id: string;
304
+ rule: 'Event';
305
+ name: string;
306
+ infos: any;
307
+ description?: Readonly<{
308
+ readonly _attributes: {
309
+ rule: 'Desc';
310
+ readonly template: TemplateStringsArray;
311
+ readonly values: import('./define').DomainDesignDescValue[];
312
+ };
313
+ }> | undefined;
314
+ };
315
+ inner: any;
316
+ policy(policy: import('./define').DomainDesignPolicy): import('./define').DomainDesignPolicy;
317
+ policy(name: string, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignPolicy;
318
+ system(system: import('./define').DomainDesignSystem): import('./define').DomainDesignSystem;
319
+ system(name: string, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignSystem;
320
+ readModel<READ_MODEL extends import('./define').DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
321
+ readModel<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, infos: ARR | import('./define').NonEmptyInitFunc<() => ARR>): import('./define').DomainDesignReadModel<import('./define').CustomInfoArrayToInfoObject<ARR>>;
322
+ toFormat(): string;
323
+ }>[];
324
+ getPolicies(): Readonly<{
325
+ readonly _attributes: {
326
+ __id: string;
327
+ rule: 'Policy';
328
+ name: string;
329
+ description?: import('./define').DomainDesignDesc;
330
+ };
331
+ service(service: import('./define').DomainDesignService): import('./define').DomainDesignService;
332
+ service(name: string, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignService;
333
+ toFormat(): string;
334
+ }>[];
335
+ getServices(): Readonly<{
336
+ readonly _attributes: {
337
+ __id: string;
338
+ rule: 'Service';
339
+ name: string;
340
+ description?: import('./define').DomainDesignDesc;
341
+ };
342
+ command<COMMAND extends import('./define').DomainDesignCommand<any>>(command: COMMAND): COMMAND;
343
+ command<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignCommand<import('./define').CustomInfoArrayToInfoObject<ARR>>;
344
+ facadeCmd<FACADECMD extends import('./define').DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
345
+ facadeCmd<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignFacadeCommand<import('./define').CustomInfoArrayToInfoObject<ARR>>;
346
+ agg<AGG extends import('./define').DomainDesignAgg<any>>(agg: AGG): AGG;
347
+ agg<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, agg: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignAgg<import('./define').CustomInfoArrayToInfoObject<ARR>>;
348
+ toFormat(): string;
349
+ }>[];
350
+ getSystems(): Readonly<{
351
+ readonly _attributes: {
352
+ __id: string;
353
+ rule: 'System';
354
+ name: string;
355
+ description?: import('./define').DomainDesignDesc;
356
+ };
357
+ command<COMMAND extends import('./define').DomainDesignCommand<any>>(command: COMMAND): COMMAND;
358
+ command<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignCommand<import('./define').CustomInfoArrayToInfoObject<ARR>>;
359
+ facadeCmd<FACADECMD extends import('./define').DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
360
+ facadeCmd<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignFacadeCommand<import('./define').CustomInfoArrayToInfoObject<ARR>>;
361
+ toFormat(): string;
362
+ }>[];
363
+ getAggs(): Readonly<{
364
+ readonly _attributes: {
365
+ __id: string;
366
+ rule: 'Agg';
367
+ name: string;
368
+ infos: any;
369
+ description?: Readonly<{
370
+ readonly _attributes: {
371
+ rule: 'Desc';
372
+ readonly template: TemplateStringsArray;
373
+ readonly values: import('./define').DomainDesignDescValue[];
374
+ };
375
+ }> | undefined;
376
+ };
377
+ inner: any;
378
+ event<EVENT extends import('./define').DomainDesignEvent<any>>(event: EVENT): EVENT;
379
+ event<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignEvent<import('./define').CustomInfoArrayToInfoObject<ARR>>;
380
+ toFormat(): string;
381
+ }>[];
382
+ getReadModels(): Readonly<{
383
+ readonly _attributes: {
384
+ __id: string;
385
+ rule: 'ReadModel';
386
+ name: string;
387
+ infos: any;
388
+ description?: Readonly<{
389
+ readonly _attributes: {
390
+ rule: 'Desc';
391
+ readonly template: TemplateStringsArray;
392
+ readonly values: import('./define').DomainDesignDescValue[];
393
+ };
394
+ }> | undefined;
395
+ };
396
+ inner: any;
397
+ toFormat(): string;
398
+ }>[];
399
+ registerInfo(info: import('./define').DomainDesignInfo<any, any>): void;
400
+ registerCommand(command: import('./define').DomainDesignCommand<any>): void;
401
+ registerFacadeCommand(command: import('./define').DomainDesignFacadeCommand<any>): void;
402
+ registerActor(actor: import('./define').DomainDesignActor): void;
403
+ registerEvent(event: import('./define').DomainDesignEvent<any>): void;
404
+ registerPolicy(policy: import('./define').DomainDesignPolicy): void;
405
+ registerService(service: import('./define').DomainDesignService): void;
406
+ registerSystem(system: import('./define').DomainDesignSystem): void;
407
+ registerAgg(agg: import('./define').DomainDesignAgg<any>): void;
408
+ registerReadModel(readModel: import('./define').DomainDesignReadModel<any>): void;
409
+ customInfoArrToInfoObj<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(arr: ARR): import('./define').CustomInfoArrayToInfoObject<ARR>;
410
+ customInfoArrToInfoArr<G_NAME extends string, ARR extends import('./define').NonEmptyArray<import('./define').CustomInfo<G_NAME>>>(arr: ARR): import('./define').DomainDesignInfo<import('./define').DomainDesignInfoType, string>[];
411
+ toFormat<OBJ extends {
412
+ _attributes: {
413
+ __id: string;
414
+ name: string;
415
+ };
416
+ }>(obj: OBJ): string;
417
+ createDesc: import('./define').DomainDesignDescProvider;
418
+ info: {
419
+ document<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Document', NAME>;
420
+ func<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Function', NAME>;
421
+ func<NAME extends string>(name: NAME, dependsOn: import('./define').NonEmptyArray<import('./define').DomainDesignInfoFuncDependsOn | string | [string, string | import('./define').DomainDesignDesc]>, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Function', NAME>;
422
+ id<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Id', NAME>;
423
+ valueObj<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'ValueObject', NAME>;
424
+ version<NAME extends string>(name: NAME, desc?: string | import('./define').DomainDesignDesc): import('./define').DomainDesignInfo<'Version', NAME>;
425
+ };
426
+ createPersion: import('./define').DomainDesignActorProvider;
427
+ createCommand: import('./define').DomainDesignCommandProvider;
428
+ createFacadeCommand: import('./define').DomainDesignFacadeCommandProvider;
429
+ createAgg: import('./define').DomainDesignAggProvider;
430
+ createEvent: import('./define').DomainDesignEventProvider;
431
+ createPolicy: import('./define').DomainDesignPolicyProvider;
432
+ createService: import('./define').DomainDesignServiceProvider;
433
+ createSystem: import('./define').DomainDesignSystemProvider;
434
+ createReadModel: import('./define').DomainDesignReadModelProvider;
435
+ };
436
+ };
@@ -1,227 +1,4 @@
1
- import { DomainDesignOptions } from './define';
2
- export declare function createDomainDesigner(opts?: DomainDesignOptions): {
3
- startWorkflow: (name: string) => string;
4
- defineUserStory: (name: string, workflowNames: import("./define").NonEmptyArray<string>) => void;
5
- desc: import("./define").DomainDesignDescProvider;
6
- info: {
7
- document<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Document", NAME>;
8
- func<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Function", NAME>;
9
- func<NAME extends string>(name: NAME, dependsOn: import("./define").NonEmptyArray<import("./define").DomainDesignInfoFuncDependsOn | string | [string, string | import("./define").DomainDesignDesc]>, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Function", NAME>;
10
- id<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Id", NAME>;
11
- valueObj<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"ValueObject", NAME>;
12
- version<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Version", NAME>;
13
- };
14
- actor: import("./define").DomainDesignActorProvider;
15
- command: import("./define").DomainDesignCommandProvider;
16
- facadeCmd: import("./define").DomainDesignFacadeCommandProvider;
17
- agg: import("./define").DomainDesignAggProvider;
18
- event: import("./define").DomainDesignEventProvider;
19
- system: import("./define").DomainDesignSystemProvider;
20
- policy: import("./define").DomainDesignPolicyProvider;
21
- service: import("./define").DomainDesignServiceProvider;
22
- readModel: import("./define").DomainDesignReadModelProvider;
23
- _getContext: () => {
24
- startWorkflow(name: string): string;
25
- defineUserStory(name: string, workflowNames: import("./define").NonEmptyArray<string>): void;
26
- 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("./common").LinkType): void;
27
- getId(): string;
28
- getWorkflows(): Record<string, string[]>;
29
- getUserStories(): Record<string, string[]>;
30
- getLinks(): Record<string, import("./common").LinkType>;
31
- getIdMap(): Record<string, object>;
32
- getCommands(): Readonly<{
33
- readonly _attributes: {
34
- __id: string;
35
- rule: "Command";
36
- name: string;
37
- infos: any;
38
- description?: Readonly<{
39
- readonly _attributes: {
40
- rule: "Desc";
41
- readonly template: TemplateStringsArray;
42
- readonly values: import("./define").DomainDesignDescValue[];
43
- };
44
- }> | undefined;
45
- };
46
- inner: any;
47
- agg<AGG extends import("./define").DomainDesignAgg<any>>(agg: AGG): AGG;
48
- agg<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, agg: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignAgg<import("./define").CustomInfoArrayToInfoObject<ARR>>;
49
- toFormat(): string;
50
- }>[];
51
- getFacadeCommands(): Readonly<{
52
- readonly _attributes: {
53
- __id: string;
54
- rule: "FacadeCommand";
55
- name: string;
56
- infos: any;
57
- description?: Readonly<{
58
- readonly _attributes: {
59
- rule: "Desc";
60
- readonly template: TemplateStringsArray;
61
- readonly values: import("./define").DomainDesignDescValue[];
62
- };
63
- }> | undefined;
64
- };
65
- inner: any;
66
- agg<AGG extends import("./define").DomainDesignAgg<any>>(agg: AGG): AGG;
67
- agg<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, agg: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignAgg<import("./define").CustomInfoArrayToInfoObject<ARR>>;
68
- service(service: import("./define").DomainDesignService): import("./define").DomainDesignService;
69
- service(name: string, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignService;
70
- toFormat(): string;
71
- }>[];
72
- getActors(): Readonly<{
73
- readonly _attributes: {
74
- __id: string;
75
- rule: "Actor";
76
- name: string;
77
- description?: import("./define").DomainDesignDesc;
78
- };
79
- command<COMMAND extends import("./define").DomainDesignCommand<any>>(command: COMMAND): COMMAND;
80
- command<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").DomainDesignInfo<import("./define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignCommand<import("./define").CustomInfoArrayToInfoObject<ARR>>;
81
- facadeCmd<FACADECMD extends import("./define").DomainDesignFacadeCommand<any>>(command: FACADECMD): FACADECMD;
82
- facadeCmd<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").DomainDesignInfo<import("./define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignFacadeCommand<import("./define").CustomInfoArrayToInfoObject<ARR>>;
83
- readModel<READ_MODEL extends import("./define").DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
84
- readModel<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").DomainDesignInfo<import("./define").DomainDesignInfoType, G_NAME> | G_NAME>>(name: string, infos: ARR | import("./define").NonEmptyInitFunc<() => ARR>): import("./define").DomainDesignReadModel<import("./define").CustomInfoArrayToInfoObject<ARR>>;
85
- toFormat(): string;
86
- }>[];
87
- getEvents(): Readonly<{
88
- readonly _attributes: {
89
- __id: string;
90
- rule: "Event";
91
- name: string;
92
- infos: any;
93
- description?: Readonly<{
94
- readonly _attributes: {
95
- rule: "Desc";
96
- readonly template: TemplateStringsArray;
97
- readonly values: import("./define").DomainDesignDescValue[];
98
- };
99
- }> | undefined;
100
- };
101
- inner: any;
102
- policy(policy: import("./define").DomainDesignPolicy): import("./define").DomainDesignPolicy;
103
- policy(name: string, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignPolicy;
104
- system(system: import("./define").DomainDesignSystem): import("./define").DomainDesignSystem;
105
- system(name: string, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignSystem;
106
- readModel<READ_MODEL extends import("./define").DomainDesignReadModel<any>>(readModel: READ_MODEL): READ_MODEL;
107
- readModel<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, infos: ARR | import("./define").NonEmptyInitFunc<() => ARR>): import("./define").DomainDesignReadModel<import("./define").CustomInfoArrayToInfoObject<ARR>>;
108
- toFormat(): string;
109
- }>[];
110
- getPolicies(): Readonly<{
111
- readonly _attributes: {
112
- __id: string;
113
- rule: "Policy";
114
- name: string;
115
- description?: import("./define").DomainDesignDesc;
116
- };
117
- service(service: import("./define").DomainDesignService): import("./define").DomainDesignService;
118
- service(name: string, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignService;
119
- toFormat(): string;
120
- }>[];
121
- getServices(): Readonly<{
122
- readonly _attributes: {
123
- __id: string;
124
- rule: "Service";
125
- name: string;
126
- description?: import("./define").DomainDesignDesc;
127
- };
128
- command<COMMAND extends import("./define").DomainDesignCommand<any>>(command: COMMAND): COMMAND;
129
- command<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignCommand<import("./define").CustomInfoArrayToInfoObject<ARR>>;
130
- facadeCmd<FACADECMD extends import("./define").DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
131
- facadeCmd<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignFacadeCommand<import("./define").CustomInfoArrayToInfoObject<ARR>>;
132
- agg<AGG extends import("./define").DomainDesignAgg<any>>(agg: AGG): AGG;
133
- agg<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, agg: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignAgg<import("./define").CustomInfoArrayToInfoObject<ARR>>;
134
- toFormat(): string;
135
- }>[];
136
- getSystems(): Readonly<{
137
- readonly _attributes: {
138
- __id: string;
139
- rule: "System";
140
- name: string;
141
- description?: import("./define").DomainDesignDesc;
142
- };
143
- command<COMMAND extends import("./define").DomainDesignCommand<any>>(command: COMMAND): COMMAND;
144
- command<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignCommand<import("./define").CustomInfoArrayToInfoObject<ARR>>;
145
- facadeCmd<FACADECMD extends import("./define").DomainDesignFacadeCommand<any>>(facadeCmd: FACADECMD): FACADECMD;
146
- facadeCmd<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignFacadeCommand<import("./define").CustomInfoArrayToInfoObject<ARR>>;
147
- toFormat(): string;
148
- }>[];
149
- getAggs(): Readonly<{
150
- readonly _attributes: {
151
- __id: string;
152
- rule: "Agg";
153
- name: string;
154
- infos: any;
155
- description?: Readonly<{
156
- readonly _attributes: {
157
- rule: "Desc";
158
- readonly template: TemplateStringsArray;
159
- readonly values: import("./define").DomainDesignDescValue[];
160
- };
161
- }> | undefined;
162
- };
163
- inner: any;
164
- event<EVENT extends import("./define").DomainDesignEvent<any>>(event: EVENT): EVENT;
165
- event<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(name: string, infos: ARR, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignEvent<import("./define").CustomInfoArrayToInfoObject<ARR>>;
166
- toFormat(): string;
167
- }>[];
168
- getReadModels(): Readonly<{
169
- readonly _attributes: {
170
- __id: string;
171
- rule: "ReadModel";
172
- name: string;
173
- infos: any;
174
- description?: Readonly<{
175
- readonly _attributes: {
176
- rule: "Desc";
177
- readonly template: TemplateStringsArray;
178
- readonly values: import("./define").DomainDesignDescValue[];
179
- };
180
- }> | undefined;
181
- };
182
- inner: any;
183
- toFormat(): string;
184
- }>[];
185
- registerInfo(info: import("./define").DomainDesignInfo<any, any>): void;
186
- registerCommand(command: import("./define").DomainDesignCommand<any>): void;
187
- registerFacadeCommand(command: import("./define").DomainDesignFacadeCommand<any>): void;
188
- registerActor(actor: import("./define").DomainDesignActor): void;
189
- registerEvent(event: import("./define").DomainDesignEvent<any>): void;
190
- registerPolicy(policy: import("./define").DomainDesignPolicy): void;
191
- registerService(service: import("./define").DomainDesignService): void;
192
- registerSystem(system: import("./define").DomainDesignSystem): void;
193
- registerAgg(agg: import("./define").DomainDesignAgg<any>): void;
194
- registerReadModel(readModel: import("./define").DomainDesignReadModel<any>): void;
195
- customInfoArrToInfoObj<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(arr: ARR): import("./define").CustomInfoArrayToInfoObject<ARR>;
196
- customInfoArrToInfoArr<G_NAME extends string, ARR extends import("./define").NonEmptyArray<import("./define").CustomInfo<G_NAME>>>(arr: ARR): import("./define").DomainDesignInfo<import("./define").DomainDesignInfoType, string>[];
197
- toFormat<OBJ extends {
198
- _attributes: {
199
- __id: string;
200
- name: string;
201
- };
202
- }>(obj: OBJ): string;
203
- createDesc: import("./define").DomainDesignDescProvider;
204
- info: {
205
- document<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Document", NAME>;
206
- func<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Function", NAME>;
207
- func<NAME extends string>(name: NAME, dependsOn: import("./define").NonEmptyArray<import("./define").DomainDesignInfoFuncDependsOn | string | [string, string | import("./define").DomainDesignDesc]>, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Function", NAME>;
208
- id<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Id", NAME>;
209
- valueObj<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"ValueObject", NAME>;
210
- version<NAME extends string>(name: NAME, desc?: string | import("./define").DomainDesignDesc): import("./define").DomainDesignInfo<"Version", NAME>;
211
- };
212
- createPersion: import("./define").DomainDesignActorProvider;
213
- createCommand: import("./define").DomainDesignCommandProvider;
214
- createFacadeCommand: import("./define").DomainDesignFacadeCommandProvider;
215
- createAgg: import("./define").DomainDesignAggProvider;
216
- createEvent: import("./define").DomainDesignEventProvider;
217
- createPolicy: import("./define").DomainDesignPolicyProvider;
218
- createService: import("./define").DomainDesignServiceProvider;
219
- createSystem: import("./define").DomainDesignSystemProvider;
220
- createReadModel: import("./define").DomainDesignReadModelProvider;
221
- };
222
- };
223
- export type DomainDesigner = ReturnType<typeof createDomainDesigner>;
224
- export type { DomainDesignAgg, DomainDesignCommand, DomainDesignFacadeCommand, DomainDesignDesc, DomainDesignEvent, DomainDesignInfo, DomainDesignInfoType, DomainDesignActor, DomainDesignSystem, DomainDesignService, DomainDesignPolicy, } from './define';
225
- export { isDomainDesignInfo, isDomainDesignInfoFunc, isDomainDesignActor, isDomainDesignAgg, isDomainDesignCommand, isDomainDesignFacadeCommand, isDomainDesignEvent, isDomainDesignPolicy, isDomainDesignReadModel, isDomainDesignService, isDomainDesignSystem, } from './define';
226
- declare function isDomainDesigner(param: any): param is DomainDesigner;
227
- export { isDomainDesigner };
1
+ import { DomainDesigner, DomainDesignOptions } from './define';
2
+ export declare function createDomainDesigner(opts?: DomainDesignOptions): DomainDesigner;
3
+ export { type DomainDesigner, type DomainDesignAgg, type DomainDesignCommand, type DomainDesignFacadeCommand, type DomainDesignDesc, type DomainDesignEvent, type DomainDesignInfo, type DomainDesignInfoType, type DomainDesignActor, type DomainDesignSystem, type DomainDesignService, type DomainDesignPolicy, isDomainDesignInfo, isDomainDesignInfoFunc, isDomainDesignActor, isDomainDesignAgg, isDomainDesignCommand, isDomainDesignFacadeCommand, isDomainDesignEvent, isDomainDesignPolicy, isDomainDesignReadModel, isDomainDesignService, isDomainDesignSystem, isDomainDesigner, } from './define';
4
+ export { checkDomainDesigner, checkStory, checkWorkflow } from './check';
@@ -1 +1 @@
1
- 0.0.0-alpha.21
1
+ 0.0.0-alpha.22
package/vite.config.ts CHANGED
@@ -2,9 +2,18 @@ import { fileURLToPath, URL } from 'url'
2
2
 
3
3
  import { defineConfig } from 'vite'
4
4
  import vue from '@vitejs/plugin-vue'
5
+ import topLevelAwait from 'vite-plugin-top-level-await'
5
6
 
6
7
  export default defineConfig({
7
- plugins: [vue()],
8
+ plugins: [
9
+ vue(),
10
+ topLevelAwait({
11
+ // The export name of top-level await promise for each chunk module
12
+ promiseExportName: '__tla',
13
+ // The function to generate import names of top-level await promise in each chunk module
14
+ promiseImportName: (i) => `__tla_${i}`,
15
+ }),
16
+ ],
8
17
  esbuild: {
9
18
  drop: ['console', 'debugger'], // 移除 console 和 debugger 语句
10
19
  },