@tbox.cn/app-cli 0.4.2 → 0.5.1
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/README.md +1 -1
- package/dist/{chunk-SGF4P5YN.js → chunk-D4Z67K2V.js} +1 -1
- package/dist/chunk-IA5ZAM5W.js +16 -0
- package/dist/{contracts-resolver-UQGGTGAO.js → contracts-resolver-ABE4US6D.js} +1 -1
- package/dist/declared-TVLLELHR.js +2 -0
- package/dist/index.js +87 -65
- package/package.json +3 -3
- package/starter/agent-mall.md +15 -12
- package/starter/agent.md +9 -9
- package/dist/chunk-GY4SXKTS.js +0 -16
- package/dist/declared-4SBML2FU.js +0 -2
- package/starter/agent-support.md +0 -38
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tbox.cn/app-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "tbox-app CLI:create / module add|remove|list|sync|diff|doctor|update|publish / start|stop|eval 智能体评测(纯函数核心 + commander 薄壳)。",
|
|
6
6
|
"bin": {
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
"yaml": "2.9.0",
|
|
28
28
|
"typescript": "5.9.3",
|
|
29
29
|
"zod": "3.25.76",
|
|
30
|
-
"@tbox.cn/app-toolkit": "0.
|
|
30
|
+
"@tbox.cn/app-toolkit": "0.3.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/diff": "7.0.2",
|
|
34
34
|
"@types/node": "24.13.3",
|
|
35
35
|
"tsup": "8.5.1",
|
|
36
36
|
"vitest": "4.1.10",
|
|
37
|
-
"@tbox.cn/app-contracts": "0.
|
|
37
|
+
"@tbox.cn/app-contracts": "0.10.0"
|
|
38
38
|
},
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"publishConfig": {
|
package/starter/agent-mall.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# tbox starter: agent-mall
|
|
2
2
|
|
|
3
|
-
这是商圈 AI Agent
|
|
3
|
+
这是商圈 AI Agent 应用的启动指南,适合构建导购、会员、停车、优惠、支付宝活动和客服等商圈能力。starter 只负责告诉 agent 如何选择应用模板和模块;它不是应用模板,不能作为 `tbox-app create --source` 的源。
|
|
4
4
|
|
|
5
5
|
## 初始化
|
|
6
6
|
|
|
@@ -9,25 +9,30 @@ CLI 免安装:指南命令以 `tbox-app` 短名书写;任意 `tbox-app <cmd>
|
|
|
9
9
|
在沙箱 `/workspace` 中直接初始化当前目录,不要把应用生成到新的子目录:
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
tbox-app create . --name my-mall --source @tbox.cn/app-template-agent
|
|
12
|
+
tbox-app create . --name my-mall --source @tbox.cn/app-template-agent --profile mall
|
|
13
13
|
pnpm install
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
`--name` 会写入根 `package.json.name
|
|
16
|
+
`--name` 会写入根 `package.json.name`。`--profile mall` 按模板 `profiles/mall.json` 自动加装 mall-core、mall-home(家页形态 home 槽主屏)与六个业务域模块(下表),并叠加 `profiles/mall/config`(商圈提示词/快捷指令/知识库)到应用 `config/`。初始化会用应用模板的 `AGENTS.md` 覆盖 starter 的 `AGENTS.md`,但会保留 `.git`、`.agents/skills` 中的非冲突内容以及其他未被模板声明的文件。
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## 形态
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
单一应用模板 `@tbox.cn/app-template-agent`;mall 形态经 `--profile mall` 画像加装,缺省 create(不带 `--profile`)为空装配 chat 形态。商圈主屏、商圈 scope 和 mock-only 默认配置均为画像加装产物;provider 轴独立(缺省 mock-only 演示态,真实接入后续 add)。
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
## 模板与模块
|
|
23
|
+
|
|
24
|
+
可按需添加以下业务模块(`--profile mall` 已自动加装;手工补装/重装时参考):
|
|
23
25
|
|
|
24
26
|
| 包 | 能力 |
|
|
25
27
|
|---|---|
|
|
28
|
+
| `@tbox.cn/app-module-mall-core` | 商圈 scope 域装配注册、mall-info 工具与 mall-directory 服务 |
|
|
29
|
+
| `@tbox.cn/app-module-mall-home` | 家页形态 home 槽:MallHome 主屏、会员门禁浮层、联单详情 |
|
|
26
30
|
| `@tbox.cn/app-module-shopping-guide` | 商户、商品、目录、导购和知识问答 |
|
|
27
31
|
| `@tbox.cn/app-module-member` | 会员信息、积分、会员卡和入会 |
|
|
28
32
|
| `@tbox.cn/app-module-parking` | 停车费用、车辆、支付、记录和开票 |
|
|
29
33
|
| `@tbox.cn/app-module-promotion` | 活动、优惠、券查询、领取和优惠测算 |
|
|
30
34
|
| `@tbox.cn/app-module-alipay-activity` | 支付宝碰一下活动查询与展示 |
|
|
35
|
+
| `@tbox.cn/app-module-customer-service` | 服务政策 FAQ 知识检索、转述作答与转人工承接 |
|
|
31
36
|
|
|
32
37
|
安装示例:
|
|
33
38
|
|
|
@@ -40,6 +45,8 @@ tbox-app module doctor
|
|
|
40
45
|
|
|
41
46
|
业务模块依赖的 `@tbox.cn/app-contracts-mall` 由 CLI 按模块声明自动处理。provider 是独立的集成包,不要从业务模块中直接 import;真实接入使用 provider 包和 `tbox-app provider bind`。
|
|
42
47
|
|
|
48
|
+
主题(品牌视觉):出厂接线 `@tbox.cn/app-theme-tbox`;换主题用 `tbox-app theme use <id>`(私有主题 `--source <目录|tgz>`),`tbox-app theme list` 查看接线状态;开发期临时换主题 `tbox-app dev --theme <id>`(文件零改动)。
|
|
49
|
+
|
|
43
50
|
## 常用流程
|
|
44
51
|
|
|
45
52
|
```sh
|
|
@@ -47,10 +54,6 @@ pnpm install
|
|
|
47
54
|
pnpm dev
|
|
48
55
|
```
|
|
49
56
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
```sh
|
|
53
|
-
tbox-app starter --type agent-mall
|
|
54
|
-
```
|
|
57
|
+
## 回查
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
需要重新查看本指南时运行 `tbox-app starter --type agent-mall`。模块形态、provider、凭证和真实环境配置以生成应用中的 `AGENTS.md`、`ENV.md` 与 CLI 输出为准。凭证只使用 `credentialRef` 或平台环境注入,不写入应用源码。
|
package/starter/agent.md
CHANGED
|
@@ -15,11 +15,13 @@ pnpm install
|
|
|
15
15
|
|
|
16
16
|
`--name` 会写入根 `package.json.name`。初始化会用应用模板的 `AGENTS.md` 覆盖 starter 的 `AGENTS.md`,但会保留 `.git`、`.agents/skills` 中的非冲突内容以及其他未被模板声明的文件。
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## 形态
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
单一应用模板;缺省 create(不带 `--profile`)为空装配 chat 形态。商圈场景(导购、会员、停车、优惠、支付宝活动、客服)改用 mall 形态:`--profile mall` 画像加装,完整指南见 `tbox-app starter --type agent-mall`。
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
## 模板与模块
|
|
23
|
+
|
|
24
|
+
应用模板:`@tbox.cn/app-template-agent`。模板提供浏览器与支付宝小程序 web-view 共用的 Agent 应用壳,包含 server/client、配置链、模块装配和一个内置的 `module-weather` 示例模块。
|
|
23
25
|
|
|
24
26
|
模块安装使用 codegen 模式。registry 场景必须同时传包名和 `--source`:
|
|
25
27
|
|
|
@@ -27,7 +29,7 @@ pnpm install
|
|
|
27
29
|
tbox-app module add @tbox.cn/app-module-shopping-guide --mode codegen --source @tbox.cn/app-module-shopping-guide
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
主题(品牌视觉):出厂接线 `@tbox.cn/app-theme-tbox`;换主题用 `tbox-app theme use <id>`(私有主题 `--source <目录|tgz>`),`tbox-app theme list` 查看接线状态;开发期临时换主题 `tbox-app dev --theme <id>`(文件零改动)。
|
|
31
33
|
|
|
32
34
|
## 常用流程
|
|
33
35
|
|
|
@@ -37,10 +39,8 @@ tbox-app module doctor
|
|
|
37
39
|
pnpm dev
|
|
38
40
|
```
|
|
39
41
|
|
|
40
|
-
修改模块后重新执行 `pnpm install` 和 `tbox-app module doctor
|
|
42
|
+
修改模块后重新执行 `pnpm install` 和 `tbox-app module doctor`。
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
tbox-app starter --type agent
|
|
44
|
-
```
|
|
44
|
+
## 回查
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
需要重新查看本指南时运行 `tbox-app starter --type agent`。模块形态、装配锚点和 doctor 规则以生成应用中的 `AGENTS.md` 与 CLI 输出为准;不要手写平台包或复制 SDK 源码。
|
package/dist/chunk-GY4SXKTS.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as $,b as _c,c as Dr,d as B,e as qr}from"./chunk-SGF4P5YN.js";var vt=$(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.regexpCode=V.getEsmExportName=V.getProperty=V.safeStringify=V.stringify=V.strConcat=V.addCodeArg=V.str=V._=V.nil=V._Code=V.Name=V.IDENTIFIER=V._CodeOrName=void 0;var gt=class{};V._CodeOrName=gt;V.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var xe=class extends gt{constructor(e){if(super(),!V.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};V.Name=xe;var ce=class extends gt{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof xe&&(r[n.str]=(r[n.str]||0)+1),r),{})}};V._Code=ce;V.nil=new ce("");function $i(t,...e){let r=[t[0]],n=0;for(;n<e.length;)rn(r,e[n]),r.push(t[++n]);return new ce(r)}V._=$i;var tn=new ce("+");function bi(t,...e){let r=[yt(t[0])],n=0;for(;n<e.length;)r.push(tn),rn(r,e[n]),r.push(tn,yt(t[++n]));return Zc(r),new ce(r)}V.str=bi;function rn(t,e){e instanceof ce?t.push(...e._items):e instanceof xe?t.push(e):t.push(el(e))}V.addCodeArg=rn;function Zc(t){let e=1;for(;e<t.length-1;){if(t[e]===tn){let r=Qc(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Qc(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof xe||t[t.length-1]!=='"'?void 0:typeof e!="string"?`${t.slice(0,-1)}${e}"`:e[0]==='"'?t.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(t instanceof xe))return`"${t}${e.slice(1)}`}function Xc(t,e){return e.emptyStr()?t:t.emptyStr()?e:bi`${t}${e}`}V.strConcat=Xc;function el(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:yt(Array.isArray(t)?t.join(","):t)}function tl(t){return new ce(yt(t))}V.stringify=tl;function yt(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}V.safeStringify=yt;function rl(t){return typeof t=="string"&&V.IDENTIFIER.test(t)?new ce(`.${t}`):$i`[${t}]`}V.getProperty=rl;function nl(t){if(typeof t=="string"&&V.IDENTIFIER.test(t))return new ce(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}V.getEsmExportName=nl;function sl(t){return new ce(t.toString())}V.regexpCode=sl});var on=$(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.ValueScope=ie.ValueScopeName=ie.Scope=ie.varKinds=ie.UsedValueState=void 0;var se=vt(),nn=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Qt;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Qt||(ie.UsedValueState=Qt={}));ie.varKinds={const:new se.Name("const"),let:new se.Name("let"),var:new se.Name("var")};var Xt=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof se.Name?e:this.name(e)}name(e){return new se.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};ie.Scope=Xt;var er=class extends se.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,se._)`.${new se.Name(r)}[${n}]`}};ie.ValueScopeName=er;var il=(0,se._)`\n`,sn=class extends Xt{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?il:se.nil}}get(){return this._scope}name(e){return new er(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let s=this.toName(e),{prefix:i}=s,o=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[i];if(a){let l=a.get(o);if(l)return l}else a=this._values[i]=new Map;a.set(o,s);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,s.setValue(r,{property:i,itemIndex:u}),s}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,se._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,s=>{if(s.value===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return s.value.code},r,n)}_reduceValues(e,r,n={},s){let i=se.nil;for(let o in e){let a=e[o];if(!a)continue;let c=n[o]=n[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,Qt.Started);let l=r(u);if(l){let f=this.opts.es5?ie.varKinds.var:ie.varKinds.const;i=(0,se._)`${i}${f} ${u} = ${l};${this.opts._n}`}else if(l=s?.(u))i=(0,se._)`${i}${l}${this.opts._n}`;else throw new nn(u);c.set(u,Qt.Completed)})}return i}};ie.ValueScope=sn});var j=$(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.or=C.and=C.not=C.CodeGen=C.operators=C.varKinds=C.ValueScopeName=C.ValueScope=C.Scope=C.Name=C.regexpCode=C.stringify=C.getProperty=C.nil=C.strConcat=C.str=C._=void 0;var M=vt(),pe=on(),Pe=vt();Object.defineProperty(C,"_",{enumerable:!0,get:function(){return Pe._}});Object.defineProperty(C,"str",{enumerable:!0,get:function(){return Pe.str}});Object.defineProperty(C,"strConcat",{enumerable:!0,get:function(){return Pe.strConcat}});Object.defineProperty(C,"nil",{enumerable:!0,get:function(){return Pe.nil}});Object.defineProperty(C,"getProperty",{enumerable:!0,get:function(){return Pe.getProperty}});Object.defineProperty(C,"stringify",{enumerable:!0,get:function(){return Pe.stringify}});Object.defineProperty(C,"regexpCode",{enumerable:!0,get:function(){return Pe.regexpCode}});Object.defineProperty(C,"Name",{enumerable:!0,get:function(){return Pe.Name}});var sr=on();Object.defineProperty(C,"Scope",{enumerable:!0,get:function(){return sr.Scope}});Object.defineProperty(C,"ValueScope",{enumerable:!0,get:function(){return sr.ValueScope}});Object.defineProperty(C,"ValueScopeName",{enumerable:!0,get:function(){return sr.ValueScopeName}});Object.defineProperty(C,"varKinds",{enumerable:!0,get:function(){return sr.varKinds}});C.operators={GT:new M._Code(">"),GTE:new M._Code(">="),LT:new M._Code("<"),LTE:new M._Code("<="),EQ:new M._Code("==="),NEQ:new M._Code("!=="),NOT:new M._Code("!"),OR:new M._Code("||"),AND:new M._Code("&&"),ADD:new M._Code("+")};var $e=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},an=class extends $e{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?pe.varKinds.var:this.varKind,s=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${s};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Ze(this.rhs,e,r)),this}get names(){return this.rhs instanceof M._CodeOrName?this.rhs.names:{}}},tr=class extends $e{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof M.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Ze(this.rhs,e,r),this}get names(){let e=this.lhs instanceof M.Name?{}:{...this.lhs.names};return nr(e,this.rhs)}},cn=class extends tr{constructor(e,r,n,s){super(e,n,s),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},ln=class extends $e{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},dn=class extends $e{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},un=class extends $e{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},fn=class extends $e{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Ze(this.code,e,r),this}get names(){return this.code instanceof M._CodeOrName?this.code.names:{}}},_t=class extends $e{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,s=n.length;for(;s--;){let i=n[s];i.optimizeNames(e,r)||(ol(e,i.names),n.splice(s,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Ve(e,r.names),{})}},be=class extends _t{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},pn=class extends _t{},Ye=class extends be{};Ye.kind="else";var De=class t extends be{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Ye(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Ri(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Ze(this.condition,e,r),this}get names(){let e=super.names;return nr(e,this.condition),this.else&&Ve(e,this.else.names),e}};De.kind="if";var qe=class extends be{};qe.kind="for";var mn=class extends qe{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Ze(this.iteration,e,r),this}get names(){return Ve(super.names,this.iteration.names)}},hn=class extends qe{constructor(e,r,n,s){super(),this.varKind=e,this.name=r,this.from=n,this.to=s}render(e){let r=e.es5?pe.varKinds.var:this.varKind,{name:n,from:s,to:i}=this;return`for(${r} ${n}=${s}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=nr(super.names,this.from);return nr(e,this.to)}},rr=class extends qe{constructor(e,r,n,s){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=s}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Ze(this.iterable,e,r),this}get names(){return Ve(super.names,this.iterable.names)}},wt=class extends be{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};wt.kind="func";var St=class extends _t{render(e){return"return "+super.render(e)}};St.kind="return";var gn=class extends be{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,s;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(s=this.finally)===null||s===void 0||s.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&Ve(e,this.catch.names),this.finally&&Ve(e,this.finally.names),e}},$t=class extends be{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};$t.kind="catch";var bt=class extends be{render(e){return"finally"+super.render(e)}};bt.kind="finally";var yn=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
3
|
-
`:""},this._extScope=e,this._scope=new pe.Scope({parent:e}),this._nodes=[new pn]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,s){let i=this._scope.toName(r);return n!==void 0&&s&&(this._constants[i.str]=n),this._leafNode(new an(e,i,n)),i}const(e,r,n){return this._def(pe.varKinds.const,e,r,n)}let(e,r,n){return this._def(pe.varKinds.let,e,r,n)}var(e,r,n){return this._def(pe.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new tr(e,r,n))}add(e,r){return this._leafNode(new cn(e,C.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==M.nil&&this._leafNode(new fn(e)),this}object(...e){let r=["{"];for(let[n,s]of e)r.length>1&&r.push(","),r.push(n),(n!==s||this.opts.es5)&&(r.push(":"),(0,M.addCodeArg)(r,s));return r.push("}"),new M._Code(r)}if(e,r,n){if(this._blockNode(new De(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new De(e))}else(){return this._elseNode(new Ye)}endIf(){return this._endBlockNode(De,Ye)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new mn(e),r)}forRange(e,r,n,s,i=this.opts.es5?pe.varKinds.var:pe.varKinds.let){let o=this._scope.toName(e);return this._for(new hn(i,o,r,n),()=>s(o))}forOf(e,r,n,s=pe.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let o=r instanceof M.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,M._)`${o}.length`,a=>{this.var(i,(0,M._)`${o}[${a}]`),n(i)})}return this._for(new rr("of",s,i,r),()=>n(i))}forIn(e,r,n,s=this.opts.es5?pe.varKinds.var:pe.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,M._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new rr("in",s,i,r),()=>n(i))}endFor(){return this._endBlockNode(qe)}label(e){return this._leafNode(new ln(e))}break(e){return this._leafNode(new dn(e))}return(e){let r=new St;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(St)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let s=new gn;if(this._blockNode(s),this.code(e),r){let i=this.name("e");this._currNode=s.catch=new $t(i),r(i)}return n&&(this._currNode=s.finally=new bt,this.code(n)),this._endBlockNode($t,bt)}throw(e){return this._leafNode(new un(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=M.nil,n,s){return this._blockNode(new wt(e,r,n)),s&&this.code(s).endFunc(),this}endFunc(){return this._endBlockNode(wt)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof De))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};C.CodeGen=yn;function Ve(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function nr(t,e){return e instanceof M._CodeOrName?Ve(t,e.names):t}function Ze(t,e,r){if(t instanceof M.Name)return n(t);if(!s(t))return t;return new M._Code(t._items.reduce((i,o)=>(o instanceof M.Name&&(o=n(o)),o instanceof M._Code?i.push(...o._items):i.push(o),i),[]));function n(i){let o=r[i.str];return o===void 0||e[i.str]!==1?i:(delete e[i.str],o)}function s(i){return i instanceof M._Code&&i._items.some(o=>o instanceof M.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function ol(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Ri(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,M._)`!${vn(t)}`}C.not=Ri;var al=Ei(C.operators.AND);function cl(...t){return t.reduce(al)}C.and=cl;var ll=Ei(C.operators.OR);function dl(...t){return t.reduce(ll)}C.or=dl;function Ei(t){return(e,r)=>e===M.nil?r:r===M.nil?e:(0,M._)`${vn(e)} ${t} ${vn(r)}`}function vn(t){return t instanceof M.Name?t:(0,M._)`(${t})`}});var D=$(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.checkStrictMode=T.getErrorPath=T.Type=T.useFunc=T.setEvaluated=T.evaluatedPropsToName=T.mergeEvaluated=T.eachItem=T.unescapeJsonPointer=T.escapeJsonPointer=T.escapeFragment=T.unescapeFragment=T.schemaRefOrVal=T.schemaHasRulesButRef=T.schemaHasRules=T.checkUnknownRules=T.alwaysValidSchema=T.toHash=void 0;var L=j(),ul=vt();function fl(t){let e={};for(let r of t)e[r]=!0;return e}T.toHash=fl;function pl(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Pi(t,e),!Oi(e,t.self.RULES.all))}T.alwaysValidSchema=pl;function Pi(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let s=n.RULES.keywords;for(let i in e)s[i]||ji(t,`unknown keyword: "${i}"`)}T.checkUnknownRules=Pi;function Oi(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}T.schemaHasRules=Oi;function ml(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}T.schemaHasRulesButRef=ml;function hl({topSchemaRef:t,schemaPath:e},r,n,s){if(!s){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,L._)`${r}`}return(0,L._)`${t}${e}${(0,L.getProperty)(n)}`}T.schemaRefOrVal=hl;function gl(t){return Ni(decodeURIComponent(t))}T.unescapeFragment=gl;function yl(t){return encodeURIComponent(wn(t))}T.escapeFragment=yl;function wn(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}T.escapeJsonPointer=wn;function Ni(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}T.unescapeJsonPointer=Ni;function vl(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}T.eachItem=vl;function Ii({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(s,i,o,a)=>{let c=o===void 0?i:o instanceof L.Name?(i instanceof L.Name?t(s,i,o):e(s,i,o),o):i instanceof L.Name?(e(s,o,i),i):r(i,o);return a===L.Name&&!(c instanceof L.Name)?n(s,c):c}}T.mergeEvaluated={props:Ii({mergeNames:(t,e,r)=>t.if((0,L._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,L._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,L._)`${r} || {}`).code((0,L._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,L._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,L._)`${r} || {}`),Sn(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Ci}),items:Ii({mergeNames:(t,e,r)=>t.if((0,L._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,L._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,L._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,L._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function Ci(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,L._)`{}`);return e!==void 0&&Sn(t,r,e),r}T.evaluatedPropsToName=Ci;function Sn(t,e,r){Object.keys(r).forEach(n=>t.assign((0,L._)`${e}${(0,L.getProperty)(n)}`,!0))}T.setEvaluated=Sn;var ki={};function _l(t,e){return t.scopeValue("func",{ref:e,code:ki[e.code]||(ki[e.code]=new ul._Code(e.code))})}T.useFunc=_l;var _n;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(_n||(T.Type=_n={}));function wl(t,e,r){if(t instanceof L.Name){let n=e===_n.Num;return r?n?(0,L._)`"[" + ${t} + "]"`:(0,L._)`"['" + ${t} + "']"`:n?(0,L._)`"/" + ${t}`:(0,L._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,L.getProperty)(t).toString():"/"+wn(t)}T.getErrorPath=wl;function ji(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}T.checkStrictMode=ji});var Re=$($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});var X=j(),Sl={data:new X.Name("data"),valCxt:new X.Name("valCxt"),instancePath:new X.Name("instancePath"),parentData:new X.Name("parentData"),parentDataProperty:new X.Name("parentDataProperty"),rootData:new X.Name("rootData"),dynamicAnchors:new X.Name("dynamicAnchors"),vErrors:new X.Name("vErrors"),errors:new X.Name("errors"),this:new X.Name("this"),self:new X.Name("self"),scope:new X.Name("scope"),json:new X.Name("json"),jsonPos:new X.Name("jsonPos"),jsonLen:new X.Name("jsonLen"),jsonPart:new X.Name("jsonPart")};$n.default=Sl});var Rt=$(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});ee.extendErrors=ee.resetErrorsCount=ee.reportExtraError=ee.reportError=ee.keyword$DataError=ee.keywordError=void 0;var q=j(),ir=D(),re=Re();ee.keywordError={message:({keyword:t})=>(0,q.str)`must pass "${t}" keyword validation`};ee.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,q.str)`"${t}" keyword must be ${e} ($data)`:(0,q.str)`"${t}" keyword is invalid ($data)`};function $l(t,e=ee.keywordError,r,n){let{it:s}=t,{gen:i,compositeRule:o,allErrors:a}=s,c=Mi(t,e,r);n??(o||a)?Ti(i,c):Ai(s,(0,q._)`[${c}]`)}ee.reportError=$l;function bl(t,e=ee.keywordError,r){let{it:n}=t,{gen:s,compositeRule:i,allErrors:o}=n,a=Mi(t,e,r);Ti(s,a),i||o||Ai(n,re.default.vErrors)}ee.reportExtraError=bl;function Rl(t,e){t.assign(re.default.errors,e),t.if((0,q._)`${re.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,q._)`${re.default.vErrors}.length`,e),()=>t.assign(re.default.vErrors,null)))}ee.resetErrorsCount=Rl;function El({gen:t,keyword:e,schemaValue:r,data:n,errsCount:s,it:i}){if(s===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",s,re.default.errors,a=>{t.const(o,(0,q._)`${re.default.vErrors}[${a}]`),t.if((0,q._)`${o}.instancePath === undefined`,()=>t.assign((0,q._)`${o}.instancePath`,(0,q.strConcat)(re.default.instancePath,i.errorPath))),t.assign((0,q._)`${o}.schemaPath`,(0,q.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,q._)`${o}.schema`,r),t.assign((0,q._)`${o}.data`,n))})}ee.extendErrors=El;function Ti(t,e){let r=t.const("err",e);t.if((0,q._)`${re.default.vErrors} === null`,()=>t.assign(re.default.vErrors,(0,q._)`[${r}]`),(0,q._)`${re.default.vErrors}.push(${r})`),t.code((0,q._)`${re.default.errors}++`)}function Ai(t,e){let{gen:r,validateName:n,schemaEnv:s}=t;s.$async?r.throw((0,q._)`new ${t.ValidationError}(${e})`):(r.assign((0,q._)`${n}.errors`,e),r.return(!1))}var Fe={keyword:new q.Name("keyword"),schemaPath:new q.Name("schemaPath"),params:new q.Name("params"),propertyName:new q.Name("propertyName"),message:new q.Name("message"),schema:new q.Name("schema"),parentSchema:new q.Name("parentSchema")};function Mi(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,q._)`{}`:Il(t,e,r)}function Il(t,e,r={}){let{gen:n,it:s}=t,i=[kl(s,r),Pl(t,r)];return Ol(t,e,i),n.object(...i)}function kl({errorPath:t},{instancePath:e}){let r=e?(0,q.str)`${t}${(0,ir.getErrorPath)(e,ir.Type.Str)}`:t;return[re.default.instancePath,(0,q.strConcat)(re.default.instancePath,r)]}function Pl({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let s=n?e:(0,q.str)`${e}/${t}`;return r&&(s=(0,q.str)`${s}${(0,ir.getErrorPath)(r,ir.Type.Str)}`),[Fe.schemaPath,s]}function Ol(t,{params:e,message:r},n){let{keyword:s,data:i,schemaValue:o,it:a}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:f}=a;n.push([Fe.keyword,s],[Fe.params,typeof e=="function"?e(t):e||(0,q._)`{}`]),c.messages&&n.push([Fe.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Fe.schema,o],[Fe.parentSchema,(0,q._)`${l}${f}`],[re.default.data,i]),u&&n.push([Fe.propertyName,u])}});var Di=$(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.boolOrEmptySchema=Qe.topBoolOrEmptySchema=void 0;var Nl=Rt(),Cl=j(),jl=Re(),Tl={message:"boolean schema is false"};function Al(t){let{gen:e,schema:r,validateName:n}=t;r===!1?xi(t,!1):typeof r=="object"&&r.$async===!0?e.return(jl.default.data):(e.assign((0,Cl._)`${n}.errors`,null),e.return(!0))}Qe.topBoolOrEmptySchema=Al;function Ml(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),xi(t)):r.var(e,!0)}Qe.boolOrEmptySchema=Ml;function xi(t,e){let{gen:r,data:n}=t,s={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,Nl.reportError)(s,Tl,void 0,e)}});var bn=$(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.getRules=Xe.isJSONType=void 0;var xl=["string","number","integer","boolean","null","object","array"],Dl=new Set(xl);function ql(t){return typeof t=="string"&&Dl.has(t)}Xe.isJSONType=ql;function Vl(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}Xe.getRules=Vl});var Rn=$(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.shouldUseRule=Oe.shouldUseGroup=Oe.schemaHasRulesForType=void 0;function Fl({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&qi(t,n)}Oe.schemaHasRulesForType=Fl;function qi(t,e){return e.rules.some(r=>Vi(t,r))}Oe.shouldUseGroup=qi;function Vi(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Oe.shouldUseRule=Vi});var Et=$(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.reportTypeError=te.checkDataTypes=te.checkDataType=te.coerceAndCheckDataType=te.getJSONTypes=te.getSchemaTypes=te.DataType=void 0;var zl=bn(),Ll=Rn(),Ul=Rt(),N=j(),Fi=D(),et;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(et||(te.DataType=et={}));function Kl(t){let e=zi(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}te.getSchemaTypes=Kl;function zi(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(zl.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}te.getJSONTypes=zi;function Wl(t,e){let{gen:r,data:n,opts:s}=t,i=Bl(e,s.coerceTypes),o=e.length>0&&!(i.length===0&&e.length===1&&(0,Ll.schemaHasRulesForType)(t,e[0]));if(o){let a=In(e,n,s.strictNumbers,et.Wrong);r.if(a,()=>{i.length?Hl(t,e,i):kn(t)})}return o}te.coerceAndCheckDataType=Wl;var Li=new Set(["string","number","integer","boolean","null"]);function Bl(t,e){return e?t.filter(r=>Li.has(r)||e==="array"&&r==="array"):[]}function Hl(t,e,r){let{gen:n,data:s,opts:i}=t,o=n.let("dataType",(0,N._)`typeof ${s}`),a=n.let("coerced",(0,N._)`undefined`);i.coerceTypes==="array"&&n.if((0,N._)`${o} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,()=>n.assign(s,(0,N._)`${s}[0]`).assign(o,(0,N._)`typeof ${s}`).if(In(e,s,i.strictNumbers),()=>n.assign(a,s))),n.if((0,N._)`${a} !== undefined`);for(let u of r)(Li.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),kn(t),n.endIf(),n.if((0,N._)`${a} !== undefined`,()=>{n.assign(s,a),Gl(t,a)});function c(u){switch(u){case"string":n.elseIf((0,N._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,N._)`"" + ${s}`).elseIf((0,N._)`${s} === null`).assign(a,(0,N._)`""`);return;case"number":n.elseIf((0,N._)`${o} == "boolean" || ${s} === null
|
|
4
|
-
|| (${o} == "string" && ${s} && ${s} == +${s})`).assign(a,(0,N._)`+${s}`);return;case"integer":n.elseIf((0,N._)`${o} === "boolean" || ${s} === null
|
|
5
|
-
|| (${o} === "string" && ${s} && ${s} == +${s} && !(${s} % 1))`).assign(a,(0,N._)`+${s}`);return;case"boolean":n.elseIf((0,N._)`${s} === "false" || ${s} === 0 || ${s} === null`).assign(a,!1).elseIf((0,N._)`${s} === "true" || ${s} === 1`).assign(a,!0);return;case"null":n.elseIf((0,N._)`${s} === "" || ${s} === 0 || ${s} === false`),n.assign(a,null);return;case"array":n.elseIf((0,N._)`${o} === "string" || ${o} === "number"
|
|
6
|
-
|| ${o} === "boolean" || ${s} === null`).assign(a,(0,N._)`[${s}]`)}}}function Gl({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,N._)`${e} !== undefined`,()=>t.assign((0,N._)`${e}[${r}]`,n))}function En(t,e,r,n=et.Correct){let s=n===et.Correct?N.operators.EQ:N.operators.NEQ,i;switch(t){case"null":return(0,N._)`${e} ${s} null`;case"array":i=(0,N._)`Array.isArray(${e})`;break;case"object":i=(0,N._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=o((0,N._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=o();break;default:return(0,N._)`typeof ${e} ${s} ${t}`}return n===et.Correct?i:(0,N.not)(i);function o(a=N.nil){return(0,N.and)((0,N._)`typeof ${e} == "number"`,a,r?(0,N._)`isFinite(${e})`:N.nil)}}te.checkDataType=En;function In(t,e,r,n){if(t.length===1)return En(t[0],e,r,n);let s,i=(0,Fi.toHash)(t);if(i.array&&i.object){let o=(0,N._)`typeof ${e} != "object"`;s=i.null?o:(0,N._)`!${e} || ${o}`,delete i.null,delete i.array,delete i.object}else s=N.nil;i.number&&delete i.integer;for(let o in i)s=(0,N.and)(s,En(o,e,r,n));return s}te.checkDataTypes=In;var Jl={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,N._)`{type: ${t}}`:(0,N._)`{type: ${e}}`};function kn(t){let e=Yl(t);(0,Ul.reportError)(e,Jl)}te.reportTypeError=kn;function Yl(t){let{gen:e,data:r,schema:n}=t,s=(0,Fi.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:s,schemaValue:s,parentSchema:n,params:{},it:t}}});var Ki=$(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});or.assignDefaults=void 0;var tt=j(),Zl=D();function Ql(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let s in r)Ui(t,s,r[s].default);else e==="array"&&Array.isArray(n)&&n.forEach((s,i)=>Ui(t,i,s.default))}or.assignDefaults=Ql;function Ui(t,e,r){let{gen:n,compositeRule:s,data:i,opts:o}=t;if(r===void 0)return;let a=(0,tt._)`${i}${(0,tt.getProperty)(e)}`;if(s){(0,Zl.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,tt._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,tt._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,tt._)`${a} = ${(0,tt.stringify)(r)}`)}});var le=$(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.validateUnion=z.validateArray=z.usePattern=z.callValidateCode=z.schemaProperties=z.allSchemaProperties=z.noPropertyInData=z.propertyInData=z.isOwnProperty=z.hasPropFunc=z.reportMissingProp=z.checkMissingProp=z.checkReportMissingProp=void 0;var U=j(),Pn=D(),Ne=Re(),Xl=D();function ed(t,e){let{gen:r,data:n,it:s}=t;r.if(Nn(r,n,e,s.opts.ownProperties),()=>{t.setParams({missingProperty:(0,U._)`${e}`},!0),t.error()})}z.checkReportMissingProp=ed;function td({gen:t,data:e,it:{opts:r}},n,s){return(0,U.or)(...n.map(i=>(0,U.and)(Nn(t,e,i,r.ownProperties),(0,U._)`${s} = ${i}`)))}z.checkMissingProp=td;function rd(t,e){t.setParams({missingProperty:e},!0),t.error()}z.reportMissingProp=rd;function Wi(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,U._)`Object.prototype.hasOwnProperty`})}z.hasPropFunc=Wi;function On(t,e,r){return(0,U._)`${Wi(t)}.call(${e}, ${r})`}z.isOwnProperty=On;function nd(t,e,r,n){let s=(0,U._)`${e}${(0,U.getProperty)(r)} !== undefined`;return n?(0,U._)`${s} && ${On(t,e,r)}`:s}z.propertyInData=nd;function Nn(t,e,r,n){let s=(0,U._)`${e}${(0,U.getProperty)(r)} === undefined`;return n?(0,U.or)(s,(0,U.not)(On(t,e,r))):s}z.noPropertyInData=Nn;function Bi(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}z.allSchemaProperties=Bi;function sd(t,e){return Bi(e).filter(r=>!(0,Pn.alwaysValidSchema)(t,e[r]))}z.schemaProperties=sd;function id({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:s,errorPath:i},it:o},a,c,u){let l=u?(0,U._)`${t}, ${e}, ${n}${s}`:e,f=[[Ne.default.instancePath,(0,U.strConcat)(Ne.default.instancePath,i)],[Ne.default.parentData,o.parentData],[Ne.default.parentDataProperty,o.parentDataProperty],[Ne.default.rootData,Ne.default.rootData]];o.opts.dynamicRef&&f.push([Ne.default.dynamicAnchors,Ne.default.dynamicAnchors]);let h=(0,U._)`${l}, ${r.object(...f)}`;return c!==U.nil?(0,U._)`${a}.call(${c}, ${h})`:(0,U._)`${a}(${h})`}z.callValidateCode=id;var od=(0,U._)`new RegExp`;function ad({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:s}=e.code,i=s(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,U._)`${s.code==="new RegExp"?od:(0,Xl.useFunc)(t,s)}(${r}, ${n})`})}z.usePattern=ad;function cd(t){let{gen:e,data:r,keyword:n,it:s}=t,i=e.name("valid");if(s.allErrors){let a=e.let("valid",!0);return o(()=>e.assign(a,!1)),a}return e.var(i,!0),o(()=>e.break()),i;function o(a){let c=e.const("len",(0,U._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:Pn.Type.Num},i),e.if((0,U.not)(i),a)})}}z.validateArray=cd;function ld(t){let{gen:e,schema:r,keyword:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Pn.alwaysValidSchema)(s,c))&&!s.opts.unevaluated)return;let o=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(o,(0,U._)`${o} || ${a}`),t.mergeValidEvaluated(l,a)||e.if((0,U.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}z.validateUnion=ld});var Ji=$(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.validateKeywordUsage=ve.validSchemaType=ve.funcKeywordCode=ve.macroKeywordCode=void 0;var ne=j(),ze=Re(),dd=le(),ud=Rt();function fd(t,e){let{gen:r,keyword:n,schema:s,parentSchema:i,it:o}=t,a=e.macro.call(o.self,s,i,o),c=Gi(r,n,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:ne.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}ve.macroKeywordCode=fd;function pd(t,e){var r;let{gen:n,keyword:s,schema:i,parentSchema:o,$data:a,it:c}=t;hd(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,o,c):e.validate,l=Gi(n,s,u),f=n.let("valid");t.block$data(f,h),t.ok((r=e.valid)!==null&&r!==void 0?r:f);function h(){if(e.errors===!1)d(),e.modifying&&Hi(t),p(()=>t.error());else{let v=e.async?m():g();e.modifying&&Hi(t),p(()=>md(t,v))}}function m(){let v=n.let("ruleErrs",null);return n.try(()=>d((0,ne._)`await `),b=>n.assign(f,!1).if((0,ne._)`${b} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,ne._)`${b}.errors`),()=>n.throw(b))),v}function g(){let v=(0,ne._)`${l}.errors`;return n.assign(v,null),d(ne.nil),v}function d(v=e.async?(0,ne._)`await `:ne.nil){let b=c.opts.passContext?ze.default.this:ze.default.self,E=!("compile"in e&&!a||e.schema===!1);n.assign(f,(0,ne._)`${v}${(0,dd.callValidateCode)(t,l,b,E)}`,e.modifying)}function p(v){var b;n.if((0,ne.not)((b=e.valid)!==null&&b!==void 0?b:f),v)}}ve.funcKeywordCode=pd;function Hi(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,ne._)`${n.parentData}[${n.parentDataProperty}]`))}function md(t,e){let{gen:r}=t;r.if((0,ne._)`Array.isArray(${e})`,()=>{r.assign(ze.default.vErrors,(0,ne._)`${ze.default.vErrors} === null ? ${e} : ${ze.default.vErrors}.concat(${e})`).assign(ze.default.errors,(0,ne._)`${ze.default.vErrors}.length`),(0,ud.extendErrors)(t)},()=>t.error())}function hd({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function Gi(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,ne.stringify)(r)})}function gd(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}ve.validSchemaType=gd;function yd({schema:t,opts:e,self:r,errSchemaPath:n},s,i){if(Array.isArray(s.keyword)?!s.keyword.includes(i):s.keyword!==i)throw new Error("ajv implementation error");let o=s.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${o.join(",")}`);if(s.validateSchema&&!s.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(s.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}ve.validateKeywordUsage=yd});var Zi=$(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.extendSubschemaMode=Ce.extendSubschemaData=Ce.getSubschema=void 0;var _e=j(),Yi=D();function vd(t,{keyword:e,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:i,topSchemaRef:o}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,_e._)`${t.schemaPath}${(0,_e.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,_e._)`${t.schemaPath}${(0,_e.getProperty)(e)}${(0,_e.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,Yi.escapeFragment)(r)}`}}if(n!==void 0){if(s===void 0||i===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:s,topSchemaRef:o,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ce.getSubschema=vd;function _d(t,e,{dataProp:r,dataPropType:n,data:s,dataTypes:i,propertyName:o}){if(s!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:f}=e,h=a.let("data",(0,_e._)`${e.data}${(0,_e.getProperty)(r)}`,!0);c(h),t.errorPath=(0,_e.str)`${u}${(0,Yi.getErrorPath)(r,n,f.jsPropertySyntax)}`,t.parentDataProperty=(0,_e._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(s!==void 0){let u=s instanceof _e.Name?s:a.let("data",s,!0);c(u),o!==void 0&&(t.propertyName=o)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Ce.extendSubschemaData=_d;function wd(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:s,allErrors:i}){n!==void 0&&(t.compositeRule=n),s!==void 0&&(t.createErrors=s),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Ce.extendSubschemaMode=wd});var Cn=$((tg,Qi)=>{"use strict";Qi.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,s,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(s=n;s--!==0;)if(!t(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=n;s--!==0;){var o=i[s];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var eo=$((rg,Xi)=>{"use strict";var je=Xi.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};ar(e,n,s,t,"",t)};je.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};je.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};je.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};je.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function ar(t,e,r,n,s,i,o,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,s,i,o,a,c,u);for(var l in n){var f=n[l];if(Array.isArray(f)){if(l in je.arrayKeywords)for(var h=0;h<f.length;h++)ar(t,e,r,f[h],s+"/"+l+"/"+h,i,s,l,n,h)}else if(l in je.propsKeywords){if(f&&typeof f=="object")for(var m in f)ar(t,e,r,f[m],s+"/"+l+"/"+Sd(m),i,s,l,n,m)}else(l in je.keywords||t.allKeys&&!(l in je.skipKeywords))&&ar(t,e,r,f,s+"/"+l,i,s,l,n)}r(n,s,i,o,a,c,u)}}function Sd(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var It=$(oe=>{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});oe.getSchemaRefs=oe.resolveUrl=oe.normalizeId=oe._getFullPath=oe.getFullPath=oe.inlineRef=void 0;var $d=D(),bd=Cn(),Rd=eo(),Ed=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Id(t,e=!0){return typeof t=="boolean"?!0:e===!0?!jn(t):e?to(t)<=e:!1}oe.inlineRef=Id;var kd=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function jn(t){for(let e in t){if(kd.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(jn)||typeof r=="object"&&jn(r))return!0}return!1}function to(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!Ed.has(r)&&(typeof t[r]=="object"&&(0,$d.eachItem)(t[r],n=>e+=to(n)),e===1/0))return 1/0}return e}function ro(t,e="",r){r!==!1&&(e=rt(e));let n=t.parse(e);return no(t,n)}oe.getFullPath=ro;function no(t,e){return t.serialize(e).split("#")[0]+"#"}oe._getFullPath=no;var Pd=/#\/?$/;function rt(t){return t?t.replace(Pd,""):""}oe.normalizeId=rt;function Od(t,e,r){return r=rt(r),t.resolve(e,r)}oe.resolveUrl=Od;var Nd=/^[a-z_][-a-z0-9._]*$/i;function Cd(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,s=rt(t[r]||e),i={"":s},o=ro(n,s,!1),a={},c=new Set;return Rd(t,{allKeys:!0},(f,h,m,g)=>{if(g===void 0)return;let d=o+h,p=i[g];typeof f[r]=="string"&&(p=v.call(this,f[r])),b.call(this,f.$anchor),b.call(this,f.$dynamicAnchor),i[h]=p;function v(E){let w=this.opts.uriResolver.resolve;if(E=rt(p?w(p,E):E),c.has(E))throw l(E);c.add(E);let _=this.refs[E];return typeof _=="string"&&(_=this.refs[_]),typeof _=="object"?u(f,_.schema,E):E!==rt(d)&&(E[0]==="#"?(u(f,a[E],E),a[E]=f):this.refs[E]=d),E}function b(E){if(typeof E=="string"){if(!Nd.test(E))throw new Error(`invalid anchor "${E}"`);v.call(this,`#${E}`)}}}),a;function u(f,h,m){if(h!==void 0&&!bd(f,h))throw l(m)}function l(f){return new Error(`reference "${f}" resolves to more than one schema`)}}oe.getSchemaRefs=Cd});var Ot=$(Te=>{"use strict";Object.defineProperty(Te,"__esModule",{value:!0});Te.getData=Te.KeywordCxt=Te.validateFunctionCode=void 0;var co=Di(),so=Et(),An=Rn(),cr=Et(),jd=Ki(),Pt=Ji(),Tn=Zi(),k=j(),O=Re(),Td=It(),Ee=D(),kt=Rt();function Ad(t){if(fo(t)&&(po(t),uo(t))){Dd(t);return}lo(t,()=>(0,co.topBoolOrEmptySchema)(t))}Te.validateFunctionCode=Ad;function lo({gen:t,validateName:e,schema:r,schemaEnv:n,opts:s},i){s.code.es5?t.func(e,(0,k._)`${O.default.data}, ${O.default.valCxt}`,n.$async,()=>{t.code((0,k._)`"use strict"; ${io(r,s)}`),xd(t,s),t.code(i)}):t.func(e,(0,k._)`${O.default.data}, ${Md(s)}`,n.$async,()=>t.code(io(r,s)).code(i))}function Md(t){return(0,k._)`{${O.default.instancePath}="", ${O.default.parentData}, ${O.default.parentDataProperty}, ${O.default.rootData}=${O.default.data}${t.dynamicRef?(0,k._)`, ${O.default.dynamicAnchors}={}`:k.nil}}={}`}function xd(t,e){t.if(O.default.valCxt,()=>{t.var(O.default.instancePath,(0,k._)`${O.default.valCxt}.${O.default.instancePath}`),t.var(O.default.parentData,(0,k._)`${O.default.valCxt}.${O.default.parentData}`),t.var(O.default.parentDataProperty,(0,k._)`${O.default.valCxt}.${O.default.parentDataProperty}`),t.var(O.default.rootData,(0,k._)`${O.default.valCxt}.${O.default.rootData}`),e.dynamicRef&&t.var(O.default.dynamicAnchors,(0,k._)`${O.default.valCxt}.${O.default.dynamicAnchors}`)},()=>{t.var(O.default.instancePath,(0,k._)`""`),t.var(O.default.parentData,(0,k._)`undefined`),t.var(O.default.parentDataProperty,(0,k._)`undefined`),t.var(O.default.rootData,O.default.data),e.dynamicRef&&t.var(O.default.dynamicAnchors,(0,k._)`{}`)})}function Dd(t){let{schema:e,opts:r,gen:n}=t;lo(t,()=>{r.$comment&&e.$comment&&ho(t),Ld(t),n.let(O.default.vErrors,null),n.let(O.default.errors,0),r.unevaluated&&qd(t),mo(t),Wd(t)})}function qd(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,k._)`${r}.evaluated`),e.if((0,k._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,k._)`${t.evaluated}.props`,(0,k._)`undefined`)),e.if((0,k._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,k._)`${t.evaluated}.items`,(0,k._)`undefined`))}function io(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,k._)`/*# sourceURL=${r} */`:k.nil}function Vd(t,e){if(fo(t)&&(po(t),uo(t))){Fd(t,e);return}(0,co.boolOrEmptySchema)(t,e)}function uo({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function fo(t){return typeof t.schema!="boolean"}function Fd(t,e){let{schema:r,gen:n,opts:s}=t;s.$comment&&r.$comment&&ho(t),Ud(t),Kd(t);let i=n.const("_errs",O.default.errors);mo(t,i),n.var(e,(0,k._)`${i} === ${O.default.errors}`)}function po(t){(0,Ee.checkUnknownRules)(t),zd(t)}function mo(t,e){if(t.opts.jtd)return oo(t,[],!1,e);let r=(0,so.getSchemaTypes)(t.schema),n=(0,so.coerceAndCheckDataType)(t,r);oo(t,r,!n,e)}function zd(t){let{schema:e,errSchemaPath:r,opts:n,self:s}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Ee.schemaHasRulesButRef)(e,s.RULES)&&s.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function Ld(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ee.checkStrictMode)(t,"default is ignored in the schema root")}function Ud(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,Td.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function Kd(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function ho({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:s}){let i=r.$comment;if(s.$comment===!0)t.code((0,k._)`${O.default.self}.logger.log(${i})`);else if(typeof s.$comment=="function"){let o=(0,k.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,k._)`${O.default.self}.opts.$comment(${i}, ${o}, ${a}.schema)`)}}function Wd(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:s,opts:i}=t;r.$async?e.if((0,k._)`${O.default.errors} === 0`,()=>e.return(O.default.data),()=>e.throw((0,k._)`new ${s}(${O.default.vErrors})`)):(e.assign((0,k._)`${n}.errors`,O.default.vErrors),i.unevaluated&&Bd(t),e.return((0,k._)`${O.default.errors} === 0`))}function Bd({gen:t,evaluated:e,props:r,items:n}){r instanceof k.Name&&t.assign((0,k._)`${e}.props`,r),n instanceof k.Name&&t.assign((0,k._)`${e}.items`,n)}function oo(t,e,r,n){let{gen:s,schema:i,data:o,allErrors:a,opts:c,self:u}=t,{RULES:l}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Ee.schemaHasRulesButRef)(i,l))){s.block(()=>yo(t,"$ref",l.all.$ref.definition));return}c.jtd||Hd(t,e),s.block(()=>{for(let h of l.rules)f(h);f(l.post)});function f(h){(0,An.shouldUseGroup)(i,h)&&(h.type?(s.if((0,cr.checkDataType)(h.type,o,c.strictNumbers)),ao(t,h),e.length===1&&e[0]===h.type&&r&&(s.else(),(0,cr.reportTypeError)(t)),s.endIf()):ao(t,h),a||s.if((0,k._)`${O.default.errors} === ${n||0}`))}}function ao(t,e){let{gen:r,schema:n,opts:{useDefaults:s}}=t;s&&(0,jd.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,An.shouldUseRule)(n,i)&&yo(t,i.keyword,i.definition,e.type)})}function Hd(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(Gd(t,e),t.opts.allowUnionTypes||Jd(t,e),Yd(t,t.dataTypes))}function Gd(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{go(t.dataTypes,r)||Mn(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),Qd(t,e)}}function Jd(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Mn(t,"use allowUnionTypes to allow union type keyword")}function Yd(t,e){let r=t.self.RULES.all;for(let n in r){let s=r[n];if(typeof s=="object"&&(0,An.shouldUseRule)(t.schema,s)){let{type:i}=s.definition;i.length&&!i.some(o=>Zd(e,o))&&Mn(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function Zd(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function go(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function Qd(t,e){let r=[];for(let n of t.dataTypes)go(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Mn(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Ee.checkStrictMode)(t,e,t.opts.strictTypes)}var lr=class{constructor(e,r,n){if((0,Pt.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Ee.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",vo(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Pt.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",O.default.errors))}result(e,r,n){this.failResult((0,k.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,k.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,k._)`${r} !== undefined && (${(0,k.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?kt.reportExtraError:kt.reportError)(this,this.def.error,r)}$dataError(){(0,kt.reportError)(this,this.def.$dataError||kt.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,kt.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=k.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=k.nil,r=k.nil){if(!this.$data)return;let{gen:n,schemaCode:s,schemaType:i,def:o}=this;n.if((0,k.or)((0,k._)`${s} === undefined`,r)),e!==k.nil&&n.assign(e,!0),(i.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==k.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:s,it:i}=this;return(0,k.or)(o(),a());function o(){if(n.length){if(!(r instanceof k.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,k._)`${(0,cr.checkDataTypes)(c,r,i.opts.strictNumbers,cr.DataType.Wrong)}`}return k.nil}function a(){if(s.validateSchema){let c=e.scopeValue("validate$data",{ref:s.validateSchema});return(0,k._)`!${c}(${r})`}return k.nil}}subschema(e,r){let n=(0,Tn.getSubschema)(this.it,e);(0,Tn.extendSubschemaData)(n,this.it,e),(0,Tn.extendSubschemaMode)(n,e);let s={...this.it,...n,items:void 0,props:void 0};return Vd(s,r),s}mergeEvaluated(e,r){let{it:n,gen:s}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Ee.mergeEvaluated.props(s,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Ee.mergeEvaluated.items(s,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:s}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return s.if(r,()=>this.mergeEvaluated(e,k.Name)),!0}};Te.KeywordCxt=lr;function yo(t,e,r,n){let s=new lr(t,r,e);"code"in r?r.code(s,n):s.$data&&r.validate?(0,Pt.funcKeywordCode)(s,r):"macro"in r?(0,Pt.macroKeywordCode)(s,r):(r.compile||r.validate)&&(0,Pt.funcKeywordCode)(s,r)}var Xd=/^\/(?:[^~]|~0|~1)*$/,eu=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function vo(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let s,i;if(t==="")return O.default.rootData;if(t[0]==="/"){if(!Xd.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);s=t,i=O.default.rootData}else{let u=eu.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(s=u[2],s==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(i=r[e-l],!s)return i}let o=i,a=s.split("/");for(let u of a)u&&(i=(0,k._)`${i}${(0,k.getProperty)((0,Ee.unescapeJsonPointer)(u))}`,o=(0,k._)`${o} && ${i}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}Te.getData=vo});var dr=$(Dn=>{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0});var xn=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Dn.default=xn});var Nt=$(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});var qn=It(),Vn=class extends Error{constructor(e,r,n,s){super(s||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,qn.resolveUrl)(e,r,n),this.missingSchema=(0,qn.normalizeId)((0,qn.getFullPath)(e,this.missingRef))}};Fn.default=Vn});var fr=$(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.resolveSchema=de.getCompilingSchema=de.resolveRef=de.compileSchema=de.SchemaEnv=void 0;var me=j(),tu=dr(),Le=Re(),he=It(),_o=D(),ru=Ot(),nt=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,he.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};de.SchemaEnv=nt;function Ln(t){let e=wo.call(this,t);if(e)return e;let r=(0,he.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:s}=this.opts.code,{ownProperties:i}=this.opts,o=new me.CodeGen(this.scope,{es5:n,lines:s,ownProperties:i}),a;t.$async&&(a=o.scopeValue("Error",{ref:tu.default,code:(0,me._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");t.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Le.default.data,parentData:Le.default.parentData,parentDataProperty:Le.default.parentDataProperty,dataNames:[Le.default.data],dataPathArr:[me.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,me.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:me.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,me._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,ru.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let f=o.toString();l=`${o.scopeRefs(Le.default.scope)}return ${f}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let m=new Function(`${Le.default.self}`,`${Le.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:m}),m.errors=null,m.schema=t.schema,m.schemaEnv=t,t.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:c,validateCode:f,scopeValues:o._values}),this.opts.unevaluated){let{props:g,items:d}=u;m.evaluated={props:g instanceof me.Name?void 0:g,items:d instanceof me.Name?void 0:d,dynamicProps:g instanceof me.Name,dynamicItems:d instanceof me.Name},m.source&&(m.source.evaluated=(0,me.stringify)(m.evaluated))}return t.validate=m,t}catch(f){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),f}finally{this._compilations.delete(t)}}de.compileSchema=Ln;function nu(t,e,r){var n;r=(0,he.resolveUrl)(this.opts.uriResolver,e,r);let s=t.refs[r];if(s)return s;let i=ou.call(this,t,r);if(i===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;o&&(i=new nt({schema:o,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=su.call(this,i)}de.resolveRef=nu;function su(t){return(0,he.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Ln.call(this,t)}function wo(t){for(let e of this._compilations)if(iu(e,t))return e}de.getCompilingSchema=wo;function iu(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function ou(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||ur.call(this,t,e)}function ur(t,e){let r=this.opts.uriResolver.parse(e),n=(0,he._getFullPath)(this.opts.uriResolver,r),s=(0,he.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===s)return zn.call(this,r,t);let i=(0,he.normalizeId)(n),o=this.refs[i]||this.schemas[i];if(typeof o=="string"){let a=ur.call(this,t,o);return typeof a?.schema!="object"?void 0:zn.call(this,r,a)}if(typeof o?.schema=="object"){if(o.validate||Ln.call(this,o),i===(0,he.normalizeId)(e)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(s=(0,he.resolveUrl)(this.opts.uriResolver,s,u)),new nt({schema:a,schemaId:c,root:t,baseId:s})}return zn.call(this,r,o)}}de.resolveSchema=ur;var au=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function zn(t,{baseId:e,schema:r,root:n}){var s;if(((s=t.fragment)===null||s===void 0?void 0:s[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,_o.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!au.has(a)&&u&&(e=(0,he.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,_o.schemaHasRulesButRef)(r,this.RULES)){let a=(0,he.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=ur.call(this,n,a)}let{schemaId:o}=this.opts;if(i=i||new nt({schema:r,schemaId:o,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var So=$((cg,cu)=>{cu.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Wn=$((lg,ko)=>{"use strict";var lu=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),bo=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),Un=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Ro=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),du=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Kn(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var uu=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function $o(t){return t.length=0,!0}function fu(t,e,r){if(t.length){let n=Kn(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function pu(t){let e=0,r={error:!1,address:"",zone:""},n=[],s=[],i=!1,o=!1,a=fu;for(let c=0;c<t.length;c++){let u=t[c];if(!(u==="["||u==="]"))if(u===":"){if(i===!0&&(o=!0),!a(s,n,r))break;if(++e>7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(u==="%"){if(!a(s,n,r))break;a=$o}else{s.push(u);continue}}return s.length&&(a===$o?r.zone=s.join(""):o?n.push(s.join("")):n.push(Kn(s))),r.address=n.join(""),r}function Eo(t){if(mu(t,":")<2)return{host:t,isIPV6:!1};let e=pu(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function mu(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function hu(t){let e=t,r=[],n=-1,s=0;for(;s=e.length;){if(s===1){if(e===".")break;if(e==="/"){r.push("/");break}else{r.push(e);break}}else if(s===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){r.push("/");break}}else if(s===3&&e==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),r.length!==0&&r.pop();continue}}if((n=e.indexOf("/",1))===-1){r.push(e);break}else r.push(e.slice(0,n)),e=e.slice(n)}return r.join("")}var gu={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},yu=/[@/?#:]/g,vu=/[@/?#]/g;function Io(t,e){let r=e?vu:yu;return r.lastIndex=0,t.replace(r,n=>gu[n])}function _u(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n<t.length;n++){if(t[n]==="%"&&n+2<t.length){let s=t.slice(n+1,n+3);if(Un(s)){let i=s.toUpperCase(),o=String.fromCharCode(parseInt(i,16));e&&Ro(o)?r+=o:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function wu(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(Un(n)){let s=n.toUpperCase(),i=String.fromCharCode(parseInt(s,16));i!=="."&&Ro(i)?e+=i:e+="%"+s,r+=2;continue}}du(t[r])?e+=t[r]:e+=escape(t[r])}return e}function Su(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(Un(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function $u(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!bo(r)){let n=Eo(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Io(r,!1)}e.push(r)}return(typeof t.port=="number"||typeof t.port=="string")&&(e.push(":"),e.push(String(t.port))),e.length?e.join(""):void 0}ko.exports={nonSimpleDomain:uu,recomposeAuthority:$u,reescapeHostDelimiters:Io,normalizePercentEncoding:_u,normalizePathEncoding:wu,escapePreservingEscapes:Su,removeDotSegments:hu,isIPv4:bo,isUUID:lu,normalizeIPv6:Eo,stringArrayToHexStripped:Kn}});var jo=$((dg,Co)=>{"use strict";var{isUUID:bu}=Wn(),Ru=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Eu=["http","https","ws","wss","urn","urn:uuid"];function Iu(t){return Eu.indexOf(t)!==-1}function Bn(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function Po(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function Oo(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function ku(t){return t.secure=Bn(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function Pu(t){if((t.port===(Bn(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function Ou(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(Ru);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let s=`${n}:${e.nid||t.nid}`,i=Hn(s);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function Nu(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),s=`${r}:${e.nid||n}`,i=Hn(s);i&&(t=i.serialize(t,e));let o=t,a=t.nss;return o.path=`${n||e.nid}:${a}`,e.skipEscape=!0,o}function Cu(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!bu(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function ju(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var No={scheme:"http",domainHost:!0,parse:Po,serialize:Oo},Tu={scheme:"https",domainHost:No.domainHost,parse:Po,serialize:Oo},pr={scheme:"ws",domainHost:!0,parse:ku,serialize:Pu},Au={scheme:"wss",domainHost:pr.domainHost,parse:pr.parse,serialize:pr.serialize},Mu={scheme:"urn",parse:Ou,serialize:Nu,skipNormalize:!0},xu={scheme:"urn:uuid",parse:Cu,serialize:ju,skipNormalize:!0},mr={http:No,https:Tu,ws:pr,wss:Au,urn:Mu,"urn:uuid":xu};Object.setPrototypeOf(mr,null);function Hn(t){return t&&(mr[t]||mr[t.toLowerCase()])||void 0}Co.exports={wsIsSecure:Bn,SCHEMES:mr,isValidSchemeName:Iu,getSchemeHandler:Hn}});var Do=$((ug,yr)=>{"use strict";var{normalizeIPv6:Du,removeDotSegments:Ct,recomposeAuthority:qu,normalizePercentEncoding:Vu,normalizePathEncoding:Fu,escapePreservingEscapes:zu,reescapeHostDelimiters:Lu,isIPv4:Uu,nonSimpleDomain:Ku}=Wn(),{SCHEMES:Wu,getSchemeHandler:Ao}=jo();function Bu(t,e){return typeof t=="string"?t=Xu(t,e):typeof t=="object"&&(t=gr(Ue(t,e),e)),t}function Hu(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:s,malformedAuthorityOrPort:i}=hr(t,n),{parsed:o,malformedAuthorityOrPort:a}=hr(e,n);if(i||a)throw new Error(s.error||o.error||"URI is malformed.");let c=Mo(s,o,n,!0);return n.skipEscape=!0,Ue(c,n)}function Mo(t,e,r,n){let s={};return n||(t=gr(Ue(t,r),r),e=gr(Ue(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(s.scheme=e.scheme,s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Ct(e.path||""),s.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Ct(e.path||""),s.query=e.query):(e.path?(e.path[0]==="/"?s.path=Ct(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?s.path="/"+e.path:t.path?s.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:s.path=e.path,s.path=Ct(s.path)),s.query=e.query):(s.path=t.path,e.query!==void 0?s.query=e.query:s.query=t.query),s.userinfo=t.userinfo,s.host=t.host,s.port=t.port),s.scheme=t.scheme),s.fragment=e.fragment,s}function Gu(t,e,r){let n=To(t,r),s=To(e,r);return n!==void 0&&s!==void 0&&n.toLowerCase()===s.toLowerCase()}function Ue(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),s=[],i=Ao(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Vu(r.path):(r.path=zu(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&s.push(r.scheme,":");let o=qu(r);if(o!==void 0&&(n.reference!=="suffix"&&s.push("//"),s.push(o),r.path&&r.path[0]!=="/"&&s.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(a=Ct(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),s.push(a)}return r.query!==void 0&&s.push("?",r.query),r.fragment!==void 0&&s.push("#",r.fragment),s.join("")}var Ju=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Yu=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Zu=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Qu(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function hr(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},s=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let o=t.match(Yu);o!==null&&o[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",s=!0);let a=t.match(Zu);if(a!==null){let u=a[1],l=u.replace(/[\t\n\r]/g,"");l.length>=2&&(l.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",s=!0):u.length!==l.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",s=!0))}let c=t.match(Ju);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let u=Qu(n,c);if(u!==void 0&&(n.error=n.error||u,s=!0),n.host)if(Uu(n.host)===!1){let h=Du(n.host);n.host=h.host.toLowerCase(),i=h.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let l=Ao(r.scheme||n.scheme);if(!r.unicodeSupport&&(!l||!l.unicodeSupport)&&n.host&&(r.domainHost||l&&l.domainHost)&&i===!1&&Ku(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(f){n.error=n.error||"Host's domain name can not be converted to ASCII: "+f}if((!l||l&&!l.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Lu(unescape(n.host),i))),n.path&&(n.path=Fu(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}l&&l.parse&&l.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:s}}function gr(t,e){return hr(t,e).parsed}function Xu(t,e){return xo(t,e).normalized}function xo(t,e){let{parsed:r,malformedAuthorityOrPort:n}=hr(t,e);return{normalized:n?t:Ue(r,e),malformedAuthorityOrPort:n}}function To(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=xo(t,e);return n?void 0:r}if(typeof t=="object")return Ue(t,e)}var Gn={SCHEMES:Wu,normalize:Bu,resolve:Hu,resolveComponent:Mo,equal:Gu,serialize:Ue,parse:gr};yr.exports=Gn;yr.exports.default=Gn;yr.exports.fastUri=Gn});var Vo=$(Jn=>{"use strict";Object.defineProperty(Jn,"__esModule",{value:!0});var qo=Do();qo.code='require("ajv/dist/runtime/uri").default';Jn.default=qo});var Ho=$(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.CodeGen=Z.Name=Z.nil=Z.stringify=Z.str=Z._=Z.KeywordCxt=void 0;var ef=Ot();Object.defineProperty(Z,"KeywordCxt",{enumerable:!0,get:function(){return ef.KeywordCxt}});var st=j();Object.defineProperty(Z,"_",{enumerable:!0,get:function(){return st._}});Object.defineProperty(Z,"str",{enumerable:!0,get:function(){return st.str}});Object.defineProperty(Z,"stringify",{enumerable:!0,get:function(){return st.stringify}});Object.defineProperty(Z,"nil",{enumerable:!0,get:function(){return st.nil}});Object.defineProperty(Z,"Name",{enumerable:!0,get:function(){return st.Name}});Object.defineProperty(Z,"CodeGen",{enumerable:!0,get:function(){return st.CodeGen}});var tf=dr(),Ko=Nt(),rf=bn(),jt=fr(),nf=j(),Tt=It(),vr=Et(),Zn=D(),Fo=So(),sf=Vo(),Wo=(t,e)=>new RegExp(t,e);Wo.code="new RegExp";var of=["removeAdditional","useDefaults","coerceTypes"],af=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),cf={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},lf={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},zo=200;function df(t){var e,r,n,s,i,o,a,c,u,l,f,h,m,g,d,p,v,b,E,w,_,y,S,P,I;let A=t.strict,x=(e=t.code)===null||e===void 0?void 0:e.optimize,F=x===!0||x===void 0?1:x||0,G=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Wo,fe=(s=t.uriResolver)!==null&&s!==void 0?s:sf.default;return{strictSchema:(o=(i=t.strictSchema)!==null&&i!==void 0?i:A)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:A)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:A)!==null&&l!==void 0?l:"log",strictTuples:(h=(f=t.strictTuples)!==null&&f!==void 0?f:A)!==null&&h!==void 0?h:"log",strictRequired:(g=(m=t.strictRequired)!==null&&m!==void 0?m:A)!==null&&g!==void 0?g:!1,code:t.code?{...t.code,optimize:F,regExp:G}:{optimize:F,regExp:G},loopRequired:(d=t.loopRequired)!==null&&d!==void 0?d:zo,loopEnum:(p=t.loopEnum)!==null&&p!==void 0?p:zo,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(b=t.messages)!==null&&b!==void 0?b:!0,inlineRefs:(E=t.inlineRefs)!==null&&E!==void 0?E:!0,schemaId:(w=t.schemaId)!==null&&w!==void 0?w:"$id",addUsedSchema:(_=t.addUsedSchema)!==null&&_!==void 0?_:!0,validateSchema:(y=t.validateSchema)!==null&&y!==void 0?y:!0,validateFormats:(S=t.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(P=t.unicodeRegExp)!==null&&P!==void 0?P:!0,int32range:(I=t.int32range)!==null&&I!==void 0?I:!0,uriResolver:fe}}var At=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...df(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new nf.ValueScope({scope:{},prefixes:af,es5:r,lines:n}),this.logger=gf(e.logger);let s=e.validateFormats;e.validateFormats=!1,this.RULES=(0,rf.getRules)(),Lo.call(this,cf,e,"NOT SUPPORTED"),Lo.call(this,lf,e,"DEPRECATED","warn"),this._metaOpts=mf.call(this),e.formats&&ff.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&pf.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),uf.call(this),e.validateFormats=s}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,s=Fo;n==="id"&&(s={...Fo},s.id=s.$id,delete s.$id),r&&e&&this.addMetaSchema(s,s[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let s=n(r);return"$async"in n||(this.errors=n.errors),s}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return s.call(this,e,r);async function s(l,f){await i.call(this,l.$schema);let h=this._addSchema(l,f);return h.validate||o.call(this,h)}async function i(l){l&&!this.getSchema(l)&&await s.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(f){if(!(f instanceof Ko.default))throw f;return a.call(this,f),await c.call(this,f.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:f}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${f} cannot be resolved`)}async function c(l){let f=await u.call(this,l);this.refs[l]||await i.call(this,f.$schema),this.refs[l]||this.addSchema(f,l,r)}async function u(l){let f=this._loading[l];if(f)return f;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,s=this.opts.validateSchema){if(Array.isArray(e)){for(let o of e)this.addSchema(o,void 0,n,s);return this}let i;if(typeof e=="object"){let{schemaId:o}=this.opts;if(i=e[o],i!==void 0&&typeof i!="string")throw new Error(`schema ${o} must be string`)}return r=(0,Tt.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,s,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let s=this.validate(n,e);if(!s&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return s}getSchema(e){let r;for(;typeof(r=Uo.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,s=new jt.SchemaEnv({schema:{},schemaId:n});if(r=jt.resolveSchema.call(this,s,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Uo.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Tt.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(vf.call(this,n,r),!r)return(0,Zn.eachItem)(n,i=>Yn.call(this,i)),this;wf.call(this,r);let s={...r,type:(0,vr.getJSONTypes)(r.type),schemaType:(0,vr.getJSONTypes)(r.schemaType)};return(0,Zn.eachItem)(n,s.type.length===0?i=>Yn.call(this,i,s):i=>s.type.forEach(o=>Yn.call(this,i,s,o))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let s=n.rules.findIndex(i=>i.keyword===e);s>=0&&n.rules.splice(s,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(s=>`${n}${s.instancePath} ${s.message}`).reduce((s,i)=>s+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let s of r){let i=s.split("/").slice(1),o=e;for(let a of i)o=o[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=Bo(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let s=e[n];(!r||r.test(n))&&(typeof s=="string"?delete e[n]:s&&!s.meta&&(this._cache.delete(s.schema),delete e[n]))}}_addSchema(e,r,n,s=this.opts.validateSchema,i=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof e=="object")o=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,Tt.normalizeId)(o||n);let u=Tt.getSchemaRefs.call(this,e,n);return c=new jt.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),s&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):jt.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{jt.compileSchema.call(this,e)}finally{this.opts=r}}};At.ValidationError=tf.default;At.MissingRefError=Ko.default;Z.default=At;function Lo(t,e,r,n="error"){for(let s in t){let i=s;i in e&&this.logger[n](`${r}: option ${s}. ${t[i]}`)}}function Uo(t){return t=(0,Tt.normalizeId)(t),this.schemas[t]||this.refs[t]}function uf(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function ff(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function pf(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function mf(){let t={...this.opts};for(let e of of)delete t[e];return t}var hf={log(){},warn(){},error(){}};function gf(t){if(t===!1)return hf;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var yf=/^[a-z_$][a-z0-9_$:-]*$/i;function vf(t,e){let{RULES:r}=this;if((0,Zn.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!yf.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Yn(t,e,r){var n;let s=e?.post;if(r&&s)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,o=s?i.post:i.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},i.rules.push(o)),i.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,vr.getJSONTypes)(e.type),schemaType:(0,vr.getJSONTypes)(e.schemaType)}};e.before?_f.call(this,o,a,e.before):o.rules.push(a),i.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function _f(t,e,r){let n=t.rules.findIndex(s=>s.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function wf(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=Bo(e)),t.validateSchema=this.compile(e,!0))}var Sf={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Bo(t){return{anyOf:[t,Sf]}}});var Go=$(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});var $f={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Qn.default=$f});var Qo=$(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.callRef=Ke.getValidate=void 0;var bf=Nt(),Jo=le(),ae=j(),it=Re(),Yo=fr(),_r=D(),Rf={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:s,schemaEnv:i,validateName:o,opts:a,self:c}=n,{root:u}=i;if((r==="#"||r==="#/")&&s===u.baseId)return f();let l=Yo.resolveRef.call(c,u,s,r);if(l===void 0)throw new bf.default(n.opts.uriResolver,s,r);if(l instanceof Yo.SchemaEnv)return h(l);return m(l);function f(){if(i===u)return wr(t,o,i,i.$async);let g=e.scopeValue("root",{ref:u});return wr(t,(0,ae._)`${g}.validate`,u,u.$async)}function h(g){let d=Zo(t,g);wr(t,d,g,g.$async)}function m(g){let d=e.scopeValue("schema",a.code.source===!0?{ref:g,code:(0,ae.stringify)(g)}:{ref:g}),p=e.name("valid"),v=t.subschema({schema:g,dataTypes:[],schemaPath:ae.nil,topSchemaRef:d,errSchemaPath:r},p);t.mergeEvaluated(v),t.ok(p)}}};function Zo(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ae._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Ke.getValidate=Zo;function wr(t,e,r,n){let{gen:s,it:i}=t,{allErrors:o,schemaEnv:a,opts:c}=i,u=c.passContext?it.default.this:ae.nil;n?l():f();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let g=s.let("valid");s.try(()=>{s.code((0,ae._)`await ${(0,Jo.callValidateCode)(t,e,u)}`),m(e),o||s.assign(g,!0)},d=>{s.if((0,ae._)`!(${d} instanceof ${i.ValidationError})`,()=>s.throw(d)),h(d),o||s.assign(g,!1)}),t.ok(g)}function f(){t.result((0,Jo.callValidateCode)(t,e,u),()=>m(e),()=>h(e))}function h(g){let d=(0,ae._)`${g}.errors`;s.assign(it.default.vErrors,(0,ae._)`${it.default.vErrors} === null ? ${d} : ${it.default.vErrors}.concat(${d})`),s.assign(it.default.errors,(0,ae._)`${it.default.vErrors}.length`)}function m(g){var d;if(!i.opts.unevaluated)return;let p=(d=r?.validate)===null||d===void 0?void 0:d.evaluated;if(i.props!==!0)if(p&&!p.dynamicProps)p.props!==void 0&&(i.props=_r.mergeEvaluated.props(s,p.props,i.props));else{let v=s.var("props",(0,ae._)`${g}.evaluated.props`);i.props=_r.mergeEvaluated.props(s,v,i.props,ae.Name)}if(i.items!==!0)if(p&&!p.dynamicItems)p.items!==void 0&&(i.items=_r.mergeEvaluated.items(s,p.items,i.items));else{let v=s.var("items",(0,ae._)`${g}.evaluated.items`);i.items=_r.mergeEvaluated.items(s,v,i.items,ae.Name)}}}Ke.callRef=wr;Ke.default=Rf});var Xo=$(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});var Ef=Go(),If=Qo(),kf=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Ef.default,If.default];Xn.default=kf});var ea=$(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});var Sr=j(),Ae=Sr.operators,$r={maximum:{okStr:"<=",ok:Ae.LTE,fail:Ae.GT},minimum:{okStr:">=",ok:Ae.GTE,fail:Ae.LT},exclusiveMaximum:{okStr:"<",ok:Ae.LT,fail:Ae.GTE},exclusiveMinimum:{okStr:">",ok:Ae.GT,fail:Ae.LTE}},Pf={message:({keyword:t,schemaCode:e})=>(0,Sr.str)`must be ${$r[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Sr._)`{comparison: ${$r[t].okStr}, limit: ${e}}`},Of={keyword:Object.keys($r),type:"number",schemaType:"number",$data:!0,error:Pf,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Sr._)`${r} ${$r[e].fail} ${n} || isNaN(${r})`)}};es.default=Of});var ta=$(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});var Mt=j(),Nf={message:({schemaCode:t})=>(0,Mt.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Mt._)`{multipleOf: ${t}}`},Cf={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Nf,code(t){let{gen:e,data:r,schemaCode:n,it:s}=t,i=s.opts.multipleOfPrecision,o=e.let("res"),a=i?(0,Mt._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${i}`:(0,Mt._)`${o} !== parseInt(${o})`;t.fail$data((0,Mt._)`(${n} === 0 || (${o} = ${r}/${n}, ${a}))`)}};ts.default=Cf});var na=$(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});function ra(t){let e=t.length,r=0,n=0,s;for(;n<e;)r++,s=t.charCodeAt(n++),s>=55296&&s<=56319&&n<e&&(s=t.charCodeAt(n),(s&64512)===56320&&n++);return r}rs.default=ra;ra.code='require("ajv/dist/runtime/ucs2length").default'});var sa=$(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});var We=j(),jf=D(),Tf=na(),Af={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,We.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,We._)`{limit: ${t}}`},Mf={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Af,code(t){let{keyword:e,data:r,schemaCode:n,it:s}=t,i=e==="maxLength"?We.operators.GT:We.operators.LT,o=s.opts.unicode===!1?(0,We._)`${r}.length`:(0,We._)`${(0,jf.useFunc)(t.gen,Tf.default)}(${r})`;t.fail$data((0,We._)`${o} ${i} ${n}`)}};ns.default=Mf});var ia=$(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});var xf=le(),Df=D(),ot=j(),qf={message:({schemaCode:t})=>(0,ot.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,ot._)`{pattern: ${t}}`},Vf={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:qf,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:o}=t,a=o.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,ot._)`new RegExp`:(0,Df.useFunc)(e,c),l=e.let("valid");e.try(()=>e.assign(l,(0,ot._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(l,!1)),t.fail$data((0,ot._)`!${l}`)}else{let c=(0,xf.usePattern)(t,s);t.fail$data((0,ot._)`!${c}.test(${r})`)}}};ss.default=Vf});var oa=$(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});var xt=j(),Ff={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,xt.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,xt._)`{limit: ${t}}`},zf={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Ff,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxProperties"?xt.operators.GT:xt.operators.LT;t.fail$data((0,xt._)`Object.keys(${r}).length ${s} ${n}`)}};is.default=zf});var aa=$(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});var Dt=le(),qt=j(),Lf=D(),Uf={message:({params:{missingProperty:t}})=>(0,qt.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,qt._)`{missingProperty: ${t}}`},Kf={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Uf,code(t){let{gen:e,schema:r,schemaCode:n,data:s,$data:i,it:o}=t,{opts:a}=o;if(!i&&r.length===0)return;let c=r.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let m=t.parentSchema.properties,{definedProperties:g}=t.it;for(let d of r)if(m?.[d]===void 0&&!g.has(d)){let p=o.schemaEnv.baseId+o.errSchemaPath,v=`required property "${d}" is not defined at "${p}" (strictRequired)`;(0,Lf.checkStrictMode)(o,v,o.opts.strictRequired)}}function u(){if(c||i)t.block$data(qt.nil,f);else for(let m of r)(0,Dt.checkReportMissingProp)(t,m)}function l(){let m=e.let("missing");if(c||i){let g=e.let("valid",!0);t.block$data(g,()=>h(m,g)),t.ok(g)}else e.if((0,Dt.checkMissingProp)(t,r,m)),(0,Dt.reportMissingProp)(t,m),e.else()}function f(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Dt.noPropertyInData)(e,s,m,a.ownProperties),()=>t.error())})}function h(m,g){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(g,(0,Dt.propertyInData)(e,s,m,a.ownProperties)),e.if((0,qt.not)(g),()=>{t.error(),e.break()})},qt.nil)}}};os.default=Kf});var ca=$(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});var Vt=j(),Wf={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Vt.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Vt._)`{limit: ${t}}`},Bf={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Wf,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxItems"?Vt.operators.GT:Vt.operators.LT;t.fail$data((0,Vt._)`${r}.length ${s} ${n}`)}};as.default=Bf});var br=$(cs=>{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});var la=Cn();la.code='require("ajv/dist/runtime/equal").default';cs.default=la});var da=$(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});var ls=Et(),Q=j(),Hf=D(),Gf=br(),Jf={message:({params:{i:t,j:e}})=>(0,Q.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Q._)`{i: ${t}, j: ${e}}`},Yf={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Jf,code(t){let{gen:e,data:r,$data:n,schema:s,parentSchema:i,schemaCode:o,it:a}=t;if(!n&&!s)return;let c=e.let("valid"),u=i.items?(0,ls.getSchemaTypes)(i.items):[];t.block$data(c,l,(0,Q._)`${o} === false`),t.ok(c);function l(){let g=e.let("i",(0,Q._)`${r}.length`),d=e.let("j");t.setParams({i:g,j:d}),e.assign(c,!0),e.if((0,Q._)`${g} > 1`,()=>(f()?h:m)(g,d))}function f(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function h(g,d){let p=e.name("item"),v=(0,ls.checkDataTypes)(u,p,a.opts.strictNumbers,ls.DataType.Wrong),b=e.const("indices",(0,Q._)`{}`);e.for((0,Q._)`;${g}--;`,()=>{e.let(p,(0,Q._)`${r}[${g}]`),e.if(v,(0,Q._)`continue`),u.length>1&&e.if((0,Q._)`typeof ${p} == "string"`,(0,Q._)`${p} += "_"`),e.if((0,Q._)`typeof ${b}[${p}] == "number"`,()=>{e.assign(d,(0,Q._)`${b}[${p}]`),t.error(),e.assign(c,!1).break()}).code((0,Q._)`${b}[${p}] = ${g}`)})}function m(g,d){let p=(0,Hf.useFunc)(e,Gf.default),v=e.name("outer");e.label(v).for((0,Q._)`;${g}--;`,()=>e.for((0,Q._)`${d} = ${g}; ${d}--;`,()=>e.if((0,Q._)`${p}(${r}[${g}], ${r}[${d}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};ds.default=Yf});var ua=$(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});var us=j(),Zf=D(),Qf=br(),Xf={message:"must be equal to constant",params:({schemaCode:t})=>(0,us._)`{allowedValue: ${t}}`},ep={keyword:"const",$data:!0,error:Xf,code(t){let{gen:e,data:r,$data:n,schemaCode:s,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,us._)`!${(0,Zf.useFunc)(e,Qf.default)}(${r}, ${s})`):t.fail((0,us._)`${i} !== ${r}`)}};fs.default=ep});var fa=$(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});var Ft=j(),tp=D(),rp=br(),np={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Ft._)`{allowedValues: ${t}}`},sp={keyword:"enum",schemaType:"array",$data:!0,error:np,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:o}=t;if(!n&&s.length===0)throw new Error("enum must have non-empty array");let a=s.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,tp.useFunc)(e,rp.default)),l;if(a||n)l=e.let("valid"),t.block$data(l,f);else{if(!Array.isArray(s))throw new Error("ajv implementation error");let m=e.const("vSchema",i);l=(0,Ft.or)(...s.map((g,d)=>h(m,d)))}t.pass(l);function f(){e.assign(l,!1),e.forOf("v",i,m=>e.if((0,Ft._)`${u()}(${r}, ${m})`,()=>e.assign(l,!0).break()))}function h(m,g){let d=s[g];return typeof d=="object"&&d!==null?(0,Ft._)`${u()}(${r}, ${m}[${g}])`:(0,Ft._)`${r} === ${d}`}}};ps.default=sp});var pa=$(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});var ip=ea(),op=ta(),ap=sa(),cp=ia(),lp=oa(),dp=aa(),up=ca(),fp=da(),pp=ua(),mp=fa(),hp=[ip.default,op.default,ap.default,cp.default,lp.default,dp.default,up.default,fp.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},pp.default,mp.default];ms.default=hp});var gs=$(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.validateAdditionalItems=void 0;var Be=j(),hs=D(),gp={message:({params:{len:t}})=>(0,Be.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Be._)`{limit: ${t}}`},yp={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:gp,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,hs.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}ma(t,n)}};function ma(t,e){let{gen:r,schema:n,data:s,keyword:i,it:o}=t;o.items=!0;let a=r.const("len",(0,Be._)`${s}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Be._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,hs.alwaysValidSchema)(o,n)){let u=r.var("valid",(0,Be._)`${a} <= ${e.length}`);r.if((0,Be.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,l=>{t.subschema({keyword:i,dataProp:l,dataPropType:hs.Type.Num},u),o.allErrors||r.if((0,Be.not)(u),()=>r.break())})}}zt.validateAdditionalItems=ma;zt.default=yp});var ys=$(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.validateTuple=void 0;var ha=j(),Rr=D(),vp=le(),_p={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return ga(t,"additionalItems",e);r.items=!0,!(0,Rr.alwaysValidSchema)(r,e)&&t.ok((0,vp.validateArray)(t))}};function ga(t,e,r=t.schema){let{gen:n,parentSchema:s,data:i,keyword:o,it:a}=t;l(s),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=Rr.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,ha._)`${i}.length`);r.forEach((f,h)=>{(0,Rr.alwaysValidSchema)(a,f)||(n.if((0,ha._)`${u} > ${h}`,()=>t.subschema({keyword:o,schemaProp:h,dataProp:h},c)),t.ok(c))});function l(f){let{opts:h,errSchemaPath:m}=a,g=r.length,d=g===f.minItems&&(g===f.maxItems||f[e]===!1);if(h.strictTuples&&!d){let p=`"${o}" is ${g}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,Rr.checkStrictMode)(a,p,h.strictTuples)}}}Lt.validateTuple=ga;Lt.default=_p});var ya=$(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});var wp=ys(),Sp={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,wp.validateTuple)(t,"items")};vs.default=Sp});var _a=$(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});var va=j(),$p=D(),bp=le(),Rp=gs(),Ep={message:({params:{len:t}})=>(0,va.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,va._)`{limit: ${t}}`},Ip={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Ep,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:s}=r;n.items=!0,!(0,$p.alwaysValidSchema)(n,e)&&(s?(0,Rp.validateAdditionalItems)(t,s):t.ok((0,bp.validateArray)(t)))}};_s.default=Ip});var wa=$(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});var ue=j(),Er=D(),kp={message:({params:{min:t,max:e}})=>e===void 0?(0,ue.str)`must contain at least ${t} valid item(s)`:(0,ue.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,ue._)`{minContains: ${t}}`:(0,ue._)`{minContains: ${t}, maxContains: ${e}}`},Pp={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:kp,code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t,o,a,{minContains:c,maxContains:u}=n;i.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=e.const("len",(0,ue._)`${s}.length`);if(t.setParams({min:o,max:a}),a===void 0&&o===0){(0,Er.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,Er.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Er.alwaysValidSchema)(i,r)){let d=(0,ue._)`${l} >= ${o}`;a!==void 0&&(d=(0,ue._)`${d} && ${l} <= ${a}`),t.pass(d);return}i.items=!0;let f=e.name("valid");a===void 0&&o===1?m(f,()=>e.if(f,()=>e.break())):o===0?(e.let(f,!0),a!==void 0&&e.if((0,ue._)`${s}.length > 0`,h)):(e.let(f,!1),h()),t.result(f,()=>t.reset());function h(){let d=e.name("_valid"),p=e.let("count",0);m(d,()=>e.if(d,()=>g(p)))}function m(d,p){e.forRange("i",0,l,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Er.Type.Num,compositeRule:!0},d),p()})}function g(d){e.code((0,ue._)`${d}++`),a===void 0?e.if((0,ue._)`${d} >= ${o}`,()=>e.assign(f,!0).break()):(e.if((0,ue._)`${d} > ${a}`,()=>e.assign(f,!1).break()),o===1?e.assign(f,!0):e.if((0,ue._)`${d} >= ${o}`,()=>e.assign(f,!0)))}}};ws.default=Pp});var ba=$(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.validateSchemaDeps=we.validatePropertyDeps=we.error=void 0;var Ss=j(),Op=D(),Ut=le();we.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Ss.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Ss._)`{property: ${t},
|
|
7
|
-
missingProperty: ${n},
|
|
8
|
-
depsCount: ${e},
|
|
9
|
-
deps: ${r}}`};var Np={keyword:"dependencies",type:"object",schemaType:"object",error:we.error,code(t){let[e,r]=Cp(t);Sa(t,e),$a(t,r)}};function Cp({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let s=Array.isArray(t[n])?e:r;s[n]=t[n]}return[e,r]}function Sa(t,e=t.schema){let{gen:r,data:n,it:s}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let o in e){let a=e[o];if(a.length===0)continue;let c=(0,Ut.propertyInData)(r,n,o,s.opts.ownProperties);t.setParams({property:o,depsCount:a.length,deps:a.join(", ")}),s.allErrors?r.if(c,()=>{for(let u of a)(0,Ut.checkReportMissingProp)(t,u)}):(r.if((0,Ss._)`${c} && (${(0,Ut.checkMissingProp)(t,a,i)})`),(0,Ut.reportMissingProp)(t,i),r.else())}}we.validatePropertyDeps=Sa;function $a(t,e=t.schema){let{gen:r,data:n,keyword:s,it:i}=t,o=r.name("valid");for(let a in e)(0,Op.alwaysValidSchema)(i,e[a])||(r.if((0,Ut.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:s,schemaProp:a},o);t.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),t.ok(o))}we.validateSchemaDeps=$a;we.default=Np});var Ea=$($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var Ra=j(),jp=D(),Tp={message:"property name must be valid",params:({params:t})=>(0,Ra._)`{propertyName: ${t.propertyName}}`},Ap={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Tp,code(t){let{gen:e,schema:r,data:n,it:s}=t;if((0,jp.alwaysValidSchema)(s,r))return;let i=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},i),e.if((0,Ra.not)(i),()=>{t.error(!0),s.allErrors||e.break()})}),t.ok(i)}};$s.default=Ap});var Rs=$(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});var Ir=le(),ge=j(),Mp=Re(),kr=D(),xp={message:"must NOT have additional properties",params:({params:t})=>(0,ge._)`{additionalProperty: ${t.additionalProperty}}`},Dp={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:xp,code(t){let{gen:e,schema:r,parentSchema:n,data:s,errsCount:i,it:o}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,kr.alwaysValidSchema)(o,r))return;let u=(0,Ir.allSchemaProperties)(n.properties),l=(0,Ir.allSchemaProperties)(n.patternProperties);f(),t.ok((0,ge._)`${i} === ${Mp.default.errors}`);function f(){e.forIn("key",s,p=>{!u.length&&!l.length?g(p):e.if(h(p),()=>g(p))})}function h(p){let v;if(u.length>8){let b=(0,kr.schemaRefOrVal)(o,n.properties,"properties");v=(0,Ir.isOwnProperty)(e,b,p)}else u.length?v=(0,ge.or)(...u.map(b=>(0,ge._)`${p} === ${b}`)):v=ge.nil;return l.length&&(v=(0,ge.or)(v,...l.map(b=>(0,ge._)`${(0,Ir.usePattern)(t,b)}.test(${p})`))),(0,ge.not)(v)}function m(p){e.code((0,ge._)`delete ${s}[${p}]`)}function g(p){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){m(p);return}if(r===!1){t.setParams({additionalProperty:p}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,kr.alwaysValidSchema)(o,r)){let v=e.name("valid");c.removeAdditional==="failing"?(d(p,v,!1),e.if((0,ge.not)(v),()=>{t.reset(),m(p)})):(d(p,v),a||e.if((0,ge.not)(v),()=>e.break()))}}function d(p,v,b){let E={keyword:"additionalProperties",dataProp:p,dataPropType:kr.Type.Str};b===!1&&Object.assign(E,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(E,v)}}};bs.default=Dp});var Pa=$(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});var qp=Ot(),Ia=le(),Es=D(),ka=Rs(),Vp={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&ka.default.code(new qp.KeywordCxt(i,ka.default,"additionalProperties"));let o=(0,Ia.allSchemaProperties)(r);for(let f of o)i.definedProperties.add(f);i.opts.unevaluated&&o.length&&i.props!==!0&&(i.props=Es.mergeEvaluated.props(e,(0,Es.toHash)(o),i.props));let a=o.filter(f=>!(0,Es.alwaysValidSchema)(i,r[f]));if(a.length===0)return;let c=e.name("valid");for(let f of a)u(f)?l(f):(e.if((0,Ia.propertyInData)(e,s,f,i.opts.ownProperties)),l(f),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(f),t.ok(c);function u(f){return i.opts.useDefaults&&!i.compositeRule&&r[f].default!==void 0}function l(f){t.subschema({keyword:"properties",schemaProp:f,dataProp:f},c)}}};Is.default=Vp});var ja=$(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});var Oa=le(),Pr=j(),Na=D(),Ca=D(),Fp={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:s,it:i}=t,{opts:o}=i,a=(0,Oa.allSchemaProperties)(r),c=a.filter(d=>(0,Na.alwaysValidSchema)(i,r[d]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&s.properties,l=e.name("valid");i.props!==!0&&!(i.props instanceof Pr.Name)&&(i.props=(0,Ca.evaluatedPropsToName)(e,i.props));let{props:f}=i;h();function h(){for(let d of a)u&&m(d),i.allErrors?g(d):(e.var(l,!0),g(d),e.if(l))}function m(d){for(let p in u)new RegExp(d).test(p)&&(0,Na.checkStrictMode)(i,`property ${p} matches pattern ${d} (use allowMatchingProperties)`)}function g(d){e.forIn("key",n,p=>{e.if((0,Pr._)`${(0,Oa.usePattern)(t,d)}.test(${p})`,()=>{let v=c.includes(d);v||t.subschema({keyword:"patternProperties",schemaProp:d,dataProp:p,dataPropType:Ca.Type.Str},l),i.opts.unevaluated&&f!==!0?e.assign((0,Pr._)`${f}[${p}]`,!0):!v&&!i.allErrors&&e.if((0,Pr.not)(l),()=>e.break())})})}}};ks.default=Fp});var Ta=$(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});var zp=D(),Lp={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,zp.alwaysValidSchema)(n,r)){t.fail();return}let s=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),t.failResult(s,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};Ps.default=Lp});var Aa=$(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});var Up=le(),Kp={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Up.validateUnion,error:{message:"must match a schema in anyOf"}};Os.default=Kp});var Ma=$(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});var Or=j(),Wp=D(),Bp={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Or._)`{passingSchemas: ${t.passing}}`},Hp={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Bp,code(t){let{gen:e,schema:r,parentSchema:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&n.discriminator)return;let i=r,o=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){i.forEach((l,f)=>{let h;(0,Wp.alwaysValidSchema)(s,l)?e.var(c,!0):h=t.subschema({keyword:"oneOf",schemaProp:f,compositeRule:!0},c),f>0&&e.if((0,Or._)`${c} && ${o}`).assign(o,!1).assign(a,(0,Or._)`[${a}, ${f}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(a,f),h&&t.mergeEvaluated(h,Or.Name)})})}}};Ns.default=Hp});var xa=$(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});var Gp=D(),Jp={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let s=e.name("valid");r.forEach((i,o)=>{if((0,Gp.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:o},s);t.ok(s),t.mergeEvaluated(a)})}};Cs.default=Jp});var Va=$(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var Nr=j(),qa=D(),Yp={message:({params:t})=>(0,Nr.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Nr._)`{failingKeyword: ${t.ifClause}}`},Zp={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Yp,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,qa.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let s=Da(n,"then"),i=Da(n,"else");if(!s&&!i)return;let o=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),s&&i){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(a,u("then",l),u("else",l))}else s?e.if(a,u("then")):e.if((0,Nr.not)(a),u("else"));t.pass(o,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(l)}function u(l,f){return()=>{let h=t.subschema({keyword:l},a);e.assign(o,a),t.mergeValidEvaluated(h,o),f?e.assign(f,(0,Nr._)`${l}`):t.setParams({ifClause:l})}}}};function Da(t,e){let r=t.schema[e];return r!==void 0&&!(0,qa.alwaysValidSchema)(t,r)}js.default=Zp});var Fa=$(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var Qp=D(),Xp={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,Qp.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Ts.default=Xp});var za=$(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});var em=gs(),tm=ya(),rm=ys(),nm=_a(),sm=wa(),im=ba(),om=Ea(),am=Rs(),cm=Pa(),lm=ja(),dm=Ta(),um=Aa(),fm=Ma(),pm=xa(),mm=Va(),hm=Fa();function gm(t=!1){let e=[dm.default,um.default,fm.default,pm.default,mm.default,hm.default,om.default,am.default,im.default,cm.default,lm.default];return t?e.push(tm.default,nm.default):e.push(em.default,rm.default),e.push(sm.default),e}As.default=gm});var La=$(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var H=j(),ym={message:({schemaCode:t})=>(0,H.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,H._)`{format: ${t}}`},vm={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:ym,code(t,e){let{gen:r,data:n,$data:s,schema:i,schemaCode:o,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:f}=a;if(!c.validateFormats)return;s?h():m();function h(){let g=r.scopeValue("formats",{ref:f.formats,code:c.code.formats}),d=r.const("fDef",(0,H._)`${g}[${o}]`),p=r.let("fType"),v=r.let("format");r.if((0,H._)`typeof ${d} == "object" && !(${d} instanceof RegExp)`,()=>r.assign(p,(0,H._)`${d}.type || "string"`).assign(v,(0,H._)`${d}.validate`),()=>r.assign(p,(0,H._)`"string"`).assign(v,d)),t.fail$data((0,H.or)(b(),E()));function b(){return c.strictSchema===!1?H.nil:(0,H._)`${o} && !${v}`}function E(){let w=l.$async?(0,H._)`(${d}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,H._)`${v}(${n})`,_=(0,H._)`(typeof ${v} == "function" ? ${w} : ${v}.test(${n}))`;return(0,H._)`${v} && ${v} !== true && ${p} === ${e} && !${_}`}}function m(){let g=f.formats[i];if(!g){b();return}if(g===!0)return;let[d,p,v]=E(g);d===e&&t.pass(w());function b(){if(c.strictSchema===!1){f.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function E(_){let y=_ instanceof RegExp?(0,H.regexpCode)(_):c.code.formats?(0,H._)`${c.code.formats}${(0,H.getProperty)(i)}`:void 0,S=r.scopeValue("formats",{key:i,ref:_,code:y});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,H._)`${S}.validate`]:["string",_,S]}function w(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!l.$async)throw new Error("async format in sync schema");return(0,H._)`await ${v}(${n})`}return typeof p=="function"?(0,H._)`${v}(${n})`:(0,H._)`${v}.test(${n})`}}}};Ms.default=vm});var Ua=$(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var _m=La(),wm=[_m.default];xs.default=wm});var Ka=$(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.contentVocabulary=at.metadataVocabulary=void 0;at.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];at.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Ba=$(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});var Sm=Xo(),$m=pa(),bm=za(),Rm=Ua(),Wa=Ka(),Em=[Sm.default,$m.default,(0,bm.default)(),Rm.default,Wa.metadataVocabulary,Wa.contentVocabulary];Ds.default=Em});var Ga=$(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.DiscrError=void 0;var Ha;(function(t){t.Tag="tag",t.Mapping="mapping"})(Ha||(Cr.DiscrError=Ha={}))});var Ya=$(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});var ct=j(),qs=Ga(),Ja=fr(),Im=Nt(),km=D(),Pm={message:({params:{discrError:t,tagName:e}})=>t===qs.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,ct._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},Om={keyword:"discriminator",type:"object",schemaType:"object",error:Pm,code(t){let{gen:e,data:r,schema:n,parentSchema:s,it:i}=t,{oneOf:o}=s;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,ct._)`${r}${(0,ct.getProperty)(a)}`);e.if((0,ct._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:qs.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function l(){let m=h();e.if(!1);for(let g in m)e.elseIf((0,ct._)`${u} === ${g}`),e.assign(c,f(m[g]));e.else(),t.error(!1,{discrError:qs.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function f(m){let g=e.name("valid"),d=t.subschema({keyword:"oneOf",schemaProp:m},g);return t.mergeEvaluated(d,ct.Name),g}function h(){var m;let g={},d=v(s),p=!0;for(let w=0;w<o.length;w++){let _=o[w];if(_?.$ref&&!(0,km.schemaHasRulesButRef)(_,i.self.RULES)){let S=_.$ref;if(_=Ja.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,S),_ instanceof Ja.SchemaEnv&&(_=_.schema),_===void 0)throw new Im.default(i.opts.uriResolver,i.baseId,S)}let y=(m=_?.properties)===null||m===void 0?void 0:m[a];if(typeof y!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);p=p&&(d||v(_)),b(y,w)}if(!p)throw new Error(`discriminator: "${a}" must be required`);return g;function v({required:w}){return Array.isArray(w)&&w.includes(a)}function b(w,_){if(w.const)E(w.const,_);else if(w.enum)for(let y of w.enum)E(y,_);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function E(w,_){if(typeof w!="string"||w in g)throw new Error(`discriminator: "${a}" values must be unique strings`);g[w]=_}}}};Vs.default=Om});var Za=$((Xg,Nm)=>{Nm.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var Xa=$((K,Fs)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.MissingRefError=K.ValidationError=K.CodeGen=K.Name=K.nil=K.stringify=K.str=K._=K.KeywordCxt=K.Ajv=void 0;var Cm=Ho(),jm=Ba(),Tm=Ya(),Qa=Za(),Am=["/properties"],jr="http://json-schema.org/draft-07/schema",lt=class extends Cm.default{_addVocabularies(){super._addVocabularies(),jm.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(Tm.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(Qa,Am):Qa;this.addMetaSchema(e,jr,!1),this.refs["http://json-schema.org/schema"]=jr}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(jr)?jr:void 0)}};K.Ajv=lt;Fs.exports=K=lt;Fs.exports.Ajv=lt;Object.defineProperty(K,"__esModule",{value:!0});K.default=lt;var Mm=Ot();Object.defineProperty(K,"KeywordCxt",{enumerable:!0,get:function(){return Mm.KeywordCxt}});var dt=j();Object.defineProperty(K,"_",{enumerable:!0,get:function(){return dt._}});Object.defineProperty(K,"str",{enumerable:!0,get:function(){return dt.str}});Object.defineProperty(K,"stringify",{enumerable:!0,get:function(){return dt.stringify}});Object.defineProperty(K,"nil",{enumerable:!0,get:function(){return dt.nil}});Object.defineProperty(K,"Name",{enumerable:!0,get:function(){return dt.Name}});Object.defineProperty(K,"CodeGen",{enumerable:!0,get:function(){return dt.CodeGen}});var xm=dr();Object.defineProperty(K,"ValidationError",{enumerable:!0,get:function(){return xm.default}});var Dm=Nt();Object.defineProperty(K,"MissingRefError",{enumerable:!0,get:function(){return Dm.default}})});import{existsSync as ai}from"fs";import{readFileSync as nh}from"fs";import{readdir as sh}from"fs/promises";import xr from"path";import{z as R}from"zod";var Ie=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/,wc=R.object({cardType:R.string(),schemaVersion:R.number().optional()}),Vr=R.object({route:R.string(),component:R.string()}),Fr=R.object({route:R.string(),label:R.string().optional(),icon:R.string().optional(),order:R.number().optional()}),zr=R.object({id:R.string(),range:R.string().optional(),required:R.boolean().default(!0)}),Lr=R.object({service:R.string(),provider:R.string().regex(Ie,"provider 名含非法字符(需 /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/)"),implementation:R.string(),credentialType:R.string(),local:R.boolean().optional(),configSchema:R.string().optional(),credentialSchema:R.string().optional()}),Ur=R.object({service:R.string(),optional:R.boolean().default(!0),defaults:R.array(R.object({provider:R.string().regex(Ie,"provider 名含非法字符(需 /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/)"),implementation:R.string()})).default([]),title:R.string().optional(),description:R.string().optional()}),Kr=R.object({id:R.string(),type:R.string()}),Wr=R.object({schemaVersion:R.number().default(1),name:R.string(),version:R.string().default("0.0.0"),kind:R.enum(["platform","business","third-party"]).default("business"),risk:R.object({level:R.enum(["high","medium","low"]).default("low"),writeBoundary:R.enum(["sdk-enforced","source"]).default("source")}).default({}),distribution:R.object({defaultMode:R.enum(["hybrid","sdk","codegen","local"]).default("codegen")}).default({}),contributes:R.object({handlers:R.array(R.string()).default([]),tools:R.array(R.string()).default([]),cards:R.array(wc).default([]),routes:R.array(R.string()).default([]),pages:R.array(Vr).default([]),tabs:R.array(Fr).default([]),providers:R.object({slots:R.array(Lr).default([])}).default({}),services:R.array(Ur).default([]),resources:R.array(Kr).default([])}).default({}),dependencies:R.object({modules:R.array(zr).default([])}).default({}),env:R.array(R.string()).default([])}).strict();function ke(t){let e=Wr.safeParse(t);return e.success?{ok:!0,value:e.data}:{ok:!1,errors:e.error.issues.map(r=>`${r.path.join(".")||"(root)"}: ${r.message}`)}}var Sc=/\$\$?\{([A-Z][A-Z0-9_]*)\}/g;function $c(t){return JSON.stringify(t).slice(1,-1)}function bc(t,e=process.env){let r=[],n=t.replace(Sc,(s,i)=>{if(s.startsWith("$$"))return s.slice(1);let o=e[i];return o===void 0?(r.push(i),s):$c(o)});return r.length>0?{missing:r}:{text:n,missing:[]}}import{mkdirSync as Rc,existsSync as ci,readFileSync as Ec,writeFileSync as Ic}from"fs";import{dirname as kc,join as li}from"path";function Bt(t){let e={};for(let[r,n]of Object.entries(t)){if(typeof n!="string"){e[r]=null;continue}e[r]=n.length<=4?"****":`${n.slice(0,2)}****`}return e}function Ht(t,e){if(e!==void 0&&(e.includes("/")||e.includes("\\")||e.includes("..")))throw new Error(`凭据 stem 派生输入含路径敌对字符(${t})——拒绝派生`)}function Ge(t){if(Ht("provider",t.provider),Ht("service",t.service),Ht("instanceId",t.instanceId),Ht("domain",t.domain),t.instanceId!==void 0){let e=t.domain??t.service??"global";return`${t.provider}-${t.instanceId}-${e}`}return t.service!==void 0?`${t.provider}-${t.service}`:`${t.provider}-global`}function Me(t){return`config/credentials/${t}.json`}function pt(t,e){let r=li(t,Me(e));if(!ci(r))return null;try{let n=JSON.parse(Ec(r,"utf8"));if(typeof n.type!="string")return null;let{type:s,...i}=n,o={};for(let[a,c]of Object.entries(i))typeof c=="string"&&(o[a]=c);return{type:s,values:o}}catch{return null}}function Br(t,e,r){let n=li(t,Me(e)),s=ci(n);return Rc(kc(n),{recursive:!0}),Ic(n,`${JSON.stringify({type:r.type,...r.values},null,2)}
|
|
10
|
-
`,"utf8"),s}import{mkdirSync as Pc,renameSync as Oc,writeFileSync as Nc}from"fs";import{dirname as Cc}from"path";function Se(t,e){di(Cc(t));let r=`${t}.tmp-${process.pid}-${Date.now()}`;Nc(r,e,"utf8"),Oc(r,t)}function di(t){Pc(t,{recursive:!0})}function Hr(t){if(!t||typeof t!="object")return!1;let e=Object.keys(t),r=new Set(["provider","credentialType","configSchema"]);if(!e.every(s=>r.has(s)))return!1;let n=t;return typeof n.provider=="string"&&n.provider.length>0&&typeof n.credentialType=="string"&&n.credentialType.length>0&&(n.configSchema===void 0||typeof n.configSchema=="string")}function ui(t,e,r){return t==="*"||r.has(t)?null:{severity:"error",code:"INSTANCE_KEY_NOT_REGISTERED",instance:t,message:`integrations: ${e} 键 ${t} 不在 malls 白名单内(${[...r].join(", ")})`}}function Gr(t,e){let r=new Set(e),n=[],s=(i,o)=>{let a=ui(i,o,r);a&&n.push(a)};for(let i of Object.keys(t.configByInstance??{}))s(i,"configByInstance");for(let i of Object.keys(t.credentialRefByInstance??{}))s(i,"credentialRefByInstance");for(let[i,o]of Object.entries(t.services??{}))for(let a of Object.keys(o.instances??{}))s(a,`services.${i}.instances`);return n}function Gt(t){let e=[],r=t.contracts,{integrations:n,suppliedProviders:s,demandedServices:i,supplies:o,malls:a,credentialSchemaMissing:c,vendorConfigKeys:u,vendorConfigSchemaMissing:l,credentialFileMissing:f,credentialFileType:h,realmSwitchHints:m,moduleResourceNeeds:g}=t,d=a?new Set(a):void 0;for(let y of m??[])e.push({severity:"warning",code:"REALM_SWITCH_HINT",message:y});let p=new Set(Object.keys(s).map(y=>y.slice(0,y.indexOf("\0"))).filter(y=>y.length>0)),v=(y,S,P,I)=>{if(typeof P?.provider=="string"&&typeof P.implementation=="string"&&P.provider&&P.implementation)return s[mt(P.provider,P.implementation)]?.credentialType;if(typeof S.provider=="string"&&typeof S.implementation=="string")return s[mt(S.provider,S.implementation)]?.credentialType;let A=S.provider?.credentialType;if(typeof A=="string")return A;if(!o)return;let x=I??Object.keys(S.instances??{})[0]??"",F=r.resolveEffectiveService(n,y,x,o);if(!(F.status!=="ok"||typeof F.effective.provider!="string"))return s[mt(F.effective.provider,F.effective.implementation)]?.credentialType};if(f||h)for(let[y,S]of Object.entries(n.services))for(let[P,I]of Object.entries(S.instances??{})){if(I.enabled===!1)continue;let A=I.credentialRef??S.credentialRef??n.credentialRefByInstance?.[P]??n.credentialRef;if(typeof A!="string"||!A.startsWith("secret://"))continue;let x=A.slice(9);f?.[x]===!0&&e.push({severity:"error",code:"CREDENTIAL_FILE_MISSING",service:y,instance:P,message:`integrations: 凭据文件缺失 ${x}(${y}@${P} effective ref=${A};档内 config/credentials/ 无此文件)`});let F=h?.[x];if(F){let G=v(y,S,I,P);G&&F!==G&&e.push({severity:"error",code:"CREDENTIAL_TYPE_MISMATCH",service:y,instance:P,message:`integrations: 凭据文件 ${x}.json type=${F} 与绑定 credentialType ${G} 不一致(${y}@${P}——transport 创建期将按 type 选策略)`})}}let b=(y,S)=>{if(!d)return;let P=ui(y,S,d);P&&e.push(P)};for(let[y]of Object.entries(n.configByInstance??{}))b(y,"configByInstance");for(let[y]of Object.entries(n.credentialRefByInstance??{}))b(y,"credentialRefByInstance");let E=Object.entries(n.services).filter(([,y])=>y.instances==null||y.instances["*"]!=null).map(([y])=>y);if(E.length>0){let y=Object.entries(n.services).filter(([,S])=>S.instances!=null&&S.instances["*"]==null).map(([S])=>S);y.length>0&&e.push({severity:"warning",code:"WILDCARD_ALIGNMENT",message:`integrations: 激活形态不对称(通配:${E.join(", ")};显式键集:${y.join(", ")})——动态 mallId 将在显式键集槽上 INSTANCE_NOT_FOUND(provider 业务限制表达位),确认是否齐步`})}let w=r.normalizeInstances({instances:n.instances,defaultInstanceId:n.defaultInstanceId});w.instances.length>=2&&w.defaultInstanceId===null&&e.push({severity:"warning",code:"MULTI_INSTANCE_NO_DEFAULT",message:`integrations: ${w.instances.length} 个部署实例(${w.instances.map(y=>y.id).join(", ")})均无 defaultInstanceId——无 scope 参数访问将落全局会话(默认商圈不注入)`});for(let[y,S]of Object.entries(n.services)){if(i[y]||e.push({severity:"warning",code:"SLOT_NOT_DECLARED",service:y,message:`integrations: 服务槽 ${y} 无消费方声明(拼写错误或需求方未安装)——若为拆分前旧槽位词汇(member.main/parking.main/promotion.read/shopping-guide.main),参照 cookbook·app-config 槽位迁移配方展开为新槽`}),typeof S.provider=="string"?typeof S.implementation=="string"&&!s[mt(S.provider,S.implementation)]&&e.push({severity:"error",code:"INSTANCE_SUPPLY_UNMATCHED",service:y,message:`integrations: provider ${S.provider}/${S.implementation} 未命中已装供给(${y} 槽级)——装对应 provider 包或改绑`}):S.provider!==void 0&&!Hr(S.provider)&&e.push({severity:"error",code:"INLINE_PROVIDER_INVALID",service:y,message:`integrations: 内联 provider 超受控形状(${y} 槽级;允许键 provider/credentialType/configSchema)`}),c){let I=v(y,S);I&&c[I]===!0&&e.push({severity:"error",code:"SCHEMA_FILE_MISSING",service:y,message:`integrations: credentialType ${I} 的 schema 引用不存在(${y};manifest 声明指向缺失文件)`})}typeof S.provider=="object"&&typeof S.implementation!="string"&&e.push({severity:"error",code:"IMPL_WITHOUT_PROVIDER",service:y,message:`integrations: 内联厂商声明必须同时提供 implementation(${y} 槽级)`});for(let[I,A]of Object.entries(S.instances??{})){b(I,`services.${y}.instances`);let x=A.provider!==void 0,F=A.implementation!==void 0;if(F&&!x&&e.push({severity:"error",code:"IMPL_WITHOUT_PROVIDER",service:y,instance:I,message:`integrations: 实例级 implementation 需伴随 provider(${y}@${I}——impl-only 禁止,provider 是绑定组头)`}),x&&F){let G=A.provider,fe=A.implementation;typeof G=="string"&&typeof fe=="string"?s[mt(G,fe)]||e.push({severity:"error",code:"INSTANCE_SUPPLY_UNMATCHED",service:y,instance:I,message:`integrations: 实例级 provider 覆盖 ${G}/${fe} 未命中已装供给(${y}@${I})`}):Hr(G)||e.push({severity:"error",code:"INLINE_PROVIDER_INVALID",service:y,instance:I,message:`integrations: 实例级内联 provider 超受控形状(${y}@${I})`})}}}for(let[y,S]of[["root",n.provider],...Object.entries(n.domains??{}).map(([P,I])=>[`domains.${P}`,I?.provider])])typeof S!="string"||S.length===0||p.has(S)||e.push({severity:"error",code:"VENDOR_NOT_INSTALLED",module:y.startsWith("domains.")?y.slice(8):void 0,message:`integrations: ${y} provider ${S} 未命中已装供给——装对应 provider 包或 provider use 改绑`});if(o)for(let[y,S]of Object.entries(n.services)){let P=S.instances?Object.keys(S.instances):[""];for(let I of P){let A=r.resolveEffectiveService(n,y,I,o);A.status==="binding-unresolved"&&e.push({severity:"error",code:"BINDING_UNRESOLVED",service:y,instance:I||void 0,message:`integrations: ${A.message}`})}}for(let[y,S]of Object.entries(n.services))S.implementation!==void 0&&S.provider===void 0&&e.push({severity:"error",code:"IMPL_WITHOUT_PROVIDER",service:y,message:`integrations: 槽级 implementation 需伴随 provider(${y}——impl-only 禁止,provider 是绑定组头)`});let _=new Set([...Object.keys(n.services).map(y=>r.moduleDomainOf(y)),...Object.keys(i).map(y=>r.moduleDomainOf(y))]);for(let y of Object.keys(n.domains??{}))_.has(y)||e.push({severity:"warning",code:"DOMAIN_KEY_UNMATCHED",module:y,message:`integrations: domains.${y} 无对应槽位或需求声明(域前缀拼写错误?——键 = 槽位 id 点分前缀)`});if(u){let y=new Set,S=!1,P=I=>{typeof I!="string"||I.length===0||(u[I]&&y.add(I),!u[I]&&!l?.[I]&&(S=!0),l?.[I]&&(S=!0))};P(n.provider);for(let I of Object.values(n.domains??{}))P(I?.provider);for(let I of Object.values(n.services)){let A=I.provider;P(typeof I.provider=="string"?I.provider:A?.provider)}if(y.size>0&&!S){let I=new Set;for(let x of y)for(let F of u[x]??[])I.add(F);let A=(x,F,G)=>{for(let[fe]of Object.entries(x??{}))(G??I).has(fe)||e.push({severity:"error",code:"DOMAIN_CONFIG_INVALID",message:`integrations: ${F} 键 ${fe} 不在引用厂商(${[...y].join("/")})任何槽 schema properties 内(死配置)`})};A(n.config,"root.config");for(let[x,F]of Object.entries(n.configByInstance??{}))A(F,`root.configByInstance[${x}]`);for(let[x,F]of Object.entries(n.domains??{})){if(!F?.config)continue;let G=typeof F.provider=="string"&&F.provider?F.provider:typeof n.provider=="string"?n.provider:void 0;if(G===void 0){A(F.config,`domains.${x}.config`);continue}let fe=u[G];!fe||l?.[G]||A(F.config,`domains.${x}.config`,new Set(fe))}}}for(let[y,S]of Object.entries(i)){let P=n.services[y];if(!P){e.push({severity:"warning",code:"SLOT_NOT_CONFIGURED",service:y,message:`integrations: 服务槽 ${y}(需求方 ${S.owners.join(", ")})未配置${S.optional?"(可选槽)":"(必需槽——模块将走降级链)"}`});continue}let I=Object.entries(P.instances??{}).filter(([,A])=>A.enabled===!1).map(([A])=>A);I.length>0&&e.push({severity:"warning",code:"INSTANCE_DISABLED",service:y,instance:I.join(", "),message:`integrations: ${y} 实例禁用(${I.join(", ")})`})}for(let[y,S]of Object.entries(n.modules??{})){let P=g?.[y];g&&!(y in g)&&e.push({severity:"warning",code:"RESOURCE_NOT_DECLARED",module:y,message:`integrations: modules.${y} 未命中已装模块(键 = install id——检查 .tbox/app.json entry.id / packages/ 目录名)`});for(let[I,A]of Object.entries(S?.resources??{})){let x=A?.type;(typeof x!="string"||!r.RESOURCE_TYPE_IDS.includes(x))&&e.push({severity:"error",code:"RESOURCE_TYPE_UNKNOWN",module:y,message:`integrations: modules.${y}.resources.${I} type 非法(${String(x)};词汇表 = ${r.RESOURCE_TYPE_IDS.join("/")})`}),P&&P.size>0&&!P.has(I)&&e.push({severity:"warning",code:"RESOURCE_NOT_DECLARED",module:y,message:`integrations: modules.${y}.resources.${I} 未被模块 manifest contributes.resources 声明`})}}return e}function mt(t,e){return`${t}\0${e}`}import{existsSync as Jr,readFileSync as jc,readdirSync as Tc}from"fs";import{join as Jt}from"path";function pi(t){return t.replaceAll("-","_").toUpperCase()}function fi(t){if(!Jr(t))return null;try{let e=JSON.parse(jc(t,"utf8"));return e&&typeof e=="object"?e:null}catch{return null}}function Ac(t){let e=new Set,r=t.properties;if(r&&typeof r=="object"&&!Array.isArray(r))for(let n of Object.keys(r))e.add(n);return e}function Yr(t,e,r,n=process.env){let s={};for(let[w,_]of Object.entries(e.catalog.providers))for(let[y,S]of Object.entries(_))s[`${w}\0${y}`]={services:[...S.services],owner:S.owner,credentialType:S.credentialType};let i={};for(let[w,_]of Object.entries(e.catalog.services))i[w]={optional:_.optional,owners:[..._.owners]};let o={},a={},c={},u={};for(let w of e.modules){u[w.id]=new Set((w.descriptor.contributes.resources??[]).map(_=>_.id));for(let _ of w.descriptor.contributes.providers?.slots??[]){if(_.configSchema){let y=fi(Jt(w.dir,_.configSchema));if(y){let S=o[_.provider]??=new Set;for(let P of Ac(y))S.add(P)}else a[_.provider]=!0}_.credentialSchema&&!Jr(Jt(w.dir,_.credentialSchema))&&(c[_.credentialType]=!0)}}let l={},f=new Set,h=Jt(t,"config","credentials");if(Jr(h))for(let w of Tc(h)){if(!w.endsWith(".json"))continue;let _=w.slice(0,-5);f.add(_);let y=fi(Jt(h,w));y&&typeof y.type=="string"&&(l[_]=y.type)}let m=r,g=[],d=w=>{typeof w=="string"&&w.startsWith("secret://")&&g.push(w)};for(let w of Object.values(m.services??{}))if(w&&typeof w=="object"){d(w.credentialRef);for(let _ of Object.values(w.instances??{}))_&&typeof _=="object"&&d(_.credentialRef)}for(let w of Object.values(m.credentialRefByInstance??{}))d(w);d(m.credentialRef);let p={};for(let w of g){let _=w.slice(9);n[pi(_)]===void 0&&(f.has(_)||(p[_]=!0))}let v=[];for(let[w,_]of Object.entries(m.services??{})){let y=_&&typeof _=="object"&&typeof _.provider=="string"?_.provider:void 0;for(let[S,P]of Object.entries((_&&typeof _=="object"?_.instances:void 0)??{})){let I=P&&typeof P=="object"&&typeof P.provider=="string"?P.provider:void 0;y&&I&&I!==y&&v.push(`integrations: ${w}@${S} 实现覆盖跨厂商(${y} → ${I})——凭据域切换,确认该 mall 对应凭据在场`)}}let E=((Array.isArray(m.instances)?m.instances:void 0)??[]).map(w=>w&&typeof w=="object"&&typeof w.id=="string"?w.id:void 0).filter(w=>typeof w=="string");return{suppliedProviders:s,demandedServices:i,credentialFileMissing:p,credentialFileType:l,credentialSchemaMissing:c,vendorConfigKeys:o,vendorConfigSchemaMissing:a,realmSwitchHints:v,moduleResourceNeeds:u,...E.length>0?{malls:E}:{}}}import{existsSync as ye,readdirSync as Qr,readFileSync as Je}from"fs";import{join as J}from"path";import{existsSync as Mc,readFileSync as mi,mkdirSync as xc,writeFileSync as Dc}from"fs";import hi from"path";function Yt(t){return hi.join(t,".tbox","app.json")}function gi(t){let e=Yt(t);if(!Mc(e))return null;try{let r=JSON.parse(mi(e,"utf8")),n=r?.templateVersion;return typeof n!="string"||n.trim().length===0?null:{templateVersion:n.trim(),npmModules:Array.isArray(r?.npmModules)?r.npmModules:[]}}catch{return null}}function qc(t,e){let r=Yt(t);xc(hi.dirname(r),{recursive:!0}),Dc(r,`${JSON.stringify(e,null,2)}
|
|
11
|
-
`,"utf8")}function Zr(t){let e=gi(t);if(e===null)return null;let r=Yt(t);try{let n=JSON.parse(mi(r,"utf8"));return{...e,miniappContainers:Array.isArray(n?.miniappContainers)?n.miniappContainers:[]}}catch{return{...e,miniappContainers:[]}}}function Vc(t,e){let r=t.npmModules.filter(n=>n.id!==e.id);return{...t,npmModules:[...r,e]}}function Fc(t,e){return{...t,npmModules:t.npmModules.filter(r=>r.id!==e)}}function zc(t,e){let r=(t.miniappContainers??[]).filter(n=>n.id!==e.id);return{...t,miniappContainers:[...r,e]}}function Lc(t,e,r){return{...t,npmModules:t.npmModules.map(n=>n.id===e?{...n,...r}:n)}}function yi(t){return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(t)&&!t.includes("..")}function Uc(t,e){if(!yi(t))throw new Error(`非法模块 id "${t}"(来自 ${e}):仅允许小写字母/数字/中划线`)}function Zt(t,e){let r=n=>{try{let s=JSON.parse(n),i=ke(s);if(i.ok)return{kind:"strict",name:i.value.name,version:i.value.version,descriptor:i.value,contributes:i.value.contributes};if(s&&typeof s=="object"&&"contributes"in s){let o=s;return{kind:"loose",...typeof o.name=="string"?{name:o.name}:{},contributes:{providers:o.contributes?.providers,services:o.contributes?.services}}}return null}catch{return null}};if(e)return e.read(t,r)??null;if(!ye(t))return null;try{return r(Je(t,"utf8"))}catch{return null}}function Kc(t){let e=J(t,".tbox","app.json");if(!ye(e))return[];try{let r=JSON.parse(Je(e,"utf8"));return Array.isArray(r.npmModules)?r.npmModules.filter(n=>!!n&&typeof n=="object"&&typeof n.id=="string"&&typeof n.package=="string"):[]}catch{return[]}}function Wc(t){let e=J(t,".tbox-dev.local"),r=J(e,"dev-manifest.json");if(!ye(r))return[];try{let n=JSON.parse(Je(r,"utf8")),s=[];for(let[i,o]of Object.entries(n.redirects??{}))typeof o!="string"||!i.startsWith("@tbox.cn/app-")||s.push({pkg:i,dir:J(e,o)});return s}catch{return[]}}function Bc(t,e){let r=[],n=[t];for(let i of["apps","packages"]){let o=J(t,i);if(ye(o))try{for(let a of Qr(o,{withFileTypes:!0}))a.isDirectory()&&n.push(J(o,a.name))}catch{}}let s=new Set;for(let i of n){let o=J(i,"node_modules","@tbox.cn");if(!ye(o))continue;let a=[];try{a=Qr(o)}catch{continue}for(let c of a){let u=J(o,c);if(s.has(u))continue;s.add(u);let l=J(u,"service-slots.json");if(!ye(l))continue;let f=m=>{try{let g=JSON.parse(m);if(Array.isArray(g.slots))return g.slots.filter(d=>typeof d=="string")}catch{}return null},h=e?e.read(l,f):f(Je(l,"utf8"));h!=null&&r.push({dir:u,slots:h})}}return r}function Y(t,e){let r=[],n={providers:{},services:{},credentialTypes:{}},s={},i=[],o=new Set,a=new Map,c=(h,m,g)=>{for(let d of h){let p=n.providers[d.provider]??={},v=p[d.implementation];v?v.services.includes(d.service)||v.services.push(d.service):(p[d.implementation]={provider:d.provider,implementation:d.implementation,credentialType:d.credentialType,owner:m,...d.local?{local:!0}:{},...d.configSchema?{configSchema:d.configSchema}:{},...d.credentialSchema?{credentialSchema:d.credentialSchema}:{},services:[d.service]},n.credentialTypes[d.credentialType]??={owner:m,...d.credentialSchema?{credentialSchema:d.credentialSchema}:{}});let b=`${d.provider}\0${d.service}`;s[b]||(s[b]={...d.configSchema?{configSchema:d.configSchema}:{},...d.credentialSchema?{credentialSchema:d.credentialSchema}:{},packageDir:g})}},u=(h,m)=>{let g=h.optional!==!1,d=h.defaults??[],p=n.services[h.service];if(p){p.optional=p.optional&&g;let E=new Set(p.defaults.map(w=>`${w.provider}\0${w.implementation}`));for(let w of d){let _=`${w.provider}\0${w.implementation}`;E.has(_)||(p.defaults.push(w),E.add(_))}p.owners.includes(m)||p.owners.push(m);return}n.services[h.service]={optional:g,defaults:[...d],...h.title?{title:h.title}:{},...h.description?{description:h.description}:{},owners:[m]};let v=h.service.includes(".")?h.service.slice(0,h.service.indexOf(".")):h.service,b=a.get(v);b===void 0?a.set(v,m):b!==m&&i.push({severity:"warning",code:"DOMAIN_KEY_CONFLICT",module:m,message:`域键 ${v} 被多模块声明(${b} 与 ${m})——domains 换算歧义(P13)`})};for(let h of Kc(t)){if(o.has(h.id))continue;let m=J(t,"packages",h.id),g=J(t,"node_modules",...h.package.split("/")),d=Zt(J(m,"tbox.module.json"),e)??Zt(J(g,"tbox.module.json"),e);if(!d)continue;o.add(h.id);let p=ye(J(m,"tbox.module.json"))?m:g,v=d.contributes;d.kind==="strict"&&r.push({id:h.id,dir:p,pkg:h.mode==="sdk"?h.package:`@app/${h.id}`,descriptor:d.descriptor});let b=v.providers?.slots??[];b.length&&c(b,h.package,p);let E=v.services??[];if(E.length)for(let w of E)u(w,h.package)}for(let{pkg:h,dir:m}of Wc(t)){let g=Zt(J(m,"tbox.module.json"),e);if(!g?.name||o.has(g.name))continue;o.add(g.name);let d=g.contributes.providers?.slots??[];d.length&&c(d,h,m);let p=g.contributes.services??[];if(p.length)for(let v of p)u(v,h)}let l=J(t,"packages");if(ye(l)){let h=[];try{h=Qr(l,{withFileTypes:!0}).filter(m=>m.isDirectory()).map(m=>m.name)}catch{}for(let m of h){if(o.has(m))continue;let g=J(l,m),d=Zt(J(g,"tbox.module.json"),e);if(!d)continue;let p=d.name??m;if(o.has(p))continue;o.add(p);let v=d.contributes;d.kind==="strict"&&r.push({id:p,dir:g,pkg:`@app/${p}`,descriptor:d.descriptor});let b=v.providers?.slots??[];b.length&&c(b,`@app/${p}`,g);let E=v.services??[];if(E.length)for(let w of E)u(w,`@app/${p}`)}}let f=new Set;for(let h of Bc(t,e))for(let m of h.slots)f.add(m);return{modules:r,catalog:n,serviceSchemas:s,vocabulary:[...f].sort(),domainKeyIssues:i}}function vi(t,e,r){let n=J(t,"src",e,"index.ts");if(!ye(n))return!1;try{let s=Je(n,"utf8");return new RegExp(`export\\s+const\\s+${r}\\b`).test(s)}catch{return!1}}function Hc(t){let e=J(t,"src","server","index.ts");if(!ye(e))return"";try{return Je(e,"utf8")}catch{return""}}function _i(t){return t.match(/declaration\s*:\s*\{[\s\S]*?moduleId\s*:\s*['"]([^'"]+)['"]/)?.[1]}function Xr(t){let e=[],r=Y(t),n=Zr(t),s=new Map;for(let i of n?.npmModules??[])s.set(i.id,i.mode);for(let i of r.modules){let o=s.get(i.id)??"local",a=vi(i.dir,"server","serverModule"),c=i.descriptor.contributes;e.push({id:i.id,pkg:o==="sdk"?i.pkg:`@app/${i.id}`,mode:o,hasServerEntry:a,hasClientEntry:vi(i.dir,"client","clientModule"),hasCards:(c.cards?.length??0)>0,...a?{moduleId:_i(Hc(i.dir))}:{}})}return e.sort((i,o)=>i.id.localeCompare(o.id))}import{existsSync as Nh,readFileSync as Ch}from"fs";import{join as Th,resolve as Ah}from"path";function en(t){return Y(t).catalog}function wi(t){let e=Y(t).catalog,r={};for(let[i,o]of Object.entries(e.providers)){r[i]={};for(let[a,c]of Object.entries(o))r[i][a]={provider:c.provider,implementation:c.implementation,credentialType:c.credentialType,owner:c.owner,...c.local?{local:!0}:{},...c.configSchema?{configSchema:c.configSchema}:{},...c.credentialSchema?{credentialSchema:c.credentialSchema}:{},services:[...c.services]}}let n={};for(let[i,o]of Object.entries(e.services))n[i]={optional:o.optional,defaults:o.defaults.map(a=>({...a})),owners:[...o.owners]};let s={};for(let[i,o]of Object.entries(e.credentialTypes))s[i]={...o};return{providers:r,services:n,credentialTypes:s}}import{existsSync as Gc,readFileSync as Jc}from"fs";import{join as Si}from"path";var Yc=Si("config","integrations.json");function ht(t,e){let r=Si(t,Yc),n=s=>JSON.parse(s);if(e)return e.read(r,n)??null;if(!Gc(r))return null;try{return n(Jc(r,"utf8"))}catch{return null}}var oc=_c(Xa(),1);import{existsSync as sc,readFileSync as ic}from"fs";import{join as ut,resolve as Fm}from"path";var Kt=["provider","config","configByInstance","credentialRef","credentialRefByInstance","instances","defaultInstanceId"];import{readdirSync as qm,existsSync as zs,readFileSync as Vm}from"fs";import{join as Ls}from"path";function ec(t,e,r){let n=[];if(e){let s=Ge({provider:t});n.push({stem:s,ref:`secret://${s}`,input:e})}for(let[s,i]of Object.entries(r??{})){let o=Ge({provider:t,instanceId:s});n.push({instanceId:s,stem:o,ref:`secret://${o}`,input:i})}return n}function tc(t,e,r,n,s){let i=[];if(n){let o=Ge({provider:t,service:e});i.push({stem:o,ref:`secret://${o}`,input:n})}for(let[o,a]of Object.entries(s??{})){let c=Ge({provider:t,instanceId:o,domain:r});i.push({instanceId:o,stem:c,ref:`secret://${c}`,input:a})}return i}function Ks(t,e,r){return e.map(n=>({stem:n.stem,ref:n.ref,overwrote:r?zs(Ls(t,Me(n.stem))):Br(t,n.stem,n.input)}))}function Us(t,e){if(typeof t=="string"){t.startsWith("secret://")&&e.add(t.slice(9));return}if(Array.isArray(t)){for(let r of t)Us(r,e);return}if(t&&typeof t=="object")for(let r of Object.values(t))Us(r,e)}function Ws(t){let e=Ls(t,"config","credentials"),r=new Set,n=Ls(t,"config","integrations.json");if(zs(n))try{Us(JSON.parse(Vm(n,"utf8")),r)}catch{}let s=[];if(!zs(e))return s;let i=[];try{i=qm(e).filter(o=>o.endsWith(".json")).map(o=>o.slice(0,-5))}catch{return s}for(let o of i.sort()){if(r.has(o))continue;let a=pt(t,o);s.push({severity:"warning",code:"ORPHANED_CREDENTIAL",message:`config/credentials/${o}.json 不再被引用(凭据文件保留,可手动清理)`})}return s}var W=class extends Error{code;httpStatus;fields;constructor(e,r,n,s){super(n),this.name="AppToolkitError",this.code=e,this.httpStatus=r,this.fields=s}};function Bs(t){return t.version===null?"contracts 不可解析(未安装)——检查应用依赖安装后重试":t.strictValidation?t.notes[0]??"contracts workspace 源码态未构建——执行 pnpm --filter @tbox.cn/app-contracts build 后重试":`contracts ${t.version} 无严格校验面(需 ≥0.9)——升级应用 @tbox.cn/app-contracts 依赖后可用`}var He=ut("config","integrations.json");function ft(t,e){if(t===e)return!0;if(Array.isArray(t)&&Array.isArray(e))return t.length!==e.length?!1:t.every((r,n)=>ft(r,e[n]));if(t&&e&&typeof t=="object"&&typeof e=="object"){let r=Object.keys(t),n=Object.keys(e);return r.length!==n.length?!1:r.every(s=>ft(t[s],e[s]))}return!1}function Mr(t,e){if(typeof t!="string"&&t&&typeof t=="object")for(let[r,n]of Object.entries(t)){if((r==="provider"||r==="instanceId")&&typeof n=="string"&&!Ie.test(n))throw new W("VALIDATION_FAILED",400,`${r} 名含非法字符(需 /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/)`,[`${e}.${r}`]);Mr(n,`${e}.${r}`)}}function Tr(t,e,r){if(!(!t||typeof t!="object"||Array.isArray(t))){for(let n of Object.keys(t))if(!(r&&(n==="*"||n==="**"))&&!Ie.test(n))throw new W("VALIDATION_FAILED",400,`${e} 键 ${n} 含非法字符(需 /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/)——进凭据 stem 派生,防路径逃逸`,[e])}}function rc(t,e,r){if(r==="root"){let n=t.instances;Array.isArray(n)&&n.forEach((s,i)=>{let o=s&&typeof s=="object"?s.id:void 0;if(typeof o=="string"&&!Ie.test(o))throw new W("VALIDATION_FAILED",400,`instances[${i}].id 含非法字符(需 /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/)`,[`root.instances[${i}].id`])}),Tr(t.configByInstance,"root.configByInstance",!1),Tr(t.credentialRefByInstance,"root.credentialRefByInstance",!1)}else Tr(t.instances,"services.instances",!0);Tr(e.credentialsByInstance,"credentialsByInstance",!1)}function Ar(t,e){let r=ut(t,He),n=s=>JSON.parse(s);if(e)return e.read(r,n)??null;if(!sc(r))return null;try{return n(ic(r,"utf8"))}catch{return null}}function Hs(t){let e=(t.instances??[]).map(r=>r.id);return e.length===0?[]:Gr(t,e)}function zm(t,e,r,n){let{catalog:s}=Y(t,n),i=s.providers[e];if(!i)return;let o=new Set;for(let a of Object.values(i))(r===void 0||a.services.includes(r))&&o.add(a.credentialType);return o.size===1?[...o][0]:void 0}function nc(t,e,r,n,s,i){let o=s??zm(t,e,r,i);if(o!==void 0&&o!=="-"&&n.type!==o)throw new W("VALIDATION_FAILED",400,`凭据 type=${n.type} 与绑定 credentialType ${o} 不一致`,["credentials.type"]);if(r===void 0)return;let{serviceSchemas:a}=Y(t,i),c=a[`${e}\0${r}`];if(!c?.credentialSchema)return;let u=Fm(c.packageDir,c.credentialSchema);if(sc(u))try{let f=new oc.default({allErrors:!0}).compile(JSON.parse(ic(u,"utf8")));if(!f({type:n.type,...n.values})){let h=(f.errors??[]).map(m=>`credentials.values.${String(m.instancePath||m.params?.missingProperty||"").replace(/^\//,"")}`);throw new W("VALIDATION_FAILED",400,"凭据字段校验失败(ajv 字段级)",h)}}catch(l){if(l instanceof W)throw l}}function Gs(t,e={}){let{onApplied:r,cache:n}=e;function s(c,u,l,f,h){let m=!f&&c!==null;m&&(Se(ut(t,He),`${JSON.stringify(c,null,2)}
|
|
12
|
-
`),n?.invalidate([ut(t,He)]));let g=m||h,d=g&&r!==void 0;d&&r?.();let p=[];return m&&p.push(He),h&&p.push(...u.map(v=>`config/credentials/${v.stem}.json`)),{written:g,restartScheduled:d,files:p,credentials:u,issues:l}}let i;async function o(){i=await B(t)}function a(c,u){let l=i;if(!l||!l.strictValidation||!l.module.parseIntegrationsConfig)throw new W("CONTRACTS_NOT_RESOLVED",503,"contracts 严格校验面不可用(需 ≥0.9)——写路径门控失败(工厂边缘断言应先行拦截)");l.module.parseIntegrationsConfig(c)}return{warmup:o,moduleDomainKey(c){let{modules:u}=Y(t,n),l=u.find(m=>m.id===c);if(!l)return;let f=l.descriptor.contributes.services??[],h=new Set(f.map(m=>m.service.includes(".")?m.service.slice(0,m.service.indexOf(".")):m.service));return h.size===1?[...h][0]:c},applyApp(c,u={}){Mr(c,"root"),rc(c,u,"root");let l=[],f=Ar(t,n),h=f??{services:{}};f===null&&l.push({severity:"warning",code:"SKELETON_MATERIALIZED",message:"config/integrations.json 缺席——已物化骨架(写时自动初始化;R13 语义翻转提示)"});let m={...h};for(let _ of Kt)_ in c||delete m[_];for(let[_,y]of Object.entries(c))m[_]=y;let g=typeof m.provider=="string"?m.provider:"app",d=ec(g,u.credentials,u.credentialsByInstance);for(let _ of d)nc(t,g,void 0,_.input,void 0,n);let p=d.find(_=>_.instanceId===void 0);if(u.credentials&&p&&(m.credentialRef=p.ref),u.credentialsByInstance){let _={...m.credentialRefByInstance??{}};for(let y of d)y.instanceId!==void 0&&(_[y.instanceId]=y.ref);m.credentialRefByInstance=_}let v=u.credentials!==void 0||u.credentialsByInstance!==void 0,b=ft(f,m);if(b&&!v)return{written:!1,restartScheduled:!1,files:[],credentials:[],issues:l};a(m,l);let E=u.dryRun===!0,w=Ks(t,d,E);return l.push(...Hs(m)),s(b?null:m,w,l,u.dryRun,!E&&d.length>0)},applyModule(c,u,l={}){Mr(u,"root");let f=[],h=Ar(t,n);if(h===null&&Object.keys(u).length===0)return{written:!1,restartScheduled:!1,files:[],credentials:[],issues:f};h===null&&f.push({severity:"warning",code:"SKELETON_MATERIALIZED",message:"config/integrations.json 缺席——已物化骨架(写时自动初始化;R13 语义翻转提示)"});let m=h??{services:{}},g=this.moduleDomainKey(c);if(g===void 0)throw new W("MODULE_NOT_FOUND",404,`模块 ${c} 非已装模块`);let d={...m.domains??{}},p={...m,domains:d};return Object.keys(u).length===0?delete d[g]:d[g]={...u},ft(h,p)?{written:!1,restartScheduled:!1,files:[],credentials:[],issues:f}:(a(p,f),f.push(...Hs(p)),s(p,[],f,l.dryRun,!1))},applyService(c,u,l={}){Mr(u,"root"),rc(u,l,"slot");let f=[],h=Ar(t,n);h===null&&f.push({severity:"warning",code:"SKELETON_MATERIALIZED",message:"config/integrations.json 缺席——已物化骨架(写时自动初始化;R13 语义翻转提示)"});let m=h??{services:{}},g={...m.services??{}},d={...m,services:g};g[c]={...u};let p=u.provider,v=p!==null&&typeof p=="object"?p:void 0,b=typeof p=="string"?p:typeof v?.provider=="string"?v.provider:"app",E=c.includes(".")?c.slice(0,c.indexOf(".")):c,w=tc(b,c,E,l.credentials,l.credentialsByInstance);for(let x of w)nc(t,b,c,x.input,typeof v?.credentialType=="string"?v.credentialType:void 0,n);let _=g[c],y=w.find(x=>x.instanceId===void 0);if(l.credentials&&y&&(_.credentialRef=y.ref),l.credentialsByInstance){let x={..._.instances??{}};for(let F of w){if(F.instanceId===void 0)continue;let G={...x[F.instanceId]??{}};G.credentialRef=F.ref,x[F.instanceId]=G}_.instances=x}let S=l.credentials!==void 0||l.credentialsByInstance!==void 0,P=ft(h,d);if(P&&!S)return{written:!1,restartScheduled:!1,files:[],credentials:[],issues:f};a(d,f);let I=l.dryRun===!0,A=Ks(t,w,I);return f.push(...Hs(d)),s(P?null:d,A,f,l.dryRun,!I&&w.length>0)},deleteService(c){let u=[],l=Ar(t,n),f={...l?.services??{}};if(!(c in f))return{written:!1,restartScheduled:!1,files:[],credentials:[],issues:u};delete f[c];let h={...l??{services:{}},services:f};Se(ut(t,He),`${JSON.stringify(h,null,2)}
|
|
13
|
-
`),n?.invalidate([ut(t,He)]),u.push(...Ws(t));let m=r!==void 0;return m&&r?.(),{written:!0,restartScheduled:m,files:[He],credentials:[],issues:u}}}}import{existsSync as Lm}from"fs";import{join as Um}from"path";function Js(t){let e=Um(t,"config","integrations.json");if(Lm(e))return{generated:!1,reason:"in-place",services:[]};let r=[];for(let i of Y(t).modules)for(let o of i.descriptor.contributes.providers?.slots??[])o.local===!0&&r.push({service:o.service,provider:o.provider,implementation:o.implementation});if(r.length===0)return{generated:!1,reason:"no-local-slots",services:[]};let n={},s=new Set(r.map(i=>i.provider));if(s.size===1){let[i]=s;for(let o of r)n[o.service]={};Se(e,`${JSON.stringify({provider:i,services:n},null,2)}
|
|
14
|
-
`)}else{for(let i of r)n[i.service]={provider:i.provider,implementation:i.implementation};Se(e,`${JSON.stringify({services:n},null,2)}
|
|
15
|
-
`)}return{generated:!0,reason:"generated",services:r.map(i=>i.service).sort()}}function Wt(t){let e=t.indexOf(".");return e===-1?t:t.slice(0,e)}function ac(t,e){let r=Y(t.appDir,t.cache),n=ht(t.appDir,t.cache);return{appDir:t.appDir,walk:r,catalog:r.catalog,integrations:n,contracts:e}}function cc(t){let e=new Set;for(let r of t.modules){for(let n of r.descriptor.contributes.services??[])e.add(n.service);for(let n of r.descriptor.contributes.providers?.slots??[])e.add(n.service)}return e}function lc(t,e,r){let n=t.providers[e];return n?Object.values(n).some(s=>s.services.includes(r)):!1}function dc(t,e){let r=[];for(let[n,s]of Object.entries(t.providers))Object.values(s).some(i=>i.services.includes(e))&&r.push(n);return r.sort()}function Ys(t){return{modules:t.walk.modules.map(r=>({id:r.id,name:r.descriptor.name,title:r.descriptor.name,description:""})).sort((r,n)=>r.id.localeCompare(n.id))}}function uc(t,e){let r=new Set(t.map(n=>Wt(n.service)));return r.size===1?[...r][0]:e}function Zs(t,e){let r=t.walk.modules.find(a=>a.id===e);if(!r)throw new W("MODULE_NOT_FOUND",404,`模块 ${e} 非已装模块`);let n=(r.descriptor.contributes.services??[]).map(a=>({service:a.service,...a.title?{title:a.title}:{},...a.description?{description:a.description}:{},required:a.optional!==!1})),s=t.integrations?.domains??{},i=uc(n,e);return{integration:s[i]??null,services:n}}function Qs(t){let e=cc(t.walk),r=t.walk.vocabulary.filter(i=>!e.has(i)),n=t.integrations,s=null;if(n){let i={};for(let o of Kt)o in n&&(i[o]=n[o]);s=i}return{services:r,integration:s}}function Xs(t,e){let r=t.integrations?.services??{},n=t.catalog.services[e],s=t.walk.vocabulary.includes(e),i=e in r;if(!s&&!i)throw new W("SERVICE_NOT_FOUND",404,`服务 ${e} 不在服务词汇(已装契约包 ∪ 已配置)`);let o=r[e]??null;return{service:e,...n?.title?{title:n.title}:{title:e},...n?.description?{description:n.description}:{},required:n?!n.optional:!1,defaults:n?n.defaults.map(a=>({...a})):[],integration:o,suppliedBy:dc(t.catalog,e)}}import{existsSync as hc,readFileSync as gc,realpathSync as fc}from"fs";import{isAbsolute as Km,join as Wm,relative as Bm,resolve as pc,sep as Hm}from"path";function ei(t){let e=[];for(let[r,n]of Object.entries(t.catalog.providers)){let s=Object.values(n);s.length!==0&&e.push({provider:r,local:s.every(i=>i.local===!0),owner:s[0].owner})}return{providers:e.sort((r,n)=>r.provider.localeCompare(n.provider))}}function ti(t,e){let r=t.catalog.providers[e];if(!r)throw new W("PROVIDER_NOT_FOUND",404,`厂商 ${e} 不 ∈ catalog(内联声明厂商无包级档案——身份与表单经组合端点暴露)`);let n={};for(let i of Object.values(r))for(let o of i.services)(n[o]??={implementations:[]}).implementations.push({implementation:i.implementation,credentialType:i.credentialType});let s=Object.values(r);return{provider:e,local:s.every(i=>i.local===!0),owner:s[0].owner,services:n}}function ri(t,e,r){let n=t.catalog.providers[e],s=t.integrations?.services??{},i=[];if(n)for(let f of Object.values(n))f.services.includes(r)&&i.push({implementation:f.implementation,credentialType:f.credentialType});let o=s[r]?.provider,a=o&&typeof o=="object"&&o.provider===e?o:void 0;if(i.length===0&&!a)throw n?new W("SUPPLY_NOT_FOUND",404,`厂商 ${e} 未供给服务 ${r}(AI 帮我实现流:PUT 显式绑定后实施)`):new W("PROVIDER_NOT_FOUND",404,`厂商 ${e} 完全未知(不 ∈ catalog 且无任何内联声明)`);i.length===0&&a&&i.push({implementation:s[r]?.implementation??`${e}-inline@1`,credentialType:a.credentialType});let c=null,u=null,l=Y(t.appDir).serviceSchemas[`${e}\0${r}`];if(l)c=mc(t.appDir,l.packageDir,l.configSchema),u=mc(t.appDir,l.packageDir,l.credentialSchema);else if(a){let f=o?.configSchema;typeof f=="string"&&(c=Gm(t.appDir,f))}return{provider:e,service:r,implementations:i,integrationSchemas:{configSchema:c,credentialSchema:u}}}function mc(t,e,r){if(!r)return null;let n=Wm(e,r);if(!hc(n))return null;try{return JSON.parse(gc(n,"utf8"))}catch{return null}}function Gm(t,e){let r=pc(t,"config","schemas"),n=pc(t,e),s=Bm(r,n);if(s===""||s.startsWith("..")||Km(s))throw new W("VALIDATION_FAILED",400,"configSchema 引用必须落在 config/schemas/ 内(禁路径逃逸)",["provider.configSchema"]);if(!hc(n))return null;let i,o;try{i=fc(r),o=fc(n)}catch{return null}if(o!==i&&!o.startsWith(i+Hm))throw new W("VALIDATION_FAILED",400,"configSchema 引用经 symlink 逃逸出 config/schemas/(realpath 复核拒绝)",["provider.configSchema"]);try{return JSON.parse(gc(n,"utf8"))}catch{return null}}function yc(t){return{version:t.version,evaluation:t.evaluation,strictValidation:t.strictValidation,notes:[...t.notes]}}function Jm(t,e,r){let n=t.integrations,s=Wt(e),i=n?.services?.[e],o=i?.instances?.[r]??i?.instances?.["*"];return o&&o.provider!==void 0?"instance":i?.provider!==void 0?"service":n?.domains?.[s]?.provider!==void 0?"module":"app"}function Ym(t,e){if(e===void 0||!e.startsWith("secret://"))return;let r=e.slice(9),n=pt(t,r);if(n)return{type:n.type,ref:e,file:Me(r),masked:Bt(n.values)}}function vc(t,e,r,n,s){let i=e.resolveEffectiveService(t.integrations,r,n,s);if(i.status==="ok"&&i.effective){let o=i.effective.provider,a=typeof o=="string"?o:String(o?.provider??"");return{status:"ok",provider:a,implementation:i.effective.implementation,effective:{provider:a,implementation:i.effective.implementation,...i.effective.config!==void 0?{config:{...i.effective.config}}:{},...i.effective.credentialRef!==void 0?{credentialRef:i.effective.credentialRef}:{},layer:Jm(t,r,n)}}}return i.status==="binding-unresolved"?{status:"binding-unresolved",statusMessage:i.message}:{status:i.status}}function ni(t){let e=t.contracts.module;if(!e.resolveEffectiveService||!e.normalizeInstances)throw new Error("contracts 求值面缺席(工厂门控应先行拦截)");return e}function si(t,e){let r=ni(e),{integrations:n,catalog:s}=e,i=r.buildSupplyLookup(s),o=n,c=r.normalizeInstances({instances:o?.instances,defaultInstanceId:o?.defaultInstanceId}).defaultInstanceId??"*",u=vc(e,r,t,c,i),l=e.integrations?.services?.[t]?.provider,f=u.provider??(typeof l=="string"?l:typeof l=="object"&&l?String(l.provider):void 0),h=new Set(Object.keys(e.catalog.providers)),m=f!==void 0&&h.has(f)?Zm(e.catalog,f,t):void 0,g=s.services[t],d=g!==void 0?!g.optional:void 0,p=g?.owners[0];return{status:u.status,...u.statusMessage?{statusMessage:u.statusMessage}:{},...f!==void 0?{provider:f}:{},...m!==void 0?{supplied:m}:{},...p!==void 0?{module:p}:{},...d!==void 0?{required:d}:{}}}function Zm(t,e,r){return lc(t,e,r)}function ii(t,e,r){let n=new Set([...t.walk.vocabulary,...Object.keys(t.catalog.services)]),s=t.integrations?.services??{};for(let o of Object.keys(s))n.add(o);let i={};for(let o of[...n].sort())r&&!r.includes(o)||(i[o]=si(o,t));return{contracts:yc(t.contracts),resolutions:i,issues:e}}function oi(t,e,r){let n=ni(e),s=n.buildSupplyLookup(e.catalog),i=e.integrations,a=n.normalizeInstances({instances:i?.instances,defaultInstanceId:i?.defaultInstanceId}).instances.map(d=>d.id),c=e.integrations?.services?.[t],u=c?.instances?Object.keys(c.instances):void 0,l;a.length>0?(l=[...a],u?.includes("*")&&l.push("*")):u!==void 0&&u.length>0?l=u.includes("*")?["*"]:u:l=[];let f=l.map(d=>{let p=vc(e,n,t,d,s),v=Ym(e.appDir,p.effective?.credentialRef);return{instanceId:d,status:p.status,...p.statusMessage?{statusMessage:p.statusMessage}:{},...p.effective?{effective:p.effective}:{},...v?{credential:v}:{}}}),h=Qm(e,t),g={...si(t,e),instances:f,inheritance:h};return{contracts:yc(e.contracts),resolution:g,issues:r.filter(d=>d.service===t)}}function Qm(t,e){let r=t.integrations,n=Wt(e),s=r?.services?.[e],i=t.integrations,a=ni(t).normalizeInstances({instances:i?.instances,defaultInstanceId:i?.defaultInstanceId}).defaultInstanceId??"*",c=s?.instances?.[a]??s?.instances?.["*"];return[{layer:"app",...r?.provider?{provider:r.provider}:{}},{layer:"module",...r?.domains?.[n]?.provider?{provider:r.domains[n].provider}:{}},{layer:"service",...typeof s?.provider=="string"?{provider:s.provider}:{},...s?.implementation?{implementation:s.implementation}:{}},{layer:"instance",...c?.provider?{provider:c.provider}:{},...c?.implementation?{implementation:c.implementation}:{}}]}import eh from"path";function th(t,e={}){let r=Dr(),n=Promise.resolve(),s={appDir:t,cache:r};function i(d){if(!d.strictValidation)throw new W("CONTRACTS_NOT_RESOLVED",503,Bs(d))}function o(d){return ac(s,d)}async function a(){let d=await B(t),p=o(d),v=p.integrations;if(v===null)return[];let b={resolveEffectiveService:c(d.module.resolveEffectiveService,"resolveEffectiveService"),buildSupplyLookup:c(d.module.buildSupplyLookup,"buildSupplyLookup"),moduleDomainOf:c(d.module.moduleDomainOf,"moduleDomainOf"),normalizeInstances:c(d.module.normalizeInstances,"normalizeInstances"),RESOURCE_TYPE_IDS:d.module.RESOURCE_TYPE_IDS??[]},E=Yr(t,p.walk,v,process.env);return Gt({contracts:b,integrations:v,supplies:b.buildSupplyLookup(p.catalog),...E})}function c(d,p){if(typeof d!="function")throw new W("CONTRACTS_NOT_RESOLVED",503,`contracts 求值面 ${p} 缺席(形态异常)`);return d}function u(d){let p=n.then(d,d);return n=p.catch(()=>{}),p}let l={async loadModules(){let d=await B(t);return Ys(o(d))},async loadModule(d){let p=await B(t);return Zs(o(p),d)},async loadApp(){let d=await B(t);return Qs(o(d))},async loadService(d){let p=await B(t);return Xs(o(p),d)},async loadServiceResolutions(d){let p=await B(t);i(p);let v=await a();return ii(o(p),v,d)},async loadServiceResolution(d){let p=await B(t);i(p);let v=await a();return oi(d,o(p),v)},async loadProviders(){let d=await B(t);return ei(o(d))},async loadProvider(d){let p=await B(t);return ti(o(p),d)},async loadProviderService(d,p){let v=await B(t);return ri(o(v),d,p)}},f=Gs(t,{onApplied:e.onApplied,cache:r}),h={async writeAppIntegration(d,p){await f.warmup();let v=await B(t);return i(v),u(()=>f.applyApp(d,p))},async writeModuleIntegration(d,p,v){await f.warmup();let b=await B(t);return i(b),u(()=>f.applyModule(d,p,v))},async writeServiceIntegration(d,p,v){await f.warmup();let b=await B(t);return i(b),u(()=>f.applyService(d,p,v))},async deleteServiceIntegration(d){await f.warmup();let p=await B(t);return i(p),u(()=>f.deleteService(d))}},m={invalidate(){r.invalidate(),qr(t)},async resolveContracts(){return B(t)},walkManifests(){return g(t)},parseModuleDescriptor(d){return ke(d)},loadProviderCatalogRaw(){return en(t)},async readIntegrationsConfig(){return ht(t,r)},async writeIntegrationsConfig(d){await f.warmup();let p=await B(t);return i(p),u(()=>rh(t,d,r))},async ensureMockBindings(){await f.warmup();let d=await B(t);return i(d),u(()=>Js(t))},async evaluateIntegrationServices(d){await f.warmup();let p=await B(t);i(p);let v={resolveEffectiveService:c(p.module.resolveEffectiveService,"resolveEffectiveService"),buildSupplyLookup:c(p.module.buildSupplyLookup,"buildSupplyLookup"),moduleDomainOf:c(p.module.moduleDomainOf,"moduleDomainOf"),normalizeInstances:c(p.module.normalizeInstances,"normalizeInstances"),RESOURCE_TYPE_IDS:p.module.RESOURCE_TYPE_IDS??[]};return Gt({...d,contracts:v})}};function g(d){return Y(d,r)}return{...l,...h,...m}}function rh(t,e,r){let n=eh.join(t,"config","integrations.json");Se(n,`${JSON.stringify(e,null,2)}
|
|
16
|
-
`),r.invalidate([n])}function ih(t){let e=xr.join(t,"tbox.module.json");if(!ai(e))return null;try{let r=ke(JSON.parse(nh(e,"utf8")));return r.ok?r.value:null}catch{return null}}async function Wv(t){let e=xr.join(t,"packages"),r=[];if(!ai(e))return r;let n=await sh(e,{withFileTypes:!0});for(let s of n){if(!s.isDirectory())continue;let i=xr.join(e,s.name);if(!ai(xr.join(i,"package.json")))continue;let o=ih(i);o&&r.push({id:o.name??s.name,dir:i,descriptor:o})}return r.sort((s,i)=>s.id.localeCompare(i.id))}async function Bv(t){return Xr(t)}export{ke as a,bc as b,Se as c,Gt as d,Yr as e,qc as f,Zr as g,Vc as h,Fc as i,zc as j,Lc as k,Uc as l,Y as m,wi as n,ht as o,Js as p,th as q,ih as r,Wv as s,Bv as t};
|