@aipt/cli 0.1.25 → 0.1.28
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 +13 -1
- package/dist/application-runner.js +208 -188
- package/dist/application.js +118 -103
- package/dist/chunk.js +5 -2
- package/dist/optional-runtime.js +24 -24
- package/dist/package-releases/aipt--cli/0.1.26/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.28/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.3/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.8/release.json +33 -0
- package/docs/bootstrap.md +1 -1
- package/docs/vibe-coding-guide.md +1 -1
- package/documentation-manifest.json +3 -3
- package/package.json +23 -23
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
import{a as E,b as Kr,c as On,d as Od,e as T,f as Sd,g as Dd,h as jd,i as $d,j as Cd}from"./chunk.js";var jn=E(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.regexpCode=K.getEsmExportName=K.getProperty=K.safeStringify=K.stringify=K.strConcat=K.addCodeArg=K.str=K._=K.nil=K._Code=K.Name=K.IDENTIFIER=K._CodeOrName=void 0;var Sn=class{};K._CodeOrName=Sn;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var ur=class extends Sn{constructor(t){if(super(),!K.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};K.Name=ur;var nt=class extends Sn{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof ur&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=nt;K.nil=new nt("");function Td(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Ya(r,t[n]),r.push(e[++n]);return new nt(r)}K._=Td;var Ka=new nt("+");function Ld(e,...t){let r=[Dn(e[0])],n=0;for(;n<t.length;)r.push(Ka),Ya(r,t[n]),r.push(Ka,Dn(e[++n]));return dy(r),new nt(r)}K.str=Ld;function Ya(e,t){t instanceof nt?e.push(...t._items):t instanceof ur?e.push(t):e.push(fy(t))}K.addCodeArg=Ya;function dy(e){let t=1;for(;t<e.length-1;){if(e[t]===Ka){let r=py(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function py(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof ur||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof ur))return`"${e}${t.slice(1)}`}function uy(e,t){return t.emptyStr()?e:e.emptyStr()?t:Ld`${e}${t}`}K.strConcat=uy;function fy(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Dn(Array.isArray(e)?e.join(","):e)}function my(e){return new nt(Dn(e))}K.stringify=my;function Dn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=Dn;function gy(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new nt(`.${e}`):Td`[${e}]`}K.getProperty=gy;function hy(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new nt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=hy;function yy(e){return new nt(e.toString())}K.regexpCode=yy});var Za=E(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.ValueScope=Ge.ValueScopeName=Ge.Scope=Ge.varKinds=Ge.UsedValueState=void 0;var Je=jn(),Ha=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ko;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ko||(Ge.UsedValueState=Ko={}));Ge.varKinds={const:new Je.Name("const"),let:new Je.Name("let"),var:new Je.Name("var")};var Yo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Je.Name?t:this.name(t)}name(t){return new Je.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Ge.Scope=Yo;var Ho=class extends Je.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Je._)`.${new Je.Name(r)}[${n}]`}};Ge.ValueScopeName=Ho;var wy=(0,Je._)`\n`,Xa=class extends Yo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?wy:Je.nil}}get(){return this._scope}name(t){return new Ho(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:i}=o,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let d=s.get(a);if(d)return d}else s=this._values[i]=new Map;s.set(a,o);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,o.setValue(r,{property:i,itemIndex:l}),o}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Je._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(t,r,n={},o){let i=Je.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,Ko.Started);let d=r(l);if(d){let p=this.opts.es5?Ge.varKinds.var:Ge.varKinds.const;i=(0,Je._)`${i}${p} ${l} = ${d};${this.opts._n}`}else if(d=o?.(l))i=(0,Je._)`${i}${d}${this.opts._n}`;else throw new Ha(l);c.set(l,Ko.Completed)})}return i}};Ge.ValueScope=Xa});var x=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.or=U.and=U.not=U.CodeGen=U.operators=U.varKinds=U.ValueScopeName=U.ValueScope=U.Scope=U.Name=U.regexpCode=U.stringify=U.getProperty=U.nil=U.strConcat=U.str=U._=void 0;var B=jn(),mt=Za(),Wt=jn();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Wt._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Wt.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Wt.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Wt.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Wt.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Wt.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Wt.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Wt.Name}});var ei=Za();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return ei.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return ei.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return ei.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return ei.varKinds}});U.operators={GT:new B._Code(">"),GTE:new B._Code(">="),LT:new B._Code("<"),LTE:new B._Code("<="),EQ:new B._Code("==="),NEQ:new B._Code("!=="),NOT:new B._Code("!"),OR:new B._Code("||"),AND:new B._Code("&&"),ADD:new B._Code("+")};var $t=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Qa=class extends $t{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?mt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Hr(this.rhs,t,r)),this}get names(){return this.rhs instanceof B._CodeOrName?this.rhs.names:{}}},Xo=class extends $t{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof B.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Hr(this.rhs,t,r),this}get names(){let t=this.lhs instanceof B.Name?{}:{...this.lhs.names};return Qo(t,this.rhs)}},es=class extends Xo{constructor(t,r,n,o){super(t,n,o),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ts=class extends $t{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},rs=class extends $t{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ns=class extends $t{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},os=class extends $t{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=Hr(this.code,t,r),this}get names(){return this.code instanceof B._CodeOrName?this.code.names:{}}},$n=class extends $t{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(t,r)||(Iy(t,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>gr(t,r.names),{})}},Ct=class extends $n{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},is=class extends $n{},Yr=class extends Ct{};Yr.kind="else";var fr=class e extends Ct{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Yr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(xd(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=Hr(this.condition,t,r),this}get names(){let t=super.names;return Qo(t,this.condition),this.else&&gr(t,this.else.names),t}};fr.kind="if";var mr=class extends Ct{};mr.kind="for";var as=class extends mr{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=Hr(this.iteration,t,r),this}get names(){return gr(super.names,this.iteration.names)}},ss=class extends mr{constructor(t,r,n,o){super(),this.varKind=t,this.name=r,this.from=n,this.to=o}render(t){let r=t.es5?mt.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(t)}get names(){let t=Qo(super.names,this.from);return Qo(t,this.to)}},Zo=class extends mr{constructor(t,r,n,o){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=Hr(this.iterable,t,r),this}get names(){return gr(super.names,this.iterable.names)}},Cn=class extends Ct{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Cn.kind="func";var Tn=class extends $n{render(t){return"return "+super.render(t)}};Tn.kind="return";var cs=class extends Ct{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,o;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(o=this.finally)===null||o===void 0||o.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&gr(t,this.catch.names),this.finally&&gr(t,this.finally.names),t}},Ln=class extends Ct{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Ln.kind="catch";var xn=class extends Ct{render(t){return"finally"+super.render(t)}};xn.kind="finally";var ls=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=t,this._scope=new mt.Scope({parent:t}),this._nodes=[new is]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new Qa(t,i,n)),i}const(t,r,n){return this._def(mt.varKinds.const,t,r,n)}let(t,r,n){return this._def(mt.varKinds.let,t,r,n)}var(t,r,n){return this._def(mt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Xo(t,r,n))}add(t,r){return this._leafNode(new es(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new os(t)),this}object(...t){let r=["{"];for(let[n,o]of t)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,B.addCodeArg)(r,o));return r.push("}"),new B._Code(r)}if(t,r,n){if(this._blockNode(new fr(t)),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(t){return this._elseNode(new fr(t))}else(){return this._elseNode(new Yr)}endIf(){return this._endBlockNode(fr,Yr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new as(t),r)}forRange(t,r,n,o,i=this.opts.es5?mt.varKinds.var:mt.varKinds.let){let a=this._scope.toName(t);return this._for(new ss(i,a,r,n),()=>o(a))}forOf(t,r,n,o=mt.varKinds.const){let i=this._scope.toName(t);if(this.opts.es5){let a=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${a}.length`,s=>{this.var(i,(0,B._)`${a}[${s}]`),n(i)})}return this._for(new Zo("of",o,i,r),()=>n(i))}forIn(t,r,n,o=this.opts.es5?mt.varKinds.var:mt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,B._)`Object.keys(${r})`,n);let i=this._scope.toName(t);return this._for(new Zo("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(mr)}label(t){return this._leafNode(new ts(t))}break(t){return this._leafNode(new rs(t))}return(t){let r=new Tn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Tn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new cs;if(this._blockNode(o),this.code(t),r){let i=this.name("e");this._currNode=o.catch=new Ln(i),r(i)}return n&&(this._currNode=o.finally=new xn,this.code(n)),this._endBlockNode(Ln,xn)}throw(t){return this._leafNode(new ns(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){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||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=B.nil,n,o){return this._blockNode(new Cn(t,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Cn)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof fr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};U.CodeGen=ls;function gr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Qo(e,t){return t instanceof B._CodeOrName?gr(e,t.names):e}function Hr(e,t,r){if(e instanceof B.Name)return n(e);if(!o(e))return e;return new B._Code(e._items.reduce((i,a)=>(a instanceof B.Name&&(a=n(a)),a instanceof B._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||t[i.str]!==1?i:(delete t[i.str],a)}function o(i){return i instanceof B._Code&&i._items.some(a=>a instanceof B.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function Iy(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function xd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${ds(e)}`}U.not=xd;var vy=Vd(U.operators.AND);function by(...e){return e.reduce(vy)}U.and=by;var ky=Vd(U.operators.OR);function Ry(...e){return e.reduce(ky)}U.or=Ry;function Vd(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${ds(t)} ${e} ${ds(r)}`}function ds(e){return e instanceof B.Name?e:(0,B._)`(${e})`}});var q=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.checkStrictMode=F.getErrorPath=F.Type=F.useFunc=F.setEvaluated=F.evaluatedPropsToName=F.mergeEvaluated=F.eachItem=F.unescapeJsonPointer=F.escapeJsonPointer=F.escapeFragment=F.unescapeFragment=F.schemaRefOrVal=F.schemaHasRulesButRef=F.schemaHasRules=F.checkUnknownRules=F.alwaysValidSchema=F.toHash=void 0;var ne=x(),_y=jn();function Ay(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=Ay;function Ey(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Fd(e,t),!qd(t,e.self.RULES.all))}F.alwaysValidSchema=Ey;function Fd(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let o=n.RULES.keywords;for(let i in t)o[i]||Jd(e,`unknown keyword: "${i}"`)}F.checkUnknownRules=Fd;function qd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=qd;function Py(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}F.schemaHasRulesButRef=Py;function Ny({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ne._)`${r}`}return(0,ne._)`${e}${t}${(0,ne.getProperty)(n)}`}F.schemaRefOrVal=Ny;function Oy(e){return Bd(decodeURIComponent(e))}F.unescapeFragment=Oy;function Sy(e){return encodeURIComponent(us(e))}F.escapeFragment=Sy;function us(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=us;function Bd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Bd;function Dy(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=Dy;function Md({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,i,a,s)=>{let c=a===void 0?i:a instanceof ne.Name?(i instanceof ne.Name?e(o,i,a):t(o,i,a),a):i instanceof ne.Name?(t(o,a,i),i):r(i,a);return s===ne.Name&&!(c instanceof ne.Name)?n(o,c):c}}F.mergeEvaluated={props:Md({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ne._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ne._)`${r} || {}`).code((0,ne._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ne._)`${r} || {}`),fs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:zd}),items:Md({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ne._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ne._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function zd(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ne._)`{}`);return t!==void 0&&fs(e,r,t),r}F.evaluatedPropsToName=zd;function fs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ne._)`${t}${(0,ne.getProperty)(n)}`,!0))}F.setEvaluated=fs;var Ud={};function jy(e,t){return e.scopeValue("func",{ref:t,code:Ud[t.code]||(Ud[t.code]=new _y._Code(t.code))})}F.useFunc=jy;var ps;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ps||(F.Type=ps={}));function $y(e,t,r){if(e instanceof ne.Name){let n=t===ps.Num;return r?n?(0,ne._)`"[" + ${e} + "]"`:(0,ne._)`"['" + ${e} + "']"`:n?(0,ne._)`"/" + ${e}`:(0,ne._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ne.getProperty)(e).toString():"/"+us(e)}F.getErrorPath=$y;function Jd(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}F.checkStrictMode=Jd});var ot=E(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});var $e=x(),Cy={data:new $e.Name("data"),valCxt:new $e.Name("valCxt"),instancePath:new $e.Name("instancePath"),parentData:new $e.Name("parentData"),parentDataProperty:new $e.Name("parentDataProperty"),rootData:new $e.Name("rootData"),dynamicAnchors:new $e.Name("dynamicAnchors"),vErrors:new $e.Name("vErrors"),errors:new $e.Name("errors"),this:new $e.Name("this"),self:new $e.Name("self"),scope:new $e.Name("scope"),json:new $e.Name("json"),jsonPos:new $e.Name("jsonPos"),jsonLen:new $e.Name("jsonLen"),jsonPart:new $e.Name("jsonPart")};ms.default=Cy});var Vn=E(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.extendErrors=Ce.resetErrorsCount=Ce.reportExtraError=Ce.reportError=Ce.keyword$DataError=Ce.keywordError=void 0;var G=x(),ti=q(),Ue=ot();Ce.keywordError={message:({keyword:e})=>(0,G.str)`must pass "${e}" keyword validation`};Ce.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,G.str)`"${e}" keyword must be ${t} ($data)`:(0,G.str)`"${e}" keyword is invalid ($data)`};function Ty(e,t=Ce.keywordError,r,n){let{it:o}=e,{gen:i,compositeRule:a,allErrors:s}=o,c=Kd(e,t,r);n??(a||s)?Gd(i,c):Wd(o,(0,G._)`[${c}]`)}Ce.reportError=Ty;function Ly(e,t=Ce.keywordError,r){let{it:n}=e,{gen:o,compositeRule:i,allErrors:a}=n,s=Kd(e,t,r);Gd(o,s),i||a||Wd(n,Ue.default.vErrors)}Ce.reportExtraError=Ly;function xy(e,t){e.assign(Ue.default.errors,t),e.if((0,G._)`${Ue.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,G._)`${Ue.default.vErrors}.length`,t),()=>e.assign(Ue.default.vErrors,null)))}Ce.resetErrorsCount=xy;function Vy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",o,Ue.default.errors,s=>{e.const(a,(0,G._)`${Ue.default.vErrors}[${s}]`),e.if((0,G._)`${a}.instancePath === undefined`,()=>e.assign((0,G._)`${a}.instancePath`,(0,G.strConcat)(Ue.default.instancePath,i.errorPath))),e.assign((0,G._)`${a}.schemaPath`,(0,G.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,G._)`${a}.schema`,r),e.assign((0,G._)`${a}.data`,n))})}Ce.extendErrors=Vy;function Gd(e,t){let r=e.const("err",t);e.if((0,G._)`${Ue.default.vErrors} === null`,()=>e.assign(Ue.default.vErrors,(0,G._)`[${r}]`),(0,G._)`${Ue.default.vErrors}.push(${r})`),e.code((0,G._)`${Ue.default.errors}++`)}function Wd(e,t){let{gen:r,validateName:n,schemaEnv:o}=e;o.$async?r.throw((0,G._)`new ${e.ValidationError}(${t})`):(r.assign((0,G._)`${n}.errors`,t),r.return(!1))}var hr={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Kd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,G._)`{}`:My(e,t,r)}function My(e,t,r={}){let{gen:n,it:o}=e,i=[Uy(o,r),Fy(e,r)];return qy(e,t,i),n.object(...i)}function Uy({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,ti.getErrorPath)(t,ti.Type.Str)}`:e;return[Ue.default.instancePath,(0,G.strConcat)(Ue.default.instancePath,r)]}function Fy({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,G.str)`${t}/${e}`;return r&&(o=(0,G.str)`${o}${(0,ti.getErrorPath)(r,ti.Type.Str)}`),[hr.schemaPath,o]}function qy(e,{params:t,message:r},n){let{keyword:o,data:i,schemaValue:a,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([hr.keyword,o],[hr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([hr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([hr.schema,a],[hr.parentSchema,(0,G._)`${d}${p}`],[Ue.default.data,i]),l&&n.push([hr.propertyName,l])}});var Hd=E(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.boolOrEmptySchema=Xr.topBoolOrEmptySchema=void 0;var By=Vn(),zy=x(),Jy=ot(),Gy={message:"boolean schema is false"};function Wy(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Yd(e,!1):typeof r=="object"&&r.$async===!0?t.return(Jy.default.data):(t.assign((0,zy._)`${n}.errors`,null),t.return(!0))}Xr.topBoolOrEmptySchema=Wy;function Ky(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Yd(e)):r.var(t,!0)}Xr.boolOrEmptySchema=Ky;function Yd(e,t){let{gen:r,data:n}=e,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,By.reportError)(o,Gy,void 0,t)}});var gs=E(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.getRules=Zr.isJSONType=void 0;var Yy=["string","number","integer","boolean","null","object","array"],Hy=new Set(Yy);function Xy(e){return typeof e=="string"&&Hy.has(e)}Zr.isJSONType=Xy;function Zy(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Zr.getRules=Zy});var hs=E(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.shouldUseRule=Kt.shouldUseGroup=Kt.schemaHasRulesForType=void 0;function Qy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Xd(e,n)}Kt.schemaHasRulesForType=Qy;function Xd(e,t){return t.rules.some(r=>Zd(e,r))}Kt.shouldUseGroup=Xd;function Zd(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Kt.shouldUseRule=Zd});var Mn=E(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 ew=gs(),tw=hs(),rw=Vn(),V=x(),Qd=q(),Qr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Qr||(Te.DataType=Qr={}));function nw(e){let t=ep(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}Te.getSchemaTypes=nw;function ep(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(ew.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Te.getJSONTypes=ep;function ow(e,t){let{gen:r,data:n,opts:o}=e,i=iw(t,o.coerceTypes),a=t.length>0&&!(i.length===0&&t.length===1&&(0,tw.schemaHasRulesForType)(e,t[0]));if(a){let s=ws(t,n,o.strictNumbers,Qr.Wrong);r.if(s,()=>{i.length?aw(e,t,i):Is(e)})}return a}Te.coerceAndCheckDataType=ow;var tp=new Set(["string","number","integer","boolean","null"]);function iw(e,t){return t?e.filter(r=>tp.has(r)||t==="array"&&r==="array"):[]}function aw(e,t,r){let{gen:n,data:o,opts:i}=e,a=n.let("dataType",(0,V._)`typeof ${o}`),s=n.let("coerced",(0,V._)`undefined`);i.coerceTypes==="array"&&n.if((0,V._)`${a} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,V._)`${o}[0]`).assign(a,(0,V._)`typeof ${o}`).if(ws(t,o,i.strictNumbers),()=>n.assign(s,o))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(tp.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),Is(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(o,s),sw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,V._)`"" + ${o}`).elseIf((0,V._)`${o} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${a} == "boolean" || ${o} === null
|
|
3
|
-
|| (${
|
|
4
|
-
|| (${
|
|
5
|
-
|| ${a} === "boolean" || ${o} === null`).assign(s,(0,V._)`[${o}]`)}}}function sw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function ys(e,t,r,n=Qr.Correct){let o=n===Qr.Correct?V.operators.EQ:V.operators.NEQ,i;switch(e){case"null":return(0,V._)`${t} ${o} null`;case"array":i=(0,V._)`Array.isArray(${t})`;break;case"object":i=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=a();break;default:return(0,V._)`typeof ${t} ${o} ${e}`}return n===Qr.Correct?i:(0,V.not)(i);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Te.checkDataType=ys;function ws(e,t,r,n){if(e.length===1)return ys(e[0],t,r,n);let o,i=(0,Qd.toHash)(e);if(i.array&&i.object){let a=(0,V._)`typeof ${t} != "object"`;o=i.null?a:(0,V._)`!${t} || ${a}`,delete i.null,delete i.array,delete i.object}else o=V.nil;i.number&&delete i.integer;for(let a in i)o=(0,V.and)(o,ys(a,t,r,n));return o}Te.checkDataTypes=ws;var cw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Is(e){let t=lw(e);(0,rw.reportError)(t,cw)}Te.reportTypeError=Is;function lw(e){let{gen:t,data:r,schema:n}=e,o=(0,Qd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}});var np=E(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.assignDefaults=void 0;var en=x(),dw=q();function pw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let o in r)rp(e,o,r[o].default);else t==="array"&&Array.isArray(n)&&n.forEach((o,i)=>rp(e,i,o.default))}ri.assignDefaults=pw;function rp(e,t,r){let{gen:n,compositeRule:o,data:i,opts:a}=e;if(r===void 0)return;let s=(0,en._)`${i}${(0,en.getProperty)(t)}`;if(o){(0,dw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,en._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,en._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,en._)`${s} = ${(0,en.stringify)(r)}`)}});var it=E(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.validateUnion=te.validateArray=te.usePattern=te.callValidateCode=te.schemaProperties=te.allSchemaProperties=te.noPropertyInData=te.propertyInData=te.isOwnProperty=te.hasPropFunc=te.reportMissingProp=te.checkMissingProp=te.checkReportMissingProp=void 0;var de=x(),vs=q(),Yt=ot(),uw=q();function fw(e,t){let{gen:r,data:n,it:o}=e;r.if(ks(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,de._)`${t}`},!0),e.error()})}te.checkReportMissingProp=fw;function mw({gen:e,data:t,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(ks(e,t,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}te.checkMissingProp=mw;function gw(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=gw;function op(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=op;function bs(e,t,r){return(0,de._)`${op(e)}.call(${t}, ${r})`}te.isOwnProperty=bs;function hw(e,t,r,n){let o=(0,de._)`${t}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${bs(e,t,r)}`:o}te.propertyInData=hw;function ks(e,t,r,n){let o=(0,de._)`${t}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(bs(e,t,r))):o}te.noPropertyInData=ks;function ip(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=ip;function yw(e,t){return ip(t).filter(r=>!(0,vs.alwaysValidSchema)(e,t[r]))}te.schemaProperties=yw;function ww({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:a},s,c,l){let d=l?(0,de._)`${e}, ${t}, ${n}${o}`:t,p=[[Yt.default.instancePath,(0,de.strConcat)(Yt.default.instancePath,i)],[Yt.default.parentData,a.parentData],[Yt.default.parentDataProperty,a.parentDataProperty],[Yt.default.rootData,Yt.default.rootData]];a.opts.dynamicRef&&p.push([Yt.default.dynamicAnchors,Yt.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...p)}`;return c!==de.nil?(0,de._)`${s}.call(${c}, ${f})`:(0,de._)`${s}(${f})`}te.callValidateCode=ww;var Iw=(0,de._)`new RegExp`;function vw({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,i=o(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,de._)`${o.code==="new RegExp"?Iw:(0,uw.useFunc)(e,o)}(${r}, ${n})`})}te.usePattern=vw;function bw(e){let{gen:t,data:r,keyword:n,it:o}=e,i=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(i,!0),a(()=>t.break()),i;function a(s){let c=t.const("len",(0,de._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:vs.Type.Num},i),t.if((0,de.not)(i),s)})}}te.validateArray=bw;function kw(e){let{gen:t,schema:r,keyword:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,vs.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let d=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(a,(0,de._)`${a} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,de.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}te.validateUnion=kw});var cp=E(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.validateKeywordUsage=Et.validSchemaType=Et.funcKeywordCode=Et.macroKeywordCode=void 0;var Fe=x(),yr=ot(),Rw=it(),_w=Vn();function Aw(e,t){let{gen:r,keyword:n,schema:o,parentSchema:i,it:a}=e,s=t.macro.call(a.self,o,i,a),c=sp(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:Fe.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Et.macroKeywordCode=Aw;function Ew(e,t){var r;let{gen:n,keyword:o,schema:i,parentSchema:a,$data:s,it:c}=e;Nw(c,t);let l=!s&&t.compile?t.compile.call(c.self,i,a,c):t.validate,d=sp(n,o,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&ap(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&ap(e),h(()=>Pw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,Fe._)`await `),_=>n.assign(p,!1).if((0,Fe._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,Fe._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,Fe._)`${d}.errors`;return n.assign(w,null),g(Fe.nil),w}function g(w=t.async?(0,Fe._)`await `:Fe.nil){let _=c.opts.passContext?yr.default.this:yr.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Fe._)`${w}${(0,Rw.callValidateCode)(e,d,_,b)}`,t.modifying)}function h(w){var _;n.if((0,Fe.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Et.funcKeywordCode=Ew;function ap(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Fe._)`${n.parentData}[${n.parentDataProperty}]`))}function Pw(e,t){let{gen:r}=e;r.if((0,Fe._)`Array.isArray(${t})`,()=>{r.assign(yr.default.vErrors,(0,Fe._)`${yr.default.vErrors} === null ? ${t} : ${yr.default.vErrors}.concat(${t})`).assign(yr.default.errors,(0,Fe._)`${yr.default.vErrors}.length`),(0,_w.extendErrors)(e)},()=>e.error())}function Nw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function sp(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Fe.stringify)(r)})}function Ow(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Et.validSchemaType=Ow;function Sw({schema:e,opts:t,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let a=o.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Et.validateKeywordUsage=Sw});var dp=E(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.extendSubschemaMode=Ht.extendSubschemaData=Ht.getSubschema=void 0;var Pt=x(),lp=q();function Dw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:a}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Pt._)`${e.schemaPath}${(0,Pt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Pt._)`${e.schemaPath}${(0,Pt.getProperty)(t)}${(0,Pt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,lp.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ht.getSubschema=Dw;function jw(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:a}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Pt._)`${t.data}${(0,Pt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Pt.str)`${l}${(0,lp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Pt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(o!==void 0){let l=o instanceof Pt.Name?o:s.let("data",o,!0);c(l),a!==void 0&&(e.propertyName=a)}i&&(e.dataTypes=i);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}Ht.extendSubschemaData=jw;function $w(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=r}Ht.extendSubschemaMode=$w});var Rs=E((hN,pp)=>{"use strict";pp.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var a=i[o];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var fp=E((yN,up)=>{"use strict";var Xt=up.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};ni(t,n,o,e,"",e)};Xt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Xt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Xt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Xt.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 ni(e,t,r,n,o,i,a,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,i,a,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Xt.arrayKeywords)for(var f=0;f<p.length;f++)ni(e,t,r,p[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Xt.propsKeywords){if(p&&typeof p=="object")for(var u in p)ni(e,t,r,p[u],o+"/"+d+"/"+Cw(u),i,o,d,n,u)}else(d in Xt.keywords||e.allKeys&&!(d in Xt.skipKeywords))&&ni(e,t,r,p,o+"/"+d,i,o,d,n)}r(n,o,i,a,s,c,l)}}function Cw(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Un=E(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.getSchemaRefs=We.resolveUrl=We.normalizeId=We._getFullPath=We.getFullPath=We.inlineRef=void 0;var Tw=q(),Lw=Rs(),xw=fp(),Vw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Mw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!_s(e):t?mp(e)<=t:!1}We.inlineRef=Mw;var Uw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function _s(e){for(let t in e){if(Uw.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(_s)||typeof r=="object"&&_s(r))return!0}return!1}function mp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!Vw.has(r)&&(typeof e[r]=="object"&&(0,Tw.eachItem)(e[r],n=>t+=mp(n)),t===1/0))return 1/0}return t}function gp(e,t="",r){r!==!1&&(t=tn(t));let n=e.parse(t);return hp(e,n)}We.getFullPath=gp;function hp(e,t){return e.serialize(t).split("#")[0]+"#"}We._getFullPath=hp;var Fw=/#\/?$/;function tn(e){return e?e.replace(Fw,""):""}We.normalizeId=tn;function qw(e,t,r){return r=tn(r),e.resolve(t,r)}We.resolveUrl=qw;var Bw=/^[a-z_][-a-z0-9._]*$/i;function zw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=tn(e[r]||t),i={"":o},a=gp(n,o,!1),s={},c=new Set;return xw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=a+f,h=i[m];typeof p[r]=="string"&&(h=w.call(this,p[r])),_.call(this,p.$anchor),_.call(this,p.$dynamicAnchor),i[f]=h;function w(b){let A=this.opts.uriResolver.resolve;if(b=tn(h?A(h,b):b),c.has(b))throw d(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,b):b!==tn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function _(b){if(typeof b=="string"){if(!Bw.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Lw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}We.getSchemaRefs=zw});var Bn=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.getData=Zt.KeywordCxt=Zt.validateFunctionCode=void 0;var bp=Hd(),yp=Mn(),Es=hs(),oi=Mn(),Jw=np(),qn=cp(),As=dp(),O=x(),L=ot(),Gw=Un(),Tt=q(),Fn=Vn();function Ww(e){if(_p(e)&&(Ap(e),Rp(e))){Hw(e);return}kp(e,()=>(0,bp.topBoolOrEmptySchema)(e))}Zt.validateFunctionCode=Ww;function kp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},i){o.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${wp(r,o)}`),Yw(e,o),e.code(i)}):e.func(t,(0,O._)`${L.default.data}, ${Kw(o)}`,n.$async,()=>e.code(wp(r,o)).code(i))}function Kw(e){return(0,O._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,O._)`, ${L.default.dynamicAnchors}={}`:O.nil}}={}`}function Yw(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,O._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,O._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,O._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,O._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,O._)`""`),e.var(L.default.parentData,(0,O._)`undefined`),e.var(L.default.parentDataProperty,(0,O._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`{}`)})}function Hw(e){let{schema:t,opts:r,gen:n}=e;kp(e,()=>{r.$comment&&t.$comment&&Pp(e),tI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&Xw(e),Ep(e),oI(e)})}function Xw(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,O._)`${r}.evaluated`),t.if((0,O._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,O._)`${e.evaluated}.props`,(0,O._)`undefined`)),t.if((0,O._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,O._)`${e.evaluated}.items`,(0,O._)`undefined`))}function wp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function Zw(e,t){if(_p(e)&&(Ap(e),Rp(e))){Qw(e,t);return}(0,bp.boolOrEmptySchema)(e,t)}function Rp({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function _p(e){return typeof e.schema!="boolean"}function Qw(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&Pp(e),rI(e),nI(e);let i=n.const("_errs",L.default.errors);Ep(e,i),n.var(t,(0,O._)`${i} === ${L.default.errors}`)}function Ap(e){(0,Tt.checkUnknownRules)(e),eI(e)}function Ep(e,t){if(e.opts.jtd)return Ip(e,[],!1,t);let r=(0,yp.getSchemaTypes)(e.schema),n=(0,yp.coerceAndCheckDataType)(e,r);Ip(e,r,!n,t)}function eI(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Tt.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function tI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Tt.checkStrictMode)(e,"default is ignored in the schema root")}function rI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Gw.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function nI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Pp({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let a=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function oI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${o}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),i.unevaluated&&iI(e),t.return((0,O._)`${L.default.errors} === 0`))}function iI({gen:e,evaluated:t,props:r,items:n}){r instanceof O.Name&&e.assign((0,O._)`${t}.props`,r),n instanceof O.Name&&e.assign((0,O._)`${t}.items`,n)}function Ip(e,t,r,n){let{gen:o,schema:i,data:a,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Tt.schemaHasRulesButRef)(i,d))){o.block(()=>Op(e,"$ref",d.all.$ref.definition));return}c.jtd||aI(e,t),o.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Es.shouldUseGroup)(i,f)&&(f.type?(o.if((0,oi.checkDataType)(f.type,a,c.strictNumbers)),vp(e,f),t.length===1&&t[0]===f.type&&r&&(o.else(),(0,oi.reportTypeError)(e)),o.endIf()):vp(e,f),s||o.if((0,O._)`${L.default.errors} === ${n||0}`))}}function vp(e,t){let{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,Jw.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,Es.shouldUseRule)(n,i)&&Op(e,i.keyword,i.definition,t.type)})}function aI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(sI(e,t),e.opts.allowUnionTypes||cI(e,t),lI(e,e.dataTypes))}function sI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Np(e.dataTypes,r)||Ps(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),pI(e,t)}}function cI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ps(e,"use allowUnionTypes to allow union type keyword")}function lI(e,t){let r=e.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Es.shouldUseRule)(e.schema,o)){let{type:i}=o.definition;i.length&&!i.some(a=>dI(t,a))&&Ps(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function dI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Np(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function pI(e,t){let r=[];for(let n of e.dataTypes)Np(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ps(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Tt.checkStrictMode)(e,t,e.opts.strictTypes)}var ii=class{constructor(t,r,n){if((0,qn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Tt.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Sp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,qn.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=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Fn.reportExtraError:Fn.reportError)(this,this.def.error,r)}$dataError(){(0,Fn.reportError)(this,this.def.$dataError||Fn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Fn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=O.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:a}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,O.or)(a(),s());function a(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,oi.checkDataTypes)(c,r,i.opts.strictNumbers,oi.DataType.Wrong)}`}return O.nil}function s(){if(o.validateSchema){let c=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,As.getSubschema)(this.it,t);(0,As.extendSubschemaData)(n,this.it,t),(0,As.extendSubschemaMode)(n,t);let o={...this.it,...n,items:void 0,props:void 0};return Zw(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Tt.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Tt.mergeEvaluated.items(o,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};Zt.KeywordCxt=ii;function Op(e,t,r,n){let o=new ii(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,qn.funcKeywordCode)(o,r):"macro"in r?(0,qn.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,qn.funcKeywordCode)(o,r)}var uI=/^\/(?:[^~]|~0|~1)*$/,fI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Sp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,i;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!uI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=L.default.rootData}else{let l=fI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(o=l[2],o==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(i=r[t-d],!o)return i}let a=i,s=o.split("/");for(let l of s)l&&(i=(0,O._)`${i}${(0,O.getProperty)((0,Tt.unescapeJsonPointer)(l))}`,a=(0,O._)`${a} && ${i}`);return a;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Zt.getData=Sp});var ai=E(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});var Ns=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Os.default=Ns});var zn=E(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var Ss=Un(),Ds=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ss.resolveUrl)(t,r,n),this.missingSchema=(0,Ss.normalizeId)((0,Ss.getFullPath)(t,this.missingRef))}};js.default=Ds});var Jn=E(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.resolveSchema=at.getCompilingSchema=at.resolveRef=at.compileSchema=at.SchemaEnv=void 0;var gt=x(),mI=ai(),wr=ot(),ht=Un(),Dp=q(),gI=Bn(),rn=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,ht.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};at.SchemaEnv=rn;function Cs(e){let t=jp.call(this,e);if(t)return t;let r=(0,ht.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,a=new gt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),s;e.$async&&(s=a.scopeValue("Error",{ref:mI.default,code:(0,gt._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:wr.default.data,parentData:wr.default.parentData,parentDataProperty:wr.default.parentDataProperty,dataNames:[wr.default.data],dataPathArr:[gt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,gt.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:gt.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,gt._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,gI.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();d=`${a.scopeRefs(wr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${wr.default.self}`,`${wr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof gt.Name?void 0:m,items:g instanceof gt.Name?void 0:g,dynamicProps:m instanceof gt.Name,dynamicItems:g instanceof gt.Name},u.source&&(u.source.evaluated=(0,gt.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}at.compileSchema=Cs;function hI(e,t,r){var n;r=(0,ht.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let i=II.call(this,e,r);if(i===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(i=new rn({schema:a,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=yI.call(this,i)}at.resolveRef=hI;function yI(e){return(0,ht.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Cs.call(this,e)}function jp(e){for(let t of this._compilations)if(wI(t,e))return t}at.getCompilingSchema=jp;function wI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function II(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||si.call(this,e,t)}function si(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ht._getFullPath)(this.opts.uriResolver,r),o=(0,ht.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return $s.call(this,r,e);let i=(0,ht.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let s=si.call(this,e,a);return typeof s?.schema!="object"?void 0:$s.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||Cs.call(this,a),i===(0,ht.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,l=s[c];return l&&(o=(0,ht.resolveUrl)(this.opts.uriResolver,o,l)),new rn({schema:s,schemaId:c,root:e,baseId:o})}return $s.call(this,r,a)}}at.resolveSchema=si;var vI=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function $s(e,{baseId:t,schema:r,root:n}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Dp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!vI.has(s)&&l&&(t=(0,ht.resolveUrl)(this.opts.uriResolver,t,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,Dp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ht.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=si.call(this,n,s)}let{schemaId:a}=this.opts;if(i=i||new rn({schema:r,schemaId:a,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var $p=E((RN,bI)=>{bI.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 xs=E((_N,Mp)=>{"use strict";var kI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Tp=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),Ts=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Lp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),RI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Ls(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var _I=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Cp(e){return e.length=0,!0}function AI(e,t,r){if(e.length){let n=Ls(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function EI(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,a=!1,s=AI;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(i===!0&&(a=!0),!s(o,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(i=!0),n.push(":");continue}else if(l==="%"){if(!s(o,n,r))break;s=Cp}else{o.push(l);continue}}return o.length&&(s===Cp?r.zone=o.join(""):a?n.push(o.join("")):n.push(Ls(o))),r.address=n.join(""),r}function xp(e){if(PI(e,":")<2)return{host:e,isIPV6:!1};let t=EI(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function PI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function NI(e){let t=e,r=[],n=-1,o=0;for(;o=t.length;){if(o===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(o===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){r.push("/");break}}else if(o===3&&t==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var OI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},SI=/[@/?#:]/g,DI=/[@/?#]/g;function Vp(e,t){let r=t?DI:SI;return r.lastIndex=0,e.replace(r,n=>OI[n])}function jI(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let o=e.slice(n+1,n+3);if(Ts(o)){let i=o.toUpperCase(),a=String.fromCharCode(parseInt(i,16));t&&Lp(a)?r+=a:r+="%"+i,n+=2;continue}}r+=e[n]}return r}function $I(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(Ts(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&Lp(i)?t+=i:t+="%"+o,r+=2;continue}}RI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function CI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(Ts(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function TI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!Tp(r)){let n=xp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Vp(r,!1)}t.push(r)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}Mp.exports={nonSimpleDomain:_I,recomposeAuthority:TI,reescapeHostDelimiters:Vp,normalizePercentEncoding:jI,normalizePathEncoding:$I,escapePreservingEscapes:CI,removeDotSegments:NI,isIPv4:Tp,isUUID:kI,normalizeIPv6:xp,stringArrayToHexStripped:Ls}});var zp=E((AN,Bp)=>{"use strict";var{isUUID:LI}=xs(),xI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,VI=["http","https","ws","wss","urn","urn:uuid"];function MI(e){return VI.indexOf(e)!==-1}function Vs(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function Up(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Fp(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function UI(e){return e.secure=Vs(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function FI(e){if((e.port===(Vs(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function qI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(xI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let o=`${n}:${t.nid||e.nid}`,i=Ms(o);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function BI(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,i=Ms(o);i&&(e=i.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function zI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!LI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function JI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var qp={scheme:"http",domainHost:!0,parse:Up,serialize:Fp},GI={scheme:"https",domainHost:qp.domainHost,parse:Up,serialize:Fp},ci={scheme:"ws",domainHost:!0,parse:UI,serialize:FI},WI={scheme:"wss",domainHost:ci.domainHost,parse:ci.parse,serialize:ci.serialize},KI={scheme:"urn",parse:qI,serialize:BI,skipNormalize:!0},YI={scheme:"urn:uuid",parse:zI,serialize:JI,skipNormalize:!0},li={http:qp,https:GI,ws:ci,wss:WI,urn:KI,"urn:uuid":YI};Object.setPrototypeOf(li,null);function Ms(e){return e&&(li[e]||li[e.toLowerCase()])||void 0}Bp.exports={wsIsSecure:Vs,SCHEMES:li,isValidSchemeName:MI,getSchemeHandler:Ms}});var Yp=E((EN,ui)=>{"use strict";var{normalizeIPv6:HI,removeDotSegments:Gn,recomposeAuthority:XI,normalizePercentEncoding:ZI,normalizePathEncoding:QI,escapePreservingEscapes:ev,reescapeHostDelimiters:tv,isIPv4:rv,nonSimpleDomain:nv}=xs(),{SCHEMES:ov,getSchemeHandler:Gp}=zp();function iv(e,t){return typeof e=="string"?e=uv(e,t):typeof e=="object"&&(e=pi(Ir(e,t),t)),e}function av(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=di(e,n),{parsed:a,malformedAuthorityOrPort:s}=di(t,n);if(i||s)throw new Error(o.error||a.error||"URI is malformed.");let c=Wp(o,a,n,!0);return n.skipEscape=!0,Ir(c,n)}function Wp(e,t,r,n){let o={};return n||(e=pi(Ir(e,r),r),t=pi(Ir(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Gn(t.path||""),o.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Gn(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=Gn(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?o.path="/"+t.path:e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path,o.path=Gn(o.path)),o.query=t.query):(o.path=e.path,t.query!==void 0?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function sv(e,t,r){let n=Jp(e,r),o=Jp(t,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function Ir(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),o=[],i=Gp(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=ZI(r.path):(r.path=ev(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let a=XI(r);if(a!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(a),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=Gn(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var cv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,lv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,dv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function pv(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function di(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,i=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let a=e.match(lv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let s=e.match(dv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=e.match(cv);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 l=pv(n,c);if(l!==void 0&&(n.error=n.error||l,o=!0),n.host)if(rv(n.host)===!1){let f=HI(n.host);n.host=f.host.toLowerCase(),i=f.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 d=Gp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&nv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!d||d&&!d.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=tv(unescape(n.host),i))),n.path&&(n.path=QI(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function pi(e,t){return di(e,t).parsed}function uv(e,t){return Kp(e,t).normalized}function Kp(e,t){let{parsed:r,malformedAuthorityOrPort:n}=di(e,t);return{normalized:n?e:Ir(r,t),malformedAuthorityOrPort:n}}function Jp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Kp(e,t);return n?void 0:r}if(typeof e=="object")return Ir(e,t)}var Us={SCHEMES:ov,normalize:iv,resolve:av,resolveComponent:Wp,equal:sv,serialize:Ir,parse:pi};ui.exports=Us;ui.exports.default=Us;ui.exports.fastUri=Us});var Xp=E(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var Hp=Yp();Hp.code='require("ajv/dist/runtime/uri").default';Fs.default=Hp});var iu=E(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.CodeGen=Ae.Name=Ae.nil=Ae.stringify=Ae.str=Ae._=Ae.KeywordCxt=void 0;var fv=Bn();Object.defineProperty(Ae,"KeywordCxt",{enumerable:!0,get:function(){return fv.KeywordCxt}});var nn=x();Object.defineProperty(Ae,"_",{enumerable:!0,get:function(){return nn._}});Object.defineProperty(Ae,"str",{enumerable:!0,get:function(){return nn.str}});Object.defineProperty(Ae,"stringify",{enumerable:!0,get:function(){return nn.stringify}});Object.defineProperty(Ae,"nil",{enumerable:!0,get:function(){return nn.nil}});Object.defineProperty(Ae,"Name",{enumerable:!0,get:function(){return nn.Name}});Object.defineProperty(Ae,"CodeGen",{enumerable:!0,get:function(){return nn.CodeGen}});var mv=ai(),ru=zn(),gv=gs(),Wn=Jn(),hv=x(),Kn=Un(),fi=Mn(),Bs=q(),Zp=$p(),yv=Xp(),nu=(e,t)=>new RegExp(e,t);nu.code="new RegExp";var wv=["removeAdditional","useDefaults","coerceTypes"],Iv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),vv={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."},bv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Qp=200;function kv(e){var t,r,n,o,i,a,s,c,l,d,p,f,u,m,g,h,w,_,b,A,I,R,S,C,le;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,X=P===!0||P===void 0?1:P||0,ie=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:nu,rt=(o=e.uriResolver)!==null&&o!==void 0?o:yv.default;return{strictSchema:(a=(i=e.strictSchema)!==null&&i!==void 0?i:$)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:X,regExp:ie}:{optimize:X,regExp:ie},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Qp,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Qp,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(le=e.int32range)!==null&&le!==void 0?le:!0,uriResolver:rt}}var Yn=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...kv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new hv.ValueScope({scope:{},prefixes:Iv,es5:r,lines:n}),this.logger=Nv(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,gv.getRules)(),eu.call(this,vv,t,"NOT SUPPORTED"),eu.call(this,bv,t,"DEPRECATED","warn"),this._metaOpts=Ev.call(this),t.formats&&_v.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Av.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Rv.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,o=Zp;n==="id"&&(o={...Zp},o.id=o.$id,delete o.$id),r&&t&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,t,r);async function o(d,p){await i.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||a.call(this,f)}async function i(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function a(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof ru.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),a.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await i.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,o);return this}let i;if(typeof t=="object"){let{schemaId:a}=this.opts;if(i=t[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Kn.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,o,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$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 o=this.validate(n,t);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(t){let r;for(;typeof(r=tu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,o=new Wn.SchemaEnv({schema:{},schemaId:n});if(r=Wn.resolveSchema.call(this,o,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=tu.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Kn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,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(Sv.call(this,n,r),!r)return(0,Bs.eachItem)(n,i=>qs.call(this,i)),this;jv.call(this,r);let o={...r,type:(0,fi.getJSONTypes)(r.type),schemaType:(0,fi.getJSONTypes)(r.schemaType)};return(0,Bs.eachItem)(n,o.type.length===0?i=>qs.call(this,i,o):i=>o.type.forEach(a=>qs.call(this,i,o,a))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===t);o>=0&&n.rules.splice(o,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let i=o.split("/").slice(1),a=t;for(let s of i)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=a[s];l&&d&&(a[s]=ou(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let o=t[n];(!r||r.test(n))&&(typeof o=="string"?delete t[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[n]))}}_addSchema(t,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,Kn.normalizeId)(a||n);let l=Kn.getSchemaRefs.call(this,t,n);return c=new Wn.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):Wn.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{Wn.compileSchema.call(this,t)}finally{this.opts=r}}};Yn.ValidationError=mv.default;Yn.MissingRefError=ru.default;Ae.default=Yn;function eu(e,t,r,n="error"){for(let o in e){let i=o;i in t&&this.logger[n](`${r}: option ${o}. ${e[i]}`)}}function tu(e){return e=(0,Kn.normalizeId)(e),this.schemas[e]||this.refs[e]}function Rv(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function _v(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Av(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function Ev(){let e={...this.opts};for(let t of wv)delete e[t];return e}var Pv={log(){},warn(){},error(){}};function Nv(e){if(e===!1)return Pv;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Ov=/^[a-z_$][a-z0-9_$:-]*$/i;function Sv(e,t){let{RULES:r}=this;if((0,Bs.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Ov.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function qs(e,t,r){var n;let o=t?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=o?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,fi.getJSONTypes)(t.type),schemaType:(0,fi.getJSONTypes)(t.schemaType)}};t.before?Dv.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Dv(e,t,r){let n=e.rules.findIndex(o=>o.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function jv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=ou(t)),e.validateSchema=this.compile(t,!0))}var $v={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function ou(e){return{anyOf:[e,$v]}}});var au=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var Cv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};zs.default=Cv});var hi=E(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.callRef=vr.getValidate=void 0;var Tv=zn(),su=it(),Ke=x(),on=ot(),cu=Jn(),mi=q(),Lv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:i,validateName:a,opts:s,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&o===l.baseId)return p();let d=cu.resolveRef.call(c,l,o,r);if(d===void 0)throw new Tv.default(n.opts.uriResolver,o,r);if(d instanceof cu.SchemaEnv)return f(d);return u(d);function p(){if(i===l)return gi(e,a,i,i.$async);let m=t.scopeValue("root",{ref:l});return gi(e,(0,Ke._)`${m}.validate`,l,l.$async)}function f(m){let g=lu(e,m);gi(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Ke.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Ke.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function lu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Ke._)`${r.scopeValue("wrapper",{ref:t})}.validate`}vr.getValidate=lu;function gi(e,t,r,n){let{gen:o,it:i}=e,{allErrors:a,schemaEnv:s,opts:c}=i,l=c.passContext?on.default.this:Ke.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=o.let("valid");o.try(()=>{o.code((0,Ke._)`await ${(0,su.callValidateCode)(e,t,l)}`),u(t),a||o.assign(m,!0)},g=>{o.if((0,Ke._)`!(${g} instanceof ${i.ValidationError})`,()=>o.throw(g)),f(g),a||o.assign(m,!1)}),e.ok(m)}function p(){e.result((0,su.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Ke._)`${m}.errors`;o.assign(on.default.vErrors,(0,Ke._)`${on.default.vErrors} === null ? ${g} : ${on.default.vErrors}.concat(${g})`),o.assign(on.default.errors,(0,Ke._)`${on.default.vErrors}.length`)}function u(m){var g;if(!i.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(i.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(i.props=mi.mergeEvaluated.props(o,h.props,i.props));else{let w=o.var("props",(0,Ke._)`${m}.evaluated.props`);i.props=mi.mergeEvaluated.props(o,w,i.props,Ke.Name)}if(i.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(i.items=mi.mergeEvaluated.items(o,h.items,i.items));else{let w=o.var("items",(0,Ke._)`${m}.evaluated.items`);i.items=mi.mergeEvaluated.items(o,w,i.items,Ke.Name)}}}vr.callRef=gi;vr.default=Lv});var du=E(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var xv=au(),Vv=hi(),Mv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",xv.default,Vv.default];Js.default=Mv});var pu=E(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});var yi=x(),Qt=yi.operators,wi={maximum:{okStr:"<=",ok:Qt.LTE,fail:Qt.GT},minimum:{okStr:">=",ok:Qt.GTE,fail:Qt.LT},exclusiveMaximum:{okStr:"<",ok:Qt.LT,fail:Qt.GTE},exclusiveMinimum:{okStr:">",ok:Qt.GT,fail:Qt.LTE}},Uv={message:({keyword:e,schemaCode:t})=>(0,yi.str)`must be ${wi[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,yi._)`{comparison: ${wi[e].okStr}, limit: ${t}}`},Fv={keyword:Object.keys(wi),type:"number",schemaType:"number",$data:!0,error:Uv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,yi._)`${r} ${wi[t].fail} ${n} || isNaN(${r})`)}};Gs.default=Fv});var uu=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Hn=x(),qv={message:({schemaCode:e})=>(0,Hn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Hn._)`{multipleOf: ${e}}`},Bv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:qv,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,i=o.opts.multipleOfPrecision,a=t.let("res"),s=i?(0,Hn._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,Hn._)`${a} !== parseInt(${a})`;e.fail$data((0,Hn._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};Ws.default=Bv});var mu=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});function fu(e){let t=e.length,r=0,n=0,o;for(;n<t;)r++,o=e.charCodeAt(n++),o>=55296&&o<=56319&&n<t&&(o=e.charCodeAt(n),(o&64512)===56320&&n++);return r}Ks.default=fu;fu.code='require("ajv/dist/runtime/ucs2length").default'});var gu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var br=x(),zv=q(),Jv=mu(),Gv={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,br.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,br._)`{limit: ${e}}`},Wv={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Gv,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,i=t==="maxLength"?br.operators.GT:br.operators.LT,a=o.opts.unicode===!1?(0,br._)`${r}.length`:(0,br._)`${(0,zv.useFunc)(e.gen,Jv.default)}(${r})`;e.fail$data((0,br._)`${a} ${i} ${n}`)}};Ys.default=Wv});var hu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Kv=it(),Yv=q(),an=x(),Hv={message:({schemaCode:e})=>(0,an.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,an._)`{pattern: ${e}}`},Xv={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Hv,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:i,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,an._)`new RegExp`:(0,Yv.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,an._)`${l}(${i}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,an._)`!${d}`)}else{let c=(0,Kv.usePattern)(e,o);e.fail$data((0,an._)`!${c}.test(${r})`)}}};Hs.default=Xv});var yu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var Xn=x(),Zv={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Xn.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Xn._)`{limit: ${e}}`},Qv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Zv,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxProperties"?Xn.operators.GT:Xn.operators.LT;e.fail$data((0,Xn._)`Object.keys(${r}).length ${o} ${n}`)}};Xs.default=Qv});var wu=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Zn=it(),Qn=x(),eb=q(),tb={message:({params:{missingProperty:e}})=>(0,Qn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Qn._)`{missingProperty: ${e}}`},rb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:tb,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:i,it:a}=e,{opts:s}=a;if(!i&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?l():d(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let h=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,eb.checkStrictMode)(a,w,a.opts.strictRequired)}}function l(){if(c||i)e.block$data(Qn.nil,p);else for(let u of r)(0,Zn.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||i){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,Zn.checkMissingProp)(e,r,u)),(0,Zn.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,Zn.noPropertyInData)(t,o,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,Zn.propertyInData)(t,o,u,s.ownProperties)),t.if((0,Qn.not)(m),()=>{e.error(),t.break()})},Qn.nil)}}};Zs.default=rb});var Iu=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var eo=x(),nb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,eo.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,eo._)`{limit: ${e}}`},ob={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:nb,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxItems"?eo.operators.GT:eo.operators.LT;e.fail$data((0,eo._)`${r}.length ${o} ${n}`)}};Qs.default=ob});var Ii=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var vu=Rs();vu.code='require("ajv/dist/runtime/equal").default';ec.default=vu});var bu=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var tc=Mn(),Ee=x(),ib=q(),ab=Ii(),sb={message:({params:{i:e,j:t}})=>(0,Ee.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ee._)`{i: ${e}, j: ${t}}`},cb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:sb,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:i,schemaCode:a,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),l=i.items?(0,tc.getSchemaTypes)(i.items):[];e.block$data(c,d,(0,Ee._)`${a} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ee._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ee._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,tc.checkDataTypes)(l,h,s.opts.strictNumbers,tc.DataType.Wrong),_=t.const("indices",(0,Ee._)`{}`);t.for((0,Ee._)`;${m}--;`,()=>{t.let(h,(0,Ee._)`${r}[${m}]`),t.if(w,(0,Ee._)`continue`),l.length>1&&t.if((0,Ee._)`typeof ${h} == "string"`,(0,Ee._)`${h} += "_"`),t.if((0,Ee._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ee._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ee._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,ib.useFunc)(t,ab.default),w=t.name("outer");t.label(w).for((0,Ee._)`;${m}--;`,()=>t.for((0,Ee._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ee._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};rc.default=cb});var ku=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var nc=x(),lb=q(),db=Ii(),pb={message:"must be equal to constant",params:({schemaCode:e})=>(0,nc._)`{allowedValue: ${e}}`},ub={keyword:"const",$data:!0,error:pb,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,nc._)`!${(0,lb.useFunc)(t,db.default)}(${r}, ${o})`):e.fail((0,nc._)`${i} !== ${r}`)}};oc.default=ub});var Ru=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var to=x(),fb=q(),mb=Ii(),gb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,to._)`{allowedValues: ${e}}`},hb={keyword:"enum",schemaType:"array",$data:!0,error:gb,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:i,it:a}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,fb.useFunc)(t,mb.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let u=t.const("vSchema",i);d=(0,to.or)(...o.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",i,u=>t.if((0,to._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=o[m];return typeof g=="object"&&g!==null?(0,to._)`${l()}(${r}, ${u}[${m}])`:(0,to._)`${r} === ${g}`}}};ic.default=hb});var _u=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var yb=pu(),wb=uu(),Ib=gu(),vb=hu(),bb=yu(),kb=wu(),Rb=Iu(),_b=bu(),Ab=ku(),Eb=Ru(),Pb=[yb.default,wb.default,Ib.default,vb.default,bb.default,kb.default,Rb.default,_b.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Ab.default,Eb.default];ac.default=Pb});var cc=E(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.validateAdditionalItems=void 0;var kr=x(),sc=q(),Nb={message:({params:{len:e}})=>(0,kr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,kr._)`{limit: ${e}}`},Ob={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Nb,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,sc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Au(e,n)}};function Au(e,t){let{gen:r,schema:n,data:o,keyword:i,it:a}=e;a.items=!0;let s=r.const("len",(0,kr._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,kr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,sc.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,kr._)`${s} <= ${t.length}`);r.if((0,kr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:i,dataProp:d,dataPropType:sc.Type.Num},l),a.allErrors||r.if((0,kr.not)(l),()=>r.break())})}}ro.validateAdditionalItems=Au;ro.default=Ob});var lc=E(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.validateTuple=void 0;var Eu=x(),vi=q(),Sb=it(),Db={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Pu(e,"additionalItems",t);r.items=!0,!(0,vi.alwaysValidSchema)(r,t)&&e.ok((0,Sb.validateArray)(e))}};function Pu(e,t,r=e.schema){let{gen:n,parentSchema:o,data:i,keyword:a,it:s}=e;d(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=vi.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Eu._)`${i}.length`);r.forEach((p,f)=>{(0,vi.alwaysValidSchema)(s,p)||(n.if((0,Eu._)`${l} > ${f}`,()=>e.subschema({keyword:a,schemaProp:f,dataProp:f},c)),e.ok(c))});function d(p){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===p.minItems&&(m===p.maxItems||p[t]===!1);if(f.strictTuples&&!g){let h=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,vi.checkStrictMode)(s,h,f.strictTuples)}}}no.validateTuple=Pu;no.default=Db});var Nu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var jb=lc(),$b={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,jb.validateTuple)(e,"items")};dc.default=$b});var Su=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var Ou=x(),Cb=q(),Tb=it(),Lb=cc(),xb={message:({params:{len:e}})=>(0,Ou.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ou._)`{limit: ${e}}`},Vb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:xb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,Cb.alwaysValidSchema)(n,t)&&(o?(0,Lb.validateAdditionalItems)(e,o):e.ok((0,Tb.validateArray)(e)))}};pc.default=Vb});var Du=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var st=x(),bi=q(),Mb={message:({params:{min:e,max:t}})=>t===void 0?(0,st.str)`must contain at least ${e} valid item(s)`:(0,st.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,st._)`{minContains: ${e}}`:(0,st._)`{minContains: ${e}, maxContains: ${t}}`},Ub={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Mb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e,a,s,{minContains:c,maxContains:l}=n;i.opts.next?(a=c===void 0?1:c,s=l):a=1;let d=t.const("len",(0,st._)`${o}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,bi.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,bi.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,bi.alwaysValidSchema)(i,r)){let g=(0,st._)`${d} >= ${a}`;s!==void 0&&(g=(0,st._)`${g} && ${d} <= ${s}`),e.pass(g);return}i.items=!0;let p=t.name("valid");s===void 0&&a===1?u(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,st._)`${o}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),h=t.let("count",0);u(g,()=>t.if(g,()=>m(h)))}function u(g,h){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:bi.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,st._)`${g}++`),s===void 0?t.if((0,st._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,st._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,st._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};uc.default=Ub});var ki=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.validateSchemaDeps=Nt.validatePropertyDeps=Nt.error=void 0;var fc=x(),Fb=q(),oo=it();Nt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,fc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,fc._)`{property: ${e},
|
|
1
|
+
import{a as E,b as Hr,c as $n,d as Ld,e as T,f as xd,g as Vd,h as Md,i as Fd,j as Ud}from"./chunk.js";var Ln=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var Cn=class{};Y._CodeOrName=Cn;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var mr=class extends Cn{constructor(t){if(super(),!Y.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Y.Name=mr;var nt=class extends Cn{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof mr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=nt;Y.nil=new nt("");function qd(e,...t){let r=[e[0]],n=0;for(;n<t.length;)rs(r,t[n]),r.push(e[++n]);return new nt(r)}Y._=qd;var ts=new nt("+");function Bd(e,...t){let r=[Tn(e[0])],n=0;for(;n<t.length;)r.push(ts),rs(r,t[n]),r.push(ts,Tn(e[++n]));return Ry(r),new nt(r)}Y.str=Bd;function rs(e,t){t instanceof nt?e.push(...t._items):t instanceof mr?e.push(t):e.push(Ey(t))}Y.addCodeArg=rs;function Ry(e){let t=1;for(;t<e.length-1;){if(e[t]===ts){let r=Ay(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Ay(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof mr||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof mr))return`"${e}${t.slice(1)}`}function _y(e,t){return t.emptyStr()?e:e.emptyStr()?t:Bd`${e}${t}`}Y.strConcat=_y;function Ey(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Tn(Array.isArray(e)?e.join(","):e)}function Py(e){return new nt(Tn(e))}Y.stringify=Py;function Tn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=Tn;function Ny(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new nt(`.${e}`):qd`[${e}]`}Y.getProperty=Ny;function Oy(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new nt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=Oy;function Dy(e){return new nt(e.toString())}Y.regexpCode=Dy});var as=E(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.ValueScope=Ge.ValueScopeName=Ge.Scope=Ge.varKinds=Ge.UsedValueState=void 0;var Je=Ln(),ns=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},ea;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(ea||(Ge.UsedValueState=ea={}));Ge.varKinds={const:new Je.Name("const"),let:new Je.Name("let"),var:new Je.Name("var")};var ta=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Je.Name?t:this.name(t)}name(t){return new Je.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Ge.Scope=ta;var ra=class extends Je.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Je._)`.${new Je.Name(r)}[${n}]`}};Ge.ValueScopeName=ra;var Sy=(0,Je._)`\n`,is=class extends ta{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Sy:Je.nil}}get(){return this._scope}name(t){return new ra(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:a}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let d=s.get(o);if(d)return d}else s=this._values[a]=new Map;s.set(o,i);let c=this._scope[a]||(this._scope[a]=[]),l=c.length;return c[l]=r.ref,i.setValue(r,{property:a,itemIndex:l}),i}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Je._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let a=Je.nil;for(let o in t){let s=t[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,ea.Started);let d=r(l);if(d){let p=this.opts.es5?Ge.varKinds.var:Ge.varKinds.const;a=(0,Je._)`${a}${p} ${l} = ${d};${this.opts._n}`}else if(d=i?.(l))a=(0,Je._)`${a}${d}${this.opts._n}`;else throw new ns(l);c.set(l,ea.Completed)})}return a}};Ge.ValueScope=is});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Ln(),gt=as(),Yt=Ln();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Yt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Yt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Yt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Yt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Yt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Yt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Yt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Yt.Name}});var oa=as();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return oa.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return oa.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return oa.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return oa.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var Lt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},os=class extends Lt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?gt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Zr(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},na=class extends Lt{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Zr(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return aa(t,this.rhs)}},ss=class extends na{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},cs=class extends Lt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},ls=class extends Lt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ds=class extends Lt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ps=class extends Lt{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=Zr(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},xn=class extends Lt{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,i=n.length;for(;i--;){let a=n[i];a.optimizeNames(t,r)||(jy(t,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>yr(t,r.names),{})}},xt=class extends xn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},us=class extends xn{},Xr=class extends xt{};Xr.kind="else";var gr=class e extends xt{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Xr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(zd(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=Zr(this.condition,t,r),this}get names(){let t=super.names;return aa(t,this.condition),this.else&&yr(t,this.else.names),t}};gr.kind="if";var hr=class extends xt{};hr.kind="for";var fs=class extends hr{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=Zr(this.iteration,t,r),this}get names(){return yr(super.names,this.iteration.names)}},ms=class extends hr{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?gt.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=aa(super.names,this.from);return aa(t,this.to)}},ia=class extends hr{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=Zr(this.iterable,t,r),this}get names(){return yr(super.names,this.iterable.names)}},Vn=class extends xt{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Vn.kind="func";var Mn=class extends xn{render(t){return"return "+super.render(t)}};Mn.kind="return";var gs=class extends xt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&yr(t,this.catch.names),this.finally&&yr(t,this.finally.names),t}},Fn=class extends xt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Fn.kind="catch";var Un=class extends xt{render(t){return"finally"+super.render(t)}};Un.kind="finally";var hs=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
+
`:""},this._extScope=t,this._scope=new gt.Scope({parent:t}),this._nodes=[new us]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,i){let a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new os(t,a,n)),a}const(t,r,n){return this._def(gt.varKinds.const,t,r,n)}let(t,r,n){return this._def(gt.varKinds.let,t,r,n)}var(t,r,n){return this._def(gt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new na(t,r,n))}add(t,r){return this._leafNode(new ss(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new ps(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new gr(t)),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(t){return this._elseNode(new gr(t))}else(){return this._elseNode(new Xr)}endIf(){return this._endBlockNode(gr,Xr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new fs(t),r)}forRange(t,r,n,i,a=this.opts.es5?gt.varKinds.var:gt.varKinds.let){let o=this._scope.toName(t);return this._for(new ms(a,o,r,n),()=>i(o))}forOf(t,r,n,i=gt.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let o=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${o}.length`,s=>{this.var(a,(0,z._)`${o}[${s}]`),n(a)})}return this._for(new ia("of",i,a,r),()=>n(a))}forIn(t,r,n,i=this.opts.es5?gt.varKinds.var:gt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let a=this._scope.toName(t);return this._for(new ia("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(hr)}label(t){return this._leafNode(new cs(t))}break(t){return this._leafNode(new ls(t))}return(t){let r=new Mn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Mn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new gs;if(this._blockNode(i),this.code(t),r){let a=this.name("e");this._currNode=i.catch=new Fn(a),r(a)}return n&&(this._currNode=i.finally=new Un,this.code(n)),this._endBlockNode(Fn,Un)}throw(t){return this._leafNode(new ds(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){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||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=z.nil,n,i){return this._blockNode(new Vn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Vn)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof gr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};F.CodeGen=hs;function yr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function aa(e,t){return t instanceof z._CodeOrName?yr(e,t.names):e}function Zr(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((a,o)=>(o instanceof z.Name&&(o=n(o)),o instanceof z._Code?a.push(...o._items):a.push(o),a),[]));function n(a){let o=r[a.str];return o===void 0||t[a.str]!==1?a:(delete t[a.str],o)}function i(a){return a instanceof z._Code&&a._items.some(o=>o instanceof z.Name&&t[o.str]===1&&r[o.str]!==void 0)}}function jy(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function zd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${ys(e)}`}F.not=zd;var $y=Jd(F.operators.AND);function Cy(...e){return e.reduce($y)}F.and=Cy;var Ty=Jd(F.operators.OR);function Ly(...e){return e.reduce(Ty)}F.or=Ly;function Jd(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${ys(t)} ${e} ${ys(r)}`}function ys(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var ae=x(),xy=Ln();function Vy(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=Vy;function My(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Kd(e,t),!Yd(t,e.self.RULES.all))}U.alwaysValidSchema=My;function Kd(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let a in t)i[a]||Zd(e,`unknown keyword: "${a}"`)}U.checkUnknownRules=Kd;function Yd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=Yd;function Fy(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}U.schemaHasRulesButRef=Fy;function Uy({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ae._)`${r}`}return(0,ae._)`${e}${t}${(0,ae.getProperty)(n)}`}U.schemaRefOrVal=Uy;function qy(e){return Hd(decodeURIComponent(e))}U.unescapeFragment=qy;function By(e){return encodeURIComponent(Is(e))}U.escapeFragment=By;function Is(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Is;function Hd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Hd;function zy(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=zy;function Gd({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,a,o,s)=>{let c=o===void 0?a:o instanceof ae.Name?(a instanceof ae.Name?e(i,a,o):t(i,a,o),o):a instanceof ae.Name?(t(i,o,a),a):r(a,o);return s===ae.Name&&!(c instanceof ae.Name)?n(i,c):c}}U.mergeEvaluated={props:Gd({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ae._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ae._)`${r} || {}`).code((0,ae._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ae._)`${r} || {}`),vs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Xd}),items:Gd({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ae._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ae._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Xd(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&vs(e,r,t),r}U.evaluatedPropsToName=Xd;function vs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}U.setEvaluated=vs;var Wd={};function Jy(e,t){return e.scopeValue("func",{ref:t,code:Wd[t.code]||(Wd[t.code]=new xy._Code(t.code))})}U.useFunc=Jy;var ws;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ws||(U.Type=ws={}));function Gy(e,t,r){if(e instanceof ae.Name){let n=t===ws.Num;return r?n?(0,ae._)`"[" + ${e} + "]"`:(0,ae._)`"['" + ${e} + "']"`:n?(0,ae._)`"/" + ${e}`:(0,ae._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ae.getProperty)(e).toString():"/"+Is(e)}U.getErrorPath=Gy;function Zd(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}U.checkStrictMode=Zd});var it=E(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});var Te=x(),Wy={data:new Te.Name("data"),valCxt:new Te.Name("valCxt"),instancePath:new Te.Name("instancePath"),parentData:new Te.Name("parentData"),parentDataProperty:new Te.Name("parentDataProperty"),rootData:new Te.Name("rootData"),dynamicAnchors:new Te.Name("dynamicAnchors"),vErrors:new Te.Name("vErrors"),errors:new Te.Name("errors"),this:new Te.Name("this"),self:new Te.Name("self"),scope:new Te.Name("scope"),json:new Te.Name("json"),jsonPos:new Te.Name("jsonPos"),jsonLen:new Te.Name("jsonLen"),jsonPart:new Te.Name("jsonPart")};bs.default=Wy});var qn=E(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.extendErrors=Le.resetErrorsCount=Le.reportExtraError=Le.reportError=Le.keyword$DataError=Le.keywordError=void 0;var G=x(),sa=q(),Ue=it();Le.keywordError={message:({keyword:e})=>(0,G.str)`must pass "${e}" keyword validation`};Le.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,G.str)`"${e}" keyword must be ${t} ($data)`:(0,G.str)`"${e}" keyword is invalid ($data)`};function Ky(e,t=Le.keywordError,r,n){let{it:i}=e,{gen:a,compositeRule:o,allErrors:s}=i,c=tp(e,t,r);n??(o||s)?Qd(a,c):ep(i,(0,G._)`[${c}]`)}Le.reportError=Ky;function Yy(e,t=Le.keywordError,r){let{it:n}=e,{gen:i,compositeRule:a,allErrors:o}=n,s=tp(e,t,r);Qd(i,s),a||o||ep(n,Ue.default.vErrors)}Le.reportExtraError=Yy;function Hy(e,t){e.assign(Ue.default.errors,t),e.if((0,G._)`${Ue.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,G._)`${Ue.default.vErrors}.length`,t),()=>e.assign(Ue.default.vErrors,null)))}Le.resetErrorsCount=Hy;function Xy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,Ue.default.errors,s=>{e.const(o,(0,G._)`${Ue.default.vErrors}[${s}]`),e.if((0,G._)`${o}.instancePath === undefined`,()=>e.assign((0,G._)`${o}.instancePath`,(0,G.strConcat)(Ue.default.instancePath,a.errorPath))),e.assign((0,G._)`${o}.schemaPath`,(0,G.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,G._)`${o}.schema`,r),e.assign((0,G._)`${o}.data`,n))})}Le.extendErrors=Xy;function Qd(e,t){let r=e.const("err",t);e.if((0,G._)`${Ue.default.vErrors} === null`,()=>e.assign(Ue.default.vErrors,(0,G._)`[${r}]`),(0,G._)`${Ue.default.vErrors}.push(${r})`),e.code((0,G._)`${Ue.default.errors}++`)}function ep(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,G._)`new ${e.ValidationError}(${t})`):(r.assign((0,G._)`${n}.errors`,t),r.return(!1))}var wr={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function tp(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,G._)`{}`:Zy(e,t,r)}function Zy(e,t,r={}){let{gen:n,it:i}=e,a=[Qy(i,r),ew(e,r)];return tw(e,t,a),n.object(...a)}function Qy({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,sa.getErrorPath)(t,sa.Type.Str)}`:e;return[Ue.default.instancePath,(0,G.strConcat)(Ue.default.instancePath,r)]}function ew({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,G.str)`${t}/${e}`;return r&&(i=(0,G.str)`${i}${(0,sa.getErrorPath)(r,sa.Type.Str)}`),[wr.schemaPath,i]}function tw(e,{params:t,message:r},n){let{keyword:i,data:a,schemaValue:o,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([wr.keyword,i],[wr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([wr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([wr.schema,o],[wr.parentSchema,(0,G._)`${d}${p}`],[Ue.default.data,a]),l&&n.push([wr.propertyName,l])}});var np=E(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.boolOrEmptySchema=Qr.topBoolOrEmptySchema=void 0;var rw=qn(),nw=x(),iw=it(),aw={message:"boolean schema is false"};function ow(e){let{gen:t,schema:r,validateName:n}=e;r===!1?rp(e,!1):typeof r=="object"&&r.$async===!0?t.return(iw.default.data):(t.assign((0,nw._)`${n}.errors`,null),t.return(!0))}Qr.topBoolOrEmptySchema=ow;function sw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),rp(e)):r.var(t,!0)}Qr.boolOrEmptySchema=sw;function rp(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,rw.reportError)(i,aw,void 0,t)}});var ks=E(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.getRules=en.isJSONType=void 0;var cw=["string","number","integer","boolean","null","object","array"],lw=new Set(cw);function dw(e){return typeof e=="string"&&lw.has(e)}en.isJSONType=dw;function pw(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}en.getRules=pw});var Rs=E(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.shouldUseRule=Ht.shouldUseGroup=Ht.schemaHasRulesForType=void 0;function uw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&ip(e,n)}Ht.schemaHasRulesForType=uw;function ip(e,t){return t.rules.some(r=>ap(e,r))}Ht.shouldUseGroup=ip;function ap(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Ht.shouldUseRule=ap});var Bn=E(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.reportTypeError=xe.checkDataTypes=xe.checkDataType=xe.coerceAndCheckDataType=xe.getJSONTypes=xe.getSchemaTypes=xe.DataType=void 0;var fw=ks(),mw=Rs(),gw=qn(),V=x(),op=q(),tn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(tn||(xe.DataType=tn={}));function hw(e){let t=sp(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}xe.getSchemaTypes=hw;function sp(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(fw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}xe.getJSONTypes=sp;function yw(e,t){let{gen:r,data:n,opts:i}=e,a=ww(t,i.coerceTypes),o=t.length>0&&!(a.length===0&&t.length===1&&(0,mw.schemaHasRulesForType)(e,t[0]));if(o){let s=_s(t,n,i.strictNumbers,tn.Wrong);r.if(s,()=>{a.length?Iw(e,t,a):Es(e)})}return o}xe.coerceAndCheckDataType=yw;var cp=new Set(["string","number","integer","boolean","null"]);function ww(e,t){return t?e.filter(r=>cp.has(r)||t==="array"&&r==="array"):[]}function Iw(e,t,r){let{gen:n,data:i,opts:a}=e,o=n.let("dataType",(0,V._)`typeof ${i}`),s=n.let("coerced",(0,V._)`undefined`);a.coerceTypes==="array"&&n.if((0,V._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,V._)`${i}[0]`).assign(o,(0,V._)`typeof ${i}`).if(_s(t,i,a.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(cp.has(l)||l==="array"&&a.coerceTypes==="array")&&c(l);n.else(),Es(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),vw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,V._)`"" + ${i}`).elseIf((0,V._)`${i} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${o} == "boolean" || ${i} === null
|
|
3
|
+
|| (${o} == "string" && ${i} && ${i} == +${i})`).assign(s,(0,V._)`+${i}`);return;case"integer":n.elseIf((0,V._)`${o} === "boolean" || ${i} === null
|
|
4
|
+
|| (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(s,(0,V._)`+${i}`);return;case"boolean":n.elseIf((0,V._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(s,!1).elseIf((0,V._)`${i} === "true" || ${i} === 1`).assign(s,!0);return;case"null":n.elseIf((0,V._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(s,null);return;case"array":n.elseIf((0,V._)`${o} === "string" || ${o} === "number"
|
|
5
|
+
|| ${o} === "boolean" || ${i} === null`).assign(s,(0,V._)`[${i}]`)}}}function vw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function As(e,t,r,n=tn.Correct){let i=n===tn.Correct?V.operators.EQ:V.operators.NEQ,a;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":a=(0,V._)`Array.isArray(${t})`;break;case"object":a=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=o((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=o();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===tn.Correct?a:(0,V.not)(a);function o(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}xe.checkDataType=As;function _s(e,t,r,n){if(e.length===1)return As(e[0],t,r,n);let i,a=(0,op.toHash)(e);if(a.array&&a.object){let o=(0,V._)`typeof ${t} != "object"`;i=a.null?o:(0,V._)`!${t} || ${o}`,delete a.null,delete a.array,delete a.object}else i=V.nil;a.number&&delete a.integer;for(let o in a)i=(0,V.and)(i,As(o,t,r,n));return i}xe.checkDataTypes=_s;var bw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Es(e){let t=kw(e);(0,gw.reportError)(t,bw)}xe.reportTypeError=Es;function kw(e){let{gen:t,data:r,schema:n}=e,i=(0,op.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var dp=E(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.assignDefaults=void 0;var rn=x(),Rw=q();function Aw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)lp(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,a)=>lp(e,a,i.default))}ca.assignDefaults=Aw;function lp(e,t,r){let{gen:n,compositeRule:i,data:a,opts:o}=e;if(r===void 0)return;let s=(0,rn._)`${a}${(0,rn.getProperty)(t)}`;if(i){(0,Rw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,rn._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,rn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,rn._)`${s} = ${(0,rn.stringify)(r)}`)}});var at=E(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var ue=x(),Ps=q(),Xt=it(),_w=q();function Ew(e,t){let{gen:r,data:n,it:i}=e;r.if(Os(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,ue._)`${t}`},!0),e.error()})}ne.checkReportMissingProp=Ew;function Pw({gen:e,data:t,it:{opts:r}},n,i){return(0,ue.or)(...n.map(a=>(0,ue.and)(Os(e,t,a,r.ownProperties),(0,ue._)`${i} = ${a}`)))}ne.checkMissingProp=Pw;function Nw(e,t){e.setParams({missingProperty:t},!0),e.error()}ne.reportMissingProp=Nw;function pp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,ue._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=pp;function Ns(e,t,r){return(0,ue._)`${pp(e)}.call(${t}, ${r})`}ne.isOwnProperty=Ns;function Ow(e,t,r,n){let i=(0,ue._)`${t}${(0,ue.getProperty)(r)} !== undefined`;return n?(0,ue._)`${i} && ${Ns(e,t,r)}`:i}ne.propertyInData=Ow;function Os(e,t,r,n){let i=(0,ue._)`${t}${(0,ue.getProperty)(r)} === undefined`;return n?(0,ue.or)(i,(0,ue.not)(Ns(e,t,r))):i}ne.noPropertyInData=Os;function up(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ne.allSchemaProperties=up;function Dw(e,t){return up(t).filter(r=>!(0,Ps.alwaysValidSchema)(e,t[r]))}ne.schemaProperties=Dw;function Sw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:o},s,c,l){let d=l?(0,ue._)`${e}, ${t}, ${n}${i}`:t,p=[[Xt.default.instancePath,(0,ue.strConcat)(Xt.default.instancePath,a)],[Xt.default.parentData,o.parentData],[Xt.default.parentDataProperty,o.parentDataProperty],[Xt.default.rootData,Xt.default.rootData]];o.opts.dynamicRef&&p.push([Xt.default.dynamicAnchors,Xt.default.dynamicAnchors]);let f=(0,ue._)`${d}, ${r.object(...p)}`;return c!==ue.nil?(0,ue._)`${s}.call(${c}, ${f})`:(0,ue._)`${s}(${f})`}ne.callValidateCode=Sw;var jw=(0,ue._)`new RegExp`;function $w({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,a=i(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,ue._)`${i.code==="new RegExp"?jw:(0,_w.useFunc)(e,i)}(${r}, ${n})`})}ne.usePattern=$w;function Cw(e){let{gen:t,data:r,keyword:n,it:i}=e,a=t.name("valid");if(i.allErrors){let s=t.let("valid",!0);return o(()=>t.assign(s,!1)),s}return t.var(a,!0),o(()=>t.break()),a;function o(s){let c=t.const("len",(0,ue._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Ps.Type.Num},a),t.if((0,ue.not)(a),s)})}}ne.validateArray=Cw;function Tw(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Ps.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let d=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(o,(0,ue._)`${o} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,ue.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}ne.validateUnion=Tw});var gp=E(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.validateKeywordUsage=Ot.validSchemaType=Ot.funcKeywordCode=Ot.macroKeywordCode=void 0;var qe=x(),Ir=it(),Lw=at(),xw=qn();function Vw(e,t){let{gen:r,keyword:n,schema:i,parentSchema:a,it:o}=e,s=t.macro.call(o.self,i,a,o),c=mp(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:qe.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Ot.macroKeywordCode=Vw;function Mw(e,t){var r;let{gen:n,keyword:i,schema:a,parentSchema:o,$data:s,it:c}=e;Uw(c,t);let l=!s&&t.compile?t.compile.call(c.self,a,o,c):t.validate,d=mp(n,i,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&fp(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&fp(e),h(()=>Fw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,qe._)`await `),A=>n.assign(p,!1).if((0,qe._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,qe._)`${A}.errors`),()=>n.throw(A))),w}function m(){let w=(0,qe._)`${d}.errors`;return n.assign(w,null),g(qe.nil),w}function g(w=t.async?(0,qe._)`await `:qe.nil){let A=c.opts.passContext?Ir.default.this:Ir.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,qe._)`${w}${(0,Lw.callValidateCode)(e,d,A,b)}`,t.modifying)}function h(w){var A;n.if((0,qe.not)((A=t.valid)!==null&&A!==void 0?A:p),w)}}Ot.funcKeywordCode=Mw;function fp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,qe._)`${n.parentData}[${n.parentDataProperty}]`))}function Fw(e,t){let{gen:r}=e;r.if((0,qe._)`Array.isArray(${t})`,()=>{r.assign(Ir.default.vErrors,(0,qe._)`${Ir.default.vErrors} === null ? ${t} : ${Ir.default.vErrors}.concat(${t})`).assign(Ir.default.errors,(0,qe._)`${Ir.default.vErrors}.length`),(0,xw.extendErrors)(e)},()=>e.error())}function Uw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function mp(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,qe.stringify)(r)})}function qw(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Ot.validSchemaType=qw;function Bw({schema:e,opts:t,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${a}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Ot.validateKeywordUsage=Bw});var yp=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.extendSubschemaMode=Zt.extendSubschemaData=Zt.getSubschema=void 0;var Dt=x(),hp=q();function zw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,topSchemaRef:o}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}${(0,Dt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,hp.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Zt.getSubschema=zw;function Jw(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:o}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Dt._)`${t.data}${(0,Dt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Dt.str)`${l}${(0,hp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Dt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(i!==void 0){let l=i instanceof Dt.Name?i:s.let("data",i,!0);c(l),o!==void 0&&(e.propertyName=o)}a&&(e.dataTypes=a);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}Zt.extendSubschemaData=Jw;function Gw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}Zt.extendSubschemaMode=Gw});var Ds=E((FN,wp)=>{"use strict";wp.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;i--!==0;){var o=a[i];if(!e(t[o],r[o]))return!1}return!0}return t!==t&&r!==r}});var vp=E((UN,Ip)=>{"use strict";var Qt=Ip.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};la(t,n,i,e,"",e)};Qt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Qt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Qt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Qt.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 la(e,t,r,n,i,a,o,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,a,o,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Qt.arrayKeywords)for(var f=0;f<p.length;f++)la(e,t,r,p[f],i+"/"+d+"/"+f,a,i,d,n,f)}else if(d in Qt.propsKeywords){if(p&&typeof p=="object")for(var u in p)la(e,t,r,p[u],i+"/"+d+"/"+Ww(u),a,i,d,n,u)}else(d in Qt.keywords||e.allKeys&&!(d in Qt.skipKeywords))&&la(e,t,r,p,i+"/"+d,a,i,d,n)}r(n,i,a,o,s,c,l)}}function Ww(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var zn=E(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.getSchemaRefs=We.resolveUrl=We.normalizeId=We._getFullPath=We.getFullPath=We.inlineRef=void 0;var Kw=q(),Yw=Ds(),Hw=vp(),Xw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Zw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Ss(e):t?bp(e)<=t:!1}We.inlineRef=Zw;var Qw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Ss(e){for(let t in e){if(Qw.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Ss)||typeof r=="object"&&Ss(r))return!0}return!1}function bp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!Xw.has(r)&&(typeof e[r]=="object"&&(0,Kw.eachItem)(e[r],n=>t+=bp(n)),t===1/0))return 1/0}return t}function kp(e,t="",r){r!==!1&&(t=nn(t));let n=e.parse(t);return Rp(e,n)}We.getFullPath=kp;function Rp(e,t){return e.serialize(t).split("#")[0]+"#"}We._getFullPath=Rp;var eI=/#\/?$/;function nn(e){return e?e.replace(eI,""):""}We.normalizeId=nn;function tI(e,t,r){return r=nn(r),e.resolve(t,r)}We.resolveUrl=tI;var rI=/^[a-z_][-a-z0-9._]*$/i;function nI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=nn(e[r]||t),a={"":i},o=kp(n,i,!1),s={},c=new Set;return Hw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=o+f,h=a[m];typeof p[r]=="string"&&(h=w.call(this,p[r])),A.call(this,p.$anchor),A.call(this,p.$dynamicAnchor),a[f]=h;function w(b){let _=this.opts.uriResolver.resolve;if(b=nn(h?_(h,b):b),c.has(b))throw d(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,b):b!==nn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!rI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Yw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}We.getSchemaRefs=nI});var Wn=E(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.getData=er.KeywordCxt=er.validateFunctionCode=void 0;var Np=np(),Ap=Bn(),$s=Rs(),da=Bn(),iI=dp(),Gn=gp(),js=yp(),D=x(),L=it(),aI=zn(),Vt=q(),Jn=qn();function oI(e){if(Sp(e)&&(jp(e),Dp(e))){lI(e);return}Op(e,()=>(0,Np.topBoolOrEmptySchema)(e))}er.validateFunctionCode=oI;function Op({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},a){i.code.es5?e.func(t,(0,D._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,D._)`"use strict"; ${_p(r,i)}`),cI(e,i),e.code(a)}):e.func(t,(0,D._)`${L.default.data}, ${sI(i)}`,n.$async,()=>e.code(_p(r,i)).code(a))}function sI(e){return(0,D._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,D._)`, ${L.default.dynamicAnchors}={}`:D.nil}}={}`}function cI(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,D._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,D._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,D._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,D._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,D._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,D._)`""`),e.var(L.default.parentData,(0,D._)`undefined`),e.var(L.default.parentDataProperty,(0,D._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,D._)`{}`)})}function lI(e){let{schema:t,opts:r,gen:n}=e;Op(e,()=>{r.$comment&&t.$comment&&Cp(e),mI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&dI(e),$p(e),yI(e)})}function dI(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,D._)`${r}.evaluated`),t.if((0,D._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,D._)`${e.evaluated}.props`,(0,D._)`undefined`)),t.if((0,D._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,D._)`${e.evaluated}.items`,(0,D._)`undefined`))}function _p(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,D._)`/*# sourceURL=${r} */`:D.nil}function pI(e,t){if(Sp(e)&&(jp(e),Dp(e))){uI(e,t);return}(0,Np.boolOrEmptySchema)(e,t)}function Dp({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Sp(e){return typeof e.schema!="boolean"}function uI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&Cp(e),gI(e),hI(e);let a=n.const("_errs",L.default.errors);$p(e,a),n.var(t,(0,D._)`${a} === ${L.default.errors}`)}function jp(e){(0,Vt.checkUnknownRules)(e),fI(e)}function $p(e,t){if(e.opts.jtd)return Ep(e,[],!1,t);let r=(0,Ap.getSchemaTypes)(e.schema),n=(0,Ap.coerceAndCheckDataType)(e,r);Ep(e,r,!n,t)}function fI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Vt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function mI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Vt.checkStrictMode)(e,"default is ignored in the schema root")}function gI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,aI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function hI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Cp({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)e.code((0,D._)`${L.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let o=(0,D.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,D._)`${L.default.self}.opts.$comment(${a}, ${o}, ${s}.schema)`)}}function yI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=e;r.$async?t.if((0,D._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,D._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,D._)`${n}.errors`,L.default.vErrors),a.unevaluated&&wI(e),t.return((0,D._)`${L.default.errors} === 0`))}function wI({gen:e,evaluated:t,props:r,items:n}){r instanceof D.Name&&e.assign((0,D._)`${t}.props`,r),n instanceof D.Name&&e.assign((0,D._)`${t}.items`,n)}function Ep(e,t,r,n){let{gen:i,schema:a,data:o,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,Vt.schemaHasRulesButRef)(a,d))){i.block(()=>Lp(e,"$ref",d.all.$ref.definition));return}c.jtd||II(e,t),i.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,$s.shouldUseGroup)(a,f)&&(f.type?(i.if((0,da.checkDataType)(f.type,o,c.strictNumbers)),Pp(e,f),t.length===1&&t[0]===f.type&&r&&(i.else(),(0,da.reportTypeError)(e)),i.endIf()):Pp(e,f),s||i.if((0,D._)`${L.default.errors} === ${n||0}`))}}function Pp(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,iI.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,$s.shouldUseRule)(n,a)&&Lp(e,a.keyword,a.definition,t.type)})}function II(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(vI(e,t),e.opts.allowUnionTypes||bI(e,t),kI(e,e.dataTypes))}function vI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Tp(e.dataTypes,r)||Cs(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),AI(e,t)}}function bI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Cs(e,"use allowUnionTypes to allow union type keyword")}function kI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,$s.shouldUseRule)(e.schema,i)){let{type:a}=i.definition;a.length&&!a.some(o=>RI(t,o))&&Cs(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function RI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Tp(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function AI(e,t){let r=[];for(let n of e.dataTypes)Tp(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Cs(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Vt.checkStrictMode)(e,t,e.opts.strictTypes)}var pa=class{constructor(t,r,n){if((0,Gn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Vt.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",xp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Gn.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=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,D.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,D.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,D._)`${r} !== undefined && (${(0,D.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Jn.reportExtraError:Jn.reportError)(this,this.def.error,r)}$dataError(){(0,Jn.reportError)(this,this.def.$dataError||Jn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Jn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=D.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=D.nil,r=D.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:a,def:o}=this;n.if((0,D.or)((0,D._)`${i} === undefined`,r)),t!==D.nil&&n.assign(t,!0),(a.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==D.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,D.or)(o(),s());function o(){if(n.length){if(!(r instanceof D.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,D._)`${(0,da.checkDataTypes)(c,r,a.opts.strictNumbers,da.DataType.Wrong)}`}return D.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,D._)`!${c}(${r})`}return D.nil}}subschema(t,r){let n=(0,js.getSubschema)(this.it,t);(0,js.extendSubschemaData)(n,this.it,t),(0,js.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return pI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Vt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Vt.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,D.Name)),!0}};er.KeywordCxt=pa;function Lp(e,t,r,n){let i=new pa(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Gn.funcKeywordCode)(i,r):"macro"in r?(0,Gn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Gn.funcKeywordCode)(i,r)}var _I=/^\/(?:[^~]|~0|~1)*$/,EI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function xp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,a;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!_I.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,a=L.default.rootData}else{let l=EI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(i=l[2],i==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(a=r[t-d],!i)return a}let o=a,s=i.split("/");for(let l of s)l&&(a=(0,D._)`${a}${(0,D.getProperty)((0,Vt.unescapeJsonPointer)(l))}`,o=(0,D._)`${o} && ${a}`);return o;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}er.getData=xp});var ua=E(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});var Ts=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ls.default=Ts});var Kn=E(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var xs=zn(),Vs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,xs.resolveUrl)(t,r,n),this.missingSchema=(0,xs.normalizeId)((0,xs.getFullPath)(t,this.missingRef))}};Ms.default=Vs});var Yn=E(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.resolveSchema=ot.getCompilingSchema=ot.resolveRef=ot.compileSchema=ot.SchemaEnv=void 0;var ht=x(),PI=ua(),vr=it(),yt=zn(),Vp=q(),NI=Wn(),an=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,yt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};ot.SchemaEnv=an;function Us(e){let t=Mp.call(this,e);if(t)return t;let r=(0,yt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,o=new ht.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),s;e.$async&&(s=o.scopeValue("Error",{ref:PI.default,code:(0,ht._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let l={gen:o,allErrors:this.opts.allErrors,data:vr.default.data,parentData:vr.default.parentData,parentDataProperty:vr.default.parentDataProperty,dataNames:[vr.default.data],dataPathArr:[ht.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ht.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:ht.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ht._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,NI.validateFunctionCode)(l),o.optimize(this.opts.code.optimize);let p=o.toString();d=`${o.scopeRefs(vr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${vr.default.self}`,`${vr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:o._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof ht.Name?void 0:m,items:g instanceof ht.Name?void 0:g,dynamicProps:m instanceof ht.Name,dynamicItems:g instanceof ht.Name},u.source&&(u.source.evaluated=(0,ht.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}ot.compileSchema=Us;function OI(e,t,r){var n;r=(0,yt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let a=jI.call(this,e,r);if(a===void 0){let o=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(a=new an({schema:o,schemaId:s,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=DI.call(this,a)}ot.resolveRef=OI;function DI(e){return(0,yt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Us.call(this,e)}function Mp(e){for(let t of this._compilations)if(SI(t,e))return t}ot.getCompilingSchema=Mp;function SI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function jI(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||fa.call(this,e,t)}function fa(e,t){let r=this.opts.uriResolver.parse(t),n=(0,yt._getFullPath)(this.opts.uriResolver,r),i=(0,yt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return Fs.call(this,r,e);let a=(0,yt.normalizeId)(n),o=this.refs[a]||this.schemas[a];if(typeof o=="string"){let s=fa.call(this,e,o);return typeof s?.schema!="object"?void 0:Fs.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||Us.call(this,o),a===(0,yt.normalizeId)(t)){let{schema:s}=o,{schemaId:c}=this.opts,l=s[c];return l&&(i=(0,yt.resolveUrl)(this.opts.uriResolver,i,l)),new an({schema:s,schemaId:c,root:e,baseId:i})}return Fs.call(this,r,o)}}ot.resolveSchema=fa;var $I=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Fs(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Vp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!$I.has(s)&&l&&(t=(0,yt.resolveUrl)(this.opts.uriResolver,t,l))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,Vp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,yt.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=fa.call(this,n,s)}let{schemaId:o}=this.opts;if(a=a||new an({schema:r,schemaId:o,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var Fp=E((WN,CI)=>{CI.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 zs=E((KN,Gp)=>{"use strict";var TI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),qp=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),qs=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Bp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),LI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Bs(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var xI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Up(e){return e.length=0,!0}function VI(e,t,r){if(e.length){let n=Bs(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function MI(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],a=!1,o=!1,s=VI;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(a===!0&&(o=!0),!s(i,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(a=!0),n.push(":");continue}else if(l==="%"){if(!s(i,n,r))break;s=Up}else{i.push(l);continue}}return i.length&&(s===Up?r.zone=i.join(""):o?n.push(i.join("")):n.push(Bs(i))),r.address=n.join(""),r}function zp(e){if(FI(e,":")<2)return{host:e,isIPV6:!1};let t=MI(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function FI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function UI(e){let t=e,r=[],n=-1,i=0;for(;i=t.length;){if(i===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(i===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){r.push("/");break}}else if(i===3&&t==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var qI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},BI=/[@/?#:]/g,zI=/[@/?#]/g;function Jp(e,t){let r=t?zI:BI;return r.lastIndex=0,e.replace(r,n=>qI[n])}function JI(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let i=e.slice(n+1,n+3);if(qs(i)){let a=i.toUpperCase(),o=String.fromCharCode(parseInt(a,16));t&&Bp(o)?r+=o:r+="%"+a,n+=2;continue}}r+=e[n]}return r}function GI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(qs(n)){let i=n.toUpperCase(),a=String.fromCharCode(parseInt(i,16));a!=="."&&Bp(a)?t+=a:t+="%"+i,r+=2;continue}}LI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function WI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(qs(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function KI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!qp(r)){let n=zp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Jp(r,!1)}t.push(r)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}Gp.exports={nonSimpleDomain:xI,recomposeAuthority:KI,reescapeHostDelimiters:Jp,normalizePercentEncoding:JI,normalizePathEncoding:GI,escapePreservingEscapes:WI,removeDotSegments:UI,isIPv4:qp,isUUID:TI,normalizeIPv6:zp,stringArrayToHexStripped:Bs}});var Xp=E((YN,Hp)=>{"use strict";var{isUUID:YI}=zs(),HI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,XI=["http","https","ws","wss","urn","urn:uuid"];function ZI(e){return XI.indexOf(e)!==-1}function Js(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function Wp(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Kp(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function QI(e){return e.secure=Js(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function ev(e){if((e.port===(Js(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function tv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(HI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,a=Gs(i);e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function rv(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),i=`${r}:${t.nid||n}`,a=Gs(i);a&&(e=a.serialize(e,t));let o=e,s=e.nss;return o.path=`${n||t.nid}:${s}`,t.skipEscape=!0,o}function nv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!YI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function iv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Yp={scheme:"http",domainHost:!0,parse:Wp,serialize:Kp},av={scheme:"https",domainHost:Yp.domainHost,parse:Wp,serialize:Kp},ma={scheme:"ws",domainHost:!0,parse:QI,serialize:ev},ov={scheme:"wss",domainHost:ma.domainHost,parse:ma.parse,serialize:ma.serialize},sv={scheme:"urn",parse:tv,serialize:rv,skipNormalize:!0},cv={scheme:"urn:uuid",parse:nv,serialize:iv,skipNormalize:!0},ga={http:Yp,https:av,ws:ma,wss:ov,urn:sv,"urn:uuid":cv};Object.setPrototypeOf(ga,null);function Gs(e){return e&&(ga[e]||ga[e.toLowerCase()])||void 0}Hp.exports={wsIsSecure:Js,SCHEMES:ga,isValidSchemeName:ZI,getSchemeHandler:Gs}});var ru=E((HN,wa)=>{"use strict";var{normalizeIPv6:lv,removeDotSegments:Hn,recomposeAuthority:dv,normalizePercentEncoding:pv,normalizePathEncoding:uv,escapePreservingEscapes:fv,reescapeHostDelimiters:mv,isIPv4:gv,nonSimpleDomain:hv}=zs(),{SCHEMES:yv,getSchemeHandler:Qp}=Xp();function wv(e,t){return typeof e=="string"?e=_v(e,t):typeof e=="object"&&(e=ya(br(e,t),t)),e}function Iv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:a}=ha(e,n),{parsed:o,malformedAuthorityOrPort:s}=ha(t,n);if(a||s)throw new Error(i.error||o.error||"URI is malformed.");let c=eu(i,o,n,!0);return n.skipEscape=!0,br(c,n)}function eu(e,t,r,n){let i={};return n||(e=ya(br(e,r),r),t=ya(br(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=Hn(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=Hn(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=Hn(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=Hn(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function vv(e,t,r){let n=Zp(e,r),i=Zp(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function br(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),i=[],a=Qp(n.scheme||r.scheme);a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=pv(r.path):(r.path=fv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let o=dv(r);if(o!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(o),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Hn(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var bv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,kv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Rv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Av(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function ha(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1,a=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let o=e.match(kv);o!==null&&o[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(Rv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(bv);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 l=Av(n,c);if(l!==void 0&&(n.error=n.error||l,i=!0),n.host)if(gv(n.host)===!1){let f=lv(n.host);n.host=f.host.toLowerCase(),a=f.isIPV6}else a=!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 d=Qp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&a===!1&&hv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!d||d&&!d.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=mv(unescape(n.host),a))),n.path&&(n.path=uv(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:i}}function ya(e,t){return ha(e,t).parsed}function _v(e,t){return tu(e,t).normalized}function tu(e,t){let{parsed:r,malformedAuthorityOrPort:n}=ha(e,t);return{normalized:n?e:br(r,t),malformedAuthorityOrPort:n}}function Zp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=tu(e,t);return n?void 0:r}if(typeof e=="object")return br(e,t)}var Ws={SCHEMES:yv,normalize:wv,resolve:Iv,resolveComponent:eu,equal:vv,serialize:br,parse:ya};wa.exports=Ws;wa.exports.default=Ws;wa.exports.fastUri=Ws});var iu=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});var nu=ru();nu.code='require("ajv/dist/runtime/uri").default';Ks.default=nu});var uu=E(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.CodeGen=Pe.Name=Pe.nil=Pe.stringify=Pe.str=Pe._=Pe.KeywordCxt=void 0;var Ev=Wn();Object.defineProperty(Pe,"KeywordCxt",{enumerable:!0,get:function(){return Ev.KeywordCxt}});var on=x();Object.defineProperty(Pe,"_",{enumerable:!0,get:function(){return on._}});Object.defineProperty(Pe,"str",{enumerable:!0,get:function(){return on.str}});Object.defineProperty(Pe,"stringify",{enumerable:!0,get:function(){return on.stringify}});Object.defineProperty(Pe,"nil",{enumerable:!0,get:function(){return on.nil}});Object.defineProperty(Pe,"Name",{enumerable:!0,get:function(){return on.Name}});Object.defineProperty(Pe,"CodeGen",{enumerable:!0,get:function(){return on.CodeGen}});var Pv=ua(),lu=Kn(),Nv=ks(),Xn=Yn(),Ov=x(),Zn=zn(),Ia=Bn(),Hs=q(),au=Fp(),Dv=iu(),du=(e,t)=>new RegExp(e,t);du.code="new RegExp";var Sv=["removeAdditional","useDefaults","coerceTypes"],jv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),$v={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."},Cv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},ou=200;function Tv(e){var t,r,n,i,a,o,s,c,l,d,p,f,u,m,g,h,w,A,b,_,I,R,N,j,re;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Z=P===!0||P===void 0?1:P||0,se=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:du,rt=(i=e.uriResolver)!==null&&i!==void 0?i:Dv.default;return{strictSchema:(o=(a=e.strictSchema)!==null&&a!==void 0?a:$)!==null&&o!==void 0?o:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:Z,regExp:se}:{optimize:Z,regExp:se},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:ou,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:ou,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(_=e.schemaId)!==null&&_!==void 0?_:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(N=e.validateFormats)!==null&&N!==void 0?N:!0,unicodeRegExp:(j=e.unicodeRegExp)!==null&&j!==void 0?j:!0,int32range:(re=e.int32range)!==null&&re!==void 0?re:!0,uriResolver:rt}}var Qn=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Tv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new Ov.ValueScope({scope:{},prefixes:jv,es5:r,lines:n}),this.logger=Uv(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Nv.getRules)(),su.call(this,$v,t,"NOT SUPPORTED"),su.call(this,Cv,t,"DEPRECATED","warn"),this._metaOpts=Mv.call(this),t.formats&&xv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Vv.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Lv.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=au;n==="id"&&(i={...au},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,t,r);async function i(d,p){await a.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||o.call(this,f)}async function a(d){d&&!this.getSchema(d)&&await i.call(this,{$ref:d},!0)}async function o(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof lu.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),o.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await a.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,n,i);return this}let a;if(typeof t=="object"){let{schemaId:o}=this.opts;if(a=t[o],a!==void 0&&typeof a!="string")throw new Error(`schema ${o} must be string`)}return r=(0,Zn.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$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 i=this.validate(n,t);if(!i&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(t){let r;for(;typeof(r=cu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new Xn.SchemaEnv({schema:{},schemaId:n});if(r=Xn.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=cu.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Zn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,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(Bv.call(this,n,r),!r)return(0,Hs.eachItem)(n,a=>Ys.call(this,a)),this;Jv.call(this,r);let i={...r,type:(0,Ia.getJSONTypes)(r.type),schemaType:(0,Ia.getJSONTypes)(r.schemaType)};return(0,Hs.eachItem)(n,i.type.length===0?a=>Ys.call(this,a,i):a=>i.type.forEach(o=>Ys.call(this,a,i,o))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let i=n.rules.findIndex(a=>a.keyword===t);i>=0&&n.rules.splice(i,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,a)=>i+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let a=i.split("/").slice(1),o=t;for(let s of a)o=o[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=o[s];l&&d&&(o[s]=pu(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let o,{schemaId:s}=this.opts;if(typeof t=="object")o=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,Zn.normalizeId)(o||n);let l=Zn.getSchemaRefs.call(this,t,n);return c=new Xn.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):Xn.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{Xn.compileSchema.call(this,t)}finally{this.opts=r}}};Qn.ValidationError=Pv.default;Qn.MissingRefError=lu.default;Pe.default=Qn;function su(e,t,r,n="error"){for(let i in e){let a=i;a in t&&this.logger[n](`${r}: option ${i}. ${e[a]}`)}}function cu(e){return e=(0,Zn.normalizeId)(e),this.schemas[e]||this.refs[e]}function Lv(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function xv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Vv(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function Mv(){let e={...this.opts};for(let t of Sv)delete e[t];return e}var Fv={log(){},warn(){},error(){}};function Uv(e){if(e===!1)return Fv;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var qv=/^[a-z_$][a-z0-9_$:-]*$/i;function Bv(e,t){let{RULES:r}=this;if((0,Hs.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!qv.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Ys(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,o=i?a.post:a.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},a.rules.push(o)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,Ia.getJSONTypes)(t.type),schemaType:(0,Ia.getJSONTypes)(t.schemaType)}};t.before?zv.call(this,o,s,t.before):o.rules.push(s),a.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function zv(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function Jv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=pu(t)),e.validateSchema=this.compile(t,!0))}var Gv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function pu(e){return{anyOf:[e,Gv]}}});var fu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var Wv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Xs.default=Wv});var ka=E(kr=>{"use strict";Object.defineProperty(kr,"__esModule",{value:!0});kr.callRef=kr.getValidate=void 0;var Kv=Kn(),mu=at(),Ke=x(),sn=it(),gu=Yn(),va=q(),Yv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:a,validateName:o,opts:s,self:c}=n,{root:l}=a;if((r==="#"||r==="#/")&&i===l.baseId)return p();let d=gu.resolveRef.call(c,l,i,r);if(d===void 0)throw new Kv.default(n.opts.uriResolver,i,r);if(d instanceof gu.SchemaEnv)return f(d);return u(d);function p(){if(a===l)return ba(e,o,a,a.$async);let m=t.scopeValue("root",{ref:l});return ba(e,(0,Ke._)`${m}.validate`,l,l.$async)}function f(m){let g=hu(e,m);ba(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Ke.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Ke.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function hu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Ke._)`${r.scopeValue("wrapper",{ref:t})}.validate`}kr.getValidate=hu;function ba(e,t,r,n){let{gen:i,it:a}=e,{allErrors:o,schemaEnv:s,opts:c}=a,l=c.passContext?sn.default.this:Ke.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,Ke._)`await ${(0,mu.callValidateCode)(e,t,l)}`),u(t),o||i.assign(m,!0)},g=>{i.if((0,Ke._)`!(${g} instanceof ${a.ValidationError})`,()=>i.throw(g)),f(g),o||i.assign(m,!1)}),e.ok(m)}function p(){e.result((0,mu.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Ke._)`${m}.errors`;i.assign(sn.default.vErrors,(0,Ke._)`${sn.default.vErrors} === null ? ${g} : ${sn.default.vErrors}.concat(${g})`),i.assign(sn.default.errors,(0,Ke._)`${sn.default.vErrors}.length`)}function u(m){var g;if(!a.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(a.props=va.mergeEvaluated.props(i,h.props,a.props));else{let w=i.var("props",(0,Ke._)`${m}.evaluated.props`);a.props=va.mergeEvaluated.props(i,w,a.props,Ke.Name)}if(a.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(a.items=va.mergeEvaluated.items(i,h.items,a.items));else{let w=i.var("items",(0,Ke._)`${m}.evaluated.items`);a.items=va.mergeEvaluated.items(i,w,a.items,Ke.Name)}}}kr.callRef=ba;kr.default=Yv});var yu=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Hv=fu(),Xv=ka(),Zv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Hv.default,Xv.default];Zs.default=Zv});var wu=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var Ra=x(),tr=Ra.operators,Aa={maximum:{okStr:"<=",ok:tr.LTE,fail:tr.GT},minimum:{okStr:">=",ok:tr.GTE,fail:tr.LT},exclusiveMaximum:{okStr:"<",ok:tr.LT,fail:tr.GTE},exclusiveMinimum:{okStr:">",ok:tr.GT,fail:tr.LTE}},Qv={message:({keyword:e,schemaCode:t})=>(0,Ra.str)`must be ${Aa[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Ra._)`{comparison: ${Aa[e].okStr}, limit: ${t}}`},eb={keyword:Object.keys(Aa),type:"number",schemaType:"number",$data:!0,error:Qv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,Ra._)`${r} ${Aa[t].fail} ${n} || isNaN(${r})`)}};Qs.default=eb});var Iu=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var ei=x(),tb={message:({schemaCode:e})=>(0,ei.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,ei._)`{multipleOf: ${e}}`},rb={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:tb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,a=i.opts.multipleOfPrecision,o=t.let("res"),s=a?(0,ei._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${a}`:(0,ei._)`${o} !== parseInt(${o})`;e.fail$data((0,ei._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};ec.default=rb});var bu=E(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});function vu(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}tc.default=vu;vu.code='require("ajv/dist/runtime/ucs2length").default'});var ku=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var Rr=x(),nb=q(),ib=bu(),ab={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Rr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Rr._)`{limit: ${e}}`},ob={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ab,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,a=t==="maxLength"?Rr.operators.GT:Rr.operators.LT,o=i.opts.unicode===!1?(0,Rr._)`${r}.length`:(0,Rr._)`${(0,nb.useFunc)(e.gen,ib.default)}(${r})`;e.fail$data((0,Rr._)`${o} ${a} ${n}`)}};rc.default=ob});var Ru=E(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var sb=at(),cb=q(),cn=x(),lb={message:({schemaCode:e})=>(0,cn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,cn._)`{pattern: ${e}}`},db={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:lb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:a,it:o}=e,s=o.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=o.opts.code,l=c.code==="new RegExp"?(0,cn._)`new RegExp`:(0,cb.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,cn._)`${l}(${a}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,cn._)`!${d}`)}else{let c=(0,sb.usePattern)(e,i);e.fail$data((0,cn._)`!${c}.test(${r})`)}}};nc.default=db});var Au=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var ti=x(),pb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ti.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ti._)`{limit: ${e}}`},ub={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:pb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ti.operators.GT:ti.operators.LT;e.fail$data((0,ti._)`Object.keys(${r}).length ${i} ${n}`)}};ic.default=ub});var _u=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var ri=at(),ni=x(),fb=q(),mb={message:({params:{missingProperty:e}})=>(0,ni.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,ni._)`{missingProperty: ${e}}`},gb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:mb,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:a,it:o}=e,{opts:s}=o;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(o.allErrors?l():d(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let h=o.schemaEnv.baseId+o.errSchemaPath,w=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,fb.checkStrictMode)(o,w,o.opts.strictRequired)}}function l(){if(c||a)e.block$data(ni.nil,p);else for(let u of r)(0,ri.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||a){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,ri.checkMissingProp)(e,r,u)),(0,ri.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,ri.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,ri.propertyInData)(t,i,u,s.ownProperties)),t.if((0,ni.not)(m),()=>{e.error(),t.break()})},ni.nil)}}};ac.default=gb});var Eu=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var ii=x(),hb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,ii.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,ii._)`{limit: ${e}}`},yb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:hb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?ii.operators.GT:ii.operators.LT;e.fail$data((0,ii._)`${r}.length ${i} ${n}`)}};oc.default=yb});var _a=E(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});var Pu=Ds();Pu.code='require("ajv/dist/runtime/equal").default';sc.default=Pu});var Nu=E(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var cc=Bn(),Ne=x(),wb=q(),Ib=_a(),vb={message:({params:{i:e,j:t}})=>(0,Ne.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ne._)`{i: ${e}, j: ${t}}`},bb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:vb,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:a,schemaCode:o,it:s}=e;if(!n&&!i)return;let c=t.let("valid"),l=a.items?(0,cc.getSchemaTypes)(a.items):[];e.block$data(c,d,(0,Ne._)`${o} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ne._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ne._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,cc.checkDataTypes)(l,h,s.opts.strictNumbers,cc.DataType.Wrong),A=t.const("indices",(0,Ne._)`{}`);t.for((0,Ne._)`;${m}--;`,()=>{t.let(h,(0,Ne._)`${r}[${m}]`),t.if(w,(0,Ne._)`continue`),l.length>1&&t.if((0,Ne._)`typeof ${h} == "string"`,(0,Ne._)`${h} += "_"`),t.if((0,Ne._)`typeof ${A}[${h}] == "number"`,()=>{t.assign(g,(0,Ne._)`${A}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ne._)`${A}[${h}] = ${m}`)})}function u(m,g){let h=(0,wb.useFunc)(t,Ib.default),w=t.name("outer");t.label(w).for((0,Ne._)`;${m}--;`,()=>t.for((0,Ne._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ne._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};lc.default=bb});var Ou=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var dc=x(),kb=q(),Rb=_a(),Ab={message:"must be equal to constant",params:({schemaCode:e})=>(0,dc._)`{allowedValue: ${e}}`},_b={keyword:"const",$data:!0,error:Ab,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,dc._)`!${(0,kb.useFunc)(t,Rb.default)}(${r}, ${i})`):e.fail((0,dc._)`${a} !== ${r}`)}};pc.default=_b});var Du=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var ai=x(),Eb=q(),Pb=_a(),Nb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ai._)`{allowedValues: ${e}}`},Ob={keyword:"enum",schemaType:"array",$data:!0,error:Nb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:a,it:o}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=o.opts.loopEnum,c,l=()=>c??(c=(0,Eb.useFunc)(t,Pb.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",a);d=(0,ai.or)(...i.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",a,u=>t.if((0,ai._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=i[m];return typeof g=="object"&&g!==null?(0,ai._)`${l()}(${r}, ${u}[${m}])`:(0,ai._)`${r} === ${g}`}}};uc.default=Ob});var Su=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var Db=wu(),Sb=Iu(),jb=ku(),$b=Ru(),Cb=Au(),Tb=_u(),Lb=Eu(),xb=Nu(),Vb=Ou(),Mb=Du(),Fb=[Db.default,Sb.default,jb.default,$b.default,Cb.default,Tb.default,Lb.default,xb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Vb.default,Mb.default];fc.default=Fb});var gc=E(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.validateAdditionalItems=void 0;var Ar=x(),mc=q(),Ub={message:({params:{len:e}})=>(0,Ar.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ar._)`{limit: ${e}}`},qb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Ub,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,mc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}ju(e,n)}};function ju(e,t){let{gen:r,schema:n,data:i,keyword:a,it:o}=e;o.items=!0;let s=r.const("len",(0,Ar._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Ar._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,mc.alwaysValidSchema)(o,n)){let l=r.var("valid",(0,Ar._)`${s} <= ${t.length}`);r.if((0,Ar.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:a,dataProp:d,dataPropType:mc.Type.Num},l),o.allErrors||r.if((0,Ar.not)(l),()=>r.break())})}}oi.validateAdditionalItems=ju;oi.default=qb});var hc=E(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.validateTuple=void 0;var $u=x(),Ea=q(),Bb=at(),zb={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Cu(e,"additionalItems",t);r.items=!0,!(0,Ea.alwaysValidSchema)(r,t)&&e.ok((0,Bb.validateArray)(e))}};function Cu(e,t,r=e.schema){let{gen:n,parentSchema:i,data:a,keyword:o,it:s}=e;d(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=Ea.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,$u._)`${a}.length`);r.forEach((p,f)=>{(0,Ea.alwaysValidSchema)(s,p)||(n.if((0,$u._)`${l} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function d(p){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===p.minItems&&(m===p.maxItems||p[t]===!1);if(f.strictTuples&&!g){let h=`"${o}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,Ea.checkStrictMode)(s,h,f.strictTuples)}}}si.validateTuple=Cu;si.default=zb});var Tu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Jb=hc(),Gb={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Jb.validateTuple)(e,"items")};yc.default=Gb});var xu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Lu=x(),Wb=q(),Kb=at(),Yb=gc(),Hb={message:({params:{len:e}})=>(0,Lu.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Lu._)`{limit: ${e}}`},Xb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Hb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,Wb.alwaysValidSchema)(n,t)&&(i?(0,Yb.validateAdditionalItems)(e,i):e.ok((0,Kb.validateArray)(e)))}};wc.default=Xb});var Vu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var st=x(),Pa=q(),Zb={message:({params:{min:e,max:t}})=>t===void 0?(0,st.str)`must contain at least ${e} valid item(s)`:(0,st.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,st._)`{minContains: ${e}}`:(0,st._)`{minContains: ${e}, maxContains: ${t}}`},Qb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Zb,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e,o,s,{minContains:c,maxContains:l}=n;a.opts.next?(o=c===void 0?1:c,s=l):o=1;let d=t.const("len",(0,st._)`${i}.length`);if(e.setParams({min:o,max:s}),s===void 0&&o===0){(0,Pa.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,Pa.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Pa.alwaysValidSchema)(a,r)){let g=(0,st._)`${d} >= ${o}`;s!==void 0&&(g=(0,st._)`${g} && ${d} <= ${s}`),e.pass(g);return}a.items=!0;let p=t.name("valid");s===void 0&&o===1?u(p,()=>t.if(p,()=>t.break())):o===0?(t.let(p,!0),s!==void 0&&t.if((0,st._)`${i}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),h=t.let("count",0);u(g,()=>t.if(g,()=>m(h)))}function u(g,h){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Pa.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,st._)`${g}++`),s===void 0?t.if((0,st._)`${g} >= ${o}`,()=>t.assign(p,!0).break()):(t.if((0,st._)`${g} > ${s}`,()=>t.assign(p,!1).break()),o===1?t.assign(p,!0):t.if((0,st._)`${g} >= ${o}`,()=>t.assign(p,!0)))}}};Ic.default=Qb});var Na=E(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.validateSchemaDeps=St.validatePropertyDeps=St.error=void 0;var vc=x(),ek=q(),ci=at();St.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,vc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,vc._)`{property: ${e},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${t},
|
|
8
|
-
deps: ${r}}`};var qb={keyword:"dependencies",type:"object",schemaType:"object",error:Nt.error,code(e){let[t,r]=Bb(e);ju(e,t),$u(e,r)}};function Bb({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let o=Array.isArray(e[n])?t:r;o[n]=e[n]}return[t,r]}function ju(e,t=e.schema){let{gen:r,data:n,it:o}=e;if(Object.keys(t).length===0)return;let i=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,oo.propertyInData)(r,n,a,o.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),o.allErrors?r.if(c,()=>{for(let l of s)(0,oo.checkReportMissingProp)(e,l)}):(r.if((0,fc._)`${c} && (${(0,oo.checkMissingProp)(e,s,i)})`),(0,oo.reportMissingProp)(e,i),r.else())}}Nt.validatePropertyDeps=ju;function $u(e,t=e.schema){let{gen:r,data:n,keyword:o,it:i}=e,a=r.name("valid");for(let s in t)(0,Fb.alwaysValidSchema)(i,t[s])||(r.if((0,oo.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}Nt.validateSchemaDeps=$u;Nt.default=qb});var Tu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Cu=x(),zb=q(),Jb={message:"property name must be valid",params:({params:e})=>(0,Cu._)`{propertyName: ${e.propertyName}}`},Gb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Jb,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,zb.alwaysValidSchema)(o,r))return;let i=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,Cu.not)(i),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(i)}};mc.default=Gb});var hc=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Ri=it(),yt=x(),Wb=ot(),_i=q(),Kb={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},Yb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Kb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,_i.alwaysValidSchema)(a,r))return;let l=(0,Ri.allSchemaProperties)(n.properties),d=(0,Ri.allSchemaProperties)(n.patternProperties);p(),e.ok((0,yt._)`${i} === ${Wb.default.errors}`);function p(){t.forIn("key",o,h=>{!l.length&&!d.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(l.length>8){let _=(0,_i.schemaRefOrVal)(a,n.properties,"properties");w=(0,Ri.isOwnProperty)(t,_,h)}else l.length?w=(0,yt.or)(...l.map(_=>(0,yt._)`${h} === ${_}`)):w=yt.nil;return d.length&&(w=(0,yt.or)(w,...d.map(_=>(0,yt._)`${(0,Ri.usePattern)(e,_)}.test(${h})`))),(0,yt.not)(w)}function u(h){t.code((0,yt._)`delete ${o}[${h}]`)}function m(h){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(h);return}if(r===!1){e.setParams({additionalProperty:h}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,_i.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,yt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,yt.not)(w),()=>t.break()))}}function g(h,w,_){let b={keyword:"additionalProperties",dataProp:h,dataPropType:_i.Type.Str};_===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};gc.default=Yb});var Vu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Hb=Bn(),Lu=it(),yc=q(),xu=hc(),Xb={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&xu.default.code(new Hb.KeywordCxt(i,xu.default,"additionalProperties"));let a=(0,Lu.allSchemaProperties)(r);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=yc.mergeEvaluated.props(t,(0,yc.toHash)(a),i.props));let s=a.filter(p=>!(0,yc.alwaysValidSchema)(i,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,Lu.propertyInData)(t,o,p,i.opts.ownProperties)),d(p),i.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};wc.default=Xb});var qu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Mu=it(),Ai=x(),Uu=q(),Fu=q(),Zb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:i}=e,{opts:a}=i,s=(0,Mu.allSchemaProperties)(r),c=s.filter(g=>(0,Uu.alwaysValidSchema)(i,r[g]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&o.properties,d=t.name("valid");i.props!==!0&&!(i.props instanceof Ai.Name)&&(i.props=(0,Fu.evaluatedPropsToName)(t,i.props));let{props:p}=i;f();function f(){for(let g of s)l&&u(g),i.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let h in l)new RegExp(g).test(h)&&(0,Uu.checkStrictMode)(i,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,Ai._)`${(0,Mu.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Fu.Type.Str},d),i.opts.unevaluated&&p!==!0?t.assign((0,Ai._)`${p}[${h}]`,!0):!w&&!i.allErrors&&t.if((0,Ai.not)(d),()=>t.break())})})}}};Ic.default=Zb});var Bu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Qb=q(),ek={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Qb.alwaysValidSchema)(n,r)){e.fail();return}let o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};vc.default=ek});var zu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var tk=it(),rk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:tk.validateUnion,error:{message:"must match a schema in anyOf"}};bc.default=rk});var Ju=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Ei=x(),nk=q(),ok={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ei._)`{passingSchemas: ${e.passing}}`},ik={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ok,code(e){let{gen:t,schema:r,parentSchema:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(a,()=>e.reset(),()=>e.error(!0));function l(){i.forEach((d,p)=>{let f;(0,nk.alwaysValidSchema)(o,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Ei._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Ei._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Ei.Name)})})}}};kc.default=ik});var Gu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ak=q(),sk={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=t.name("valid");r.forEach((i,a)=>{if((0,ak.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)})}};Rc.default=sk});var Yu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var Pi=x(),Ku=q(),ck={message:({params:e})=>(0,Pi.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Pi._)`{failingKeyword: ${e.ifClause}}`},lk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ck,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Ku.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=Wu(n,"then"),i=Wu(n,"else");if(!o&&!i)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&i){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else o?t.if(s,l("then")):t.if((0,Pi.not)(s),l("else"));e.pass(a,()=>e.error(!0));function c(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function l(d,p){return()=>{let f=e.subschema({keyword:d},s);t.assign(a,s),e.mergeValidEvaluated(f,a),p?t.assign(p,(0,Pi._)`${d}`):e.setParams({ifClause:d})}}}};function Wu(e,t){let r=e.schema[t];return r!==void 0&&!(0,Ku.alwaysValidSchema)(e,r)}_c.default=lk});var Hu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var dk=q(),pk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,dk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Ac.default=pk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var uk=cc(),fk=Nu(),mk=lc(),gk=Su(),hk=Du(),yk=ki(),wk=Tu(),Ik=hc(),vk=Vu(),bk=qu(),kk=Bu(),Rk=zu(),_k=Ju(),Ak=Gu(),Ek=Yu(),Pk=Hu();function Nk(e=!1){let t=[kk.default,Rk.default,_k.default,Ak.default,Ek.default,Pk.default,wk.default,Ik.default,yk.default,vk.default,bk.default];return e?t.push(fk.default,gk.default):t.push(uk.default,mk.default),t.push(hk.default),t}Ec.default=Nk});var Nc=E(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.dynamicAnchor=void 0;var Pc=x(),Ok=ot(),Zu=Jn(),Sk=hi(),Dk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Qu(e,e.schema)};function Qu(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let o=(0,Pc._)`${Ok.default.dynamicAnchors}${(0,Pc.getProperty)(t)}`,i=n.errSchemaPath==="#"?n.validateName:jk(e);r.if((0,Pc._)`!${o}`,()=>r.assign(o,i))}io.dynamicAnchor=Qu;function jk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:o,baseId:i,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,l=new Zu.SchemaEnv({schema:r,schemaId:c,root:o,baseId:i,localRefs:a,meta:s});return Zu.compileSchema.call(n,l),(0,Sk.getValidate)(e,l)}io.default=Dk});var Oc=E(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.dynamicRef=void 0;var ef=x(),$k=ot(),tf=hi(),Ck={keyword:"$dynamicRef",schemaType:"string",code:e=>rf(e,e.schema)};function rf(e,t){let{gen:r,keyword:n,it:o}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let i=t.slice(1);if(o.allErrors)a();else{let c=r.let("valid",!1);a(c),e.ok(c)}function a(c){if(o.schemaEnv.root.dynamicAnchors[i]){let l=r.let("_v",(0,ef._)`${$k.default.dynamicAnchors}${(0,ef.getProperty)(i)}`);r.if(l,s(l,c),s(o.validateName,c))}else s(o.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,tf.callRef)(e,c),r.let(l,!0)}):()=>(0,tf.callRef)(e,c)}}ao.dynamicRef=rf;ao.default=Ck});var nf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var Tk=Nc(),Lk=q(),xk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,Tk.dynamicAnchor)(e,""):(0,Lk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Sc.default=xk});var of=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var Vk=Oc(),Mk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,Vk.dynamicRef)(e,e.schema)};Dc.default=Mk});var af=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var Uk=Nc(),Fk=Oc(),qk=nf(),Bk=of(),zk=[Uk.default,Fk.default,qk.default,Bk.default];jc.default=zk});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var sf=ki(),Jk={keyword:"dependentRequired",type:"object",schemaType:"object",error:sf.error,code:e=>(0,sf.validatePropertyDeps)(e)};$c.default=Jk});var lf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var Gk=ki(),Wk={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,Gk.validateSchemaDeps)(e)};Cc.default=Wk});var df=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Kk=q(),Yk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Kk.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Tc.default=Yk});var pf=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var Hk=cf(),Xk=lf(),Zk=df(),Qk=[Hk.default,Xk.default,Zk.default];Lc.default=Qk});var ff=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var er=x(),uf=q(),eR=ot(),tR={message:"must NOT have unevaluated properties",params:({params:e})=>(0,er._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},rR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:tR,code(e){let{gen:t,schema:r,data:n,errsCount:o,it:i}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:a,props:s}=i;s instanceof er.Name?t.if((0,er._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),i.props=!0,e.ok((0,er._)`${o} === ${eR.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,uf.alwaysValidSchema)(i,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:uf.Type.Str},f),a||t.if((0,er.not)(f),()=>t.break())}}function l(p,f){return(0,er._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,er._)`${f} !== ${m}`);return(0,er.and)(...u)}}};xc.default=rR});var gf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var Rr=x(),mf=q(),nR={message:({params:{len:e}})=>(0,Rr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Rr._)`{limit: ${e}}`},oR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:nR,code(e){let{gen:t,schema:r,data:n,it:o}=e,i=o.items||0;if(i===!0)return;let a=t.const("len",(0,Rr._)`${n}.length`);if(r===!1)e.setParams({len:i}),e.fail((0,Rr._)`${a} > ${i}`);else if(typeof r=="object"&&!(0,mf.alwaysValidSchema)(o,r)){let c=t.var("valid",(0,Rr._)`${a} <= ${i}`);t.if((0,Rr.not)(c),()=>s(c,i)),e.ok(c)}o.items=!0;function s(c,l){t.forRange("i",l,a,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:mf.Type.Num},c),o.allErrors||t.if((0,Rr.not)(c),()=>t.break())})}}};Vc.default=oR});var hf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var iR=ff(),aR=gf(),sR=[iR.default,aR.default];Mc.default=sR});var yf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var we=x(),cR={message:({schemaCode:e})=>(0,we.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,we._)`{format: ${e}}`},lR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:cR,code(e,t){let{gen:r,data:n,$data:o,schema:i,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;o?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,we._)`${m}[${a}]`),h=r.let("fType"),w=r.let("format");r.if((0,we._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,we._)`${g}.type || "string"`).assign(w,(0,we._)`${g}.validate`),()=>r.assign(h,(0,we._)`"string"`).assign(w,g)),e.fail$data((0,we.or)(_(),b()));function _(){return c.strictSchema===!1?we.nil:(0,we._)`${a} && !${w}`}function b(){let A=d.$async?(0,we._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,we._)`${w}(${n})`,I=(0,we._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,we._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[i];if(!m){_();return}if(m===!0)return;let[g,h,w]=b(m);g===t&&e.pass(A());function _(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(I){let R=I instanceof RegExp?(0,we.regexpCode)(I):c.code.formats?(0,we._)`${c.code.formats}${(0,we.getProperty)(i)}`:void 0,S=r.scopeValue("formats",{key:i,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,we._)`${S}.validate`]:["string",I,S]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,we._)`await ${w}(${n})`}return typeof h=="function"?(0,we._)`${w}(${n})`:(0,we._)`${w}.test(${n})`}}}};Uc.default=lR});var wf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var dR=yf(),pR=[dR.default];Fc.default=pR});var If=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.contentVocabulary=sn.metadataVocabulary=void 0;sn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];sn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var bf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var uR=du(),fR=_u(),mR=Xu(),gR=af(),hR=pf(),yR=hf(),wR=wf(),vf=If(),IR=[gR.default,uR.default,fR.default,(0,mR.default)(!0),wR.default,vf.metadataVocabulary,vf.contentVocabulary,hR.default,yR.default];qc.default=IR});var Rf=E(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.DiscrError=void 0;var kf;(function(e){e.Tag="tag",e.Mapping="mapping"})(kf||(Ni.DiscrError=kf={}))});var Af=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var cn=x(),Bc=Rf(),_f=Jn(),vR=zn(),bR=q(),kR={message:({params:{discrError:e,tagName:t}})=>e===Bc.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,cn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},RR={keyword:"discriminator",type:"object",schemaType:"object",error:kR,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:i}=e,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,cn._)`${r}${(0,cn.getProperty)(s)}`);t.if((0,cn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:Bc.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,cn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:Bc.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,cn.Name),m}function f(){var u;let m={},g=w(o),h=!0;for(let A=0;A<a.length;A++){let I=a[A];if(I?.$ref&&!(0,bR.schemaHasRulesButRef)(I,i.self.RULES)){let S=I.$ref;if(I=_f.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,S),I instanceof _f.SchemaEnv&&(I=I.schema),I===void 0)throw new vR.default(i.opts.uriResolver,i.baseId,S)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),_(R,A)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:A}){return Array.isArray(A)&&A.includes(s)}function _(A,I){if(A.const)b(A.const,I);else if(A.enum)for(let R of A.enum)b(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};zc.default=RR});var Ef=E((EO,_R)=>{_R.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var Pf=E((PO,AR)=>{AR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var Nf=E((NO,ER)=>{ER.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var Of=E((OO,PR)=>{PR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var Sf=E((SO,NR)=>{NR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var Df=E((DO,OR)=>{OR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var jf=E((jO,SR)=>{SR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var $f=E(($O,DR)=>{DR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var Cf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var jR=Ef(),$R=Pf(),CR=Nf(),TR=Of(),LR=Sf(),xR=Df(),VR=jf(),MR=$f(),UR=["/properties"];function FR(e){return[jR,$R,CR,TR,LR,t(this,xR),VR,t(this,MR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,UR):n}}Jc.default=FR});var _r=E((pe,Wc)=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv2020=void 0;var qR=iu(),BR=bf(),zR=Af(),JR=Cf(),Gc="https://json-schema.org/draft/2020-12/schema",ln=class extends qR.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),BR.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(zR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(JR.default.call(this,t),this.refs["http://json-schema.org/schema"]=Gc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Gc)?Gc:void 0)}};pe.Ajv2020=ln;Wc.exports=pe=ln;Wc.exports.Ajv2020=ln;Object.defineProperty(pe,"__esModule",{value:!0});pe.default=ln;var GR=Bn();Object.defineProperty(pe,"KeywordCxt",{enumerable:!0,get:function(){return GR.KeywordCxt}});var dn=x();Object.defineProperty(pe,"_",{enumerable:!0,get:function(){return dn._}});Object.defineProperty(pe,"str",{enumerable:!0,get:function(){return dn.str}});Object.defineProperty(pe,"stringify",{enumerable:!0,get:function(){return dn.stringify}});Object.defineProperty(pe,"nil",{enumerable:!0,get:function(){return dn.nil}});Object.defineProperty(pe,"Name",{enumerable:!0,get:function(){return dn.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:!0,get:function(){return dn.CodeGen}});var WR=ai();Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return WR.default}});var KR=zn();Object.defineProperty(pe,"MissingRefError",{enumerable:!0,get:function(){return KR.default}})});import je from"node:process";import jt from"node:path";import{spawnSync as Q0}from"node:child_process";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",At="^sha256:[a-f0-9]{64}$";import{constants as Wi}from"node:fs";import{lstat as __,mkdir as In,open as Xf,readFile as go,realpath as Dr,rename as A_,unlink as dl}from"node:fs/promises";import{randomUUID as pl}from"node:crypto";import Re from"node:path";var Tf=Kr(_r(),1);var Pe={type:"string",pattern:At},YR={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Kc={type:"string",format:"date-time"},Yc={enum:["typescript.typecheck","vitest.run","typescript.build","npm.pack-dry-run","workspace.structure","capability.assets","node.application-smoke","web.application-build","web.application-smoke","expo.application-config","expo.application-export","react.library-build","next.application-test","next.application-build","next.application-package","next.application-smoke","application.config-contract"]},Lf={type:"object",additionalProperties:!1,required:["node","pnpm","typescript"],properties:{node:{type:"string",minLength:1,maxLength:64},pnpm:{type:"string",minLength:1,maxLength:64},typescript:{type:"string",minLength:1,maxLength:64}}},Hc={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","consumerProfile","compatibility","assets","verifiers","exit"],properties:{schemaVersion:{const:1},capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Pe,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:Z}}}},compatibility:Lf,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:Pe,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:Z},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:Yc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},xf={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:Pe,deliveryReceiptId:Pe,usage:{enum:["runtime","development"]}}},{$id:LO,...Vf}=Hc,HR={...Vf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Hc.required,"availability","packageSources"],properties:{...Hc.properties,schemaVersion:{const:2},availability:{oneOf:[{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"local-artifact"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"development-registry"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"available"},visibility:{const:"catalog-consumers"},sourceState:{const:"registry-verified"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","reasonCode"],properties:{maturity:{const:"withdrawn"},visibility:{const:"existing-locks-only"},reasonCode:{type:"string",pattern:"^[A-Z][A-Z0-9_]{2,63}$"}}}]},packageSources:{type:"array",maxItems:128,items:xf}}},XR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Vf,(()=>{let{$id:e,...t}=HR;return t})()]},Oi={$id:"https://schemas.dyyto.dev/platform/verification-result-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","verifierId","result","issuer","commandId","exitCode","stdoutDigest","stderrDigest","startedAt","completedAt","projectStateDigest","runtime"],properties:{schemaVersion:{const:1},verifierId:Yc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Yc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Pe,stderrDigest:Pe,startedAt:Kc,completedAt:Kc,projectStateDigest:Pe,runtime:Lf}},ZR={...Oi,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Oi.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Oi.properties,evidenceId:Pe,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Pe}},QR={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Pe,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Pe,projectStateDigest:Pe,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Pe,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:Z}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Pe},committedAt:Kc,packageAdoption:{type:"object",additionalProperties:!1,required:["registryRevisions","sources","packageJsonDigest","lockfileDigest"],properties:{sourceChannel:{enum:["production","development"]},registryRevisions:{type:"array",items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:YR,revision:Pe}}},sources:{type:"array",minItems:1,maxItems:128,items:xf},packageJsonDigest:Pe,lockfileDigest:Pe}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},so=new Tf.Ajv2020({allErrors:!0,strict:!0});so.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Di={capabilityBundleRelease:so.compile(XR),verificationResult:so.compile(Oi),adoptionEvidence:so.compile(ZR),projectAdoptionLock:so.compile(QR)},Si=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ji(e,t,r){if(!t(r))throw new Si(e,t.errors??[]);return r}var Mf=e=>{let t=ji("capabilityBundleRelease",Di.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Si("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let o="",i=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(o)<=0||i.has(c))&&r(),o=c,i.add(c)}let a=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(a.length!==n.length||a.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},Uf=e=>ji("verificationResult",Di.verificationResult,e),co=e=>ji("adoptionEvidence",Di.adoptionEvidence,e),qe=e=>ji("projectAdoptionLock",Di.projectAdoptionLock,e);import{lstat as c_,readFile as el,realpath as tl}from"node:fs/promises";import un from"node:path";import{createHash as e_}from"node:crypto";function y(e){return`sha256:${e_("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var Ot=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Ff(e){if(!new RegExp(Z).test(e))throw new Ot("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function $i(e,t){if(e.includes("\r"))throw new Ot("Managed regions require LF newlines");let{begin:r,end:n}=Ff(t),o=e.split(r).length-1,i=e.split(n).length-1;if(o!==1||i!==1)throw new Ot("Managed region markers are unavailable or ambiguous");let a=e.indexOf(r)+r.length,s=e.indexOf(n,a),c=e.slice(a,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ot("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function
|
|
10
|
-
${
|
|
8
|
+
deps: ${r}}`};var tk={keyword:"dependencies",type:"object",schemaType:"object",error:St.error,code(e){let[t,r]=rk(e);Mu(e,t),Fu(e,r)}};function rk({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function Mu(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let o in t){let s=t[o];if(s.length===0)continue;let c=(0,ci.propertyInData)(r,n,o,i.opts.ownProperties);e.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let l of s)(0,ci.checkReportMissingProp)(e,l)}):(r.if((0,vc._)`${c} && (${(0,ci.checkMissingProp)(e,s,a)})`),(0,ci.reportMissingProp)(e,a),r.else())}}St.validatePropertyDeps=Mu;function Fu(e,t=e.schema){let{gen:r,data:n,keyword:i,it:a}=e,o=r.name("valid");for(let s in t)(0,ek.alwaysValidSchema)(a,t[s])||(r.if((0,ci.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},o);e.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),e.ok(o))}St.validateSchemaDeps=Fu;St.default=tk});var qu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var Uu=x(),nk=q(),ik={message:"property name must be valid",params:({params:e})=>(0,Uu._)`{propertyName: ${e.propertyName}}`},ak={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:ik,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,nk.alwaysValidSchema)(i,r))return;let a=t.name("valid");t.forIn("key",n,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},a),t.if((0,Uu.not)(a),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(a)}};bc.default=ak});var Rc=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Oa=at(),wt=x(),ok=it(),Da=q(),sk={message:"must NOT have additional properties",params:({params:e})=>(0,wt._)`{additionalProperty: ${e.additionalProperty}}`},ck={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:sk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:a,it:o}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,Da.alwaysValidSchema)(o,r))return;let l=(0,Oa.allSchemaProperties)(n.properties),d=(0,Oa.allSchemaProperties)(n.patternProperties);p(),e.ok((0,wt._)`${a} === ${ok.default.errors}`);function p(){t.forIn("key",i,h=>{!l.length&&!d.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(l.length>8){let A=(0,Da.schemaRefOrVal)(o,n.properties,"properties");w=(0,Oa.isOwnProperty)(t,A,h)}else l.length?w=(0,wt.or)(...l.map(A=>(0,wt._)`${h} === ${A}`)):w=wt.nil;return d.length&&(w=(0,wt.or)(w,...d.map(A=>(0,wt._)`${(0,Oa.usePattern)(e,A)}.test(${h})`))),(0,wt.not)(w)}function u(h){t.code((0,wt._)`delete ${i}[${h}]`)}function m(h){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(h);return}if(r===!1){e.setParams({additionalProperty:h}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Da.alwaysValidSchema)(o,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,wt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,wt.not)(w),()=>t.break()))}}function g(h,w,A){let b={keyword:"additionalProperties",dataProp:h,dataPropType:Da.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};kc.default=ck});var Ju=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var lk=Wn(),Bu=at(),Ac=q(),zu=Rc(),dk={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&zu.default.code(new lk.KeywordCxt(a,zu.default,"additionalProperties"));let o=(0,Bu.allSchemaProperties)(r);for(let p of o)a.definedProperties.add(p);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=Ac.mergeEvaluated.props(t,(0,Ac.toHash)(o),a.props));let s=o.filter(p=>!(0,Ac.alwaysValidSchema)(a,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,Bu.propertyInData)(t,i,p,a.opts.ownProperties)),d(p),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return a.opts.useDefaults&&!a.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};_c.default=dk});var Yu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var Gu=at(),Sa=x(),Wu=q(),Ku=q(),pk={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:a}=e,{opts:o}=a,s=(0,Gu.allSchemaProperties)(r),c=s.filter(g=>(0,Wu.alwaysValidSchema)(a,r[g]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let l=o.strictSchema&&!o.allowMatchingProperties&&i.properties,d=t.name("valid");a.props!==!0&&!(a.props instanceof Sa.Name)&&(a.props=(0,Ku.evaluatedPropsToName)(t,a.props));let{props:p}=a;f();function f(){for(let g of s)l&&u(g),a.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let h in l)new RegExp(g).test(h)&&(0,Wu.checkStrictMode)(a,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,Sa._)`${(0,Gu.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Ku.Type.Str},d),a.opts.unevaluated&&p!==!0?t.assign((0,Sa._)`${p}[${h}]`,!0):!w&&!a.allErrors&&t.if((0,Sa.not)(d),()=>t.break())})})}}};Ec.default=pk});var Hu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var uk=q(),fk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,uk.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Pc.default=fk});var Xu=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var mk=at(),gk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:mk.validateUnion,error:{message:"must match a schema in anyOf"}};Nc.default=gk});var Zu=E(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var ja=x(),hk=q(),yk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,ja._)`{passingSchemas: ${e.passing}}`},wk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:yk,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let a=r,o=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(o,()=>e.reset(),()=>e.error(!0));function l(){a.forEach((d,p)=>{let f;(0,hk.alwaysValidSchema)(i,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,ja._)`${c} && ${o}`).assign(o,!1).assign(s,(0,ja._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(s,p),f&&e.mergeEvaluated(f,ja.Name)})})}}};Oc.default=wk});var Qu=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var Ik=q(),vk={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=t.name("valid");r.forEach((a,o)=>{if((0,Ik.alwaysValidSchema)(n,a))return;let s=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(s)})}};Dc.default=vk});var rf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var $a=x(),tf=q(),bk={message:({params:e})=>(0,$a.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,$a._)`{failingKeyword: ${e.ifClause}}`},kk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:bk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,tf.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=ef(n,"then"),a=ef(n,"else");if(!i&&!a)return;let o=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&a){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else i?t.if(s,l("then")):t.if((0,$a.not)(s),l("else"));e.pass(o,()=>e.error(!0));function c(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function l(d,p){return()=>{let f=e.subschema({keyword:d},s);t.assign(o,s),e.mergeValidEvaluated(f,o),p?t.assign(p,(0,$a._)`${d}`):e.setParams({ifClause:d})}}}};function ef(e,t){let r=e.schema[t];return r!==void 0&&!(0,tf.alwaysValidSchema)(e,r)}Sc.default=kk});var nf=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var Rk=q(),Ak={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Rk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};jc.default=Ak});var af=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var _k=gc(),Ek=Tu(),Pk=hc(),Nk=xu(),Ok=Vu(),Dk=Na(),Sk=qu(),jk=Rc(),$k=Ju(),Ck=Yu(),Tk=Hu(),Lk=Xu(),xk=Zu(),Vk=Qu(),Mk=rf(),Fk=nf();function Uk(e=!1){let t=[Tk.default,Lk.default,xk.default,Vk.default,Mk.default,Fk.default,Sk.default,jk.default,Dk.default,$k.default,Ck.default];return e?t.push(Ek.default,Nk.default):t.push(_k.default,Pk.default),t.push(Ok.default),t}$c.default=Uk});var Tc=E(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.dynamicAnchor=void 0;var Cc=x(),qk=it(),of=Yn(),Bk=ka(),zk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>sf(e,e.schema)};function sf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Cc._)`${qk.default.dynamicAnchors}${(0,Cc.getProperty)(t)}`,a=n.errSchemaPath==="#"?n.validateName:Jk(e);r.if((0,Cc._)`!${i}`,()=>r.assign(i,a))}li.dynamicAnchor=sf;function Jk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:a,localRefs:o,meta:s}=t.root,{schemaId:c}=n.opts,l=new of.SchemaEnv({schema:r,schemaId:c,root:i,baseId:a,localRefs:o,meta:s});return of.compileSchema.call(n,l),(0,Bk.getValidate)(e,l)}li.default=zk});var Lc=E(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.dynamicRef=void 0;var cf=x(),Gk=it(),lf=ka(),Wk={keyword:"$dynamicRef",schemaType:"string",code:e=>df(e,e.schema)};function df(e,t){let{gen:r,keyword:n,it:i}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let a=t.slice(1);if(i.allErrors)o();else{let c=r.let("valid",!1);o(c),e.ok(c)}function o(c){if(i.schemaEnv.root.dynamicAnchors[a]){let l=r.let("_v",(0,cf._)`${Gk.default.dynamicAnchors}${(0,cf.getProperty)(a)}`);r.if(l,s(l,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,lf.callRef)(e,c),r.let(l,!0)}):()=>(0,lf.callRef)(e,c)}}di.dynamicRef=df;di.default=Wk});var pf=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var Kk=Tc(),Yk=q(),Hk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,Kk.dynamicAnchor)(e,""):(0,Yk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};xc.default=Hk});var uf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var Xk=Lc(),Zk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,Xk.dynamicRef)(e,e.schema)};Vc.default=Zk});var ff=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var Qk=Tc(),eR=Lc(),tR=pf(),rR=uf(),nR=[Qk.default,eR.default,tR.default,rR.default];Mc.default=nR});var gf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var mf=Na(),iR={keyword:"dependentRequired",type:"object",schemaType:"object",error:mf.error,code:e=>(0,mf.validatePropertyDeps)(e)};Fc.default=iR});var hf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var aR=Na(),oR={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,aR.validateSchemaDeps)(e)};Uc.default=oR});var yf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var sR=q(),cR={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,sR.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};qc.default=cR});var wf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var lR=gf(),dR=hf(),pR=yf(),uR=[lR.default,dR.default,pR.default];Bc.default=uR});var vf=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var rr=x(),If=q(),fR=it(),mR={message:"must NOT have unevaluated properties",params:({params:e})=>(0,rr._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},gR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:mR,code(e){let{gen:t,schema:r,data:n,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:o,props:s}=a;s instanceof rr.Name?t.if((0,rr._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),a.props=!0,e.ok((0,rr._)`${i} === ${fR.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),o||t.break();return}if(!(0,If.alwaysValidSchema)(a,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:If.Type.Str},f),o||t.if((0,rr.not)(f),()=>t.break())}}function l(p,f){return(0,rr._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,rr._)`${f} !== ${m}`);return(0,rr.and)(...u)}}};zc.default=gR});var kf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var _r=x(),bf=q(),hR={message:({params:{len:e}})=>(0,_r.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,_r._)`{limit: ${e}}`},yR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:hR,code(e){let{gen:t,schema:r,data:n,it:i}=e,a=i.items||0;if(a===!0)return;let o=t.const("len",(0,_r._)`${n}.length`);if(r===!1)e.setParams({len:a}),e.fail((0,_r._)`${o} > ${a}`);else if(typeof r=="object"&&!(0,bf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,_r._)`${o} <= ${a}`);t.if((0,_r.not)(c),()=>s(c,a)),e.ok(c)}i.items=!0;function s(c,l){t.forRange("i",l,o,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:bf.Type.Num},c),i.allErrors||t.if((0,_r.not)(c),()=>t.break())})}}};Jc.default=yR});var Rf=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var wR=vf(),IR=kf(),vR=[wR.default,IR.default];Gc.default=vR});var Af=E(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var Ie=x(),bR={message:({schemaCode:e})=>(0,Ie.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Ie._)`{format: ${e}}`},kR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:bR,code(e,t){let{gen:r,data:n,$data:i,schema:a,schemaCode:o,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;i?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,Ie._)`${m}[${o}]`),h=r.let("fType"),w=r.let("format");r.if((0,Ie._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,Ie._)`${g}.type || "string"`).assign(w,(0,Ie._)`${g}.validate`),()=>r.assign(h,(0,Ie._)`"string"`).assign(w,g)),e.fail$data((0,Ie.or)(A(),b()));function A(){return c.strictSchema===!1?Ie.nil:(0,Ie._)`${o} && !${w}`}function b(){let _=d.$async?(0,Ie._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,Ie._)`${w}(${n})`,I=(0,Ie._)`(typeof ${w} == "function" ? ${_} : ${w}.test(${n}))`;return(0,Ie._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[a];if(!m){A();return}if(m===!0)return;let[g,h,w]=b(m);g===t&&e.pass(_());function A(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${a}" ignored in schema at path "${l}"`}}function b(I){let R=I instanceof RegExp?(0,Ie.regexpCode)(I):c.code.formats?(0,Ie._)`${c.code.formats}${(0,Ie.getProperty)(a)}`:void 0,N=r.scopeValue("formats",{key:a,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,Ie._)`${N}.validate`]:["string",I,N]}function _(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,Ie._)`await ${w}(${n})`}return typeof h=="function"?(0,Ie._)`${w}(${n})`:(0,Ie._)`${w}.test(${n})`}}}};Wc.default=kR});var _f=E(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});var RR=Af(),AR=[RR.default];Kc.default=AR});var Ef=E(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.contentVocabulary=ln.metadataVocabulary=void 0;ln.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ln.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Nf=E(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});var _R=yu(),ER=Su(),PR=af(),NR=ff(),OR=wf(),DR=Rf(),SR=_f(),Pf=Ef(),jR=[NR.default,_R.default,ER.default,(0,PR.default)(!0),SR.default,Pf.metadataVocabulary,Pf.contentVocabulary,OR.default,DR.default];Yc.default=jR});var Df=E(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.DiscrError=void 0;var Of;(function(e){e.Tag="tag",e.Mapping="mapping"})(Of||(Ca.DiscrError=Of={}))});var jf=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var dn=x(),Hc=Df(),Sf=Yn(),$R=Kn(),CR=q(),TR={message:({params:{discrError:e,tagName:t}})=>e===Hc.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,dn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},LR={keyword:"discriminator",type:"object",schemaType:"object",error:TR,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:a}=e,{oneOf:o}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="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=t.let("valid",!1),l=t.const("tag",(0,dn._)`${r}${(0,dn.getProperty)(s)}`);t.if((0,dn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:Hc.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,dn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:Hc.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,dn.Name),m}function f(){var u;let m={},g=w(i),h=!0;for(let _=0;_<o.length;_++){let I=o[_];if(I?.$ref&&!(0,CR.schemaHasRulesButRef)(I,a.self.RULES)){let N=I.$ref;if(I=Sf.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,N),I instanceof Sf.SchemaEnv&&(I=I.schema),I===void 0)throw new $R.default(a.opts.uriResolver,a.baseId,N)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),A(R,_)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:_}){return Array.isArray(_)&&_.includes(s)}function A(_,I){if(_.const)b(_.const,I);else if(_.enum)for(let R of _.enum)b(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(_,I){if(typeof _!="string"||_ in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[_]=I}}}};Xc.default=LR});var $f=E((HO,xR)=>{xR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var Cf=E((XO,VR)=>{VR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var Tf=E((ZO,MR)=>{MR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var Lf=E((QO,FR)=>{FR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var xf=E((eD,UR)=>{UR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var Vf=E((tD,qR)=>{qR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var Mf=E((rD,BR)=>{BR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var Ff=E((nD,zR)=>{zR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var Uf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var JR=$f(),GR=Cf(),WR=Tf(),KR=Lf(),YR=xf(),HR=Vf(),XR=Mf(),ZR=Ff(),QR=["/properties"];function eA(e){return[JR,GR,WR,KR,YR,t(this,HR),XR,t(this,ZR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,QR):n}}Zc.default=eA});var Er=E((fe,el)=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.MissingRefError=fe.ValidationError=fe.CodeGen=fe.Name=fe.nil=fe.stringify=fe.str=fe._=fe.KeywordCxt=fe.Ajv2020=void 0;var tA=uu(),rA=Nf(),nA=jf(),iA=Uf(),Qc="https://json-schema.org/draft/2020-12/schema",pn=class extends tA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),rA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(nA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(iA.default.call(this,t),this.refs["http://json-schema.org/schema"]=Qc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Qc)?Qc:void 0)}};fe.Ajv2020=pn;el.exports=fe=pn;el.exports.Ajv2020=pn;Object.defineProperty(fe,"__esModule",{value:!0});fe.default=pn;var aA=Wn();Object.defineProperty(fe,"KeywordCxt",{enumerable:!0,get:function(){return aA.KeywordCxt}});var un=x();Object.defineProperty(fe,"_",{enumerable:!0,get:function(){return un._}});Object.defineProperty(fe,"str",{enumerable:!0,get:function(){return un.str}});Object.defineProperty(fe,"stringify",{enumerable:!0,get:function(){return un.stringify}});Object.defineProperty(fe,"nil",{enumerable:!0,get:function(){return un.nil}});Object.defineProperty(fe,"Name",{enumerable:!0,get:function(){return un.Name}});Object.defineProperty(fe,"CodeGen",{enumerable:!0,get:function(){return un.CodeGen}});var oA=ua();Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return oA.default}});var sA=Kn();Object.defineProperty(fe,"MissingRefError",{enumerable:!0,get:function(){return sA.default}})});import Re from"node:process";import Pt from"node:path";import{spawnSync as RN}from"node:child_process";var ee="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Nt="^sha256:[a-f0-9]{64}$";import{constants as Qa}from"node:fs";import{lstat as xA,mkdir as bn,open as im,readFile as wi,realpath as $r,rename as VA,unlink as yl}from"node:fs/promises";import{randomUUID as wl}from"node:crypto";import _e from"node:path";var qf=Hr(Er(),1);var Oe={type:"string",pattern:Nt},cA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},tl={type:"string",format:"date-time"},rl={enum:["typescript.typecheck","vitest.run","typescript.build","npm.pack-dry-run","workspace.structure","capability.assets","node.application-smoke","web.application-build","web.application-smoke","expo.application-config","expo.application-export","react.library-build","next.application-test","next.application-build","next.application-package","next.application-smoke","application.config-contract"]},Bf={type:"object",additionalProperties:!1,required:["node","pnpm","typescript"],properties:{node:{type:"string",minLength:1,maxLength:64},pnpm:{type:"string",minLength:1,maxLength:64},typescript:{type:"string",minLength:1,maxLength:64}}},nl={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","consumerProfile","compatibility","assets","verifiers","exit"],properties:{schemaVersion:{const:1},capabilityId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128},integrity:Oe,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:ee}}}},compatibility:Bf,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:Oe,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:ee},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:ee}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:rl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},zf={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:Oe,deliveryReceiptId:Oe,usage:{enum:["runtime","development"]}}},{$id:oD,...Jf}=nl,lA={...Jf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...nl.required,"availability","packageSources"],properties:{...nl.properties,schemaVersion:{const:2},availability:{oneOf:[{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"local-artifact"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"development-registry"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"available"},visibility:{const:"catalog-consumers"},sourceState:{const:"registry-verified"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","reasonCode"],properties:{maturity:{const:"withdrawn"},visibility:{const:"existing-locks-only"},reasonCode:{type:"string",pattern:"^[A-Z][A-Z0-9_]{2,63}$"}}}]},packageSources:{type:"array",maxItems:128,items:zf}}},dA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Jf,(()=>{let{$id:e,...t}=lA;return t})()]},Ta={$id:"https://schemas.dyyto.dev/platform/verification-result-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","verifierId","result","issuer","commandId","exitCode","stdoutDigest","stderrDigest","startedAt","completedAt","projectStateDigest","runtime"],properties:{schemaVersion:{const:1},verifierId:rl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:rl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Oe,stderrDigest:Oe,startedAt:tl,completedAt:tl,projectStateDigest:Oe,runtime:Bf}},pA={...Ta,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Ta.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Ta.properties,evidenceId:Oe,capabilityId:{type:"string",pattern:ee},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Oe}},uA={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128},integrity:Oe,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Oe,projectStateDigest:Oe,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Oe,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:ee}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:ee}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Oe},committedAt:tl,packageAdoption:{type:"object",additionalProperties:!1,required:["registryRevisions","sources","packageJsonDigest","lockfileDigest"],properties:{sourceChannel:{enum:["production","development"]},registryRevisions:{type:"array",items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:cA,revision:Oe}}},sources:{type:"array",minItems:1,maxItems:128,items:zf},packageJsonDigest:Oe,lockfileDigest:Oe}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},pi=new qf.Ajv2020({allErrors:!0,strict:!0});pi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var xa={capabilityBundleRelease:pi.compile(dA),verificationResult:pi.compile(Ta),adoptionEvidence:pi.compile(pA),projectAdoptionLock:pi.compile(uA)},La=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Va(e,t,r){if(!t(r))throw new La(e,t.errors??[]);return r}var Gf=e=>{let t=Va("capabilityBundleRelease",xa.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new La("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let i="",a=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(i)<=0||a.has(c))&&r(),i=c,a.add(c)}let o=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(o.length!==n.length||o.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},Wf=e=>Va("verificationResult",xa.verificationResult,e),ui=e=>Va("adoptionEvidence",xa.adoptionEvidence,e),Be=e=>Va("projectAdoptionLock",xa.projectAdoptionLock,e);import{lstat as bA,readFile as sl,realpath as cl}from"node:fs/promises";import mn from"node:path";import{createHash as fA}from"node:crypto";function y(e){return`sha256:${fA("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var jt=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Kf(e){if(!new RegExp(ee).test(e))throw new jt("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ma(e,t){if(e.includes("\r"))throw new jt("Managed regions require LF newlines");let{begin:r,end:n}=Kf(t),i=e.split(r).length-1,a=e.split(n).length-1;if(i!==1||a!==1)throw new jt("Managed region markers are unavailable or ambiguous");let o=e.indexOf(r)+r.length,s=e.indexOf(n,o),c=e.slice(o,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new jt("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
+
`}function Yf(e){let{begin:t,end:r}=Kf(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new jt("Managed regions require LF newlines");let n=e.source.split(t).length-1,i=e.source.split(r).length-1;if(n>1||i>1||n!==i)throw new jt("Managed region markers are ambiguous");let a=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(a))throw new jt("Managed regions cannot contain nested Dyyto markers");let o=`${t}
|
|
10
|
+
${a}
|
|
11
11
|
${r}`;if(n===0){let d=e.source.replace(/\n*$/g,"");return`${d}${d.length===0?"":`
|
|
12
12
|
|
|
13
|
-
`}${
|
|
14
|
-
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new Ot("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import Bf from"node:path";var tr=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ci(e){if(e.length===0||Bf.posix.isAbsolute(e)||Bf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new tr("Asset path must be a normalized project-relative POSIX path",e)}function t_(e,t){Ci(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(Z).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new tr("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,o=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&o===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===o?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||o!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function ke(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new tr("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new tr("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ci(s.path),t.has(s.path))throw new tr("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new tr("Proposed change paths must be unique",s.path);return r.add(s.path),t_(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),o={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},i=y(k(o)),a={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:o.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:i,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...a,planId:y(k(a))}}function Ti(e){return y(k(e))}var zf=Kr(_r(),1);var Q={type:"string",pattern:At},pn={type:"string",pattern:Z},Pr={type:"string",minLength:1,maxLength:128},Er={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},r_={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:pn,version:Pr,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Er,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},n_={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:pn,version:Pr}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:Z},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:pn,version:Pr}}}}},o_={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:pn,version:Pr,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Er,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},i_={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:pn,capabilityVersion:Pr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},a_={$id:"https://schemas.dyyto.dev/platform/change-plan-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","planId","action","state","capability","generatedAt","expiresAt","inputDigest","operations"],properties:{schemaVersion:{const:1},planId:Q,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:pn,version:Pr,integrity:Q}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:Q,packageAdoption:{type:"object",additionalProperties:!1,required:["schemaVersion","packageJsonPreimageDigest","desiredPackageJsonDigest","lockfilePreimage","desiredLockfileDigest","registryRevisions","endpointBindings","sources","installPolicy"],properties:{schemaVersion:{enum:[1,2]},sourceChannel:{enum:["production","development"]},packageJsonPreimageDigest:Q,desiredPackageJsonDigest:Q,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:Q}}]},desiredLockfileDigest:Q,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:Q}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:Q,bindingDigest:Q,expiresAt:{type:"string",format:"date-time"}}}},sources:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",minLength:1,maxLength:128},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$"},version:Pr,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:Q,deliveryReceiptId:Q,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:Er,unitImporterId:Er,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:Q}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:Er,preimageDigest:Q,desiredDigest:Q}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:Er,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q,baseDigest:Q,regionId:{type:"string",pattern:Z},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},s_={$id:"https://schemas.dyyto.dev/platform/transaction-journal-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","transactionId","planId","approvedPlanId","projectRootDigest","state","createdAt","updatedAt","operations","journalDigest"],properties:{schemaVersion:{const:1},transactionId:{type:"string",minLength:1,maxLength:128},planId:Q,approvedPlanId:Q,projectRootDigest:Q,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:Er,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:Q,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:Q}}]},desiredDigest:Q,status:{enum:["pending","applied","restored"]}}}},failure:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",minLength:1,maxLength:128},operationIndex:{type:"integer",minimum:0}}},journalDigest:Q}},Ar=new zf.Ajv2020({allErrors:!0,strict:!0});Ar.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Zc={capabilityRelease:Ar.compile(r_),projectManifest:Ar.compile(n_),projectLock:Ar.compile(o_),evidence:Ar.compile(i_),changePlan:Ar.compile(a_),transactionJournal:Ar.compile(s_)},Xc=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Qc(e,t,r){if(!t(r))throw new Xc(e,t.errors??[]);return r}var Y=e=>Qc("projectManifest",Zc.projectManifest,e);var rr=e=>Qc("changePlan",Zc.changePlan,e),Jf=e=>Qc("transactionJournal",Zc.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Li(e){if(e.currentLock!==void 0){let i=await xi({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:i.plan.state==="conflicted"?"drifted":"adopted",operations:i.plan.operations}}let t=await tl(un.resolve(e.projectRoot)),r=[],n=0,o=0;for(let i of e.release.release.assets){let a=await rl(t,i.path);a.exists&&(n+=1),a.digest===i.digest&&(o+=1),r.push({path:i.path,kind:"create",ownership:i.ownership,desiredDigest:i.ownership==="seed-file"&&a.digest?a.digest:i.digest,disposition:a.exists?i.ownership==="seed-file"||a.digest===i.digest?"noop":"conflict":"ready",...a.exists&&a.digest!==i.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:o===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function rl(e,t){let r=un.join(e,...t.split("/"));try{let n=await c_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Blank profile target must be a regular file",t);return{path:t,exists:!0,digest:y(await el(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Nr(e){let t=await tl(un.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let o=await rl(t,n.path),i=o.exists&&o.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&o.exists)try{i=y($i(await el(un.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{i=!1}if(!i)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(k(r))}}async function xi(e){let t=Y(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let o=(e.currentLock===void 0?void 0:qe(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(o!==void 0&&(o.version!==e.release.release.version||o.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let i=await tl(un.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await rl(i,d.path);if(a.push(p),p.exists&&o===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await el(un.join(i,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:ke({action:"adopt",capability:l,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as d_,lstat as Bi,mkdir as fn,open as Kf,readFile as zi,realpath as p_,rename as Fi,rm as nl,unlink as Or}from"node:fs/promises";import{constants as Mi}from"node:fs";import{homedir as u_}from"node:os";import W from"node:path";import{randomUUID as hn}from"node:crypto";function l_(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function ct(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Gf(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Gf(e.context,e.operation,e.bytes??0,t,"failed",l_(r)),r}}async function Gf(e,t,r,n,o,i){if(e?.sink===void 0)return;let a=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:a.toString(),result:o,...i===void 0?{}:{errorCategory:i}},c=Object.freeze({...s,eventId:y(k(s))});try{await e.sink(c)}catch{}}var Yf=Symbol("prepared-transaction"),nr=new Map,f_=5*1024*1024,m_=25*1024*1024,Wf=8,qi=class extends Error{};async function Vi(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new qi("Simulated prepare crash",{cause:n})}}var j=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,o){super(r),this.code=t,this.relativePath=n,this.operationIndex=o}};function lo(e,t){let r=W.join(e,".dyyto"),n=W.join(r,"transactions",t);return{platformDirectory:r,lock:W.join(r,"transaction-lock.json"),transactionDirectory:n,journal:W.join(n,"journal.json"),preimages:W.join(n,"preimages"),quarantine:W.join(n,"quarantine")}}async function Lt(e){try{return await Bi(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function yn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function wt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function lt(e,t){let r=await Kf(e,Mi.O_RDONLY);try{await ct({context:yn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function po(e,t,r=384,n){let o=await Kf(e,Mi.O_CREAT|Mi.O_EXCL|Mi.O_WRONLY,r);try{await ct({context:yn(n),operation:"write",bytes:t.byteLength,run:()=>o.writeFile(t)}),await ct({context:yn(n),operation:"file-sync",bytes:t.byteLength,run:()=>o.sync()})}finally{await o.close()}}async function ol(e,t,r){let n=W.dirname(e),o=W.join(n,`.tmp-${hn()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await
|
|
16
|
-
`),384,r),await lt(W.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new j("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Ui(e){try{let t=JSON.parse(await zi(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new j("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function w_(e,t,r){return{[Yf]:!0,projectRoot:e,plan:t,transactionId:r}}async function I_(e,t){h_(e.plan,e.approvedPlanId,e.now);let r=await Ji(e.projectRoot),n=y_(e.plan),o=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!o.has(u))throw new j("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(wn(r,u.path),await mn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||y(m)!==u.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let i=lo(r,e.plan.planId);await fn(i.platformDirectory,{recursive:!0,mode:448}),await mn(r,".dyyto");let a=hn();await sl(i.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:hn()},wt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??f_,c=e.limits?.maxTransactionBytes??m_,l=0,d=[],p=[],f=!1;try{if(await Vi(t,"lock-created"),await Lt(i.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await fn(i.preimages,{recursive:!0,mode:448}),await fn(i.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=wn(r,g.path);await mn(r,g.path);let w=await gn(h);if(g.kind==="create"){if(w!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new j("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let _={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new j("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=W.join(i.preimages,`${m}.bin`);await po(b,w.bytes,384,wt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),p.push(m),await Vi(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await lt(i.preimages,wt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of p)await Vi(t,"preimage-persisted",m)}let u=il({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await ol(i.journal,u,wt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),nr.set(a,{desiredContents:e.desiredContents,journal:u}),await Vi(t,"journal-prepared"),w_(r,e.plan,a)}catch(u){if(u instanceof qi)throw nr.delete(a),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await nl(i.transactionDirectory,{recursive:!0,force:!0}),await Or(i.lock),await lt(i.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function ir(e){return I_(e)}async function v_(e,t,r,n){return or(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},wt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function b_(e,t,r,n,o,i){let a=wn(e,n.path);await mn(e,n.path);let s=await gn(a);if(n.before.kind==="absent"){if(s!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new j("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=W.join(t.quarantine,`${n.index}.bin`),f=wt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await ct({context:yn(f),operation:"rename",run:()=>Fi(a,p)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(a),t.quarantine]}let c=o.get(n.path);if(c===void 0||y(c)!==n.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await fn(W.dirname(a),{recursive:!0}),await mn(e,n.path);let l=W.join(W.dirname(a),`.dyyto-${r}-${n.index}.tmp`),d=wt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await po(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await i?.onCheckpoint?.("temporary-file-synced",n.index),await ct({context:yn(d),operation:"rename",bytes:c.byteLength,run:()=>Fi(l,a)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(a)]}async function k_(e,t){let r=nr.get(e.transactionId);if(r===void 0||e[Yf]!==!0)throw new j("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=lo(e.projectRoot,e.plan.planId),o=await or(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let i=new Map;for(let a=0;a<o.operations.length;a+=Wf){let s=o.operations.slice(a,a+Wf),c=await Promise.allSettled(s.map(d=>b_(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)i.has(p)||i.set(p,wt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of i)await lt(a,s);for(let a of o.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);o=await or(n.journal,{...o,operations:o.operations,updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of o.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return o=await or(n.journal,{...o,state:"applied",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Or(n.lock),await lt(n.platformDirectory),nr.delete(e.transactionId),Sr(o)}catch(i){throw o=await v_(n,o,i instanceof j?i.operationIndex:void 0,t?.durabilityTrace),nr.set(e.transactionId,{desiredContents:r.desiredContents,journal:o}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function ar(e){return k_(e)}function Sr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function xt(e){let t=await Ji(e.projectRoot),r=lo(t,e.planId);if(!await Lt(r.journal)){if(!await Lt(r.lock))return null;let n=await Ui(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Sr(await al(r.journal))}async function R_(e,t,r){await fn(W.dirname(e),{recursive:!0});let n=W.join(W.dirname(e),`.dyyto-recover-${hn()}.tmp`);await po(n,t,r&511),await Fi(n,e),await d_(e,r&511),await lt(W.dirname(e))}async function Hf(e){let t=await Ji(e.projectRoot),r=lo(t,e.planId);if(!await Lt(r.journal)){if(!await Lt(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let o=await Ui(r.lock);if(o.planId!==e.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await nl(r.transactionDirectory,{recursive:!0,force:!0}),await fn(r.transactionDirectory,{recursive:!0,mode:448});let i=il({schemaVersion:1,transactionId:o.transactionId,planId:o.planId,approvedPlanId:o.planId,projectRootDigest:y(t),state:"recovered",createdAt:o.startedAt,updatedAt:e.now,operations:[]});return await ol(r.journal,i),await Or(r.lock),await lt(r.platformDirectory),Sr(i)}let n=await al(r.journal);if(n.state==="recovered")return Sr(n);if(n.state==="applied"){for(let o of n.operations){let i=await gn(wn(t,o.path));if(!(o.kind==="remove"?i===void 0:i?.digest===o.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",o.path,o.index)}if(await Lt(r.lock)){let o=await Ui(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Or(r.lock),await lt(r.platformDirectory)}return nr.delete(n.transactionId),Sr(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Lt(r.lock)){let o=await Ui(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:hn()});n=await or(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let o of[...n.operations].reverse()){if(o.status==="restored")continue;let i=wn(t,o.path);if(await mn(t,o.path),o.kind!=="remove"){let s=W.join(W.dirname(i),`.dyyto-${n.transactionId}-${o.index}.tmp`);if(await Lt(s)){if((await gn(s))?.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",o.path,o.index);await Or(s),await lt(W.dirname(s))}}let a=await gn(i);if(o.before.kind==="absent"){if(a!==void 0){if(a.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);await Or(i),await lt(W.dirname(i))}}else if(a?.digest!==o.before.digest){let s=W.join(r.quarantine,`${o.index}.bin`),c=a?.digest===o.desiredDigest,l=o.kind==="remove"&&a===void 0&&await Lt(s),d=e.approvedConflicts?.find(f=>f.path===o.path&&f.currentDigest===a?.digest);if(!c&&!l&&!d)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);let p=await zi(W.join(r.preimages,`${o.index}.bin`));if(y(p)!==o.before.preimageDigest)throw new j("JOURNAL_CORRUPTED","Preimage digest is invalid",o.path,o.index);await R_(i,p,o.before.mode),l&&await nl(s,{force:!0})}o.status="restored",n=await or(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",o.index)}return n=await or(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Or(r.lock),await lt(r.platformDirectory),nr.delete(n.transactionId),Sr(n)}async function uo(e){return Hf(e)}async function cl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new j("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Hf(e)}async function ll(e){let t=await Ji(e.projectRoot),r=lo(t,e.planId),n=await al(r.journal);if(n.state==="recovered")return Sr(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let o;for(let i of n.operations){let a=await gn(wn(t,i.path)),s=i.kind==="remove"?a===void 0:a?.digest===i.desiredDigest,c=i.before.kind==="absent"?a===void 0:a?.digest===i.before.digest;if(!s&&!c){o=i;break}}if(await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:hn()}),n=await or(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),o!==void 0)throw new j("RECOVERY_CONFLICT","Rollback would overwrite external content",o.path,o.index);return nr.set(n.transactionId,{desiredContents:new Map,journal:n}),uo({projectRoot:t,planId:e.planId,now:e.now})}var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t}},fo=class extends Error{};function ho(e,t){let r=Re.join(e,".dyyto"),n=Re.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Re.join(r,"evidence"),lockFile:Re.join(r,"project-lock.json"),transactionLock:Re.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Re.join(n,"journal.json")}}async function sr(e){try{return await __(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Vt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Yi(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function Hi(e,t){let r=await Xf(e,Wi.O_RDONLY);try{await ct({context:Yi(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function ul(e,t,r){let n=await Xf(e,Wi.O_CREAT|Wi.O_EXCL|Wi.O_WRONLY,384);try{await ct({context:Yi(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await ct({context:Yi(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function mo(e,t,r){let n=Re.dirname(e),o=Re.join(n,`.tmp-${pl()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await
|
|
18
|
-
`),r),await
|
|
19
|
-
`),r),await
|
|
20
|
-
`)}async function
|
|
21
|
-
`),
|
|
22
|
-
`)}catch(
|
|
23
|
-
`)}catch(i){if(i.code!=="EEXIST")throw i;let a=rr(JSON.parse(await vl(o,"utf8")));if(yo(a),k(a)!==k(r))throw new he("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return o}function im(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Mt(e){let t=await Dt(ae.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Dt(ae.resolve(e.transactionRoot)),n=rr(e.plan);yo(n);let o=ae.join(t,".dyyto","plans"),i=await Xi(o).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of i.filter(c=>c.endsWith(".json")).sort()){let c=rr(JSON.parse(await vl(ae.join(o,s),"utf8")));yo(c),!await St(ae.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&im(c)===im(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await M_({projectRoot:t,plan:n}),n)}async function jr(e){let t=await Dt(ae.resolve(e.projectRoot)),r=ae.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=rr(JSON.parse(await vl(r,"utf8")));if(yo(n),n.planId!==e.planId)throw new he("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new he("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Qi(e,t=[],r,n=[]){let o=await Dt(ae.resolve(e)),i=r===void 0?o:await Dt(ae.resolve(r)),a=ae.join(o,".dyyto","plans"),s=await Xi(a).catch(d=>{if(d.code==="ENOENT")return[];throw d}),c=[];for(let d of s.filter(p=>p.endsWith(".json")).sort()){let p=d.slice(0,-5),f=await jr({projectRoot:o,planId:p}),u=await xt({projectRoot:i,planId:p}),m=await St(ae.join(o,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=U_(c);if(l===void 0)throw new he("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function U_(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function bl(e){let t=await Dt(ae.resolve(e)),r=ae.join(t,".dyyto","plans"),n=await Xi(r).catch(i=>{if(i.code==="ENOENT")return[];throw i}),o=[];for(let i of n.filter(a=>a.endsWith(".json")).sort())o.push(await jr({projectRoot:t,planId:i.slice(0,-5)}));return o}import{lstat as pm,readFile as F_,readdir as q_,realpath as B_}from"node:fs/promises";import Ne from"node:path";import{homedir as um}from"node:os";var dt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function fm(e){let t=Ne.resolve(e),r=await pm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ne.parse(t).root||t===Ne.resolve(um()))throw new dt("WORKSPACE_PATH_UNSAFE");let n=await B_(t);if(n!==t)throw new dt("WORKSPACE_PATH_UNSAFE");return n}async function $r(e){let t=await pm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new dt("WORKSPACE_PATH_UNSAFE");return F_(e)}}function mm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let o of t){if(/^packages:\s*(?:#.*)?$/u.test(o)){n=!0;continue}if(!n)continue;let i=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(o);if(i){r.push(i[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(o.trim()&&!/^\s/u.test(o))break}if(r.length===0)throw new dt("WORKSPACE_MANIFEST_INVALID");return r}function z_(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function ea(e){let t=await fm(e),r=await $r(Ne.join(t,"pnpm-workspace.yaml"));if(!r)throw new dt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let o of mm(r.toString("utf8"))){let i=[];if(o.endsWith("/*")&&!o.slice(0,-2).includes("*")){let a=o.slice(0,-2),s=await q_(Ne.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&i.push(`${a}/${c.name}`)}else if(!o.includes("*"))i.push(o);else throw new dt("WORKSPACE_MANIFEST_INVALID");for(let a of i){let s=await $r(Ne.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([o],[i])=>o.localeCompare(i)).map(([o,i])=>Object.freeze({relativeRoot:o,bytes:i})))}async function Ut(e){let t=await fm(e);if(await $r(Ne.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await $r(Ne.join(t,"pnpm-workspace.yaml")))throw new dt("WORKSPACE_NESTED_UNSUPPORTED");let r=Ne.dirname(t),n;for(;r!==Ne.parse(r).root&&r!==Ne.resolve(um());){let i=await $r(Ne.join(r,"pnpm-workspace.yaml"));if(i){if(n)throw new dt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:i};break}r=Ne.dirname(r)}if(!n||!await $r(Ne.join(n.root,"pnpm-lock.yaml"))||!await $r(Ne.join(n.root,"project-capabilities.json")))throw new dt("WORKSPACE_OWNER_MISSING");let o=Ne.relative(n.root,t).split(Ne.sep).join("/");if(!o||o.startsWith("../")||mm(n.manifest.toString("utf8")).filter(i=>z_(i,o)).length!==1)throw new dt("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:o,unitImporterId:o,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var gm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function kl(e){let t=await bl(e);for(let r of t){let n=await xt({projectRoot:e,planId:r.planId});if(n!==null&&gm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Il({projectRoot:e,planId:r.planId});if(n!==null&&n.state!=="committed")return{required:!0,kind:"metadata",planId:r.planId,state:n.state}}return{required:!1}}async function J_(e){let t=await kl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await uo({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await wl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function hm(e){let t=await J_(e);if(t.kind!=="none")return t;let r=await Ut(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await bl(e.projectRoot)).map(c=>c.planId)),o=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!o)return t;let i;try{let c=JSON.parse(o);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;i=c.planId}catch{return t}let a=await xt({projectRoot:r.transactionRoot,planId:i});if(!a||!gm.has(a.state))return t;let s=await uo({projectRoot:r.transactionRoot,planId:i,now:e.now});return{kind:"filesystem",planId:i,state:s.state}}import{lstat as G_,readFile as Rl,realpath as ym}from"node:fs/promises";import wo from"node:path";var W_=new Set(["MIT","Apache-2.0","UNLICENSED"]),K_=new Set(["public","restricted","private"]),Y_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,H_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function X_(e){let t;try{t=new URL(e)}catch{throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL")}if(t.protocol!=="https:"||t.username.length>0||t.password.length>0||t.search.length>0||t.hash.length>0||t.pathname==="/"||t.pathname.includes(".."))throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL");t.pathname=t.pathname.replace(/\/$/,"").replace(/\.git$/,"");let r=t.href.replace(/\/$/,"");if(r!==e)throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository URL must already be canonical");return r}function Cr(e){if(e.profile?.id!=="workspace-node-application"&&e.profile?.id!=="workspace-web-application"&&e.profile?.id!=="workspace-expo-application"&&e.profile?.id!=="nextjs-full-stack-application")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Manifest must select a workspace application profile");let t=Object.keys(e.profile.parameters),r=e.profile.parameters.name;if(t.length!==1||t[0]!=="name"||r===void 0||r.length>128||!/^[a-z0-9][a-z0-9._-]*$/.test(r))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Application parameters must contain one valid lowercase name");return{name:r}}function lr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),o=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,i=o==="1.1.0"||o==="1.2.0"||t==="react-component-library",a=i?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==a.length||n.some((f,u)=>f!==a[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:d,repository:p}=r;if(s===void 0||s.length>214||!Y_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!H_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!W_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!K_.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...i?{repository:X_(p)}:{}}}function _l(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
-
`)}function
|
|
25
|
-
`)}function
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
28
|
-
`)}function
|
|
29
|
-
`)}async function
|
|
30
|
-
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:i,kind:"replace",ownership:"owned-file",baseDigest:y(a),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>wm(o,u.path))),d=ke({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==i).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[i,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function bo(e){return Tr(e,"workspace-npm-package")}function ko(e){return Tr(e,"workspace-node-application")}function Ro(e){return Tr(e,"workspace-web-application")}function _o(e){return Tr(e,"workspace-expo-application")}async function Im(e){if(e.currentLock!==void 0){let n=await Io(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Io({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function vm(e){if(e.currentLock!==void 0){let n=await vo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await vo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function bm(e){if(e.currentLock!==void 0){let n=await vn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await vn({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function km(e){if(e.currentLock!==void 0){let n=await bo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await bo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Rm(e){if(e.currentLock!==void 0){let n=await ko(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ko({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function _m(e){if(e.currentLock!==void 0){let n=await Ro(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ro({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Am(e){if(e.currentLock!==void 0){let n=await _o(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await _o({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as RA,readFile as ga,realpath as _A}from"node:fs/promises";import No from"node:path";var vt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Lr=/^sha256:[a-f0-9]{64}$/,rA=/^sha512-[A-Za-z0-9+/]{86}==$/,nA=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,Pm=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,oA=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Em=/^[a-z][a-z0-9._:-]{2,127}$/;function xr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,o)=>n===[...t].sort()[o])}function iA(e){if(!xr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!Pm.test(e.registryId)||!Em.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,o)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==o)||!xr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!xr(e.capabilities,["read","write","provenance","staging"])||!["workload-identity","short-lived-token","restricted-token","anonymous-test"].includes(e.authentication.kind)||e.authentication.kind==="anonymous-test"!=(e.authentication.credentialRef===void 0)||e.authentication.credentialRef!==void 0&&!Em.test(e.authentication.credentialRef))return!1;let t;try{t=new URL(e.origin)}catch{return!1}if(t.username||t.password||t.search||t.hash||!t.pathname.endsWith("/")||t.pathname.includes("..")||/%2f|%5c/iu.test(t.pathname))return!1;let r=t.hostname==="127.0.0.1"||t.hostname==="localhost"||t.hostname==="[::1]";return e.authentication.kind==="anonymous-test"&&(!r||t.protocol!=="http:")||e.authentication.kind!=="anonymous-test"&&t.protocol!=="https:"?!1:typeof e.capabilities.read=="boolean"&&typeof e.capabilities.write=="boolean"&&typeof e.capabilities.provenance=="boolean"&&typeof e.capabilities.staging=="boolean"&&(e.status==="enabled"||e.status==="disabled")}function Pl(e){if(!iA(e))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:y(k(t))})}function Ao(e){let t=e;if(typeof t!="object"||t===null||!xr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Lr.test(t.revision))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...o}=t;if(Pl(o).revision!==n)throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function aA(e,t){let r,n;try{r=new URL(e.origin),n=new URL(t)}catch{return!1}return n.username||n.password||n.search||n.hash||n.pathname!==r.pathname||n.protocol!==r.protocol||n.hostname!==r.hostname?!1:e.authentication.kind==="anonymous-test"||n.port===r.port}function Nl(e,t){let r=Ao(t);if(!xr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!aA(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(k(n))})}function Nm(e,t){let r=e;if(typeof r!="object"||r===null||!xr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Lr.test(r.bindingDigest))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:o,...i}=r;if(Nl(i,t).bindingDigest!==o)throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function sA(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return xr(e,t)&&Pm.test(e.registryId)&&Lr.test(e.registryConfigRevision)&&oA.test(e.packageName)&&nA.test(e.version)&&rA.test(e.integrity)&&Lr.test(e.tarballDigest)&&Lr.test(e.sourceDeliveryReceiptId)&&!Number.isNaN(Date.parse(e.verifiedAt))&&(e.access==="restricted"||e.access==="private")&&["registry-attested","external-attested","local-readback-verified","development-readback-verified","registry-verified-no-attestation"].includes(e.provenance)&&(e.provenance!=="registry-verified-no-attestation"?e.verificationIdentityDigest!==void 0&&Lr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Ol(e){if(!sA(e))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function Om(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Lr.test(t.receiptId))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...o}=t;if(Ol(o).receiptId!==n)throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var _e=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Eo(e){return y(k(e))}var Sl=/^sha256:[a-f0-9]{64}$/u,cA=/^sha512-[A-Za-z0-9+/]{86}==$/u,lA=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ta=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,dA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,pA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ra(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,i)=>o===n[i])}function Sm(e){return y(k(e))}function Dm(e){let t=Buffer.from(e.desiredLockfile),r=y(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(a=>({...a})),packageFacts:e.packageFacts.map(a=>({...a})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},o={...n,jobId:Sm(n),desiredLockfile:t};jm(o);let i={...o,importerFacts:Object.freeze(o.importerFacts.map(a=>Object.freeze({...a}))),packageFacts:Object.freeze(o.packageFacts.map(a=>Object.freeze({...a}))),cacheObservation:Object.freeze({...o.cacheObservation})};return Object.freeze(i)}function jm(e){if(!ra(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new _e("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(o=>Sl.test(o)))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(!ta.test(e.workerReleaseId)||!ta.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||y(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(!ra(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new _e("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(o=>!ra(o,["importerId","manifestDigest","preimageDigest","desiredDigest"])||o.importerId!=="."&&!ta.test(o.importerId)||![o.manifestDigest,o.preimageDigest,o.desiredDigest].every(i=>Sl.test(i))))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(o=>!ra(o,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!pA.test(o.identity)||!dA.test(o.packageName)||!ta.test(o.registryId)||!lA.test(o.version)||!cA.test(o.integrity)||typeof o.managed!="boolean"||!Sl.test(o.edgesDigest)))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(o=>o.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(o=>o.identity)).size!==e.packageFacts.length)throw new _e("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(Sm(n)!==e.jobId)throw new _e("RESOLUTION_EVIDENCE_INVALID")}function Dl(e,t){if(jm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new _e("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new _e("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new _e("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let o=e.importerFacts.find(i=>i.importerId===n.importerId);if(!o||o.preimageDigest!==n.preimageDigest||o.desiredDigest!==n.preimageDigest)throw new _e("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let o=e.packageFacts.filter(i=>i.managed&&i.packageName===n.packageName);if(o.length!==1||o[0].registryId!==n.registryId||o[0].version!==n.version||o[0].integrity!==n.integrity)throw new _e("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new _e("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var H=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function ia(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:i})=>({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:i})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var na=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,$m=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function jl(e){return Array.isArray(e)?`[${e.map(jl).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${jl(r)}`).join(",")}}`:JSON.stringify(e)}function Ft(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function pt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function oa(e){for(let t of[pt(e.dependencies),pt(e.devDependencies),pt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!na.test(n)||$m.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var uA=["dependencies","devDependencies","optionalDependencies"];function aa(e,t){let r=[];for(let n of uA)for(let[o,i]of Object.entries(pt(e[n]))){if(t.has(o)){if(!na.test(i))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(i))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:o,specifier:i})}return r.sort((n,o)=>`${n.section}:${n.packageName}`.localeCompare(`${o.section}:${o.packageName}`))}function $l(e){let t=Ft(e.packageJson);oa(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:a})=>[i,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:a})=>[i,a])),o={...t,...Object.keys(r).length?{dependencies:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(o,null,2)}
|
|
31
|
-
`)}function
|
|
32
|
-
`)}function
|
|
33
|
-
`)}function
|
|
34
|
-
`)}function
|
|
35
|
-
`),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(
|
|
36
|
-
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:ke({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(o),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})=>({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:aa(Ft(o),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),o],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function sa(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",o=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!o)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let i=Ft(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Ft(a),c="topology"in e,l=c?aa(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||oa(i),c||oa(s);let d=new Map(e.registryConfigs.map(I=>{let R=Ao(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let S=Nm(I,R);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let R=Om(I);return[R.receiptId,R]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),m=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Dl(e.resolutionEvidence,{requestDigest:Eo({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(Po({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(Po({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C})),now:e.generatedAt}):void 0,h=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),S=p.get(I.registryId),C=f.get(I.deliveryReceiptId),le=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!C||!le||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==R.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||le.integrity!==I.integrity||le.tarballDigest!==I.tarballDigest||le.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!na.test(I.version)||le.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,X]of Object.entries(le.dependencies)){let ie=m.get(P);if(P.startsWith("@aipt/")&&(!ie||ie.version!==X||!na.test(X)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${X}`)});if($m.test(X))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?Po({release:e.release,packageJson:a}):$l({release:e.release,packageJson:a}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:S,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:S,expiresAt:C})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},A=y(jl(b));return Object.freeze({...b,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function ca(e){return sa(e,"production")}function la(e){return sa(e,"development")}function da(e){return sa(e,"production")}function pa(e){return sa(e,"development")}function fA(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",o=e.operations.filter(({path:d})=>d===r),i=e.operations.filter(({path:d})=>d===n);if(o.length!==1||i.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let a=o[0],s=i[0],c=a.kind==="replace"&&a.baseDigest===t.packageJsonPreimageDigest&&a.desiredDigest===t.desiredPackageJsonDigest&&a.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Lm(e){fA(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await ir({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await ar(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await ll({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new H("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Um=Kr(_r(),1);var Fm=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],qm="^[a-z0-9][a-z0-9._-]{0,127}$",Ll="^[A-Z][A-Z0-9_]{0,127}$",xm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",mA={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{const:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json"},schemaVersion:{const:1},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:qm},profile:{enum:Fm}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{const:"IDP_CONFIG_DIR"},relativeDirectory:{type:"string",pattern:"^applications/[a-z0-9][a-z0-9._-]{0,127}$"},environmentFile:{const:".env"},materializationOwner:{const:"external-deployment-control-plane"}}},bindings:{type:"array",maxItems:128,items:{oneOf:[{type:"object",additionalProperties:!1,required:["name","kind","required"],properties:{name:{type:"string",pattern:Ll},kind:{const:"value"},required:{type:"boolean"},default:{type:"string",maxLength:1024}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ll},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:xm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ll},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:xm}}}]}}}},Vm=new Um.Ajv2020({allErrors:!0,strict:!0}).compile(mA),Mm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,gA=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Xe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function Bm(e){let t=Y(e),r=t.profile?.id;if(!Fm.includes(r))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},o=n.name;if(Object.keys(n).length!==1||typeof o!="string"||!new RegExp(qm,"u").test(o))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:o,profile:r}}function xl(e,t){if(!Vm(e))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",Vm.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,o=new Set;for(let i of r.bindings){if(n.has(i.name))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${i.name}`);if(n.add(i.name),i.kind==="value"){if(Mm.test(i.name))throw new Xe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${i.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!i.name.endsWith("_FILE"))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${i.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let a=i.kind==="secret-file"?"secrets/":"certs/";if(i.kind==="certificate-file"&&(Mm.test(i.name)||gA.test(i.name)))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=i.file.split("/");if(!i.file.startsWith(a)||s.some(c=>c===""||c==="."||c===".."))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5FC5\u987B\u4F4D\u4E8E ${a} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(i.file))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${i.file}`);o.add(i.file)}if(t!==void 0){let i=Bm(t);if(r.application.id!==i.id||r.application.profile!==i.profile)throw new Xe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ua(e){let t=Bm(e),r=t.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],n={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:1,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"IDP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return xl(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
-
`)}import{createHash as
|
|
38
|
-
`)}function wA(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new be("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new be("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Wm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new be("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function IA(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(!o||o.startsWith("#"))continue;let i=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o),a=i?.[1],s=i?.[2];if(!a||s===void 0||a in t)throw new be("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[a]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Jm(e){return`sha256:${hA("sha256").update(e).digest("hex")}`}function vA(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Gm(e,t,r){let n=await Vl(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new be("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}async function bA(e,t,r){let n=ge.dirname(e);for(;n!==ge.dirname(n);){try{if(JSON.parse(await Vr(ge.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let i=ge.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(i))throw new be("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return ge.join(ge.basename(n),i,r)}}catch(o){if(o instanceof be)throw o}n=ge.dirname(n)}return ge.join(t,r)}async function kA(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let i=await Vl(n).catch(()=>null);if(!i?.isFile()||i.isSymbolicLink()||i.nlink!==1||(i.mode&511&-385)!==0)throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await Vr(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=a.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${ge.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let o=r.APP_CONFIG_DIR;if(o){if(!ge.isAbsolute(o))throw new be("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(o,await bA(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function ma({projectRoot:e,environment:t=process.env}){let r=await zm(ge.resolve(e)),[n,o,i]=await Promise.all([Vr(ge.join(r,"project-capabilities.json")),Vr(ge.join(r,".dyyto/application-config-binding.json")),Vr(ge.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=wA(JSON.parse(o.toString("utf8")),a),c=xl(JSON.parse(i.toString("utf8")),a),l=await kA(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new be("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await zm(l),p=await Vl(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new be("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=ge.relative(r,d);if(f===""||!f.startsWith("..")&&!ge.isAbsolute(f))throw new be("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=ge.join(d,".env");await Gm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=IA(await Vr(u,"utf8")),g=[];for(let h of c.bindings){if(h.kind==="value"){let C=m[h.name]??"";g.push({name:h.name,kind:h.kind,required:h.required,configured:C.length>0,source:"APP_CONFIG_DIR",display:vA(C)});continue}if(m[h.name]!==h.file)throw new be("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),b=ge.relative(d,_);if(!b||b.startsWith("..")||ge.isAbsolute(b))throw new be("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Gm(_,h.name,!h.required),I=await Vr(_),R=I.length>0,S;if(R&&h.kind==="certificate-file")try{let C=new yA(I);S={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new be("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:Jm(I),updatedAt:A.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Jm(i),entries:g}}var Mr="project-capabilities.json",Km=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function AA(e,t){if(!Km.test(e)||!Km.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let o=0;o<3;o+=1)if(r[o]!==n[o])return r[o]-n[o];return 0}async function EA(e,t){let r=No.join(e,...t.split("/"));try{let n=await RA(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed upgrade target must be a regular file",t);return{path:t,exists:!0,digest:y(await ga(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function ha(e,t){let r=Y(e),n=t.release,o=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&o?.renderer?.startsWith("npm-package-json-")===!0)return _l(lr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&o?.renderer==="react-component-package-json-v1")return Al(lr(r,n.consumerProfile));let i=t.contents.get("package.json");if(i===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return i}async function Ml(e){let t=Y(e.manifest),r=qe(e.currentLock),n=e.sourceRelease.release,o=e.targetRelease.release,i=t.capabilities.find(P=>P.capabilityId===n.capabilityId),a=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=o.capabilityId!==n.capabilityId&&o.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(i===void 0||a===void 0||i.capabilityId!==a.capabilityId||i.version!==a.version||n.capabilityId!==a.capabilityId||n.version!==a.version||n.integrity!==a.integrity||!s&&o.capabilityId!==a.capabilityId||o.consumerProfile!==a.consumerProfile||n.consumerProfile!==o.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&AA(o.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await _A(No.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:o.capabilityId,version:o.version}:P)},d=new Map(e.targetRelease.contents);o.assets.some(P=>P.path==="package.json")&&d.set("package.json",ha(l,e.targetRelease));for(let P of o.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,ua(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,fa(l));let p,f=c,u="package.json",m;if(o.schemaVersion===2&&o.availability.maturity!=="withdrawn"&&(o.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let X=await ga(No.join(c,"package.json")),ie=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=ie.transactionRoot,u=ie.mode==="pnpm-shared-lockfile"?`${ie.unitRelativeRoot}/package.json`:"package.json",m=ie.lockfilePath;let rt={release:o,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:o.consumerProfile,packageJson:X,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ft=ie.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?pa:da)({...rt,topology:{mode:ie.mode,unitRelativeRoot:ie.unitRelativeRoot,unitImporterId:ie.unitImporterId,lockfilePath:ie.lockfilePath,workspaceManifestPath:ie.workspaceManifestPath,workspaceManifestDigest:ie.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?la:ca)({...rt,lockResolution:e.packageSource.lockResolution});p=ia(ft),d.set("package.json",ft.desiredPackageJson),d.set(m,ft.desiredLockfile)}catch(ft){throw ft instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ft.code):ft}}let g=new Map(a.assets.filter(P=>P.path!==Mr).map(P=>[P.path,P.digest])),h=new Map(o.assets.filter(P=>P.path!==Mr).map(P=>{let X=d.get(P.path);if(X===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(X)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],b=[];for(let P of w){let X=await EA(c,P);_.push(X);let ie=g.get(P),rt=h.get(P),ft=o.assets.find(ly=>ly.path===P);if(ft?.ownership==="seed-file"&&X.exists&&X.digest!==void 0){h.set(P,X.digest),d.set(P,await ga(No.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:X.digest,desiredDigest:X.digest});continue}if(ie===void 0){if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ft?.ownership??"owned-file",desiredDigest:rt})}else rt===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ie}):b.push({path:P,kind:"replace",ownership:ft?.ownership??"owned-file",baseDigest:ie,desiredDigest:rt})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let X=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(X)})}let A=await ga(No.join(c,Mr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
-
`);
|
|
40
|
-
`,"utf8"),await o.sync()}finally{await o.close()}try{await PA(n,e),await DA(n),await jA(r)}catch(i){throw await SA(n,{force:!0}),i}}async function eg(e){let t=await kt(fe.resolve(e.projectRoot)),r=Ul(e.plan),n=fe.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Oo(n,r)}catch(o){if(o.code!=="EEXIST")throw o;if(k(Ul(JSON.parse(await bt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function qt(e){if(!Oe(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Ul(JSON.parse(await bt(fe.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Jl(e){let t=await kt(fe.resolve(e.projectRoot)),r=Bl(e.receipt),n=await qt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let i=await kn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||i===null||r.npm.stageId!==i.stageId||r.npm.tarballDigest!==i.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let o=fe.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=Bl(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function bn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Bl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function tg(e){let t=await kt(fe.resolve(e.projectRoot)),r=ya(e.record),n=await qt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let o=fe.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=ya(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function rg(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=ya(JSON.parse(await bt(fe.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function ng(e){let t=await kt(fe.resolve(e.projectRoot)),r=fe.join(t,".dyyto","delivery","attempts"),n;try{n=await OA(r)}catch(o){if(o.code==="ENOENT")return null;throw o}for(let o of n.sort()){if(!o.endsWith(".json"))continue;let i=ya(JSON.parse(await bt(fe.join(r,o),"utf8")));if((await qt({projectRoot:t,planId:i.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([kn({projectRoot:t,planId:i.planId}),bn({projectRoot:t,planId:i.planId})]);if(s===null&&c===null)return i}return null}async function og(e){let t=await kt(fe.resolve(e.projectRoot)),r=Fl(e.record),n=await qt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let o=fe.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=Fl(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function kn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Fl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function ig(e){let t=await kt(fe.resolve(e.projectRoot)),r=ql(e.record),n=await kn({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let o=fe.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=ql(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function ag(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=ql(JSON.parse(await bt(fe.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as _g,readdir as yE}from"node:fs/promises";import Yl from"node:path";import{mkdir as Gl,open as ka,readFile as Do,readdir as Wl,rename as Ra,rm as bg}from"node:fs/promises";import ye from"node:path";var $A=44;var sg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",CA=new Uint8Array(64),lg=new Uint8Array(128);for(let e=0;e<sg.length;e++){let t=sg.charCodeAt(e);CA[e]=t,lg[t]=e}function So(e,t){let r=0,n=0,o=0;do{let a=e.next();o=lg[a],r|=(o&31)<<n,n+=5}while(o&32);let i=r&1;return r>>>=1,i&&(r=-2147483648|-r),t+r}function cg(e,t){return e.pos>=t?!1:e.peek()!==$A}var FD=1024*16;var TA=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:r}=this,n=t.indexOf(e,r);return n===-1?t.length:n}};function dg(e){let{length:t}=e,r=new TA(e),n=[],o=0,i=0,a=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(o=0;r.pos<l;){let u;o=So(r,o),o<f&&(p=!1),f=o,cg(r,l)?(i=So(r,i),a=So(r,a),s=So(r,s),cg(r,l)?(c=So(r,c),u=[o,i,a,s,c]):u=[o,i,a,s]):u=[o],d.push(u),r.pos++}p||LA(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function LA(e){e.sort(xA)}function xA(e,t){return e[0]-t[0]}var VA=/^[\w+.-]+:\/\//,MA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,UA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function FA(e){return VA.test(e)}function qA(e){return e.startsWith("//")}function fg(e){return e.startsWith("/")}function BA(e){return e.startsWith("file:")}function pg(e){return/^[.?#]/.test(e)}function Ia(e){let t=MA.exec(e);return mg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function zA(e){let t=UA.exec(e),r=t[2];return mg("file:","",t[1]||"","",fg(r)?r:"/"+r,t[3]||"",t[4]||"")}function mg(e,t,r,n,o,i,a){return{scheme:e,user:t,host:r,port:n,path:o,query:i,hash:a,type:7}}function ug(e){if(qA(e)){let r=Ia("http:"+e);return r.scheme="",r.type=6,r}if(fg(e)){let r=Ia("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(BA(e))return zA(e);if(FA(e))return Ia(e);let t=Ia("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function JA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function GA(e,t){gg(t,t.type),e.path==="/"?e.path=t.path:e.path=JA(t.path)+e.path}function gg(e,t){let r=t<=4,n=e.path.split("/"),o=1,i=0,a=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){a=!0;continue}if(a=!1,l!=="."){if(l===".."){i?(a=!0,i--,o--):r&&(n[o++]=l);continue}n[o++]=l,i++}}let s="";for(let c=1;c<o;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function hg(e,t){if(!e&&!t)return"";let r=ug(e),n=r.type;if(t&&n!==7){let i=ug(t),a=i.type;switch(n){case 1:r.hash=i.hash;case 2:r.query=i.query;case 3:case 4:GA(r,i);case 5:r.user=i.user,r.host=i.host,r.port=i.port;case 6:r.scheme=i.scheme}a>n&&(n=a)}gg(r,n);let o=r.query+r.hash;switch(n){case 2:case 3:return o;case 4:{let i=r.path.slice(1);return i?pg(t||e)&&!pg(i)?"./"+i+o:i+o:o||"."}case 5:return r.path+o;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+o}}function WA(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function KA(e,t){let r=WA(e),n=t?t+"/":"";return o=>hg(n+(o||""),r)}var dr=0,YA=1,HA=2,XA=3,ZA=4;function QA(e,t){let r=yg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=yg(e,n+1))e[n]=tE(e[n],t);return e}function yg(e,t){for(let r=t;r<e.length;r++)if(!eE(e[r]))return r;return e.length}function eE(e){for(let t=1;t<e.length;t++)if(e[t][dr]<e[t-1][dr])return!1;return!0}function tE(e,t){return t||(e=e.slice()),e.sort(rE)}function rE(e,t){return e[dr]-t[dr]}var ba=!1;function nE(e,t,r,n){for(;r<=n;){let o=r+(n-r>>1),i=e[o][dr]-t;if(i===0)return ba=!0,o;i<0?r=o+1:n=o-1}return ba=!1,r-1}function oE(e,t,r){for(let n=r+1;n<e.length&&e[n][dr]===t;r=n++);return r}function iE(e,t,r){for(let n=r-1;n>=0&&e[n][dr]===t;r=n--);return r}function aE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function sE(e,t,r,n){let{lastKey:o,lastNeedle:i,lastIndex:a}=r,s=0,c=e.length-1;if(n===o){if(t===i)return ba=a!==-1&&e[a][dr]===t,a;t>=i?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=nE(e,t,s,c)}function cE(e){return typeof e=="string"?JSON.parse(e):e}var lE="`line` must be greater than 0 (lines start at line 1)",dE="`column` must be greater than or equal to 0 (columns start at column 0)",wg=-1,pE=1,Ig=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=cE(e),{version:o,file:i,names:a,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=o,this.file=i,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=KA(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=QA(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=aE(),this._bySources=void 0,this._bySourceMemos=void 0}};function uE(e){var t;return(t=e)._decoded||(t._decoded=dg(e._encoded))}function vg(e,t){let{line:r,column:n,bias:o}=t;if(r--,r<0)throw new Error(lE);if(n<0)throw new Error(dE);let i=uE(e);if(r>=i.length)return va(null,null,null,null);let a=i[r],s=fE(a,e._decodedMemo,r,n,o||pE);if(s===-1)return va(null,null,null,null);let c=a[s];if(c.length===1)return va(null,null,null,null);let{names:l,resolvedSources:d}=e;return va(d[c[YA]],c[HA]+1,c[XA],c.length===5?l[c[ZA]]:null)}function va(e,t,r,n){return{source:e,line:t,column:r,name:n}}function fE(e,t,r,n,o){let i=sE(e,n,t,r);return ba?i=(o===wg?oE:iE)(e,n,i):o===wg&&i++,i===-1||i===e.length?-1:i}var oe=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Kl=/^sha256:[a-f0-9]{64}$/,kg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,mE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,_a=(e,t)=>Object.keys(e).every(r=>t.includes(r)),jo=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Rn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Rg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ye.join(ye.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await qt({projectRoot:r,planId:t.deploymentId}),o=await bn({projectRoot:r,planId:n.planId});if(o===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||o.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await Wl(ye.join(ye.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function gE(e){if(!jo(e)||!_a(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!jo(e.error)||!jo(e.page)||!_a(e.error,["type","message","frames"])||!_a(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!kg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Kl.test(n)))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!mE.test(e.traceparent)))throw new oe("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new oe("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!jo(n)||!_a(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let o of[n.line,n.column])if(o!==void 0&&(!Number.isSafeInteger(o)||Number(o)<1))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function hE(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Rn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Rn(a.function,256)}})),o={type:Rn(e.error.type,256),message:Rn(e.error.message,4096),frames:n},i=y(k({type:o.type,message:o.message,frames:n.slice(0,5).map(({file:a,line:s,column:c})=>({file:a,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Rn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:o,page:{origin:e.page.origin,path:Rn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:i,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Bt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=gE(t);if(!r.allowedOrigins.includes(n.page.origin))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let o=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),i=hE(n,r.receivedAt,o);return this.#t(async()=>{let a=this.directory();await Gl(a,{recursive:!0,mode:448});let s=ye.join(a,`${i.eventId}.json`);try{let f=JSON.parse(await Do(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:i.receivedAt})!==k(i))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:i.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await ka(c,"wx",384);try{await l.writeFile(`${k(i)}
|
|
41
|
-
`,"utf8"),await l.sync()}finally{await l.close()}await
|
|
42
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
43
|
-
`),await l.sync()}finally{await l.close()}await
|
|
44
|
-
`),s=await
|
|
45
|
-
`),g=await To(i,u);if(!g.exists||g.digest===void 0)throw new se("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let h=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:y(m)}],w=new Map([[u,m]]),_;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await Co(Ur.join(t,"package.json"))}catch{throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let S=e.packageSource.currentLockfile??await Co(Ur.join(t,"pnpm-lock.yaml")).catch(ie=>ie.code==="ENOENT"?void 0:Promise.reject(ie)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},le=C.mode==="pnpm-shared-lockfile",$={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(le&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let X=le?(e.packageChannel==="development"?pa:da)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?la:ca)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=ia(X),h.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:X.packageJsonPreimageDigest,desiredDigest:X.desiredPackageJsonDigest}),w.set(a("package.json"),X.desiredPackageJson),h.push({path:C.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:y(S)},desiredDigest:X.desiredLockfileDigest}),w.set(C.lockfilePath,X.desiredLockfile)}catch(S){throw S instanceof H?new se("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let R of n.assets){let S=e.release.contents.get(R.path);if(S===void 0)throw new se("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?ua(r):R.renderer==="application-config-binding-v1"?fa(r):S;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new se("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let le;try{le=await Co(Ur.join(t,...R.path.split("/")))}catch{throw new se("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(qf({source:le.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:a(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(le),desiredDigest:y($)}),w.set(a(R.path),$)}else{let le=await To(t,R.path);if(R.ownership==="seed-file"&&le.exists){let $=await Co(Ur.join(t,...R.path.split("/")));h.push({path:a(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(a(R.path),$)}else h.push({path:a(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(C)}),w.set(a(R.path),C)}}let b=await Promise.all(h.map(R=>To(i,R.path))),A={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==o?.lockfilePath).map(R=>({path:o?.mode==="pnpm-shared-lockfile"?R.path.slice(o.unitRelativeRoot.length+1):R.path,ownership:R.ownership,desiredDigest:R.desiredDigest})),verifiers:n.verifiers.map(R=>({id:R.id,kind:"file-digest"}))};return{plan:ke({action:"adopt",capability:A,changes:h,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:i,dependency:{profile:c,satisfied:!0}}}var Og=Kr(_r(),1);var wE={$id:"https://schemas.dyyto.dev/platform/solution-catalog-entry-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","solutionId","version","integrity","title","summary","maturity","members","integration","exit"],properties:{schemaVersion:{const:1},solutionId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},maturity:{enum:["guided","automated"]},members:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","role","required"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},role:{type:"string",minLength:1,maxLength:80},required:{type:"boolean"}}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","steps","verification","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},steps:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["label","command"],properties:{label:{type:"string",minLength:1,maxLength:80},command:{type:"string",minLength:1,maxLength:2e3}}}},verification:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:1e3}},result:{type:"string",minLength:1,maxLength:400}}},exit:{type:"object",additionalProperties:!1,required:["summary"],properties:{summary:{type:"string",minLength:1,maxLength:400}}}}},Ij=new Og.Ajv2020({allErrors:!0,strict:!0}).compile(wE);var Cg=Kr(_r(),1);import{readFile as IE,realpath as vE}from"node:fs/promises";import Sg from"node:path";var Dg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",jg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",bE={$id:"https://schemas.dyyto.dev/platform/example-recipe-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","recipeId","version","integrity","title","locale","rootProfile","capabilities","expectedEntrypoint","verifiers","manualAcceptance","cleanup"],properties:{schemaVersion:{const:1},recipeId:{type:"string",pattern:Dg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128}}},capabilities:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","channel"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:jg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Dg}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:jg,maxLength:240}}}}}},$g=new Cg.Ajv2020({allErrors:!0,strict:!0}).compile(bE),Fr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function kE(e){return y(k(e))}function RE(e){if(!$g(e))throw new Fr("EXAMPLE_RECIPE_INVALID",$g.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new Fr("EXAMPLE_RECIPE_INVALID");return t}async function Tg(e){let t=await vE(Sg.resolve(e)),r;try{r=RE(JSON.parse(await IE(Sg.join(t,"recipe.json"),"utf8")))}catch(i){throw i instanceof Fr?i:new Fr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...o}=r;if(kE(o)!==n)throw new Fr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var Vg=Kr(_r(),1);import{readFile as _E,realpath as AE}from"node:fs/promises";import Lg from"node:path";var EE={$id:"https://schemas.dyyto.dev/platform/engineering-template-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","templateId","version","integrity","title","summary","status","profile","parameters","commands","technology","support","integration","metrics"],properties:{schemaVersion:{const:1},templateId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},status:{enum:["candidate","recommended","deprecated"]},profile:{type:"object",additionalProperties:!1,required:["id","capability"],properties:{id:{type:"string",pattern:Z},capability:{type:"string",pattern:`${Z.slice(1,-1)}@[0-9]+\\.[0-9]+\\.[0-9]+$`}}},parameters:{type:"array",minItems:0,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","required","description"],properties:{id:{type:"string",pattern:"^[a-z][A-Za-z0-9]*$"},required:{type:"boolean"},description:{type:"string",minLength:1,maxLength:160}}}},commands:{type:"object",minProperties:1,additionalProperties:!1,properties:{dev:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},build:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},test:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},package:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"}}},technology:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","version","policy","verifiedAt","rationale","alternative","exit"],properties:{id:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:64},policy:{enum:["recommended","allowed"]},verifiedAt:{type:"string",format:"date"},rationale:{type:"string",minLength:1,maxLength:240},alternative:{type:"string",minLength:1,maxLength:160},exit:{type:"string",minLength:1,maxLength:240}}}},support:{type:"object",additionalProperties:!1,required:["owner","tier","supportedFrom","supportedUntil","upgradeCadence","eolNoticeDays"],properties:{owner:{type:"string",pattern:Z},tier:{const:"production"},supportedFrom:{type:"string",format:"date"},supportedUntil:{type:"string",format:"date"},upgradeCadence:{type:"string",minLength:1,maxLength:80},eolNoticeDays:{type:"integer",minimum:30,maximum:730}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","createCommand","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},createCommand:{type:"string",minLength:1,maxLength:2e3},result:{type:"string",minLength:1,maxLength:400}}},metrics:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["time-to-green-build","time-to-first-business-commit","manual-engineering-edits","upgrade-conflicts"]}}}},xg=new Vg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(EE),zt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function PE(e){return y(k(e))}function NE(e){if(!xg(e))throw new zt("TEMPLATE_INVALID",xg.errors??[]);let t=e;if(new Set(t.parameters.map(r=>r.id)).size!==t.parameters.length||new Set(t.technology.map(r=>r.id)).size!==t.technology.length)throw new zt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new zt("TEMPLATE_INVALID");return t}async function Lo(e,t=new Date){let r=await AE(Lg.resolve(e)),n;try{n=NE(JSON.parse(await _E(Lg.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof zt?a:new zt("TEMPLATE_INVALID")}let{integrity:o,...i}=n;if(PE(i)!==o)throw new zt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new zt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Mg}from"node:fs/promises";import Ug from"node:path";var OE=/^[A-Z][A-Z0-9_]*$/u,SE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function DE(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(r.trim());if(!n||!OE.test(n[1]))continue;let o=n[1],i=n[2].trim();t.set(o,{name:o,requirement:i.length===0?"conditional":"optional",secret:SE.test(o),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Fg(e){let t=await Mg(Ug.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Mg(Ug.join(e.projectRoot,t),"utf8"):"",n=await ma({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(i=>e.commands[i]?[{id:i,script:e.commands[i],mode:i==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(i=>({name:i.name,requirement:i.required?"conditional":"optional",secret:i.kind!=="value",configured:i.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:i.display,...i.fingerprint?{fingerprint:i.fingerprint}:{}})):DE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var qg={change:new Set(["plan","apply","upgrade","recover","baseline-next","add-package","add-application","add-feature"]),quality:new Set(["inspect","verify","doctor","maintenance","test","build"]),delivery:new Set(["package","delivery-plan","delivery-apply","delivery-inspect"])},Bg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function zg(e,t){if(!qg[t.plane]||t.state&&!Bg.has(t.state)||t.limit!==void 0&&(!Number.isSafeInteger(t.limit)||t.limit<1||t.limit>200))throw new Error("OPERATION_FILTER_INVALID");let r=qg[t.plane],n=t.from?Date.parse(t.from):null,o=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||o!==null&&Number.isNaN(o)||n!==null&&o!==null&&n>o)throw new Error("OPERATION_FILTER_INVALID");let i=e.filter(l=>r.has(l.operation)),a=[...new Map(i.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=i.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(o===null||Date.parse(l.createdAt)<=o)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(a),states:Object.freeze([...Bg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Qe=class extends Error{code;constructor(t){super(t),this.code=t}},jE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Jg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,$E=/^sha512-[A-Za-z0-9+/]{86}==$/u,Aa=/^sha256:[a-f0-9]{64}$/u,CE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,TE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,LE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function qr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,i)=>o===n[i])}function xE(e){if(!qr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!jE.test(e.packageName)||!Jg.test(e.version)||!CE.test(e.assetName)||!$E.test(e.integrity)||!Aa.test(e.tarballDigest)||typeof e.dependencies!="object"||e.dependencies===null||Array.isArray(e.dependencies)||e.lifecycleScripts.length>0)return!1;let t=Object.entries(e.dependencies);return t.length>256||t.some(([r,n])=>!/^(@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u.test(r)||!Jg.test(n)||TE.test(n))?!1:e.lifecycleScripts.every(r=>LE.has(r))}function Zl(e){if(!qr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(i=>Object.freeze({...i,dependencies:Object.freeze({...i.dependencies}),lifecycleScripts:Object.freeze([...i.lifecycleScripts])}));if(t.some(i=>!xE(i)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(i=>i.packageName+"@"+i.version);if(new Set(r).size!==r.length||r.some((i,a)=>a>0&&i.localeCompare(r[a-1])<=0))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(i=>i.packageName));for(let i of t)for(let[a,s]of Object.entries(i.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let o={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...o,bundleId:y(k(o))})}function Br(e){let t=e;if(typeof t!="object"||t===null||!qr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Aa.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");if(Zl({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Ql(e){if(!qr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(o=>Object.freeze({...o}));if(t.some(o=>!qr(o,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o.relativeRoot)||!Aa.test(o.manifestDigest))||new Set(t.map(o=>o.relativeRoot)).size!==t.length)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let r=Br(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:y(k(n))})}function Gg(e){let t=e;if(typeof t!="object"||t===null||!qr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Aa.test(t.planId)||!qr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");if(Ql({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Wg(e){let t=Br(e.bundle),r=Ao(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Ol({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ye=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Kg=/^sha256:[a-f0-9]{64}$/u,Ea=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function ed(e){if(!Ea.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Kg.test(r))||!Ea.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(k(t))})}function Yg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let r=ed({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");return r}function td(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Kg.test(r))||!Ea.test(e.workerReleaseId)||!Ea.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function Pa(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let r=td({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");return r}var xo=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},rd=/^sha256:[a-f0-9]{64}$/u,VE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function nd(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>rd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!VE.test(r.path)||!rd.test(r.currentDigest)||!rd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new xo("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:y(k(t))})}function Hg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new xo("RECOVERY_OVERRIDE_INVALID");let r=nd({transactionPlanId:t.transactionPlanId,transactionRootDigest:t.transactionRootDigest,conflicts:t.conflicts,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new xo("RECOVERY_OVERRIDE_INVALID");return r}var Vo=class extends Error{code;constructor(t,r){super(r),this.code=t}},id=/^sha256:[a-f0-9]{64}$/u,ME=/^sha512-[A-Za-z0-9+/]{86}==$/u,UE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,FE=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,qE=/[\u0000-\u001f\u007f]/u;function _n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function An(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,i)=>o===n[i])}function Jt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!qE.test(e)}function od(e){return Jt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Xg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Jt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function BE(e){return e===null?!0:!_n(e)||!An(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:od(e.fileName)&&id.test(String(e.digest))&&ME.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function zE(e){if(!_n(e)||!An(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!UE.test(e.packageName)||!FE.test(e.version)||!Jt(e.title,120)||!Jt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!_n(e.source)||!An(e.source,["repository","path","revision","treeDigest"])||!Jt(e.source.repository)||!od(e.source.path)||!Jt(e.source.revision,200)||!id.test(String(e.source.treeDigest))||!BE(e.artifact)||!_n(e.compatibility)||!An(e.compatibility,["node","packageManager"])||!Jt(e.compatibility.node,100)||!Jt(e.compatibility.packageManager,100)||!Xg(e.exports)||!Xg(e.consumerEvidence)||!_n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!An(e.documentation,t)||!od(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Jt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function JE(e){let t={schemaVersion:1,kind:"PackageRelease",...e,source:Object.freeze({...e.source}),artifact:e.artifact===null?null:Object.freeze({...e.artifact}),compatibility:Object.freeze({...e.compatibility}),exports:Object.freeze([...e.exports]),documentation:Object.freeze({...e.documentation}),consumerEvidence:Object.freeze([...e.consumerEvidence])};if(!zE(t))throw new Vo("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(k(t))})}function Zg(e){if(!_n(e)||!An(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!id.test(String(e.releaseDigest)))throw new Vo("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...o}=e,i=JE(o);if(i.releaseDigest!==t)throw new Vo("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return i}import{lstat as GE,readFile as WE,realpath as KE}from"node:fs/promises";import Qg from"node:path";async function eh(e){let t=await KE(Qg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,o=[...e.lock.capabilities].sort((a,s)=>a.committedAt.localeCompare(s.committedAt)||a.capabilityId.localeCompare(s.capabilityId));for(let a of o)if(!r.has(a.capabilityId))for(let s of a.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let p of n.keys())p.startsWith(l)&&n.delete(p);let d=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(d,{capabilityId:a.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let i=[];for(let a of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Qg.join(t,...a.path.split("/")),l=await GE(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await WE(s);if(a.ownership!=="managed-region")return y(p);if(a.regionId!==void 0)try{return y($i(p.toString("utf8"),a.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===a.digest;i.push({capabilityId:a.capabilityId,path:a.path,kind:"create",ownership:a.ownership,...a.regionId===void 0?{}:{regionId:a.regionId},desiredDigest:a.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return i}import{readFile as re,readdir as gh,realpath as Rt}from"node:fs/promises";import{execFile as lP,spawn as dP}from"node:child_process";import N from"node:path";import{parseArgs as ue,promisify as pP}from"node:util";import{lstat as th,mkdir as sd,readFile as rh,realpath as ad,rm as YE,writeFile as nh}from"node:fs/promises";import et from"node:path";var tt=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},HE=e=>k(e),oh=e=>y(HE(e));async function ih(e,t){let r=await ad(et.resolve(e)),n=et.join(r,".examples");await sd(n,{recursive:!0});let o=await ad(n),i=et.resolve(r,t);if(et.dirname(i)!==o||et.basename(i).startsWith(".")||et.basename(i).length<1)throw new tt("SCAFFOLD_ARGUMENT_INVALID");if(await th(i).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new tt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:i,outputRelativePath:et.relative(r,i)}}async function ah(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new tt("SCAFFOLD_ARGUMENT_INVALID");let r=await ih(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),o={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},i={...o,planId:oh(o)},a=et.join(r.workspaceRoot,".dyyto","scaffold-plans");await sd(a,{recursive:!0});let s=et.join(a,`${i.planId}.json`);return await nh(s,`${k(i)}
|
|
46
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
47
|
-
`)throw new tt("SCAFFOLD_PLAN_INVALID")}),
|
|
48
|
-
`,{flag:"wx",mode:384}),{evidenceId:i,output:r.output,receipts:n}}import{lstat as Mo,readFile as cd,readdir as ZE,realpath as ld}from"node:fs/promises";import me from"node:path";var ch={capabilities:me.resolve(import.meta.dirname,"catalog"),packages:me.resolve(import.meta.dirname,"package-releases")};function dh(e,t){return e<t?-1:e>t?1:0}function Oa(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Oa).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>dh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Oa(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function QE(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(o===""||o.startsWith("#"))continue;if(o.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let i=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o);if(!i)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(i[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${i[1]}`);let a=i[2].trim();if((a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),/[`$][({]?/u.test(a))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(i[1],a)}return t}async function lh(e,t){let r=await Mo(e);if(!r.isFile()||r.isSymbolicLink()||r.nlink!==1)throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u975E\u94FE\u63A5\u6587\u4EF6`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-385)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80600`)}async function Na(e,t){let r=await Mo(e);if(!r.isDirectory()||r.isSymbolicLink())throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u4E14\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-449)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80700`);return ld(e)}async function eP(e){let t=e;for(;;){if(await Mo(me.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=me.dirname(t);if(r===t)return;t=r}}async function tP(e){if(!me.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Na(e,"IDP_CONFIG_DIR");await eP(t);let r=await Na(me.join(t,"components"),"components"),n=await Na(me.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),o=me.relative(t,n);if(o.startsWith("..")||me.isAbsolute(o))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let i=me.join(n,".env");await lh(i,"Dyyto \u7EC4\u4EF6 .env");let a=QE(await cd(i,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(me.isAbsolute(a)||a.includes("\0")||/[*?{}[\]]/u.test(a))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=me.resolve(n,a),c=me.relative(n,s);if(c===""||c.startsWith("..")||me.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(me.sep).slice(0,-1))l=await Na(me.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await ld(me.dirname(s)),p=me.relative(n,d);if(p.startsWith("..")||me.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await lh(s,"Package Catalog Binding");let f=[];for(let u of(await cd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!me.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Mo(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await ld(m),w=await Mo(h);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(h)||f.push(h)}return f.sort()}async function rP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await tP(e);return{capabilities:ch.capabilities,packages:[ch.packages,...t]}}async function Sa(e){return(await ZE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function nP(e,t){let r=i=>i.split("-",1)[0].split(".").map(Number),n=r(e),o=r(t);for(let i=0;i<3;i+=1){let a=(n[i]??0)-(o[i]??0);if(a!==0)return a}return e.localeCompare(t)}function oP(e){let t=e.schemaVersion===2?e.availability.maturity:"legacy-unverified",r="consumerProfile"in e?e.consumerProfile:"\u591A\u79CD\u5DE5\u7A0B Profile";return{kind:"capability",ref:`capability:${e.capabilityId}@${e.version}`,id:e.capabilityId,version:e.version,title:e.capabilityId,summary:`\u9002\u7528\u4E8E ${r} \u7684\u5DE5\u7A0B\u80FD\u529B\u53D1\u884C\u3002`,maturity:t,integrity:e.integrity}}function iP(e){return{kind:"package",ref:`package:${e.packageName}@${e.version}`,id:e.packageName,version:e.version,title:e.title,summary:e.summary,maturity:e.maturity,integrity:e.releaseDigest}}async function aP(e){let t=[];for(let r of await Sa(e))for(let n of await Sa(me.join(e,r))){let o=`capability:${r}@${n}`;t.push(ve(me.join(e,r,n)).then(i=>({entry:{item:oP(i.release),release:i.release}})).catch(()=>({diagnostic:{ref:o,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function sP(e){let t=[];for(let r of await Sa(e))for(let n of await Sa(me.join(e,r))){let o=me.join(e,r,n,"release.json"),i=`package:${r}@${n}`;t.push(cd(o,"utf8").then(a=>{let s=Zg(JSON.parse(a));return{entry:{item:iP(s),release:s}}}).catch(()=>({diagnostic:{ref:i,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function dd(e){let t=e??await rP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...o]=await Promise.all([aP(t.capabilities),...r.map(sP)]),i=[...n.entries,...o.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),a=[],s=new Set,c=[];for(let l of i)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),a.push(l));return{entries:a,diagnostics:[...n.diagnostics,...o.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Da(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await dd(e.roots),n=new Map;for(let{item:a}of r.entries){if(e.kind!==void 0&&a.kind!==e.kind)continue;let s=[a.id,a.version,a.title,a.summary,a.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${a.kind}:${a.id}`,l=n.get(c);(l===void 0||nP(l.version,a.version)<0)&&n.set(c,a)}let o=[...n.values()].sort((a,s)=>a.ref.localeCompare(s.ref)),i=e.limit??50;return{query:t,total:o.length,items:o.slice(0,i),diagnostics:r.diagnostics}}async function ja(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await dd(e.roots),n=r.entries.find(({item:i})=>i.ref===t),o=r.diagnostics.find(i=>i.ref===t);if(o?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&o!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function cP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let o=n;if(typeof o.capabilityId!="string"||typeof o.version!="string"||!Array.isArray(o.integration?.packages))continue;let i=`capability:${o.capabilityId}@${o.version}`;for(let a of o.integration.packages){if(typeof a!="object"||a===null)continue;let s=a;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(i),t.set(c,l)}}return t}async function ph(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await dd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=cP(r.entries),o=r.entries.filter(({item:a})=>a.kind==="package").map(({release:a})=>{let s=a;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((a,s)=>dh(a.ref,s.ref)),i={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(o)};return Object.freeze({...i,sourceDigest:y(Oa(i))})}function uh(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(Oa(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
-
`}var Uo={"typescript-library":"foundation.typescript-quality@1.0.0","standalone-npm-package":"foundation.standalone-npm-package@1.2.0","workspace-root":"foundation.workspace-root@1.1.0","workspace-npm-package":"foundation.workspace-npm-package@1.2.0","workspace-node-application":"foundation.workspace-node-application@1.1.0","workspace-web-application":"foundation.workspace-web-application@1.1.0","workspace-expo-application":"foundation.workspace-expo-application@1.0.0","react-component-library":"foundation.react-component-library@1.1.0","workspace-react-component-library":"foundation.workspace-react-component-library@1.2.0","nextjs-full-stack-application":"foundation.nextjs-full-stack-application@1.0.0"},hh=pP(lP),uP=new Set(["template.typescript-library@1.0.0","template.typescript-library@1.1.0","template.react-component-library@1.0.0","template.react-component-library@1.1.0","template.nextjs-full-stack-application@1.0.0","template.expo-react-native-application@1.0.0","template.node-api-application@1.0.0","template.workspace-root@1.0.0","template.workspace-root@1.1.0","template.workspace-root@1.2.0","template.workspace-npm-package@1.0.0","template.workspace-react-component-library@1.0.0","template.workspace-react-component-library@1.1.0","template.workspace-react-component-library@1.2.0","template.web-frontend-application@1.0.0"]),yh=(e,t)=>e==="foundation.workspace-root"&&t==="1.4.0"?{id:"template.workspace-root",version:"1.1.0"}:e==="foundation.workspace-root"&&t==="1.5.0"?{id:"template.workspace-root",version:"1.2.0"}:void 0,$a={"workspace-npm-package":{id:"template.workspace-npm-package",version:"1.0.0"},"react-component-library":{id:"template.workspace-react-component-library",version:"1.2.0"},"workspace-web-application":{id:"template.web-frontend-application",version:"1.0.0"},"workspace-node-application":{id:"template.node-api-application",version:"1.0.0"},"workspace-expo-application":{id:"template.expo-react-native-application",version:"1.0.0"},"nextjs-full-stack-application":{id:"template.nextjs-full-stack-application",version:"1.0.0"}};function wh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Ca(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let o=await re(N.join(e,"package.json")),i=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await Ut(e),c=await re(N.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=Po({release:t.release,packageJson:n??o}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...i,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=$l({release:t.release,packageJson:n??o}),d=await a({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:i.registryConfigs,endpointBindings:i.endpointBindings});return{...i,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Ih(e,t,r,n){let o=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(o&&!o.packageAdoption){let b=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return Ng({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!o?.packageAdoption)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let i=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Ut(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==o).flatMap(b=>b.packageAdoption?.sources.map(A=>A.packageName)??[])),p=o.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?Tl({packageJson:a,remove:p}):Cl({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==o).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),A=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...o.assets.map(R=>`${c.unitRelativeRoot}/${R.path}`)],I=await Promise.all(A.map(async R=>re(N.join(c.transactionRoot,...R.split("/"))).then(S=>({path:R,exists:!0,digest:y(S)})).catch(S=>S.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(S))));return{...Tm({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,endpointBindings:i.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...o.packageAdoption.sources],registries:i.registryConfigs,endpointBindings:i.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...o.assets.map(b=>b.path)].map(async b=>re(N.join(e,...b.split("/"))).then(A=>({path:b,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(A))));return{...Cm({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:i.endpointBindings,observedAssets:_,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings}}function z(e){return e.includes("--json")?"json":"human"}function v(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Se(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Ta(e,t){return uP.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function fP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function La(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await ve(Se(r.capabilityId,r.version)),o=await Le(e).catch(()=>null),i=new Date,s=await(t.profile?.id==="standalone-npm-package"?Io:t.profile?.id==="react-component-library"?vo:t.profile?.id==="nextjs-full-stack-application"?vn:t.profile?.id==="workspace-npm-package"?bo:t.profile?.id==="workspace-node-application"?ko:t.profile?.id==="workspace-web-application"?Ro:t.profile?.id==="workspace-expo-application"?_o:xi)({projectRoot:e,manifest:t,release:n,...o===null?{}:{currentLock:o},generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString()});return Mt({projectRoot:e,plan:s.plan,now:i.toISOString()})}async function vh(e){let t;try{t=ue({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Lo(Ta(g,h))}let o=n?.profile.id??t.values.profile;if(o!=="typescript-library"&&o!=="standalone-npm-package"&&o!=="react-component-library"&&o!=="nextjs-full-stack-application"&&o!=="workspace-root")return v("Create requires a supported --profile.");let i=t.values.capability,a=o==="workspace-root"&&i==="foundation.workspace-root@1.0.0"||o==="standalone-npm-package"&&i==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(a?i:Uo[o]);if(n!==void 0&&s.split("@")[0]!==Uo[o].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&i!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&i!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(o==="standalone-npm-package"||o==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,_=t.values["publish-access"],b=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof b=="string"?{repository:b}:{}}}else if(o==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:o,parameters:d},capabilities:[{capabilityId:c,version:l}]};(o==="standalone-npm-package"||o==="react-component-library")&&lr(Y(p),o),o==="nextjs-full-stack-application"&&Cr(Y(p));let f=await Zi({projectRoot:t.positionals[0],manifest:p}),u=await La(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
|
|
13
|
+
`}${o}
|
|
14
|
+
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new jt("Managed regions cannot overlap");return`${e.source.slice(0,s)}${o}${e.source.slice(c)}`}import Hf from"node:path";var nr=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Fa(e){if(e.length===0||Hf.posix.isAbsolute(e)||Hf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new nr("Asset path must be a normalized project-relative POSIX path",e)}function mA(e,t){Fa(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(ee).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new nr("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Ae(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new nr("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new nr("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Fa(s.path),t.has(s.path))throw new nr("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new nr("Proposed change paths must be unique",s.path);return r.add(s.path),mA(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),i={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},a=y(k(i)),o={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:i.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:a,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...o,planId:y(k(o))}}function Ua(e){return y(k(e))}var Xf=Hr(Er(),1);var te={type:"string",pattern:Nt},fn={type:"string",pattern:ee},Or={type:"string",minLength:1,maxLength:128},Nr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},gA={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:fn,version:Or,integrity:te,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Nr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:te}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},hA={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:fn,version:Or}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:ee},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:fn,version:Or}}}}},yA={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:fn,version:Or,integrity:te,appliedPlanId:te,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Nr,digest:te}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},wA={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:fn,capabilityVersion:Or,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},IA={$id:"https://schemas.dyyto.dev/platform/change-plan-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","planId","action","state","capability","generatedAt","expiresAt","inputDigest","operations"],properties:{schemaVersion:{const:1},planId:te,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:fn,version:Or,integrity:te}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:te,packageAdoption:{type:"object",additionalProperties:!1,required:["schemaVersion","packageJsonPreimageDigest","desiredPackageJsonDigest","lockfilePreimage","desiredLockfileDigest","registryRevisions","endpointBindings","sources","installPolicy"],properties:{schemaVersion:{enum:[1,2]},sourceChannel:{enum:["production","development"]},packageJsonPreimageDigest:te,desiredPackageJsonDigest:te,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:te}}]},desiredLockfileDigest:te,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:te}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:te,bindingDigest:te,expiresAt:{type:"string",format:"date-time"}}}},sources:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",minLength:1,maxLength:128},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$"},version:Or,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:te,deliveryReceiptId:te,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:Nr,unitImporterId:Nr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:te}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:Nr,preimageDigest:te,desiredDigest:te}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:Nr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:te,baseDigest:te,regionId:{type:"string",pattern:ee},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},vA={$id:"https://schemas.dyyto.dev/platform/transaction-journal-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","transactionId","planId","approvedPlanId","projectRootDigest","state","createdAt","updatedAt","operations","journalDigest"],properties:{schemaVersion:{const:1},transactionId:{type:"string",minLength:1,maxLength:128},planId:te,approvedPlanId:te,projectRootDigest:te,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:Nr,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:te,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:te}}]},desiredDigest:te,status:{enum:["pending","applied","restored"]}}}},failure:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",minLength:1,maxLength:128},operationIndex:{type:"integer",minimum:0}}},journalDigest:te}},Pr=new Xf.Ajv2020({allErrors:!0,strict:!0});Pr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var al={capabilityRelease:Pr.compile(gA),projectManifest:Pr.compile(hA),projectLock:Pr.compile(yA),evidence:Pr.compile(wA),changePlan:Pr.compile(IA),transactionJournal:Pr.compile(vA)},il=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ol(e,t,r){if(!t(r))throw new il(e,t.errors??[]);return r}var W=e=>ol("projectManifest",al.projectManifest,e);var ir=e=>ol("changePlan",al.changePlan,e),Zf=e=>ol("transactionJournal",al.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function qa(e){if(e.currentLock!==void 0){let a=await Ba({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:a.plan.state==="conflicted"?"drifted":"adopted",operations:a.plan.operations}}let t=await cl(mn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let a of e.release.release.assets){let o=await ll(t,a.path);o.exists&&(n+=1),o.digest===a.digest&&(i+=1),r.push({path:a.path,kind:"create",ownership:a.ownership,desiredDigest:a.ownership==="seed-file"&&o.digest?o.digest:a.digest,disposition:o.exists?a.ownership==="seed-file"||o.digest===a.digest?"noop":"conflict":"ready",...o.exists&&o.digest!==a.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:i===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function ll(e,t){let r=mn.join(e,...t.split("/"));try{let n=await bA(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Blank profile target must be a regular file",t);return{path:t,exists:!0,digest:y(await sl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Dr(e){let t=await cl(mn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await ll(t,n.path),a=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{a=y(Ma(await sl(mn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{a=!1}if(!a)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(k(r))}}async function Ba(e){let t=W(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let i=(e.currentLock===void 0?void 0:Be(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(i!==void 0&&(i.version!==e.release.release.version||i.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let a=await cl(mn.resolve(e.projectRoot)),o=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await ll(a,d.path);if(o.push(p),p.exists&&i===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await sl(mn.join(a,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Ae({action:"adopt",capability:l,changes:s,observedAssets:o,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as RA,lstat as Ya,mkdir as gn,open as tm,readFile as Ha,realpath as AA,rename as Wa,rm as dl,unlink as Sr}from"node:fs/promises";import{constants as Ja}from"node:fs";import{homedir as _A}from"node:os";import K from"node:path";import{randomUUID as wn}from"node:crypto";function kA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function ct(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Qf(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Qf(e.context,e.operation,e.bytes??0,t,"failed",kA(r)),r}}async function Qf(e,t,r,n,i,a){if(e?.sink===void 0)return;let o=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:o.toString(),result:i,...a===void 0?{}:{errorCategory:a}},c=Object.freeze({...s,eventId:y(k(s))});try{await e.sink(c)}catch{}}var rm=Symbol("prepared-transaction"),ar=new Map,EA=5*1024*1024,PA=25*1024*1024,em=8,Ka=class extends Error{};async function za(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new Ka("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function fi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function Mt(e){try{return await Ya(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function In(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function It(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function lt(e,t){let r=await tm(e,Ja.O_RDONLY);try{await ct({context:In(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function mi(e,t,r=384,n){let i=await tm(e,Ja.O_CREAT|Ja.O_EXCL|Ja.O_WRONLY,r);try{await ct({context:In(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await ct({context:In(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function pl(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${wn()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
+
`);await mi(i,a,384,r),await ct({context:In(r),operation:"rename",bytes:a.byteLength,run:()=>Wa(i,e)}),await lt(n,r)}function ul(e){return{...e,journalDigest:y(k(e))}}function NA(e){let t;try{t=Zf(e)}catch{throw new C("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(k(n)))throw new C("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let i=new Set;for(let[a,o]of t.operations.entries()){if(o.index!==a||i.has(o.path)||o.kind==="create"&&o.before.kind!=="absent"||o.kind!=="create"&&o.before.kind!=="present"||o.kind!=="remove"&&o.desiredDigest===void 0||o.kind==="remove"&&o.desiredDigest!==void 0)throw new C("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");i.add(o.path)}return t}async function fl(e){try{return NA(JSON.parse(await Ha(e,"utf8")))}catch(t){throw t instanceof C?t:new C("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function or(e,t,r){let{journalDigest:n,...i}=t,a=ul(i);return await pl(e,a,r),a}async function Xa(e){let t=K.resolve(e),r=K.parse(t);if(t===r.root||t===K.resolve(_A()))throw new C("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await Ya(t);if(!n.isDirectory()||n.isSymbolicLink())throw new C("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let i=await AA(t);if(i!==t)throw new C("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return i}function vn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||K.posix.isAbsolute(t)||K.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new C("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=K.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${K.sep}`))throw new C("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function hn(e,t){let r=t.split("/"),n=e;for(let i of r){n=K.join(n,i);try{if((await Ya(n)).isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(a){if(a.code==="ENOENT")return;throw a}}}async function yn(e){try{let t=await Ya(e);if(!t.isFile()||t.isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await Ha(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function OA(e,t,r){ir(e);let{planId:n,...i}=e;if(Ua(i)!==e.planId)throw new C("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new C("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new C("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new C("PLAN_EXPIRED","Plan has expired")}function DA(e){let t=e.operations.filter(r=>r.disposition==="ready");for(let r of t)if(!((r.ownership==="owned-file"||r.ownership==="seed-file")&&["create","replace","remove"].includes(r.kind)||r.ownership==="managed-region"&&r.kind==="merge"&&r.regionId!==void 0))throw new C("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function ml(e,t,r){try{await mi(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
16
|
+
`),384,r),await lt(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Ga(e){try{let t=JSON.parse(await Ha(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function SA(e,t,r){return{[rm]:!0,projectRoot:e,plan:t,transactionId:r}}async function jA(e,t){OA(e.plan,e.approvedPlanId,e.now);let r=await Xa(e.projectRoot),n=DA(e.plan),i=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(vn(r,u.path),await hn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||y(m)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let a=fi(r,e.plan.planId);await gn(a.platformDirectory,{recursive:!0,mode:448}),await hn(r,".dyyto");let o=wn();await ml(a.lock,{schemaVersion:1,transactionId:o,planId:e.plan.planId,startedAt:e.now,nonce:wn()},It(t?.durabilityTrace,"prepare","lock",`${o}:prepare-lock`));let s=e.limits?.maxFileBytes??EA,c=e.limits?.maxTransactionBytes??PA,l=0,d=[],p=[],f=!1;try{if(await za(t,"lock-created"),await Mt(a.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await gn(a.preimages,{recursive:!0,mode:448}),await gn(a.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=vn(r,g.path);await hn(r,g.path);let w=await yn(h);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let A={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=K.join(a.preimages,`${m}.bin`);await mi(b,w.bytes,384,It(t?.durabilityTrace,"prepare","preimage",`${o}:preimage:${m}`)),p.push(m),await za(t,"preimage-written-pending-directory-sync",m),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await lt(a.preimages,It(t?.durabilityTrace,"prepare","directory",`${o}:preimages-directory-batch`));for(let m of p)await za(t,"preimage-persisted",m)}let u=ul({schemaVersion:1,transactionId:o,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await pl(a.journal,u,It(t?.durabilityTrace,"prepare","journal",`${o}:journal-prepared`)),ar.set(o,{desiredContents:e.desiredContents,journal:u}),await za(t,"journal-prepared"),SA(r,e.plan,o)}catch(u){if(u instanceof Ka)throw ar.delete(o),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await dl(a.transactionDirectory,{recursive:!0,force:!0}),await Sr(a.lock),await lt(a.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function sr(e){return jA(e)}async function $A(e,t,r,n){return or(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},It(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function CA(e,t,r,n,i,a){let o=vn(e,n.path);await hn(e,n.path);let s=await yn(o);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=K.join(t.quarantine,`${n.index}.bin`),f=It(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await ct({context:In(f),operation:"rename",run:()=>Wa(o,p)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(o),t.quarantine]}let c=i.get(n.path);if(c===void 0||y(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await gn(K.dirname(o),{recursive:!0}),await hn(e,n.path);let l=K.join(K.dirname(o),`.dyyto-${r}-${n.index}.tmp`),d=It(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await mi(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await a?.onCheckpoint?.("temporary-file-synced",n.index),await ct({context:In(d),operation:"rename",bytes:c.byteLength,run:()=>Wa(l,o)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(o)]}async function TA(e,t){let r=ar.get(e.transactionId);if(r===void 0||e[rm]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=fi(e.projectRoot,e.plan.planId),i=await or(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},It(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let a=new Map;for(let o=0;o<i.operations.length;o+=em){let s=i.operations.slice(o,o+em),c=await Promise.allSettled(s.map(d=>CA(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)a.has(p)||a.set(p,It(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[o,s]of a)await lt(o,s);for(let o of i.operations)await t?.onCheckpoint?.("target-renamed",o.index),o.status="applied",await t?.onCheckpoint?.("operation-applied",o.index);i=await or(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},It(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let o of i.operations)await t?.onCheckpoint?.("operation-journaled",o.index);return i=await or(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},It(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Sr(n.lock),await lt(n.platformDirectory),ar.delete(e.transactionId),jr(i)}catch(a){throw i=await $A(n,i,a instanceof C?a.operationIndex:void 0,t?.durabilityTrace),ar.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function cr(e){return TA(e)}function jr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Ft(e){let t=await Xa(e.projectRoot),r=fi(t,e.planId);if(!await Mt(r.journal)){if(!await Mt(r.lock))return null;let n=await Ga(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return jr(await fl(r.journal))}async function LA(e,t,r){await gn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${wn()}.tmp`);await mi(n,t,r&511),await Wa(n,e),await RA(e,r&511),await lt(K.dirname(e))}async function nm(e){let t=await Xa(e.projectRoot),r=fi(t,e.planId);if(!await Mt(r.journal)){if(!await Mt(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await Ga(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await dl(r.transactionDirectory,{recursive:!0,force:!0}),await gn(r.transactionDirectory,{recursive:!0,mode:448});let a=ul({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:y(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await pl(r.journal,a),await Sr(r.lock),await lt(r.platformDirectory),jr(a)}let n=await fl(r.journal);if(n.state==="recovered")return jr(n);if(n.state==="applied"){for(let i of n.operations){let a=await yn(vn(t,i.path));if(!(i.kind==="remove"?a===void 0:a?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Mt(r.lock)){let i=await Ga(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Sr(r.lock),await lt(r.platformDirectory)}return ar.delete(n.transactionId),jr(n)}if(n.projectRootDigest!==y(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Mt(r.lock)){let i=await Ga(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await ml(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:wn()});n=await or(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let a=vn(t,i.path);if(await hn(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(a),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Mt(s)){if((await yn(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Sr(s),await lt(K.dirname(s))}}let o=await yn(a);if(i.before.kind==="absent"){if(o!==void 0){if(o.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Sr(a),await lt(K.dirname(a))}}else if(o?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=o?.digest===i.desiredDigest,l=i.kind==="remove"&&o===void 0&&await Mt(s),d=e.approvedConflicts?.find(f=>f.path===i.path&&f.currentDigest===o?.digest);if(!c&&!l&&!d)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let p=await Ha(K.join(r.preimages,`${i.index}.bin`));if(y(p)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await LA(a,p,i.before.mode),l&&await dl(s,{force:!0})}i.status="restored",n=await or(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await or(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Sr(r.lock),await lt(r.platformDirectory),ar.delete(n.transactionId),jr(n)}async function gi(e){return nm(e)}async function gl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return nm(e)}async function hl(e){let t=await Xa(e.projectRoot),r=fi(t,e.planId),n=await fl(r.journal);if(n.state==="recovered")return jr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let a of n.operations){let o=await yn(vn(t,a.path)),s=a.kind==="remove"?o===void 0:o?.digest===a.desiredDigest,c=a.before.kind==="absent"?o===void 0:o?.digest===a.before.digest;if(!s&&!c){i=a;break}}if(await ml(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:wn()}),n=await or(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return ar.set(n.transactionId,{desiredContents:new Map,journal:n}),gi({projectRoot:t,planId:e.planId,now:e.now})}var ve=class extends Error{code;constructor(t,r){super(r),this.code=t}},hi=class extends Error{};function Ii(e,t){let r=_e.join(e,".dyyto"),n=_e.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:_e.join(r,"evidence"),lockFile:_e.join(r,"project-lock.json"),transactionLock:_e.join(r,"metadata-lock.json"),transactionDirectory:n,journal:_e.join(n,"journal.json")}}async function lr(e){try{return await xA(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Ut(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function to(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function ro(e,t){let r=await im(e,Qa.O_RDONLY);try{await ct({context:to(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Il(e,t,r){let n=await im(e,Qa.O_CREAT|Qa.O_EXCL|Qa.O_WRONLY,384);try{await ct({context:to(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await ct({context:to(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function yi(e,t,r){let n=_e.dirname(e),i=_e.join(n,`.tmp-${wl()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
+
`);await Il(i,a,r),await ct({context:to(r),operation:"rename",bytes:a.byteLength,run:()=>VA(i,e)}),await ro(n,r)}function vl(e){return{...e,journalDigest:y(k(e))}}async function Za(e,t,r){let{journalDigest:n,...i}=t,a=vl(i);return await yi(e,a,r),a}async function am(e){try{let t=JSON.parse(await wi(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==y(k(n)))throw new Error("invalid journal");return t.evidence.forEach(ui),Be(t.lock),t}catch{throw new ve("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function bl(e,t,r){try{await Il(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
18
|
+
`),r),await ro(_e.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new ve("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function om(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(k(r))}}function sm(e,t,r){let n=t.map(Wf),i=e.verifiers.map(o=>o.id).sort(),a=n.map(o=>o.verifierId).sort();if(i.length!==a.length||i.some((o,s)=>o!==a[s]))throw new ve("VERIFICATION_INCOMPLETE","Verification results do not cover the release verifier set");for(let o of n){if(o.commandId!==o.verifierId||o.result!=="passed"||o.exitCode!==0)throw new ve("VERIFICATION_FAILED",`Verifier ${o.verifierId} did not pass`);if(o.projectStateDigest!==r)throw new ve("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function MA(e,t,r){let n=_e.join(e,`${t.evidenceId}.json`);if(await lr(n)){let i=ui(JSON.parse(await wi(n,"utf8")));if(k(i)!==k(t))throw new ve("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await Il(n,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
19
|
+
`),r),await ro(e,r)}async function FA(e,t,r,n){if(await lr(e)){let i=Be(JSON.parse(await wi(e,"utf8")));if(k(i)===k(t))return;if(r===void 0||y(k(i))!==r)throw new ve("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await yi(e,t,n);return}await yi(e,t,n)}async function eo(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new hi("Simulated metadata crash",{cause:r})}}async function kl(e,t,r){let n=Ii(e,t.planId),i=t;try{for(let a of i.evidence)await MA(n.evidenceDirectory,a,Ut(r?.durabilityTrace,"evidence",`${i.transactionId}:evidence`));return i=await Za(n.journal,{...i,state:"evidence-written",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${i.transactionId}:evidence-written`)),await eo(r,"evidence-written"),await FA(n.lockFile,i.lock,i.previousLockDigest,Ut(r?.durabilityTrace,"lock",`${i.transactionId}:project-lock`)),i=await Za(n.journal,{...i,state:"lock-written",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${i.transactionId}:lock-written`)),await eo(r,"lock-written"),i=await Za(n.journal,{...i,state:"committed",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${i.transactionId}:committed`)),await eo(r,"committed"),await yl(n.transactionLock),await ro(n.platformDirectory,Ut(r?.durabilityTrace,"directory",`${i.transactionId}:unlock`)),i.lock}catch(a){if(a instanceof hi)throw new ve("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Za(n.journal,{...i,state:"recovery-required",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${i.transactionId}:recovery-required`))}catch{}throw a}}async function UA(e){let t=await $r(_e.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await $r(_e.resolve(e.transactionRoot));if((await Ft({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new ve("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i;try{i=await Dr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new ve("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let o=sm(e.release,e.verificationResults,i.projectStateDigest).map(m=>om(e.release,m)),s={capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,consumerProfile:e.release.consumerProfile,appliedPlanId:e.plan.planId,projectStateDigest:i.projectStateDigest,assets:i.assets,evidenceIds:o.map(m=>m.evidenceId).sort(),committedAt:e.committedAt,...e.plan.packageAdoption===void 0?{}:{packageAdoption:{...e.plan.packageAdoption.sourceChannel===void 0?{}:{sourceChannel:e.plan.packageAdoption.sourceChannel},registryRevisions:e.plan.packageAdoption.registryRevisions.map(m=>({...m})),sources:e.plan.packageAdoption.sources.map(m=>({...m})),packageJsonDigest:e.plan.packageAdoption.desiredPackageJsonDigest,lockfileDigest:e.plan.packageAdoption.desiredLockfileDigest}}},c=e.previousLock?.capabilities??[],l=e.previousLock!==void 0&&e.plan.action==="adopt"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):e.previousLock!==void 0&&e.plan.action==="upgrade"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):[s],d={schemaVersion:l.some(m=>m.packageAdoption!==void 0)?2:1,capabilities:l};Be(d);let p=Ii(t,e.plan.planId);if(await bn(p.platformDirectory,{recursive:!0,mode:448}),await bn(p.evidenceDirectory,{recursive:!0,mode:448}),await lr(p.lockFile)&&e.previousLock===void 0){let m=Be(JSON.parse(await wi(p.lockFile,"utf8")));if(k(m)===k(d))return m;throw new ve("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=wl();if(await bl(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},Ut(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await lr(p.transactionDirectory))throw await yl(p.transactionLock),new ve("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await bn(p.transactionDirectory,{recursive:!0,mode:448});let u=vl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:o,lock:d,...e.previousLock===void 0?{}:{previousLockDigest:y(k(Be(e.previousLock)))}});await yi(p.journal,u,Ut(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await eo(e.hooks,"journal-prepared")}catch(m){throw m instanceof hi?new ve("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return kl(t,u,e.hooks)}async function Rl(e){return UA(e)}async function Al(e){let t=await $r(_e.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await $r(_e.resolve(e.transactionRoot));if((await Ft({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new ve("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i=e.previousLock.capabilities.find(h=>h.capabilityId===e.release.capabilityId&&h.version===e.release.version);if(i===void 0)throw new ve("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let a=e.previousLock.capabilities.filter(h=>h!==i),o=e.plan.packageAdoption?.schemaVersion===2&&e.plan.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${e.plan.packageAdoption.topology.unitRelativeRoot}/`:"",s=new Map(e.plan.operations.flatMap(h=>h.desiredDigest===void 0||!h.path.startsWith(o)?[]:[[h.path.slice(o.length),h.desiredDigest]])),c=e.expectedAssets??a.flatMap(h=>h.assets).map(h=>({...h,digest:s.get(h.path)??h.digest})),l=await Dr({projectRoot:t,expectedAssets:c}),p=sm(e.release,e.verificationResults,l.projectStateDigest).map(h=>om(e.release,h)),f={schemaVersion:a.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:a};Be(f);let u=Ii(t,e.plan.planId);await bn(u.platformDirectory,{recursive:!0,mode:448}),await bn(u.evidenceDirectory,{recursive:!0,mode:448});let m=wl();await bl(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await bn(u.transactionDirectory,{recursive:!1,mode:448});let g=vl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(k(Be(e.previousLock)))});return await yi(u.journal,g),kl(t,g)}async function _l(e){let t=await $r(_e.resolve(e.projectRoot)),r=Ii(t,e.planId),n=await am(r.journal);return n.state==="committed"?(await lr(r.transactionLock)&&await yl(r.transactionLock),n.lock):(await lr(r.transactionLock)||await bl(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),kl(t,n))}async function El(e){let t=await $r(_e.resolve(e.projectRoot)),r=Ii(t,e.planId);if(!await lr(r.journal))return null;let n=await am(r.journal);return{planId:n.planId,state:n.state}}async function Ve(e){let t=await $r(_e.resolve(e)),r=_e.join(t,".dyyto","project-lock.json");return await lr(r)?Be(JSON.parse(await wi(r,"utf8"))):null}import{lstat as dm,readFile as cm,realpath as lm}from"node:fs/promises";import dr from"node:path";var vt=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function pm(e){return y(k(e))}async function qA(e,t){let r=dr.join(e,"assets",...t.split("/"));try{return await dm(r),r}catch(n){if(n.code!=="ENOENT"||dr.posix.basename(t)!==".gitignore")throw n}return dr.join(e,"assets",...dr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function be(e){let t=await lm(dr.resolve(e)),r;try{r=Gf(JSON.parse(await cm(dr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof vt?c:new vt("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...i}=r;if(pm(i)!==n)throw new vt("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let a=new Map,o=new Set,s="";for(let c of r.assets){try{Fa(c.path)}catch{throw new vt("RELEASE_ASSET_INVALID","Release asset path is unsafe",c.path)}if((c.path===".dyyto"||c.path.startsWith(".dyyto/"))&&c.path!==".dyyto/application-config-binding.json"||o.has(c.path)||c.path.localeCompare(s)<0)throw new vt("RELEASE_ASSET_INVALID","Release assets must be unique, sorted and outside reserved .dyyto paths",c.path);o.add(c.path),s=c.path;let l=await qA(t,c.path),d=await lm(l),p=dr.join(t,"assets");if(!d.startsWith(`${p}${dr.sep}`))throw new vt("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await dm(l);if(!f.isFile()||f.isSymbolicLink())throw new vt("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await cm(l);if(y(u)!==c.digest)throw new vt("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);a.set(c.path,u)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,l)=>c!==r.assets[l]?.path))throw new vt("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:a}}import{link as BA,open as fm,lstat as $t,mkdir as mm,readFile as Pl,readdir as no,realpath as Ct,rm as zA,unlink as JA}from"node:fs/promises";import ce from"node:path";var ye=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},GA={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function WA(){return new TextEncoder().encode(`${JSON.stringify(GA,null,2)}
|
|
20
|
+
`)}async function KA(e,t=!1){let r=ce.resolve(e),n=await $t(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new ye("TARGET_INVALID","Workspace target must be a real existing directory");let i=await Ct(r);for(let a of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let o=await $t(ce.join(i,a)).catch(()=>null);if(o===null||!o.isFile()||o.isSymbolicLink())throw new ye("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${a}`)}if(await $t(ce.join(i,"project-capabilities.json")).catch(()=>null))throw new ye("MANIFEST_EXISTS","Project manifest already exists");return i}async function YA(e,t){let r=ce.resolve(e),n=await $t(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new ye("TARGET_INVALID","Project target must be a real existing directory");let i=await Ct(r);for(let a of t){let o=await $t(ce.join(i,a)).catch(()=>null);if(o===null||!o.isFile()||o.isSymbolicLink())throw new ye("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${a}`)}if(await $t(ce.join(i,"project-capabilities.json")).catch(()=>null))throw new ye("MANIFEST_EXISTS","Project manifest already exists");return i}async function gm(e){let t=await YA(e.projectRoot,e.requiredMarkers??["package.json"]),r=W(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
|
|
21
|
+
`),i=r.capabilities[0],a=Ae({action:"adopt",capability:{schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:y(n)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:a,desiredContents:new Map([["project-capabilities.json",n]])}}async function hm(e){let t=await KA(e.projectRoot,e.documentationOnly===!0),r=WA(),n=Ae({action:"adopt",capability:{schemaVersion:1,capabilityId:"foundation.workspace-root",version:"1.2.0",integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:y(r)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:n,desiredContents:new Map([["project-capabilities.json",r]])}}async function HA(e){let t=await fm(e,"r");try{await t.sync()}finally{await t.close()}}async function ym(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await fm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await BA(r,e),await JA(r),await HA(ce.dirname(e))}catch(i){throw await zA(r,{force:!0}),i}}async function XA(e){let t=ce.resolve(e);try{let r=await $t(t);if(!r.isDirectory()||r.isSymbolicLink())throw new ye("TARGET_INVALID","Project target must be a real directory");if((await no(t)).length!==0)throw new ye("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=ce.dirname(t),i=await $t(n).catch(()=>null);if(i===null||!i.isDirectory()||i.isSymbolicLink())throw new ye("TARGET_INVALID","Project target parent must be a real directory");await mm(t)}return Ct(t)}async function io(e){let t=W(e.manifest),r=await XA(e.projectRoot),n=ce.join(r,"project-capabilities.json");try{await ym(n,`${JSON.stringify(t,null,2)}
|
|
22
|
+
`)}catch(i){throw i.code==="EEXIST"?new ye("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function vi(e){let{planId:t,...r}=e;if(Ua(r)!==e.planId)throw new ye("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function ZA(e){let t=await Ct(ce.resolve(e.projectRoot)),r=ir(e.plan);vi(r);let n=ce.join(t,".dyyto","plans");await mm(n,{recursive:!0,mode:448});let i=ce.join(n,`${r.planId}.json`);try{await ym(i,`${k(r)}
|
|
23
|
+
`)}catch(a){if(a.code!=="EEXIST")throw a;let o=ir(JSON.parse(await Pl(i,"utf8")));if(vi(o),k(o)!==k(r))throw new ye("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function um(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function qt(e){let t=await Ct(ce.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Ct(ce.resolve(e.transactionRoot)),n=ir(e.plan);vi(n);let i=ce.join(t,".dyyto","plans"),a=await no(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),o=[];for(let s of a.filter(c=>c.endsWith(".json")).sort()){let c=ir(JSON.parse(await Pl(ce.join(i,s),"utf8")));vi(c),!await $t(ce.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&um(c)===um(n)&&o.push(c)}return o.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),o[0]!==void 0?o[0]:(await ZA({projectRoot:t,plan:n}),n)}async function Cr(e){let t=await Ct(ce.resolve(e.projectRoot)),r=ce.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=ir(JSON.parse(await Pl(r,"utf8")));if(vi(n),n.planId!==e.planId)throw new ye("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new ye("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ao(e,t=[],r,n=[]){let i=await Ct(ce.resolve(e)),a=r===void 0?i:await Ct(ce.resolve(r)),o=ce.join(i,".dyyto","plans"),s=await no(o).catch(d=>{if(d.code==="ENOENT")return[];throw d}),c=[];for(let d of s.filter(p=>p.endsWith(".json")).sort()){let p=d.slice(0,-5),f=await Cr({projectRoot:i,planId:p}),u=await Ft({projectRoot:a,planId:p}),m=await $t(ce.join(i,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=QA(c);if(l===void 0)throw new ye("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function QA(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function Nl(e){let t=await Ct(ce.resolve(e)),r=ce.join(t,".dyyto","plans"),n=await no(r).catch(a=>{if(a.code==="ENOENT")return[];throw a}),i=[];for(let a of n.filter(o=>o.endsWith(".json")).sort())i.push(await Cr({projectRoot:t,planId:a.slice(0,-5)}));return i}import{lstat as wm,readFile as e_,readdir as t_,realpath as r_}from"node:fs/promises";import De from"node:path";import{homedir as Im}from"node:os";var dt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function vm(e){let t=De.resolve(e),r=await wm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===De.parse(t).root||t===De.resolve(Im()))throw new dt("WORKSPACE_PATH_UNSAFE");let n=await r_(t);if(n!==t)throw new dt("WORKSPACE_PATH_UNSAFE");return n}async function Tr(e){let t=await wm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new dt("WORKSPACE_PATH_UNSAFE");return e_(e)}}function bm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let a=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(a){r.push(a[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new dt("WORKSPACE_MANIFEST_INVALID");return r}function n_(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function kn(e){let t=await vm(e),r=await Tr(De.join(t,"pnpm-workspace.yaml"));if(!r)throw new dt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of bm(r.toString("utf8"))){let a=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let o=i.slice(0,-2),s=await t_(De.join(t,...o.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&a.push(`${o}/${c.name}`)}else if(!i.includes("*"))a.push(i);else throw new dt("WORKSPACE_MANIFEST_INVALID");for(let o of a){let s=await Tr(De.join(t,...o.split("/"),"package.json"));s&&n.set(o,s)}}return Object.freeze([...n].sort(([i],[a])=>i.localeCompare(a)).map(([i,a])=>Object.freeze({relativeRoot:i,bytes:a})))}async function Bt(e){let t=await vm(e);if(await Tr(De.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Tr(De.join(t,"pnpm-workspace.yaml")))throw new dt("WORKSPACE_NESTED_UNSUPPORTED");let r=De.dirname(t),n;for(;r!==De.parse(r).root&&r!==De.resolve(Im());){let a=await Tr(De.join(r,"pnpm-workspace.yaml"));if(a){if(n)throw new dt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:a};break}r=De.dirname(r)}if(!n||!await Tr(De.join(n.root,"pnpm-lock.yaml"))||!await Tr(De.join(n.root,"project-capabilities.json")))throw new dt("WORKSPACE_OWNER_MISSING");let i=De.relative(n.root,t).split(De.sep).join("/");if(!i||i.startsWith("../")||bm(n.manifest.toString("utf8")).filter(a=>n_(a,i)).length!==1)throw new dt("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var km=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Ol(e){let t=await Nl(e);for(let r of t){let n=await Ft({projectRoot:e,planId:r.planId});if(n!==null&&km.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await El({projectRoot:e,planId:r.planId});if(n!==null&&n.state!=="committed")return{required:!0,kind:"metadata",planId:r.planId,state:n.state}}return{required:!1}}async function i_(e){let t=await Ol(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await gi({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await _l({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Rm(e){let t=await i_(e);if(t.kind!=="none")return t;let r=await Bt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Nl(e.projectRoot)).map(c=>c.planId)),i=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!i)return t;let a;try{let c=JSON.parse(i);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;a=c.planId}catch{return t}let o=await Ft({projectRoot:r.transactionRoot,planId:a});if(!o||!km.has(o.state))return t;let s=await gi({projectRoot:r.transactionRoot,planId:a,now:e.now});return{kind:"filesystem",planId:a,state:s.state}}import{lstat as a_,readFile as Dl,realpath as Am}from"node:fs/promises";import bi from"node:path";var o_=new Set(["MIT","Apache-2.0","UNLICENSED"]),s_=new Set(["public","restricted","private"]),c_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,l_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function d_(e){let t;try{t=new URL(e)}catch{throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL")}if(t.protocol!=="https:"||t.username.length>0||t.password.length>0||t.search.length>0||t.hash.length>0||t.pathname==="/"||t.pathname.includes(".."))throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL");t.pathname=t.pathname.replace(/\/$/,"").replace(/\.git$/,"");let r=t.href.replace(/\/$/,"");if(r!==e)throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository URL must already be canonical");return r}function Lr(e){if(e.profile?.id!=="workspace-node-application"&&e.profile?.id!=="workspace-web-application"&&e.profile?.id!=="workspace-expo-application"&&e.profile?.id!=="nextjs-full-stack-application")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Manifest must select a workspace application profile");let t=Object.keys(e.profile.parameters),r=e.profile.parameters.name;if(t.length!==1||t[0]!=="name"||r===void 0||r.length>128||!/^[a-z0-9][a-z0-9._-]*$/.test(r))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Application parameters must contain one valid lowercase name");return{name:r}}function pr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),i=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,a=i==="1.1.0"||i==="1.2.0"||t==="react-component-library",o=a?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==o.length||n.some((f,u)=>f!==o[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:d,repository:p}=r;if(s===void 0||s.length>214||!c_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!l_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!o_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!s_.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...a?{repository:d_(p)}:{}}}function Sl(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
+
`)}function jl(e){return Buffer.from(`${JSON.stringify({name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,repository:{type:"git",url:e.repository},type:"module",sideEffects:["**/*.css"],files:["dist"],main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./style.css":"./dist/style.css"},engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"vite build && tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run","verify:bundle":"vite build && tsc -p tsconfig.build.json && node tooling/verify-bundle.mjs",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm verify:bundle",prepack:"corepack pnpm check"},peerDependencies:{react:">=19.0.0 <20","react-dom":">=19.0.0 <20"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",react:"19.2.8","react-dom":"19.2.8",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}}},null,2)}
|
|
25
|
+
`)}function p_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build",start:"node dist/index.js"},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
|
|
26
|
+
`)}function u_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"vite",build:"tsc -b && vite build",preview:"vite preview",typecheck:"tsc -b --pretty false",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build"},dependencies:{react:"19.2.8","react-dom":"19.2.8"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"}},null,2)}
|
|
27
|
+
`)}function f_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"next dev",build:"next build",start:"node .artifacts/standalone/server.js",typecheck:"tsc --noEmit",lint:"eslint .","test:unit":"vitest run","test:e2e":"playwright test",test:"pnpm test:unit && pnpm test:e2e",package:"pnpm build && node tooling/package-standalone.mjs",check:"pnpm lint && pnpm typecheck && pnpm test:unit && pnpm build"},dependencies:{next:"16.2.11",react:"19.2.8","react-dom":"19.2.8","server-only":"0.0.1"},devDependencies:{"@playwright/test":"1.62.1","@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",eslint:"9.39.5","eslint-config-next":"16.2.11",jsdom:"30.0.1",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
|
|
28
|
+
`)}function m_(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,main:"expo-router/entry",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"expo start",android:"expo start --android",ios:"expo start --ios",web:"expo start --web",build:"expo export --platform web --output-dir dist",package:"corepack pnpm build && node tooling/verify-expo-export.mjs",typecheck:"tsc --noEmit",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm package"},dependencies:{expo:"~57.0.15","expo-router":"~57.0.15","expo-status-bar":"~57.0.1",react:"19.2.3","react-dom":"19.2.3","react-native":"0.86.2","react-native-safe-area-context":"5.9.1","react-native-screens":"4.27.0","react-native-web":"0.21.2"},devDependencies:{"@types/node":"24.10.13","@types/react":"19.2.14",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
|
|
29
|
+
`)}async function _m(e,t){let r=bi.join(e,...t.split("/"));try{let n=await a_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed target must be a regular file",t);return{path:t,exists:!0,digest:y(await Dl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function xr(e,t){let r=W(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?u_(Lr(r).name):t==="workspace-expo-application"?m_(Lr(r).name):t==="nextjs-full-stack-application"?f_(Lr(r).name):p_(Lr(r).name):t==="react-component-library"?jl(pr(r,t)):Sl(pr(r,t));if(r.capabilities.filter(u=>u.capabilityId===e.release.release.capabilityId&&u.version===e.release.release.version).length!==1||e.release.release.consumerProfile!==t)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded standalone npm release");let o=(e.currentLock===void 0?void 0:Be(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(o!==void 0&&(o.version!==e.release.release.version||o.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Changing locked npm profile parameters or release is not supported");let s=new Map(e.release.contents);s.set("package.json",n);let c=await Am(bi.resolve(e.projectRoot)),l=[],d=[];for(let u of e.release.release.assets){if(s.get(u.path)===void 0)throw new M("RELEASE_NOT_FOUND","Release asset content is unavailable",u.path);let g=await _m(c,u.path);if(g.exists&&o===void 0&&e.allowExistingWithoutLock!==!0&&u.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile cannot adopt over an existing owned file without a lock",u.path);u.ownership==="seed-file"&&g.exists&&s.set(u.path,await Dl(bi.join(c,...u.path.split("/"))));let h=y(s.get(u.path));l.push(g),d.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:h})}let p={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:d.map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},f=Ae({action:"adopt",capability:p,changes:d,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:f,desiredContents:s}}function ki(e){return xr(e,"standalone-npm-package")}function Ri(e){return xr(e,"react-component-library")}function Rn(e){return xr(e,"nextjs-full-stack-application")}async function $l(e){let t=W(e.manifest);if(t.profile?.id!=="nextjs-full-stack-application"||e.release.release.consumerProfile!=="nextjs-full-stack-application"||e.release.release.assets.some(u=>u.ownership!=="seed-file"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Historical adoption requires a seed-only Next.js Profile Release");let r=W({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await Rn({...e,manifest:r}),i=await Am(bi.resolve(e.projectRoot)),a="project-capabilities.json",o=await Dl(bi.join(i,a)),s=Buffer.from(`${JSON.stringify(r,null,2)}
|
|
30
|
+
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:a,kind:"replace",ownership:"owned-file",baseDigest:y(o),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>_m(i,u.path))),d=Ae({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==a).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[a,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function Ai(e){return xr(e,"workspace-npm-package")}function _i(e){return xr(e,"workspace-node-application")}function Ei(e){return xr(e,"workspace-web-application")}function Pi(e){return xr(e,"workspace-expo-application")}async function Em(e){if(e.currentLock!==void 0){let n=await ki(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ki({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Pm(e){if(e.currentLock!==void 0){let n=await Ri(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ri({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Nm(e){if(e.currentLock!==void 0){let n=await Rn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Rn({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Om(e){if(e.currentLock!==void 0){let n=await Ai(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ai({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Dm(e){if(e.currentLock!==void 0){let n=await _i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await _i({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Sm(e){if(e.currentLock!==void 0){let n=await Ei(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ei({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function jm(e){if(e.currentLock!==void 0){let n=await Pi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Pi({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as x_,readFile as Ro,realpath as V_}from"node:fs/promises";import $i from"node:path";var bt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Vr=/^sha256:[a-f0-9]{64}$/,g_=/^sha512-[A-Za-z0-9+/]{86}==$/,h_=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,Cm=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,y_=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,$m=/^[a-z][a-z0-9._:-]{2,127}$/;function Mr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function w_(e){if(!Mr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!Cm.test(e.registryId)||!$m.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,i)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==i)||!Mr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Mr(e.capabilities,["read","write","provenance","staging"])||!["workload-identity","short-lived-token","restricted-token","anonymous-test"].includes(e.authentication.kind)||e.authentication.kind==="anonymous-test"!=(e.authentication.credentialRef===void 0)||e.authentication.credentialRef!==void 0&&!$m.test(e.authentication.credentialRef))return!1;let t;try{t=new URL(e.origin)}catch{return!1}if(t.username||t.password||t.search||t.hash||!t.pathname.endsWith("/")||t.pathname.includes("..")||/%2f|%5c/iu.test(t.pathname))return!1;let r=t.hostname==="127.0.0.1"||t.hostname==="localhost"||t.hostname==="[::1]";return e.authentication.kind==="anonymous-test"&&(!r||t.protocol!=="http:")||e.authentication.kind!=="anonymous-test"&&t.protocol!=="https:"?!1:typeof e.capabilities.read=="boolean"&&typeof e.capabilities.write=="boolean"&&typeof e.capabilities.provenance=="boolean"&&typeof e.capabilities.staging=="boolean"&&(e.status==="enabled"||e.status==="disabled")}function Cl(e){if(!w_(e))throw new bt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:y(k(t))})}function Ni(e){let t=e;if(typeof t!="object"||t===null||!Mr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Vr.test(t.revision))throw new bt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Cl(i).revision!==n)throw new bt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function I_(e,t){let r,n;try{r=new URL(e.origin),n=new URL(t)}catch{return!1}return n.username||n.password||n.search||n.hash||n.pathname!==r.pathname||n.protocol!==r.protocol||n.hostname!==r.hostname?!1:e.authentication.kind==="anonymous-test"||n.port===r.port}function Tl(e,t){let r=Ni(t);if(!Mr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!I_(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new bt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(k(n))})}function Tm(e,t){let r=e;if(typeof r!="object"||r===null||!Mr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Vr.test(r.bindingDigest))throw new bt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...a}=r;if(Tl(a,t).bindingDigest!==i)throw new bt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function v_(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Mr(e,t)&&Cm.test(e.registryId)&&Vr.test(e.registryConfigRevision)&&y_.test(e.packageName)&&h_.test(e.version)&&g_.test(e.integrity)&&Vr.test(e.tarballDigest)&&Vr.test(e.sourceDeliveryReceiptId)&&!Number.isNaN(Date.parse(e.verifiedAt))&&(e.access==="restricted"||e.access==="private")&&["registry-attested","external-attested","local-readback-verified","development-readback-verified","registry-verified-no-attestation"].includes(e.provenance)&&(e.provenance!=="registry-verified-no-attestation"?e.verificationIdentityDigest!==void 0&&Vr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Ll(e){if(!v_(e))throw new bt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function Lm(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Vr.test(t.receiptId))throw new bt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Ll(i).receiptId!==n)throw new bt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Ee=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Oi(e){return y(k(e))}var xl=/^sha256:[a-f0-9]{64}$/u,b_=/^sha512-[A-Za-z0-9+/]{86}==$/u,k_=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,oo=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,R_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,A_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function so(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,a)=>i===n[a])}function xm(e){return y(k(e))}function Vm(e){let t=Buffer.from(e.desiredLockfile),r=y(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(o=>({...o})),packageFacts:e.packageFacts.map(o=>({...o})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},i={...n,jobId:xm(n),desiredLockfile:t};Mm(i);let a={...i,importerFacts:Object.freeze(i.importerFacts.map(o=>Object.freeze({...o}))),packageFacts:Object.freeze(i.packageFacts.map(o=>Object.freeze({...o}))),cacheObservation:Object.freeze({...i.cacheObservation})};return Object.freeze(a)}function Mm(e){if(!so(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new Ee("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(i=>xl.test(i)))throw new Ee("RESOLUTION_EVIDENCE_INVALID");if(!oo.test(e.workerReleaseId)||!oo.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||y(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new Ee("RESOLUTION_EVIDENCE_INVALID");if(!so(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Ee("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!so(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!oo.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(a=>xl.test(a))))throw new Ee("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!so(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!A_.test(i.identity)||!R_.test(i.packageName)||!oo.test(i.registryId)||!k_.test(i.version)||!b_.test(i.integrity)||typeof i.managed!="boolean"||!xl.test(i.edgesDigest)))throw new Ee("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Ee("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(xm(n)!==e.jobId)throw new Ee("RESOLUTION_EVIDENCE_INVALID")}function Vl(e,t){if(Mm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Ee("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Ee("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Ee("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(a=>a.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Ee("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(a=>a.managed&&a.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Ee("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Ee("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var H=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function po(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:a})=>({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:a})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var co=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,Fm=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Ml(e){return Array.isArray(e)?`[${e.map(Ml).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Ml(r)}`).join(",")}}`:JSON.stringify(e)}function zt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function pt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function lo(e){for(let t of[pt(e.dependencies),pt(e.devDependencies),pt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!co.test(n)||Fm.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var __=["dependencies","devDependencies","optionalDependencies"];function uo(e,t){let r=[];for(let n of __)for(let[i,a]of Object.entries(pt(e[n]))){if(t.has(i)){if(!co.test(a))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(a))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:i,specifier:a})}return r.sort((n,i)=>`${n.section}:${n.packageName}`.localeCompare(`${i.section}:${i.packageName}`))}function Fl(e){let t=zt(e.packageJson);lo(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="runtime").map(({packageName:a,version:o})=>[a,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="development").map(({packageName:a,version:o})=>[a,o])),i={...t,...Object.keys(r).length?{dependencies:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
31
|
+
`)}function Di(e){let t=zt(e.packageJson);uo(t,new Set(e.release.packageSources.map(i=>i.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:a})=>[i,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:a})=>[i,a]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}},null,2)}
|
|
32
|
+
`)}function Ul(e){let t=zt(e.packageJson);lo(t);let r=pt(t.dependencies),n=pt(t.devDependencies);for(let a of e.remove)delete(a.usage==="runtime"?r:n)[a.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
|
|
33
|
+
`)}function ql(e){let t=zt(e.packageJson);uo(t,new Set(e.remove.map(a=>a.packageName)));let r=pt(t.dependencies),n=pt(t.devDependencies);for(let a of e.remove)delete(a.usage==="runtime"?r:n)[a.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
|
|
34
|
+
`)}function Um(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new H("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(p=>p!==t).flatMap(p=>p.packageAdoption?.sources.map(f=>f.packageName)??[])),n=t.packageAdoption.sources.filter(p=>!r.has(p.packageName)),i=Ul({packageJson:e.packageJson,remove:n}),a=zt(e.projectManifest),o=Array.isArray(a.capabilities)?a.capabilities:[],s=Buffer.from(`${JSON.stringify({...a,capabilities:o.filter(p=>p.capabilityId!==e.release.capabilityId||p.version!==e.release.version)},null,2)}
|
|
35
|
+
`),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(i)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:y(e.desiredLockfile)},...t.assets.map(p=>({path:p.path,kind:"remove",ownership:p.ownership??"owned-file",baseDigest:p.digest}))];return{plan:Ae({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(p=>({path:p.path,ownership:p.ownership??"owned-file",desiredDigest:p.digest})),verifiers:e.release.verifiers.map(p=>({id:p.id,kind:"file-digest"}))},changes:l,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(i),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:y(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(p=>({...p})),endpointBindings:c.map(({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})=>({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})),sources:n.map(p=>({...p})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}}}),desiredContents:new Map([["project-capabilities.json",s],["package.json",i],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function qm(e){let t=e.currentLock.capabilities.find(g=>g.capabilityId===e.release.capabilityId&&g.version===e.release.version);if(!t?.packageAdoption||e.topology.mode!=="pnpm-shared-lockfile")throw new H("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(g=>g!==t).flatMap(g=>g.packageAdoption?.sources.map(h=>h.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),i=ql({packageJson:e.packageJson,remove:n}),a=e.remainingSources.map(({registryId:g,packageName:h,version:w,integrity:A})=>({registryId:g,packageName:h,version:w,integrity:A})),o={mode:e.topology.mode,unitRelativeRoot:e.topology.unitRelativeRoot,unitImporterId:e.topology.unitImporterId,lockfilePath:e.topology.lockfilePath,...e.topology.workspaceManifestPath?{workspaceManifestPath:e.topology.workspaceManifestPath,workspaceManifestDigest:e.topology.workspaceManifestDigest}:{}},s=Vl(e.resolutionEvidence,{requestDigest:Oi({schemaVersion:1,pnpmVersion:"11.21.0",topology:o,currentLockfileDigest:y(e.currentLockfile),desiredPackageJsonDigest:y(i),sources:a,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(i),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h})),managedSources:a,now:e.generatedAt}),c=zt(e.projectManifest),l=Array.isArray(c.capabilities)?c.capabilities:[],d=Buffer.from(`${JSON.stringify({...c,capabilities:l.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
|
|
36
|
+
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:Ae({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(i),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:o,preservedDependencies:uo(zt(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function fo(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",i=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!i)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let a=zt(e.packageJson),o=e.desiredBasePackageJson??e.packageJson,s=zt(o),c="topology"in e,l=c?uo(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||lo(a),c||lo(s);let d=new Map(e.registryConfigs.map(I=>{let R=Ni(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let N=Tm(I,R);return[N.registryId,N]})),f=new Map(e.receipts.map(I=>{let R=Lm(I);return[R.receiptId,R]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),m=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Vl(e.resolutionEvidence,{requestDigest:Oi({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(Di({release:e.release,packageJson:o})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:N,integrity:j})=>({registryId:I,packageName:R,version:N,integrity:j})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(Di({release:e.release,packageJson:o})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:N,integrity:j})=>({registryId:I,packageName:R,version:N,integrity:j})),now:e.generatedAt}):void 0,h=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:R,version:N,integrity:j})=>({registryId:I,packageName:R,version:N,integrity:j}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),N=p.get(I.registryId),j=f.get(I.deliveryReceiptId),re=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(j!==void 0&&(t==="production"&&j.provenance==="development-readback-verified"||t==="development"&&j.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!N||Date.parse(N.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!j||!re||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(j.registryId!==I.registryId||j.registryConfigRevision!==R.revision||j.packageName!==I.packageName||j.version!==I.version||j.integrity!==I.integrity||j.tarballDigest!==I.tarballDigest||re.integrity!==I.integrity||re.tarballDigest!==I.tarballDigest||re.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!co.test(I.version)||re.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Z]of Object.entries(re.dependencies)){let se=m.get(P);if(P.startsWith("@aipt/")&&(!se||se.version!==Z||!co.test(Z)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Z}`)});if(Fm.test(Z))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?Di({release:e.release,packageJson:o}):Fl({release:e.release,packageJson:o}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:N,expiresAt:j})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:N,expiresAt:j})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},_=y(Ml(b));return Object.freeze({...b,planId:_,desiredPackageJson:A,desiredLockfile:h.lockfile})}function mo(e){return fo(e,"production")}function go(e){return fo(e,"development")}function ho(e){return fo(e,"production")}function yo(e){return fo(e,"development")}function E_(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",i=e.operations.filter(({path:d})=>d===r),a=e.operations.filter(({path:d})=>d===n);if(i.length!==1||a.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let o=i[0],s=a[0],c=o.kind==="replace"&&o.baseDigest===t.packageJsonPreimageDigest&&o.desiredDigest===t.desiredPackageJsonDigest&&o.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Bm(e){E_(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await sr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await cr(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await hl({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new H("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Wm=Hr(Er(),1);var Km=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Ym="^[a-z0-9][a-z0-9._-]{0,127}$",Bl="^[A-Z][A-Z0-9_]{0,127}$",zm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",P_={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{const:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json"},schemaVersion:{const:1},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:Ym},profile:{enum:Km}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{const:"IDP_CONFIG_DIR"},relativeDirectory:{type:"string",pattern:"^applications/[a-z0-9][a-z0-9._-]{0,127}$"},environmentFile:{const:".env"},materializationOwner:{const:"external-deployment-control-plane"}}},bindings:{type:"array",maxItems:128,items:{oneOf:[{type:"object",additionalProperties:!1,required:["name","kind","required"],properties:{name:{type:"string",pattern:Bl},kind:{const:"value"},required:{type:"boolean"},default:{type:"string",maxLength:1024}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Bl},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:zm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Bl},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:zm}}}]}}}},Jm=new Wm.Ajv2020({allErrors:!0,strict:!0}).compile(P_),Gm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,N_=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Xe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function Hm(e){let t=W(e),r=t.profile?.id;if(!Km.includes(r))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(Ym,"u").test(i))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function wo(e,t){if(!Jm(e))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",Jm.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set;for(let a of r.bindings){if(n.has(a.name))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${a.name}`);if(n.add(a.name),a.kind==="value"){if(Gm.test(a.name))throw new Xe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${a.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!a.name.endsWith("_FILE"))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${a.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let o=a.kind==="secret-file"?"secrets/":"certs/";if(a.kind==="certificate-file"&&(Gm.test(a.name)||N_.test(a.name)))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=a.file.split("/");if(!a.file.startsWith(o)||s.some(c=>c===""||c==="."||c===".."))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5FC5\u987B\u4F4D\u4E8E ${o} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(i.has(a.file))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${a.file}`);i.add(a.file)}if(t!==void 0){let a=Hm(t);if(r.application.id!==a.id||r.application.profile!==a.profile)throw new Xe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Io(e){let t=Hm(e),r=t.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],n={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:1,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"IDP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return wo(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
+
`)}import{createHash as O_,X509Certificate as D_}from"node:crypto";import{lstat as Si,readFile as ut,realpath as vo}from"node:fs/promises";import X from"node:path";var he=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Zm(e){let t=W(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function ko(e){let t=Zm(e);return Buffer.from(`${JSON.stringify({$schema:"https://schemas.dyyto.dev/platform/application-config-binding-v1.json",schemaVersion:1,kind:"ApplicationConfigBinding",application:t,environment:{name:"local"},configDirectory:{rootEnvironmentVariable:"APP_CONFIG_DIR",scope:"application-environment"},contract:{path:"config/application-config.json"},materializationOwner:"external-deployment-control-plane"},null,2)}
|
|
38
|
+
`)}function Qm(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Zm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function S_(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(!i||i.startsWith("#"))continue;let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i),o=a?.[1],s=a?.[2];if(!o||s===void 0||o in t)throw new he("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[o]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function bo(e){return`sha256:${O_("sha256").update(e).digest("hex")}`}function j_(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Xm(e,t,r){let n=await Si(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new he("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}var $_=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),C_=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function zl({projectRoot:e,environment:t=process.env}){let r=await vo(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await Si(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[a,o]=await Promise.all([ut(X.join(r,"project-capabilities.json")),ut(n)]),s=JSON.parse(a.toString("utf8")),c=wo(JSON.parse(o.toString("utf8")),s),l=await ut(X.join(r,".dyyto/application-config-binding.json")).catch(p=>{if(p.code==="ENOENT")return null;throw p});if(!l)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:bo(o),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let d=Qm(JSON.parse(l.toString("utf8")),s);try{let p=await ji({projectRoot:r,environment:t}),f=p.entries.filter(m=>m.required&&!m.configured).map(m=>m.name),u=f.length?"incomplete":"ready";return{schemaVersion:1,...p,state:u,needsConfigInit:u==="incomplete",missingBindings:f}}catch(p){let f=p instanceof he?p.code:p.code??"APPLICATION_CONFIG_UNKNOWN",u=C_.has(f)?"missing":$_.has(f)?"incomplete":"invalid",m=await tg(r,d.application.id,t).catch(()=>{});return{schemaVersion:1,application:d.application.id,environment:"local",configDirectory:m??null,contractDigest:bo(o),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:f,entries:[]}}}catch(a){let o=a instanceof he||a instanceof Error&&"code"in a?String(a.code):"APPLICATION_CONFIG_INVALID";return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:o,entries:[]}}}var T_=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function eg({workspaceRoot:e,environment:t=process.env}){let r=await vo(X.resolve(e));if(W(JSON.parse(await ut(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new he("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await kn(r),a=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),l=X.join(c,"project-capabilities.json"),d=await ut(l,"utf8").catch(()=>null),p=await Si(X.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),f="";if(d!==null)try{f=W(JSON.parse(d)).profile?.id??""}catch{p&&(f="invalid-application")}if(!T_.has(f)&&!p)continue;let u=await zl({projectRoot:c,environment:t}).catch(m=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:m instanceof Error&&"code"in m?String(m.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));a.push({unit:s.relativeRoot,readiness:u})}let o=s=>a.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:a.length,ready:o("ready"),missing:o("missing"),incomplete:o("incomplete"),invalid:o("invalid"),notDeclared:o("not-declared"),needsConfigInit:a.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(a.map(s=>Object.freeze(s)))})}async function L_(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await ut(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let a=X.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(a))throw new he("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),a,r)}}catch(i){if(i instanceof he)throw i}n=X.dirname(n)}return X.join(t,r)}async function tg(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let a=await Si(n).catch(()=>null);if(!a?.isFile()||a.isSymbolicLink()||a.nlink!==1||(a.mode&511&-385)!==0)throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let o=JSON.parse(await ut(n,"utf8"));if(o.schemaVersion!==1||!Array.isArray(o.projects))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=o.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${X.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let i=r.APP_CONFIG_DIR;if(i){if(!X.isAbsolute(i))throw new he("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await L_(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function ji({projectRoot:e,environment:t=process.env}){let r=await vo(X.resolve(e)),[n,i,a]=await Promise.all([ut(X.join(r,"project-capabilities.json")),ut(X.join(r,".dyyto/application-config-binding.json")),ut(X.join(r,"config/application-config.json"))]),o=JSON.parse(n.toString("utf8")),s=Qm(JSON.parse(i.toString("utf8")),o),c=wo(JSON.parse(a.toString("utf8")),o),l=await tg(r,s.application.id,t);if(!l||!X.isAbsolute(l))throw new he("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await vo(l),p=await Si(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new he("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=X.relative(r,d);if(f===""||!f.startsWith("..")&&!X.isAbsolute(f))throw new he("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(d,".env");await Xm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=S_(await ut(u,"utf8")),g=[];for(let h of c.bindings){if(h.kind==="value"){let j=m[h.name]??"";g.push({name:h.name,kind:h.kind,required:h.required,configured:j.length>0,source:"APP_CONFIG_DIR",display:j_(j)});continue}if(m[h.name]!==h.file)throw new he("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(d,h.file),b=X.relative(d,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new he("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let _=await Xm(A,h.name,!h.required),I=await ut(A),R=I.length>0,N;if(R&&h.kind==="certificate-file")try{let j=new D_(I);N={subject:j.subject,issuer:j.issuer,validFrom:j.validFrom,validTo:j.validTo}}catch{throw new he("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:bo(I),updatedAt:_.mtime.toISOString()}:{},...N?{certificate:N}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:bo(a),entries:g}}var Fr="project-capabilities.json",rg=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function M_(e,t){if(!rg.test(e)||!rg.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let i=0;i<3;i+=1)if(r[i]!==n[i])return r[i]-n[i];return 0}async function F_(e,t){let r=$i.join(e,...t.split("/"));try{let n=await x_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed upgrade target must be a regular file",t);return{path:t,exists:!0,digest:y(await Ro(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function Ao(e,t){let r=W(e),n=t.release,i=n.assets.find(o=>o.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return Sl(pr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return jl(pr(r,n.consumerProfile));let a=t.contents.get("package.json");if(a===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return a}async function Jl(e){let t=W(e.manifest),r=Be(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,a=t.capabilities.find(P=>P.capabilityId===n.capabilityId),o=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=i.capabilityId!==n.capabilityId&&i.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(a===void 0||o===void 0||a.capabilityId!==o.capabilityId||a.version!==o.version||n.capabilityId!==o.capabilityId||n.version!==o.version||n.integrity!==o.integrity||!s&&i.capabilityId!==o.capabilityId||i.consumerProfile!==o.consumerProfile||n.consumerProfile!==i.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&M_(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await V_($i.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},d=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&d.set("package.json",Ao(l,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,Io(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,ko(l));let p,f=c,u="package.json",m;if(i.schemaVersion===2&&i.availability.maturity!=="withdrawn"&&(i.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let Z=await Ro($i.join(c,"package.json")),se=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=se.transactionRoot,u=se.mode==="pnpm-shared-lockfile"?`${se.unitRelativeRoot}/package.json`:"package.json",m=se.lockfilePath;let rt={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Z,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let mt=se.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?yo:ho)({...rt,topology:{mode:se.mode,unitRelativeRoot:se.unitRelativeRoot,unitImporterId:se.unitImporterId,lockfilePath:se.lockfilePath,workspaceManifestPath:se.workspaceManifestPath,workspaceManifestDigest:se.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?go:mo)({...rt,lockResolution:e.packageSource.lockResolution});p=po(mt),d.set("package.json",mt.desiredPackageJson),d.set(m,mt.desiredLockfile)}catch(mt){throw mt instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",mt.code):mt}}let g=new Map(o.assets.filter(P=>P.path!==Fr).map(P=>[P.path,P.digest])),h=new Map(i.assets.filter(P=>P.path!==Fr).map(P=>{let Z=d.get(P.path);if(Z===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(Z)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),A=[],b=[];for(let P of w){let Z=await F_(c,P);A.push(Z);let se=g.get(P),rt=h.get(P),mt=i.assets.find(ky=>ky.path===P);if(mt?.ownership==="seed-file"&&Z.exists&&Z.digest!==void 0){h.set(P,Z.digest),d.set(P,await Ro($i.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Z.digest,desiredDigest:Z.digest});continue}if(se===void 0){if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:mt?.ownership??"owned-file",desiredDigest:rt})}else rt===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:se}):b.push({path:P,kind:"replace",ownership:mt?.ownership??"owned-file",baseDigest:se,desiredDigest:rt})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let Z=d.get(m);A.push({path:m,exists:!0,digest:y(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(Z)})}let _=await Ro($i.join(c,Fr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
+
`);A.push({path:Fr,exists:!0,digest:y(_)}),b.push({path:Fr,kind:"replace",ownership:"owned-file",baseDigest:y(_),desiredDigest:y(I)});let R={schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:i.integrity,assets:i.assets.filter(P=>P.path!==Fr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:i.verifiers.map(({id:P})=>({id:P,kind:"command"}))},N=f===c?b:b.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),j=f===c?A:A.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),re=Ae({action:"upgrade",capability:R,changes:N,observedAssets:j,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Fr,I);let $=new Map;for(let P of re.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let Z=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,se=P.path===m?P.path:P.path.startsWith(Z)?P.path.slice(Z.length):P.path,rt=d.get(se);if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,rt)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:re,desiredContents:$,transactionRoot:f}}import{link as U_,mkdir as q_,open as ng,readFile as kt,readdir as B_,realpath as Rt,rm as z_,unlink as J_}from"node:fs/promises";import me from"node:path";var S=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function Se(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function ig(e){return y(k(e))}function Hl(e){if(!Se(e.project.lockDigest)||!Se(e.project.appliedPlanId)||!Se(e.artifact.digest))throw new S("DELIVERY_PRECONDITION_FAILED","Delivery identities must use canonical SHA-256 digests");if(Date.parse(e.expiresAt)<=Date.parse(e.createdAt)||Number.isNaN(Date.parse(e.createdAt)))throw new S("DELIVERY_PRECONDITION_FAILED","Delivery plan expiry must follow creation time");if(e.kind==="npm-publish"&&(e.artifact.type!=="npm-package"||e.target.adapterId!=="registry.npmjs"||e.risk!=="irreversible-publish")||e.kind==="application-deploy"&&(e.artifact.type!=="node-application"&&e.artifact.type!=="web-application"||e.target.adapterId!=="deployment.local-docker"||e.risk!=="local-reversible-deployment")||e.kind==="artifact-publication"&&(e.artifact.type!=="published-package"||e.target.adapterId!=="publication.offline-web"&&e.target.adapterId!=="publication.hosted-static"||(e.target.adapterId==="publication.offline-web"?e.risk!=="local-reversible-publication":e.risk!=="external-reversible-publication"))||e.kind==="hosted-static"&&(e.artifact.type!=="web-bundle"||e.target.adapterId!=="publication.hosted-static"||e.risk!=="external-reversible-publication"))throw new S("DELIVERY_PROJECT_UNSUPPORTED","Delivery kind, artifact, target, and risk must be compatible");if(e.kind==="npm-publish"&&e.publication!==void 0){let r=e.publication,n=r.execution;if(r.mode!=="staged"||r.access!=="public"||r.authentication!=="trusted-publishing"||r.trustedAction!=="stage-only"||r.provenance!=="required"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||n?.provider!=="github-actions"&&n?.provider!=="gitlab-ci"||!n.repository||!n.workflow||!n.ref||Object.values(n).some(i=>typeof i!="string"||i.length>512||/[\u0000-\u001f\u007f]/.test(i)))throw new S("DELIVERY_PRECONDITION_FAILED","npm publication policy is invalid")}if(e.kind!=="npm-publish"&&e.publication!==void 0)throw new S("DELIVERY_PRECONDITION_FAILED","Publication policy is only valid for npm delivery");let t={schemaVersion:e.kind==="npm-publish"&&e.publication!==void 0?2:1,...e,state:"reviewable"};return{...t,planId:ig(t)}}function Gl(e){let t=e;if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.state!=="reviewable")throw new S("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");if(t.schemaVersion===2&&(t.kind!=="npm-publish"||t.publication===void 0)||t.schemaVersion===1&&t.publication!==void 0)throw new S("DELIVERY_PRECONDITION_FAILED","Delivery Plan schema and publication policy do not match");let{planId:r,...n}=t;if(ig(n)!==r)throw new S("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return Hl({kind:t.kind,project:t.project,artifact:t.artifact,target:t.target,risk:t.risk,createdAt:t.createdAt,expiresAt:t.expiresAt,...t.publication===void 0?{}:{publication:t.publication}})}function ag(e){if(!Se(e.planId)||!Se(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:y(k(t))}}function og(e){if(!Se(e.planId)||!Se(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:y(k(t))}}function _o(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==y(k(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function Wl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==y(k(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function sg(e){if(!Se(e.planId)||!Se(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:y(k(t))}}function Kl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==y(k(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function Eo(e){if(!Se(e.planId)||!Se(e.artifactDigest)||e.externalIdentity.length===0)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt identities are invalid");if("npm"in e){let r=e.npm;if(e.adapterId!=="registry.npmjs"||r===void 0||r.stageId.length===0||r.registry!=="https://registry.npmjs.org"||r.tarballDigest!==e.artifactDigest||r.access!=="public"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||r.provenance!=="registry-attested"||!Se(r.attestationUrlDigest))throw new S("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:y(k(n))}}if(e.kind==="npm-publish"||e.kind==="application-deploy"&&e.adapterId!=="deployment.local-docker"||e.kind==="artifact-publication"&&e.adapterId!=="publication.offline-web"&&e.adapterId!=="publication.hosted-static"||e.kind==="hosted-static"&&(e.adapterId!=="publication.hosted-static"||e.details.renderMode!=="csr"))throw new S("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:y(k(t))}}function Yl(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==y(k(n)))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:i,schemaVersion:a,status:o,...s}=t;return Eo(s)}async function G_(e){let t=await ng(e,"r");try{await t.sync()}finally{await t.close()}}async function Ci(e,t){let r=me.dirname(e);await q_(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,i=await ng(n,"wx",384);try{await i.writeFile(`${k(t)}
|
|
40
|
+
`,"utf8"),await i.sync()}finally{await i.close()}try{await U_(n,e),await J_(n),await G_(r)}catch(a){throw await z_(n,{force:!0}),a}}async function cg(e){let t=await Rt(me.resolve(e.projectRoot)),r=Gl(e.plan),n=me.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Ci(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(Gl(JSON.parse(await kt(n,"utf8"))))!==k(r))throw new S("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Jt(e){if(!Se(e.planId))throw new S("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Rt(me.resolve(e.projectRoot));try{let r=Gl(JSON.parse(await kt(me.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new S("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Xl(e){let t=await Rt(me.resolve(e.projectRoot)),r=Yl(e.receipt),n=await Jt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let a=await _n({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||a===null||r.npm.stageId!==a.stageId||r.npm.tarballDigest!==a.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new S("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let i=me.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Ci(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=Yl(JSON.parse(await kt(i,"utf8")));if(k(o)!==k(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return o}return r}async function An(e){if(!Se(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Rt(me.resolve(e.projectRoot));try{let r=Yl(JSON.parse(await kt(me.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function lg(e){let t=await Rt(me.resolve(e.projectRoot)),r=_o(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let i=me.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Ci(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=_o(JSON.parse(await kt(i,"utf8")));if(k(o)!==k(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return o}return r}async function dg(e){if(!Se(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Rt(me.resolve(e.projectRoot));try{let r=_o(JSON.parse(await kt(me.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function pg(e){let t=await Rt(me.resolve(e.projectRoot)),r=me.join(t,".dyyto","delivery","attempts"),n;try{n=await B_(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let a=_o(JSON.parse(await kt(me.join(r,i),"utf8")));if((await Jt({projectRoot:t,planId:a.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([_n({projectRoot:t,planId:a.planId}),An({projectRoot:t,planId:a.planId})]);if(s===null&&c===null)return a}return null}async function ug(e){let t=await Rt(me.resolve(e.projectRoot)),r=Wl(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let i=me.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Ci(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=Wl(JSON.parse(await kt(i,"utf8")));if(k(o)!==k(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return o}return r}async function _n(e){if(!Se(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Rt(me.resolve(e.projectRoot));try{let r=Wl(JSON.parse(await kt(me.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function fg(e){let t=await Rt(me.resolve(e.projectRoot)),r=Kl(e.record),n=await _n({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let i=me.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Ci(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=Kl(JSON.parse(await kt(i,"utf8")));if(k(o)!==k(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return o}return r}async function mg(e){if(!Se(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Rt(me.resolve(e.projectRoot));try{let r=Kl(JSON.parse(await kt(me.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as jg,readdir as SE}from"node:fs/promises";import td from"node:path";import{mkdir as Zl,open as Do,readFile as Li,readdir as Ql,rename as So,rm as Og}from"node:fs/promises";import we from"node:path";var W_=44;var gg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",K_=new Uint8Array(64),yg=new Uint8Array(128);for(let e=0;e<gg.length;e++){let t=gg.charCodeAt(e);K_[e]=t,yg[t]=e}function Ti(e,t){let r=0,n=0,i=0;do{let o=e.next();i=yg[o],r|=(i&31)<<n,n+=5}while(i&32);let a=r&1;return r>>>=1,a&&(r=-2147483648|-r),t+r}function hg(e,t){return e.pos>=t?!1:e.peek()!==W_}var uj=1024*16;var Y_=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:r}=this,n=t.indexOf(e,r);return n===-1?t.length:n}};function wg(e){let{length:t}=e,r=new Y_(e),n=[],i=0,a=0,o=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(i=0;r.pos<l;){let u;i=Ti(r,i),i<f&&(p=!1),f=i,hg(r,l)?(a=Ti(r,a),o=Ti(r,o),s=Ti(r,s),hg(r,l)?(c=Ti(r,c),u=[i,a,o,s,c]):u=[i,a,o,s]):u=[i],d.push(u),r.pos++}p||H_(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function H_(e){e.sort(X_)}function X_(e,t){return e[0]-t[0]}var Z_=/^[\w+.-]+:\/\//,Q_=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,eE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function tE(e){return Z_.test(e)}function rE(e){return e.startsWith("//")}function bg(e){return e.startsWith("/")}function nE(e){return e.startsWith("file:")}function Ig(e){return/^[.?#]/.test(e)}function Po(e){let t=Q_.exec(e);return kg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function iE(e){let t=eE.exec(e),r=t[2];return kg("file:","",t[1]||"","",bg(r)?r:"/"+r,t[3]||"",t[4]||"")}function kg(e,t,r,n,i,a,o){return{scheme:e,user:t,host:r,port:n,path:i,query:a,hash:o,type:7}}function vg(e){if(rE(e)){let r=Po("http:"+e);return r.scheme="",r.type=6,r}if(bg(e)){let r=Po("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(nE(e))return iE(e);if(tE(e))return Po(e);let t=Po("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function aE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function oE(e,t){Rg(t,t.type),e.path==="/"?e.path=t.path:e.path=aE(t.path)+e.path}function Rg(e,t){let r=t<=4,n=e.path.split("/"),i=1,a=0,o=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){o=!0;continue}if(o=!1,l!=="."){if(l===".."){a?(o=!0,a--,i--):r&&(n[i++]=l);continue}n[i++]=l,a++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||o&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function Ag(e,t){if(!e&&!t)return"";let r=vg(e),n=r.type;if(t&&n!==7){let a=vg(t),o=a.type;switch(n){case 1:r.hash=a.hash;case 2:r.query=a.query;case 3:case 4:oE(r,a);case 5:r.user=a.user,r.host=a.host,r.port=a.port;case 6:r.scheme=a.scheme}o>n&&(n=o)}Rg(r,n);let i=r.query+r.hash;switch(n){case 2:case 3:return i;case 4:{let a=r.path.slice(1);return a?Ig(t||e)&&!Ig(a)?"./"+a+i:a+i:i||"."}case 5:return r.path+i;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+i}}function sE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function cE(e,t){let r=sE(e),n=t?t+"/":"";return i=>Ag(n+(i||""),r)}var ur=0,lE=1,dE=2,pE=3,uE=4;function fE(e,t){let r=_g(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=_g(e,n+1))e[n]=gE(e[n],t);return e}function _g(e,t){for(let r=t;r<e.length;r++)if(!mE(e[r]))return r;return e.length}function mE(e){for(let t=1;t<e.length;t++)if(e[t][ur]<e[t-1][ur])return!1;return!0}function gE(e,t){return t||(e=e.slice()),e.sort(hE)}function hE(e,t){return e[ur]-t[ur]}var Oo=!1;function yE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),a=e[i][ur]-t;if(a===0)return Oo=!0,i;a<0?r=i+1:n=i-1}return Oo=!1,r-1}function wE(e,t,r){for(let n=r+1;n<e.length&&e[n][ur]===t;r=n++);return r}function IE(e,t,r){for(let n=r-1;n>=0&&e[n][ur]===t;r=n--);return r}function vE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function bE(e,t,r,n){let{lastKey:i,lastNeedle:a,lastIndex:o}=r,s=0,c=e.length-1;if(n===i){if(t===a)return Oo=o!==-1&&e[o][ur]===t,o;t>=a?s=o===-1?0:o:c=o}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=yE(e,t,s,c)}function kE(e){return typeof e=="string"?JSON.parse(e):e}var RE="`line` must be greater than 0 (lines start at line 1)",AE="`column` must be greater than or equal to 0 (columns start at column 0)",Eg=-1,_E=1,Pg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=kE(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=cE(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=fE(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=vE(),this._bySources=void 0,this._bySourceMemos=void 0}};function EE(e){var t;return(t=e)._decoded||(t._decoded=wg(e._encoded))}function Ng(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(RE);if(n<0)throw new Error(AE);let a=EE(e);if(r>=a.length)return No(null,null,null,null);let o=a[r],s=PE(o,e._decodedMemo,r,n,i||_E);if(s===-1)return No(null,null,null,null);let c=o[s];if(c.length===1)return No(null,null,null,null);let{names:l,resolvedSources:d}=e;return No(d[c[lE]],c[dE]+1,c[pE],c.length===5?l[c[uE]]:null)}function No(e,t,r,n){return{source:e,line:t,column:r,name:n}}function PE(e,t,r,n,i){let a=bE(e,n,t,r);return Oo?a=(i===Eg?wE:IE)(e,n,a):i===Eg&&a++,a===-1||a===e.length?-1:a}var oe=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},ed=/^sha256:[a-f0-9]{64}$/,Dg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,NE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,jo=(e,t)=>Object.keys(e).every(r=>t.includes(r)),xi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),En=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Sg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=we.join(we.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Jt({projectRoot:r,planId:t.deploymentId}),i=await An({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await Ql(we.join(we.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function OE(e){if(!xi(e)||!jo(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!xi(e.error)||!xi(e.page)||!jo(e.error,["type","message","frames"])||!jo(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Dg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!ed.test(n)))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!NE.test(e.traceparent)))throw new oe("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new oe("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!xi(n)||!jo(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let i of[n.line,n.column])if(i!==void 0&&(!Number.isSafeInteger(i)||Number(i)<1))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function DE(e,t,r="unknown"){let n=e.error.frames.map(o=>({file:En(o.file,2048),...o.line===void 0?{}:{line:o.line},...o.column===void 0?{}:{column:o.column},...o.function===void 0?{}:{function:En(o.function,256)}})),i={type:En(e.error.type,256),message:En(e.error.message,4096),frames:n},a=y(k({type:i.type,message:i.message,frames:n.slice(0,5).map(({file:o,line:s,column:c})=>({file:o,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:En(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:En(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:a,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Gt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return we.join(we.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return we.join(we.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=OE(t);if(!r.allowedOrigins.includes(n.page.origin))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),a=DE(n,r.receivedAt,i);return this.#t(async()=>{let o=this.directory();await Zl(o,{recursive:!0,mode:448});let s=we.join(o,`${a.eventId}.json`);try{let f=JSON.parse(await Li(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:a.receivedAt})!==k(a))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:a.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await Do(c,"wx",384);try{await l.writeFile(`${k(a)}
|
|
41
|
+
`,"utf8"),await l.sync()}finally{await l.close()}await So(c,s);let d=await Do(o,"r");try{await d.sync()}finally{await d.close()}await this.rotate(),a.releaseId!==void 0&&await this.resymbolicate(a.releaseId);let p=JSON.parse(await Li(s,"utf8"));return{eventId:a.eventId,state:p.state,duplicate:!1}})}#t(t){let r=this.#e.then(t,t);return this.#e=r.catch(()=>{}),r}async quarantine(t){let r=we.join(this.directory(),t),n=we.join(we.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await Zl(n,{recursive:!0,mode:448}),await So(r,we.join(n,`${Date.now()}-${t}`))}async all(){let t=await Ql(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let i=JSON.parse(await Li(we.join(this.directory(),n),"utf8"));if(i.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...i,correlation:i.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,i)=>i.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(i.eventId))}selected(t,r){return t.filter(n=>(!r.applicationId||n.applicationId===r.applicationId)&&(!r.releaseId||n.releaseId===r.releaseId)&&(!r.deploymentId||n.deploymentId===r.deploymentId))}cursor(t,r){let n=k({v:1,offset:t,snapshot:r});return Buffer.from(k({content:n,digest:y(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==y(n.content))throw new Error("tampered");let i=JSON.parse(n.content);if(i.v!==1||!Number.isSafeInteger(i.offset)||i.offset<0||i.snapshot!==r)throw new Error("expired");return i.offset}catch{throw new oe("OBSERVABILITY_CURSOR_EXPIRED","Runtime Error query cursor is invalid or expired")}}async list(t){let r=Math.max(1,Math.min(t.limit??100,100)),n=this.selected(await this.all(),t),i=y(k(n.map(s=>s.eventId))),a=t.cursor===void 0?0:this.parseCursor(t.cursor,i),o=n.slice(a,a+r);return{events:o,...a+o.length<n.length?{nextCursor:this.cursor(a+o.length,i)}:{}}}async get(t){if(!Dg.test(t))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Li(we.join(this.directory(),r),"utf8"));if(n.eventId!==t)throw new Error("identity mismatch");return{...n,correlation:n.correlation??"unknown"}}catch(n){if(n.code==="ENOENT")return null;throw await this.quarantine(r).catch(()=>{}),new oe("OBSERVABILITY_STORE_DAMAGED","Runtime Error record is damaged and has been quarantined")}}async summary(t){let r=this.selected(await this.all(),t),n=new Map;for(let i of r){let a=n.get(i.fingerprint);a?a.count+=1:n.set(i.fingerprint,{count:1,latestAt:i.occurredAt,event:i})}return{total:r.length,groups:[...n.entries()].map(([i,a])=>({fingerprint:i,...a}))}}async rotate(){let t=await this.all(),n=t.reduce((i,a)=>Math.max(i,Date.parse(a.receivedAt)),0)-10080*60*1e3;for(let i of t.slice(1e4))await Og(we.join(this.directory(),`${i.eventId}.json`),{force:!0});for(let i of t.slice(0,1e4))Date.parse(i.receivedAt)<n&&await Og(we.join(this.directory(),`${i.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!ed.test(t.releaseId)||!ed.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!xi(t.map)||"sourcesContent"in t.map)throw new oe("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(k(t.map)),n=y(r),i=we.join(this.releases(),t.releaseId);await Zl(i,{recursive:!0,mode:448});let a=y(t.asset),o=we.join(i,`${a}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await Do(`${o}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
|
|
42
|
+
`),await c.sync()}finally{await c.close()}return await So(`${o}.tmp`,o),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await Ql(we.join(this.releases(),t)).catch(()=>[]),n=[];for(let i of r)try{n.push(JSON.parse(await Li(we.join(this.releases(),t,i),"utf8")))}catch{}for(let i of(await this.all()).filter(a=>a.releaseId===t&&a.state==="map-missing")){let a=!1,o=i.error.frames.map(d=>{let p=n.find(f=>new URL(d.file,"http://local").pathname.endsWith(`/${f.registration.asset}`));if(!p||d.line===void 0||d.column===void 0)return d;try{let f=Ng(new Pg(p.map),{line:d.line,column:Math.max(0,d.column-1)});return f.source===null||f.line===null||f.column===null?d:(a=!0,{...d,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return d}});if(!a)continue;let s={...i,error:{...i.error,frames:o},state:"symbolicated"},c=we.join(this.directory(),`${i.eventId}.json`),l=await Do(`${c}.tmp`,"w",384);try{await l.writeFile(`${k(s)}
|
|
43
|
+
`),await l.sync()}finally{await l.close()}await So(`${c}.tmp`,c)}}};var Ze=(e,t,r,n,i)=>({code:e,severity:t,fact:r,message:n,...i===void 0?{}:{action:i}});async function Vi(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[Ze("EVIDENCE_INVALID","critical","evidence","\u5DF2\u9A8C\u8BC1\u9501\u7F3A\u5C11\u5B8C\u6574\u8BC1\u636E\u5F15\u7528\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")];for(let r of e.lock.capabilities)for(let n of r.evidenceIds)try{let i=ui(JSON.parse(await jg(td.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(i.evidenceId!==n||i.capabilityId!==r.capabilityId||i.capabilityVersion!==r.version||i.capabilityIntegrity!==r.integrity||i.projectStateDigest!==r.projectStateDigest||i.result!=="passed")return[Ze("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u4E0E\u5DF2\u9A8C\u8BC1\u9501\u7684\u8EAB\u4EFD\u6216\u5DE5\u7A0B\u72B6\u6001\u4E0D\u4E00\u81F4\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u73B0\u573A\u5DF2\u53D8\u5316\uFF0C\u5148\u68C0\u67E5\u5E76\u91CD\u65B0\u89C4\u5212\u3002")]}catch{return[Ze("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u7F3A\u5931\u3001\u635F\u574F\u6216\u4E0D\u7B26\u5408\u5951\u7EA6\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")]}let t=e.lock.capabilities.reduce((r,n)=>r+n.evidenceIds.length,0);return[Ze("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function rd(e){return e==="adopted"?[]:e==="planned"?[Ze("ADOPTION_PLANNED","warning","lock","\u80FD\u529B\u91C7\u7528\u4ECD\u5904\u4E8E\u8BA1\u5212\u9636\u6BB5\u3002","\u5BA1\u9605\u5E76\u6279\u51C6\u7CBE\u786E Plan\u3002")]:e==="applied-unverified"?[Ze("VERIFICATION_REQUIRED","warning","evidence","\u53D8\u66F4\u5DF2\u5E94\u7528\u4F46\u5C1A\u672A\u5F62\u6210\u9A8C\u8BC1\u8BC1\u636E\u3002","\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002")]:e==="drifted"?[Ze("REPOSITORY_DRIFT","warning","repository","\u5DE5\u7A0B\u73B0\u573A\u4E0E\u5DF2\u9501\u5B9A\u4E8B\u5B9E\u4E0D\u4E00\u81F4\u3002","\u68C0\u67E5\u5DEE\u5F02\u5E76\u91CD\u65B0\u89C4\u5212\uFF0C\u5E73\u53F0\u4E0D\u4F1A\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002")]:e==="recovery-required"?[Ze("RECOVERY_REQUIRED","critical","recovery","\u68C0\u6D4B\u5230\u672A\u5B8C\u6210\u7684\u6301\u4E45\u5316\u4E8B\u52A1\u3002","\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\uFF0C\u518D\u7EE7\u7EED\u5176\u4ED6\u64CD\u4F5C\u3002")]:[Ze("FACT_INVALID","critical","manifest","\u5DE5\u7A0B\u5355\u5143\u4E8B\u5B9E\u65E0\u6CD5\u5B89\u5168\u8BFB\u53D6\u3002","\u4FEE\u590D\u8BE5\u5355\u5143\u7684 Manifest \u6216\u5143\u6570\u636E\u540E\u91CD\u65B0\u8BCA\u65AD\u3002")]}async function $g(e){try{let r=JSON.parse(await jg(td.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[Ze("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}catch{return[Ze("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}await new Gt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await SE(td.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[Ze("OBSERVABILITY_STORE_DAMAGED","critical","repository",`\u8FD0\u884C\u65F6\u9519\u8BEF\u672C\u5730\u5B58\u50A8\u5DF2\u9694\u79BB ${t} \u6761\u635F\u574F\u8BB0\u5F55\uFF0C\u5065\u5EB7\u4E8B\u4EF6\u4ECD\u53EF\u67E5\u8BE2\u3002`,"\u68C0\u67E5\u672C\u673A\u78C1\u76D8\u72B6\u6001\uFF0C\u5E76\u663E\u5F0F\u5904\u7406\u9694\u79BB\u8BB0\u5F55\u3002")]:[Ze("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function Cg(e){let t=e.units.map(n=>{let i=n.findings.some(a=>a.severity==="critical")?"blocked":n.findings.some(a=>a.severity==="warning")?"attention":"healthy";return{...n,status:i}}),r={total:t.length,healthy:t.filter(n=>n.status==="healthy").length,attention:t.filter(n=>n.status==="attention").length,blocked:t.filter(n=>n.status==="blocked").length};return{schemaVersion:1,workspace:e.workspace,generatedAt:e.generatedAt,status:r.blocked>0?"blocked":r.attention>0?"attention":"healthy",summary:r,units:t}}import{readFile as Mi,realpath as Tg}from"node:fs/promises";import Ur from"node:path";var le=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function Lg(e){let t=await Tg(Ur.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!i||i.packageAdoption!==void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let a=W({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),o=Buffer.from(`${JSON.stringify(a,null,2)}
|
|
44
|
+
`),s=await Fi(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:y(o)},...i.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>Fi(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:i.assets.map(f=>({path:f.path,ownership:f.ownership??"owned-file",desiredDigest:f.digest})),verifiers:n.verifiers.map(f=>({id:f.id,kind:"file-digest"}))};return{plan:Ae({action:"remove",capability:d,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:a,desiredContents:new Map([["project-capabilities.json",o]]),transactionRoot:t,removedSources:[]}}async function Fi(e,t){try{let r=await Mi(Ur.join(e,...t.split("/")));return{path:t,exists:!0,digest:y(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function nd(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await Tg(Ur.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.packageSource?.topology,a=i?.transactionRoot??t,o=R=>i?.mode==="pnpm-shared-lockfile"?`${i.unitRelativeRoot}/${R}`:R;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new le("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new le("CAPABILITY_ALREADY_SELECTED","The capability is already selected by this project");let s=r.profile?.id,c=s==="typescript-library"?"blank-typescript-library":s,l=n.dependencies?.profiles??[],d=e.currentLock.capabilities.find(R=>R.consumerProfile===c);if(c===void 0||!l.includes(c)||d===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(N=>N.capabilityId===R)||!e.currentLock.capabilities.some(N=>N.capabilityId===R)))throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=W({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=o("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
|
|
45
|
+
`),g=await Fi(a,u);if(!g.exists||g.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let h=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:y(m)}],w=new Map([[u,m]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await Mi(Ur.join(t,"package.json"))}catch{throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let N=e.packageSource.currentLockfile??await Mi(Ur.join(t,"pnpm-lock.yaml")).catch(se=>se.code==="ENOENT"?void 0:Promise.reject(se)),j=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},re=j.mode==="pnpm-shared-lockfile",$={mode:j.mode,unitRelativeRoot:j.unitRelativeRoot,unitImporterId:j.unitImporterId,lockfilePath:j.lockfilePath,...j.workspaceManifestPath?{workspaceManifestPath:j.workspaceManifestPath,workspaceManifestDigest:j.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(re&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let Z=re?(e.packageChannel==="development"?yo:ho)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:N,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?go:mo)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...N===void 0?{}:{currentLockfile:N},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=po(Z),h.push({path:o("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Z.packageJsonPreimageDigest,desiredDigest:Z.desiredPackageJsonDigest}),w.set(o("package.json"),Z.desiredPackageJson),h.push({path:j.lockfilePath,kind:N===void 0?"create":"replace",ownership:"owned-file",...N===void 0?{}:{baseDigest:y(N)},desiredDigest:Z.desiredLockfileDigest}),w.set(j.lockfilePath,Z.desiredLockfile)}catch(N){throw N instanceof H?new le("CAPABILITY_PACKAGE_SOURCE_INVALID",N.code):N}}for(let R of n.assets){let N=e.release.contents.get(R.path);if(N===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let j=R.renderer==="application-config-contract-v1"?Io(r):R.renderer==="application-config-binding-v1"?ko(r):N;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let re;try{re=await Mi(Ur.join(t,...R.path.split("/")))}catch{throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(Yf({source:re.toString("utf8"),regionId:R.regionId,content:Buffer.from(j).toString("utf8")}));h.push({path:o(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(re),desiredDigest:y($)}),w.set(o(R.path),$)}else{let re=await Fi(t,R.path);if(R.ownership==="seed-file"&&re.exists){let $=await Mi(Ur.join(t,...R.path.split("/")));h.push({path:o(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(o(R.path),$)}else h.push({path:o(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(j)}),w.set(o(R.path),j)}}let b=await Promise.all(h.map(R=>Fi(a,R.path))),_={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==i?.lockfilePath).map(R=>({path:i?.mode==="pnpm-shared-lockfile"?R.path.slice(i.unitRelativeRoot.length+1):R.path,ownership:R.ownership,desiredDigest:R.desiredDigest})),verifiers:n.verifiers.map(R=>({id:R.id,kind:"file-digest"}))};return{plan:Ae({action:"adopt",capability:_,changes:h,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:f,desiredContents:w,transactionRoot:a,dependency:{profile:c,satisfied:!0}}}var xg=Hr(Er(),1);var jE={$id:"https://schemas.dyyto.dev/platform/solution-catalog-entry-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","solutionId","version","integrity","title","summary","maturity","members","integration","exit"],properties:{schemaVersion:{const:1},solutionId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Nt},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},maturity:{enum:["guided","automated"]},members:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","role","required"],properties:{capabilityId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128},role:{type:"string",minLength:1,maxLength:80},required:{type:"boolean"}}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","steps","verification","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},steps:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["label","command"],properties:{label:{type:"string",minLength:1,maxLength:80},command:{type:"string",minLength:1,maxLength:2e3}}}},verification:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:1e3}},result:{type:"string",minLength:1,maxLength:400}}},exit:{type:"object",additionalProperties:!1,required:["summary"],properties:{summary:{type:"string",minLength:1,maxLength:400}}}}},zj=new xg.Ajv2020({allErrors:!0,strict:!0}).compile(jE);var qg=Hr(Er(),1);import{readFile as $E,realpath as CE}from"node:fs/promises";import Vg from"node:path";var Mg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",Fg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",TE={$id:"https://schemas.dyyto.dev/platform/example-recipe-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","recipeId","version","integrity","title","locale","rootProfile","capabilities","expectedEntrypoint","verifiers","manualAcceptance","cleanup"],properties:{schemaVersion:{const:1},recipeId:{type:"string",pattern:Mg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Nt},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128}}},capabilities:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","channel"],properties:{capabilityId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:Fg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Mg}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:Fg,maxLength:240}}}}}},Ug=new qg.Ajv2020({allErrors:!0,strict:!0}).compile(TE),qr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function LE(e){return y(k(e))}function xE(e){if(!Ug(e))throw new qr("EXAMPLE_RECIPE_INVALID",Ug.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new qr("EXAMPLE_RECIPE_INVALID");return t}async function Bg(e){let t=await CE(Vg.resolve(e)),r;try{r=xE(JSON.parse(await $E(Vg.join(t,"recipe.json"),"utf8")))}catch(a){throw a instanceof qr?a:new qr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(LE(i)!==n)throw new qr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var Gg=Hr(Er(),1);import{readFile as VE,realpath as ME}from"node:fs/promises";import zg from"node:path";var FE={$id:"https://schemas.dyyto.dev/platform/engineering-template-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","templateId","version","integrity","title","summary","status","profile","parameters","commands","technology","support","integration","metrics"],properties:{schemaVersion:{const:1},templateId:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Nt},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},status:{enum:["candidate","recommended","deprecated"]},profile:{type:"object",additionalProperties:!1,required:["id","capability"],properties:{id:{type:"string",pattern:ee},capability:{type:"string",pattern:`${ee.slice(1,-1)}@[0-9]+\\.[0-9]+\\.[0-9]+$`}}},parameters:{type:"array",minItems:0,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","required","description"],properties:{id:{type:"string",pattern:"^[a-z][A-Za-z0-9]*$"},required:{type:"boolean"},description:{type:"string",minLength:1,maxLength:160}}}},commands:{type:"object",minProperties:1,additionalProperties:!1,properties:{dev:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},build:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},test:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},package:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"}}},technology:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","version","policy","verifiedAt","rationale","alternative","exit"],properties:{id:{type:"string",pattern:ee},version:{type:"string",minLength:1,maxLength:64},policy:{enum:["recommended","allowed"]},verifiedAt:{type:"string",format:"date"},rationale:{type:"string",minLength:1,maxLength:240},alternative:{type:"string",minLength:1,maxLength:160},exit:{type:"string",minLength:1,maxLength:240}}}},support:{type:"object",additionalProperties:!1,required:["owner","tier","supportedFrom","supportedUntil","upgradeCadence","eolNoticeDays"],properties:{owner:{type:"string",pattern:ee},tier:{const:"production"},supportedFrom:{type:"string",format:"date"},supportedUntil:{type:"string",format:"date"},upgradeCadence:{type:"string",minLength:1,maxLength:80},eolNoticeDays:{type:"integer",minimum:30,maximum:730}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","createCommand","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},createCommand:{type:"string",minLength:1,maxLength:2e3},result:{type:"string",minLength:1,maxLength:400}}},metrics:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["time-to-green-build","time-to-first-business-commit","manual-engineering-edits","upgrade-conflicts"]}}}},Jg=new Gg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(FE),Wt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function UE(e){return y(k(e))}function qE(e){if(!Jg(e))throw new Wt("TEMPLATE_INVALID",Jg.errors??[]);let t=e;if(new Set(t.parameters.map(r=>r.id)).size!==t.parameters.length||new Set(t.technology.map(r=>r.id)).size!==t.technology.length)throw new Wt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Wt("TEMPLATE_INVALID");return t}async function Ui(e,t=new Date){let r=await ME(zg.resolve(e)),n;try{n=qE(JSON.parse(await VE(zg.join(r,"template.json"),"utf8")))}catch(o){throw o instanceof Wt?o:new Wt("TEMPLATE_INVALID")}let{integrity:i,...a}=n;if(UE(a)!==i)throw new Wt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Wt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Wg}from"node:fs/promises";import Kg from"node:path";var BE=/^[A-Z][A-Z0-9_]*$/u,zE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function JE(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(r.trim());if(!n||!BE.test(n[1]))continue;let i=n[1],a=n[2].trim();t.set(i,{name:i,requirement:a.length===0?"conditional":"optional",secret:zE.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Yg(e){let t=await Wg(Kg.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Wg(Kg.join(e.projectRoot,t),"utf8"):"",n=await ji({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(a=>e.commands[a]?[{id:a,script:e.commands[a],mode:a==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(a=>({name:a.name,requirement:a.required?"conditional":"optional",secret:a.kind!=="value",configured:a.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:a.display,...a.fingerprint?{fingerprint:a.fingerprint}:{}})):JE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Hg={change:new Set(["plan","apply","upgrade","recover","baseline-next","add-package","add-application","add-feature"]),quality:new Set(["inspect","verify","doctor","maintenance","test","build"]),delivery:new Set(["package","delivery-plan","delivery-apply","delivery-inspect"])},Xg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Zg(e,t){if(!Hg[t.plane]||t.state&&!Xg.has(t.state)||t.limit!==void 0&&(!Number.isSafeInteger(t.limit)||t.limit<1||t.limit>200))throw new Error("OPERATION_FILTER_INVALID");let r=Hg[t.plane],n=t.from?Date.parse(t.from):null,i=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||i!==null&&Number.isNaN(i)||n!==null&&i!==null&&n>i)throw new Error("OPERATION_FILTER_INVALID");let a=e.filter(l=>r.has(l.operation)),o=[...new Map(a.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=a.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(i===null||Date.parse(l.createdAt)<=i)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(o),states:Object.freeze([...Xg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Qe=class extends Error{code;constructor(t){super(t),this.code=t}},GE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Qg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,WE=/^sha512-[A-Za-z0-9+/]{86}==$/u,$o=/^sha256:[a-f0-9]{64}$/u,KE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,YE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,HE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Br(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,a)=>i===n[a])}function XE(e){if(!Br(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!GE.test(e.packageName)||!Qg.test(e.version)||!KE.test(e.assetName)||!WE.test(e.integrity)||!$o.test(e.tarballDigest)||typeof e.dependencies!="object"||e.dependencies===null||Array.isArray(e.dependencies)||e.lifecycleScripts.length>0)return!1;let t=Object.entries(e.dependencies);return t.length>256||t.some(([r,n])=>!/^(@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u.test(r)||!Qg.test(n)||YE.test(n))?!1:e.lifecycleScripts.every(r=>HE.has(r))}function id(e){if(!Br(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(a=>Object.freeze({...a,dependencies:Object.freeze({...a.dependencies}),lifecycleScripts:Object.freeze([...a.lifecycleScripts])}));if(t.some(a=>!XE(a)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(a=>a.packageName+"@"+a.version);if(new Set(r).size!==r.length||r.some((a,o)=>o>0&&a.localeCompare(r[o-1])<=0))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(a=>a.packageName));for(let a of t)for(let[o,s]of Object.entries(a.dependencies))if(o.startsWith("@aipt/")&&(!n.has(o)||!t.some(c=>c.packageName===o&&c.version===s)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:y(k(i))})}function zr(e){let t=e;if(typeof t!="object"||t===null||!Br(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!$o.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");if(id({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function ad(e){if(!Br(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Br(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!$o.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let r=zr(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:y(k(n))})}function eh(e){let t=e;if(typeof t!="object"||t===null||!Br(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!$o.test(t.planId)||!Br(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");if(ad({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");return t}function th(e){let t=zr(e.bundle),r=Ni(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Ll({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ye=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},rh=/^sha256:[a-f0-9]{64}$/u,Co=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function od(e){if(!Co.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>rh.test(r))||!Co.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(k(t))})}function nh(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let r=od({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");return r}function sd(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>rh.test(r))||!Co.test(e.workerReleaseId)||!Co.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function To(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let r=sd({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");return r}var qi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},cd=/^sha256:[a-f0-9]{64}$/u,ZE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function ld(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>cd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!ZE.test(r.path)||!cd.test(r.currentDigest)||!cd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new qi("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:y(k(t))})}function ih(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new qi("RECOVERY_OVERRIDE_INVALID");let r=ld({transactionPlanId:t.transactionPlanId,transactionRootDigest:t.transactionRootDigest,conflicts:t.conflicts,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new qi("RECOVERY_OVERRIDE_INVALID");return r}var Bi=class extends Error{code;constructor(t,r){super(r),this.code=t}},pd=/^sha256:[a-f0-9]{64}$/u,QE=/^sha512-[A-Za-z0-9+/]{86}==$/u,eP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,tP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,rP=/[\u0000-\u001f\u007f]/u;function Pn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Nn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,a)=>i===n[a])}function Kt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!rP.test(e)}function dd(e){return Kt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function ah(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Kt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function nP(e){return e===null?!0:!Pn(e)||!Nn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:dd(e.fileName)&&pd.test(String(e.digest))&&QE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function iP(e){if(!Pn(e)||!Nn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!eP.test(e.packageName)||!tP.test(e.version)||!Kt(e.title,120)||!Kt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!Pn(e.source)||!Nn(e.source,["repository","path","revision","treeDigest"])||!Kt(e.source.repository)||!dd(e.source.path)||!Kt(e.source.revision,200)||!pd.test(String(e.source.treeDigest))||!nP(e.artifact)||!Pn(e.compatibility)||!Nn(e.compatibility,["node","packageManager"])||!Kt(e.compatibility.node,100)||!Kt(e.compatibility.packageManager,100)||!ah(e.exports)||!ah(e.consumerEvidence)||!Pn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Nn(e.documentation,t)||!dd(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Kt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function aP(e){let t={schemaVersion:1,kind:"PackageRelease",...e,source:Object.freeze({...e.source}),artifact:e.artifact===null?null:Object.freeze({...e.artifact}),compatibility:Object.freeze({...e.compatibility}),exports:Object.freeze([...e.exports]),documentation:Object.freeze({...e.documentation}),consumerEvidence:Object.freeze([...e.consumerEvidence])};if(!iP(t))throw new Bi("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(k(t))})}function oh(e){if(!Pn(e)||!Nn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!pd.test(String(e.releaseDigest)))throw new Bi("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,a=aP(i);if(a.releaseDigest!==t)throw new Bi("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return a}import{lstat as oP,readFile as sP,realpath as cP}from"node:fs/promises";import sh from"node:path";async function ch(e){let t=await cP(sh.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,i=[...e.lock.capabilities].sort((o,s)=>o.committedAt.localeCompare(s.committedAt)||o.capabilityId.localeCompare(s.capabilityId));for(let o of i)if(!r.has(o.capabilityId))for(let s of o.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let p of n.keys())p.startsWith(l)&&n.delete(p);let d=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(d,{capabilityId:o.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let a=[];for(let o of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=sh.join(t,...o.path.split("/")),l=await oP(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await sP(s);if(o.ownership!=="managed-region")return y(p);if(o.regionId!==void 0)try{return y(Ma(p.toString("utf8"),o.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===o.digest;a.push({capabilityId:o.capabilityId,path:o.path,kind:"create",ownership:o.ownership,...o.regionId===void 0?{}:{regionId:o.regionId},desiredDigest:o.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return a}import{readFile as ie,readdir as Rh,realpath as At}from"node:fs/promises";import{execFile as RP,spawn as AP}from"node:child_process";import O from"node:path";import{parseArgs as de,promisify as _P}from"node:util";import{lstat as lh,mkdir as fd,readFile as dh,realpath as ud,rm as lP,writeFile as ph}from"node:fs/promises";import et from"node:path";var tt=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},dP=e=>k(e),uh=e=>y(dP(e));async function fh(e,t){let r=await ud(et.resolve(e)),n=et.join(r,".examples");await fd(n,{recursive:!0});let i=await ud(n),a=et.resolve(r,t);if(et.dirname(a)!==i||et.basename(a).startsWith(".")||et.basename(a).length<1)throw new tt("SCAFFOLD_ARGUMENT_INVALID");if(await lh(a).then(()=>!0).catch(o=>o.code==="ENOENT"?!1:Promise.reject(o)))throw new tt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:a,outputRelativePath:et.relative(r,a)}}async function mh(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new tt("SCAFFOLD_ARGUMENT_INVALID");let r=await fh(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),i={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},a={...i,planId:uh(i)},o=et.join(r.workspaceRoot,".dyyto","scaffold-plans");await fd(o,{recursive:!0});let s=et.join(o,`${a.planId}.json`);return await ph(s,`${k(a)}
|
|
46
|
+
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await dh(s,"utf8")!==`${k(a)}
|
|
47
|
+
`)throw new tt("SCAFFOLD_PLAN_INVALID")}),a}async function pP(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new tt("SCAFFOLD_PLAN_INVALID");let r=await ud(et.resolve(e)),n;try{n=JSON.parse(await dh(et.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new tt("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:i,...a}=n;if(i!==t||uh(a)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new tt("SCAFFOLD_PLAN_INVALID");return n}async function gh(e){let t=await pP(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new tt("SCAFFOLD_PLAN_INVALID");let r=await fh(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await lh(r.output).then(()=>!0).catch(()=>!1)&&await lP(r.output,{recursive:!0,force:!0}),new tt("SCAFFOLD_APPLY_FAILED",s)}let i={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},a=y(k(i)),o=et.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await fd(o,{recursive:!0}),await ph(et.join(o,`${a}.json`),`${k({...i,evidenceId:a})}
|
|
48
|
+
`,{flag:"wx",mode:384}),{evidenceId:a,output:r.output,receipts:n}}import{lstat as zi,readFile as md,readdir as uP,realpath as gd}from"node:fs/promises";import ge from"node:path";var hh={capabilities:ge.resolve(import.meta.dirname,"catalog"),packages:ge.resolve(import.meta.dirname,"package-releases")};function wh(e,t){return e<t?-1:e>t?1:0}function xo(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(xo).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>wh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${xo(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function fP(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(i===""||i.startsWith("#"))continue;if(i.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i);if(!a)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(a[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${a[1]}`);let o=a[2].trim();if((o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),/[`$][({]?/u.test(o))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(a[1],o)}return t}async function yh(e,t){let r=await zi(e);if(!r.isFile()||r.isSymbolicLink()||r.nlink!==1)throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u975E\u94FE\u63A5\u6587\u4EF6`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-385)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80600`)}async function Lo(e,t){let r=await zi(e);if(!r.isDirectory()||r.isSymbolicLink())throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u4E14\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-449)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80700`);return gd(e)}async function mP(e){let t=e;for(;;){if(await zi(ge.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=ge.dirname(t);if(r===t)return;t=r}}async function gP(e){if(!ge.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Lo(e,"IDP_CONFIG_DIR");await mP(t);let r=await Lo(ge.join(t,"components"),"components"),n=await Lo(ge.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=ge.relative(t,n);if(i.startsWith("..")||ge.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let a=ge.join(n,".env");await yh(a,"Dyyto \u7EC4\u4EF6 .env");let o=fP(await md(a,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(o===void 0||o==="")return[];if(ge.isAbsolute(o)||o.includes("\0")||/[*?{}[\]]/u.test(o))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=ge.resolve(n,o),c=ge.relative(n,s);if(c===""||c.startsWith("..")||ge.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(ge.sep).slice(0,-1))l=await Lo(ge.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await gd(ge.dirname(s)),p=ge.relative(n,d);if(p.startsWith("..")||ge.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await yh(s,"Package Catalog Binding");let f=[];for(let u of(await md(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!ge.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await zi(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await gd(m),w=await zi(h);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(h)||f.push(h)}return f.sort()}async function hP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await gP(e);return{capabilities:hh.capabilities,packages:[hh.packages,...t]}}async function Vo(e){return(await uP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function yP(e,t){let r=a=>a.split("-",1)[0].split(".").map(Number),n=r(e),i=r(t);for(let a=0;a<3;a+=1){let o=(n[a]??0)-(i[a]??0);if(o!==0)return o}return e.localeCompare(t)}function wP(e){let t=e.schemaVersion===2?e.availability.maturity:"legacy-unverified",r="consumerProfile"in e?e.consumerProfile:"\u591A\u79CD\u5DE5\u7A0B Profile";return{kind:"capability",ref:`capability:${e.capabilityId}@${e.version}`,id:e.capabilityId,version:e.version,title:e.capabilityId,summary:`\u9002\u7528\u4E8E ${r} \u7684\u5DE5\u7A0B\u80FD\u529B\u53D1\u884C\u3002`,maturity:t,integrity:e.integrity}}function IP(e){return{kind:"package",ref:`package:${e.packageName}@${e.version}`,id:e.packageName,version:e.version,title:e.title,summary:e.summary,maturity:e.maturity,integrity:e.releaseDigest}}async function vP(e){let t=[];for(let r of await Vo(e))for(let n of await Vo(ge.join(e,r))){let i=`capability:${r}@${n}`;t.push(be(ge.join(e,r,n)).then(a=>({entry:{item:wP(a.release),release:a.release}})).catch(()=>({diagnostic:{ref:i,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function bP(e){let t=[];for(let r of await Vo(e))for(let n of await Vo(ge.join(e,r))){let i=ge.join(e,r,n,"release.json"),a=`package:${r}@${n}`;t.push(md(i,"utf8").then(o=>{let s=oh(JSON.parse(o));return{entry:{item:IP(s),release:s}}}).catch(()=>({diagnostic:{ref:a,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function hd(e){let t=e??await hP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([vP(t.capabilities),...r.map(bP)]),a=[...n.entries,...i.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),o=[],s=new Set,c=[];for(let l of a)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),o.push(l));return{entries:o,diagnostics:[...n.diagnostics,...i.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Mo(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await hd(e.roots),n=new Map;for(let{item:o}of r.entries){if(e.kind!==void 0&&o.kind!==e.kind)continue;let s=[o.id,o.version,o.title,o.summary,o.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${o.kind}:${o.id}`,l=n.get(c);(l===void 0||yP(l.version,o.version)<0)&&n.set(c,o)}let i=[...n.values()].sort((o,s)=>o.ref.localeCompare(s.ref)),a=e.limit??50;return{query:t,total:i.length,items:i.slice(0,a),diagnostics:r.diagnostics}}async function Fo(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await hd(e.roots),n=r.entries.find(({item:a})=>a.ref===t),i=r.diagnostics.find(a=>a.ref===t);if(i?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&i!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function kP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let i=n;if(typeof i.capabilityId!="string"||typeof i.version!="string"||!Array.isArray(i.integration?.packages))continue;let a=`capability:${i.capabilityId}@${i.version}`;for(let o of i.integration.packages){if(typeof o!="object"||o===null)continue;let s=o;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(a),t.set(c,l)}}return t}async function Ih(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await hd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=kP(r.entries),i=r.entries.filter(({item:o})=>o.kind==="package").map(({release:o})=>{let s=o;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((o,s)=>wh(o.ref,s.ref)),a={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...a,sourceDigest:y(xo(a))})}function vh(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(xo(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
+
`}var Ji={"typescript-library":"foundation.typescript-quality@1.0.0","standalone-npm-package":"foundation.standalone-npm-package@1.2.0","workspace-root":"foundation.workspace-root@1.1.0","workspace-npm-package":"foundation.workspace-npm-package@1.2.0","workspace-node-application":"foundation.workspace-node-application@1.1.0","workspace-web-application":"foundation.workspace-web-application@1.1.0","workspace-expo-application":"foundation.workspace-expo-application@1.0.0","react-component-library":"foundation.react-component-library@1.1.0","workspace-react-component-library":"foundation.workspace-react-component-library@1.2.0","nextjs-full-stack-application":"foundation.nextjs-full-stack-application@1.0.0"},Ah=_P(RP),EP=new Set(["template.typescript-library@1.0.0","template.typescript-library@1.1.0","template.react-component-library@1.0.0","template.react-component-library@1.1.0","template.nextjs-full-stack-application@1.0.0","template.expo-react-native-application@1.0.0","template.node-api-application@1.0.0","template.workspace-root@1.0.0","template.workspace-root@1.1.0","template.workspace-root@1.2.0","template.workspace-npm-package@1.0.0","template.workspace-react-component-library@1.0.0","template.workspace-react-component-library@1.1.0","template.workspace-react-component-library@1.2.0","template.web-frontend-application@1.0.0"]),_h=(e,t)=>e==="foundation.workspace-root"&&t==="1.4.0"?{id:"template.workspace-root",version:"1.1.0"}:e==="foundation.workspace-root"&&t==="1.5.0"?{id:"template.workspace-root",version:"1.2.0"}:void 0,Uo={"workspace-npm-package":{id:"template.workspace-npm-package",version:"1.0.0"},"react-component-library":{id:"template.workspace-react-component-library",version:"1.2.0"},"workspace-web-application":{id:"template.web-frontend-application",version:"1.0.0"},"workspace-node-application":{id:"template.node-api-application",version:"1.0.0"},"workspace-expo-application":{id:"template.expo-react-native-application",version:"1.0.0"},"nextjs-full-stack-application":{id:"template.nextjs-full-stack-application",version:"1.0.0"}};function Eh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function qo(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await ie(O.join(e,"package.json")),a=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:o}=await import("./optional-runtime.js"),s=await Bt(e),c=await ie(O.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=Di({release:t.release,packageJson:n??i}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...a,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:h,version:w,integrity:A})=>({registryId:g,packageName:h,version:w,integrity:A}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=Fl({release:t.release,packageJson:n??i}),d=await o({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:a.registryConfigs,endpointBindings:a.endpointBindings});return{...a,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Ph(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await ie(O.join(e,"project-capabilities.json"),"utf8")),_=new Date;return Lg({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let a=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),o=await ie(O.join(e,"package.json")),s=await ie(O.join(e,"project-capabilities.json")),c=await Bt(e),l=await ie(O.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(_=>_.packageName)??[])),p=i.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?ql({packageJson:o,remove:p}):Ul({packageJson:o,remove:p}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),_=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(R=>`${c.unitRelativeRoot}/${R.path}`)],I=await Promise.all(_.map(async R=>ie(O.join(c.transactionRoot,...R.split("/"))).then(N=>({path:R,exists:!0,digest:y(N)})).catch(N=>N.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(N))));return{...qm({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:l,endpointBindings:a.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:a.registryConfigs,endpointBindings:a.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>ie(O.join(e,...b.split("/"))).then(_=>({path:b,exists:!0,digest:y(_)})).catch(_=>_.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(_))));return{...Um({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:a.endpointBindings,observedAssets:A,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function je(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):O.resolve(import.meta.dirname,"catalog",e,t)}function Bo(e,t){return EP.has(`${e}@${t}`)?O.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function PP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("The selected example recipe identity or version is invalid."):O.resolve(import.meta.dirname,"recipes",e,t)}function Q(e){let t=O.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${O.sep}`)?t:O.basename(e)}async function zo(e){let t=JSON.parse(await ie(O.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await be(je(r.capabilityId,r.version)),i=await Ve(e).catch(()=>null),a=new Date,s=await(t.profile?.id==="standalone-npm-package"?ki:t.profile?.id==="react-component-library"?Ri:t.profile?.id==="nextjs-full-stack-application"?Rn:t.profile?.id==="workspace-npm-package"?Ai:t.profile?.id==="workspace-node-application"?_i:t.profile?.id==="workspace-web-application"?Ei:t.profile?.id==="workspace-expo-application"?Pi:Ba)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString()});return qt({projectRoot:e,plan:s.plan,now:a.toISOString()})}async function Nh(e){let t;try{t=de({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Ui(Bo(g,h))}let i=n?.profile.id??t.values.profile;if(i!=="typescript-library"&&i!=="standalone-npm-package"&&i!=="react-component-library"&&i!=="nextjs-full-stack-application"&&i!=="workspace-root")return v("Create requires a supported --profile.");let a=t.values.capability,o=i==="workspace-root"&&a==="foundation.workspace-root@1.0.0"||i==="standalone-npm-package"&&a==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(o?a:Ji[i]);if(n!==void 0&&s.split("@")[0]!==Ji[i].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&a!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&a!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,A=t.values["publish-access"],b=t.values.repository;if([g,h,w,A].some(_=>typeof _!="string")||l==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:d},capabilities:[{capabilityId:c,version:l}]};(i==="standalone-npm-package"||i==="react-component-library")&&pr(W(p),i),i==="nextjs-full-stack-application"&&Lr(W(p));let f=await io({projectRoot:t.positionals[0],manifest:p}),u=await zo(f.projectRoot),m=Q(f.projectRoot);return{outputMode:B(e),human:`Project '${m}' initialized.
|
|
50
50
|
Plan: ${u.planId}
|
|
51
51
|
State: ${u.state}
|
|
52
|
-
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function NP(e){let[t,...r]=e,n;try{n=de({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},profile:{type:"string"},capability:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return v("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return v("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return v("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return v("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return v("Retrofit --profile is invalid.");let i=n.values.capability??"foundation.workspace-root@1.2.0",a=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(i);if(!a)return v("Retrofit --capability is invalid.");let o=await be(je(a[1],a[2])),s=n.values.profile??"workspace-root";if(o.release.consumerProfile!==s)return v("Retrofit profile and capability are incompatible.");let c=new Date,l=s==="workspace-root"?await hm({projectRoot:n.values.project,capabilityIntegrity:o.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}):await gm({projectRoot:n.values.project,manifest:{schemaVersion:1,profile:{id:s,parameters:{}},capabilities:[{capabilityId:a[1],version:a[2]}]},capabilityIntegrity:o.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString()}),d=Q(l.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return v("Retrofit plan does not accept --approve.");let m=await qt({projectRoot:l.projectRoot,plan:l.plan,now:c.toISOString()});return{outputMode:B(e),human:`Project: ${d}
|
|
53
53
|
Plan: ${m.planId}
|
|
54
54
|
State: ${m.state}
|
|
55
55
|
Files: project-capabilities.json
|
|
56
|
-
Next: dyyto retrofit apply --project ${d} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:d,plan:m}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let p=await
|
|
56
|
+
Next: dyyto retrofit apply --project ${d} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:d,plan:m}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let p=await Cr({projectRoot:l.projectRoot,planId:n.values.approve}),f=await sr({projectRoot:l.projectRoot,plan:p,approvedPlanId:n.values.approve,desiredContents:l.desiredContents,now:c.toISOString()}),u=await cr(f);return{outputMode:B(e),human:`Project: ${d}
|
|
57
57
|
Plan: ${p.planId}
|
|
58
58
|
State: ${u.state}
|
|
59
|
-
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:d,planId:p.planId,transaction:u}}}}async function
|
|
59
|
+
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:d,planId:p.planId,transaction:u}}}}async function OP(e,t){let r;try{r=de({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return v(`${e} requires --project.`);let n=await At(O.resolve(r.values.project)),i=W(JSON.parse(await ie(O.join(n,"project-capabilities.json"),"utf8")));if(i.template===void 0)return v("The project does not declare an engineering template.");let a=await Ui(Bo(i.template.id,i.template.version)),o=a.commands[e];if(o===void 0)return v(`Template ${a.templateId} does not support ${e}.`);let s=o==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",o],c=Date.now();if(e==="dev"){if(await new Promise((u,m)=>{let g=AP("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),h=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",h),process.once("SIGTERM",w),g.once("error",m),g.once("close",A=>{process.off("SIGINT",h),process.off("SIGTERM",w),u(A??1)})})!==0)throw new T({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${a.templateId}@${a.version}`,command:o,durationMs:Date.now()-c,stdout:""};return{outputMode:B(t),human:`dev completed for '${Q(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let l=await Ah("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${a.templateId}@${a.version}`,command:o,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:B(t),human:`${e} completed for '${Q(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:d}}}async function DP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"},capability:{type:"string"},kind:{type:"string"},profile:{type:"string"}}})}catch{return v("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(A=>typeof A!="string"))return v("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return v("Add package requires a supported --profile.");let i=n==="react-component-library"?Ji["workspace-react-component-library"]:Ji["workspace-npm-package"];if(t.values.capability!==i)return v(`Add package requires --capability ${i}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return v("Add package --kind only accepts fixture.");let a=t.values.kind==="fixture"?"fixture":"package",o=String(t.values.path),s=Vd(o,a);if(s!==void 0)return v(s);let c=await At(O.resolve(String(t.values.workspace))),l=JSON.parse(await ie(O.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let d=l.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root")return v("Workspace root capability is invalid.");let p=await Ve(c);if(p===null){let A=await be(je(d.capabilityId,d.version)),b=new Date;if((await qa({projectRoot:c,release:A,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding a package.")}if(p!==null){try{await Dr({projectRoot:c,expectedAssets:Eh(p)})}catch{return v("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Vi({projectRoot:c,lock:p})).some(b=>b.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await Fd(c,a==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[f,u]=i.split("@"),m={schemaVersion:1,...Uo[n]===void 0?{}:{template:Uo[n]},profile:{id:n,parameters:{name:String(t.values.name),version:String(t.values.version),license:String(t.values.license),publishAccess:String(t.values["publish-access"]),repository:String(t.values.repository)}},capabilities:[{capabilityId:f,version:u}]};pr(W(m),n);let g=await io({projectRoot:O.join(c,...o.split("/")),manifest:m}),h=await zo(g.projectRoot),w=Q(g.projectRoot);return{outputMode:B(e),human:`Workspace package '${o}' initialized.
|
|
60
60
|
Plan: ${h.planId}
|
|
61
61
|
State: ${h.state}
|
|
62
|
-
Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:
|
|
62
|
+
Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:Q(c),path:o,plan:h}}}}async function SP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},profile:{type:"string"},capability:{type:"string"}}})}catch{return v("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return v("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return v("Add application requires a supported --profile.");let n=r,i=Ji[n],a=String(t.values.path),o=Md(a,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(o!==void 0)return v(o);let s=await At(O.resolve(String(t.values.workspace))),c=JSON.parse(await ie(O.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let l=c.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(l.version))return v("Workspace applications require a supported foundation.workspace-root release.");if(a.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return v("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let d=await Ve(s);if(d===null){let w=await be(je(l.capabilityId,l.version)),A=new Date;if((await qa({projectRoot:s,release:w,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding an application.")}if(d!==null){try{await Dr({projectRoot:s,expectedAssets:Eh(d)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Vi({projectRoot:s,lock:d})).some(A=>A.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Ud(s,String(t.values.name)))return v("A workspace application already uses this name.");let[p,f]=i.split("@"),u={schemaVersion:1,...Uo[n]===void 0?{}:{template:Uo[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Lr(W(u));let m=await io({projectRoot:O.join(s,...a.split("/")),manifest:u}),g=await zo(m.projectRoot),h=Q(m.projectRoot);return{outputMode:B(e),human:`Workspace application '${a}' initialized.
|
|
63
63
|
Plan: ${g.planId}
|
|
64
64
|
State: ${g.state}
|
|
65
|
-
Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:
|
|
66
|
-
Feature: ${
|
|
65
|
+
Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:Q(s),path:a,plan:g}}}}async function Oh(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=await At(O.resolve(r.values.project)),i=JSON.parse(await ie(O.join(n,"project-capabilities.json"),"utf8")),a=await Ve(n);if(a===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[o,s]=Jo(r.values.capability),c=await be(je(o,s)),l=new Date,d;try{let u=await qo(n,c,t);d=await nd({projectRoot:n,manifest:i,release:c,currentLock:a,generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof le?new T({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await qt({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=Q(n);return{outputMode:B(e),human:`Project: ${f}
|
|
66
|
+
Feature: ${o}@${s}
|
|
67
67
|
Dependency: ${d.dependency.profile} satisfied
|
|
68
68
|
Plan: ${p.planId}
|
|
69
69
|
State: ${p.state}
|
|
70
|
-
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function
|
|
71
|
-
\u79FB\u9664\u80FD\u529B\uFF1A${
|
|
70
|
+
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function jP(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await At(O.resolve(r.values.project)),i=await Ve(n);if(i===null)return v("Remove feature requires a verified Lock.");let[a,o]=Jo(r.values.capability),s=await be(je(a,o)),c=await Ph(n,s,i,t),l=await qt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),d=Q(n);return{outputMode:B(e),human:`Project: ${d}
|
|
71
|
+
\u79FB\u9664\u80FD\u529B\uFF1A${a}@${o}
|
|
72
72
|
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
|
|
73
73
|
Plan: ${l.planId}
|
|
74
74
|
State: ${l.state}
|
|
75
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function
|
|
75
|
+
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function $P(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=O.resolve(t.values.project),n=await zo(r),i=Q(r),a=n.state==="reviewable"?`Next: dyyto apply --project ${i} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${i}
|
|
76
76
|
Plan: ${n.planId}
|
|
77
77
|
State: ${n.state}
|
|
78
|
-
${
|
|
79
|
-
Baseline: ${n}@${
|
|
78
|
+
${a}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:i,plan:n}}}}function Jo(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?v("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function CP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return v("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return v("Baseline requires --project and --capability.");let r=O.resolve(t.values.project);if(await Ve(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,i]=Jo(t.values.capability),a=await be(je(n,i)),o=JSON.parse(await ie(O.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await $l({projectRoot:r,manifest:o,release:a,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await qt({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=Q(r);return{outputMode:B(e),human:`Project: ${d}
|
|
79
|
+
Baseline: ${n}@${i}
|
|
80
80
|
Plan: ${l.planId}
|
|
81
81
|
State: ${l.state}
|
|
82
82
|
Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
|
|
83
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function
|
|
84
|
-
Upgrade: ${s.version} -> ${
|
|
83
|
+
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function TP(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},to:{type:"string"},repository:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return v("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=O.resolve(r.values.project),i=JSON.parse(await ie(O.join(n,"project-capabilities.json"),"utf8")),[a,o]=Jo(r.values.to),s=i.capabilities?.find(R=>R.capabilityId===a);if(s===void 0)return v(`Upgrade requires ${a} to be adopted by the project.`);let c=await Ve(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let l=(i.profile.id==="standalone-npm-package"||i.profile.id==="workspace-npm-package")&&o==="1.1.0";if(l){if(typeof r.values.repository!="string")return v("npm package upgrade to 1.1.0 requires --repository.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await be(je(s.capabilityId,s.version)),p=await be(je(a,o)),f={...i,capabilities:i.capabilities.map(R=>R.capabilityId===a?{capabilityId:a,version:o}:R)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?Ao(f,p):void 0,g=u?await qo(n,p,t,m):void 0,h=_h(a,o),w=new Date,A=await Jl({projectRoot:n,manifest:i,currentLock:c,sourceRelease:d,targetRelease:p,...h===void 0?{}:{targetTemplate:h},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),b=await qt({projectRoot:n,plan:A.plan,now:w.toISOString(),transactionRoot:A.transactionRoot}),_=Q(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${_} --approve ${b.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${_}
|
|
84
|
+
Upgrade: ${s.version} -> ${o}
|
|
85
85
|
Plan: ${b.planId}
|
|
86
86
|
State: ${b.state}
|
|
87
|
-
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:
|
|
88
|
-
Plan: ${
|
|
87
|
+
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:_,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function yd(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},repository:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Apply arguments are invalid.")}if(typeof r.values.project!="string")return v("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return v("Apply requires --approve <planId>.");let n=O.resolve(r.values.project),i=JSON.parse(await ie(O.join(n,"project-capabilities.json"),"utf8")),a=i.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let o=await Cr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(o.action==="remove"){let u=await Ve(n);if(u===null)return v("Remove apply requires the verified Lock.");let m=await Ph(n,await be(je(o.capability.capabilityId,o.capability.version)),u,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,d="endpointBindings"in m?m.endpointBindings:void 0}else if(o.action==="upgrade"){let u=await Ve(n),m=u?.capabilities.find(I=>I.capabilityId===o.capability.capabilityId);if(u===null||m===void 0)return v("Upgrade apply requires the verified source Lock.");if((m.consumerProfile==="standalone-npm-package"||m.consumerProfile==="workspace-npm-package")&&o.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return v("npm package upgrade apply requires the approved --repository value.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is not valid for this apply operation.");let g=await be(je(o.capability.capabilityId,o.capability.version)),h={...i,capabilities:i.capabilities.map(I=>I.capabilityId===o.capability.capabilityId?{capabilityId:o.capability.capabilityId,version:o.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,A=w?Ao(h,g):void 0,b=w?await qo(n,g,t,A):void 0;l=b?.registryConfigs,d=b?.endpointBindings;let _=_h(o.capability.capabilityId,o.capability.version);c=await Jl({projectRoot:n,manifest:i,currentLock:u,sourceRelease:await be(je(m.capabilityId,m.version)),targetRelease:g,..._===void 0?{}:{targetTemplate:_},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...o.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...b===void 0?{}:{packageSource:b}})}else if(o.action==="adopt"&&i.profile?.id==="nextjs-full-stack-application"&&i.capabilities?.[0]?.capabilityId===o.capability.capabilityId&&i.capabilities?.[0]?.version!==o.capability.version)c=await $l({projectRoot:n,manifest:i,release:await be(je(o.capability.capabilityId,o.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(i.capabilities?.some(u=>u.capabilityId===o.capability.capabilityId&&u.version===o.capability.version)){let u=await be(je(a.capabilityId,a.version)),m=await Ve(n).catch(()=>null);c=await(i.profile?.id==="standalone-npm-package"?ki:i.profile?.id==="react-component-library"?Ri:i.profile?.id==="nextjs-full-stack-application"?Rn:i.profile?.id==="workspace-npm-package"?Ai:i.profile?.id==="workspace-node-application"?_i:i.profile?.id==="workspace-web-application"?Ei:i.profile?.id==="workspace-expo-application"?Pi:Ba)({projectRoot:n,manifest:i,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Ve(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let m=await be(je(o.capability.capabilityId,o.capability.version)),g=await qo(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await nd({projectRoot:n,manifest:i,release:m,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...o.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let p;if(o.packageAdoption!==void 0){if(l===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(d===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await Bm({projectRoot:c.transactionRoot??n,plan:o,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:u({registries:l,endpointBindings:d,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let u=await sr({projectRoot:n,plan:o,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await cr(u)}let f=Q(n);return{outputMode:B(e),human:`Project: ${f}
|
|
88
|
+
Plan: ${o.planId}
|
|
89
89
|
State: ${p.state}
|
|
90
90
|
Files applied: ${p.operations.length}
|
|
91
|
-
`+(
|
|
91
|
+
`+(o.packageAdoption===void 0?`Next: cd ${f} && corepack pnpm install`:`Next: dyyto verify --project ${f}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:f,planId:o.planId,transaction:p}}}}async function LP(e,t){let r;try{r=de({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},output:{type:"string"},locale:{type:"string"},channel:{type:"string"},approve:{type:"string"},"recipe-version":{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return v("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return v("Scaffold example recipe identifier is invalid.");let i=await Bg(PP(n,r.values["recipe-version"])),a=Number(r.values["artifact-port"]),o=r.values["artifact-workspace"],s=r.values["artifact-bundle"],c=r.values["artifact-fallback-bundle"],l=Array.isArray(c)?c.filter(u=>typeof u=="string"):[],d=r.values.approve;if(d===void 0){let u=await mh({workspaceRoot:o,output:r.values.output,recipe:i,artifactBundle:s,artifactFallbackBundles:l,artifactPort:a});return{outputMode:B(e),human:`\u793A\u4F8B\uFF1A${i.title}
|
|
92
92
|
Plan\uFF1A${u.planId}
|
|
93
93
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
|
|
94
|
-
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return v("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",
|
|
94
|
+
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return v("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",o,"--artifact-bundle",s,...l.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(a)],f;try{f=await gh({workspaceRoot:o,approvedPlanId:d,recipe:i,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==a)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await Nh([u,"--profile","nextjs-full-stack-application","--capability",`${i.rootProfile.capabilityId}@${i.rootProfile.version}`,"--name",i.recipeId])).value.result.plan.planId;await yd(["--project",u,"--approve",w],t),g.push(w),await Ah("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:O.join(o,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await wd(["--project",u]);for(let A of i.capabilities){let b=`${A.capabilityId}@${A.version}`;try{let I=(await Oh(["--project",u,"--capability",b,"--channel",A.channel,...p],t)).value.result.plan.planId;await yd(["--project",u,"--approve",I,...p],t),await wd(["--project",u]),g.push(I)}catch(_){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${_ instanceof Error?_.message:"UNKNOWN"}`,{cause:_})}}return g}})}catch(u){let m=u instanceof tt&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new T({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${m}`,exitCode:1,nextStep:"\u68C0\u67E5\u5931\u8D25\u7684 Capability \u4E0E\u4E8B\u52A1 Evidence\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}return{outputMode:B(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${O.relative(process.cwd(),f.output)}
|
|
95
95
|
Evidence\uFF1A${f.evidenceId}
|
|
96
|
-
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Gi(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project <directory>.`):{projectRoot:O.resolve(r.values.project),outputMode:B(e)}}async function wd(e){let{projectRoot:t,outputMode:r}=Gi(e,"Verify"),n=JSON.parse(await ie(O.join(t,"project-capabilities.json"),"utf8")),i=await Ve(t),a=await Bt(t).catch(()=>{}),o;try{let h=i?.capabilities.map(A=>A.appliedPlanId)??[],w=i?.capabilities.map(A=>A.capabilityId)??[];try{o=await ao(t,h,t,w)}catch(A){if(!(A instanceof ye)||A.code!=="PLAN_NOT_FOUND"||a===void 0)throw A;o=await ao(t,h,a.transactionRoot,w)}}catch(h){if(!(h instanceof ye)||h.code!=="PLAN_NOT_FOUND"||i===null)throw h;let A=(await Id(["--project",t,"--json"])).value.result,b=await Vi({projectRoot:t,lock:i});if(A.state!=="adopted"||b.some(I=>I.code!=="EVIDENCE_VALID"))throw new T({code:"VERIFICATION_STATE_INVALID",message:"The adopted project has drifted or its verification evidence is invalid.",exitCode:4,nextStep:"Run dyyto inspect and dyyto doctor before creating a new plan."});let _=Q(t);return{outputMode:r,human:`Project: ${_}
|
|
97
97
|
State: adopted
|
|
98
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:
|
|
98
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:_,state:"adopted",reused:!0,lock:i}}}}let s=await be(je(o.capability.capabilityId,o.capability.version)),c=o.packageAdoption===void 0?void 0:a?.transactionRoot;if(i?.capabilities.some(h=>h.appliedPlanId===o.planId)){let h=Q(t);return{outputMode:r,human:`Project: ${h}
|
|
99
99
|
State: adopted
|
|
100
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:h,state:"adopted",reused:!0}}}}if(
|
|
100
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:h,state:"adopted",reused:!0}}}}if(o.action==="remove"){if(i===null)return v("Remove verification requires the previous verified Lock.");let h=i.capabilities.find($=>$.capabilityId===o.capability.capabilityId&&$.version===o.capability.version);if(h===void 0){let $=Q(t);return{outputMode:r,human:`Project: ${$}
|
|
101
101
|
State: removed
|
|
102
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:
|
|
102
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:i}}}}let w=o.packageAdoption?.schemaVersion===2&&o.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${o.packageAdoption.topology.unitRelativeRoot}/`:"",A=new Map(o.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),b=i.capabilities.filter($=>$!==h),_=[...b].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=b.flatMap($=>$.assets).map($=>({...$,digest:A.get($.path)??($.path==="package.json"?_?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:R}=await import("./optional-runtime.js"),N=await R({projectRoot:t,release:s,remainingAssets:I,removedPaths:h.assets.map($=>$.path)}),j=await Al({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:o,release:s.release,verificationResults:N.results,committedAt:new Date().toISOString(),previousLock:i,expectedAssets:I}),re=Q(t);return{outputMode:r,human:`Project: ${re}
|
|
103
103
|
State: removed
|
|
104
|
-
${
|
|
105
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:
|
|
104
|
+
${N.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
|
|
105
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:re,state:"removed",verifiers:N.summaries,lock:j}}}}let l=o.packageAdoption?.schemaVersion===2&&o.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${o.packageAdoption.topology.unitRelativeRoot}/`:"",d=(s.release.kind==="engineering-feature"?s.release.assets.map(h=>({path:h.path,desiredDigest:h.ownership==="managed-region"?h.digest:o.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):o.action==="upgrade"?s.release.assets.map(h=>({path:h.path,desiredDigest:o.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):o.operations).map(({path:h,desiredDigest:w,ownership:A,regionId:b})=>w===void 0?v("Applied plan is missing a desired asset digest."):{path:h,digest:w,ownership:A==="managed-region"?"managed-region":A==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:d}),u=o.action==="adopt"&&o.operations.every(h=>h.disposition==="noop")&&i?.capabilities.some(h=>h.capabilityId===o.capability.capabilityId)===!0,m=await Rl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:o,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:d,...(o.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&i!==null?{previousLock:i}:{}}),g=Q(t);return{outputMode:r,human:`Project: ${g}
|
|
106
106
|
State: adopted
|
|
107
107
|
`+f.summaries.map(h=>`${h.verifierId}: ${h.result}`).join(`
|
|
108
|
-
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function
|
|
108
|
+
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function Id(e){let{projectRoot:t,outputMode:r}=Gi(e,"Inspect"),n=await Ol(t),i=Q(t);if(n.required)return{outputMode:r,human:`Project: ${i}
|
|
109
109
|
State: recovery-required
|
|
110
110
|
Transaction: ${n.kind}
|
|
111
|
-
Next: dyyto recover --project ${
|
|
111
|
+
Next: dyyto recover --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"recovery-required",recovery:n}}};let a=JSON.parse(await ie(O.join(t,"project-capabilities.json"),"utf8")),o=a.capabilities?.[0];if(o===void 0)return v("Project manifest must select one capability.");let s=await be(je(o.capabilityId,o.version)),c=await Ve(t);try{let _=await ao(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(_.action==="upgrade"||_.action==="adopt")return{outputMode:r,human:`Project: ${i}
|
|
112
112
|
State: applied-unverified
|
|
113
|
-
Plan: ${
|
|
114
|
-
Next: dyyto verify --project ${
|
|
115
|
-
State: ${
|
|
116
|
-
`+
|
|
113
|
+
Plan: ${_.planId}
|
|
114
|
+
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:_.operations,lock:c}}}}catch{}let l=new Date,d={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString()},p=a.profile?.id==="standalone-npm-package"?await Em({...d,manifest:a}):a.profile?.id==="react-component-library"?await Pm({...d,manifest:a}):a.profile?.id==="nextjs-full-stack-application"?await Nm({...d,manifest:a}):a.profile?.id==="workspace-npm-package"?await Om({...d,manifest:a}):a.profile?.id==="workspace-node-application"?await Dm({...d,manifest:a}):a.profile?.id==="workspace-web-application"?await Sm({...d,manifest:a}):a.profile?.id==="workspace-expo-application"?await jm({...d,manifest:a}):await qa(d),f=c===null?void 0:[...c.capabilities].filter(_=>_.packageAdoption!==void 0).sort((_,I)=>_.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await ie(O.join(t,"package.json")).then(y).catch(()=>{}),m=p.operations.map(_=>_.path==="package.json"&&u===f?{..._,desiredDigest:f,disposition:"noop",conflictCode:void 0}:_),g=c===null?[]:await ch({projectRoot:t,lock:c,excludeCapabilityIds:[o.capabilityId]}),h=g.some(_=>_.disposition==="conflict"),w=f!==void 0&&m.every(_=>_.disposition==="noop")?{...p,state:"adopted"}:p,A={...w,state:h?"drifted":w.state,operations:[...m,...g]},b=c?.capabilities.flatMap(_=>_.packageAdoption?.sources.map(I=>({capabilityId:_.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${i}
|
|
115
|
+
State: ${A.state}
|
|
116
|
+
`+A.operations.map(_=>`${_.path}: ${_.disposition}`).join(`
|
|
117
117
|
`)+(b.length===0?"":`
|
|
118
118
|
\u5305\u6765\u6E90\uFF1A
|
|
119
|
-
${b.map(
|
|
120
|
-
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:
|
|
121
|
-
Recovery: not-required`:`Project: ${
|
|
119
|
+
${b.map(_=>`- ${_.packageName}@${_.version}\uFF08Registry: ${_.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
|
|
120
|
+
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...A,lock:c,packageSources:b}}}}async function xP(e){let{projectRoot:t,outputMode:r}=Gi(e,"Recover"),n=await Rm({projectRoot:t,now:new Date().toISOString()}),i=Q(t);return{outputMode:r,human:n.kind==="none"?`Project: ${i}
|
|
121
|
+
Recovery: not-required`:`Project: ${i}
|
|
122
122
|
Recovery: ${n.kind}
|
|
123
|
-
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:
|
|
123
|
+
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:i,recovery:n}}}}function Dh(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project.`):{parsed:r,projectRoot:O.resolve(r.values.project),outputMode:B(e)}}async function VP(e,t){let{parsed:r,projectRoot:n,outputMode:i}=Dh(t,"Lifecycle"),a=r.values.command;if((e==="start"||e==="restart")&&a!=="dev")return v("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:o,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:l}=await import("./optional-runtime.js"),d;if(e==="status")d=await s(n);else if(e==="logs"){let f=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(f)||f<0)return v("Lifecycle logs --after must be a non-negative integer cursor.");d=await o(n,f)}else if(e==="start")await bh(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await bh(n,"dev"),await l(n),d=await c(n,"dev");else return v("Lifecycle action must be start, stop, restart, status, or logs.");let p=Q(n);return{outputMode:i,human:`Project: ${p}
|
|
124
124
|
Lifecycle: ${e}
|
|
125
|
-
State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(
|
|
126
|
-
Declared: ${
|
|
127
|
-
Locked: ${
|
|
128
|
-
Verified: ${
|
|
129
|
-
Findings: ${
|
|
130
|
-
Unmanaged platform dependencies: ${
|
|
125
|
+
State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(o){let s=typeof o=="object"&&o!==null&&"code"in o?String(o.code):"PROJECT_PROCESS_FAILED";throw new T({code:s,message:o instanceof Error?o.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function bh(e,t){let r=W(JSON.parse(await ie(O.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"Managed lifecycle requires a formal Template Release.",exitCode:4,nextStep:"Use the project's standard package script directly or adopt a supported Template."});if((await Ui(Bo(r.template.id,r.template.version))).commands[t]!==t)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"The selected Template does not declare the requested lifecycle command.",exitCode:4,nextStep:"Choose a command declared by the project's Template Release."})}async function MP(e){let{projectRoot:t,outputMode:r}=Dh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),i=await n(t),a=Q(t),o=i.details.flatMap(l=>[`${l.title} (${l.capabilityId}@${l.version}) [${l.status}]`,` ${l.purpose}`,...l.packages.map(d=>` package ${d.packageName}@${d.version} [${d.state}]`),...l.packages.flatMap(d=>d.imports.map(p=>` import { ${p.symbol} } from '${p.importFrom}'${p.referencePath?` -> ${p.referencePath}`:""}`)),...l.codeAssets.map(d=>` asset ${d.sourcePath} -> ${d.targetPath} (${d.ownership})`)]),s=l=>i.platformDependencies.filter(d=>d.source===l).length,c=i.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${a}
|
|
126
|
+
Declared: ${i.declared.length}
|
|
127
|
+
Locked: ${i.locked.length}
|
|
128
|
+
Verified: ${i.verified.length}
|
|
129
|
+
Findings: ${i.findings.length}
|
|
130
|
+
Unmanaged platform dependencies: ${i.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
|
|
131
131
|
|
|
132
|
-
${[...
|
|
133
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:i
|
|
132
|
+
${[...o,...c].join(`
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:a,...i,projectRoot:void 0}}}}async function FP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},source:{type:"string"},registry:{type:"string"},approve:{type:"string"},verify:{type:"string"},install:{type:"boolean"}}})}catch{return v("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return v("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return v("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:i,switchProjectPackageSources:a,verifyPackageSourceSwitch:o,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return v("Packages switch requires --source workspace|public|private.");let l=O.resolve(t.values.project),d=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:l,approvedPlanId:t.values.approve}):i({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?o({projectRoot:l,planId:t.values.verify}):a({projectRoot:l,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new T({code:m.code,message:m.message,exitCode:4,nextStep:"Run dyyto packages switch --help."}):m}),p=Q(d.projectRoot),f=d.changes.map(m=>` ${m.field} ${m.packageName}: ${m.from} -> ${m.to}`),u=d.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${d.planId} \u7CBE\u786E\u6279\u51C6\u3002`:d.state==="applied"?`\u4F7F\u7528 --verify ${d.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:B(e),human:`\u9879\u76EE\uFF1A${p}
|
|
134
134
|
\u6765\u6E90\uFF1A${d.source}
|
|
135
135
|
Registry\uFF1A${d.registry??"workspace protocol"}
|
|
136
136
|
\u72B6\u6001\uFF1A${d.state}
|
|
@@ -142,24 +142,36 @@ Packages\uFF1A${d.packages.length}
|
|
|
142
142
|
${f.join(`
|
|
143
143
|
`)}${f.length>0?`
|
|
144
144
|
|
|
145
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function
|
|
146
|
-
Commands: ${
|
|
147
|
-
Environment: ${
|
|
145
|
+
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function UP(e){let{projectRoot:t,outputMode:r}=Gi(e,"Inspect"),n=W(JSON.parse(await ie(O.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new T({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let i=await Ui(Bo(n.template.id,n.template.version)),a=await Yg({projectRoot:t,commands:i.commands}),o=Q(t);return{outputMode:r,human:`Project: ${o}
|
|
146
|
+
Commands: ${a.commands.map(s=>s.id).join(", ")}
|
|
147
|
+
Environment: ${a.environment.filter(s=>s.configured).length}/${a.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:o,template:`${i.templateId}@${i.version}`,...a}}}}async function qP(e){let{projectRoot:t,outputMode:r}=Gi(e,"Inspect"),n=await ji({projectRoot:t}).catch(i=>{throw new T({code:i instanceof Error&&"code"in i?String(i.code):"APPLICATION_CONFIG_UNAVAILABLE",message:i instanceof Error?i.message:"\u5E94\u7528\u914D\u7F6E\u4E0D\u53EF\u7528\u3002",exitCode:4,nextStep:"\u8BBE\u7F6E\u8BE5\u9879\u76EE\u72EC\u4EAB\u7684\u7EDD\u5BF9APP_CONFIG_DIR\uFF0C\u5E76\u7531\u90E8\u7F72\u63A7\u5236\u9762\u5B8C\u6210config init\u3002"})});return{outputMode:r,human:`\u5E94\u7528\uFF1A${n.application}
|
|
148
148
|
\u73AF\u5883\uFF1A${n.environment}
|
|
149
149
|
Config Dir\uFF1A${n.configDirectory}
|
|
150
|
-
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(
|
|
151
|
-
${n.entries.map(
|
|
152
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
150
|
+
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(i=>i.configured).length}/${n.entries.length}
|
|
151
|
+
${n.entries.map(i=>`${i.name}: ${i.display}`).join(`
|
|
152
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function BP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{project:{type:"string"},workspace:{type:"string"},check:{type:"boolean"},json:{type:"boolean"}}})}catch{return v("Config readiness arguments are invalid.")}let r=t.values.project,n=t.values.workspace;if(typeof r=="string"==(typeof n=="string"))return v("Config readiness requires exactly one of --project or --workspace.");let i=B(e);if(typeof n=="string"){let c=await eg({workspaceRoot:O.resolve(n)}),l=c.applications.map(p=>`${p.unit}: ${p.readiness.state}${p.readiness.issueCode?` (${p.readiness.issueCode})`:""}`),d=t.values.check===!0?c.summary.invalid>0?4:c.summary.ready===c.summary.total?0:3:0;return{outputMode:i,human:`\u5DE5\u4F5C\u533A\uFF1A${Q(c.workspaceRoot)}
|
|
153
|
+
\u5E94\u7528\uFF1A${c.summary.total}
|
|
154
|
+
\u5C31\u7EEA\uFF1A${c.summary.ready}
|
|
155
|
+
\u5F85\u521D\u59CB\u5316\uFF1A${c.summary.needsConfigInit}
|
|
156
|
+
\u65E0\u6548\uFF1A${c.summary.invalid}
|
|
157
|
+
|
|
158
|
+
${l.join(`
|
|
159
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...d?{exitCode:d}:{}}}if(typeof r!="string")return v("Config readiness requires --project or --workspace.");let a=await zl({projectRoot:O.resolve(r)}),o=a.missingBindings.length?`
|
|
160
|
+
\u7F3A\u5931\uFF1A${a.missingBindings.join(", ")}`:"",s=t.values.check===!0?a.state==="invalid"?4:a.state==="ready"?0:3:0;return{outputMode:i,human:`\u5E94\u7528\uFF1A${a.application??"\u672A\u58F0\u660E"}
|
|
161
|
+
\u73AF\u5883\uFF1A${a.environment}
|
|
162
|
+
\u72B6\u6001\uFF1A${a.state}
|
|
163
|
+
Config Dir\uFF1A${a.configDirectory??"\u672A\u7269\u5316"}${o}${a.issueCode?`
|
|
164
|
+
\u95EE\u9898\uFF1A${a.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:a},...s?{exitCode:s}:{}}}async function zP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plane:{type:"string"},state:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return v("Operations requires --project and --plane change|quality|delivery.");let r=await At(O.resolve(t.values.project)),n=Q(r),i=[];for(let o of await Rh(O.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(o.endsWith(".json"))try{let s=JSON.parse(await ie(O.join(r,".dyyto","workbench","tasks",o),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&i.push({id:s.taskId,projectId:".",projectName:n,operation:s.operation,state:s.state,createdAt:s.createdAt,updatedAt:s.updatedAt,...s.correlationId?{correlationId:s.correlationId}:{}})}catch{}let a=Zg(i,{plane:t.values.plane,...typeof t.values.state=="string"?{state:t.values.state}:{},...typeof t.values.kind=="string"?{kind:t.values.kind}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{}});return{outputMode:B(e),human:`Project: ${n}
|
|
165
|
+
Operations: ${a.plane}
|
|
166
|
+
Total: ${a.summary.total}
|
|
167
|
+
Attention: ${a.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...a}}}}async function JP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return v("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Doctor requires --workspace.");let r=await At(O.resolve(t.values.workspace));if(W(JSON.parse(await ie(O.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let i=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Rh(O.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=O.join(r,s,c.name);try{await ie(O.join(l,"project-capabilities.json"))}catch{continue}i.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let a=[];for(let s of i){let c="invalid",l;try{let p=(await Id(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=rd(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await Vi({projectRoot:s.projectRoot,lock:p.lock})):c==="adopted"&&l.push({code:"EVIDENCE_INVALID",severity:"critical",fact:"evidence",message:"\u5DF2\u91C7\u7528\u5355\u5143\u7F3A\u5C11\u53EF\u6838\u9A8C\u7684\u91C7\u7528\u9501\u3002",action:"\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002"})}catch{l=rd("invalid")}try{let d=W(JSON.parse(await ie(O.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await $g({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}a.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let o=Cg({workspace:O.basename(r),generatedAt:new Date().toISOString(),units:a});return{outputMode:B(e),human:`Workspace: ${o.workspace}
|
|
168
|
+
Status: ${o.status}
|
|
169
|
+
Units: ${o.summary.total}
|
|
170
|
+
Healthy: ${o.summary.healthy}
|
|
171
|
+
Attention: ${o.summary.attention}
|
|
172
|
+
Blocked: ${o.summary.blocked}
|
|
173
|
+
`+o.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
|
|
174
|
+
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:o}}}async function vd(e){let{LocalDockerDeploymentAdapter:t,NpmjsPublisherAdapter:r,HostedStaticPublicationAdapter:n}=await import("./optional-runtime.js");return e==="npm-publish"?new r:e==="application-deploy"?new t:e==="hosted-static"?new n:v("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function kh(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function Sh(e){let t=W(JSON.parse(await ie(O.join(e,"project-capabilities.json"),"utf8"))),r=await Ve(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return v("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return v("Manifest and verified Lock must identify the same adopted capability.");let i=n.assets.filter(a=>!a.path.startsWith("src/"));return await Dr({projectRoot:e,expectedAssets:i}),{manifest:t,lock:r,locked:n,lockDigest:y(k(r))}}async function GP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},kind:{type:"string"},provider:{type:"string"},repository:{type:"string"},workflow:{type:"string"},ref:{type:"string"},environment:{type:"string"}}})}catch{return v("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return v("Delivery plan requires --project and --kind.");let r=O.resolve(t.values.project),n=await Sh(r),a=await(await vd(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await pg({projectRoot:r,artifactIdentity:a.artifact.identity})!==null)throw new S("NPM_REGISTRY_OUTCOME_UNKNOWN","An earlier Delivery Plan started a remote write for this exact npm version without a resolved Registry outcome");let o=t.values.kind==="npm-publish"?(()=>{let d=t.values.provider,p=t.values.repository,f=t.values.workflow,u=t.values.ref;if(d!=="github-actions"&&d!=="gitlab-ci"||typeof p!="string"||typeof f!="string"||typeof u!="string")throw new S("DELIVERY_PRECONDITION_FAILED","Secure npm Delivery Plan requires --provider, --repository, --workflow and --ref.");return{mode:"staged",access:"public",tag:"latest",authentication:"trusted-publishing",trustedAction:"stage-only",provenance:"required",execution:{provider:d,repository:p,workflow:f,ref:u,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(o!==void 0){let d=JSON.parse(await ie(O.join(r,"package.json"),"utf8")),p=typeof d.repository=="string"?d.repository:d.repository!==null&&typeof d.repository=="object"?d.repository.url:void 0,f=`https://${o.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${o.execution.repository}`;if(p!==f)throw new S("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=Hl({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:a.artifact,target:a.target,risk:t.values.kind==="npm-publish"?"irreversible-publish":t.values.kind==="hosted-static"?"external-reversible-publication":"local-reversible-deployment",createdAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...o===void 0?{}:{publication:o}});await cg({projectRoot:r,plan:c});let l=Q(r);return{outputMode:B(e),human:`Project: ${l}
|
|
163
175
|
Delivery: ${c.kind}
|
|
164
176
|
Artifact: ${c.artifact.identity}
|
|
165
177
|
Target: ${c.target.location}
|
|
@@ -171,62 +183,62 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
|
|
|
171
183
|
Approval: maintainer 2FA required outside Dyyto`}
|
|
172
184
|
Plan: ${c.planId}
|
|
173
185
|
State: reviewable
|
|
174
|
-
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function
|
|
186
|
+
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function WP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return v("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return v("Delivery apply requires --project and --approve <planId>.");let r=O.resolve(t.values.project),n=await Jt({projectRoot:r,planId:t.values.approve}),i=await An({projectRoot:r,planId:n.planId}),a=Q(r);if(i!==null)return{outputMode:B(e),human:`Project: ${a}
|
|
175
187
|
Delivery: verified
|
|
176
|
-
Receipt: ${
|
|
188
|
+
Receipt: ${i.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,reused:!0,receipt:i}}};let o=n.kind==="npm-publish"?await _n({projectRoot:r,planId:n.planId}):null;if(o!==null)return{outputMode:B(e),human:`Project: ${a}
|
|
177
189
|
Delivery: staged
|
|
178
|
-
Stage: ${
|
|
179
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
190
|
+
Stage: ${kh(o.stageId)}
|
|
191
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,reused:!0,state:"staged",record:o}}};if((n.kind==="npm-publish"?await dg({projectRoot:r,planId:n.planId}):null)!==null)throw new S("NPM_REGISTRY_OUTCOME_UNKNOWN","This Plan already started a remote stage write without a committed Stage Record");if(Date.parse(n.expiresAt)<=Date.now())throw new S("DELIVERY_PLAN_EXPIRED","Delivery Plan has expired");let c=await Sh(r);if(c.lockDigest!==n.project.lockDigest||c.locked.appliedPlanId!==n.project.appliedPlanId)throw new S("DELIVERY_PRECONDITION_FAILED","Adoption Lock changed after Delivery Plan approval");let l=await vd(n.kind),d=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(k(d.artifact)!==k(n.artifact)||k(d.target)!==k(n.target))throw new S("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let p=await l.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await lg({projectRoot:r,record:og({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=ag({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await ug({projectRoot:r,record:u}),{outputMode:B(e),human:`Project: ${a}
|
|
180
192
|
Delivery: staged
|
|
181
|
-
Stage: ${
|
|
182
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
193
|
+
Stage: ${kh(u.stageId)}
|
|
194
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await l.inspect({projectRoot:r,plan:n})).state!=="verified")throw new S("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let f=Eo({planId:n.planId,kind:n.kind,adapterId:n.target.adapterId,artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:p.externalIdentity,completedAt:new Date().toISOString(),details:p.details});return await Xl({projectRoot:r,receipt:f}),{outputMode:B(e),human:`Project: ${a}
|
|
183
195
|
Delivery: verified
|
|
184
196
|
Receipt: ${f.receiptId}
|
|
185
|
-
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
197
|
+
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:a,receipt:f}}}}async function KP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return v("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return v("Delivery inspect requires --project and --plan <planId>.");let r=O.resolve(t.values.project),n=await Jt({projectRoot:r,planId:t.values.plan}),i=await An({projectRoot:r,planId:n.planId}),a=Q(r);if(i!==null)return{outputMode:B(e),human:`Project: ${a}
|
|
186
198
|
Delivery: verified
|
|
187
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
199
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:"verified",plan:n,receipt:i}}};let o=n.kind==="npm-publish"?await _n({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await mg({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||o===null)throw new S("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let l=y(await ie(O.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==o.artifactDigest)throw new S("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=sg({planId:n.planId,stageId:o.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await fg({projectRoot:r,record:s})}let c=await(await vd(n.kind)).inspect({projectRoot:r,plan:n});if(n.kind==="npm-publish"&&o!==null&&c.state==="verified"){if(n.schemaVersion!==2||n.publication===void 0||c.details.artifactDigest!==n.artifact.digest||c.details.provenance!=="registry-attestation-present"||c.details.provenanceUrlDigest===void 0)throw new S("NPM_PROVENANCE_REQUIRED","Registry inspection did not prove the approved npm artifact and provenance");let l=Eo({planId:n.planId,kind:n.kind,adapterId:"registry.npmjs",artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:n.artifact.identity,completedAt:new Date().toISOString(),npm:{stageId:o.stageId,registry:"https://registry.npmjs.org",tarballDigest:n.artifact.digest,access:n.publication.access,tag:n.publication.tag,provenance:"registry-attested",attestationUrlDigest:c.details.provenanceUrlDigest}});return await Xl({projectRoot:r,receipt:l}),{outputMode:B(e),human:`Project: ${a}
|
|
188
200
|
Delivery: verified
|
|
189
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
201
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:"verified",plan:n,stage:o,review:s,receipt:l,adapter:c}}}}if(n.kind==="npm-publish"&&o!==null){let l=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:B(e),human:`Project: ${a}
|
|
190
202
|
Delivery: staged
|
|
191
203
|
Plan: ${n.planId}
|
|
192
204
|
Artifact review: ${s===null?"pending":"verified"}
|
|
193
|
-
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
205
|
+
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:l,plan:n,stage:o,review:s,receipt:null,adapter:c}}}}if(n.kind==="npm-publish"&&c.state==="verified")throw new S("NPM_REGISTRY_OUTCOME_UNKNOWN","Live npm artifact is visible but no immutable Stage Record exists for this Plan");return{outputMode:B(e),human:`Project: ${a}
|
|
194
206
|
Delivery: ${c.state}
|
|
195
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
196
|
-
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...
|
|
207
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:a,state:c.state,plan:n,receipt:null,adapter:c}}}}async function YP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return v("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Observe errors requires --workspace.");let r=await At(O.resolve(t.values.workspace)),n=new Gt(r),i={...typeof t.values.application=="string"?{applicationId:t.values.application}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{},...typeof t.values.cursor=="string"?{cursor:t.values.cursor}:{}},[a,o]=await Promise.all([n.list(i),n.summary(i)]);return{outputMode:B(e),human:a.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":a.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
|
|
208
|
+
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...a,summary:o}}}}async function HP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return v("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return v("Observe error requires --workspace and --id.");let r=await new Gt(await At(O.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new T({code:"RUNTIME_ERROR_NOT_FOUND",message:"Runtime Error Event was not found.",exitCode:4,nextStep:"List recent errors and verify the event ID."});return{outputMode:B(e),human:`${r.error.type}: ${r.error.message}
|
|
197
209
|
State: ${r.state}
|
|
198
210
|
Correlation: ${r.correlation}
|
|
199
211
|
Release: ${r.releaseId??"unknown"}
|
|
200
|
-
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function
|
|
201
|
-
Source Maps: ${
|
|
202
|
-
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:
|
|
203
|
-
${
|
|
204
|
-
\u6210\u719F\u5EA6\uFF1A${
|
|
205
|
-
`);return{outputMode:
|
|
212
|
+
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function XP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return v("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return v("Observe release register requires --project.");let r=await At(O.resolve(t.values.project)),n=await At(O.resolve(typeof t.values.workspace=="string"?t.values.workspace:O.join(r,"../.."))),{registerWebRelease:i}=await import("./optional-runtime.js"),a=await i({workspaceRoot:n,projectRoot:r});return{outputMode:B(e),human:`Release: ${a.releaseId}
|
|
213
|
+
Source Maps: ${a.registrations.length}
|
|
214
|
+
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:a}}}async function ZP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return v("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return v("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let i=await Mo({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),a=i.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":i.items.map(o=>`${o.ref}
|
|
215
|
+
${o.summary}
|
|
216
|
+
\u6210\u719F\u5EA6\uFF1A${o.maturity}`).join(`
|
|
217
|
+
`);return{outputMode:B(e),human:a,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function QP(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return v("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return v("Catalog show \u9700\u8981 --ref\u3002");let r=await Fo({ref:t.values.ref});return{outputMode:B(e),human:`${r.item.ref}
|
|
206
218
|
${r.item.summary}
|
|
207
219
|
\u6210\u719F\u5EA6\uFF1A${r.item.maturity}
|
|
208
|
-
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function _h(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:On,value:{schemaVersion:1,ok:!0,command:"version",result:{version:On}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:Sd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[o,...i]=r;return o==="catalog"&&i[0]==="search"?xP(i.slice(1)):o==="catalog"&&i[0]==="show"?VP(i.slice(1)):o==="create"?vh(i):o==="scaffold"&&i[0]==="example"?kP(i.slice(1),t):o==="retrofit"?mP(i):o==="dev"||o==="build"||o==="test"||o==="package"?gP(o,i):o==="add"&&i[0]==="package"?hP(i.slice(1)):o==="add"&&i[0]==="application"?yP(i.slice(1)):o==="add"&&i[0]==="feature"?bh(i.slice(1),t):o==="remove"&&i[0]==="feature"?wP(i.slice(1),t):o==="plan"?IP(i):o==="upgrade"?bP(i,t):o==="apply"?pd(i,t):o==="verify"?ud(i):o==="inspect"?fd(i):o==="doctor"?SP(i):o==="recover"?RP(i):o==="lifecycle"&&typeof i[0]=="string"?_P(i[0],i.slice(1)):o==="packages"&&i[0]==="switch"?EP(i.slice(1)):o==="integrations"?AP(i):o==="maintenance"?PP(i):o==="config"&&i[0]==="inspect"?NP(i.slice(1)):o==="operations"?OP(i):o==="baseline"?vP(i):o==="delivery"&&i[0]==="plan"?DP(i.slice(1)):o==="delivery"&&i[0]==="apply"?jP(i.slice(1)):o==="delivery"&&i[0]==="inspect"?$P(i.slice(1)):o==="observe"&&i[0]==="errors"?CP(i.slice(1)):o==="observe"&&i[0]==="error"?TP(i.slice(1)):o==="observe"&&i[0]==="release"&&i[1]==="register"?LP(i.slice(2)):v(`Unknown command '${o}'.`)}import{createServer as MP}from"node:http";import{readFile as UP,readdir as mC,rm as gC}from"node:fs/promises";import{execFile as FP}from"node:child_process";import{promisify as qP}from"node:util";import BP from"node:path";var vC=qP(FP),gd=class{constructor(t=10,r=20,n=Date.now){this.rate=t;this.burst=r;this.now=n}rate;burst;now;buckets=new Map;take(t){let r=this.now(),n=this.buckets.get(t)??{tokens:this.burst,updatedAt:r};return n.tokens=Math.min(this.burst,n.tokens+Math.max(0,r-n.updatedAt)/1e3*this.rate),n.updatedAt=r,n.tokens<1?(this.buckets.set(t,n),{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((1-n.tokens)/this.rate))}):(n.tokens-=1,this.buckets.set(t,n),{allowed:!0})}};async function zP(e){try{let t=JSON.parse(await UP(BP.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function Ah(e){let t=new Bt(e.workspaceRoot),r=[...e.allowedOrigins??await zP(e.workspaceRoot)],n=new gd,o={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},i=MP(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){o.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){o.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>Rg(e.workspaceRoot,m)});o.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof oe?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?o.rejectedInvalid+=1:o.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{i.once("error",c),i.listen(e.port??4318,"127.0.0.1",()=>{i.off("error",c),s()})});let a=i.address();if(a===null||typeof a=="string")throw new Error("Collector did not expose a TCP address");return{server:i,origin:`http://127.0.0.1:${a.port}`,snapshot:()=>({...o}),close:()=>new Promise((s,c)=>i.close(l=>l?c(l):s()))}}import{createHash as JP}from"node:crypto";import{createServer as GP}from"node:http";import{readFile as Eh,realpath as Ph}from"node:fs/promises";import Va from"node:path";var xe=class extends Error{constructor(r){super(r);this.code=r}code};function WP(e){return"sha512-"+JP("sha512").update(e).digest("base64")}async function qo(e){let t=await Ph(e).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await Eh(Va.join(t,"index.json"),"utf8").catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Br(JSON.parse(r))}catch{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}let o=new Map;for(let i of n.artifacts){let a=Va.join(t,i.assetName),s=Va.relative(t,await Ph(a).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Va.isAbsolute(s))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await Eh(a);if(y(c)!==i.tarballDigest||WP(c)!==i.integrity)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");o.set(i.assetName,c)}return{root:t,bundle:n,assets:o}}function KP(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function Nh(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function YP(e,t){let r=i=>i.split(/[.-]/u).map(a=>/^\d+$/u.test(a)?Number(a):a),n=r(e),o=r(t);for(let i=0;i<Math.max(n.length,o.length);i+=1){let a=n[i]??0,s=o[i]??0;if(a!==s)return typeof a=="number"&&typeof s=="number"?a-s:String(a).localeCompare(String(s))}return 0}function HP(e,t){let r=new Map,n=new Map;for(let o of[e,...t])for(let i of o.bundle.artifacts){let a=`${i.packageName}@${i.version}`,s=r.get(a);if(s!==void 0&&Nh(s)!==Nh(i))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=o.assets.get(i.assetName);if(c===void 0)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(i.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,i),n.set(i.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function Oh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new xe("LOCAL_ARTIFACT_SERVER_INVALID");let t=await qo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(qo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let o=HP(t,r),i=e.hostname??"127.0.0.1",a=GP((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=o.artifacts.filter(u=>u.packageName===p).sort((u,m)=>YP(u.version,m.version));if(f.length>0){let u="http://"+i+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),h=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(h.byteLength)),c.end(l==="HEAD"?void 0:h);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=o.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{a.once("error",c),a.listen(e.port,i,s)}).catch(()=>{throw new xe("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+i+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>KP(a)})}import{createHash as XP}from"node:crypto";import{execFile as ZP}from"node:child_process";import{cp as QP,mkdir as Sh,mkdtemp as hd,readFile as Fa,realpath as Bo,rename as e0,rm as Dh,stat as t0,writeFile as Ua}from"node:fs/promises";import{tmpdir as r0}from"node:os";import De from"node:path";import{promisify as n0}from"node:util";import{gunzipSync as o0}from"node:zlib";var i0=n0(ZP),a0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function s0(e){return"sha512-"+XP("sha512").update(e).digest("base64")}async function c0(e,t){let r=await Bo(e).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let o of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let i=await Bo(De.join(r,o)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),a=De.relative(r,i);if(a!==o||a.startsWith("..")||De.isAbsolute(a))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Fa(De.join(i,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:o,root:i,manifestBytes:s,manifest:c})}return n}function l0(e,t){let r=new Map(e.map(i=>[String(i.manifest.name),String(i.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let o={};for(let[i,a]of Object.entries(n)){if(typeof a!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(i):a;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");o[i]=s}return Object.fromEntries(Object.entries(o).sort(([i],[a])=>i.localeCompare(a)))}function d0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(a=>a===0))return;let o=n.toString("utf8",0,100).replace(/\0.*$/su,""),i=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(i)||i<0)return;if(o===t)return e.subarray(r+512,r+512+i);r+=512+Math.ceil(i/512)*512}}function p0(e,t,r){let n;try{n=o0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=d0(n,"package/package.json");if(o===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let i;try{i=JSON.parse(o.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a=i.dependencies===void 0?{}:i.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[l])=>c.localeCompare(l)));if(i.name!==t.name||i.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function u0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function f0(e,t,r){let n=De.join(await hd(De.join(r,"stage-")),"package");await QP(e.root,n,{recursive:!0,filter:i=>De.basename(i)!=="node_modules"});let o=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Ua(De.join(n,"package.json"),`${JSON.stringify({...o,dependencies:t},null,2)}
|
|
209
|
-
`),n}async function
|
|
210
|
-
`,{flag:"wx",mode:384}).catch(async
|
|
211
|
-
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),
|
|
212
|
-
`,{mode:292}),await
|
|
220
|
+
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function jh(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(o=>o==="--version"||o==="--json"))return{outputMode:n,human:$n,value:{schemaVersion:1,ok:!0,command:"version",result:{version:$n}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:xd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...a]=r;return i==="catalog"&&a[0]==="search"?ZP(a.slice(1)):i==="catalog"&&a[0]==="show"?QP(a.slice(1)):i==="create"?Nh(a):i==="scaffold"&&a[0]==="example"?LP(a.slice(1),t):i==="retrofit"?NP(a):i==="dev"||i==="build"||i==="test"||i==="package"?OP(i,a):i==="add"&&a[0]==="package"?DP(a.slice(1)):i==="add"&&a[0]==="application"?SP(a.slice(1)):i==="add"&&a[0]==="feature"?Oh(a.slice(1),t):i==="remove"&&a[0]==="feature"?jP(a.slice(1),t):i==="plan"?$P(a):i==="upgrade"?TP(a,t):i==="apply"?yd(a,t):i==="verify"?wd(a):i==="inspect"?Id(a):i==="doctor"?JP(a):i==="recover"?xP(a):i==="lifecycle"&&typeof a[0]=="string"?VP(a[0],a.slice(1)):i==="packages"&&a[0]==="switch"?FP(a.slice(1)):i==="integrations"?MP(a):i==="maintenance"?UP(a):i==="config"&&a[0]==="inspect"?qP(a.slice(1)):i==="config"&&a[0]==="readiness"?BP(a.slice(1)):i==="operations"?zP(a):i==="baseline"?CP(a):i==="delivery"&&a[0]==="plan"?GP(a.slice(1)):i==="delivery"&&a[0]==="apply"?WP(a.slice(1)):i==="delivery"&&a[0]==="inspect"?KP(a.slice(1)):i==="observe"&&a[0]==="errors"?YP(a.slice(1)):i==="observe"&&a[0]==="error"?HP(a.slice(1)):i==="observe"&&a[0]==="release"&&a[1]==="register"?XP(a.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as e0}from"node:http";import{readFile as t0,readdir as MC,rm as FC}from"node:fs/promises";import{execFile as r0}from"node:child_process";import{promisify as n0}from"node:util";import i0 from"node:path";var JC=n0(r0),bd=class{constructor(t=10,r=20,n=Date.now){this.rate=t;this.burst=r;this.now=n}rate;burst;now;buckets=new Map;take(t){let r=this.now(),n=this.buckets.get(t)??{tokens:this.burst,updatedAt:r};return n.tokens=Math.min(this.burst,n.tokens+Math.max(0,r-n.updatedAt)/1e3*this.rate),n.updatedAt=r,n.tokens<1?(this.buckets.set(t,n),{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((1-n.tokens)/this.rate))}):(n.tokens-=1,this.buckets.set(t,n),{allowed:!0})}};async function a0(e){try{let t=JSON.parse(await t0(i0.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function $h(e){let t=new Gt(e.workspaceRoot),r=[...e.allowedOrigins??await a0(e.workspaceRoot)],n=new bd,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},a=e0(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){i.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>Sg(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof oe?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{a.once("error",c),a.listen(e.port??4318,"127.0.0.1",()=>{a.off("error",c),s()})});let o=a.address();if(o===null||typeof o=="string")throw new Error("Collector did not expose a TCP address");return{server:a,origin:`http://127.0.0.1:${o.port}`,snapshot:()=>({...i}),close:()=>new Promise((s,c)=>a.close(l=>l?c(l):s()))}}import{createHash as o0}from"node:crypto";import{createServer as s0}from"node:http";import{readFile as Ch,realpath as Th}from"node:fs/promises";import Go from"node:path";var Me=class extends Error{constructor(r){super(r);this.code=r}code};function c0(e){return"sha512-"+o0("sha512").update(e).digest("base64")}async function Wi(e){let t=await Th(e).catch(()=>{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await Ch(Go.join(t,"index.json"),"utf8").catch(()=>{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=zr(JSON.parse(r))}catch{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let a of n.artifacts){let o=Go.join(t,a.assetName),s=Go.relative(t,await Th(o).catch(()=>{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Go.isAbsolute(s))throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await Ch(o);if(y(c)!==a.tarballDigest||c0(c)!==a.integrity)throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(a.assetName,c)}return{root:t,bundle:n,assets:i}}function l0(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function Lh(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function d0(e,t){let r=a=>a.split(/[.-]/u).map(o=>/^\d+$/u.test(o)?Number(o):o),n=r(e),i=r(t);for(let a=0;a<Math.max(n.length,i.length);a+=1){let o=n[a]??0,s=i[a]??0;if(o!==s)return typeof o=="number"&&typeof s=="number"?o-s:String(o).localeCompare(String(s))}return 0}function p0(e,t){let r=new Map,n=new Map;for(let i of[e,...t])for(let a of i.bundle.artifacts){let o=`${a.packageName}@${a.version}`,s=r.get(o);if(s!==void 0&&Lh(s)!==Lh(a))throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(a.assetName);if(c===void 0)throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(a.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(o,a),n.set(a.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function xh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Me("LOCAL_ARTIFACT_SERVER_INVALID");let t=await Wi(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(Wi)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=p0(t,r),a=e.hostname??"127.0.0.1",o=s0((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=i.artifacts.filter(u=>u.packageName===p).sort((u,m)=>d0(u.version,m.version));if(f.length>0){let u="http://"+a+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),h=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(h.byteLength)),c.end(l==="HEAD"?void 0:h);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=i.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{o.once("error",c),o.listen(e.port,a,s)}).catch(()=>{throw new Me("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+a+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>l0(o)})}import{createHash as u0}from"node:crypto";import{execFile as f0}from"node:child_process";import{cp as m0,mkdir as Vh,mkdtemp as kd,readFile as Yo,realpath as Ki,rename as g0,rm as Mh,stat as h0,writeFile as Ko}from"node:fs/promises";import{tmpdir as y0}from"node:os";import $e from"node:path";import{promisify as w0}from"node:util";import{gunzipSync as I0}from"node:zlib";var v0=w0(f0),b0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function k0(e){return"sha512-"+u0("sha512").update(e).digest("base64")}async function R0(e,t){let r=await Ki(e).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let a=await Ki($e.join(r,i)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),o=$e.relative(r,a);if(o!==i||o.startsWith("..")||$e.isAbsolute(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Yo($e.join(a,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:a,manifestBytes:s,manifest:c})}return n}function A0(e,t){let r=new Map(e.map(a=>[String(a.manifest.name),String(a.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[a,o]of Object.entries(n)){if(typeof o!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=o.startsWith("workspace:")?r.get(a):o;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");i[a]=s}return Object.fromEntries(Object.entries(i).sort(([a],[o])=>a.localeCompare(o)))}function _0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(o=>o===0))return;let i=n.toString("utf8",0,100).replace(/\0.*$/su,""),a=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(a)||a<0)return;if(i===t)return e.subarray(r+512,r+512+a);r+=512+Math.ceil(a/512)*512}}function E0(e,t,r){let n;try{n=I0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i=_0(n,"package/package.json");if(i===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let a;try{a=JSON.parse(i.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=a.dependencies===void 0?{}:a.dependencies;if(typeof o!="object"||o===null||Array.isArray(o))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(o).sort(([c],[l])=>c.localeCompare(l)));if(a.name!==t.name||a.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function P0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function N0(e,t,r){let n=$e.join(await kd($e.join(r,"stage-")),"package");await m0(e.root,n,{recursive:!0,filter:a=>$e.basename(a)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Ko($e.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
221
|
+
`),n}async function O0(e,t,r){let n=A0(e,t.manifest),i=P0(t.manifest,n)?await N0(t,n,r):t.root,a;try{({stdout:a}=await v0("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:i,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o;try{o=JSON.parse(a)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let s=o[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let c=await Yo($e.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let d=b0.filter(p=>Object.hasOwn(l??{},p));return E0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:k0(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function Fh(e,t){let r=await R0(e,t),n=await kd($e.join(await Ki(y0()),"dyyto-local-artifact-pack-"));try{let i=await Promise.all(r.map(o=>O0(r,o,n)));i.sort((o,s)=>(o.artifact.packageName+"@"+o.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let a=id({artifacts:i.map(o=>o.artifact)});return{packages:r,bundle:a,bytes:new Map(i.map(o=>[o.artifact.assetName,o.bytes]))}}finally{await Mh(n,{recursive:!0,force:!0})}}function Wo(e,t){return $e.join(e,".dyyto","artifact-plans",t+".json")}function D0(e,t){return $e.join(e,".dyyto","package-artifacts",t)}async function Uh(e){let t=await Ki(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Fh(t,e.packageRoots),n=e.now??new Date,i=ad({packageInputs:r.packages.map(a=>({relativeRoot:a.relativeRoot,manifestDigest:y(a.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await Vh($e.dirname(Wo(t,i.planId)),{recursive:!0}),await Ko(Wo(t,i.planId),JSON.stringify(i,null,2)+`
|
|
222
|
+
`,{flag:"wx",mode:384}).catch(async a=>{if(a.code!=="EEXIST")throw a;if(await Yo(Wo(t,i.planId),"utf8")!==JSON.stringify(i,null,2)+`
|
|
223
|
+
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function qh(e){let t=await Ki(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Yo(Wo(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=eh(JSON.parse(r))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new J("LOCAL_ARTIFACT_PLAN_EXPIRED");let i=D0(t,n.bundle.bundleId);if(await h0(i).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=await Fh(t,n.packageInputs.map(c=>c.relativeRoot));if(a.bundle.bundleId!==n.bundle.bundleId||a.packages.some((c,l)=>y(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=$e.dirname(i);await Vh(o,{recursive:!0});let s=await kd($e.join(o,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>Ko($e.join(s,c.assetName),a.bytes.get(c.assetName),{mode:292}))),await Ko($e.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
|
|
224
|
+
`,{mode:292}),await g0(s,i)}catch(c){throw await Mh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:i}}var fr=class extends Error{constructor(r){super(r);this.code=r}code};function Bh(e){let t=[zr(e.bundle),...(e.fallbackBundles??[]).map(zr)],r=new URL(e.origin);if(r.protocol!=="http:"||r.hostname!=="127.0.0.1"||r.pathname!=="/"||r.username||r.password||r.search||r.hash||Number.isNaN(Date.parse(e.resolvedAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new fr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Cl({registryId:"registry.local.development",tenantId:"tenant.platform.maintainers",origin:"http://127.0.0.1/",scopes:["@aipt"],authentication:{kind:"anonymous-test"},capabilities:{read:!0,write:!1,provenance:!1,staging:!1},status:"enabled"}),i=Tl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),a=t.flatMap(c=>th({bundle:c,registry:n,verifiedAt:e.resolvedAt})),o=new Map(t.flatMap(c=>c.artifacts.map(l=>[`${l.packageName}@${l.version}`,l]))),s=new Map(a.map(c=>[`${c.packageName}@${c.version}`,c]));return Object.freeze({async inspect({release:c}){if(c.availability.maturity!=="candidate"||c.availability.visibility!=="maintainers-only"||c.availability.sourceState!=="development-registry"||c.packageSources.length===0)throw new fr("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let d of c.packageSources){let p=`${d.packageName}@${d.version}`,f=o.get(p),u=s.get(p);if(!f||!u||d.registryId!==n.registryId||d.version!==f.version||d.integrity!==f.integrity||d.tarballDigest!==f.tarballDigest||d.deliveryReceiptId!==u.receiptId)throw new fr("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let l=Object.freeze(c.packageSources.map(d=>s.get(`${d.packageName}@${d.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([i]),receipts:l,inspections:Object.freeze(c.packageSources.map(d=>{let p=o.get(`${d.packageName}@${d.version}`);return Object.freeze({...d,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as S0,open as j0,readFile as _d,rename as $0,rm as C0,writeFile as T0}from"node:fs/promises";import On from"node:path";import{resolvePnpmWorkspaceLock as L0}from"./optional-runtime.js";var x0=y(k({schemaVersion:1,completedRequests:[]}));function zh(e){return y(k({schemaVersion:1,completedRequests:[...e].sort()}))}function Ed(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function Rd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(i=>i==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let i=n+1;i<t.length;){let a=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[i]);if(!a){if(/^\S/u.test(t[i])&&t[i].trim())break;i+=1;continue}let o=[t[i]],s=i+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)o.push(t[s]),s+=1;r.set(Ed(a[1]),y(Buffer.from(`${o.join(`
|
|
213
225
|
`)}
|
|
214
|
-
`))),
|
|
226
|
+
`))),i=s}return r}function Ad(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(a=>a===`${t}:`),i=[];if(n<0)return i;for(let a=n+1;a<r.length&&!(/^\S/u.test(r[a])&&r[a].trim());){let o=/^ (.+):\s*$/u.exec(r[a]);if(!o){a+=1;continue}let s=[r[a]],c=a+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;i.push({key:Ed(o[1]),bytes:Buffer.from(`${s.join(`
|
|
215
227
|
`)}
|
|
216
|
-
`)}),
|
|
217
|
-
`,{mode:384}),await
|
|
228
|
+
`)}),a=c}return i}function V0(e){let t=e.startsWith("@")?e.indexOf("@",e.indexOf("/")+1):e.lastIndexOf("@");if(t<=0)return;let r=e.slice(0,t),n=e.slice(t+1).replace(/\(.+\)$/u,"");return/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(n)?{packageName:r,version:n}:void 0}function M0(e,t,r){let n=new Map(Ad(e,"snapshots").map(i=>[i.key,i.bytes]));return Ad(e,"packages").map(i=>{let a=V0(i.key),o=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(i.bytes).toString("utf8"));if(!a||!o)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=Ed(o[1]),c=t.find(p=>p.packageName===a.packageName&&p.version===a.version),l=c?.registryId??r.find(p=>p.scopes.some(f=>a.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",d=n.get(i.key);return{identity:i.key,packageName:a.packageName,version:a.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:y(d??k({dependencies:[]}))}}).sort((i,a)=>i.identity.localeCompare(a.identity))}function Jh(e={}){return async t=>{let r=await L0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:On.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=Rd(t.currentLockfile),i=Rd(r.lockfile),a=await kn(t.topology.transactionRoot),o=new Map(a.map(p=>[p.relativeRoot,p.bytes])),s=await _d(On.join(t.topology.transactionRoot,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));s&&o.set(".",s),o.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...i].map(([p,f])=>{let u=o.get(p);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:p,manifestDigest:y(u),preimageDigest:n.get(p)??y(k({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=M0(r.lockfile,t.sources,t.registryConfigs),d=Ad(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:y(k(d.map(p=>({identity:p.key,digest:y(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:y(k({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:y(k({desiredLockDigest:y(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function F0(e){try{let t=JSON.parse(await _d(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==zh(t.completedRequests))throw new Error("RESOLUTION_WORKER_STATE_INVALID");return{schemaVersion:1,revision:t.revision,completedRequests:Object.freeze([...t.completedRequests])}}catch(t){if(t.code==="ENOENT")return{schemaVersion:1,revision:x0,completedRequests:Object.freeze([])};throw t}}function Gh(e){let t=e.workerReleaseId??"reference.pnpm-resolution-worker.v1";return{async resolveWorkspace(r){if(r.topology.mode!=="pnpm-shared-lockfile")throw new Error("RESOLUTION_WORKER_TOPOLOGY_INVALID");let n=To(JSON.parse(await _d(On.join(e.stateRoot,"build-receipt.json"),"utf8").catch(()=>{throw new Error("RESOLUTION_WORKER_BUILD_REQUIRED")})));if(n.workerReleaseId!==t||n.pnpmVersion!=="11.21.0")throw new Error("RESOLUTION_WORKER_BUILD_REQUIRED");let a=[...Rd(r.currentLockfile)].filter(([f])=>f!==r.topology.unitImporterId).map(([f,u])=>({importerId:f,preimageDigest:u,desiredDigest:u})).sort((f,u)=>f.importerId.localeCompare(u.importerId)),o={mode:r.topology.mode,unitRelativeRoot:r.topology.unitRelativeRoot,unitImporterId:r.topology.unitImporterId,lockfilePath:r.topology.lockfilePath,workspaceManifestPath:r.topology.workspaceManifestPath,workspaceManifestDigest:r.topology.workspaceManifestDigest},s=Oi({schemaVersion:1,pnpmVersion:"11.21.0",topology:o,currentLockfileDigest:y(r.currentLockfile),desiredPackageJsonDigest:y(r.desiredPackageJson),sources:r.sources.map(({registryId:f,packageName:u,version:m,integrity:g})=>({registryId:f,packageName:u,version:m,integrity:g})),preservedImporterDigests:a.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),l=`pnpm11-node24-${y(k({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:f,revision:u})=>({registryId:f,revision:u})).sort((f,u)=>f.registryId.localeCompare(u.registryId))})).slice(7)}`;await S0(e.stateRoot,{recursive:!0});let d=On.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await j0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=On.join(e.stateRoot,"state.json"),u=await F0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),h=zh(g),w=Vm({workerReleaseId:t,workerStateRevision:h,requestDigest:s,pnpmVersion:"11.21.0",desiredLockfile:m.desiredLockfile,importerFacts:m.importerFacts,packageFacts:m.packageFacts,snapshotClosureDigest:m.snapshotClosureDigest,networkObservationDigest:m.networkObservationDigest,cacheObservation:{namespace:l,preimageRevision:u.revision,desiredRevision:h,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),A=On.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await T0(A,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
|
|
229
|
+
`,{mode:384}),await $0(A,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:a}}finally{await p.close(),await C0(d,{force:!0})}}}}import{execFile as U0}from"node:child_process";import{mkdir as Dn,mkdtemp as q0,readFile as _t,readdir as B0,readlink as z0,realpath as Nd,rename as J0,rm as Wh,stat as G0,writeFile as Jr}from"node:fs/promises";import{tmpdir as W0}from"node:os";import pe from"node:path";import{promisify as K0}from"node:util";var Y0=K0(U0);function Kh(e,t){return pe.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Yh(e){return pe.join(e,".dyyto","resolution-worker")}function Pd(e){return pe.join(Yh(e),"build-receipt.json")}async function H0(e){let t=[];async function r(n){for(let i of await B0(n,{withFileTypes:!0}).catch(a=>a.code==="ENOENT"?[]:Promise.reject(a))){let a=pe.join(n,i.name);if(i.isSymbolicLink()){let o=await z0(a);t.push({path:pe.relative(e,a),digest:y(k({symlink:o})),bytes:0})}else if(i.isDirectory())await r(a);else if(i.isFile()){let o=await _t(a);t.push({path:pe.relative(e,a),digest:y(o),bytes:o.byteLength})}}}return await r(e),t.sort((n,i)=>n.path.localeCompare(i.path)),{cacheDigest:y(k(t)),cacheBytes:t.reduce((n,i)=>n+i.bytes,0)}}function Hh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await q0(pe.join(await Nd(W0()),"dyyto-resolution-warmup-")),n=pe.join(r,".home");await Dn(n);try{await Jr(pe.join(r,"pnpm-workspace.yaml"),await _t(pe.join(e,"pnpm-workspace.yaml"))),await Jr(pe.join(r,"pnpm-lock.yaml"),await _t(pe.join(e,"pnpm-lock.yaml")));let i=await _t(pe.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));i&&await Jr(pe.join(r,"package.json"),i);for(let d of await kn(e)){let p=pe.join(r,...d.relativeRoot.split("/"));await Dn(p,{recursive:!0}),await Jr(pe.join(p,"package.json"),d.bytes)}let a=pe.join(n,"userconfig.npmrc");await Jr(a,`ignore-scripts=true
|
|
218
230
|
strict-peer-dependencies=true
|
|
219
231
|
manage-package-manager-versions=false
|
|
220
|
-
`,{mode:384});let
|
|
221
|
-
`;return await
|
|
222
|
-
`,{mode:384}),await
|
|
223
|
-
`;return await
|
|
232
|
+
`,{mode:384});let o=pe.join(t,"store","shared"),s=pe.join(t,"cache");await Dn(o,{recursive:!0}),await Dn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await Y0("corepack",c,{cwd:r,env:{PATH:process.env.PATH,CI:"1",NO_COLOR:"1",HOME:n,XDG_CACHE_HOME:s,COREPACK_HOME:process.env.COREPACK_HOME,COREPACK_ENABLE_PROJECT_SPEC:"0",NPM_CONFIG_USERCONFIG:a,pnpm_config_store_dir:o},timeout:9e5,maxBuffer:8*1024*1024});return{...await H0(t),commandDigest:y(k({executable:"corepack",args:c,stdoutDigest:y(l.stdout),stderrDigest:y(l.stderr)}))}}finally{await Wh(r,{recursive:!0,force:!0})}}}async function Xh(e){let t=await Nd(e.workspaceRoot),r=e.now??new Date,[n,i]=await Promise.all([_t(pe.join(t,"pnpm-workspace.yaml")),_t(pe.join(t,"pnpm-lock.yaml"))]),a=y(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),o=od({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n),rootLockDigest:y(i),cacheNamespace:`pnpm11-node24-${a.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=Kh(t,o.planId);await Dn(pe.dirname(s),{recursive:!0});let c=`${JSON.stringify(o,null,2)}
|
|
233
|
+
`;return await Jr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await _t(s,"utf8")!==c)throw l}),o}async function Zh(e){let t=await Nd(e.workspaceRoot),r=nh(JSON.parse(await _t(Kh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Ye("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,i]=await Promise.all([_t(pe.join(t,"pnpm-workspace.yaml")),_t(pe.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(i)!==r.rootLockDigest)throw new Ye("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let a=Yh(t),o=await _t(Pd(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(o)return To(JSON.parse(o));await Dn(a,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:a,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Ye("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=sd({planId:r.planId,workerReleaseId:r.workerReleaseId,pnpmVersion:r.pnpmVersion,cacheNamespace:r.cacheNamespace,cacheDigest:s.cacheDigest,cacheBytes:s.cacheBytes,commandDigest:s.commandDigest,completedAt:(e.now??new Date).toISOString()}),l=pe.join(a,`build-receipt.${r.planId.slice(7)}.tmp`);return await Jr(l,`${JSON.stringify(c,null,2)}
|
|
234
|
+
`,{mode:384}),await J0(l,Pd(t)),c}catch(s){throw await G0(Pd(t)).then(()=>!0).catch(()=>!1)||await Wh(pe.join(a,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as X0,readFile as Gr,realpath as Qh,writeFile as Z0}from"node:fs/promises";import Wr from"node:path";function ey(e,t){return Wr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function ty(e){let t=await Qh(e.projectRoot),r=await Bt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Gr(Wr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Gr(Wr.join(t,".dyyto","plans",`${n.planId}.json`));let i=JSON.parse(await Gr(Wr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(i.state!=="recovery-required"&&i.state!=="recovering"||!Array.isArray(i.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let a=[];for(let d of i.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await Gr(Wr.join(r.transactionRoot,...d.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=y(p);f!==d.before.digest&&f!==d.desiredDigest&&a.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let o=e.now??new Date,s=ld({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:a,generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+30*6e4).toISOString()}),c=ey(t,s.planId);await X0(Wr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
|
|
235
|
+
`;return await Z0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Gr(c,"utf8")!==l)throw d}),s}async function ry(e){let t=await Qh(e.projectRoot),r=await Bt(t),n=ih(JSON.parse(await Gr(ey(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||y(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let i of n.conflicts){let a=await Gr(Wr.join(r.transactionRoot,...i.path.split("/")));if(y(a)!==i.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return gl({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:i,currentDigest:a})=>({path:i,currentDigest:a}))})}function Ho(e){return e.endsWith(`
|
|
224
236
|
`)?e:`${e}
|
|
225
|
-
`}function
|
|
226
|
-
Next: ${e.error.nextStep}`;return{stdout:"",stderr:
|
|
237
|
+
`}function ny(e,t,r){return t==="json"?{stdout:Ho(JSON.stringify(e)),stderr:""}:{stdout:Ho(r),stderr:""}}function iy(e,t){if(t==="json")return{stdout:"",stderr:Ho(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
|
|
238
|
+
Next: ${e.error.nextStep}`;return{stdout:"",stderr:Ho(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as Q0,readFile as Hi,realpath as ay}from"node:fs/promises";import Fe from"node:path";var ft=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function Yi(e){let t=await Q0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return Hi(e)}}async function oy(e){let t=Fe.dirname(e);for(;t!==Fe.parse(t).root;){if(await Yi(Fe.join(t,"pnpm-workspace.yaml"))&&await Yi(Fe.join(t,"pnpm-lock.yaml"))&&await Yi(Fe.join(t,"project-capabilities.json")))return t;t=Fe.dirname(t)}throw new ft("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function eN(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function sy(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),i=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();i&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
|
|
227
239
|
`)?"":`
|
|
228
|
-
`}verifyDepsBeforeRun: ${
|
|
229
|
-
`);let
|
|
240
|
+
`}verifyDepsBeforeRun: ${i}
|
|
241
|
+
`);let a=n.split(/\r?\n/u),o=[],s=!1;for(let l of a){if(/^allowBuilds:\s*$/u.test(l)){s=!0;continue}if(s&&/^ ['"]?[^'"\s][^:]*['"]?:\s*true\s*$/u.test(l)){o.push(l.trim());continue}s&&l.trim()&&!/^\s/u.test(l)&&(s=!1)}let c=o.filter(l=>!r.split(/\r?\n/u).some(d=>d.trim()===l));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
|
|
230
242
|
`)?"":`
|
|
231
243
|
`}allowBuilds:
|
|
232
244
|
${c.map(l=>` ${l}`).join(`
|
|
@@ -234,28 +246,29 @@ ${c.map(l=>` ${l}`).join(`
|
|
|
234
246
|
`;else{let l=r.split(/\r?\n/u),p=l.findIndex(f=>/^allowBuilds:\s*$/u.test(f))+1;for(;p<l.length&&(!l[p].trim()||/^\s/u.test(l[p]));)p+=1;l.splice(p,0,...c.map(f=>` ${f}`)),r=l.join(`
|
|
235
247
|
`)}return Buffer.from(r.endsWith(`
|
|
236
248
|
`)?r:`${r}
|
|
237
|
-
`)}async function
|
|
238
|
-
`);continue}r=
|
|
239
|
-
`);continue}let n=await
|
|
240
|
-
`)}}import{createHash as
|
|
249
|
+
`)}async function cy(e){let t=await ay(Fe.resolve(e.projectRoot)),r=await oy(t),n=Fe.relative(r,t).split(Fe.sep).join("/");if(!n||n.startsWith("../"))throw new ft("WORKSPACE_TOPOLOGY_OWNER_MISSING");let i=await Yi(Fe.join(t,"pnpm-lock.yaml")),a=await Yi(Fe.join(t,"pnpm-workspace.yaml"));if(!i&&!a)throw new ft("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let o=await Hi(Fe.join(r,"pnpm-lock.yaml")),s=await Hi(Fe.join(r,"pnpm-workspace.yaml"));if(!eN(o.toString("utf8"),n))throw new ft("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(a&&!/^packages:\s*\[\]/mu.test(a.toString("utf8")))throw new ft("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=a?sy(s,a):s,l=[...y(c)!==y(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(s),desiredDigest:y(c)}]:[],...i?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(i)}]:[],...a?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(a)}]:[]],d=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(d)+30*6e4).toISOString(),f=Ae({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:y("foundation.workspace-topology-migration@1.0.0"),assets:[],verifiers:[]},changes:l,observedAssets:l.map(m=>({path:m.path,exists:!0,digest:m.baseDigest})),generatedAt:d,expiresAt:p});return{plan:await qt({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function ly(e){let t=await ay(Fe.resolve(e.projectRoot)),r=await oy(t),n=await Cr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new ft("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let i=new Map,a=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(a){let c=await Hi(Fe.join(t,"pnpm-workspace.yaml")),l=await Hi(Fe.join(r,"pnpm-workspace.yaml")),d=sy(l,c);if(y(d)!==a.desiredDigest)throw new ft("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");i.set("pnpm-workspace.yaml",d)}let o=await sr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:i,now:e.now??new Date().toISOString()}),s=await cr(o);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as tN}from"node:readline";import Xo from"node:process";var rN=[{name:"dyyto_catalog_search",title:"\u641C\u7D22 Dyyto \u5DE5\u7A0B\u80FD\u529B\u76EE\u5F55",description:"\u641C\u7D22\u7ECF\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\u7684\u6700\u65B0 Capability \u4E0E PackageRelease\uFF1B\u4E0D\u4F1A\u4FEE\u6539\u9879\u76EE\u3002",inputSchema:{type:"object",properties:{query:{type:"string",description:"\u540D\u79F0\u3001\u8BF4\u660E\u6216\u6210\u719F\u5EA6\u5173\u952E\u8BCD\uFF1B\u7559\u7A7A\u65F6\u5217\u51FA\u5168\u90E8\u3002"},kind:{type:"string",enum:["package","capability"],description:"\u53EF\u9009\u7684\u8D44\u4EA7\u7C7B\u578B\u3002"},limit:{type:"integer",minimum:1,maximum:200,default:50}},additionalProperties:!1}},{name:"dyyto_catalog_show",title:"\u8BFB\u53D6 Dyyto \u53D1\u884C\u4E8B\u5B9E",description:"\u6309\u4E0D\u53EF\u53D8 ref \u8BFB\u53D6\u5B8C\u6574 Capability \u6216 PackageRelease\u3002",inputSchema:{type:"object",properties:{ref:{type:"string",description:"\u4F8B\u5982 package:@aipt/platform-kernel@0.1.0\u3002"}},required:["ref"],additionalProperties:!1}}];function Od(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zo(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Xi(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function nN(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return Zo(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:$n},instructions:"\u8FD9\u662F\u53EA\u8BFB\u5DE5\u7A0B\u80FD\u529B\u76EE\u5F55\u3002\u5148\u641C\u7D22\uFF0C\u518D\u7528\u4E0D\u53EF\u53D8 ref \u8BFB\u53D6\u53D1\u884C\u4E8B\u5B9E\u3002"});if(e.method==="tools/list")return Zo(r,{tools:rN});if(e.method!=="tools/call")return Xi(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Od(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Od(e.params.arguments))return Xi(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let i;if(e.params.name==="dyyto_catalog_search"){if(n.query!==void 0&&typeof n.query!="string")throw new Error("query \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(n.kind!==void 0&&n.kind!=="package"&&n.kind!=="capability")throw new Error("kind \u53EA\u63A5\u53D7 package \u6216 capability");if(n.limit!==void 0&&(!Number.isSafeInteger(n.limit)||Number(n.limit)<1||Number(n.limit)>200))throw new Error("limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570");i=await Mo({...typeof n.query=="string"?{query:n.query}:{},...n.kind==="package"||n.kind==="capability"?{kind:n.kind}:{},...typeof n.limit=="number"?{limit:n.limit}:{},...t===void 0?{}:{roots:t}})}else if(e.params.name==="dyyto_catalog_show"){if(typeof n.ref!="string"||n.ref.trim()==="")throw new Error("ref \u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32");i=await Fo({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Xi(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return Zo(r,{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i})}catch(i){let a=i instanceof Error?i.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return Zo(r,{isError:!0,content:[{type:"text",text:a}]})}}async function dy(){let e=tN({input:Xo.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let i=JSON.parse(t);if(!Od(i)||i.jsonrpc!=="2.0"||typeof i.method!="string"){Xo.stdout.write(`${JSON.stringify(Xi(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
|
|
250
|
+
`);continue}r=i}catch{Xo.stdout.write(`${JSON.stringify(Xi(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
|
|
251
|
+
`);continue}let n=await nN(r);n!==null&&Xo.stdout.write(`${JSON.stringify(n)}
|
|
252
|
+
`)}}import{createHash as iN}from"node:crypto";import{chmod as aN,lstat as oN,mkdir as sN,readdir as cN,readFile as Kr,realpath as py,rename as lN,unlink as dN,writeFile as pN}from"node:fs/promises";import ke from"node:path";var Dd="1.1.0",Tt=Object.freeze({"@aipt/cli":"0.1.28","@aipt/idp-cli":"0.1.5","@aipt/idp-deploy":"0.1.8"}),uy=Object.entries(Tt).map(([e,t])=>`${e}@${t}`),jd="<!-- dyyto:agent-policy:start -->",Zi="<!-- dyyto:agent-policy:end -->",ze=class extends Error{constructor(r,n){super(n);this.code=r}code},He=e=>`sha256:${iN("sha256").update(e).digest("hex")}`,Sn=e=>Array.isArray(e)?`[${e.map(Sn).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Sn(r)}`).join(",")}}`:JSON.stringify(e),Qo=`${jd}
|
|
241
253
|
## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
|
|
242
254
|
|
|
243
255
|
\u672C\u9879\u76EE\u7531 Dyyto \u7EB3\u7BA1\u3002\u5F00\u59CB\u7F16\u7801\u524D\u6267\u884C \`dyyto context --project .\` \u4E0E \`dyyto doctor --project .\`\u3002
|
|
244
256
|
|
|
245
257
|
- \u4F18\u5148\u67E5\u8BE2 Catalog \u5E76\u590D\u7528\u5DF2\u53D1\u884C\u80FD\u529B\uFF1B\u5DE5\u7A0B\u53D8\u66F4\u8D70 Plan\u3001Apply\u3001Verify\u3002
|
|
258
|
+
- \u4E1A\u52A1\u901A\u7528\u80FD\u529B\u901A\u8FC7 \`packages/\` \u89C4\u8303\u5B75\u5316\uFF0C\u6210\u719F\u540E\u901A\u8FC7 \`dyyto package publish\` \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\u6E90\uFF0C\u5E76\u5728\u4E1A\u52A1\u4ED3\u5E93\u5207\u6362\u4E3A\u7A33\u5B9A\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002
|
|
246
259
|
- \u914D\u7F6E\u3001\u5BC6\u94A5\u548C\u8BC1\u4E66\u53EA\u4ECE\u4ED3\u5E93\u5916\u7ED1\u5B9A\u7684 Config Dir \u8BFB\u53D6\uFF0C\u7981\u6B62\u5199\u5165\u9879\u76EE\u73AF\u5883\u6587\u4EF6\u3002
|
|
247
260
|
- \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
|
|
248
261
|
- \u8BE6\u7EC6\u89C4\u8303\u4F7F\u7528 \`dyyto docs show --id engineering-workflow\` \u8BFB\u53D6\uFF0C\u7981\u6B62\u5728\u4E1A\u52A1\u4ED3\u5E93\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u3002
|
|
249
|
-
${
|
|
262
|
+
${Zi}`;function uN(e,t){let r=`${t}
|
|
250
263
|
|
|
251
|
-
${
|
|
252
|
-
`,n=e.indexOf(
|
|
264
|
+
${Qo}
|
|
265
|
+
`,n=e.indexOf(jd),i=e.indexOf(Zi);if(n<0&&i<0)return e.length===0?r:`${e.trimEnd()}
|
|
253
266
|
|
|
254
|
-
${
|
|
255
|
-
`;if(n<0||
|
|
267
|
+
${Qo}
|
|
268
|
+
`;if(n<0||i<n)throw new ze("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${Qo}${e.slice(i+Zi.length)}`}function fN(e){let t=e.indexOf(jd),r=e.indexOf(Zi);if(t<0&&r<0)return e;if(t<0||r<t)throw new ze("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+Zi.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
|
|
256
269
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
|
|
257
270
|
name: dyyto-engineering`)?null:`${n}
|
|
258
|
-
`}var
|
|
271
|
+
`}var Sd=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
|
|
259
272
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
|
|
260
273
|
alwaysApply: true
|
|
261
274
|
---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
|
|
@@ -264,12 +277,12 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
264
277
|
---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
|
|
265
278
|
name: dyyto-engineering
|
|
266
279
|
description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
|
|
267
|
-
---`]];async function
|
|
268
|
-
`,
|
|
269
|
-
`,
|
|
270
|
-
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",
|
|
271
|
-
`;if(l&&l!==d)throw new ze("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await
|
|
272
|
-
`),{plan:
|
|
280
|
+
---`]];async function $d(e){if(!ke.isAbsolute(e))throw new ze("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await py(e),r=await oN(t);if(!r.isDirectory()||r.isSymbolicLink())throw new ze("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Yr(e){return Kr(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function es(e,t){await sN(ke.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await pN(r,t,{mode:384,flag:"wx"}),await lN(r,e),await aN(e,e.endsWith(".json")?384:420)}function fy(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Tt["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:2f3072966d33b97b69c528b9db8ecb0dee0b6d1a36e2841f15b535ec2c802abb"},{id:"vibe-coding-guide",package:"@aipt/cli",version:Tt["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:8c0fc8c25137def0fa1d8c5ef07cab807f8cd79840cec38e47249fa6a630c1d9"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:Tt["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:2040de770d2c2bd81eea709185e913afd6d6cf4c78f1e30c82e6bcb42b066de9"},{id:"idp-integration",package:"@aipt/idp-cli",version:Tt["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:5a69f99fd3dc6eee0c8d7af9663b1f1e0984aced240bf008c65418b478e2a65a"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Tt["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:d6aec46bb077edf239a9708ae7852c6679d6b6ae5f1f810ba7fed5aadb8cf90e"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:Tt["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:848663f2528d1f7de5cdffa6c2d86c3f272642a4e5257b450534b12c83b66bef"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:Tt["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:He(Sn(e))}))}async function my(e){let t=await $d(e),r=[];for(let[p,f]of Sd){let u=await Yr(ke.join(t,p)),m=uN(u,f);r.push({path:p,preimageDigest:He(u),desired:m,desiredDigest:He(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Tt},null,2)}
|
|
281
|
+
`,i=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:Dd,digest:He(Qo)},adapters:Sd.map(([p])=>p)},null,2)}
|
|
282
|
+
`,a=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:fy()},null,2)}
|
|
283
|
+
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",i],[".dyyto/documentation.lock.json",a]]){let u=await Yr(ke.join(t,p));r.push({path:p,preimageDigest:He(u),desired:f,desiredDigest:He(f)})}let o={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:Dd,files:r,createdAt:new Date().toISOString()},s={...o,planId:He(Sn(o))},c=ke.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Yr(c),d=`${JSON.stringify(s,null,2)}
|
|
284
|
+
`;if(l&&l!==d)throw new ze("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await es(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function gy(e){let t=await $d(e),r=[];for(let[c]of Sd){let l=await Yr(ke.join(t,c)),d=fN(l);r.push({path:c,preimageDigest:He(l),desired:d,desiredDigest:He(d??"")})}let n=".dyyto/agent-policy.lock.json",i=await Yr(ke.join(t,n));r.push({path:n,preimageDigest:He(i),desired:null,desiredDigest:He("")});let a={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:Dd,files:r,createdAt:new Date().toISOString()},o={...a,planId:He(Sn(a))},s=ke.join(t,".dyyto/plans/bootstrap",`${o.planId.slice(7)}.json`);return await es(s,`${JSON.stringify(o,null,2)}
|
|
285
|
+
`),{plan:o,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Cd(e,t){if(!ke.isAbsolute(e))throw new ze("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Kr(await py(e),"utf8")),{planId:n,...i}=r;if(n!==t||He(Sn(i))!==n)throw new ze("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let o of r.files)if(He(await Yr(ke.join(r.projectRoot,o.path)))!==o.preimageDigest)throw new ze("BOOTSTRAP_PREIMAGE_CHANGED",`${o.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let a=ke.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let o of r.files){let s=ke.join(r.projectRoot,o.path),c=await Yr(s);c&&c!==o.desired&&await es(ke.join(a,o.path),c),o.desired===null?c&&await dN(s):c!==o.desired&&await es(s,o.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(o=>o.preimageDigest!==o.desiredDigest).map(o=>o.path),preimageDirectory:a}}async function mN(e){let t=[],r=["packages","apps","services"];for(let n of r){let i=ke.join(e,n);try{let a=await cN(i,{withFileTypes:!0});for(let o of a){if(!o.isDirectory())continue;let s=ke.join(i,o.name,"package.json");try{let c=JSON.parse(await Kr(s,"utf8"));if(!c.name)continue;let l="incubating";c.dyyto?.tier?l=c.dyyto.tier:c.name.startsWith("@aipt/")||c.name.startsWith("@dyyto/")?l="platform-mirror":(o.name==="domain"||o.name==="persistence"||o.name==="application"||o.name==="api-contracts"||c.private===!0)&&(l="proprietary"),t.push({name:c.name,version:c.version||"0.0.0",relativePath:`${n}/${o.name}`,tier:l})}catch{}}}catch{}}return t}async function hy(e){let t=await $d(e),r={tools:Tt};try{r=JSON.parse(await Kr(ke.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:fy()};try{n=JSON.parse(await Kr(ke.join(t,".dyyto/documentation.lock.json"),"utf8"))}catch{}let i;try{i=JSON.parse(await Kr(ke.join(t,"project-capabilities.json"),"utf8"))}catch{try{i=JSON.parse(await Kr(ke.join(t,".dyyto/project-capabilities.json"),"utf8"))}catch{}}let a=await mN(t);return{schemaVersion:1,projectRoot:t,intent:"\u4F18\u5148\u590D\u7528Dyyto Catalog\u80FD\u529B\uFF0C\u901A\u8FC7Plan/Apply/Verify\u5B89\u5168\u6F14\u8FDB\uFF1B\u914D\u7F6E\u4E0E\u5BC6\u94A5\u4F4D\u4E8E\u4ED3\u5E93\u5916Config Dir\u3002",requiredBeforeCoding:["dyyto doctor --project .","dyyto catalog search"],toolchain:r.tools,documents:n.documents,prohibitions:["\u4E0D\u5F97\u5728\u4ED3\u5E93\u5185\u4FDD\u5B58Secret","\u4E0D\u5F97\u7ED5\u8FC7\u4E0D\u53EF\u53D8Plan\u5199\u5165\u5DE5\u7A0B\u8D44\u4EA7","\u4E0D\u5F97\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u5230\u4E1A\u52A1\u4ED3\u5E93","\u4E0D\u5F97\u5C06\u4E1A\u52A1\u4E13\u5C5ESchema\u6216\u79C1\u6709\u72B6\u6001\u6CC4\u9732\u5230\u901A\u7528\u5305\u4E2D"],assetPerception:{localPackages:a,declaredCapabilities:i||null,proprietaryCount:a.filter(o=>o.tier==="proprietary").length,incubatingCount:a.filter(o=>o.tier==="incubating").length},vibeCodingDecisionGuide:{rulePrioritizeCatalog:"\u65B0\u589E\u529F\u80FD\u6216\u901A\u7528\u4F9D\u8D56\u524D\uFF0C\u5FC5\u987B\u5148\u6267\u884C dyyto catalog search \u68C0\u7D22\u5E76\u590D\u7528\u5DF2\u53D1\u884C\u7684\u901A\u7528\u80FD\u529B\u5305\u3002",ruleLocalIncubation:"\u82E5 Catalog \u5C1A\u65E0\u73B0\u6210\u80FD\u529B\uFF0C\u5E94\u5728 packages/ \u5EFA\u7ACB\u72EC\u7ACB\u5B50\u5305\u8FDB\u884C\u5B75\u5316\uFF1B\u4E25\u7981\u5F15\u7528\u4E1A\u52A1\u4E13\u7528\u6301\u4E45\u5C42\u6216\u679A\u4E3E\uFF0C\u5E76\u9644\u5E26 100% \u8986\u76D6\u7387\u7684 Vitest \u5355\u6D4B\u3002",rulePublishPromotion:"\u672C\u5730\u901A\u7528\u5305\u6210\u719F\u4E14\u901A\u8FC7 Golden Set \u9A8C\u6536\u540E\uFF0C\u4F7F\u7528 dyyto package publish \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\uFF0C\u4E1A\u52A1\u4ED3\u5E93\u968F\u540E\u5207\u56DE\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002"}}}var yy=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
|
|
273
286
|
|
|
274
287
|
\u672C\u5730 Sources \u5148\u8FD0\u884C idp-setup init \u5E76\u52A0\u8F7D\u751F\u6210\u7684\u73AF\u5883\u6587\u4EF6\u3002Workspace\u3001\u72EC\u7ACB\u9879\u76EE\u3001Package \u4E0E Application \u5747\u5148\u6267\u884C context \u4E0E doctor\uFF0C\u518D\u67E5\u8BE2 Catalog\u3001\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3001Apply \u540E\u8FD0\u884C Verify\u3002\u914D\u7F6E\u548C\u5BC6\u94A5\u59CB\u7EC8\u4F4D\u4E8E\u4ED3\u5E93\u5916 Config Dir\uFF1B\u90E8\u7F72\u53EA\u4F7F\u7528 idp \u4E0E idpctl bin\u3002
|
|
275
288
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
@@ -290,63 +303,70 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
290
303
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
291
304
|
|
|
292
305
|
\u672A\u77E5\u53C2\u6570\u65F6\u5148\u8FD0\u884C type -a idpctl \u4E0E idpctl --version --json\uFF0C\u786E\u8BA4 PATH \u547D\u4E2D\u9879\u76EE\u9501\u5B9A\u7248\u672C\u3002
|
|
293
|
-
`})[e];function
|
|
294
|
-
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${
|
|
295
|
-
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),
|
|
296
|
-
`:
|
|
297
|
-
Plan\uFF1A${
|
|
306
|
+
`})[e];import{createHash as Td}from"node:crypto";import{execFile as gN}from"node:child_process";import{mkdtemp as hN,readFile as wy,readdir as yN,realpath as wN,rm as IN}from"node:fs/promises";import{tmpdir as vN}from"node:os";import jn from"node:path";import{promisify as bN}from"node:util";var Iy=bN(gN),Et=class extends Error{constructor(r,n,i){super(n);this.code=r;this.nextStep=i;this.name="PackagePublishError"}code;nextStep},Qi=e=>`sha256:${Td("sha256").update(e).digest("hex")}`,kN=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-([0-9A-Za-z.-]+))?(?:\+([0-9A-Za-z.-]+))?$/u;async function vy(e){let t=jn.isAbsolute(e.packageRoot)?e.packageRoot:jn.resolve(process.cwd(),e.packageRoot),r=jn.join(t,"package.json"),n;try{n=await wy(r,"utf8")}catch{throw new Et("PACKAGE_MANIFEST_NOT_FOUND",`\u627E\u4E0D\u5230 package.json: ${r}`,"\u8BF7\u6307\u5B9A\u6709\u6548\u7684 npm package \u76EE\u5F55\u3002")}let i;try{i=JSON.parse(n)}catch{throw new Et("PACKAGE_MANIFEST_INVALID",`package.json \u65E0\u6CD5\u89E3\u6790\u4E3A JSON: ${r}`,"\u8BF7\u4FEE\u6B63 package.json \u8BED\u6CD5\u9519\u8BEF\u3002")}let a=i.name;if(typeof a!="string"||!a.trim())throw new Et("PACKAGE_NAME_INVALID","package.json \u7F3A\u5C11\u6709\u6548\u7684 name \u5B57\u6BB5\u3002","\u5728 package.json \u4E2D\u914D\u7F6E\u5408\u6CD5\u5305\u540D\u3002");let o=i.version;if(typeof o!="string"||!kN.test(o))throw new Et("PACKAGE_VERSION_INVALID",`\u7248\u672C\u53F7 "${o}" \u4E0D\u7B26\u5408 SemVer \u89C4\u8303 (x.y.z)\u3002`,"\u8BF7\u6309\u7167\u8BED\u4E49\u5316\u7248\u672C\u89C4\u8303\u914D\u7F6E\u7248\u672C\u53F7\u3002");let s={...i.dependencies||{},...i.devDependencies||{},...i.peerDependencies||{}},c=[];for(let[R,N]of Object.entries(s))typeof N=="string"&&N.startsWith("workspace:*")&&c.push(R);let l=e.registry||i.publishConfig?.registry||process.env.NPM_CONFIG_REGISTRY||"https://registry.npmjs.org",d=e.access||i.publishConfig?.access||(a.startsWith("@"),"public"),p=e.tag||i.publishConfig?.tag||"latest",f=!!e.dryRun,u=await hN(jn.join(await wN(vN()),"dyyto-pkg-publish-")),m="",g="sha256:0000000000000000000000000000000000000000000000000000000000000000",h="sha512-AAAA",w=0,A=0;try{let R=await Iy("npm",["pack","--pack-destination",u,"--json"],{cwd:t,env:process.env}),N=JSON.parse(R.stdout),j=Array.isArray(N)?N[0]:N,re=j?.filename||(await yN(u))[0];if(re){m=jn.join(u,re);let $=await wy(m);g=Qi($),h=`sha512-${Td("sha512").update($).digest("base64")}`,w=j?.entryCount||j?.files?.length||1,A=j?.unpackedSize||$.byteLength}}catch{let N=Buffer.from(n);g=Qi(N),h=`sha512-${Td("sha512").update(N).digest("base64")}`,w=i.files?.length||1,A=N.byteLength}let b=new Date().toISOString(),_={schemaVersion:1,kind:"PackagePublishPlan",packageName:a,version:o,packageRoot:t,registry:l,access:d,tag:p,dryRun:f,tarballDigest:g,integrity:h,tarballPath:m,filesCount:w,unpackedBytes:A,dependenciesChecked:c.length===0,createdAt:b},I=Qi(JSON.stringify(_));return Object.freeze({..._,planId:I})}async function by(e){let t=new Date().toISOString();if(e.dryRun){let i={schemaVersion:1,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,registry:e.registry,access:e.access,tag:e.tag,tarballDigest:e.tarballDigest,status:"dry-run-verified",publishedAt:t};return Object.freeze({...i,receiptId:Qi(JSON.stringify(i))})}let r=["publish","--registry",e.registry,"--tag",e.tag,"--access",e.access];e.tarballPath&&r.push(e.tarballPath);try{await Iy("npm",r,{cwd:e.packageRoot,env:process.env})}catch(i){let a=i?.stderr||i?.message||"";throw a.includes("EPUBLISHCONFLICT")||a.includes("409")?new Et("PACKAGE_PUBLISH_CONFLICT",`\u7248\u672C ${e.packageName}@${e.version} \u5DF2\u5B58\u5728\u4E8E ${e.registry}\uFF0C\u7981\u6B62\u8986\u76D6\u53D1\u5E03\u3002`,"\u8BF7\u5347\u7EA7 package.json \u4E2D\u7684\u7248\u672C\u53F7\u540E\u91CD\u8BD5\u3002"):a.includes("ENEEDAUTH")||a.includes("401")||a.includes("403")?new Et("PACKAGE_PUBLISH_UNAUTHORIZED",`\u53D1\u5E03\u5230 ${e.registry} \u9274\u6743\u5931\u8D25\uFF1A\u7F3A\u5C11\u6709\u6548\u7684 npm token \u6216\u65E0\u6743\u53D1\u5E03 ${e.packageName}\u3002`,"\u8BF7\u68C0\u67E5 NPM_TOKEN \u73AF\u5883\u53D8\u91CF\u6216\u914D\u7F6E ~/.npmrc \u51ED\u8BC1\u3002"):new Et("PACKAGE_PUBLISH_FAILED",`\u53D1\u5E03\u5931\u8D25: ${a.slice(0,300)}`,"\u8BF7\u68C0\u67E5 Registry \u7F51\u7EDC\u8FDE\u901A\u6027\u4E0E\u6743\u9650\u3002")}finally{e.tarballPath&&await IN(jn.dirname(e.tarballPath),{recursive:!0,force:!0}).catch(()=>{})}let n={schemaVersion:1,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,registry:e.registry,access:e.access,tag:e.tag,tarballDigest:e.tarballDigest,status:"published",publishedAt:t};return Object.freeze({...n,receiptId:Qi(JSON.stringify(n))})}function Ce(e){e.stdout.length>0&&Re.stdout.write(e.stdout),e.stderr.length>0&&Re.stderr.write(e.stderr)}async function AN(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),i=e[n+1],a=e.flatMap((p,f)=>p==="--artifact-fallback-bundle"&&e[f+1]!==void 0?[e[f+1]]:[]),o=e.indexOf("--artifact-port"),s=Number(e[o+1]),c=[t>=0,n>=0,o>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||a.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Development Package Source requires exact --artifact-workspace, --artifact-bundle, optional --artifact-fallback-bundle and --artifact-port values.",exitCode:2,nextStep:"Start the approved local Artifact Bundle set and repeat the exact values."});let l=await Wi(Pt.resolve(r,".dyyto","package-artifacts",i)),d=await Promise.all(a.map(p=>Wi(Pt.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==i)throw new fr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Bh({bundle:l.bundle,fallbackBundles:d.map(p=>p.bundle),origin:`http://127.0.0.1:${s}/`,resolvedAt:"2026-08-21T00:00:00.000Z",expiresAt:"2099-12-31T23:59:59.000Z"}),resolutionWorkerProvider:Gh({stateRoot:Pt.resolve(r,".dyyto","resolution-worker"),engine:Jh()}),packageStoreRoot:Pt.resolve(r,".dyyto","resolution-worker","store")}}async function mL(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),i=n<0?Re.cwd():e[n+1];if(!i)throw new ze("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let a=await gy(Pt.resolve(i)),o=e.includes("--apply")?await Cd(a.planFile,a.plan.planId):{status:"planned",planId:a.plan.planId,planFile:a.planFile,changed:a.changed};Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:o})}
|
|
307
|
+
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${a.plan.planId}
|
|
308
|
+
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?Re.cwd():e[n+1];if(!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"bootstrap --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u4F20\u5165\u7EDD\u5BF9\u9879\u76EE\u6216Workspace\u76EE\u5F55\u3002"});let a=await my(Pt.resolve(i)),o=e.includes("--apply");if(o&&!e.includes("--skip-tool-install")){let c=Re.env.PNPM_HOME;if(!c||!Pt.isAbsolute(c))throw new ze("BOOTSTRAP_PNPM_HOME_REQUIRED","\u7F3A\u5C11\u7EDD\u5BF9PNPM_HOME\uFF1B\u5148\u8FD0\u884Cidp-setup init\uFF0C\u6216\u4F7F\u7528idp-setup bootstrap\u4F5C\u4E3A\u9879\u76EE\u9996\u6B21\u5165\u53E3\u3002");let l=RN("corepack",["pnpm","add","--global","--global-bin-dir",c,...uy],{encoding:"utf8",shell:!1,env:Re.env});if(l.error||l.status!==0)throw new ze("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=o?await Cd(a.planFile,a.plan.planId):{status:"planned",planId:a.plan.planId,planFile:a.planFile,changed:a.changed};Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:o?"bootstrap-apply":"bootstrap-plan",result:s})}
|
|
309
|
+
`:o?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
310
|
+
Plan\uFF1A${a.plan.planId}
|
|
298
311
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
299
|
-
Next\uFF1Adyyto context --project ${
|
|
300
|
-
`:`Bootstrap Plan\uFF1A${
|
|
301
|
-
\u6587\u4EF6\uFF1A${
|
|
302
|
-
\u53D8\u66F4\uFF1A${
|
|
312
|
+
Next\uFF1Adyyto context --project ${i}
|
|
313
|
+
`:`Bootstrap Plan\uFF1A${a.plan.planId}
|
|
314
|
+
\u6587\u4EF6\uFF1A${a.planFile}
|
|
315
|
+
\u53D8\u66F4\uFF1A${a.changed.join("\u3001")||"\u65E0"}
|
|
303
316
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
304
|
-
`,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),
|
|
305
|
-
`:`${
|
|
317
|
+
`,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),i=n<0?Re.cwd():e[n+1];if(!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let a=await hy(Pt.resolve(i));Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context",result:a})}
|
|
318
|
+
`:`${a.intent}
|
|
306
319
|
|
|
307
320
|
\u7F16\u7801\u524D\uFF1A
|
|
308
|
-
${
|
|
321
|
+
${a.requiredBeforeCoding.map(o=>`- ${o}`).join(`
|
|
309
322
|
`)}
|
|
310
323
|
|
|
311
324
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
312
|
-
${
|
|
325
|
+
${a.prohibitions.map(o=>`- ${o}`).join(`
|
|
313
326
|
`)}
|
|
314
|
-
`,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),
|
|
315
|
-
`:
|
|
316
|
-
|
|
317
|
-
\
|
|
318
|
-
|
|
319
|
-
|
|
327
|
+
`,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),i=e[n+1],a=i?yy(i):void 0;if(!a)throw new T({code:"DOCUMENT_NOT_FOUND",message:"\u672A\u77E5\u6216\u7F3A\u5C11\u7A33\u5B9A\u6587\u6863ID\u3002",exitCode:4,nextStep:"\u4F7F\u7528 engineering-workflow\u3001idp-integration \u6216 local-deployment\u3002"});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:i,content:a}})}
|
|
328
|
+
`:a,stderr:""});return}if(e[0]==="package"&&e[1]==="publish"||e[0]==="publish"){let n=e[0]==="publish"?1:2,i=e.slice(n),a=i.indexOf("--package-dir"),o=a>=0&&i[a+1]?Pt.resolve(i[a+1]):Re.cwd(),s=i.indexOf("--registry"),c=s>=0?i[s+1]:void 0,l=i.indexOf("--access"),d=l>=0?i[l+1]:void 0,p=i.indexOf("--tag"),f=p>=0?i[p+1]:void 0,u=i.includes("--dry-run"),m=await vy({packageRoot:o,registry:c,access:d,tag:f,dryRun:u}),g=await by(m),h={status:u?"dry-run-verified":"published",receiptId:g.receiptId,packageName:g.packageName,version:g.version,registry:g.registry,access:g.access,tag:g.tag,tarballDigest:g.tarballDigest,filesCount:m.filesCount,unpackedBytes:m.unpackedBytes,publishedAt:g.publishedAt};Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"package-publish",result:h})}
|
|
329
|
+
`:`[Dyyto Package Publish] ${u?"\u3010\u9884\u68C0\u6A21\u62DF\u6210\u529F\u3011":"\u3010\u53D1\u5E03\u6210\u529F\u3011"}
|
|
330
|
+
\u5305\u540D\uFF1A${g.packageName}@${g.version}
|
|
331
|
+
\u76EE\u6807\u955C\u50CF\uFF1A${g.registry} (tag: ${g.tag}, access: ${g.access})
|
|
332
|
+
Tarball \u6458\u8981\uFF1A${g.tarballDigest}
|
|
333
|
+
\u6587\u4EF6\u6570\uFF1A${m.filesCount}\uFF0C\u89E3\u538B\u5927\u5C0F\uFF1A${m.unpackedBytes} bytes
|
|
334
|
+
\u4E0D\u53EF\u53D8\u8BC1\u636E Receipt\uFF1A${g.receiptId}
|
|
335
|
+
`,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new T({code:"CLI_ARGUMENT_INVALID",message:"mcp serve \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto mcp serve\uFF0C\u5E76\u901A\u8FC7 stdin/stdout \u4F7F\u7528 JSON-RPC\u3002"});await dy();return}if(e[0]==="catalog"&&e[1]==="export"){let n=new Set(["--output","--generated-at"]);for(let s=2;s<e.length;s+=2){let c=e[s],l=e[s+1];if(c===void 0||l===void 0||!n.has(c)||l.startsWith("--"))throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u53EA\u63A5\u53D7 --output - \u548C\u53EF\u9009 --generated-at <ISO UTC>\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto catalog export --output -\u3002"})}let i=e.indexOf("--output");if(i<0||e[i+1]!=="-")throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u5FC5\u987B\u901A\u8FC7 --output - \u8F93\u51FA\u53EA\u8BFB\u6295\u5F71\uFF1BDyyto \u4E0D\u76F4\u63A5\u6539\u5199\u6D88\u8D39\u8005\u914D\u7F6E\u3002",exitCode:2,nextStep:"\u5C06 stdout \u4EA4\u7ED9\u90E8\u7F72\u63A7\u5236\u9762\u7684\u539F\u5B50\u5FEB\u7167\u5BFC\u5165\u547D\u4EE4\u3002"});let a=e.indexOf("--generated-at"),o=a<0?new Date().toISOString():e[a+1];Re.stdout.write(vh(await Ih({generatedAt:o})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u9700\u8981\u8FC1\u79FB\u5230\u6839\u5171\u4EAB\u9501\u7684\u5E94\u7528\u3002"});let a=await cy({projectRoot:i});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:a})}
|
|
336
|
+
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${a.plan.planId}
|
|
337
|
+
\u72B6\u6001\uFF1A${a.plan.state}
|
|
338
|
+
Next\uFF1Adyyto topology apply --project ${i} --approve ${a.plan.planId}
|
|
339
|
+
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],a=e.indexOf("--approve"),o=e[a+1];if(n<0||!i||a<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u5BA1\u6838\u5E76\u4F7F\u7528\u7CBE\u786E Plan ID\u3002"});let s=await ly({projectRoot:i,approvedPlanId:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
|
|
320
340
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
321
|
-
Next\uFF1Adyyto topology inspect --project ${
|
|
322
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),
|
|
323
|
-
`:`Recovery Override Plan\uFF1A${
|
|
324
|
-
\u51B2\u7A81\uFF1A${
|
|
325
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),
|
|
341
|
+
Next\uFF1Adyyto topology inspect --project ${i}
|
|
342
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u53D1\u751F\u5171\u4EAB\u4E8B\u52A1\u51B2\u7A81\u7684\u5355\u5143\u9879\u76EE\u3002"});let a=await ty({projectRoot:i});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:a}})}
|
|
343
|
+
`:`Recovery Override Plan\uFF1A${a.planId}
|
|
344
|
+
\u51B2\u7A81\uFF1A${a.conflicts.length}
|
|
345
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],a=e.indexOf("--approve"),o=e[a+1];if(n<0||!i||a<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u7CBE\u786E Recovery Override Plan ID\u3002"});let s=await ry({projectRoot:i,approvedPlanId:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
|
|
326
346
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
327
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),
|
|
347
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],a=e.indexOf("--maximum-bytes"),o=Number(e[a+1]);if(n<0||i===void 0||a<0||!Number.isSafeInteger(o)||o<1)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Plan \u9700\u8981 --workspace \u548C\u6B63\u6574\u6570 --maximum-bytes\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u5DF2\u6279\u51C6\u7684\u5BB9\u91CF\u4E0A\u9650\u91CD\u65B0\u751F\u6210 Build Plan\u3002"});let s=await Xh({workspaceRoot:i,maximumBytes:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
|
|
328
348
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
329
349
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
330
350
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
331
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),
|
|
351
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],a=e.indexOf("--approve"),o=e[a+1];if(n<0||i===void 0||a<0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Apply \u9700\u8981 --workspace \u548C\u7CBE\u786E --approve Plan ID\u3002",exitCode:2,nextStep:"\u68C0\u67E5\u4E0D\u53EF\u53D8 Build Plan\u3002"});let s=await Zh({workspaceRoot:i,approvedPlanId:o,warmup:Hh()});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
|
|
332
352
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
333
353
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
334
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),
|
|
335
|
-
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${
|
|
336
|
-
Bundle\uFF1A${
|
|
354
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],a=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||i===void 0||a.length===0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let o=await Uh({workspaceRoot:i,packageRoots:a});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:o}})}
|
|
355
|
+
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${o.planId}
|
|
356
|
+
Bundle\uFF1A${o.bundle.bundleId}
|
|
337
357
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
338
|
-
Next\uFF1Adyyto artifacts apply --workspace ${
|
|
339
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),
|
|
358
|
+
Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${o.planId}
|
|
359
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],a=e.indexOf("--approve"),o=e[a+1];if(n<0||i===void 0||a<0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts apply requires --workspace and an exact --approve Plan ID.",exitCode:2,nextStep:"Review and approve the immutable Artifact Plan."});let s=await qh({workspaceRoot:i,approvedPlanId:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
|
|
340
360
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
341
361
|
Channel\uFF1Adevelopment
|
|
342
|
-
Next\uFF1Adyyto artifacts serve --workspace ${
|
|
343
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),
|
|
362
|
+
Next\uFF1Adyyto artifacts serve --workspace ${i} --bundle ${s.bundleId} --port 4873
|
|
363
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],a=e.indexOf("--bundle"),o=e[a+1],s=e.flatMap((f,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),l=Number(e[c+1]);if(n<0||i===void 0||a<0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o)||s.some(f=>!/^sha256:[a-f0-9]{64}$/u.test(f))||c<0||!Number.isSafeInteger(l)||l<1||l>65535)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts serve requires --workspace, an exact --bundle digest, optional exact --fallback-bundle digests, and a fixed --port.",exitCode:2,nextStep:"Run dyyto --help."});let d=await xh({bundleRoot:Pt.resolve(i,".dyyto","package-artifacts",o),fallbackBundleRoots:s.map(f=>Pt.resolve(i,".dyyto","package-artifacts",f)),port:l});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:d.origin,bundleId:d.bundle.bundleId,fallbackBundleIds:d.fallbackBundles.map(f=>f.bundleId),channel:"development"}})}
|
|
344
364
|
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
|
|
345
365
|
\u4E3B Bundle\uFF1A${d.bundle.bundleId}
|
|
346
366
|
Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
|
|
347
367
|
Channel\uFF1Adevelopment
|
|
348
|
-
`,stderr:""});let p=async()=>{await d.close(),
|
|
368
|
+
`,stderr:""});let p=async()=>{await d.close(),Re.exit(0)};Re.once("SIGINT",p),Re.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1];if(n<0||i===void 0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let a=e.indexOf("--port"),o=a<0?void 0:Number(e[a+1]);if(o!==void 0&&(!Number.isSafeInteger(o)||o<1||o>65535))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await $h({workspaceRoot:i,...o===void 0?{}:{port:o}});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
|
|
349
369
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
350
|
-
`,stderr:""});let c=async()=>{await s.close(),
|
|
370
|
+
`,stderr:""});let c=async()=>{await s.close(),Re.exit(0)};Re.once("SIGINT",c),Re.once("SIGTERM",c),await new Promise(()=>{})}let r=await jh(e,await AN(e));Ce(ny(r.value,r.outputMode,r.human)),r.exitCode!==void 0&&(Re.exitCode=r.exitCode)}catch(r){if(Re.env.DYYTO_DEBUG==="1"&&r instanceof Error){let s=[],c=r.cause;for(;c instanceof Error;)s.push(c.stack??c.message),c=c.cause;Re.stderr.write(`${r.stack??r.message}${s.map(l=>`
|
|
351
371
|
Cause: ${l}`).join("")}
|
|
352
|
-
`)}let n=r;if(r instanceof ze)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"\u91CD\u65B0\u751F\u6210Bootstrap Plan\u5E76\u68C0\u67E5\u7528\u6237\u4FEE\u6539\u3002"});else if(r instanceof
|
|
372
|
+
`)}let n=r;if(r instanceof ze)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"\u91CD\u65B0\u751F\u6210Bootstrap Plan\u5E76\u68C0\u67E5\u7528\u6237\u4FEE\u6539\u3002"});else if(r instanceof ye)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof C)n=new T({code:r.code,message:r.message,exitCode:r.code==="RECOVERY_REQUIRED"?5:3,nextStep:r.code==="RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Run dyyto plan and approve the exact reviewable plan."});else if(r instanceof M)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof ve)n=new T({code:r.code,message:r.message,exitCode:r.code==="METADATA_RECOVERY_REQUIRED"?5:4,nextStep:r.code==="METADATA_RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Fix the verification failure, then run dyyto verify again."});else if(r instanceof H||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new T({code:s,message:s,exitCode:c?5:4,nextStep:c?"\u68C0\u67E5\u9879\u76EE\u6062\u590D\u72B6\u6001\u548C\u53D7\u4FE1 Registry \u540E\u91CD\u65B0\u751F\u6210 Plan\u3002":"\u68C0\u67E5 Package Source\u3001Receipt \u4E0E\u6279\u51C6\u7684 Plan\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}else if(r instanceof Me)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5 Bundle index\u3001tarball \u6458\u8981\u548C\u672C\u5730\u53EA\u8BFB\u7AEF\u53E3\u540E\u91CD\u8BD5\u3002"});else if(r instanceof J)n=new T({code:r.code,message:r.code,exitCode:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?5:4,nextStep:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?"Package \u6216 Bundle preimage \u5DF2\u53D8\u5316\uFF1B\u8BF7\u91CD\u65B0\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3002":"\u68C0\u67E5 package \u8F93\u5165\u548C Artifact Plan \u540E\u91CD\u8BD5\u3002"});else if(r instanceof fr)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u6838\u5BF9\u6279\u51C6\u7684 Bundle\u3001candidate Release \u4E0E loopback Registry \u53C2\u6570\u3002"});else if(r instanceof Ye)n=new T({code:r.code,message:r.code,exitCode:r.code==="RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT"?5:4,nextStep:"\u68C0\u67E5 Worker Build Plan\u3001workspace preimage \u4E0E\u5BB9\u91CF\u9650\u5236\u540E\u91CD\u8BD5\u3002"});else if(r instanceof Ee)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"Resolution Evidence \u672A\u901A\u8FC7\u4E25\u683C\u9A8C\u8BC1\uFF1B\u68C0\u67E5 importer\u3001package closure \u4E0E source binding\u3002"});else if(r instanceof ft)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5\u6839\u5171\u4EAB\u9501 importer\u3001\u5E94\u7528\u5C40\u90E8\u9501\u548C Plan preimage \u540E\u91CD\u65B0\u751F\u6210\u62D3\u6251\u8FC1\u79FB Plan\u3002"});else if(r instanceof Error&&/^RESOLUTION_WORKER_[A-Z_]+$/u.test(r.message))n=new T({code:r.message,message:r.message,exitCode:4,nextStep:"\u68C0\u67E5 Resolution Worker Receipt\u3001\u5171\u4EAB\u9501 trust facts \u4E0E persistent state\u3002"});else if(r instanceof Et)n=new T({code:r.code,message:r.message,exitCode:4,nextStep:r.nextStep??"\u68C0\u67E5 package.json \u89C4\u8303\u4E0E Registry \u6743\u9650\u540E\u91CD\u8BD5\u3002"});else if(r instanceof S){let s={NPM_AUTHENTICATION_REQUIRED:"\u8BF7\u5728 Plan \u7ED1\u5B9A\u7684\u53D7\u4FE1 CI \u4E2D\u68C0\u67E5 Trusted Publishing \u914D\u7F6E\uFF1B\u4E0D\u8981\u5411 Dyyto \u63D0\u4F9B token\u3002",NPM_AUTHORIZATION_DENIED:"\u8BF7\u7531 npm \u5305\u7EF4\u62A4\u8005\u68C0\u67E5\u5305\u6743\u9650\u4E0E\u53D1\u5E03\u7B56\u7565\uFF0C\u7136\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002",NPM_2FA_REQUIRED:"\u8BF7\u7531\u7EF4\u62A4\u8005\u5728 npmjs.com \u6216\u72EC\u7ACB\u4EA4\u4E92\u5F0F npm CLI \u5B8C\u6210\u53CC\u91CD\u9A8C\u8BC1\u3002",NPM_TRUSTED_PUBLISHER_MISMATCH:"\u8BF7\u6838\u5BF9 npm Trusted Publisher \u7684\u4ED3\u5E93\u3001\u5DE5\u4F5C\u6D41\u3001\u73AF\u5883\u4E0E stage-only action\u3002",NPM_TOKEN_POLICY_UNVERIFIED:"\u8BF7\u6539\u7528\u53D7\u652F\u6301\u7684 OIDC Trusted Publishing \u73AF\u5883\uFF1BProduction apply \u4E0D\u63A5\u53D7\u4F20\u7EDF token \u8DEF\u5F84\u3002",NPM_STAGE_UNSUPPORTED:"\u8BF7\u786E\u8BA4\u5305\u5DF2\u5B58\u5728\u3001\u8D26\u6237\u542F\u7528\u53CC\u91CD\u9A8C\u8BC1\uFF0C\u5E76\u4F7F\u7528 Node 24.18.0 \u4E0E npm 11.16.0\u3002",NPM_STAGE_CONFLICT:"\u8BF7\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7CBE\u786E\u7248\u672C\uFF1B\u4E0D\u8981\u8986\u76D6\u6216\u91CD\u590D\u6682\u5B58\u3002",NPM_PROVENANCE_REQUIRED:"\u8BF7\u6062\u590D Trusted Publishing provenance\uFF0C\u5E76\u518D\u6B21\u8FD0\u884C\u53EA\u8BFB inspect\u3002",NPM_REGISTRY_PROPAGATION_PENDING:"\u8BF7\u7A0D\u540E\u518D\u6B21\u8FD0\u884C delivery inspect\uFF1B\u4E0D\u8981\u91CD\u590D\u6682\u5B58\u3002",NPM_REGISTRY_OUTCOME_UNKNOWN:"\u8BF7\u5148\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7248\u672C\u4E0E stage \u72B6\u6001\uFF1B\u7ED3\u679C\u786E\u8BA4\u524D\u4E0D\u8981\u91CD\u8BD5\u5199\u64CD\u4F5C\u3002"},c=r.code==="DELIVERY_EXECUTION_UNKNOWN"||r.code==="NPM_REGISTRY_OUTCOME_UNKNOWN";n=new T({code:r.code,message:r.message,exitCode:c?5:4,nextStep:s[r.code]??(c?"Inspect the delivery target before retrying.":"Review the Delivery Plan and current project state.")})}let i=Ld(n),a=n instanceof T?n:i===null?null:new T(i),o={schemaVersion:1,ok:!1,error:{code:a?.code??"CLI_INTERNAL_ERROR",message:a?.message??"The CLI could not complete the command.",...a?.nextStep===void 0?{}:{nextStep:a.nextStep}}};Ce(iy(o,t)),Re.exitCode=a?.exitCode??1}}export{mL as runCommand};
|