@aipt/cli 0.1.13 → 0.1.14

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.
@@ -1,127 +1,127 @@
1
- import{a as E,b as Fr,c as Rn,d as md,e as L,f as gd,g as hd,h as yd,i as wd,j as Id}from"./chunk.js";var En=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 _n=class{};K._CodeOrName=_n;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var or=class extends _n{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=or;var Ze=class extends _n{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 or&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=Ze;K.nil=new Ze("");function vd(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Mo(r,t[n]),r.push(e[++n]);return new Ze(r)}K._=vd;var Vo=new Ze("+");function bd(e,...t){let r=[An(e[0])],n=0;for(;n<t.length;)r.push(Vo),Mo(r,t[n]),r.push(Vo,An(e[++n]));return qh(r),new Ze(r)}K.str=bd;function Mo(e,t){t instanceof Ze?e.push(...t._items):t instanceof or?e.push(t):e.push(Jh(t))}K.addCodeArg=Mo;function qh(e){let t=1;for(;t<e.length-1;){if(e[t]===Vo){let r=Bh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Bh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof or||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 or))return`"${e}${t.slice(1)}`}function zh(e,t){return t.emptyStr()?e:e.emptyStr()?t:bd`${e}${t}`}K.strConcat=zh;function Jh(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:An(Array.isArray(e)?e.join(","):e)}function Wh(e){return new Ze(An(e))}K.stringify=Wh;function An(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=An;function Gh(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new Ze(`.${e}`):vd`[${e}]`}K.getProperty=Gh;function Kh(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new Ze(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=Kh;function Yh(e){return new Ze(e.toString())}K.regexpCode=Yh});var qo=E(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.ValueScope=Fe.ValueScopeName=Fe.Scope=Fe.varKinds=Fe.UsedValueState=void 0;var Ue=En(),Uo=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ua;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ua||(Fe.UsedValueState=Ua={}));Fe.varKinds={const:new Ue.Name("const"),let:new Ue.Name("let"),var:new Ue.Name("var")};var Fa=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Ue.Name?t:this.name(t)}name(t){return new Ue.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}}};Fe.Scope=Fa;var qa=class extends Ue.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Ue._)`.${new Ue.Name(r)}[${n}]`}};Fe.ValueScopeName=qa;var Hh=(0,Ue._)`\n`,Fo=class extends Fa{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Hh:Ue.nil}}get(){return this._scope}name(t){return new qa(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 a=this.toName(t),{prefix:i}=a,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let l=s.get(o);if(l)return l}else s=this._values[i]=new Map;s.set(o,a);let c=this._scope[i]||(this._scope[i]=[]),d=c.length;return c[d]=r.ref,a.setValue(r,{property:i,itemIndex:d}),a}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,Ue._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(t,r,n={},a){let i=Ue.nil;for(let o in t){let s=t[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(d=>{if(c.has(d))return;c.set(d,Ua.Started);let l=r(d);if(l){let p=this.opts.es5?Fe.varKinds.var:Fe.varKinds.const;i=(0,Ue._)`${i}${p} ${d} = ${l};${this.opts._n}`}else if(l=a?.(d))i=(0,Ue._)`${i}${l}${this.opts._n}`;else throw new Uo(d);c.set(d,Ua.Completed)})}return i}};Fe.ValueScope=Fo});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=En(),pt=qo(),Ft=En();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Ft._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Ft.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Ft.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Ft.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Ft.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Ft.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Ft.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Ft.Name}});var Wa=qo();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return Wa.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return Wa.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return Wa.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return Wa.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 Pt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Bo=class extends Pt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?pt.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Br(this.rhs,t,r)),this}get names(){return this.rhs instanceof B._CodeOrName?this.rhs.names:{}}},Ba=class extends Pt{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=Br(this.rhs,t,r),this}get names(){let t=this.lhs instanceof B.Name?{}:{...this.lhs.names};return Ja(t,this.rhs)}},zo=class extends Ba{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Jo=class extends Pt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Wo=class extends Pt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Go=class extends Pt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Ko=class extends Pt{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=Br(this.code,t,r),this}get names(){return this.code instanceof B._CodeOrName?this.code.names:{}}},Pn=class extends Pt{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,a=n.length;for(;a--;){let i=n[a];i.optimizeNames(t,r)||(Xh(t,i.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>lr(t,r.names),{})}},Nt=class extends Pn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Yo=class extends Pn{},qr=class extends Nt{};qr.kind="else";var sr=class e extends Nt{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 qr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(kd(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=Br(this.condition,t,r),this}get names(){let t=super.names;return Ja(t,this.condition),this.else&&lr(t,this.else.names),t}};sr.kind="if";var cr=class extends Nt{};cr.kind="for";var Ho=class extends cr{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=Br(this.iteration,t,r),this}get names(){return lr(super.names,this.iteration.names)}},Xo=class extends cr{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?pt.varKinds.var:this.varKind,{name:n,from:a,to:i}=this;return`for(${r} ${n}=${a}; ${n}<${i}; ${n}++)`+super.render(t)}get names(){let t=Ja(super.names,this.from);return Ja(t,this.to)}},za=class extends cr{constructor(t,r,n,a){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=a}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=Br(this.iterable,t,r),this}get names(){return lr(super.names,this.iterable.names)}},Nn=class extends Nt{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)}};Nn.kind="func";var On=class extends Pn{render(t){return"return "+super.render(t)}};On.kind="return";var Zo=class extends Nt{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,a;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(a=this.finally)===null||a===void 0||a.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&lr(t,this.catch.names),this.finally&&lr(t,this.finally.names),t}},Sn=class extends Nt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Sn.kind="catch";var Dn=class extends Nt{render(t){return"finally"+super.render(t)}};Dn.kind="finally";var Qo=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
2
- `:""},this._extScope=t,this._scope=new pt.Scope({parent:t}),this._nodes=[new Yo]}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,a){let i=this._scope.toName(r);return n!==void 0&&a&&(this._constants[i.str]=n),this._leafNode(new Bo(t,i,n)),i}const(t,r,n){return this._def(pt.varKinds.const,t,r,n)}let(t,r,n){return this._def(pt.varKinds.let,t,r,n)}var(t,r,n){return this._def(pt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Ba(t,r,n))}add(t,r){return this._leafNode(new zo(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new Ko(t)),this}object(...t){let r=["{"];for(let[n,a]of t)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,B.addCodeArg)(r,a));return r.push("}"),new B._Code(r)}if(t,r,n){if(this._blockNode(new sr(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 sr(t))}else(){return this._elseNode(new qr)}endIf(){return this._endBlockNode(sr,qr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ho(t),r)}forRange(t,r,n,a,i=this.opts.es5?pt.varKinds.var:pt.varKinds.let){let o=this._scope.toName(t);return this._for(new Xo(i,o,r,n),()=>a(o))}forOf(t,r,n,a=pt.varKinds.const){let i=this._scope.toName(t);if(this.opts.es5){let o=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${o}.length`,s=>{this.var(i,(0,B._)`${o}[${s}]`),n(i)})}return this._for(new za("of",a,i,r),()=>n(i))}forIn(t,r,n,a=this.opts.es5?pt.varKinds.var:pt.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 za("in",a,i,r),()=>n(i))}endFor(){return this._endBlockNode(cr)}label(t){return this._leafNode(new Jo(t))}break(t){return this._leafNode(new Wo(t))}return(t){let r=new On;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(On)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new Zo;if(this._blockNode(a),this.code(t),r){let i=this.name("e");this._currNode=a.catch=new Sn(i),r(i)}return n&&(this._currNode=a.finally=new Dn,this.code(n)),this._endBlockNode(Sn,Dn)}throw(t){return this._leafNode(new Go(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,a){return this._blockNode(new Nn(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(Nn)}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 sr))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=Qo;function lr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Ja(e,t){return t instanceof B._CodeOrName?lr(e,t.names):e}function Br(e,t,r){if(e instanceof B.Name)return n(e);if(!a(e))return e;return new B._Code(e._items.reduce((i,o)=>(o instanceof B.Name&&(o=n(o)),o instanceof B._Code?i.push(...o._items):i.push(o),i),[]));function n(i){let o=r[i.str];return o===void 0||t[i.str]!==1?i:(delete t[i.str],o)}function a(i){return i instanceof B._Code&&i._items.some(o=>o instanceof B.Name&&t[o.str]===1&&r[o.str]!==void 0)}}function Xh(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function kd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${es(e)}`}U.not=kd;var Zh=Rd(U.operators.AND);function Qh(...e){return e.reduce(Zh)}U.and=Qh;var ey=Rd(U.operators.OR);function ty(...e){return e.reduce(ey)}U.or=ty;function Rd(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${es(t)} ${e} ${es(r)}`}function es(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(),ry=En();function ny(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=ny;function ay(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Ed(e,t),!Pd(t,e.self.RULES.all))}F.alwaysValidSchema=ay;function Ed(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let a=n.RULES.keywords;for(let i in t)a[i]||Sd(e,`unknown keyword: "${i}"`)}F.checkUnknownRules=Ed;function Pd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=Pd;function iy(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=iy;function oy({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){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=oy;function sy(e){return Nd(decodeURIComponent(e))}F.unescapeFragment=sy;function cy(e){return encodeURIComponent(rs(e))}F.escapeFragment=cy;function rs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=rs;function Nd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Nd;function ly(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=ly;function _d({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,i,o,s)=>{let c=o===void 0?i:o instanceof ne.Name?(i instanceof ne.Name?e(a,i,o):t(a,i,o),o):i instanceof ne.Name?(t(a,o,i),i):r(i,o);return s===ne.Name&&!(c instanceof ne.Name)?n(a,c):c}}F.mergeEvaluated={props:_d({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} || {}`),ns(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Od}),items:_d({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 Od(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ne._)`{}`);return t!==void 0&&ns(e,r,t),r}F.evaluatedPropsToName=Od;function ns(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ne._)`${t}${(0,ne.getProperty)(n)}`,!0))}F.setEvaluated=ns;var Ad={};function dy(e,t){return e.scopeValue("func",{ref:t,code:Ad[t.code]||(Ad[t.code]=new ry._Code(t.code))})}F.useFunc=dy;var ts;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ts||(F.Type=ts={}));function py(e,t,r){if(e instanceof ne.Name){let n=t===ts.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():"/"+rs(e)}F.getErrorPath=py;function Sd(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=Sd});var Qe=E(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});var Se=x(),uy={data:new Se.Name("data"),valCxt:new Se.Name("valCxt"),instancePath:new Se.Name("instancePath"),parentData:new Se.Name("parentData"),parentDataProperty:new Se.Name("parentDataProperty"),rootData:new Se.Name("rootData"),dynamicAnchors:new Se.Name("dynamicAnchors"),vErrors:new Se.Name("vErrors"),errors:new Se.Name("errors"),this:new Se.Name("this"),self:new Se.Name("self"),scope:new Se.Name("scope"),json:new Se.Name("json"),jsonPos:new Se.Name("jsonPos"),jsonLen:new Se.Name("jsonLen"),jsonPart:new Se.Name("jsonPart")};as.default=uy});var jn=E(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.extendErrors=De.resetErrorsCount=De.reportExtraError=De.reportError=De.keyword$DataError=De.keywordError=void 0;var W=x(),Ga=q(),xe=Qe();De.keywordError={message:({keyword:e})=>(0,W.str)`must pass "${e}" keyword validation`};De.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,W.str)`"${e}" keyword must be ${t} ($data)`:(0,W.str)`"${e}" keyword is invalid ($data)`};function fy(e,t=De.keywordError,r,n){let{it:a}=e,{gen:i,compositeRule:o,allErrors:s}=a,c=$d(e,t,r);n??(o||s)?Dd(i,c):jd(a,(0,W._)`[${c}]`)}De.reportError=fy;function my(e,t=De.keywordError,r){let{it:n}=e,{gen:a,compositeRule:i,allErrors:o}=n,s=$d(e,t,r);Dd(a,s),i||o||jd(n,xe.default.vErrors)}De.reportExtraError=my;function gy(e,t){e.assign(xe.default.errors,t),e.if((0,W._)`${xe.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,W._)`${xe.default.vErrors}.length`,t),()=>e.assign(xe.default.vErrors,null)))}De.resetErrorsCount=gy;function hy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:i}){if(a===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",a,xe.default.errors,s=>{e.const(o,(0,W._)`${xe.default.vErrors}[${s}]`),e.if((0,W._)`${o}.instancePath === undefined`,()=>e.assign((0,W._)`${o}.instancePath`,(0,W.strConcat)(xe.default.instancePath,i.errorPath))),e.assign((0,W._)`${o}.schemaPath`,(0,W.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,W._)`${o}.schema`,r),e.assign((0,W._)`${o}.data`,n))})}De.extendErrors=hy;function Dd(e,t){let r=e.const("err",t);e.if((0,W._)`${xe.default.vErrors} === null`,()=>e.assign(xe.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${xe.default.vErrors}.push(${r})`),e.code((0,W._)`${xe.default.errors}++`)}function jd(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,W._)`new ${e.ValidationError}(${t})`):(r.assign((0,W._)`${n}.errors`,t),r.return(!1))}var dr={keyword:new W.Name("keyword"),schemaPath:new W.Name("schemaPath"),params:new W.Name("params"),propertyName:new W.Name("propertyName"),message:new W.Name("message"),schema:new W.Name("schema"),parentSchema:new W.Name("parentSchema")};function $d(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,W._)`{}`:yy(e,t,r)}function yy(e,t,r={}){let{gen:n,it:a}=e,i=[wy(a,r),Iy(e,r)];return vy(e,t,i),n.object(...i)}function wy({errorPath:e},{instancePath:t}){let r=t?(0,W.str)`${e}${(0,Ga.getErrorPath)(t,Ga.Type.Str)}`:e;return[xe.default.instancePath,(0,W.strConcat)(xe.default.instancePath,r)]}function Iy({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,W.str)`${t}/${e}`;return r&&(a=(0,W.str)`${a}${(0,Ga.getErrorPath)(r,Ga.Type.Str)}`),[dr.schemaPath,a]}function vy(e,{params:t,message:r},n){let{keyword:a,data:i,schemaValue:o,it:s}=e,{opts:c,propertyName:d,topSchemaRef:l,schemaPath:p}=s;n.push([dr.keyword,a],[dr.params,typeof t=="function"?t(e):t||(0,W._)`{}`]),c.messages&&n.push([dr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([dr.schema,o],[dr.parentSchema,(0,W._)`${l}${p}`],[xe.default.data,i]),d&&n.push([dr.propertyName,d])}});var Td=E(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.boolOrEmptySchema=zr.topBoolOrEmptySchema=void 0;var by=jn(),ky=x(),Ry=Qe(),_y={message:"boolean schema is false"};function Ay(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Cd(e,!1):typeof r=="object"&&r.$async===!0?t.return(Ry.default.data):(t.assign((0,ky._)`${n}.errors`,null),t.return(!0))}zr.topBoolOrEmptySchema=Ay;function Ey(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Cd(e)):r.var(t,!0)}zr.boolOrEmptySchema=Ey;function Cd(e,t){let{gen:r,data:n}=e,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,by.reportError)(a,_y,void 0,t)}});var is=E(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.getRules=Jr.isJSONType=void 0;var Py=["string","number","integer","boolean","null","object","array"],Ny=new Set(Py);function Oy(e){return typeof e=="string"&&Ny.has(e)}Jr.isJSONType=Oy;function Sy(){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:{}}}Jr.getRules=Sy});var os=E(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.shouldUseRule=qt.shouldUseGroup=qt.schemaHasRulesForType=void 0;function Dy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ld(e,n)}qt.schemaHasRulesForType=Dy;function Ld(e,t){return t.rules.some(r=>xd(e,r))}qt.shouldUseGroup=Ld;function xd(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))}qt.shouldUseRule=xd});var $n=E(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.reportTypeError=je.checkDataTypes=je.checkDataType=je.coerceAndCheckDataType=je.getJSONTypes=je.getSchemaTypes=je.DataType=void 0;var jy=is(),$y=os(),Cy=jn(),V=x(),Vd=q(),Wr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Wr||(je.DataType=Wr={}));function Ty(e){let t=Md(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}je.getSchemaTypes=Ty;function Md(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(jy.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}je.getJSONTypes=Md;function Ly(e,t){let{gen:r,data:n,opts:a}=e,i=xy(t,a.coerceTypes),o=t.length>0&&!(i.length===0&&t.length===1&&(0,$y.schemaHasRulesForType)(e,t[0]));if(o){let s=cs(t,n,a.strictNumbers,Wr.Wrong);r.if(s,()=>{i.length?Vy(e,t,i):ls(e)})}return o}je.coerceAndCheckDataType=Ly;var Ud=new Set(["string","number","integer","boolean","null"]);function xy(e,t){return t?e.filter(r=>Ud.has(r)||t==="array"&&r==="array"):[]}function Vy(e,t,r){let{gen:n,data:a,opts:i}=e,o=n.let("dataType",(0,V._)`typeof ${a}`),s=n.let("coerced",(0,V._)`undefined`);i.coerceTypes==="array"&&n.if((0,V._)`${o} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,V._)`${a}[0]`).assign(o,(0,V._)`typeof ${a}`).if(cs(t,a,i.strictNumbers),()=>n.assign(s,a))),n.if((0,V._)`${s} !== undefined`);for(let d of r)(Ud.has(d)||d==="array"&&i.coerceTypes==="array")&&c(d);n.else(),ls(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(a,s),My(e,s)});function c(d){switch(d){case"string":n.elseIf((0,V._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,V._)`"" + ${a}`).elseIf((0,V._)`${a} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${o} == "boolean" || ${a} === null
1
+ import{a as E,b as qr,c as Rn,d as md,e as L,f as gd,g as hd,h as yd,i as wd,j as Id}from"./chunk.js";var En=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 _n=class{};K._CodeOrName=_n;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var or=class extends _n{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=or;var Ze=class extends _n{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 or&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=Ze;K.nil=new Ze("");function vd(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Mo(r,t[n]),r.push(e[++n]);return new Ze(r)}K._=vd;var Vo=new Ze("+");function bd(e,...t){let r=[An(e[0])],n=0;for(;n<t.length;)r.push(Vo),Mo(r,t[n]),r.push(Vo,An(e[++n]));return qh(r),new Ze(r)}K.str=bd;function Mo(e,t){t instanceof Ze?e.push(...t._items):t instanceof or?e.push(t):e.push(Jh(t))}K.addCodeArg=Mo;function qh(e){let t=1;for(;t<e.length-1;){if(e[t]===Vo){let r=Bh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Bh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof or||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 or))return`"${e}${t.slice(1)}`}function zh(e,t){return t.emptyStr()?e:e.emptyStr()?t:bd`${e}${t}`}K.strConcat=zh;function Jh(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:An(Array.isArray(e)?e.join(","):e)}function Wh(e){return new Ze(An(e))}K.stringify=Wh;function An(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=An;function Gh(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new Ze(`.${e}`):vd`[${e}]`}K.getProperty=Gh;function Kh(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new Ze(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=Kh;function Yh(e){return new Ze(e.toString())}K.regexpCode=Yh});var qo=E(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.ValueScope=qe.ValueScopeName=qe.Scope=qe.varKinds=qe.UsedValueState=void 0;var Fe=En(),Uo=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ua;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ua||(qe.UsedValueState=Ua={}));qe.varKinds={const:new Fe.Name("const"),let:new Fe.Name("let"),var:new Fe.Name("var")};var Fa=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Fe.Name?t:this.name(t)}name(t){return new Fe.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}}};qe.Scope=Fa;var qa=class extends Fe.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Fe._)`.${new Fe.Name(r)}[${n}]`}};qe.ValueScopeName=qa;var Hh=(0,Fe._)`\n`,Fo=class extends Fa{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Hh:Fe.nil}}get(){return this._scope}name(t){return new qa(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 a=this.toName(t),{prefix:i}=a,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let d=s.get(o);if(d)return d}else s=this._values[i]=new Map;s.set(o,a);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,a.setValue(r,{property:i,itemIndex:l}),a}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,Fe._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(t,r,n={},a){let i=Fe.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,Ua.Started);let d=r(l);if(d){let p=this.opts.es5?qe.varKinds.var:qe.varKinds.const;i=(0,Fe._)`${i}${p} ${l} = ${d};${this.opts._n}`}else if(d=a?.(l))i=(0,Fe._)`${i}${d}${this.opts._n}`;else throw new Uo(l);c.set(l,Ua.Completed)})}return i}};qe.ValueScope=Fo});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=En(),pt=qo(),Ft=En();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Ft._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Ft.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Ft.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Ft.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Ft.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Ft.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Ft.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Ft.Name}});var Wa=qo();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return Wa.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return Wa.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return Wa.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return Wa.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 Pt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Bo=class extends Pt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?pt.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+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 B._CodeOrName?this.rhs.names:{}}},Ba=class extends Pt{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=zr(this.rhs,t,r),this}get names(){let t=this.lhs instanceof B.Name?{}:{...this.lhs.names};return Ja(t,this.rhs)}},zo=class extends Ba{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Jo=class extends Pt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Wo=class extends Pt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Go=class extends Pt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Ko=class extends Pt{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 B._CodeOrName?this.code.names:{}}},Pn=class extends Pt{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,a=n.length;for(;a--;){let i=n[a];i.optimizeNames(t,r)||(Xh(t,i.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>lr(t,r.names),{})}},Nt=class extends Pn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Yo=class extends Pn{},Br=class extends Nt{};Br.kind="else";var sr=class e extends Nt{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 Br(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(kd(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 Ja(t,this.condition),this.else&&lr(t,this.else.names),t}};sr.kind="if";var cr=class extends Nt{};cr.kind="for";var Ho=class extends cr{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 lr(super.names,this.iteration.names)}},Xo=class extends cr{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?pt.varKinds.var:this.varKind,{name:n,from:a,to:i}=this;return`for(${r} ${n}=${a}; ${n}<${i}; ${n}++)`+super.render(t)}get names(){let t=Ja(super.names,this.from);return Ja(t,this.to)}},za=class extends cr{constructor(t,r,n,a){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=a}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 lr(super.names,this.iterable.names)}},Nn=class extends Nt{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)}};Nn.kind="func";var On=class extends Pn{render(t){return"return "+super.render(t)}};On.kind="return";var Zo=class extends Nt{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,a;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(a=this.finally)===null||a===void 0||a.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&lr(t,this.catch.names),this.finally&&lr(t,this.finally.names),t}},Sn=class extends Nt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Sn.kind="catch";var Dn=class extends Nt{render(t){return"finally"+super.render(t)}};Dn.kind="finally";var Qo=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
2
+ `:""},this._extScope=t,this._scope=new pt.Scope({parent:t}),this._nodes=[new Yo]}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,a){let i=this._scope.toName(r);return n!==void 0&&a&&(this._constants[i.str]=n),this._leafNode(new Bo(t,i,n)),i}const(t,r,n){return this._def(pt.varKinds.const,t,r,n)}let(t,r,n){return this._def(pt.varKinds.let,t,r,n)}var(t,r,n){return this._def(pt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Ba(t,r,n))}add(t,r){return this._leafNode(new zo(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new Ko(t)),this}object(...t){let r=["{"];for(let[n,a]of t)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,B.addCodeArg)(r,a));return r.push("}"),new B._Code(r)}if(t,r,n){if(this._blockNode(new sr(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 sr(t))}else(){return this._elseNode(new Br)}endIf(){return this._endBlockNode(sr,Br)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ho(t),r)}forRange(t,r,n,a,i=this.opts.es5?pt.varKinds.var:pt.varKinds.let){let o=this._scope.toName(t);return this._for(new Xo(i,o,r,n),()=>a(o))}forOf(t,r,n,a=pt.varKinds.const){let i=this._scope.toName(t);if(this.opts.es5){let o=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${o}.length`,s=>{this.var(i,(0,B._)`${o}[${s}]`),n(i)})}return this._for(new za("of",a,i,r),()=>n(i))}forIn(t,r,n,a=this.opts.es5?pt.varKinds.var:pt.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 za("in",a,i,r),()=>n(i))}endFor(){return this._endBlockNode(cr)}label(t){return this._leafNode(new Jo(t))}break(t){return this._leafNode(new Wo(t))}return(t){let r=new On;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(On)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new Zo;if(this._blockNode(a),this.code(t),r){let i=this.name("e");this._currNode=a.catch=new Sn(i),r(i)}return n&&(this._currNode=a.finally=new Dn,this.code(n)),this._endBlockNode(Sn,Dn)}throw(t){return this._leafNode(new Go(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,a){return this._blockNode(new Nn(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(Nn)}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 sr))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=Qo;function lr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Ja(e,t){return t instanceof B._CodeOrName?lr(e,t.names):e}function zr(e,t,r){if(e instanceof B.Name)return n(e);if(!a(e))return e;return new B._Code(e._items.reduce((i,o)=>(o instanceof B.Name&&(o=n(o)),o instanceof B._Code?i.push(...o._items):i.push(o),i),[]));function n(i){let o=r[i.str];return o===void 0||t[i.str]!==1?i:(delete t[i.str],o)}function a(i){return i instanceof B._Code&&i._items.some(o=>o instanceof B.Name&&t[o.str]===1&&r[o.str]!==void 0)}}function Xh(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function kd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${es(e)}`}U.not=kd;var Zh=Rd(U.operators.AND);function Qh(...e){return e.reduce(Zh)}U.and=Qh;var ey=Rd(U.operators.OR);function ty(...e){return e.reduce(ey)}U.or=ty;function Rd(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${es(t)} ${e} ${es(r)}`}function es(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(),ry=En();function ny(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=ny;function ay(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Ed(e,t),!Pd(t,e.self.RULES.all))}F.alwaysValidSchema=ay;function Ed(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let a=n.RULES.keywords;for(let i in t)a[i]||Sd(e,`unknown keyword: "${i}"`)}F.checkUnknownRules=Ed;function Pd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=Pd;function iy(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=iy;function oy({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){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=oy;function sy(e){return Nd(decodeURIComponent(e))}F.unescapeFragment=sy;function cy(e){return encodeURIComponent(rs(e))}F.escapeFragment=cy;function rs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=rs;function Nd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Nd;function ly(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=ly;function _d({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,i,o,s)=>{let c=o===void 0?i:o instanceof ne.Name?(i instanceof ne.Name?e(a,i,o):t(a,i,o),o):i instanceof ne.Name?(t(a,o,i),i):r(i,o);return s===ne.Name&&!(c instanceof ne.Name)?n(a,c):c}}F.mergeEvaluated={props:_d({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} || {}`),ns(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Od}),items:_d({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 Od(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ne._)`{}`);return t!==void 0&&ns(e,r,t),r}F.evaluatedPropsToName=Od;function ns(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ne._)`${t}${(0,ne.getProperty)(n)}`,!0))}F.setEvaluated=ns;var Ad={};function dy(e,t){return e.scopeValue("func",{ref:t,code:Ad[t.code]||(Ad[t.code]=new ry._Code(t.code))})}F.useFunc=dy;var ts;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ts||(F.Type=ts={}));function py(e,t,r){if(e instanceof ne.Name){let n=t===ts.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():"/"+rs(e)}F.getErrorPath=py;function Sd(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=Sd});var Qe=E(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});var je=x(),uy={data:new je.Name("data"),valCxt:new je.Name("valCxt"),instancePath:new je.Name("instancePath"),parentData:new je.Name("parentData"),parentDataProperty:new je.Name("parentDataProperty"),rootData:new je.Name("rootData"),dynamicAnchors:new je.Name("dynamicAnchors"),vErrors:new je.Name("vErrors"),errors:new je.Name("errors"),this:new je.Name("this"),self:new je.Name("self"),scope:new je.Name("scope"),json:new je.Name("json"),jsonPos:new je.Name("jsonPos"),jsonLen:new je.Name("jsonLen"),jsonPart:new je.Name("jsonPart")};as.default=uy});var jn=E($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.extendErrors=$e.resetErrorsCount=$e.reportExtraError=$e.reportError=$e.keyword$DataError=$e.keywordError=void 0;var W=x(),Ga=q(),Ve=Qe();$e.keywordError={message:({keyword:e})=>(0,W.str)`must pass "${e}" keyword validation`};$e.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,W.str)`"${e}" keyword must be ${t} ($data)`:(0,W.str)`"${e}" keyword is invalid ($data)`};function fy(e,t=$e.keywordError,r,n){let{it:a}=e,{gen:i,compositeRule:o,allErrors:s}=a,c=$d(e,t,r);n??(o||s)?Dd(i,c):jd(a,(0,W._)`[${c}]`)}$e.reportError=fy;function my(e,t=$e.keywordError,r){let{it:n}=e,{gen:a,compositeRule:i,allErrors:o}=n,s=$d(e,t,r);Dd(a,s),i||o||jd(n,Ve.default.vErrors)}$e.reportExtraError=my;function gy(e,t){e.assign(Ve.default.errors,t),e.if((0,W._)`${Ve.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,W._)`${Ve.default.vErrors}.length`,t),()=>e.assign(Ve.default.vErrors,null)))}$e.resetErrorsCount=gy;function hy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:i}){if(a===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",a,Ve.default.errors,s=>{e.const(o,(0,W._)`${Ve.default.vErrors}[${s}]`),e.if((0,W._)`${o}.instancePath === undefined`,()=>e.assign((0,W._)`${o}.instancePath`,(0,W.strConcat)(Ve.default.instancePath,i.errorPath))),e.assign((0,W._)`${o}.schemaPath`,(0,W.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,W._)`${o}.schema`,r),e.assign((0,W._)`${o}.data`,n))})}$e.extendErrors=hy;function Dd(e,t){let r=e.const("err",t);e.if((0,W._)`${Ve.default.vErrors} === null`,()=>e.assign(Ve.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${Ve.default.vErrors}.push(${r})`),e.code((0,W._)`${Ve.default.errors}++`)}function jd(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,W._)`new ${e.ValidationError}(${t})`):(r.assign((0,W._)`${n}.errors`,t),r.return(!1))}var dr={keyword:new W.Name("keyword"),schemaPath:new W.Name("schemaPath"),params:new W.Name("params"),propertyName:new W.Name("propertyName"),message:new W.Name("message"),schema:new W.Name("schema"),parentSchema:new W.Name("parentSchema")};function $d(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,W._)`{}`:yy(e,t,r)}function yy(e,t,r={}){let{gen:n,it:a}=e,i=[wy(a,r),Iy(e,r)];return vy(e,t,i),n.object(...i)}function wy({errorPath:e},{instancePath:t}){let r=t?(0,W.str)`${e}${(0,Ga.getErrorPath)(t,Ga.Type.Str)}`:e;return[Ve.default.instancePath,(0,W.strConcat)(Ve.default.instancePath,r)]}function Iy({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,W.str)`${t}/${e}`;return r&&(a=(0,W.str)`${a}${(0,Ga.getErrorPath)(r,Ga.Type.Str)}`),[dr.schemaPath,a]}function vy(e,{params:t,message:r},n){let{keyword:a,data:i,schemaValue:o,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([dr.keyword,a],[dr.params,typeof t=="function"?t(e):t||(0,W._)`{}`]),c.messages&&n.push([dr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([dr.schema,o],[dr.parentSchema,(0,W._)`${d}${p}`],[Ve.default.data,i]),l&&n.push([dr.propertyName,l])}});var Td=E(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.boolOrEmptySchema=Jr.topBoolOrEmptySchema=void 0;var by=jn(),ky=x(),Ry=Qe(),_y={message:"boolean schema is false"};function Ay(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Cd(e,!1):typeof r=="object"&&r.$async===!0?t.return(Ry.default.data):(t.assign((0,ky._)`${n}.errors`,null),t.return(!0))}Jr.topBoolOrEmptySchema=Ay;function Ey(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Cd(e)):r.var(t,!0)}Jr.boolOrEmptySchema=Ey;function Cd(e,t){let{gen:r,data:n}=e,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,by.reportError)(a,_y,void 0,t)}});var is=E(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.getRules=Wr.isJSONType=void 0;var Py=["string","number","integer","boolean","null","object","array"],Ny=new Set(Py);function Oy(e){return typeof e=="string"&&Ny.has(e)}Wr.isJSONType=Oy;function Sy(){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:{}}}Wr.getRules=Sy});var os=E(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.shouldUseRule=qt.shouldUseGroup=qt.schemaHasRulesForType=void 0;function Dy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ld(e,n)}qt.schemaHasRulesForType=Dy;function Ld(e,t){return t.rules.some(r=>xd(e,r))}qt.shouldUseGroup=Ld;function xd(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))}qt.shouldUseRule=xd});var $n=E(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.reportTypeError=Ce.checkDataTypes=Ce.checkDataType=Ce.coerceAndCheckDataType=Ce.getJSONTypes=Ce.getSchemaTypes=Ce.DataType=void 0;var jy=is(),$y=os(),Cy=jn(),V=x(),Vd=q(),Gr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Gr||(Ce.DataType=Gr={}));function Ty(e){let t=Md(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}Ce.getSchemaTypes=Ty;function Md(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(jy.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Ce.getJSONTypes=Md;function Ly(e,t){let{gen:r,data:n,opts:a}=e,i=xy(t,a.coerceTypes),o=t.length>0&&!(i.length===0&&t.length===1&&(0,$y.schemaHasRulesForType)(e,t[0]));if(o){let s=cs(t,n,a.strictNumbers,Gr.Wrong);r.if(s,()=>{i.length?Vy(e,t,i):ls(e)})}return o}Ce.coerceAndCheckDataType=Ly;var Ud=new Set(["string","number","integer","boolean","null"]);function xy(e,t){return t?e.filter(r=>Ud.has(r)||t==="array"&&r==="array"):[]}function Vy(e,t,r){let{gen:n,data:a,opts:i}=e,o=n.let("dataType",(0,V._)`typeof ${a}`),s=n.let("coerced",(0,V._)`undefined`);i.coerceTypes==="array"&&n.if((0,V._)`${o} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,V._)`${a}[0]`).assign(o,(0,V._)`typeof ${a}`).if(cs(t,a,i.strictNumbers),()=>n.assign(s,a))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(Ud.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),ls(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(a,s),My(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,V._)`"" + ${a}`).elseIf((0,V._)`${a} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${o} == "boolean" || ${a} === null
3
3
  || (${o} == "string" && ${a} && ${a} == +${a})`).assign(s,(0,V._)`+${a}`);return;case"integer":n.elseIf((0,V._)`${o} === "boolean" || ${a} === null
4
4
  || (${o} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(s,(0,V._)`+${a}`);return;case"boolean":n.elseIf((0,V._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(s,!1).elseIf((0,V._)`${a} === "true" || ${a} === 1`).assign(s,!0);return;case"null":n.elseIf((0,V._)`${a} === "" || ${a} === 0 || ${a} === false`),n.assign(s,null);return;case"array":n.elseIf((0,V._)`${o} === "string" || ${o} === "number"
5
- || ${o} === "boolean" || ${a} === null`).assign(s,(0,V._)`[${a}]`)}}}function My({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function ss(e,t,r,n=Wr.Correct){let a=n===Wr.Correct?V.operators.EQ:V.operators.NEQ,i;switch(e){case"null":return(0,V._)`${t} ${a} 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=o((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=o();break;default:return(0,V._)`typeof ${t} ${a} ${e}`}return n===Wr.Correct?i:(0,V.not)(i);function o(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}je.checkDataType=ss;function cs(e,t,r,n){if(e.length===1)return ss(e[0],t,r,n);let a,i=(0,Vd.toHash)(e);if(i.array&&i.object){let o=(0,V._)`typeof ${t} != "object"`;a=i.null?o:(0,V._)`!${t} || ${o}`,delete i.null,delete i.array,delete i.object}else a=V.nil;i.number&&delete i.integer;for(let o in i)a=(0,V.and)(a,ss(o,t,r,n));return a}je.checkDataTypes=cs;var Uy={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function ls(e){let t=Fy(e);(0,Cy.reportError)(t,Uy)}je.reportTypeError=ls;function Fy(e){let{gen:t,data:r,schema:n}=e,a=(0,Vd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var qd=E(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.assignDefaults=void 0;var Gr=x(),qy=q();function By(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)Fd(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,i)=>Fd(e,i,a.default))}Ka.assignDefaults=By;function Fd(e,t,r){let{gen:n,compositeRule:a,data:i,opts:o}=e;if(r===void 0)return;let s=(0,Gr._)`${i}${(0,Gr.getProperty)(t)}`;if(a){(0,qy.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,Gr._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,Gr._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,Gr._)`${s} = ${(0,Gr.stringify)(r)}`)}});var et=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 le=x(),ds=q(),Bt=Qe(),zy=q();function Jy(e,t){let{gen:r,data:n,it:a}=e;r.if(us(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,le._)`${t}`},!0),e.error()})}te.checkReportMissingProp=Jy;function Wy({gen:e,data:t,it:{opts:r}},n,a){return(0,le.or)(...n.map(i=>(0,le.and)(us(e,t,i,r.ownProperties),(0,le._)`${a} = ${i}`)))}te.checkMissingProp=Wy;function Gy(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=Gy;function Bd(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,le._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=Bd;function ps(e,t,r){return(0,le._)`${Bd(e)}.call(${t}, ${r})`}te.isOwnProperty=ps;function Ky(e,t,r,n){let a=(0,le._)`${t}${(0,le.getProperty)(r)} !== undefined`;return n?(0,le._)`${a} && ${ps(e,t,r)}`:a}te.propertyInData=Ky;function us(e,t,r,n){let a=(0,le._)`${t}${(0,le.getProperty)(r)} === undefined`;return n?(0,le.or)(a,(0,le.not)(ps(e,t,r))):a}te.noPropertyInData=us;function zd(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=zd;function Yy(e,t){return zd(t).filter(r=>!(0,ds.alwaysValidSchema)(e,t[r]))}te.schemaProperties=Yy;function Hy({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:i},it:o},s,c,d){let l=d?(0,le._)`${e}, ${t}, ${n}${a}`:t,p=[[Bt.default.instancePath,(0,le.strConcat)(Bt.default.instancePath,i)],[Bt.default.parentData,o.parentData],[Bt.default.parentDataProperty,o.parentDataProperty],[Bt.default.rootData,Bt.default.rootData]];o.opts.dynamicRef&&p.push([Bt.default.dynamicAnchors,Bt.default.dynamicAnchors]);let f=(0,le._)`${l}, ${r.object(...p)}`;return c!==le.nil?(0,le._)`${s}.call(${c}, ${f})`:(0,le._)`${s}(${f})`}te.callValidateCode=Hy;var Xy=(0,le._)`new RegExp`;function Zy({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:a}=t.code,i=a(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,le._)`${a.code==="new RegExp"?Xy:(0,zy.useFunc)(e,a)}(${r}, ${n})`})}te.usePattern=Zy;function Qy(e){let{gen:t,data:r,keyword:n,it:a}=e,i=t.name("valid");if(a.allErrors){let s=t.let("valid",!0);return o(()=>t.assign(s,!1)),s}return t.var(i,!0),o(()=>t.break()),i;function o(s){let c=t.const("len",(0,le._)`${r}.length`);t.forRange("i",0,c,d=>{e.subschema({keyword:n,dataProp:d,dataPropType:ds.Type.Num},i),t.if((0,le.not)(i),s)})}}te.validateArray=Qy;function ew(e){let{gen:t,schema:r,keyword:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,ds.alwaysValidSchema)(a,c))&&!a.opts.unevaluated)return;let o=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,d)=>{let l=e.subschema({keyword:n,schemaProp:d,compositeRule:!0},s);t.assign(o,(0,le._)`${o} || ${s}`),e.mergeValidEvaluated(l,s)||t.if((0,le.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}te.validateUnion=ew});var Gd=E(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.validateKeywordUsage=Rt.validSchemaType=Rt.funcKeywordCode=Rt.macroKeywordCode=void 0;var Ve=x(),pr=Qe(),tw=et(),rw=jn();function nw(e,t){let{gen:r,keyword:n,schema:a,parentSchema:i,it:o}=e,s=t.macro.call(o.self,a,i,o),c=Wd(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let d=r.name("valid");e.subschema({schema:s,schemaPath:Ve.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},d),e.pass(d,()=>e.error(!0))}Rt.macroKeywordCode=nw;function aw(e,t){var r;let{gen:n,keyword:a,schema:i,parentSchema:o,$data:s,it:c}=e;ow(c,t);let d=!s&&t.compile?t.compile.call(c.self,i,o,c):t.validate,l=Wd(n,a,d),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&&Jd(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&Jd(e),h(()=>iw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,Ve._)`await `),_=>n.assign(p,!1).if((0,Ve._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,Ve._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,Ve._)`${l}.errors`;return n.assign(w,null),g(Ve.nil),w}function g(w=t.async?(0,Ve._)`await `:Ve.nil){let _=c.opts.passContext?pr.default.this:pr.default.self,v=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Ve._)`${w}${(0,tw.callValidateCode)(e,l,_,v)}`,t.modifying)}function h(w){var _;n.if((0,Ve.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Rt.funcKeywordCode=aw;function Jd(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Ve._)`${n.parentData}[${n.parentDataProperty}]`))}function iw(e,t){let{gen:r}=e;r.if((0,Ve._)`Array.isArray(${t})`,()=>{r.assign(pr.default.vErrors,(0,Ve._)`${pr.default.vErrors} === null ? ${t} : ${pr.default.vErrors}.concat(${t})`).assign(pr.default.errors,(0,Ve._)`${pr.default.vErrors}.length`),(0,rw.extendErrors)(e)},()=>e.error())}function ow({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Wd(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,Ve.stringify)(r)})}function sw(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")}Rt.validSchemaType=sw;function cw({schema:e,opts:t,self:r,errSchemaPath:n},a,i){if(Array.isArray(a.keyword)?!a.keyword.includes(i):a.keyword!==i)throw new Error("ajv implementation error");let o=a.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${o.join(",")}`);if(a.validateSchema&&!a.validateSchema(e[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Rt.validateKeywordUsage=cw});var Yd=E(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.extendSubschemaMode=zt.extendSubschemaData=zt.getSubschema=void 0;var _t=x(),Kd=q();function lw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:i,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,_t._)`${e.schemaPath}${(0,_t.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,_t._)`${e.schemaPath}${(0,_t.getProperty)(t)}${(0,_t.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Kd.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||i===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:o,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}zt.getSubschema=lw;function dw(e,t,{dataProp:r,dataPropType:n,data:a,dataTypes:i,propertyName:o}){if(a!==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:d,dataPathArr:l,opts:p}=t,f=s.let("data",(0,_t._)`${t.data}${(0,_t.getProperty)(r)}`,!0);c(f),e.errorPath=(0,_t.str)`${d}${(0,Kd.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,_t._)`${r}`,e.dataPathArr=[...l,e.parentDataProperty]}if(a!==void 0){let d=a instanceof _t.Name?a:s.let("data",a,!0);c(d),o!==void 0&&(e.propertyName=o)}i&&(e.dataTypes=i);function c(d){e.data=d,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,d]}}zt.extendSubschemaData=dw;function pw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:i}){n!==void 0&&(e.compositeRule=n),a!==void 0&&(e.createErrors=a),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=r}zt.extendSubschemaMode=pw});var fs=E((T0,Hd)=>{"use strict";Hd.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,a,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))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(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=n;a--!==0;){var o=i[a];if(!e(t[o],r[o]))return!1}return!0}return t!==t&&r!==r}});var Zd=E((L0,Xd)=>{"use strict";var Jt=Xd.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};Ya(t,n,a,e,"",e)};Jt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Jt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Jt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Jt.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 Ya(e,t,r,n,a,i,o,s,c,d){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,a,i,o,s,c,d);for(var l in n){var p=n[l];if(Array.isArray(p)){if(l in Jt.arrayKeywords)for(var f=0;f<p.length;f++)Ya(e,t,r,p[f],a+"/"+l+"/"+f,i,a,l,n,f)}else if(l in Jt.propsKeywords){if(p&&typeof p=="object")for(var u in p)Ya(e,t,r,p[u],a+"/"+l+"/"+uw(u),i,a,l,n,u)}else(l in Jt.keywords||e.allKeys&&!(l in Jt.skipKeywords))&&Ya(e,t,r,p,a+"/"+l,i,a,l,n)}r(n,a,i,o,s,c,d)}}function uw(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Cn=E(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.getSchemaRefs=qe.resolveUrl=qe.normalizeId=qe._getFullPath=qe.getFullPath=qe.inlineRef=void 0;var fw=q(),mw=fs(),gw=Zd(),hw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function yw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!ms(e):t?Qd(e)<=t:!1}qe.inlineRef=yw;var ww=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ms(e){for(let t in e){if(ww.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(ms)||typeof r=="object"&&ms(r))return!0}return!1}function Qd(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!hw.has(r)&&(typeof e[r]=="object"&&(0,fw.eachItem)(e[r],n=>t+=Qd(n)),t===1/0))return 1/0}return t}function ep(e,t="",r){r!==!1&&(t=Kr(t));let n=e.parse(t);return tp(e,n)}qe.getFullPath=ep;function tp(e,t){return e.serialize(t).split("#")[0]+"#"}qe._getFullPath=tp;var Iw=/#\/?$/;function Kr(e){return e?e.replace(Iw,""):""}qe.normalizeId=Kr;function vw(e,t,r){return r=Kr(r),e.resolve(t,r)}qe.resolveUrl=vw;var bw=/^[a-z_][-a-z0-9._]*$/i;function kw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=Kr(e[r]||t),i={"":a},o=ep(n,a,!1),s={},c=new Set;return gw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=o+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(v){let A=this.opts.uriResolver.resolve;if(v=Kr(h?A(h,v):v),c.has(v))throw l(v);c.add(v);let I=this.refs[v];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?d(p,I.schema,v):v!==Kr(g)&&(v[0]==="#"?(d(p,s[v],v),s[v]=p):this.refs[v]=g),v}function _(v){if(typeof v=="string"){if(!bw.test(v))throw new Error(`invalid anchor "${v}"`);w.call(this,`#${v}`)}}}),s;function d(p,f,u){if(f!==void 0&&!mw(p,f))throw l(u)}function l(p){return new Error(`reference "${p}" resolves to more than one schema`)}}qe.getSchemaRefs=kw});var xn=E(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.getData=Wt.KeywordCxt=Wt.validateFunctionCode=void 0;var op=Td(),rp=$n(),hs=os(),Ha=$n(),Rw=qd(),Ln=Gd(),gs=Yd(),O=x(),T=Qe(),_w=Cn(),Ot=q(),Tn=jn();function Aw(e){if(lp(e)&&(dp(e),cp(e))){Nw(e);return}sp(e,()=>(0,op.topBoolOrEmptySchema)(e))}Wt.validateFunctionCode=Aw;function sp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},i){a.code.es5?e.func(t,(0,O._)`${T.default.data}, ${T.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${np(r,a)}`),Pw(e,a),e.code(i)}):e.func(t,(0,O._)`${T.default.data}, ${Ew(a)}`,n.$async,()=>e.code(np(r,a)).code(i))}function Ew(e){return(0,O._)`{${T.default.instancePath}="", ${T.default.parentData}, ${T.default.parentDataProperty}, ${T.default.rootData}=${T.default.data}${e.dynamicRef?(0,O._)`, ${T.default.dynamicAnchors}={}`:O.nil}}={}`}function Pw(e,t){e.if(T.default.valCxt,()=>{e.var(T.default.instancePath,(0,O._)`${T.default.valCxt}.${T.default.instancePath}`),e.var(T.default.parentData,(0,O._)`${T.default.valCxt}.${T.default.parentData}`),e.var(T.default.parentDataProperty,(0,O._)`${T.default.valCxt}.${T.default.parentDataProperty}`),e.var(T.default.rootData,(0,O._)`${T.default.valCxt}.${T.default.rootData}`),t.dynamicRef&&e.var(T.default.dynamicAnchors,(0,O._)`${T.default.valCxt}.${T.default.dynamicAnchors}`)},()=>{e.var(T.default.instancePath,(0,O._)`""`),e.var(T.default.parentData,(0,O._)`undefined`),e.var(T.default.parentDataProperty,(0,O._)`undefined`),e.var(T.default.rootData,T.default.data),t.dynamicRef&&e.var(T.default.dynamicAnchors,(0,O._)`{}`)})}function Nw(e){let{schema:t,opts:r,gen:n}=e;sp(e,()=>{r.$comment&&t.$comment&&up(e),$w(e),n.let(T.default.vErrors,null),n.let(T.default.errors,0),r.unevaluated&&Ow(e),pp(e),Lw(e)})}function Ow(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 np(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 Sw(e,t){if(lp(e)&&(dp(e),cp(e))){Dw(e,t);return}(0,op.boolOrEmptySchema)(e,t)}function cp({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 lp(e){return typeof e.schema!="boolean"}function Dw(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&up(e),Cw(e),Tw(e);let i=n.const("_errs",T.default.errors);pp(e,i),n.var(t,(0,O._)`${i} === ${T.default.errors}`)}function dp(e){(0,Ot.checkUnknownRules)(e),jw(e)}function pp(e,t){if(e.opts.jtd)return ap(e,[],!1,t);let r=(0,rp.getSchemaTypes)(e.schema),n=(0,rp.coerceAndCheckDataType)(e,r);ap(e,r,!n,t)}function jw(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Ot.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function $w(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ot.checkStrictMode)(e,"default is ignored in the schema root")}function Cw(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,_w.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Tw(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function up({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let i=r.$comment;if(a.$comment===!0)e.code((0,O._)`${T.default.self}.logger.log(${i})`);else if(typeof a.$comment=="function"){let o=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${T.default.self}.opts.$comment(${i}, ${o}, ${s}.schema)`)}}function Lw(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:i}=e;r.$async?t.if((0,O._)`${T.default.errors} === 0`,()=>t.return(T.default.data),()=>t.throw((0,O._)`new ${a}(${T.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,T.default.vErrors),i.unevaluated&&xw(e),t.return((0,O._)`${T.default.errors} === 0`))}function xw({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 ap(e,t,r,n){let{gen:a,schema:i,data:o,allErrors:s,opts:c,self:d}=e,{RULES:l}=d;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Ot.schemaHasRulesButRef)(i,l))){a.block(()=>mp(e,"$ref",l.all.$ref.definition));return}c.jtd||Vw(e,t),a.block(()=>{for(let f of l.rules)p(f);p(l.post)});function p(f){(0,hs.shouldUseGroup)(i,f)&&(f.type?(a.if((0,Ha.checkDataType)(f.type,o,c.strictNumbers)),ip(e,f),t.length===1&&t[0]===f.type&&r&&(a.else(),(0,Ha.reportTypeError)(e)),a.endIf()):ip(e,f),s||a.if((0,O._)`${T.default.errors} === ${n||0}`))}}function ip(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,Rw.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,hs.shouldUseRule)(n,i)&&mp(e,i.keyword,i.definition,t.type)})}function Vw(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Mw(e,t),e.opts.allowUnionTypes||Uw(e,t),Fw(e,e.dataTypes))}function Mw(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{fp(e.dataTypes,r)||ys(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),Bw(e,t)}}function Uw(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&ys(e,"use allowUnionTypes to allow union type keyword")}function Fw(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,hs.shouldUseRule)(e.schema,a)){let{type:i}=a.definition;i.length&&!i.some(o=>qw(t,o))&&ys(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function qw(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function fp(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Bw(e,t){let r=[];for(let n of e.dataTypes)fp(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function ys(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Ot.checkStrictMode)(e,t,e.opts.strictTypes)}var Xa=class{constructor(t,r,n){if((0,Ln.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,Ot.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",gp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Ln.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",T.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?Tn.reportExtraError:Tn.reportError)(this,this.def.error,r)}$dataError(){(0,Tn.reportError)(this,this.def.$dataError||Tn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Tn.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:a,schemaType:i,def:o}=this;n.if((0,O.or)((0,O._)`${a} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(i.length||o.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:a,it:i}=this;return(0,O.or)(o(),s());function o(){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,Ha.checkDataTypes)(c,r,i.opts.strictNumbers,Ha.DataType.Wrong)}`}return O.nil}function s(){if(a.validateSchema){let c=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,gs.getSubschema)(this.it,t);(0,gs.extendSubschemaData)(n,this.it,t),(0,gs.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return Sw(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Ot.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Ot.mergeEvaluated.items(a,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};Wt.KeywordCxt=Xa;function mp(e,t,r,n){let a=new Xa(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,Ln.funcKeywordCode)(a,r):"macro"in r?(0,Ln.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,Ln.funcKeywordCode)(a,r)}var zw=/^\/(?:[^~]|~0|~1)*$/,Jw=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function gp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,i;if(e==="")return T.default.rootData;if(e[0]==="/"){if(!zw.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,i=T.default.rootData}else{let d=Jw.exec(e);if(!d)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+d[1];if(a=d[2],a==="#"){if(l>=t)throw new Error(c("property/index",l));return n[t-l]}if(l>t)throw new Error(c("data",l));if(i=r[t-l],!a)return i}let o=i,s=a.split("/");for(let d of s)d&&(i=(0,O._)`${i}${(0,O.getProperty)((0,Ot.unescapeJsonPointer)(d))}`,o=(0,O._)`${o} && ${i}`);return o;function c(d,l){return`Cannot access ${d} ${l} levels up, current level is ${t}`}}Wt.getData=gp});var Za=E(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});var ws=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Is.default=ws});var Vn=E(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});var vs=Cn(),bs=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,vs.resolveUrl)(t,r,n),this.missingSchema=(0,vs.normalizeId)((0,vs.getFullPath)(t,this.missingRef))}};ks.default=bs});var Mn=E(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.resolveSchema=tt.getCompilingSchema=tt.resolveRef=tt.compileSchema=tt.SchemaEnv=void 0;var ut=x(),Ww=Za(),ur=Qe(),ft=Cn(),hp=q(),Gw=xn(),Yr=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,ft.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};tt.SchemaEnv=Yr;function _s(e){let t=yp.call(this,e);if(t)return t;let r=(0,ft.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:i}=this.opts,o=new ut.CodeGen(this.scope,{es5:n,lines:a,ownProperties:i}),s;e.$async&&(s=o.scopeValue("Error",{ref:Ww.default,code:(0,ut._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let d={gen:o,allErrors:this.opts.allErrors,data:ur.default.data,parentData:ur.default.parentData,parentDataProperty:ur.default.parentDataProperty,dataNames:[ur.default.data],dataPathArr:[ut.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ut.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:ut.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ut._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,Gw.validateFunctionCode)(d),o.optimize(this.opts.code.optimize);let p=o.toString();l=`${o.scopeRefs(ur.default.scope)}return ${p}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let u=new Function(`${ur.default.self}`,`${ur.default.scope}`,l)(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}=d;u.evaluated={props:m instanceof ut.Name?void 0:m,items:g instanceof ut.Name?void 0:g,dynamicProps:m instanceof ut.Name,dynamicItems:g instanceof ut.Name},u.source&&(u.source.evaluated=(0,ut.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),p}finally{this._compilations.delete(e)}}tt.compileSchema=_s;function Kw(e,t,r){var n;r=(0,ft.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let i=Xw.call(this,e,r);if(i===void 0){let o=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(i=new Yr({schema:o,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=Yw.call(this,i)}tt.resolveRef=Kw;function Yw(e){return(0,ft.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:_s.call(this,e)}function yp(e){for(let t of this._compilations)if(Hw(t,e))return t}tt.getCompilingSchema=yp;function Hw(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Xw(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Qa.call(this,e,t)}function Qa(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ft._getFullPath)(this.opts.uriResolver,r),a=(0,ft.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return Rs.call(this,r,e);let i=(0,ft.normalizeId)(n),o=this.refs[i]||this.schemas[i];if(typeof o=="string"){let s=Qa.call(this,e,o);return typeof s?.schema!="object"?void 0:Rs.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||_s.call(this,o),i===(0,ft.normalizeId)(t)){let{schema:s}=o,{schemaId:c}=this.opts,d=s[c];return d&&(a=(0,ft.resolveUrl)(this.opts.uriResolver,a,d)),new Yr({schema:s,schemaId:c,root:e,baseId:a})}return Rs.call(this,r,o)}}tt.resolveSchema=Qa;var Zw=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Rs(e,{baseId:t,schema:r,root:n}){var a;if(((a=e.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,hp.unescapeFragment)(s)];if(c===void 0)return;r=c;let d=typeof r=="object"&&r[this.opts.schemaId];!Zw.has(s)&&d&&(t=(0,ft.resolveUrl)(this.opts.uriResolver,t,d))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,hp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ft.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=Qa.call(this,n,s)}let{schemaId:o}=this.opts;if(i=i||new Yr({schema:r,schemaId:o,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var wp=E((q0,Qw)=>{Qw.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 Ps=E((B0,_p)=>{"use strict";var eI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),vp=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),As=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),bp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),tI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Es(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 rI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Ip(e){return e.length=0,!0}function nI(e,t,r){if(e.length){let n=Es(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function aI(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],i=!1,o=!1,s=nI;for(let c=0;c<e.length;c++){let d=e[c];if(!(d==="["||d==="]"))if(d===":"){if(i===!0&&(o=!0),!s(a,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(i=!0),n.push(":");continue}else if(d==="%"){if(!s(a,n,r))break;s=Ip}else{a.push(d);continue}}return a.length&&(s===Ip?r.zone=a.join(""):o?n.push(a.join("")):n.push(Es(a))),r.address=n.join(""),r}function kp(e){if(iI(e,":")<2)return{host:e,isIPV6:!1};let t=aI(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 iI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function oI(e){let t=e,r=[],n=-1,a=0;for(;a=t.length;){if(a===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(a===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(a===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 sI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},cI=/[@/?#:]/g,lI=/[@/?#]/g;function Rp(e,t){let r=t?lI:cI;return r.lastIndex=0,e.replace(r,n=>sI[n])}function dI(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 a=e.slice(n+1,n+3);if(As(a)){let i=a.toUpperCase(),o=String.fromCharCode(parseInt(i,16));t&&bp(o)?r+=o:r+="%"+i,n+=2;continue}}r+=e[n]}return r}function pI(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(As(n)){let a=n.toUpperCase(),i=String.fromCharCode(parseInt(a,16));i!=="."&&bp(i)?t+=i:t+="%"+a,r+=2;continue}}tI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function uI(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(As(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function fI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!vp(r)){let n=kp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Rp(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}_p.exports={nonSimpleDomain:rI,recomposeAuthority:fI,reescapeHostDelimiters:Rp,normalizePercentEncoding:dI,normalizePathEncoding:pI,escapePreservingEscapes:uI,removeDotSegments:oI,isIPv4:vp,isUUID:eI,normalizeIPv6:kp,stringArrayToHexStripped:Es}});var Op=E((z0,Np)=>{"use strict";var{isUUID:mI}=Ps(),gI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,hI=["http","https","ws","wss","urn","urn:uuid"];function yI(e){return hI.indexOf(e)!==-1}function Ns(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 Ap(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Ep(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 wI(e){return e.secure=Ns(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function II(e){if((e.port===(Ns(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 vI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(gI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let a=`${n}:${t.nid||e.nid}`,i=Os(a);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(),a=`${r}:${t.nid||n}`,i=Os(a);i&&(e=i.serialize(e,t));let o=e,s=e.nss;return o.path=`${n||t.nid}:${s}`,t.skipEscape=!0,o}function kI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!mI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function RI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Pp={scheme:"http",domainHost:!0,parse:Ap,serialize:Ep},_I={scheme:"https",domainHost:Pp.domainHost,parse:Ap,serialize:Ep},ei={scheme:"ws",domainHost:!0,parse:wI,serialize:II},AI={scheme:"wss",domainHost:ei.domainHost,parse:ei.parse,serialize:ei.serialize},EI={scheme:"urn",parse:vI,serialize:bI,skipNormalize:!0},PI={scheme:"urn:uuid",parse:kI,serialize:RI,skipNormalize:!0},ti={http:Pp,https:_I,ws:ei,wss:AI,urn:EI,"urn:uuid":PI};Object.setPrototypeOf(ti,null);function Os(e){return e&&(ti[e]||ti[e.toLowerCase()])||void 0}Np.exports={wsIsSecure:Ns,SCHEMES:ti,isValidSchemeName:yI,getSchemeHandler:Os}});var Cp=E((J0,ai)=>{"use strict";var{normalizeIPv6:NI,removeDotSegments:Un,recomposeAuthority:OI,normalizePercentEncoding:SI,normalizePathEncoding:DI,escapePreservingEscapes:jI,reescapeHostDelimiters:$I,isIPv4:CI,nonSimpleDomain:TI}=Ps(),{SCHEMES:LI,getSchemeHandler:Dp}=Op();function xI(e,t){return typeof e=="string"?e=zI(e,t):typeof e=="object"&&(e=ni(fr(e,t),t)),e}function VI(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:a,malformedAuthorityOrPort:i}=ri(e,n),{parsed:o,malformedAuthorityOrPort:s}=ri(t,n);if(i||s)throw new Error(a.error||o.error||"URI is malformed.");let c=jp(a,o,n,!0);return n.skipEscape=!0,fr(c,n)}function jp(e,t,r,n){let a={};return n||(e=ni(fr(e,r),r),t=ni(fr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=Un(t.path||""),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=Un(t.path||""),a.query=t.query):(t.path?(t.path[0]==="/"?a.path=Un(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?a.path="/"+t.path:e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path,a.path=Un(a.path)),a.query=t.query):(a.path=e.path,t.query!==void 0?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function MI(e,t,r){let n=Sp(e,r),a=Sp(t,r);return n!==void 0&&a!==void 0&&n.toLowerCase()===a.toLowerCase()}function fr(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),a=[],i=Dp(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=SI(r.path):(r.path=jI(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let o=OI(r);if(o!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(o),r.path&&r.path[0]!=="/"&&a.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=Un(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),a.push(s)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var UI=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,FI=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,qI=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function BI(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 ri(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},a=!1,i=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let o=e.match(FI);o!==null&&o[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",a=!0);let s=e.match(qI);if(s!==null){let d=s[1],l=d.replace(/[\t\n\r]/g,"");l.length>=2&&(l.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",a=!0):d.length!==l.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",a=!0))}let c=e.match(UI);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 d=BI(n,c);if(d!==void 0&&(n.error=n.error||d,a=!0),n.host)if(CI(n.host)===!1){let f=NI(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 l=Dp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!l||!l.unicodeSupport)&&n.host&&(r.domainHost||l&&l.domainHost)&&i===!1&&TI(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((!l||l&&!l.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=$I(unescape(n.host),i))),n.path&&(n.path=DI(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}l&&l.parse&&l.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:a}}function ni(e,t){return ri(e,t).parsed}function zI(e,t){return $p(e,t).normalized}function $p(e,t){let{parsed:r,malformedAuthorityOrPort:n}=ri(e,t);return{normalized:n?e:fr(r,t),malformedAuthorityOrPort:n}}function Sp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=$p(e,t);return n?void 0:r}if(typeof e=="object")return fr(e,t)}var Ss={SCHEMES:LI,normalize:xI,resolve:VI,resolveComponent:jp,equal:MI,serialize:fr,parse:ni};ai.exports=Ss;ai.exports.default=Ss;ai.exports.fastUri=Ss});var Lp=E(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});var Tp=Cp();Tp.code='require("ajv/dist/runtime/uri").default';Ds.default=Tp});var zp=E(ke=>{"use strict";Object.defineProperty(ke,"__esModule",{value:!0});ke.CodeGen=ke.Name=ke.nil=ke.stringify=ke.str=ke._=ke.KeywordCxt=void 0;var JI=xn();Object.defineProperty(ke,"KeywordCxt",{enumerable:!0,get:function(){return JI.KeywordCxt}});var Hr=x();Object.defineProperty(ke,"_",{enumerable:!0,get:function(){return Hr._}});Object.defineProperty(ke,"str",{enumerable:!0,get:function(){return Hr.str}});Object.defineProperty(ke,"stringify",{enumerable:!0,get:function(){return Hr.stringify}});Object.defineProperty(ke,"nil",{enumerable:!0,get:function(){return Hr.nil}});Object.defineProperty(ke,"Name",{enumerable:!0,get:function(){return Hr.Name}});Object.defineProperty(ke,"CodeGen",{enumerable:!0,get:function(){return Hr.CodeGen}});var WI=Za(),Fp=Vn(),GI=is(),Fn=Mn(),KI=x(),qn=Cn(),ii=$n(),$s=q(),xp=wp(),YI=Lp(),qp=(e,t)=>new RegExp(e,t);qp.code="new RegExp";var HI=["removeAdditional","useDefaults","coerceTypes"],XI=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ZI={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."},QI={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Vp=200;function ev(e){var t,r,n,a,i,o,s,c,d,l,p,f,u,m,g,h,w,_,v,A,I,R,S,C,ce;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,H=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:qp,Xe=(a=e.uriResolver)!==null&&a!==void 0?a:YI.default;return{strictSchema:(o=(i=e.strictSchema)!==null&&i!==void 0?i:$)!==null&&o!==void 0?o:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(l=(d=e.strictTypes)!==null&&d!==void 0?d:$)!==null&&l!==void 0?l:"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:H,regExp:ie}:{optimize:H,regExp:ie},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Vp,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Vp,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(v=e.inlineRefs)!==null&&v!==void 0?v:!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:(ce=e.int32range)!==null&&ce!==void 0?ce:!0,uriResolver:Xe}}var Bn=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,...ev(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new KI.ValueScope({scope:{},prefixes:XI,es5:r,lines:n}),this.logger=ov(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,GI.getRules)(),Mp.call(this,ZI,t,"NOT SUPPORTED"),Mp.call(this,QI,t,"DEPRECATED","warn"),this._metaOpts=av.call(this),t.formats&&rv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&nv.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),tv.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=xp;n==="id"&&(a={...xp},a.id=a.$id,delete a.$id),r&&t&&this.addMetaSchema(a,a[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 a=n(r);return"$async"in n||(this.errors=n.errors),a}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 a.call(this,t,r);async function a(l,p){await i.call(this,l.$schema);let f=this._addSchema(l,p);return f.validate||o.call(this,f)}async function i(l){l&&!this.getSchema(l)&&await a.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(p){if(!(p instanceof Fp.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),o.call(this,l)}}function s({missingSchema:l,missingRef:p}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${p} cannot be resolved`)}async function c(l){let p=await d.call(this,l);this.refs[l]||await i.call(this,p.$schema),this.refs[l]||this.addSchema(p,l,r)}async function d(l){let p=this._loading[l];if(p)return p;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(t,r,n,a=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,n,a);return this}let i;if(typeof t=="object"){let{schemaId:o}=this.opts;if(i=t[o],i!==void 0&&typeof i!="string")throw new Error(`schema ${o} must be string`)}return r=(0,qn.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,a,!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 a=this.validate(n,t);if(!a&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return a}getSchema(t){let r;for(;typeof(r=Up.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new Fn.SchemaEnv({schema:{},schemaId:n});if(r=Fn.resolveSchema.call(this,a,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=Up.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,qn.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(cv.call(this,n,r),!r)return(0,$s.eachItem)(n,i=>js.call(this,i)),this;dv.call(this,r);let a={...r,type:(0,ii.getJSONTypes)(r.type),schemaType:(0,ii.getJSONTypes)(r.schemaType)};return(0,$s.eachItem)(n,a.type.length===0?i=>js.call(this,i,a):i=>a.type.forEach(o=>js.call(this,i,a,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 a=n.rules.findIndex(i=>i.keyword===t);a>=0&&n.rules.splice(a,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(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,i)=>a+r+i)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let a of r){let i=a.split("/").slice(1),o=t;for(let s of i)o=o[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:d}=c.definition,l=o[s];d&&l&&(o[s]=Bp(l))}}return t}_removeAllSchemas(t,r){for(let n in t){let a=t[n];(!r||r.test(n))&&(typeof a=="string"?delete t[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete t[n]))}}_addSchema(t,r,n,a=this.opts.validateSchema,i=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,qn.normalizeId)(o||n);let d=qn.getSchemaRefs.call(this,t,n);return c=new Fn.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:d}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),a&&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):Fn.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{Fn.compileSchema.call(this,t)}finally{this.opts=r}}};Bn.ValidationError=WI.default;Bn.MissingRefError=Fp.default;ke.default=Bn;function Mp(e,t,r,n="error"){for(let a in e){let i=a;i in t&&this.logger[n](`${r}: option ${a}. ${e[i]}`)}}function Up(e){return e=(0,qn.normalizeId)(e),this.schemas[e]||this.refs[e]}function tv(){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 rv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function nv(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 av(){let e={...this.opts};for(let t of HI)delete e[t];return e}var iv={log(){},warn(){},error(){}};function ov(e){if(e===!1)return iv;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 sv=/^[a-z_$][a-z0-9_$:-]*$/i;function cv(e,t){let{RULES:r}=this;if((0,$s.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!sv.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 js(e,t,r){var n;let a=t?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,o=a?i.post:i.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},i.rules.push(o)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,ii.getJSONTypes)(t.type),schemaType:(0,ii.getJSONTypes)(t.schemaType)}};t.before?lv.call(this,o,s,t.before):o.rules.push(s),i.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function lv(e,t,r){let n=e.rules.findIndex(a=>a.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function dv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Bp(t)),e.validateSchema=this.compile(t,!0))}var pv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Bp(e){return{anyOf:[e,pv]}}});var Jp=E(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});var uv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Cs.default=uv});var ci=E(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.callRef=mr.getValidate=void 0;var fv=Vn(),Wp=et(),Be=x(),Xr=Qe(),Gp=Mn(),oi=q(),mv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:a,schemaEnv:i,validateName:o,opts:s,self:c}=n,{root:d}=i;if((r==="#"||r==="#/")&&a===d.baseId)return p();let l=Gp.resolveRef.call(c,d,a,r);if(l===void 0)throw new fv.default(n.opts.uriResolver,a,r);if(l instanceof Gp.SchemaEnv)return f(l);return u(l);function p(){if(i===d)return si(e,o,i,i.$async);let m=t.scopeValue("root",{ref:d});return si(e,(0,Be._)`${m}.validate`,d,d.$async)}function f(m){let g=Kp(e,m);si(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Be.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Be.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function Kp(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Be._)`${r.scopeValue("wrapper",{ref:t})}.validate`}mr.getValidate=Kp;function si(e,t,r,n){let{gen:a,it:i}=e,{allErrors:o,schemaEnv:s,opts:c}=i,d=c.passContext?Xr.default.this:Be.nil;n?l():p();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=a.let("valid");a.try(()=>{a.code((0,Be._)`await ${(0,Wp.callValidateCode)(e,t,d)}`),u(t),o||a.assign(m,!0)},g=>{a.if((0,Be._)`!(${g} instanceof ${i.ValidationError})`,()=>a.throw(g)),f(g),o||a.assign(m,!1)}),e.ok(m)}function p(){e.result((0,Wp.callValidateCode)(e,t,d),()=>u(t),()=>f(t))}function f(m){let g=(0,Be._)`${m}.errors`;a.assign(Xr.default.vErrors,(0,Be._)`${Xr.default.vErrors} === null ? ${g} : ${Xr.default.vErrors}.concat(${g})`),a.assign(Xr.default.errors,(0,Be._)`${Xr.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=oi.mergeEvaluated.props(a,h.props,i.props));else{let w=a.var("props",(0,Be._)`${m}.evaluated.props`);i.props=oi.mergeEvaluated.props(a,w,i.props,Be.Name)}if(i.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(i.items=oi.mergeEvaluated.items(a,h.items,i.items));else{let w=a.var("items",(0,Be._)`${m}.evaluated.items`);i.items=oi.mergeEvaluated.items(a,w,i.items,Be.Name)}}}mr.callRef=si;mr.default=mv});var Yp=E(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var gv=Jp(),hv=ci(),yv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",gv.default,hv.default];Ts.default=yv});var Hp=E(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});var li=x(),Gt=li.operators,di={maximum:{okStr:"<=",ok:Gt.LTE,fail:Gt.GT},minimum:{okStr:">=",ok:Gt.GTE,fail:Gt.LT},exclusiveMaximum:{okStr:"<",ok:Gt.LT,fail:Gt.GTE},exclusiveMinimum:{okStr:">",ok:Gt.GT,fail:Gt.LTE}},wv={message:({keyword:e,schemaCode:t})=>(0,li.str)`must be ${di[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,li._)`{comparison: ${di[e].okStr}, limit: ${t}}`},Iv={keyword:Object.keys(di),type:"number",schemaType:"number",$data:!0,error:wv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,li._)`${r} ${di[t].fail} ${n} || isNaN(${r})`)}};Ls.default=Iv});var Xp=E(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var zn=x(),vv={message:({schemaCode:e})=>(0,zn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,zn._)`{multipleOf: ${e}}`},bv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:vv,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,i=a.opts.multipleOfPrecision,o=t.let("res"),s=i?(0,zn._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${i}`:(0,zn._)`${o} !== parseInt(${o})`;e.fail$data((0,zn._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};xs.default=bv});var Qp=E(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});function Zp(e){let t=e.length,r=0,n=0,a;for(;n<t;)r++,a=e.charCodeAt(n++),a>=55296&&a<=56319&&n<t&&(a=e.charCodeAt(n),(a&64512)===56320&&n++);return r}Vs.default=Zp;Zp.code='require("ajv/dist/runtime/ucs2length").default'});var eu=E(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var gr=x(),kv=q(),Rv=Qp(),_v={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,gr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,gr._)`{limit: ${e}}`},Av={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:_v,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,i=t==="maxLength"?gr.operators.GT:gr.operators.LT,o=a.opts.unicode===!1?(0,gr._)`${r}.length`:(0,gr._)`${(0,kv.useFunc)(e.gen,Rv.default)}(${r})`;e.fail$data((0,gr._)`${o} ${i} ${n}`)}};Ms.default=Av});var tu=E(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});var Ev=et(),Pv=q(),Zr=x(),Nv={message:({schemaCode:e})=>(0,Zr.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,Zr._)`{pattern: ${e}}`},Ov={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Nv,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:i,it:o}=e,s=o.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=o.opts.code,d=c.code==="new RegExp"?(0,Zr._)`new RegExp`:(0,Pv.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,Zr._)`${d}(${i}, ${s}).test(${r})`),()=>t.assign(l,!1)),e.fail$data((0,Zr._)`!${l}`)}else{let c=(0,Ev.usePattern)(e,a);e.fail$data((0,Zr._)`!${c}.test(${r})`)}}};Us.default=Ov});var ru=E(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var Jn=x(),Sv={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Jn.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Jn._)`{limit: ${e}}`},Dv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Sv,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?Jn.operators.GT:Jn.operators.LT;e.fail$data((0,Jn._)`Object.keys(${r}).length ${a} ${n}`)}};Fs.default=Dv});var nu=E(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});var Wn=et(),Gn=x(),jv=q(),$v={message:({params:{missingProperty:e}})=>(0,Gn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Gn._)`{missingProperty: ${e}}`},Cv={keyword:"required",type:"object",schemaType:"array",$data:!0,error:$v,code(e){let{gen:t,schema:r,schemaCode:n,data:a,$data:i,it:o}=e,{opts:s}=o;if(!i&&r.length===0)return;let c=r.length>=s.loopRequired;if(o.allErrors?d():l(),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,jv.checkStrictMode)(o,w,o.opts.strictRequired)}}function d(){if(c||i)e.block$data(Gn.nil,p);else for(let u of r)(0,Wn.checkReportMissingProp)(e,u)}function l(){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,Wn.checkMissingProp)(e,r,u)),(0,Wn.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,Wn.noPropertyInData)(t,a,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,Wn.propertyInData)(t,a,u,s.ownProperties)),t.if((0,Gn.not)(m),()=>{e.error(),t.break()})},Gn.nil)}}};qs.default=Cv});var au=E(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});var Kn=x(),Tv={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,Kn.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,Kn._)`{limit: ${e}}`},Lv={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Tv,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?Kn.operators.GT:Kn.operators.LT;e.fail$data((0,Kn._)`${r}.length ${a} ${n}`)}};Bs.default=Lv});var pi=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var iu=fs();iu.code='require("ajv/dist/runtime/equal").default';zs.default=iu});var ou=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Js=$n(),Re=x(),xv=q(),Vv=pi(),Mv={message:({params:{i:e,j:t}})=>(0,Re.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Re._)`{i: ${e}, j: ${t}}`},Uv={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Mv,code(e){let{gen:t,data:r,$data:n,schema:a,parentSchema:i,schemaCode:o,it:s}=e;if(!n&&!a)return;let c=t.let("valid"),d=i.items?(0,Js.getSchemaTypes)(i.items):[];e.block$data(c,l,(0,Re._)`${o} === false`),e.ok(c);function l(){let m=t.let("i",(0,Re._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Re._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return d.length>0&&!d.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,Js.checkDataTypes)(d,h,s.opts.strictNumbers,Js.DataType.Wrong),_=t.const("indices",(0,Re._)`{}`);t.for((0,Re._)`;${m}--;`,()=>{t.let(h,(0,Re._)`${r}[${m}]`),t.if(w,(0,Re._)`continue`),d.length>1&&t.if((0,Re._)`typeof ${h} == "string"`,(0,Re._)`${h} += "_"`),t.if((0,Re._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Re._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Re._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,xv.useFunc)(t,Vv.default),w=t.name("outer");t.label(w).for((0,Re._)`;${m}--;`,()=>t.for((0,Re._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Re._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};Ws.default=Uv});var su=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});var Gs=x(),Fv=q(),qv=pi(),Bv={message:"must be equal to constant",params:({schemaCode:e})=>(0,Gs._)`{allowedValue: ${e}}`},zv={keyword:"const",$data:!0,error:Bv,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,Gs._)`!${(0,Fv.useFunc)(t,qv.default)}(${r}, ${a})`):e.fail((0,Gs._)`${i} !== ${r}`)}};Ks.default=zv});var cu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Yn=x(),Jv=q(),Wv=pi(),Gv={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,Yn._)`{allowedValues: ${e}}`},Kv={keyword:"enum",schemaType:"array",$data:!0,error:Gv,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:i,it:o}=e;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let s=a.length>=o.opts.loopEnum,c,d=()=>c??(c=(0,Jv.useFunc)(t,Wv.default)),l;if(s||n)l=t.let("valid"),e.block$data(l,p);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let u=t.const("vSchema",i);l=(0,Yn.or)(...a.map((m,g)=>f(u,g)))}e.pass(l);function p(){t.assign(l,!1),t.forOf("v",i,u=>t.if((0,Yn._)`${d()}(${r}, ${u})`,()=>t.assign(l,!0).break()))}function f(u,m){let g=a[m];return typeof g=="object"&&g!==null?(0,Yn._)`${d()}(${r}, ${u}[${m}])`:(0,Yn._)`${r} === ${g}`}}};Ys.default=Kv});var lu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Yv=Hp(),Hv=Xp(),Xv=eu(),Zv=tu(),Qv=ru(),eb=nu(),tb=au(),rb=ou(),nb=su(),ab=cu(),ib=[Yv.default,Hv.default,Xv.default,Zv.default,Qv.default,eb.default,tb.default,rb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},nb.default,ab.default];Hs.default=ib});var Zs=E(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.validateAdditionalItems=void 0;var hr=x(),Xs=q(),ob={message:({params:{len:e}})=>(0,hr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,hr._)`{limit: ${e}}`},sb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:ob,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Xs.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}du(e,n)}};function du(e,t){let{gen:r,schema:n,data:a,keyword:i,it:o}=e;o.items=!0;let s=r.const("len",(0,hr._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,hr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Xs.alwaysValidSchema)(o,n)){let d=r.var("valid",(0,hr._)`${s} <= ${t.length}`);r.if((0,hr.not)(d),()=>c(d)),e.ok(d)}function c(d){r.forRange("i",t.length,s,l=>{e.subschema({keyword:i,dataProp:l,dataPropType:Xs.Type.Num},d),o.allErrors||r.if((0,hr.not)(d),()=>r.break())})}}Hn.validateAdditionalItems=du;Hn.default=sb});var Qs=E(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});Xn.validateTuple=void 0;var pu=x(),ui=q(),cb=et(),lb={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return uu(e,"additionalItems",t);r.items=!0,!(0,ui.alwaysValidSchema)(r,t)&&e.ok((0,cb.validateArray)(e))}};function uu(e,t,r=e.schema){let{gen:n,parentSchema:a,data:i,keyword:o,it:s}=e;l(a),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=ui.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),d=n.const("len",(0,pu._)`${i}.length`);r.forEach((p,f)=>{(0,ui.alwaysValidSchema)(s,p)||(n.if((0,pu._)`${d} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function l(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,ui.checkStrictMode)(s,h,f.strictTuples)}}}Xn.validateTuple=uu;Xn.default=lb});var fu=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var db=Qs(),pb={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,db.validateTuple)(e,"items")};ec.default=pb});var gu=E(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var mu=x(),ub=q(),fb=et(),mb=Zs(),gb={message:({params:{len:e}})=>(0,mu.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,mu._)`{limit: ${e}}`},hb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:gb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:a}=r;n.items=!0,!(0,ub.alwaysValidSchema)(n,t)&&(a?(0,mb.validateAdditionalItems)(e,a):e.ok((0,fb.validateArray)(e)))}};tc.default=hb});var hu=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var rt=x(),fi=q(),yb={message:({params:{min:e,max:t}})=>t===void 0?(0,rt.str)`must contain at least ${e} valid item(s)`:(0,rt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,rt._)`{minContains: ${e}}`:(0,rt._)`{minContains: ${e}, maxContains: ${t}}`},wb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:yb,code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:i}=e,o,s,{minContains:c,maxContains:d}=n;i.opts.next?(o=c===void 0?1:c,s=d):o=1;let l=t.const("len",(0,rt._)`${a}.length`);if(e.setParams({min:o,max:s}),s===void 0&&o===0){(0,fi.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,fi.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fi.alwaysValidSchema)(i,r)){let g=(0,rt._)`${l} >= ${o}`;s!==void 0&&(g=(0,rt._)`${g} && ${l} <= ${s}`),e.pass(g);return}i.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,rt._)`${a}.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,l,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:fi.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,rt._)`${g}++`),s===void 0?t.if((0,rt._)`${g} >= ${o}`,()=>t.assign(p,!0).break()):(t.if((0,rt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),o===1?t.assign(p,!0):t.if((0,rt._)`${g} >= ${o}`,()=>t.assign(p,!0)))}}};rc.default=wb});var mi=E(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.validateSchemaDeps=At.validatePropertyDeps=At.error=void 0;var nc=x(),Ib=q(),Zn=et();At.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,nc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,nc._)`{property: ${e},
5
+ || ${o} === "boolean" || ${a} === null`).assign(s,(0,V._)`[${a}]`)}}}function My({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function ss(e,t,r,n=Gr.Correct){let a=n===Gr.Correct?V.operators.EQ:V.operators.NEQ,i;switch(e){case"null":return(0,V._)`${t} ${a} 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=o((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=o();break;default:return(0,V._)`typeof ${t} ${a} ${e}`}return n===Gr.Correct?i:(0,V.not)(i);function o(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Ce.checkDataType=ss;function cs(e,t,r,n){if(e.length===1)return ss(e[0],t,r,n);let a,i=(0,Vd.toHash)(e);if(i.array&&i.object){let o=(0,V._)`typeof ${t} != "object"`;a=i.null?o:(0,V._)`!${t} || ${o}`,delete i.null,delete i.array,delete i.object}else a=V.nil;i.number&&delete i.integer;for(let o in i)a=(0,V.and)(a,ss(o,t,r,n));return a}Ce.checkDataTypes=cs;var Uy={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function ls(e){let t=Fy(e);(0,Cy.reportError)(t,Uy)}Ce.reportTypeError=ls;function Fy(e){let{gen:t,data:r,schema:n}=e,a=(0,Vd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var qd=E(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.assignDefaults=void 0;var Kr=x(),qy=q();function By(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)Fd(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,i)=>Fd(e,i,a.default))}Ka.assignDefaults=By;function Fd(e,t,r){let{gen:n,compositeRule:a,data:i,opts:o}=e;if(r===void 0)return;let s=(0,Kr._)`${i}${(0,Kr.getProperty)(t)}`;if(a){(0,qy.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,Kr._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,Kr._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,Kr._)`${s} = ${(0,Kr.stringify)(r)}`)}});var et=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 le=x(),ds=q(),Bt=Qe(),zy=q();function Jy(e,t){let{gen:r,data:n,it:a}=e;r.if(us(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,le._)`${t}`},!0),e.error()})}te.checkReportMissingProp=Jy;function Wy({gen:e,data:t,it:{opts:r}},n,a){return(0,le.or)(...n.map(i=>(0,le.and)(us(e,t,i,r.ownProperties),(0,le._)`${a} = ${i}`)))}te.checkMissingProp=Wy;function Gy(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=Gy;function Bd(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,le._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=Bd;function ps(e,t,r){return(0,le._)`${Bd(e)}.call(${t}, ${r})`}te.isOwnProperty=ps;function Ky(e,t,r,n){let a=(0,le._)`${t}${(0,le.getProperty)(r)} !== undefined`;return n?(0,le._)`${a} && ${ps(e,t,r)}`:a}te.propertyInData=Ky;function us(e,t,r,n){let a=(0,le._)`${t}${(0,le.getProperty)(r)} === undefined`;return n?(0,le.or)(a,(0,le.not)(ps(e,t,r))):a}te.noPropertyInData=us;function zd(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=zd;function Yy(e,t){return zd(t).filter(r=>!(0,ds.alwaysValidSchema)(e,t[r]))}te.schemaProperties=Yy;function Hy({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:i},it:o},s,c,l){let d=l?(0,le._)`${e}, ${t}, ${n}${a}`:t,p=[[Bt.default.instancePath,(0,le.strConcat)(Bt.default.instancePath,i)],[Bt.default.parentData,o.parentData],[Bt.default.parentDataProperty,o.parentDataProperty],[Bt.default.rootData,Bt.default.rootData]];o.opts.dynamicRef&&p.push([Bt.default.dynamicAnchors,Bt.default.dynamicAnchors]);let f=(0,le._)`${d}, ${r.object(...p)}`;return c!==le.nil?(0,le._)`${s}.call(${c}, ${f})`:(0,le._)`${s}(${f})`}te.callValidateCode=Hy;var Xy=(0,le._)`new RegExp`;function Zy({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:a}=t.code,i=a(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,le._)`${a.code==="new RegExp"?Xy:(0,zy.useFunc)(e,a)}(${r}, ${n})`})}te.usePattern=Zy;function Qy(e){let{gen:t,data:r,keyword:n,it:a}=e,i=t.name("valid");if(a.allErrors){let s=t.let("valid",!0);return o(()=>t.assign(s,!1)),s}return t.var(i,!0),o(()=>t.break()),i;function o(s){let c=t.const("len",(0,le._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:ds.Type.Num},i),t.if((0,le.not)(i),s)})}}te.validateArray=Qy;function ew(e){let{gen:t,schema:r,keyword:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,ds.alwaysValidSchema)(a,c))&&!a.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,le._)`${o} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,le.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}te.validateUnion=ew});var Gd=E(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.validateKeywordUsage=Rt.validSchemaType=Rt.funcKeywordCode=Rt.macroKeywordCode=void 0;var Me=x(),pr=Qe(),tw=et(),rw=jn();function nw(e,t){let{gen:r,keyword:n,schema:a,parentSchema:i,it:o}=e,s=t.macro.call(o.self,a,i,o),c=Wd(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:Me.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Rt.macroKeywordCode=nw;function aw(e,t){var r;let{gen:n,keyword:a,schema:i,parentSchema:o,$data:s,it:c}=e;ow(c,t);let l=!s&&t.compile?t.compile.call(c.self,i,o,c):t.validate,d=Wd(n,a,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&&Jd(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&Jd(e),h(()=>iw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,Me._)`await `),_=>n.assign(p,!1).if((0,Me._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,Me._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,Me._)`${d}.errors`;return n.assign(w,null),g(Me.nil),w}function g(w=t.async?(0,Me._)`await `:Me.nil){let _=c.opts.passContext?pr.default.this:pr.default.self,v=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Me._)`${w}${(0,tw.callValidateCode)(e,d,_,v)}`,t.modifying)}function h(w){var _;n.if((0,Me.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Rt.funcKeywordCode=aw;function Jd(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Me._)`${n.parentData}[${n.parentDataProperty}]`))}function iw(e,t){let{gen:r}=e;r.if((0,Me._)`Array.isArray(${t})`,()=>{r.assign(pr.default.vErrors,(0,Me._)`${pr.default.vErrors} === null ? ${t} : ${pr.default.vErrors}.concat(${t})`).assign(pr.default.errors,(0,Me._)`${pr.default.vErrors}.length`),(0,rw.extendErrors)(e)},()=>e.error())}function ow({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Wd(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,Me.stringify)(r)})}function sw(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")}Rt.validSchemaType=sw;function cw({schema:e,opts:t,self:r,errSchemaPath:n},a,i){if(Array.isArray(a.keyword)?!a.keyword.includes(i):a.keyword!==i)throw new Error("ajv implementation error");let o=a.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${o.join(",")}`);if(a.validateSchema&&!a.validateSchema(e[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Rt.validateKeywordUsage=cw});var Yd=E(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.extendSubschemaMode=zt.extendSubschemaData=zt.getSubschema=void 0;var _t=x(),Kd=q();function lw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:i,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,_t._)`${e.schemaPath}${(0,_t.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,_t._)`${e.schemaPath}${(0,_t.getProperty)(t)}${(0,_t.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Kd.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||i===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:o,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}zt.getSubschema=lw;function dw(e,t,{dataProp:r,dataPropType:n,data:a,dataTypes:i,propertyName:o}){if(a!==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,_t._)`${t.data}${(0,_t.getProperty)(r)}`,!0);c(f),e.errorPath=(0,_t.str)`${l}${(0,Kd.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,_t._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(a!==void 0){let l=a instanceof _t.Name?a:s.let("data",a,!0);c(l),o!==void 0&&(e.propertyName=o)}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]}}zt.extendSubschemaData=dw;function pw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:i}){n!==void 0&&(e.compositeRule=n),a!==void 0&&(e.createErrors=a),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=r}zt.extendSubschemaMode=pw});var fs=E((L0,Hd)=>{"use strict";Hd.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,a,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))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(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=n;a--!==0;){var o=i[a];if(!e(t[o],r[o]))return!1}return!0}return t!==t&&r!==r}});var Zd=E((x0,Xd)=>{"use strict";var Jt=Xd.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};Ya(t,n,a,e,"",e)};Jt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Jt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Jt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Jt.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 Ya(e,t,r,n,a,i,o,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,a,i,o,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Jt.arrayKeywords)for(var f=0;f<p.length;f++)Ya(e,t,r,p[f],a+"/"+d+"/"+f,i,a,d,n,f)}else if(d in Jt.propsKeywords){if(p&&typeof p=="object")for(var u in p)Ya(e,t,r,p[u],a+"/"+d+"/"+uw(u),i,a,d,n,u)}else(d in Jt.keywords||e.allKeys&&!(d in Jt.skipKeywords))&&Ya(e,t,r,p,a+"/"+d,i,a,d,n)}r(n,a,i,o,s,c,l)}}function uw(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Cn=E(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.getSchemaRefs=Be.resolveUrl=Be.normalizeId=Be._getFullPath=Be.getFullPath=Be.inlineRef=void 0;var fw=q(),mw=fs(),gw=Zd(),hw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function yw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!ms(e):t?Qd(e)<=t:!1}Be.inlineRef=yw;var ww=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ms(e){for(let t in e){if(ww.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(ms)||typeof r=="object"&&ms(r))return!0}return!1}function Qd(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!hw.has(r)&&(typeof e[r]=="object"&&(0,fw.eachItem)(e[r],n=>t+=Qd(n)),t===1/0))return 1/0}return t}function ep(e,t="",r){r!==!1&&(t=Yr(t));let n=e.parse(t);return tp(e,n)}Be.getFullPath=ep;function tp(e,t){return e.serialize(t).split("#")[0]+"#"}Be._getFullPath=tp;var Iw=/#\/?$/;function Yr(e){return e?e.replace(Iw,""):""}Be.normalizeId=Yr;function vw(e,t,r){return r=Yr(r),e.resolve(t,r)}Be.resolveUrl=vw;var bw=/^[a-z_][-a-z0-9._]*$/i;function kw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=Yr(e[r]||t),i={"":a},o=ep(n,a,!1),s={},c=new Set;return gw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=o+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(v){let A=this.opts.uriResolver.resolve;if(v=Yr(h?A(h,v):v),c.has(v))throw d(v);c.add(v);let I=this.refs[v];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,v):v!==Yr(g)&&(v[0]==="#"?(l(p,s[v],v),s[v]=p):this.refs[v]=g),v}function _(v){if(typeof v=="string"){if(!bw.test(v))throw new Error(`invalid anchor "${v}"`);w.call(this,`#${v}`)}}}),s;function l(p,f,u){if(f!==void 0&&!mw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Be.getSchemaRefs=kw});var xn=E(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.getData=Wt.KeywordCxt=Wt.validateFunctionCode=void 0;var op=Td(),rp=$n(),hs=os(),Ha=$n(),Rw=qd(),Ln=Gd(),gs=Yd(),O=x(),T=Qe(),_w=Cn(),Ot=q(),Tn=jn();function Aw(e){if(lp(e)&&(dp(e),cp(e))){Nw(e);return}sp(e,()=>(0,op.topBoolOrEmptySchema)(e))}Wt.validateFunctionCode=Aw;function sp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},i){a.code.es5?e.func(t,(0,O._)`${T.default.data}, ${T.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${np(r,a)}`),Pw(e,a),e.code(i)}):e.func(t,(0,O._)`${T.default.data}, ${Ew(a)}`,n.$async,()=>e.code(np(r,a)).code(i))}function Ew(e){return(0,O._)`{${T.default.instancePath}="", ${T.default.parentData}, ${T.default.parentDataProperty}, ${T.default.rootData}=${T.default.data}${e.dynamicRef?(0,O._)`, ${T.default.dynamicAnchors}={}`:O.nil}}={}`}function Pw(e,t){e.if(T.default.valCxt,()=>{e.var(T.default.instancePath,(0,O._)`${T.default.valCxt}.${T.default.instancePath}`),e.var(T.default.parentData,(0,O._)`${T.default.valCxt}.${T.default.parentData}`),e.var(T.default.parentDataProperty,(0,O._)`${T.default.valCxt}.${T.default.parentDataProperty}`),e.var(T.default.rootData,(0,O._)`${T.default.valCxt}.${T.default.rootData}`),t.dynamicRef&&e.var(T.default.dynamicAnchors,(0,O._)`${T.default.valCxt}.${T.default.dynamicAnchors}`)},()=>{e.var(T.default.instancePath,(0,O._)`""`),e.var(T.default.parentData,(0,O._)`undefined`),e.var(T.default.parentDataProperty,(0,O._)`undefined`),e.var(T.default.rootData,T.default.data),t.dynamicRef&&e.var(T.default.dynamicAnchors,(0,O._)`{}`)})}function Nw(e){let{schema:t,opts:r,gen:n}=e;sp(e,()=>{r.$comment&&t.$comment&&up(e),$w(e),n.let(T.default.vErrors,null),n.let(T.default.errors,0),r.unevaluated&&Ow(e),pp(e),Lw(e)})}function Ow(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 np(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 Sw(e,t){if(lp(e)&&(dp(e),cp(e))){Dw(e,t);return}(0,op.boolOrEmptySchema)(e,t)}function cp({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 lp(e){return typeof e.schema!="boolean"}function Dw(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&up(e),Cw(e),Tw(e);let i=n.const("_errs",T.default.errors);pp(e,i),n.var(t,(0,O._)`${i} === ${T.default.errors}`)}function dp(e){(0,Ot.checkUnknownRules)(e),jw(e)}function pp(e,t){if(e.opts.jtd)return ap(e,[],!1,t);let r=(0,rp.getSchemaTypes)(e.schema),n=(0,rp.coerceAndCheckDataType)(e,r);ap(e,r,!n,t)}function jw(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Ot.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function $w(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ot.checkStrictMode)(e,"default is ignored in the schema root")}function Cw(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,_w.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Tw(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function up({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let i=r.$comment;if(a.$comment===!0)e.code((0,O._)`${T.default.self}.logger.log(${i})`);else if(typeof a.$comment=="function"){let o=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${T.default.self}.opts.$comment(${i}, ${o}, ${s}.schema)`)}}function Lw(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:i}=e;r.$async?t.if((0,O._)`${T.default.errors} === 0`,()=>t.return(T.default.data),()=>t.throw((0,O._)`new ${a}(${T.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,T.default.vErrors),i.unevaluated&&xw(e),t.return((0,O._)`${T.default.errors} === 0`))}function xw({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 ap(e,t,r,n){let{gen:a,schema:i,data:o,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Ot.schemaHasRulesButRef)(i,d))){a.block(()=>mp(e,"$ref",d.all.$ref.definition));return}c.jtd||Vw(e,t),a.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,hs.shouldUseGroup)(i,f)&&(f.type?(a.if((0,Ha.checkDataType)(f.type,o,c.strictNumbers)),ip(e,f),t.length===1&&t[0]===f.type&&r&&(a.else(),(0,Ha.reportTypeError)(e)),a.endIf()):ip(e,f),s||a.if((0,O._)`${T.default.errors} === ${n||0}`))}}function ip(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,Rw.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,hs.shouldUseRule)(n,i)&&mp(e,i.keyword,i.definition,t.type)})}function Vw(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Mw(e,t),e.opts.allowUnionTypes||Uw(e,t),Fw(e,e.dataTypes))}function Mw(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{fp(e.dataTypes,r)||ys(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),Bw(e,t)}}function Uw(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&ys(e,"use allowUnionTypes to allow union type keyword")}function Fw(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,hs.shouldUseRule)(e.schema,a)){let{type:i}=a.definition;i.length&&!i.some(o=>qw(t,o))&&ys(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function qw(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function fp(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Bw(e,t){let r=[];for(let n of e.dataTypes)fp(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function ys(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Ot.checkStrictMode)(e,t,e.opts.strictTypes)}var Xa=class{constructor(t,r,n){if((0,Ln.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,Ot.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",gp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Ln.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",T.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?Tn.reportExtraError:Tn.reportError)(this,this.def.error,r)}$dataError(){(0,Tn.reportError)(this,this.def.$dataError||Tn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Tn.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:a,schemaType:i,def:o}=this;n.if((0,O.or)((0,O._)`${a} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(i.length||o.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:a,it:i}=this;return(0,O.or)(o(),s());function o(){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,Ha.checkDataTypes)(c,r,i.opts.strictNumbers,Ha.DataType.Wrong)}`}return O.nil}function s(){if(a.validateSchema){let c=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,gs.getSubschema)(this.it,t);(0,gs.extendSubschemaData)(n,this.it,t),(0,gs.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return Sw(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Ot.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Ot.mergeEvaluated.items(a,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};Wt.KeywordCxt=Xa;function mp(e,t,r,n){let a=new Xa(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,Ln.funcKeywordCode)(a,r):"macro"in r?(0,Ln.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,Ln.funcKeywordCode)(a,r)}var zw=/^\/(?:[^~]|~0|~1)*$/,Jw=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function gp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,i;if(e==="")return T.default.rootData;if(e[0]==="/"){if(!zw.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,i=T.default.rootData}else{let l=Jw.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(a=l[2],a==="#"){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],!a)return i}let o=i,s=a.split("/");for(let l of s)l&&(i=(0,O._)`${i}${(0,O.getProperty)((0,Ot.unescapeJsonPointer)(l))}`,o=(0,O._)`${o} && ${i}`);return o;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Wt.getData=gp});var Za=E(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});var ws=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Is.default=ws});var Vn=E(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});var vs=Cn(),bs=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,vs.resolveUrl)(t,r,n),this.missingSchema=(0,vs.normalizeId)((0,vs.getFullPath)(t,this.missingRef))}};ks.default=bs});var Mn=E(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.resolveSchema=tt.getCompilingSchema=tt.resolveRef=tt.compileSchema=tt.SchemaEnv=void 0;var ut=x(),Ww=Za(),ur=Qe(),ft=Cn(),hp=q(),Gw=xn(),Hr=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,ft.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};tt.SchemaEnv=Hr;function _s(e){let t=yp.call(this,e);if(t)return t;let r=(0,ft.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:i}=this.opts,o=new ut.CodeGen(this.scope,{es5:n,lines:a,ownProperties:i}),s;e.$async&&(s=o.scopeValue("Error",{ref:Ww.default,code:(0,ut._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let l={gen:o,allErrors:this.opts.allErrors,data:ur.default.data,parentData:ur.default.parentData,parentDataProperty:ur.default.parentDataProperty,dataNames:[ur.default.data],dataPathArr:[ut.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ut.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:ut.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ut._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,Gw.validateFunctionCode)(l),o.optimize(this.opts.code.optimize);let p=o.toString();d=`${o.scopeRefs(ur.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${ur.default.self}`,`${ur.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 ut.Name?void 0:m,items:g instanceof ut.Name?void 0:g,dynamicProps:m instanceof ut.Name,dynamicItems:g instanceof ut.Name},u.source&&(u.source.evaluated=(0,ut.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)}}tt.compileSchema=_s;function Kw(e,t,r){var n;r=(0,ft.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let i=Xw.call(this,e,r);if(i===void 0){let o=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(i=new Hr({schema:o,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=Yw.call(this,i)}tt.resolveRef=Kw;function Yw(e){return(0,ft.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:_s.call(this,e)}function yp(e){for(let t of this._compilations)if(Hw(t,e))return t}tt.getCompilingSchema=yp;function Hw(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Xw(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Qa.call(this,e,t)}function Qa(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ft._getFullPath)(this.opts.uriResolver,r),a=(0,ft.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return Rs.call(this,r,e);let i=(0,ft.normalizeId)(n),o=this.refs[i]||this.schemas[i];if(typeof o=="string"){let s=Qa.call(this,e,o);return typeof s?.schema!="object"?void 0:Rs.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||_s.call(this,o),i===(0,ft.normalizeId)(t)){let{schema:s}=o,{schemaId:c}=this.opts,l=s[c];return l&&(a=(0,ft.resolveUrl)(this.opts.uriResolver,a,l)),new Hr({schema:s,schemaId:c,root:e,baseId:a})}return Rs.call(this,r,o)}}tt.resolveSchema=Qa;var Zw=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Rs(e,{baseId:t,schema:r,root:n}){var a;if(((a=e.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,hp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!Zw.has(s)&&l&&(t=(0,ft.resolveUrl)(this.opts.uriResolver,t,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,hp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ft.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=Qa.call(this,n,s)}let{schemaId:o}=this.opts;if(i=i||new Hr({schema:r,schemaId:o,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var wp=E((B0,Qw)=>{Qw.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 Ps=E((z0,_p)=>{"use strict";var eI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),vp=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),As=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),bp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),tI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Es(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 rI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Ip(e){return e.length=0,!0}function nI(e,t,r){if(e.length){let n=Es(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function aI(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],i=!1,o=!1,s=nI;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(i===!0&&(o=!0),!s(a,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(a,n,r))break;s=Ip}else{a.push(l);continue}}return a.length&&(s===Ip?r.zone=a.join(""):o?n.push(a.join("")):n.push(Es(a))),r.address=n.join(""),r}function kp(e){if(iI(e,":")<2)return{host:e,isIPV6:!1};let t=aI(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 iI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function oI(e){let t=e,r=[],n=-1,a=0;for(;a=t.length;){if(a===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(a===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(a===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 sI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},cI=/[@/?#:]/g,lI=/[@/?#]/g;function Rp(e,t){let r=t?lI:cI;return r.lastIndex=0,e.replace(r,n=>sI[n])}function dI(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 a=e.slice(n+1,n+3);if(As(a)){let i=a.toUpperCase(),o=String.fromCharCode(parseInt(i,16));t&&bp(o)?r+=o:r+="%"+i,n+=2;continue}}r+=e[n]}return r}function pI(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(As(n)){let a=n.toUpperCase(),i=String.fromCharCode(parseInt(a,16));i!=="."&&bp(i)?t+=i:t+="%"+a,r+=2;continue}}tI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function uI(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(As(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function fI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!vp(r)){let n=kp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Rp(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}_p.exports={nonSimpleDomain:rI,recomposeAuthority:fI,reescapeHostDelimiters:Rp,normalizePercentEncoding:dI,normalizePathEncoding:pI,escapePreservingEscapes:uI,removeDotSegments:oI,isIPv4:vp,isUUID:eI,normalizeIPv6:kp,stringArrayToHexStripped:Es}});var Op=E((J0,Np)=>{"use strict";var{isUUID:mI}=Ps(),gI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,hI=["http","https","ws","wss","urn","urn:uuid"];function yI(e){return hI.indexOf(e)!==-1}function Ns(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 Ap(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Ep(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 wI(e){return e.secure=Ns(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function II(e){if((e.port===(Ns(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 vI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(gI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let a=`${n}:${t.nid||e.nid}`,i=Os(a);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(),a=`${r}:${t.nid||n}`,i=Os(a);i&&(e=i.serialize(e,t));let o=e,s=e.nss;return o.path=`${n||t.nid}:${s}`,t.skipEscape=!0,o}function kI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!mI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function RI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Pp={scheme:"http",domainHost:!0,parse:Ap,serialize:Ep},_I={scheme:"https",domainHost:Pp.domainHost,parse:Ap,serialize:Ep},ei={scheme:"ws",domainHost:!0,parse:wI,serialize:II},AI={scheme:"wss",domainHost:ei.domainHost,parse:ei.parse,serialize:ei.serialize},EI={scheme:"urn",parse:vI,serialize:bI,skipNormalize:!0},PI={scheme:"urn:uuid",parse:kI,serialize:RI,skipNormalize:!0},ti={http:Pp,https:_I,ws:ei,wss:AI,urn:EI,"urn:uuid":PI};Object.setPrototypeOf(ti,null);function Os(e){return e&&(ti[e]||ti[e.toLowerCase()])||void 0}Np.exports={wsIsSecure:Ns,SCHEMES:ti,isValidSchemeName:yI,getSchemeHandler:Os}});var Cp=E((W0,ai)=>{"use strict";var{normalizeIPv6:NI,removeDotSegments:Un,recomposeAuthority:OI,normalizePercentEncoding:SI,normalizePathEncoding:DI,escapePreservingEscapes:jI,reescapeHostDelimiters:$I,isIPv4:CI,nonSimpleDomain:TI}=Ps(),{SCHEMES:LI,getSchemeHandler:Dp}=Op();function xI(e,t){return typeof e=="string"?e=zI(e,t):typeof e=="object"&&(e=ni(fr(e,t),t)),e}function VI(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:a,malformedAuthorityOrPort:i}=ri(e,n),{parsed:o,malformedAuthorityOrPort:s}=ri(t,n);if(i||s)throw new Error(a.error||o.error||"URI is malformed.");let c=jp(a,o,n,!0);return n.skipEscape=!0,fr(c,n)}function jp(e,t,r,n){let a={};return n||(e=ni(fr(e,r),r),t=ni(fr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=Un(t.path||""),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=Un(t.path||""),a.query=t.query):(t.path?(t.path[0]==="/"?a.path=Un(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?a.path="/"+t.path:e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path,a.path=Un(a.path)),a.query=t.query):(a.path=e.path,t.query!==void 0?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function MI(e,t,r){let n=Sp(e,r),a=Sp(t,r);return n!==void 0&&a!==void 0&&n.toLowerCase()===a.toLowerCase()}function fr(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),a=[],i=Dp(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=SI(r.path):(r.path=jI(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let o=OI(r);if(o!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(o),r.path&&r.path[0]!=="/"&&a.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=Un(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),a.push(s)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var UI=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,FI=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,qI=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function BI(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 ri(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},a=!1,i=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let o=e.match(FI);o!==null&&o[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",a=!0);let s=e.match(qI);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.",a=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",a=!0))}let c=e.match(UI);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=BI(n,c);if(l!==void 0&&(n.error=n.error||l,a=!0),n.host)if(CI(n.host)===!1){let f=NI(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=Dp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&TI(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=$I(unescape(n.host),i))),n.path&&(n.path=DI(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:a}}function ni(e,t){return ri(e,t).parsed}function zI(e,t){return $p(e,t).normalized}function $p(e,t){let{parsed:r,malformedAuthorityOrPort:n}=ri(e,t);return{normalized:n?e:fr(r,t),malformedAuthorityOrPort:n}}function Sp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=$p(e,t);return n?void 0:r}if(typeof e=="object")return fr(e,t)}var Ss={SCHEMES:LI,normalize:xI,resolve:VI,resolveComponent:jp,equal:MI,serialize:fr,parse:ni};ai.exports=Ss;ai.exports.default=Ss;ai.exports.fastUri=Ss});var Lp=E(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});var Tp=Cp();Tp.code='require("ajv/dist/runtime/uri").default';Ds.default=Tp});var zp=E(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.CodeGen=_e.Name=_e.nil=_e.stringify=_e.str=_e._=_e.KeywordCxt=void 0;var JI=xn();Object.defineProperty(_e,"KeywordCxt",{enumerable:!0,get:function(){return JI.KeywordCxt}});var Xr=x();Object.defineProperty(_e,"_",{enumerable:!0,get:function(){return Xr._}});Object.defineProperty(_e,"str",{enumerable:!0,get:function(){return Xr.str}});Object.defineProperty(_e,"stringify",{enumerable:!0,get:function(){return Xr.stringify}});Object.defineProperty(_e,"nil",{enumerable:!0,get:function(){return Xr.nil}});Object.defineProperty(_e,"Name",{enumerable:!0,get:function(){return Xr.Name}});Object.defineProperty(_e,"CodeGen",{enumerable:!0,get:function(){return Xr.CodeGen}});var WI=Za(),Fp=Vn(),GI=is(),Fn=Mn(),KI=x(),qn=Cn(),ii=$n(),$s=q(),xp=wp(),YI=Lp(),qp=(e,t)=>new RegExp(e,t);qp.code="new RegExp";var HI=["removeAdditional","useDefaults","coerceTypes"],XI=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ZI={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."},QI={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Vp=200;function ev(e){var t,r,n,a,i,o,s,c,l,d,p,f,u,m,g,h,w,_,v,A,I,R,S,C,ce;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,H=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:qp,Xe=(a=e.uriResolver)!==null&&a!==void 0?a:YI.default;return{strictSchema:(o=(i=e.strictSchema)!==null&&i!==void 0?i:$)!==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:H,regExp:ie}:{optimize:H,regExp:ie},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Vp,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Vp,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(v=e.inlineRefs)!==null&&v!==void 0?v:!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:(ce=e.int32range)!==null&&ce!==void 0?ce:!0,uriResolver:Xe}}var Bn=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,...ev(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new KI.ValueScope({scope:{},prefixes:XI,es5:r,lines:n}),this.logger=ov(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,GI.getRules)(),Mp.call(this,ZI,t,"NOT SUPPORTED"),Mp.call(this,QI,t,"DEPRECATED","warn"),this._metaOpts=av.call(this),t.formats&&rv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&nv.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),tv.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=xp;n==="id"&&(a={...xp},a.id=a.$id,delete a.$id),r&&t&&this.addMetaSchema(a,a[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 a=n(r);return"$async"in n||(this.errors=n.errors),a}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 a.call(this,t,r);async function a(d,p){await i.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||o.call(this,f)}async function i(d){d&&!this.getSchema(d)&&await a.call(this,{$ref:d},!0)}async function o(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof Fp.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 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,a=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,n,a);return this}let i;if(typeof t=="object"){let{schemaId:o}=this.opts;if(i=t[o],i!==void 0&&typeof i!="string")throw new Error(`schema ${o} must be string`)}return r=(0,qn.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,a,!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 a=this.validate(n,t);if(!a&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return a}getSchema(t){let r;for(;typeof(r=Up.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new Fn.SchemaEnv({schema:{},schemaId:n});if(r=Fn.resolveSchema.call(this,a,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=Up.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,qn.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(cv.call(this,n,r),!r)return(0,$s.eachItem)(n,i=>js.call(this,i)),this;dv.call(this,r);let a={...r,type:(0,ii.getJSONTypes)(r.type),schemaType:(0,ii.getJSONTypes)(r.schemaType)};return(0,$s.eachItem)(n,a.type.length===0?i=>js.call(this,i,a):i=>a.type.forEach(o=>js.call(this,i,a,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 a=n.rules.findIndex(i=>i.keyword===t);a>=0&&n.rules.splice(a,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(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,i)=>a+r+i)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let a of r){let i=a.split("/").slice(1),o=t;for(let s of i)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]=Bp(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let a=t[n];(!r||r.test(n))&&(typeof a=="string"?delete t[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete t[n]))}}_addSchema(t,r,n,a=this.opts.validateSchema,i=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,qn.normalizeId)(o||n);let l=qn.getSchemaRefs.call(this,t,n);return c=new Fn.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),a&&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):Fn.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{Fn.compileSchema.call(this,t)}finally{this.opts=r}}};Bn.ValidationError=WI.default;Bn.MissingRefError=Fp.default;_e.default=Bn;function Mp(e,t,r,n="error"){for(let a in e){let i=a;i in t&&this.logger[n](`${r}: option ${a}. ${e[i]}`)}}function Up(e){return e=(0,qn.normalizeId)(e),this.schemas[e]||this.refs[e]}function tv(){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 rv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function nv(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 av(){let e={...this.opts};for(let t of HI)delete e[t];return e}var iv={log(){},warn(){},error(){}};function ov(e){if(e===!1)return iv;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 sv=/^[a-z_$][a-z0-9_$:-]*$/i;function cv(e,t){let{RULES:r}=this;if((0,$s.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!sv.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 js(e,t,r){var n;let a=t?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,o=a?i.post:i.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},i.rules.push(o)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,ii.getJSONTypes)(t.type),schemaType:(0,ii.getJSONTypes)(t.schemaType)}};t.before?lv.call(this,o,s,t.before):o.rules.push(s),i.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function lv(e,t,r){let n=e.rules.findIndex(a=>a.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function dv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Bp(t)),e.validateSchema=this.compile(t,!0))}var pv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Bp(e){return{anyOf:[e,pv]}}});var Jp=E(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});var uv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Cs.default=uv});var ci=E(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.callRef=mr.getValidate=void 0;var fv=Vn(),Wp=et(),ze=x(),Zr=Qe(),Gp=Mn(),oi=q(),mv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:a,schemaEnv:i,validateName:o,opts:s,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&a===l.baseId)return p();let d=Gp.resolveRef.call(c,l,a,r);if(d===void 0)throw new fv.default(n.opts.uriResolver,a,r);if(d instanceof Gp.SchemaEnv)return f(d);return u(d);function p(){if(i===l)return si(e,o,i,i.$async);let m=t.scopeValue("root",{ref:l});return si(e,(0,ze._)`${m}.validate`,l,l.$async)}function f(m){let g=Kp(e,m);si(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,ze.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:ze.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function Kp(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,ze._)`${r.scopeValue("wrapper",{ref:t})}.validate`}mr.getValidate=Kp;function si(e,t,r,n){let{gen:a,it:i}=e,{allErrors:o,schemaEnv:s,opts:c}=i,l=c.passContext?Zr.default.this:ze.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=a.let("valid");a.try(()=>{a.code((0,ze._)`await ${(0,Wp.callValidateCode)(e,t,l)}`),u(t),o||a.assign(m,!0)},g=>{a.if((0,ze._)`!(${g} instanceof ${i.ValidationError})`,()=>a.throw(g)),f(g),o||a.assign(m,!1)}),e.ok(m)}function p(){e.result((0,Wp.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,ze._)`${m}.errors`;a.assign(Zr.default.vErrors,(0,ze._)`${Zr.default.vErrors} === null ? ${g} : ${Zr.default.vErrors}.concat(${g})`),a.assign(Zr.default.errors,(0,ze._)`${Zr.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=oi.mergeEvaluated.props(a,h.props,i.props));else{let w=a.var("props",(0,ze._)`${m}.evaluated.props`);i.props=oi.mergeEvaluated.props(a,w,i.props,ze.Name)}if(i.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(i.items=oi.mergeEvaluated.items(a,h.items,i.items));else{let w=a.var("items",(0,ze._)`${m}.evaluated.items`);i.items=oi.mergeEvaluated.items(a,w,i.items,ze.Name)}}}mr.callRef=si;mr.default=mv});var Yp=E(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var gv=Jp(),hv=ci(),yv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",gv.default,hv.default];Ts.default=yv});var Hp=E(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});var li=x(),Gt=li.operators,di={maximum:{okStr:"<=",ok:Gt.LTE,fail:Gt.GT},minimum:{okStr:">=",ok:Gt.GTE,fail:Gt.LT},exclusiveMaximum:{okStr:"<",ok:Gt.LT,fail:Gt.GTE},exclusiveMinimum:{okStr:">",ok:Gt.GT,fail:Gt.LTE}},wv={message:({keyword:e,schemaCode:t})=>(0,li.str)`must be ${di[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,li._)`{comparison: ${di[e].okStr}, limit: ${t}}`},Iv={keyword:Object.keys(di),type:"number",schemaType:"number",$data:!0,error:wv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,li._)`${r} ${di[t].fail} ${n} || isNaN(${r})`)}};Ls.default=Iv});var Xp=E(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var zn=x(),vv={message:({schemaCode:e})=>(0,zn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,zn._)`{multipleOf: ${e}}`},bv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:vv,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,i=a.opts.multipleOfPrecision,o=t.let("res"),s=i?(0,zn._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${i}`:(0,zn._)`${o} !== parseInt(${o})`;e.fail$data((0,zn._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};xs.default=bv});var Qp=E(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});function Zp(e){let t=e.length,r=0,n=0,a;for(;n<t;)r++,a=e.charCodeAt(n++),a>=55296&&a<=56319&&n<t&&(a=e.charCodeAt(n),(a&64512)===56320&&n++);return r}Vs.default=Zp;Zp.code='require("ajv/dist/runtime/ucs2length").default'});var eu=E(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var gr=x(),kv=q(),Rv=Qp(),_v={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,gr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,gr._)`{limit: ${e}}`},Av={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:_v,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,i=t==="maxLength"?gr.operators.GT:gr.operators.LT,o=a.opts.unicode===!1?(0,gr._)`${r}.length`:(0,gr._)`${(0,kv.useFunc)(e.gen,Rv.default)}(${r})`;e.fail$data((0,gr._)`${o} ${i} ${n}`)}};Ms.default=Av});var tu=E(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});var Ev=et(),Pv=q(),Qr=x(),Nv={message:({schemaCode:e})=>(0,Qr.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,Qr._)`{pattern: ${e}}`},Ov={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Nv,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:i,it:o}=e,s=o.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=o.opts.code,l=c.code==="new RegExp"?(0,Qr._)`new RegExp`:(0,Pv.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,Qr._)`${l}(${i}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,Qr._)`!${d}`)}else{let c=(0,Ev.usePattern)(e,a);e.fail$data((0,Qr._)`!${c}.test(${r})`)}}};Us.default=Ov});var ru=E(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var Jn=x(),Sv={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Jn.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Jn._)`{limit: ${e}}`},Dv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Sv,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?Jn.operators.GT:Jn.operators.LT;e.fail$data((0,Jn._)`Object.keys(${r}).length ${a} ${n}`)}};Fs.default=Dv});var nu=E(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});var Wn=et(),Gn=x(),jv=q(),$v={message:({params:{missingProperty:e}})=>(0,Gn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Gn._)`{missingProperty: ${e}}`},Cv={keyword:"required",type:"object",schemaType:"array",$data:!0,error:$v,code(e){let{gen:t,schema:r,schemaCode:n,data:a,$data:i,it:o}=e,{opts:s}=o;if(!i&&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,jv.checkStrictMode)(o,w,o.opts.strictRequired)}}function l(){if(c||i)e.block$data(Gn.nil,p);else for(let u of r)(0,Wn.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,Wn.checkMissingProp)(e,r,u)),(0,Wn.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,Wn.noPropertyInData)(t,a,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,Wn.propertyInData)(t,a,u,s.ownProperties)),t.if((0,Gn.not)(m),()=>{e.error(),t.break()})},Gn.nil)}}};qs.default=Cv});var au=E(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});var Kn=x(),Tv={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,Kn.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,Kn._)`{limit: ${e}}`},Lv={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Tv,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?Kn.operators.GT:Kn.operators.LT;e.fail$data((0,Kn._)`${r}.length ${a} ${n}`)}};Bs.default=Lv});var pi=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var iu=fs();iu.code='require("ajv/dist/runtime/equal").default';zs.default=iu});var ou=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Js=$n(),Ae=x(),xv=q(),Vv=pi(),Mv={message:({params:{i:e,j:t}})=>(0,Ae.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ae._)`{i: ${e}, j: ${t}}`},Uv={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Mv,code(e){let{gen:t,data:r,$data:n,schema:a,parentSchema:i,schemaCode:o,it:s}=e;if(!n&&!a)return;let c=t.let("valid"),l=i.items?(0,Js.getSchemaTypes)(i.items):[];e.block$data(c,d,(0,Ae._)`${o} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ae._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ae._)`${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,Js.checkDataTypes)(l,h,s.opts.strictNumbers,Js.DataType.Wrong),_=t.const("indices",(0,Ae._)`{}`);t.for((0,Ae._)`;${m}--;`,()=>{t.let(h,(0,Ae._)`${r}[${m}]`),t.if(w,(0,Ae._)`continue`),l.length>1&&t.if((0,Ae._)`typeof ${h} == "string"`,(0,Ae._)`${h} += "_"`),t.if((0,Ae._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ae._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ae._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,xv.useFunc)(t,Vv.default),w=t.name("outer");t.label(w).for((0,Ae._)`;${m}--;`,()=>t.for((0,Ae._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ae._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};Ws.default=Uv});var su=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});var Gs=x(),Fv=q(),qv=pi(),Bv={message:"must be equal to constant",params:({schemaCode:e})=>(0,Gs._)`{allowedValue: ${e}}`},zv={keyword:"const",$data:!0,error:Bv,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,Gs._)`!${(0,Fv.useFunc)(t,qv.default)}(${r}, ${a})`):e.fail((0,Gs._)`${i} !== ${r}`)}};Ks.default=zv});var cu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Yn=x(),Jv=q(),Wv=pi(),Gv={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,Yn._)`{allowedValues: ${e}}`},Kv={keyword:"enum",schemaType:"array",$data:!0,error:Gv,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:i,it:o}=e;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let s=a.length>=o.opts.loopEnum,c,l=()=>c??(c=(0,Jv.useFunc)(t,Wv.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let u=t.const("vSchema",i);d=(0,Yn.or)(...a.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",i,u=>t.if((0,Yn._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=a[m];return typeof g=="object"&&g!==null?(0,Yn._)`${l()}(${r}, ${u}[${m}])`:(0,Yn._)`${r} === ${g}`}}};Ys.default=Kv});var lu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Yv=Hp(),Hv=Xp(),Xv=eu(),Zv=tu(),Qv=ru(),eb=nu(),tb=au(),rb=ou(),nb=su(),ab=cu(),ib=[Yv.default,Hv.default,Xv.default,Zv.default,Qv.default,eb.default,tb.default,rb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},nb.default,ab.default];Hs.default=ib});var Zs=E(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.validateAdditionalItems=void 0;var hr=x(),Xs=q(),ob={message:({params:{len:e}})=>(0,hr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,hr._)`{limit: ${e}}`},sb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:ob,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Xs.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}du(e,n)}};function du(e,t){let{gen:r,schema:n,data:a,keyword:i,it:o}=e;o.items=!0;let s=r.const("len",(0,hr._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,hr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Xs.alwaysValidSchema)(o,n)){let l=r.var("valid",(0,hr._)`${s} <= ${t.length}`);r.if((0,hr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:i,dataProp:d,dataPropType:Xs.Type.Num},l),o.allErrors||r.if((0,hr.not)(l),()=>r.break())})}}Hn.validateAdditionalItems=du;Hn.default=sb});var Qs=E(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});Xn.validateTuple=void 0;var pu=x(),ui=q(),cb=et(),lb={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return uu(e,"additionalItems",t);r.items=!0,!(0,ui.alwaysValidSchema)(r,t)&&e.ok((0,cb.validateArray)(e))}};function uu(e,t,r=e.schema){let{gen:n,parentSchema:a,data:i,keyword:o,it:s}=e;d(a),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=ui.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,pu._)`${i}.length`);r.forEach((p,f)=>{(0,ui.alwaysValidSchema)(s,p)||(n.if((0,pu._)`${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,ui.checkStrictMode)(s,h,f.strictTuples)}}}Xn.validateTuple=uu;Xn.default=lb});var fu=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var db=Qs(),pb={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,db.validateTuple)(e,"items")};ec.default=pb});var gu=E(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var mu=x(),ub=q(),fb=et(),mb=Zs(),gb={message:({params:{len:e}})=>(0,mu.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,mu._)`{limit: ${e}}`},hb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:gb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:a}=r;n.items=!0,!(0,ub.alwaysValidSchema)(n,t)&&(a?(0,mb.validateAdditionalItems)(e,a):e.ok((0,fb.validateArray)(e)))}};tc.default=hb});var hu=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var rt=x(),fi=q(),yb={message:({params:{min:e,max:t}})=>t===void 0?(0,rt.str)`must contain at least ${e} valid item(s)`:(0,rt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,rt._)`{minContains: ${e}}`:(0,rt._)`{minContains: ${e}, maxContains: ${t}}`},wb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:yb,code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:i}=e,o,s,{minContains:c,maxContains:l}=n;i.opts.next?(o=c===void 0?1:c,s=l):o=1;let d=t.const("len",(0,rt._)`${a}.length`);if(e.setParams({min:o,max:s}),s===void 0&&o===0){(0,fi.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,fi.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fi.alwaysValidSchema)(i,r)){let g=(0,rt._)`${d} >= ${o}`;s!==void 0&&(g=(0,rt._)`${g} && ${d} <= ${s}`),e.pass(g);return}i.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,rt._)`${a}.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:fi.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,rt._)`${g}++`),s===void 0?t.if((0,rt._)`${g} >= ${o}`,()=>t.assign(p,!0).break()):(t.if((0,rt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),o===1?t.assign(p,!0):t.if((0,rt._)`${g} >= ${o}`,()=>t.assign(p,!0)))}}};rc.default=wb});var mi=E(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.validateSchemaDeps=At.validatePropertyDeps=At.error=void 0;var nc=x(),Ib=q(),Zn=et();At.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,nc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,nc._)`{property: ${e},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${t},
8
- deps: ${r}}`};var vb={keyword:"dependencies",type:"object",schemaType:"object",error:At.error,code(e){let[t,r]=bb(e);yu(e,t),wu(e,r)}};function bb({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let a=Array.isArray(e[n])?t:r;a[n]=e[n]}return[t,r]}function yu(e,t=e.schema){let{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;let i=r.let("missing");for(let o in t){let s=t[o];if(s.length===0)continue;let c=(0,Zn.propertyInData)(r,n,o,a.opts.ownProperties);e.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),a.allErrors?r.if(c,()=>{for(let d of s)(0,Zn.checkReportMissingProp)(e,d)}):(r.if((0,nc._)`${c} && (${(0,Zn.checkMissingProp)(e,s,i)})`),(0,Zn.reportMissingProp)(e,i),r.else())}}At.validatePropertyDeps=yu;function wu(e,t=e.schema){let{gen:r,data:n,keyword:a,it:i}=e,o=r.name("valid");for(let s in t)(0,Ib.alwaysValidSchema)(i,t[s])||(r.if((0,Zn.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=e.subschema({keyword:a,schemaProp:s},o);e.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),e.ok(o))}At.validateSchemaDeps=wu;At.default=vb});var vu=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var Iu=x(),kb=q(),Rb={message:"property name must be valid",params:({params:e})=>(0,Iu._)`{propertyName: ${e.propertyName}}`},_b={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Rb,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,kb.alwaysValidSchema)(a,r))return;let i=t.name("valid");t.forIn("key",n,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},i),t.if((0,Iu.not)(i),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(i)}};ac.default=_b});var oc=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var gi=et(),mt=x(),Ab=Qe(),hi=q(),Eb={message:"must NOT have additional properties",params:({params:e})=>(0,mt._)`{additionalProperty: ${e.additionalProperty}}`},Pb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Eb,code(e){let{gen:t,schema:r,parentSchema:n,data:a,errsCount:i,it:o}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,hi.alwaysValidSchema)(o,r))return;let d=(0,gi.allSchemaProperties)(n.properties),l=(0,gi.allSchemaProperties)(n.patternProperties);p(),e.ok((0,mt._)`${i} === ${Ab.default.errors}`);function p(){t.forIn("key",a,h=>{!d.length&&!l.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(d.length>8){let _=(0,hi.schemaRefOrVal)(o,n.properties,"properties");w=(0,gi.isOwnProperty)(t,_,h)}else d.length?w=(0,mt.or)(...d.map(_=>(0,mt._)`${h} === ${_}`)):w=mt.nil;return l.length&&(w=(0,mt.or)(w,...l.map(_=>(0,mt._)`${(0,gi.usePattern)(e,_)}.test(${h})`))),(0,mt.not)(w)}function u(h){t.code((0,mt._)`delete ${a}[${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,hi.alwaysValidSchema)(o,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,mt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,mt.not)(w),()=>t.break()))}}function g(h,w,_){let v={keyword:"additionalProperties",dataProp:h,dataPropType:hi.Type.Str};_===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};ic.default=Pb});var Ru=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Nb=xn(),bu=et(),sc=q(),ku=oc(),Ob={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:i}=e;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&ku.default.code(new Nb.KeywordCxt(i,ku.default,"additionalProperties"));let o=(0,bu.allSchemaProperties)(r);for(let p of o)i.definedProperties.add(p);i.opts.unevaluated&&o.length&&i.props!==!0&&(i.props=sc.mergeEvaluated.props(t,(0,sc.toHash)(o),i.props));let s=o.filter(p=>!(0,sc.alwaysValidSchema)(i,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)d(p)?l(p):(t.if((0,bu.propertyInData)(t,a,p,i.opts.ownProperties)),l(p),i.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function d(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function l(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};cc.default=Ob});var Pu=E(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var _u=et(),yi=x(),Au=q(),Eu=q(),Sb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:a,it:i}=e,{opts:o}=i,s=(0,_u.allSchemaProperties)(r),c=s.filter(g=>(0,Au.alwaysValidSchema)(i,r[g]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let d=o.strictSchema&&!o.allowMatchingProperties&&a.properties,l=t.name("valid");i.props!==!0&&!(i.props instanceof yi.Name)&&(i.props=(0,Eu.evaluatedPropsToName)(t,i.props));let{props:p}=i;f();function f(){for(let g of s)d&&u(g),i.allErrors?m(g):(t.var(l,!0),m(g),t.if(l))}function u(g){for(let h in d)new RegExp(g).test(h)&&(0,Au.checkStrictMode)(i,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,yi._)`${(0,_u.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Eu.Type.Str},l),i.opts.unevaluated&&p!==!0?t.assign((0,yi._)`${p}[${h}]`,!0):!w&&!i.allErrors&&t.if((0,yi.not)(l),()=>t.break())})})}}};lc.default=Sb});var Nu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var Db=q(),jb={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Db.alwaysValidSchema)(n,r)){e.fail();return}let a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};dc.default=jb});var Ou=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var $b=et(),Cb={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:$b.validateUnion,error:{message:"must match a schema in anyOf"}};pc.default=Cb});var Su=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var wi=x(),Tb=q(),Lb={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,wi._)`{passingSchemas: ${e.passing}}`},xb={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Lb,code(e){let{gen:t,schema:r,parentSchema:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let i=r,o=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(d),e.result(o,()=>e.reset(),()=>e.error(!0));function d(){i.forEach((l,p)=>{let f;(0,Tb.alwaysValidSchema)(a,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,wi._)`${c} && ${o}`).assign(o,!1).assign(s,(0,wi._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(s,p),f&&e.mergeEvaluated(f,wi.Name)})})}}};uc.default=xb});var Du=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var Vb=q(),Mb={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 a=t.name("valid");r.forEach((i,o)=>{if((0,Vb.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:o},a);e.ok(a),e.mergeEvaluated(s)})}};fc.default=Mb});var Cu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Ii=x(),$u=q(),Ub={message:({params:e})=>(0,Ii.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Ii._)`{failingKeyword: ${e.ifClause}}`},Fb={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Ub,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,$u.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=ju(n,"then"),i=ju(n,"else");if(!a&&!i)return;let o=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),a&&i){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(s,d("then",l),d("else",l))}else a?t.if(s,d("then")):t.if((0,Ii.not)(s),d("else"));e.pass(o,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(l)}function d(l,p){return()=>{let f=e.subschema({keyword:l},s);t.assign(o,s),e.mergeValidEvaluated(f,o),p?t.assign(p,(0,Ii._)`${l}`):e.setParams({ifClause:l})}}}};function ju(e,t){let r=e.schema[t];return r!==void 0&&!(0,$u.alwaysValidSchema)(e,r)}mc.default=Fb});var Tu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var qb=q(),Bb={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,qb.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};gc.default=Bb});var Lu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var zb=Zs(),Jb=fu(),Wb=Qs(),Gb=gu(),Kb=hu(),Yb=mi(),Hb=vu(),Xb=oc(),Zb=Ru(),Qb=Pu(),ek=Nu(),tk=Ou(),rk=Su(),nk=Du(),ak=Cu(),ik=Tu();function ok(e=!1){let t=[ek.default,tk.default,rk.default,nk.default,ak.default,ik.default,Hb.default,Xb.default,Yb.default,Zb.default,Qb.default];return e?t.push(Jb.default,Gb.default):t.push(zb.default,Wb.default),t.push(Kb.default),t}hc.default=ok});var wc=E(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.dynamicAnchor=void 0;var yc=x(),sk=Qe(),xu=Mn(),ck=ci(),lk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Vu(e,e.schema)};function Vu(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let a=(0,yc._)`${sk.default.dynamicAnchors}${(0,yc.getProperty)(t)}`,i=n.errSchemaPath==="#"?n.validateName:dk(e);r.if((0,yc._)`!${a}`,()=>r.assign(a,i))}Qn.dynamicAnchor=Vu;function dk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:a,baseId:i,localRefs:o,meta:s}=t.root,{schemaId:c}=n.opts,d=new xu.SchemaEnv({schema:r,schemaId:c,root:a,baseId:i,localRefs:o,meta:s});return xu.compileSchema.call(n,d),(0,ck.getValidate)(e,d)}Qn.default=lk});var Ic=E(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.dynamicRef=void 0;var Mu=x(),pk=Qe(),Uu=ci(),uk={keyword:"$dynamicRef",schemaType:"string",code:e=>Fu(e,e.schema)};function Fu(e,t){let{gen:r,keyword:n,it:a}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let i=t.slice(1);if(a.allErrors)o();else{let c=r.let("valid",!1);o(c),e.ok(c)}function o(c){if(a.schemaEnv.root.dynamicAnchors[i]){let d=r.let("_v",(0,Mu._)`${pk.default.dynamicAnchors}${(0,Mu.getProperty)(i)}`);r.if(d,s(d,c),s(a.validateName,c))}else s(a.validateName,c)()}function s(c,d){return d?()=>r.block(()=>{(0,Uu.callRef)(e,c),r.let(d,!0)}):()=>(0,Uu.callRef)(e,c)}}ea.dynamicRef=Fu;ea.default=uk});var qu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var fk=wc(),mk=q(),gk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,fk.dynamicAnchor)(e,""):(0,mk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};vc.default=gk});var Bu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var hk=Ic(),yk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,hk.dynamicRef)(e,e.schema)};bc.default=yk});var zu=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var wk=wc(),Ik=Ic(),vk=qu(),bk=Bu(),kk=[wk.default,Ik.default,vk.default,bk.default];kc.default=kk});var Wu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var Ju=mi(),Rk={keyword:"dependentRequired",type:"object",schemaType:"object",error:Ju.error,code:e=>(0,Ju.validatePropertyDeps)(e)};Rc.default=Rk});var Gu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var _k=mi(),Ak={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,_k.validateSchemaDeps)(e)};_c.default=Ak});var Ku=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var Ek=q(),Pk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Ek.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Ac.default=Pk});var Yu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var Nk=Wu(),Ok=Gu(),Sk=Ku(),Dk=[Nk.default,Ok.default,Sk.default];Ec.default=Dk});var Xu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Kt=x(),Hu=q(),jk=Qe(),$k={message:"must NOT have unevaluated properties",params:({params:e})=>(0,Kt._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},Ck={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:$k,code(e){let{gen:t,schema:r,data:n,errsCount:a,it:i}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:o,props:s}=i;s instanceof Kt.Name?t.if((0,Kt._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(d(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(l(s,p),()=>c(p))),i.props=!0,e.ok((0,Kt._)`${a} === ${jk.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),o||t.break();return}if(!(0,Hu.alwaysValidSchema)(i,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Hu.Type.Str},f),o||t.if((0,Kt.not)(f),()=>t.break())}}function d(p,f){return(0,Kt._)`!${p} || !${p}[${f}]`}function l(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,Kt._)`${f} !== ${m}`);return(0,Kt.and)(...u)}}};Pc.default=Ck});var Qu=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var yr=x(),Zu=q(),Tk={message:({params:{len:e}})=>(0,yr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,yr._)`{limit: ${e}}`},Lk={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:Tk,code(e){let{gen:t,schema:r,data:n,it:a}=e,i=a.items||0;if(i===!0)return;let o=t.const("len",(0,yr._)`${n}.length`);if(r===!1)e.setParams({len:i}),e.fail((0,yr._)`${o} > ${i}`);else if(typeof r=="object"&&!(0,Zu.alwaysValidSchema)(a,r)){let c=t.var("valid",(0,yr._)`${o} <= ${i}`);t.if((0,yr.not)(c),()=>s(c,i)),e.ok(c)}a.items=!0;function s(c,d){t.forRange("i",d,o,l=>{e.subschema({keyword:"unevaluatedItems",dataProp:l,dataPropType:Zu.Type.Num},c),a.allErrors||t.if((0,yr.not)(c),()=>t.break())})}}};Nc.default=Lk});var ef=E(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var xk=Xu(),Vk=Qu(),Mk=[xk.default,Vk.default];Oc.default=Mk});var tf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var he=x(),Uk={message:({schemaCode:e})=>(0,he.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,he._)`{format: ${e}}`},Fk={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Uk,code(e,t){let{gen:r,data:n,$data:a,schema:i,schemaCode:o,it:s}=e,{opts:c,errSchemaPath:d,schemaEnv:l,self:p}=s;if(!c.validateFormats)return;a?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,he._)`${m}[${o}]`),h=r.let("fType"),w=r.let("format");r.if((0,he._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,he._)`${g}.type || "string"`).assign(w,(0,he._)`${g}.validate`),()=>r.assign(h,(0,he._)`"string"`).assign(w,g)),e.fail$data((0,he.or)(_(),v()));function _(){return c.strictSchema===!1?he.nil:(0,he._)`${o} && !${w}`}function v(){let A=l.$async?(0,he._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,he._)`${w}(${n})`,I=(0,he._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,he._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[i];if(!m){_();return}if(m===!0)return;let[g,h,w]=v(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 "${d}"`}}function v(I){let R=I instanceof RegExp?(0,he.regexpCode)(I):c.code.formats?(0,he._)`${c.code.formats}${(0,he.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,he._)`${S}.validate`]:["string",I,S]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!l.$async)throw new Error("async format in sync schema");return(0,he._)`await ${w}(${n})`}return typeof h=="function"?(0,he._)`${w}(${n})`:(0,he._)`${w}.test(${n})`}}}};Sc.default=Fk});var rf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var qk=tf(),Bk=[qk.default];Dc.default=Bk});var nf=E(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.contentVocabulary=Qr.metadataVocabulary=void 0;Qr.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Qr.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var of=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var zk=Yp(),Jk=lu(),Wk=Lu(),Gk=zu(),Kk=Yu(),Yk=ef(),Hk=rf(),af=nf(),Xk=[Gk.default,zk.default,Jk.default,(0,Wk.default)(!0),Hk.default,af.metadataVocabulary,af.contentVocabulary,Kk.default,Yk.default];jc.default=Xk});var cf=E(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.DiscrError=void 0;var sf;(function(e){e.Tag="tag",e.Mapping="mapping"})(sf||(vi.DiscrError=sf={}))});var df=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var en=x(),$c=cf(),lf=Mn(),Zk=Vn(),Qk=q(),eR={message:({params:{discrError:e,tagName:t}})=>e===$c.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,en._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},tR={keyword:"discriminator",type:"object",schemaType:"object",error:eR,code(e){let{gen:t,data:r,schema:n,parentSchema:a,it:i}=e,{oneOf:o}=a;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(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),d=t.const("tag",(0,en._)`${r}${(0,en.getProperty)(s)}`);t.if((0,en._)`typeof ${d} == "string"`,()=>l(),()=>e.error(!1,{discrError:$c.DiscrError.Tag,tag:d,tagName:s})),e.ok(c);function l(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,en._)`${d} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:$c.DiscrError.Mapping,tag:d,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,en.Name),m}function f(){var u;let m={},g=w(a),h=!0;for(let A=0;A<o.length;A++){let I=o[A];if(I?.$ref&&!(0,Qk.schemaHasRulesButRef)(I,i.self.RULES)){let S=I.$ref;if(I=lf.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,S),I instanceof lf.SchemaEnv&&(I=I.schema),I===void 0)throw new Zk.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)v(A.const,I);else if(A.enum)for(let R of A.enum)v(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function v(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};Cc.default=tR});var pf=E((JN,rR)=>{rR.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 uf=E((WN,nR)=>{nR.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 ff=E((GN,aR)=>{aR.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 mf=E((KN,iR)=>{iR.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 gf=E((YN,oR)=>{oR.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 hf=E((HN,sR)=>{sR.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 yf=E((XN,cR)=>{cR.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 wf=E((ZN,lR)=>{lR.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 If=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var dR=pf(),pR=uf(),uR=ff(),fR=mf(),mR=gf(),gR=hf(),hR=yf(),yR=wf(),wR=["/properties"];function IR(e){return[dR,pR,uR,fR,mR,t(this,gR),hR,t(this,yR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,wR):n}}Tc.default=IR});var wr=E((de,xc)=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.MissingRefError=de.ValidationError=de.CodeGen=de.Name=de.nil=de.stringify=de.str=de._=de.KeywordCxt=de.Ajv2020=void 0;var vR=zp(),bR=of(),kR=df(),RR=If(),Lc="https://json-schema.org/draft/2020-12/schema",tn=class extends vR.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(kR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(RR.default.call(this,t),this.refs["http://json-schema.org/schema"]=Lc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Lc)?Lc:void 0)}};de.Ajv2020=tn;xc.exports=de=tn;xc.exports.Ajv2020=tn;Object.defineProperty(de,"__esModule",{value:!0});de.default=tn;var _R=xn();Object.defineProperty(de,"KeywordCxt",{enumerable:!0,get:function(){return _R.KeywordCxt}});var rn=x();Object.defineProperty(de,"_",{enumerable:!0,get:function(){return rn._}});Object.defineProperty(de,"str",{enumerable:!0,get:function(){return rn.str}});Object.defineProperty(de,"stringify",{enumerable:!0,get:function(){return rn.stringify}});Object.defineProperty(de,"nil",{enumerable:!0,get:function(){return rn.nil}});Object.defineProperty(de,"Name",{enumerable:!0,get:function(){return rn.Name}});Object.defineProperty(de,"CodeGen",{enumerable:!0,get:function(){return rn.CodeGen}});var AR=Za();Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return AR.default}});var ER=Vn();Object.defineProperty(de,"MissingRefError",{enumerable:!0,get:function(){return ER.default}})});import lt from"node:process";import kn from"node:path";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",kt="^sha256:[a-f0-9]{64}$";import{constants as Mi}from"node:fs";import{lstat as r_,mkdir as un,open as Lf,readFile as ca,realpath as Ar,rename as n_,unlink as el}from"node:fs/promises";import{randomUUID as tl}from"node:crypto";import ve from"node:path";var vf=Fr(wr(),1);var _e={type:"string",pattern:kt},PR={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Vc={type:"string",format:"date-time"},Mc={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}}},Uc={$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:_e,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: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:_e,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:Mc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},kf={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:_e,deliveryReceiptId:_e,usage:{enum:["runtime","development"]}}},{$id:tO,...Rf}=Uc,NR={...Rf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Uc.required,"availability","packageSources"],properties:{...Uc.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:kf}}},OR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Rf,(()=>{let{$id:e,...t}=NR;return t})()]},bi={$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:Mc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Mc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:_e,stderrDigest:_e,startedAt:Vc,completedAt:Vc,projectStateDigest:_e,runtime:bf}},SR={...bi,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...bi.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...bi.properties,evidenceId:_e,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:_e}},DR={$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:_e,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:_e,projectStateDigest:_e,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:_e,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:_e},committedAt:Vc,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:PR,revision:_e}}},sources:{type:"array",minItems:1,maxItems:128,items:kf},packageJsonDigest:_e,lockfileDigest:_e}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},ta=new vf.Ajv2020({allErrors:!0,strict:!0});ta.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Ri={capabilityBundleRelease:ta.compile(OR),verificationResult:ta.compile(bi),adoptionEvidence:ta.compile(SR),projectAdoptionLock:ta.compile(DR)},ki=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function _i(e,t,r){if(!t(r))throw new ki(e,t.errors??[]);return r}var _f=e=>{let t=_i("capabilityBundleRelease",Ri.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new ki("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 a="",i=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(a)<=0||i.has(c))&&r(),a=c,i.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},Af=e=>_i("verificationResult",Ri.verificationResult,e),ra=e=>_i("adoptionEvidence",Ri.adoptionEvidence,e),Me=e=>_i("projectAdoptionLock",Ri.projectAdoptionLock,e);import{lstat as UR,readFile as zc,realpath as Jc}from"node:fs/promises";import an from"node:path";import{createHash as jR}from"node:crypto";function y(e){return`sha256:${jR("sha256").update(e).digest("hex")}`}function b(e){return Array.isArray(e)?`[${e.map(b).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)}:${b(n)}`).join(",")}}`:JSON.stringify(e)}var Et=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Ef(e){if(!new RegExp(Z).test(e))throw new Et("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ai(e,t){if(e.includes("\r"))throw new Et("Managed regions require LF newlines");let{begin:r,end:n}=Ef(t),a=e.split(r).length-1,i=e.split(n).length-1;if(a!==1||i!==1)throw new Et("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 Et("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
8
+ deps: ${r}}`};var vb={keyword:"dependencies",type:"object",schemaType:"object",error:At.error,code(e){let[t,r]=bb(e);yu(e,t),wu(e,r)}};function bb({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let a=Array.isArray(e[n])?t:r;a[n]=e[n]}return[t,r]}function yu(e,t=e.schema){let{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;let i=r.let("missing");for(let o in t){let s=t[o];if(s.length===0)continue;let c=(0,Zn.propertyInData)(r,n,o,a.opts.ownProperties);e.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),a.allErrors?r.if(c,()=>{for(let l of s)(0,Zn.checkReportMissingProp)(e,l)}):(r.if((0,nc._)`${c} && (${(0,Zn.checkMissingProp)(e,s,i)})`),(0,Zn.reportMissingProp)(e,i),r.else())}}At.validatePropertyDeps=yu;function wu(e,t=e.schema){let{gen:r,data:n,keyword:a,it:i}=e,o=r.name("valid");for(let s in t)(0,Ib.alwaysValidSchema)(i,t[s])||(r.if((0,Zn.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=e.subschema({keyword:a,schemaProp:s},o);e.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),e.ok(o))}At.validateSchemaDeps=wu;At.default=vb});var vu=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var Iu=x(),kb=q(),Rb={message:"property name must be valid",params:({params:e})=>(0,Iu._)`{propertyName: ${e.propertyName}}`},_b={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Rb,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,kb.alwaysValidSchema)(a,r))return;let i=t.name("valid");t.forIn("key",n,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},i),t.if((0,Iu.not)(i),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(i)}};ac.default=_b});var oc=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var gi=et(),mt=x(),Ab=Qe(),hi=q(),Eb={message:"must NOT have additional properties",params:({params:e})=>(0,mt._)`{additionalProperty: ${e.additionalProperty}}`},Pb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Eb,code(e){let{gen:t,schema:r,parentSchema:n,data:a,errsCount:i,it:o}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,hi.alwaysValidSchema)(o,r))return;let l=(0,gi.allSchemaProperties)(n.properties),d=(0,gi.allSchemaProperties)(n.patternProperties);p(),e.ok((0,mt._)`${i} === ${Ab.default.errors}`);function p(){t.forIn("key",a,h=>{!l.length&&!d.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(l.length>8){let _=(0,hi.schemaRefOrVal)(o,n.properties,"properties");w=(0,gi.isOwnProperty)(t,_,h)}else l.length?w=(0,mt.or)(...l.map(_=>(0,mt._)`${h} === ${_}`)):w=mt.nil;return d.length&&(w=(0,mt.or)(w,...d.map(_=>(0,mt._)`${(0,gi.usePattern)(e,_)}.test(${h})`))),(0,mt.not)(w)}function u(h){t.code((0,mt._)`delete ${a}[${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,hi.alwaysValidSchema)(o,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,mt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,mt.not)(w),()=>t.break()))}}function g(h,w,_){let v={keyword:"additionalProperties",dataProp:h,dataPropType:hi.Type.Str};_===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};ic.default=Pb});var Ru=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Nb=xn(),bu=et(),sc=q(),ku=oc(),Ob={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:i}=e;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&ku.default.code(new Nb.KeywordCxt(i,ku.default,"additionalProperties"));let o=(0,bu.allSchemaProperties)(r);for(let p of o)i.definedProperties.add(p);i.opts.unevaluated&&o.length&&i.props!==!0&&(i.props=sc.mergeEvaluated.props(t,(0,sc.toHash)(o),i.props));let s=o.filter(p=>!(0,sc.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,bu.propertyInData)(t,a,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)}}};cc.default=Ob});var Pu=E(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var _u=et(),yi=x(),Au=q(),Eu=q(),Sb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:a,it:i}=e,{opts:o}=i,s=(0,_u.allSchemaProperties)(r),c=s.filter(g=>(0,Au.alwaysValidSchema)(i,r[g]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let l=o.strictSchema&&!o.allowMatchingProperties&&a.properties,d=t.name("valid");i.props!==!0&&!(i.props instanceof yi.Name)&&(i.props=(0,Eu.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,Au.checkStrictMode)(i,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,yi._)`${(0,_u.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Eu.Type.Str},d),i.opts.unevaluated&&p!==!0?t.assign((0,yi._)`${p}[${h}]`,!0):!w&&!i.allErrors&&t.if((0,yi.not)(d),()=>t.break())})})}}};lc.default=Sb});var Nu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var Db=q(),jb={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Db.alwaysValidSchema)(n,r)){e.fail();return}let a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};dc.default=jb});var Ou=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var $b=et(),Cb={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:$b.validateUnion,error:{message:"must match a schema in anyOf"}};pc.default=Cb});var Su=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var wi=x(),Tb=q(),Lb={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,wi._)`{passingSchemas: ${e.passing}}`},xb={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Lb,code(e){let{gen:t,schema:r,parentSchema:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let i=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(){i.forEach((d,p)=>{let f;(0,Tb.alwaysValidSchema)(a,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,wi._)`${c} && ${o}`).assign(o,!1).assign(s,(0,wi._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(s,p),f&&e.mergeEvaluated(f,wi.Name)})})}}};uc.default=xb});var Du=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var Vb=q(),Mb={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 a=t.name("valid");r.forEach((i,o)=>{if((0,Vb.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:o},a);e.ok(a),e.mergeEvaluated(s)})}};fc.default=Mb});var Cu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Ii=x(),$u=q(),Ub={message:({params:e})=>(0,Ii.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Ii._)`{failingKeyword: ${e.ifClause}}`},Fb={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Ub,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,$u.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=ju(n,"then"),i=ju(n,"else");if(!a&&!i)return;let o=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),a&&i){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else a?t.if(s,l("then")):t.if((0,Ii.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,Ii._)`${d}`):e.setParams({ifClause:d})}}}};function ju(e,t){let r=e.schema[t];return r!==void 0&&!(0,$u.alwaysValidSchema)(e,r)}mc.default=Fb});var Tu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var qb=q(),Bb={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,qb.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};gc.default=Bb});var Lu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var zb=Zs(),Jb=fu(),Wb=Qs(),Gb=gu(),Kb=hu(),Yb=mi(),Hb=vu(),Xb=oc(),Zb=Ru(),Qb=Pu(),ek=Nu(),tk=Ou(),rk=Su(),nk=Du(),ak=Cu(),ik=Tu();function ok(e=!1){let t=[ek.default,tk.default,rk.default,nk.default,ak.default,ik.default,Hb.default,Xb.default,Yb.default,Zb.default,Qb.default];return e?t.push(Jb.default,Gb.default):t.push(zb.default,Wb.default),t.push(Kb.default),t}hc.default=ok});var wc=E(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.dynamicAnchor=void 0;var yc=x(),sk=Qe(),xu=Mn(),ck=ci(),lk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Vu(e,e.schema)};function Vu(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let a=(0,yc._)`${sk.default.dynamicAnchors}${(0,yc.getProperty)(t)}`,i=n.errSchemaPath==="#"?n.validateName:dk(e);r.if((0,yc._)`!${a}`,()=>r.assign(a,i))}Qn.dynamicAnchor=Vu;function dk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:a,baseId:i,localRefs:o,meta:s}=t.root,{schemaId:c}=n.opts,l=new xu.SchemaEnv({schema:r,schemaId:c,root:a,baseId:i,localRefs:o,meta:s});return xu.compileSchema.call(n,l),(0,ck.getValidate)(e,l)}Qn.default=lk});var Ic=E(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.dynamicRef=void 0;var Mu=x(),pk=Qe(),Uu=ci(),uk={keyword:"$dynamicRef",schemaType:"string",code:e=>Fu(e,e.schema)};function Fu(e,t){let{gen:r,keyword:n,it:a}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let i=t.slice(1);if(a.allErrors)o();else{let c=r.let("valid",!1);o(c),e.ok(c)}function o(c){if(a.schemaEnv.root.dynamicAnchors[i]){let l=r.let("_v",(0,Mu._)`${pk.default.dynamicAnchors}${(0,Mu.getProperty)(i)}`);r.if(l,s(l,c),s(a.validateName,c))}else s(a.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,Uu.callRef)(e,c),r.let(l,!0)}):()=>(0,Uu.callRef)(e,c)}}ea.dynamicRef=Fu;ea.default=uk});var qu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var fk=wc(),mk=q(),gk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,fk.dynamicAnchor)(e,""):(0,mk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};vc.default=gk});var Bu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var hk=Ic(),yk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,hk.dynamicRef)(e,e.schema)};bc.default=yk});var zu=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var wk=wc(),Ik=Ic(),vk=qu(),bk=Bu(),kk=[wk.default,Ik.default,vk.default,bk.default];kc.default=kk});var Wu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var Ju=mi(),Rk={keyword:"dependentRequired",type:"object",schemaType:"object",error:Ju.error,code:e=>(0,Ju.validatePropertyDeps)(e)};Rc.default=Rk});var Gu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var _k=mi(),Ak={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,_k.validateSchemaDeps)(e)};_c.default=Ak});var Ku=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var Ek=q(),Pk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Ek.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Ac.default=Pk});var Yu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var Nk=Wu(),Ok=Gu(),Sk=Ku(),Dk=[Nk.default,Ok.default,Sk.default];Ec.default=Dk});var Xu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Kt=x(),Hu=q(),jk=Qe(),$k={message:"must NOT have unevaluated properties",params:({params:e})=>(0,Kt._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},Ck={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:$k,code(e){let{gen:t,schema:r,data:n,errsCount:a,it:i}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:o,props:s}=i;s instanceof Kt.Name?t.if((0,Kt._)`${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,Kt._)`${a} === ${jk.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),o||t.break();return}if(!(0,Hu.alwaysValidSchema)(i,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Hu.Type.Str},f),o||t.if((0,Kt.not)(f),()=>t.break())}}function l(p,f){return(0,Kt._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,Kt._)`${f} !== ${m}`);return(0,Kt.and)(...u)}}};Pc.default=Ck});var Qu=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var yr=x(),Zu=q(),Tk={message:({params:{len:e}})=>(0,yr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,yr._)`{limit: ${e}}`},Lk={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:Tk,code(e){let{gen:t,schema:r,data:n,it:a}=e,i=a.items||0;if(i===!0)return;let o=t.const("len",(0,yr._)`${n}.length`);if(r===!1)e.setParams({len:i}),e.fail((0,yr._)`${o} > ${i}`);else if(typeof r=="object"&&!(0,Zu.alwaysValidSchema)(a,r)){let c=t.var("valid",(0,yr._)`${o} <= ${i}`);t.if((0,yr.not)(c),()=>s(c,i)),e.ok(c)}a.items=!0;function s(c,l){t.forRange("i",l,o,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:Zu.Type.Num},c),a.allErrors||t.if((0,yr.not)(c),()=>t.break())})}}};Nc.default=Lk});var ef=E(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var xk=Xu(),Vk=Qu(),Mk=[xk.default,Vk.default];Oc.default=Mk});var tf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var ye=x(),Uk={message:({schemaCode:e})=>(0,ye.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ye._)`{format: ${e}}`},Fk={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Uk,code(e,t){let{gen:r,data:n,$data:a,schema:i,schemaCode:o,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;a?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,ye._)`${m}[${o}]`),h=r.let("fType"),w=r.let("format");r.if((0,ye._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,ye._)`${g}.type || "string"`).assign(w,(0,ye._)`${g}.validate`),()=>r.assign(h,(0,ye._)`"string"`).assign(w,g)),e.fail$data((0,ye.or)(_(),v()));function _(){return c.strictSchema===!1?ye.nil:(0,ye._)`${o} && !${w}`}function v(){let A=d.$async?(0,ye._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ye._)`${w}(${n})`,I=(0,ye._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,ye._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[i];if(!m){_();return}if(m===!0)return;let[g,h,w]=v(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 v(I){let R=I instanceof RegExp?(0,ye.regexpCode)(I):c.code.formats?(0,ye._)`${c.code.formats}${(0,ye.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,ye._)`${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,ye._)`await ${w}(${n})`}return typeof h=="function"?(0,ye._)`${w}(${n})`:(0,ye._)`${w}.test(${n})`}}}};Sc.default=Fk});var rf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var qk=tf(),Bk=[qk.default];Dc.default=Bk});var nf=E(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.contentVocabulary=en.metadataVocabulary=void 0;en.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];en.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var of=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var zk=Yp(),Jk=lu(),Wk=Lu(),Gk=zu(),Kk=Yu(),Yk=ef(),Hk=rf(),af=nf(),Xk=[Gk.default,zk.default,Jk.default,(0,Wk.default)(!0),Hk.default,af.metadataVocabulary,af.contentVocabulary,Kk.default,Yk.default];jc.default=Xk});var cf=E(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.DiscrError=void 0;var sf;(function(e){e.Tag="tag",e.Mapping="mapping"})(sf||(vi.DiscrError=sf={}))});var df=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var tn=x(),$c=cf(),lf=Mn(),Zk=Vn(),Qk=q(),eR={message:({params:{discrError:e,tagName:t}})=>e===$c.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,tn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},tR={keyword:"discriminator",type:"object",schemaType:"object",error:eR,code(e){let{gen:t,data:r,schema:n,parentSchema:a,it:i}=e,{oneOf:o}=a;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(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,tn._)`${r}${(0,tn.getProperty)(s)}`);t.if((0,tn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:$c.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,tn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:$c.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,tn.Name),m}function f(){var u;let m={},g=w(a),h=!0;for(let A=0;A<o.length;A++){let I=o[A];if(I?.$ref&&!(0,Qk.schemaHasRulesButRef)(I,i.self.RULES)){let S=I.$ref;if(I=lf.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,S),I instanceof lf.SchemaEnv&&(I=I.schema),I===void 0)throw new Zk.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)v(A.const,I);else if(A.enum)for(let R of A.enum)v(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function v(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};Cc.default=tR});var pf=E((WN,rR)=>{rR.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 uf=E((GN,nR)=>{nR.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 ff=E((KN,aR)=>{aR.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 mf=E((YN,iR)=>{iR.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 gf=E((HN,oR)=>{oR.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 hf=E((XN,sR)=>{sR.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 yf=E((ZN,cR)=>{cR.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 wf=E((QN,lR)=>{lR.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 If=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var dR=pf(),pR=uf(),uR=ff(),fR=mf(),mR=gf(),gR=hf(),hR=yf(),yR=wf(),wR=["/properties"];function IR(e){return[dR,pR,uR,fR,mR,t(this,gR),hR,t(this,yR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,wR):n}}Tc.default=IR});var wr=E((de,xc)=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.MissingRefError=de.ValidationError=de.CodeGen=de.Name=de.nil=de.stringify=de.str=de._=de.KeywordCxt=de.Ajv2020=void 0;var vR=zp(),bR=of(),kR=df(),RR=If(),Lc="https://json-schema.org/draft/2020-12/schema",rn=class extends vR.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(kR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(RR.default.call(this,t),this.refs["http://json-schema.org/schema"]=Lc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Lc)?Lc:void 0)}};de.Ajv2020=rn;xc.exports=de=rn;xc.exports.Ajv2020=rn;Object.defineProperty(de,"__esModule",{value:!0});de.default=rn;var _R=xn();Object.defineProperty(de,"KeywordCxt",{enumerable:!0,get:function(){return _R.KeywordCxt}});var nn=x();Object.defineProperty(de,"_",{enumerable:!0,get:function(){return nn._}});Object.defineProperty(de,"str",{enumerable:!0,get:function(){return nn.str}});Object.defineProperty(de,"stringify",{enumerable:!0,get:function(){return nn.stringify}});Object.defineProperty(de,"nil",{enumerable:!0,get:function(){return nn.nil}});Object.defineProperty(de,"Name",{enumerable:!0,get:function(){return nn.Name}});Object.defineProperty(de,"CodeGen",{enumerable:!0,get:function(){return nn.CodeGen}});var AR=Za();Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return AR.default}});var ER=Vn();Object.defineProperty(de,"MissingRefError",{enumerable:!0,get:function(){return ER.default}})});import lt from"node:process";import kn from"node:path";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",kt="^sha256:[a-f0-9]{64}$";import{constants as Mi}from"node:fs";import{lstat as r_,mkdir as fn,open as Lf,readFile as ca,realpath as Ar,rename as n_,unlink as el}from"node:fs/promises";import{randomUUID as tl}from"node:crypto";import ke from"node:path";var vf=qr(wr(),1);var Ee={type:"string",pattern:kt},PR={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Vc={type:"string",format:"date-time"},Mc={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}}},Uc={$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:Ee,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: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:Ee,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:Mc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},kf={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:Ee,deliveryReceiptId:Ee,usage:{enum:["runtime","development"]}}},{$id:rO,...Rf}=Uc,NR={...Rf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Uc.required,"availability","packageSources"],properties:{...Uc.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:kf}}},OR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Rf,(()=>{let{$id:e,...t}=NR;return t})()]},bi={$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:Mc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Mc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Ee,stderrDigest:Ee,startedAt:Vc,completedAt:Vc,projectStateDigest:Ee,runtime:bf}},SR={...bi,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...bi.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...bi.properties,evidenceId:Ee,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Ee}},DR={$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:Ee,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Ee,projectStateDigest:Ee,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Ee,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:Ee},committedAt:Vc,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:PR,revision:Ee}}},sources:{type:"array",minItems:1,maxItems:128,items:kf},packageJsonDigest:Ee,lockfileDigest:Ee}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},ta=new vf.Ajv2020({allErrors:!0,strict:!0});ta.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Ri={capabilityBundleRelease:ta.compile(OR),verificationResult:ta.compile(bi),adoptionEvidence:ta.compile(SR),projectAdoptionLock:ta.compile(DR)},ki=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function _i(e,t,r){if(!t(r))throw new ki(e,t.errors??[]);return r}var _f=e=>{let t=_i("capabilityBundleRelease",Ri.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new ki("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 a="",i=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(a)<=0||i.has(c))&&r(),a=c,i.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},Af=e=>_i("verificationResult",Ri.verificationResult,e),ra=e=>_i("adoptionEvidence",Ri.adoptionEvidence,e),Ue=e=>_i("projectAdoptionLock",Ri.projectAdoptionLock,e);import{lstat as UR,readFile as zc,realpath as Jc}from"node:fs/promises";import on from"node:path";import{createHash as jR}from"node:crypto";function y(e){return`sha256:${jR("sha256").update(e).digest("hex")}`}function b(e){return Array.isArray(e)?`[${e.map(b).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)}:${b(n)}`).join(",")}}`:JSON.stringify(e)}var Et=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Ef(e){if(!new RegExp(Z).test(e))throw new Et("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ai(e,t){if(e.includes("\r"))throw new Et("Managed regions require LF newlines");let{begin:r,end:n}=Ef(t),a=e.split(r).length-1,i=e.split(n).length-1;if(a!==1||i!==1)throw new Et("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 Et("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
9
9
  `}function Pf(e){let{begin:t,end:r}=Ef(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Et("Managed regions require LF newlines");let n=e.source.split(t).length-1,a=e.source.split(r).length-1;if(n>1||a>1||n!==a)throw new Et("Managed region markers are ambiguous");let i=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(i))throw new Et("Managed regions cannot contain nested Dyyto markers");let o=`${t}
10
10
  ${i}
11
- ${r}`;if(n===0){let l=e.source.replace(/\n*$/g,"");return`${l}${l.length===0?"":`
11
+ ${r}`;if(n===0){let d=e.source.replace(/\n*$/g,"");return`${d}${d.length===0?"":`
12
12
 
13
13
  `}${o}
14
- `}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,d=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(d))throw new Et("Managed regions cannot overlap");return`${e.source.slice(0,s)}${o}${e.source.slice(c)}`}import Nf from"node:path";var Yt=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ei(e){if(e.length===0||Nf.posix.isAbsolute(e)||Nf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new Yt("Asset path must be a normalized project-relative POSIX path",e)}function $R(e,t){Ei(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 Yt("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,a=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&a===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===a?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||a!==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 Yt("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Yt("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ei(s.path),t.has(s.path))throw new Yt("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 Yt("Proposed change paths must be unique",s.path);return r.add(s.path),$R(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),a={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(b(a)),o={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:a.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:i,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...o,planId:y(b(o))}}function Pi(e){return y(b(e))}var Of=Fr(wr(),1);var Q={type:"string",pattern:kt},nn={type:"string",pattern:Z},br={type:"string",minLength:1,maxLength:128},vr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},CR={$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:nn,version:br,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:vr,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"]}}}}}},TR={$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:nn,version:br}},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:nn,version:br}}}}},LR={$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:nn,version:br,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:vr,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},xR={$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:nn,capabilityVersion:br,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},VR={$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:nn,version:br,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:br,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:vr,unitImporterId:vr,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:vr,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:vr,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"]}}}}}},MR={$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:vr,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}},Ir=new Of.Ajv2020({allErrors:!0,strict:!0});Ir.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var qc={capabilityRelease:Ir.compile(CR),projectManifest:Ir.compile(TR),projectLock:Ir.compile(LR),evidence:Ir.compile(xR),changePlan:Ir.compile(VR),transactionJournal:Ir.compile(MR)},Fc=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Bc(e,t,r){if(!t(r))throw new Fc(e,t.errors??[]);return r}var X=e=>Bc("projectManifest",qc.projectManifest,e);var Ht=e=>Bc("changePlan",qc.changePlan,e),Sf=e=>Bc("transactionJournal",qc.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Ni(e){if(e.currentLock!==void 0){let i=await Oi({...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 Jc(an.resolve(e.projectRoot)),r=[],n=0,a=0;for(let i of e.release.release.assets){let o=await Wc(t,i.path);o.exists&&(n+=1),o.digest===i.digest&&(a+=1),r.push({path:i.path,kind:"create",ownership:i.ownership,desiredDigest:i.ownership==="seed-file"&&o.digest?o.digest:i.digest,disposition:o.exists?i.ownership==="seed-file"||o.digest===i.digest?"noop":"conflict":"ready",...o.exists&&o.digest!==i.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:a===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function Wc(e,t){let r=an.join(e,...t.split("/"));try{let n=await UR(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 zc(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function kr(e){let t=await Jc(an.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let a=await Wc(t,n.path),i=a.exists&&a.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&a.exists)try{i=y(Ai(await zc(an.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(b(r))}}async function Oi(e){let t=X(e.manifest);if(t.capabilities.filter(l=>l.capabilityId===e.release.release.capabilityId&&l.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 a=(e.currentLock===void 0?void 0:Me(e.currentLock))?.capabilities.find(l=>l.capabilityId===e.release.release.capabilityId);if(a!==void 0&&(a.version!==e.release.release.version||a.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let i=await Jc(an.resolve(e.projectRoot)),o=[],s=[],c=new Map(e.release.contents);for(let l of e.release.release.assets){let p=await Wc(i,l.path);if(o.push(p),p.exists&&a===void 0&&l.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",l.path);let f=l.ownership==="seed-file"&&p.digest?p.digest:l.digest;l.ownership==="seed-file"&&p.exists&&c.set(l.path,await zc(an.join(i,...l.path.split("/")))),s.push({path:l.path,kind:"create",ownership:l.ownership,desiredDigest:f})}let d={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(l=>({path:l.path,ownership:l.ownership,desiredDigest:l.digest})),verifiers:e.release.release.verifiers.map(l=>({id:l.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Ae({action:"adopt",capability:d,changes:s,observedAssets:o,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as qR,lstat as Ti,mkdir as on,open as $f,readFile as Li,realpath as BR,rename as $i,rm as Gc,unlink as Rr}from"node:fs/promises";import{constants as Di}from"node:fs";import{homedir as zR}from"node:os";import G from"node:path";import{randomUUID as ln}from"node:crypto";function FR(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function nt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Df(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Df(e.context,e.operation,e.bytes??0,t,"failed",FR(r)),r}}async function Df(e,t,r,n,a,i){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:a,...i===void 0?{}:{errorCategory:i}},c=Object.freeze({...s,eventId:y(b(s))});try{await e.sink(c)}catch{}}var Cf=Symbol("prepared-transaction"),Xt=new Map,JR=5*1024*1024,WR=25*1024*1024,jf=8,Ci=class extends Error{};async function Si(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new Ci("Simulated prepare crash",{cause:n})}}var j=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,a){super(r),this.code=t,this.relativePath=n,this.operationIndex=a}};function na(e,t){let r=G.join(e,".dyyto"),n=G.join(r,"transactions",t);return{platformDirectory:r,lock:G.join(r,"transaction-lock.json"),transactionDirectory:n,journal:G.join(n,"journal.json"),preimages:G.join(n,"preimages"),quarantine:G.join(n,"quarantine")}}async function St(e){try{return await Ti(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function dn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function gt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function at(e,t){let r=await $f(e,Di.O_RDONLY);try{await nt({context:dn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function aa(e,t,r=384,n){let a=await $f(e,Di.O_CREAT|Di.O_EXCL|Di.O_WRONLY,r);try{await nt({context:dn(n),operation:"write",bytes:t.byteLength,run:()=>a.writeFile(t)}),await nt({context:dn(n),operation:"file-sync",bytes:t.byteLength,run:()=>a.sync()})}finally{await a.close()}}async function Kc(e,t,r){let n=G.dirname(e),a=G.join(n,`.tmp-${ln()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
15
- `);await aa(a,i,384,r),await nt({context:dn(r),operation:"rename",bytes:i.byteLength,run:()=>$i(a,e)}),await at(n,r)}function Yc(e){return{...e,journalDigest:y(b(e))}}function GR(e){let t;try{t=Sf(e)}catch{throw new j("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(b(n)))throw new j("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let a=new Set;for(let[i,o]of t.operations.entries()){if(o.index!==i||a.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 j("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");a.add(o.path)}return t}async function Hc(e){try{return GR(JSON.parse(await Li(e,"utf8")))}catch(t){throw t instanceof j?t:new j("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function Zt(e,t,r){let{journalDigest:n,...a}=t,i=Yc(a);return await Kc(e,i,r),i}async function xi(e){let t=G.resolve(e),r=G.parse(t);if(t===r.root||t===G.resolve(zR()))throw new j("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await Ti(t);if(!n.isDirectory()||n.isSymbolicLink())throw new j("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let a=await BR(t);if(a!==t)throw new j("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return a}function pn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||G.posix.isAbsolute(t)||G.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new j("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=G.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${G.sep}`))throw new j("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function sn(e,t){let r=t.split("/"),n=e;for(let a of r){n=G.join(n,a);try{if((await Ti(n)).isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(i){if(i.code==="ENOENT")return;throw i}}}async function cn(e){try{let t=await Ti(e);if(!t.isFile()||t.isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await Li(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function KR(e,t,r){Ht(e);let{planId:n,...a}=e;if(Pi(a)!==e.planId)throw new j("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new j("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new j("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new j("PLAN_EXPIRED","Plan has expired")}function YR(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 j("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function Xc(e,t,r){try{await aa(e,Buffer.from(`${JSON.stringify(t,null,2)}
16
- `),384,r),await at(G.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new j("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ji(e){try{let t=JSON.parse(await Li(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 HR(e,t,r){return{[Cf]:!0,projectRoot:e,plan:t,transactionId:r}}async function XR(e,t){KR(e.plan,e.approvedPlanId,e.now);let r=await xi(e.projectRoot),n=YR(e.plan),a=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(!a.has(u))throw new j("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(pn(r,u.path),await sn(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=na(r,e.plan.planId);await on(i.platformDirectory,{recursive:!0,mode:448}),await sn(r,".dyyto");let o=ln();await Xc(i.lock,{schemaVersion:1,transactionId:o,planId:e.plan.planId,startedAt:e.now,nonce:ln()},gt(t?.durabilityTrace,"prepare","lock",`${o}:prepare-lock`));let s=e.limits?.maxFileBytes??JR,c=e.limits?.maxTransactionBytes??WR,d=0,l=[],p=[],f=!1;try{if(await Si(t,"lock-created"),await St(i.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await on(i.preimages,{recursive:!0,mode:448}),await on(i.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=pn(r,g.path);await sn(r,g.path);let w=await cn(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(d+=w.bytes.byteLength,w.bytes.byteLength>s||d>c)throw new j("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let v=G.join(i.preimages,`${m}.bin`);await aa(v,w.bytes,384,gt(t?.durabilityTrace,"prepare","preimage",`${o}:preimage:${m}`)),p.push(m),await Si(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}l.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await at(i.preimages,gt(t?.durabilityTrace,"prepare","directory",`${o}:preimages-directory-batch`));for(let m of p)await Si(t,"preimage-persisted",m)}let u=Yc({schemaVersion:1,transactionId:o,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:l});return await Kc(i.journal,u,gt(t?.durabilityTrace,"prepare","journal",`${o}:journal-prepared`)),Xt.set(o,{desiredContents:e.desiredContents,journal:u}),await Si(t,"journal-prepared"),HR(r,e.plan,o)}catch(u){if(u instanceof Ci)throw Xt.delete(o),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await Gc(i.transactionDirectory,{recursive:!0,force:!0}),await Rr(i.lock),await at(i.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function Qt(e){return XR(e)}async function ZR(e,t,r,n){return Zt(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},gt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function QR(e,t,r,n,a,i){let o=pn(e,n.path);await sn(e,n.path);let s=await cn(o);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=G.join(t.quarantine,`${n.index}.bin`),f=gt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await nt({context:dn(f),operation:"rename",run:()=>$i(o,p)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[G.dirname(o),t.quarantine]}let c=a.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 on(G.dirname(o),{recursive:!0}),await sn(e,n.path);let d=G.join(G.dirname(o),`.dyyto-${r}-${n.index}.tmp`),l=gt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await aa(d,c,n.before.kind==="present"?n.before.mode&511:420,l),await i?.onCheckpoint?.("temporary-file-synced",n.index),await nt({context:dn(l),operation:"rename",bytes:c.byteLength,run:()=>$i(d,o)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[G.dirname(o)]}async function e_(e,t){let r=Xt.get(e.transactionId);if(r===void 0||e[Cf]!==!0)throw new j("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=na(e.projectRoot,e.plan.planId),a=await Zt(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},gt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let i=new Map;for(let o=0;o<a.operations.length;o+=jf){let s=a.operations.slice(o,o+jf),c=await Promise.allSettled(s.map(l=>QR(e.projectRoot,n,e.transactionId,l,r.desiredContents,t))),d=c.find(l=>l.status==="rejected");if(d?.status==="rejected")throw d.reason;for(let l of c)if(l.status==="fulfilled")for(let p of l.value)i.has(p)||i.set(p,gt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[o,s]of i)await at(o,s);for(let o of a.operations)await t?.onCheckpoint?.("target-renamed",o.index),o.status="applied",await t?.onCheckpoint?.("operation-applied",o.index);a=await Zt(n.journal,{...a,operations:a.operations,updatedAt:new Date().toISOString()},gt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let o of a.operations)await t?.onCheckpoint?.("operation-journaled",o.index);return a=await Zt(n.journal,{...a,state:"applied",updatedAt:new Date().toISOString()},gt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Rr(n.lock),await at(n.platformDirectory),Xt.delete(e.transactionId),_r(a)}catch(i){throw a=await ZR(n,a,i instanceof j?i.operationIndex:void 0,t?.durabilityTrace),Xt.set(e.transactionId,{desiredContents:r.desiredContents,journal:a}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function er(e){return e_(e)}function _r(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Dt(e){let t=await xi(e.projectRoot),r=na(t,e.planId);if(!await St(r.journal)){if(!await St(r.lock))return null;let n=await ji(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return _r(await Hc(r.journal))}async function t_(e,t,r){await on(G.dirname(e),{recursive:!0});let n=G.join(G.dirname(e),`.dyyto-recover-${ln()}.tmp`);await aa(n,t,r&511),await $i(n,e),await qR(e,r&511),await at(G.dirname(e))}async function Tf(e){let t=await xi(e.projectRoot),r=na(t,e.planId);if(!await St(r.journal)){if(!await St(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let a=await ji(r.lock);if(a.planId!==e.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await Gc(r.transactionDirectory,{recursive:!0,force:!0}),await on(r.transactionDirectory,{recursive:!0,mode:448});let i=Yc({schemaVersion:1,transactionId:a.transactionId,planId:a.planId,approvedPlanId:a.planId,projectRootDigest:y(t),state:"recovered",createdAt:a.startedAt,updatedAt:e.now,operations:[]});return await Kc(r.journal,i),await Rr(r.lock),await at(r.platformDirectory),_r(i)}let n=await Hc(r.journal);if(n.state==="recovered")return _r(n);if(n.state==="applied"){for(let a of n.operations){let i=await cn(pn(t,a.path));if(!(a.kind==="remove"?i===void 0:i?.digest===a.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",a.path,a.index)}if(await St(r.lock)){let a=await ji(r.lock);if(a.transactionId!==n.transactionId||a.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Rr(r.lock),await at(r.platformDirectory)}return Xt.delete(n.transactionId),_r(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await St(r.lock)){let a=await ji(r.lock);if(a.transactionId!==n.transactionId||a.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Xc(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:ln()});n=await Zt(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let a of[...n.operations].reverse()){if(a.status==="restored")continue;let i=pn(t,a.path);if(await sn(t,a.path),a.kind!=="remove"){let s=G.join(G.dirname(i),`.dyyto-${n.transactionId}-${a.index}.tmp`);if(await St(s)){if((await cn(s))?.digest!==a.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",a.path,a.index);await Rr(s),await at(G.dirname(s))}}let o=await cn(i);if(a.before.kind==="absent"){if(o!==void 0){if(o.digest!==a.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",a.path,a.index);await Rr(i),await at(G.dirname(i))}}else if(o?.digest!==a.before.digest){let s=G.join(r.quarantine,`${a.index}.bin`),c=o?.digest===a.desiredDigest,d=a.kind==="remove"&&o===void 0&&await St(s),l=e.approvedConflicts?.find(f=>f.path===a.path&&f.currentDigest===o?.digest);if(!c&&!d&&!l)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",a.path,a.index);let p=await Li(G.join(r.preimages,`${a.index}.bin`));if(y(p)!==a.before.preimageDigest)throw new j("JOURNAL_CORRUPTED","Preimage digest is invalid",a.path,a.index);await t_(i,p,a.before.mode),d&&await Gc(s,{force:!0})}a.status="restored",n=await Zt(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",a.index)}return n=await Zt(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Rr(r.lock),await at(r.platformDirectory),Xt.delete(n.transactionId),_r(n)}async function ia(e){return Tf(e)}async function Zc(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 Tf(e)}async function Qc(e){let t=await xi(e.projectRoot),r=na(t,e.planId),n=await Hc(r.journal);if(n.state==="recovered")return _r(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let a;for(let i of n.operations){let o=await cn(pn(t,i.path)),s=i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest,c=i.before.kind==="absent"?o===void 0:o?.digest===i.before.digest;if(!s&&!c){a=i;break}}if(await Xc(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:ln()}),n=await Zt(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),a!==void 0)throw new j("RECOVERY_CONFLICT","Rollback would overwrite external content",a.path,a.index);return Xt.set(n.transactionId,{desiredContents:new Map,journal:n}),ia({projectRoot:t,planId:e.planId,now:e.now})}var ye=class extends Error{code;constructor(t,r){super(r),this.code=t}},oa=class extends Error{};function la(e,t){let r=ve.join(e,".dyyto"),n=ve.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:ve.join(r,"evidence"),lockFile:ve.join(r,"project-lock.json"),transactionLock:ve.join(r,"metadata-lock.json"),transactionDirectory:n,journal:ve.join(n,"journal.json")}}async function tr(e){try{return await r_(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function jt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Fi(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function qi(e,t){let r=await Lf(e,Mi.O_RDONLY);try{await nt({context:Fi(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function rl(e,t,r){let n=await Lf(e,Mi.O_CREAT|Mi.O_EXCL|Mi.O_WRONLY,384);try{await nt({context:Fi(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await nt({context:Fi(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function sa(e,t,r){let n=ve.dirname(e),a=ve.join(n,`.tmp-${tl()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
17
- `);await rl(a,i,r),await nt({context:Fi(r),operation:"rename",bytes:i.byteLength,run:()=>n_(a,e)}),await qi(n,r)}function nl(e){return{...e,journalDigest:y(b(e))}}async function Vi(e,t,r){let{journalDigest:n,...a}=t,i=nl(a);return await sa(e,i,r),i}async function xf(e){try{let t=JSON.parse(await ca(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==y(b(n)))throw new Error("invalid journal");return t.evidence.forEach(ra),Me(t.lock),t}catch{throw new ye("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function al(e,t,r){try{await rl(e,Buffer.from(`${JSON.stringify(t,null,2)}
18
- `),r),await qi(ve.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new ye("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Vf(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(b(r))}}function Mf(e,t,r){let n=t.map(Af),a=e.verifiers.map(o=>o.id).sort(),i=n.map(o=>o.verifierId).sort();if(a.length!==i.length||a.some((o,s)=>o!==i[s]))throw new ye("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 ye("VERIFICATION_FAILED",`Verifier ${o.verifierId} did not pass`);if(o.projectStateDigest!==r)throw new ye("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function a_(e,t,r){let n=ve.join(e,`${t.evidenceId}.json`);if(await tr(n)){let a=ra(JSON.parse(await ca(n,"utf8")));if(b(a)!==b(t))throw new ye("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await rl(n,Buffer.from(`${JSON.stringify(t,null,2)}
19
- `),r),await qi(e,r)}async function i_(e,t,r,n){if(await tr(e)){let a=Me(JSON.parse(await ca(e,"utf8")));if(b(a)===b(t))return;if(r===void 0||y(b(a))!==r)throw new ye("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await sa(e,t,n);return}await sa(e,t,n)}async function Ui(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new oa("Simulated metadata crash",{cause:r})}}async function il(e,t,r){let n=la(e,t.planId),a=t;try{for(let i of a.evidence)await a_(n.evidenceDirectory,i,jt(r?.durabilityTrace,"evidence",`${a.transactionId}:evidence`));return a=await Vi(n.journal,{...a,state:"evidence-written",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:evidence-written`)),await Ui(r,"evidence-written"),await i_(n.lockFile,a.lock,a.previousLockDigest,jt(r?.durabilityTrace,"lock",`${a.transactionId}:project-lock`)),a=await Vi(n.journal,{...a,state:"lock-written",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:lock-written`)),await Ui(r,"lock-written"),a=await Vi(n.journal,{...a,state:"committed",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:committed`)),await Ui(r,"committed"),await el(n.transactionLock),await qi(n.platformDirectory,jt(r?.durabilityTrace,"directory",`${a.transactionId}:unlock`)),a.lock}catch(i){if(i instanceof oa)throw new ye("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Vi(n.journal,{...a,state:"recovery-required",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:recovery-required`))}catch{}throw i}}async function o_(e){let t=await Ar(ve.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Ar(ve.resolve(e.transactionRoot));if((await Dt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new ye("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let a;try{a=await kr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new ye("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let o=Mf(e.release,e.verificationResults,a.projectStateDigest).map(m=>Vf(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:a.projectStateDigest,assets:a.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??[],d=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],l={schemaVersion:d.some(m=>m.packageAdoption!==void 0)?2:1,capabilities:d};Me(l);let p=la(t,e.plan.planId);if(await un(p.platformDirectory,{recursive:!0,mode:448}),await un(p.evidenceDirectory,{recursive:!0,mode:448}),await tr(p.lockFile)&&e.previousLock===void 0){let m=Me(JSON.parse(await ca(p.lockFile,"utf8")));if(b(m)===b(l))return m;throw new ye("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=tl();if(await al(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},jt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await tr(p.transactionDirectory))throw await el(p.transactionLock),new ye("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await un(p.transactionDirectory,{recursive:!0,mode:448});let u=nl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:o,lock:l,...e.previousLock===void 0?{}:{previousLockDigest:y(b(Me(e.previousLock)))}});await sa(p.journal,u,jt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await Ui(e.hooks,"journal-prepared")}catch(m){throw m instanceof oa?new ye("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return il(t,u,e.hooks)}async function ol(e){return o_(e)}async function sl(e){let t=await Ar(ve.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Ar(ve.resolve(e.transactionRoot));if((await Dt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new ye("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let a=e.previousLock.capabilities.find(h=>h.capabilityId===e.release.capabilityId&&h.version===e.release.version);if(a===void 0)throw new ye("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let i=e.previousLock.capabilities.filter(h=>h!==a),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??i.flatMap(h=>h.assets).map(h=>({...h,digest:s.get(h.path)??h.digest})),d=await kr({projectRoot:t,expectedAssets:c}),p=Mf(e.release,e.verificationResults,d.projectStateDigest).map(h=>Vf(e.release,h)),f={schemaVersion:i.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:i};Me(f);let u=la(t,e.plan.planId);await un(u.platformDirectory,{recursive:!0,mode:448}),await un(u.evidenceDirectory,{recursive:!0,mode:448});let m=tl();await al(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await un(u.transactionDirectory,{recursive:!1,mode:448});let g=nl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(b(Me(e.previousLock)))});return await sa(u.journal,g),il(t,g)}async function cl(e){let t=await Ar(ve.resolve(e.projectRoot)),r=la(t,e.planId),n=await xf(r.journal);return n.state==="committed"?(await tr(r.transactionLock)&&await el(r.transactionLock),n.lock):(await tr(r.transactionLock)||await al(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),il(t,n))}async function ll(e){let t=await Ar(ve.resolve(e.projectRoot)),r=la(t,e.planId);if(!await tr(r.journal))return null;let n=await xf(r.journal);return{planId:n.planId,state:n.state}}async function $e(e){let t=await Ar(ve.resolve(e)),r=ve.join(t,".dyyto","project-lock.json");return await tr(r)?Me(JSON.parse(await ca(r,"utf8"))):null}import{lstat as qf,readFile as Uf,realpath as Ff}from"node:fs/promises";import rr from"node:path";var ht=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Bf(e){return y(b(e))}async function s_(e,t){let r=rr.join(e,"assets",...t.split("/"));try{return await qf(r),r}catch(n){if(n.code!=="ENOENT"||rr.posix.basename(t)!==".gitignore")throw n}return rr.join(e,"assets",...rr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function we(e){let t=await Ff(rr.resolve(e)),r;try{r=_f(JSON.parse(await Uf(rr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof ht?c:new ht("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...a}=r;if(Bf(a)!==n)throw new ht("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let i=new Map,o=new Set,s="";for(let c of r.assets){try{Ei(c.path)}catch{throw new ht("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 ht("RELEASE_ASSET_INVALID","Release assets must be unique, sorted and outside reserved .dyyto paths",c.path);o.add(c.path),s=c.path;let d=await s_(t,c.path),l=await Ff(d),p=rr.join(t,"assets");if(!l.startsWith(`${p}${rr.sep}`))throw new ht("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await qf(d);if(!f.isFile()||f.isSymbolicLink())throw new ht("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await Uf(d);if(y(u)!==c.digest)throw new ht("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);i.set(c.path,u)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,d)=>c!==r.assets[d]?.path))throw new ht("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:i}}import{link as c_,open as Jf,lstat as Er,mkdir as Wf,readFile as dl,readdir as Bi,realpath as $t,rm as l_,unlink as d_}from"node:fs/promises";import me from"node:path";var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},p_={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function u_(){return new TextEncoder().encode(`${JSON.stringify(p_,null,2)}
20
- `)}async function f_(e,t=!1){let r=me.resolve(e),n=await Er(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new Ie("TARGET_INVALID","Workspace target must be a real existing directory");let a=await $t(r);for(let i of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let o=await Er(me.join(a,i)).catch(()=>null);if(o===null||!o.isFile()||o.isSymbolicLink())throw new Ie("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${i}`)}if(await Er(me.join(a,"project-capabilities.json")).catch(()=>null))throw new Ie("MANIFEST_EXISTS","Project manifest already exists");return a}async function Gf(e){let t=await f_(e.projectRoot,e.documentationOnly===!0),r=u_(),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 m_(e){let t=await Jf(e,"r");try{await t.sync()}finally{await t.close()}}async function Kf(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await Jf(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await c_(r,e),await d_(r),await m_(me.dirname(e))}catch(a){throw await l_(r,{force:!0}),a}}async function g_(e){let t=me.resolve(e);try{let r=await Er(t);if(!r.isDirectory()||r.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target must be a real directory");if((await Bi(t)).length!==0)throw new Ie("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=me.dirname(t),a=await Er(n).catch(()=>null);if(a===null||!a.isDirectory()||a.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target parent must be a real directory");await Wf(t)}return $t(t)}async function zi(e){let t=X(e.manifest),r=await g_(e.projectRoot),n=me.join(r,"project-capabilities.json");try{await Kf(n,`${JSON.stringify(t,null,2)}
21
- `)}catch(a){throw a.code==="EEXIST"?new Ie("MANIFEST_EXISTS","Project manifest already exists"):a}return{projectRoot:r,manifest:t}}function da(e){let{planId:t,...r}=e;if(Pi(r)!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function h_(e){let t=await $t(me.resolve(e.projectRoot)),r=Ht(e.plan);da(r);let n=me.join(t,".dyyto","plans");await Wf(n,{recursive:!0,mode:448});let a=me.join(n,`${r.planId}.json`);try{await Kf(a,`${b(r)}
22
- `)}catch(i){if(i.code!=="EEXIST")throw i;let o=Ht(JSON.parse(await dl(a,"utf8")));if(da(o),b(o)!==b(r))throw new Ie("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return a}function zf(e){return b({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Ct(e){let t=await $t(me.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await $t(me.resolve(e.transactionRoot)),n=Ht(e.plan);da(n);let a=me.join(t,".dyyto","plans"),i=await Bi(a).catch(s=>{if(s.code==="ENOENT")return[];throw s}),o=[];for(let s of i.filter(c=>c.endsWith(".json")).sort()){let c=Ht(JSON.parse(await dl(me.join(a,s),"utf8")));da(c),!await Er(me.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(l=>l.code==="ENOENT"?!1:Promise.reject(l))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&zf(c)===zf(n)&&o.push(c)}return o.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),o[0]!==void 0?o[0]:(await h_({projectRoot:t,plan:n}),n)}async function Pr(e){let t=await $t(me.resolve(e.projectRoot)),r=me.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=Ht(JSON.parse(await dl(r,"utf8")));if(da(n),n.planId!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new Ie("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Ji(e,t=[],r,n=[]){let a=await $t(me.resolve(e)),i=r===void 0?a:await $t(me.resolve(r)),o=me.join(a,".dyyto","plans"),s=await Bi(o).catch(l=>{if(l.code==="ENOENT")return[];throw l}),c=[];for(let l of s.filter(p=>p.endsWith(".json")).sort()){let p=l.slice(0,-5),f=await Pr({projectRoot:a,planId:p}),u=await Dt({projectRoot:i,planId:p}),m=await Er(me.join(a,".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 d=y_(c);if(d===void 0)throw new Ie("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return d}function y_(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 pl(e){let t=await $t(me.resolve(e)),r=me.join(t,".dyyto","plans"),n=await Bi(r).catch(i=>{if(i.code==="ENOENT")return[];throw i}),a=[];for(let i of n.filter(o=>o.endsWith(".json")).sort())a.push(await Pr({projectRoot:t,planId:i.slice(0,-5)}));return a}import{lstat as Yf,readFile as w_,readdir as I_,realpath as v_}from"node:fs/promises";import Ee from"node:path";import{homedir as Hf}from"node:os";var it=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Xf(e){let t=Ee.resolve(e),r=await Yf(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ee.parse(t).root||t===Ee.resolve(Hf()))throw new it("WORKSPACE_PATH_UNSAFE");let n=await v_(t);if(n!==t)throw new it("WORKSPACE_PATH_UNSAFE");return n}async function Nr(e){let t=await Yf(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new it("WORKSPACE_PATH_UNSAFE");return w_(e)}}function Zf(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let a of t){if(/^packages:\s*(?:#.*)?$/u.test(a)){n=!0;continue}if(!n)continue;let i=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(a);if(i){r.push(i[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(a.trim()&&!/^\s/u.test(a))break}if(r.length===0)throw new it("WORKSPACE_MANIFEST_INVALID");return r}function b_(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 Wi(e){let t=await Xf(e),r=await Nr(Ee.join(t,"pnpm-workspace.yaml"));if(!r)throw new it("WORKSPACE_OWNER_MISSING");let n=new Map;for(let a of Zf(r.toString("utf8"))){let i=[];if(a.endsWith("/*")&&!a.slice(0,-2).includes("*")){let o=a.slice(0,-2),s=await I_(Ee.join(t,...o.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&i.push(`${o}/${c.name}`)}else if(!a.includes("*"))i.push(a);else throw new it("WORKSPACE_MANIFEST_INVALID");for(let o of i){let s=await Nr(Ee.join(t,...o.split("/"),"package.json"));s&&n.set(o,s)}}return Object.freeze([...n].sort(([a],[i])=>a.localeCompare(i)).map(([a,i])=>Object.freeze({relativeRoot:a,bytes:i})))}async function Tt(e){let t=await Xf(e);if(await Nr(Ee.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Nr(Ee.join(t,"pnpm-workspace.yaml")))throw new it("WORKSPACE_NESTED_UNSUPPORTED");let r=Ee.dirname(t),n;for(;r!==Ee.parse(r).root&&r!==Ee.resolve(Hf());){let i=await Nr(Ee.join(r,"pnpm-workspace.yaml"));if(i){if(n)throw new it("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:i};break}r=Ee.dirname(r)}if(!n||!await Nr(Ee.join(n.root,"pnpm-lock.yaml"))||!await Nr(Ee.join(n.root,"project-capabilities.json")))throw new it("WORKSPACE_OWNER_MISSING");let a=Ee.relative(n.root,t).split(Ee.sep).join("/");if(!a||a.startsWith("../")||Zf(n.manifest.toString("utf8")).filter(i=>b_(i,a)).length!==1)throw new it("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:a,unitImporterId:a,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var Qf=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function ul(e){let t=await pl(e);for(let r of t){let n=await Dt({projectRoot:e,planId:r.planId});if(n!==null&&Qf.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await ll({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 k_(e){let t=await ul(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ia({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await cl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function em(e){let t=await k_(e);if(t.kind!=="none")return t;let r=await Tt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await pl(e.projectRoot)).map(c=>c.planId)),a=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(!a)return t;let i;try{let c=JSON.parse(a);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 o=await Dt({projectRoot:r.transactionRoot,planId:i});if(!o||!Qf.has(o.state))return t;let s=await ia({projectRoot:r.transactionRoot,planId:i,now:e.now});return{kind:"filesystem",planId:i,state:s.state}}import{lstat as R_,readFile as fl,realpath as tm}from"node:fs/promises";import pa from"node:path";var __=new Set(["MIT","Apache-2.0","UNLICENSED"]),A_=new Set(["public","restricted","private"]),E_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,P_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function N_(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 Or(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 nr(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(),a=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,i=a==="1.1.0"||a==="1.2.0"||t==="react-component-library",o=i?["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:d,publishAccess:l,repository:p}=r;if(s===void 0||s.length>214||!E_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!P_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(d===void 0||!__.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(l===void 0||!A_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(l==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:d,publishAccess:l,...i?{repository:N_(p)}:{}}}function ml(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)}
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 Et("Managed regions cannot overlap");return`${e.source.slice(0,s)}${o}${e.source.slice(c)}`}import Nf from"node:path";var Yt=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ei(e){if(e.length===0||Nf.posix.isAbsolute(e)||Nf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new Yt("Asset path must be a normalized project-relative POSIX path",e)}function $R(e,t){Ei(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 Yt("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,a=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&a===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===a?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||a!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new Yt("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Yt("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ei(s.path),t.has(s.path))throw new Yt("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 Yt("Proposed change paths must be unique",s.path);return r.add(s.path),$R(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),a={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(b(a)),o={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:a.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:i,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...o,planId:y(b(o))}}function Pi(e){return y(b(e))}var Of=qr(wr(),1);var Q={type:"string",pattern:kt},an={type:"string",pattern:Z},br={type:"string",minLength:1,maxLength:128},vr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},CR={$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:an,version:br,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:vr,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"]}}}}}},TR={$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:an,version:br}},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:an,version:br}}}}},LR={$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:an,version:br,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:vr,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},xR={$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:an,capabilityVersion:br,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},VR={$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:an,version:br,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:br,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:vr,unitImporterId:vr,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:vr,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:vr,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"]}}}}}},MR={$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:vr,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}},Ir=new Of.Ajv2020({allErrors:!0,strict:!0});Ir.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var qc={capabilityRelease:Ir.compile(CR),projectManifest:Ir.compile(TR),projectLock:Ir.compile(LR),evidence:Ir.compile(xR),changePlan:Ir.compile(VR),transactionJournal:Ir.compile(MR)},Fc=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Bc(e,t,r){if(!t(r))throw new Fc(e,t.errors??[]);return r}var X=e=>Bc("projectManifest",qc.projectManifest,e);var Ht=e=>Bc("changePlan",qc.changePlan,e),Sf=e=>Bc("transactionJournal",qc.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Ni(e){if(e.currentLock!==void 0){let i=await Oi({...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 Jc(on.resolve(e.projectRoot)),r=[],n=0,a=0;for(let i of e.release.release.assets){let o=await Wc(t,i.path);o.exists&&(n+=1),o.digest===i.digest&&(a+=1),r.push({path:i.path,kind:"create",ownership:i.ownership,desiredDigest:i.ownership==="seed-file"&&o.digest?o.digest:i.digest,disposition:o.exists?i.ownership==="seed-file"||o.digest===i.digest?"noop":"conflict":"ready",...o.exists&&o.digest!==i.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:a===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function Wc(e,t){let r=on.join(e,...t.split("/"));try{let n=await UR(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 zc(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function kr(e){let t=await Jc(on.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let a=await Wc(t,n.path),i=a.exists&&a.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&a.exists)try{i=y(Ai(await zc(on.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(b(r))}}async function Oi(e){let t=X(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 a=(e.currentLock===void 0?void 0:Ue(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(a!==void 0&&(a.version!==e.release.release.version||a.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let i=await Jc(on.resolve(e.projectRoot)),o=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await Wc(i,d.path);if(o.push(p),p.exists&&a===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 zc(on.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:Pe({action:"adopt",capability:l,changes:s,observedAssets:o,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as qR,lstat as Ti,mkdir as sn,open as $f,readFile as Li,realpath as BR,rename as $i,rm as Gc,unlink as Rr}from"node:fs/promises";import{constants as Di}from"node:fs";import{homedir as zR}from"node:os";import G from"node:path";import{randomUUID as dn}from"node:crypto";function FR(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function nt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Df(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Df(e.context,e.operation,e.bytes??0,t,"failed",FR(r)),r}}async function Df(e,t,r,n,a,i){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:a,...i===void 0?{}:{errorCategory:i}},c=Object.freeze({...s,eventId:y(b(s))});try{await e.sink(c)}catch{}}var Cf=Symbol("prepared-transaction"),Xt=new Map,JR=5*1024*1024,WR=25*1024*1024,jf=8,Ci=class extends Error{};async function Si(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new Ci("Simulated prepare crash",{cause:n})}}var j=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,a){super(r),this.code=t,this.relativePath=n,this.operationIndex=a}};function na(e,t){let r=G.join(e,".dyyto"),n=G.join(r,"transactions",t);return{platformDirectory:r,lock:G.join(r,"transaction-lock.json"),transactionDirectory:n,journal:G.join(n,"journal.json"),preimages:G.join(n,"preimages"),quarantine:G.join(n,"quarantine")}}async function St(e){try{return await Ti(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function pn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function gt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function at(e,t){let r=await $f(e,Di.O_RDONLY);try{await nt({context:pn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function aa(e,t,r=384,n){let a=await $f(e,Di.O_CREAT|Di.O_EXCL|Di.O_WRONLY,r);try{await nt({context:pn(n),operation:"write",bytes:t.byteLength,run:()=>a.writeFile(t)}),await nt({context:pn(n),operation:"file-sync",bytes:t.byteLength,run:()=>a.sync()})}finally{await a.close()}}async function Kc(e,t,r){let n=G.dirname(e),a=G.join(n,`.tmp-${dn()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
15
+ `);await aa(a,i,384,r),await nt({context:pn(r),operation:"rename",bytes:i.byteLength,run:()=>$i(a,e)}),await at(n,r)}function Yc(e){return{...e,journalDigest:y(b(e))}}function GR(e){let t;try{t=Sf(e)}catch{throw new j("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(b(n)))throw new j("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let a=new Set;for(let[i,o]of t.operations.entries()){if(o.index!==i||a.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 j("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");a.add(o.path)}return t}async function Hc(e){try{return GR(JSON.parse(await Li(e,"utf8")))}catch(t){throw t instanceof j?t:new j("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function Zt(e,t,r){let{journalDigest:n,...a}=t,i=Yc(a);return await Kc(e,i,r),i}async function xi(e){let t=G.resolve(e),r=G.parse(t);if(t===r.root||t===G.resolve(zR()))throw new j("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await Ti(t);if(!n.isDirectory()||n.isSymbolicLink())throw new j("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let a=await BR(t);if(a!==t)throw new j("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return a}function un(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||G.posix.isAbsolute(t)||G.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new j("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=G.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${G.sep}`))throw new j("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function cn(e,t){let r=t.split("/"),n=e;for(let a of r){n=G.join(n,a);try{if((await Ti(n)).isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(i){if(i.code==="ENOENT")return;throw i}}}async function ln(e){try{let t=await Ti(e);if(!t.isFile()||t.isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await Li(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function KR(e,t,r){Ht(e);let{planId:n,...a}=e;if(Pi(a)!==e.planId)throw new j("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new j("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new j("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new j("PLAN_EXPIRED","Plan has expired")}function YR(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 j("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function Xc(e,t,r){try{await aa(e,Buffer.from(`${JSON.stringify(t,null,2)}
16
+ `),384,r),await at(G.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new j("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ji(e){try{let t=JSON.parse(await Li(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 HR(e,t,r){return{[Cf]:!0,projectRoot:e,plan:t,transactionId:r}}async function XR(e,t){KR(e.plan,e.approvedPlanId,e.now);let r=await xi(e.projectRoot),n=YR(e.plan),a=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(!a.has(u))throw new j("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(un(r,u.path),await cn(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=na(r,e.plan.planId);await sn(i.platformDirectory,{recursive:!0,mode:448}),await cn(r,".dyyto");let o=dn();await Xc(i.lock,{schemaVersion:1,transactionId:o,planId:e.plan.planId,startedAt:e.now,nonce:dn()},gt(t?.durabilityTrace,"prepare","lock",`${o}:prepare-lock`));let s=e.limits?.maxFileBytes??JR,c=e.limits?.maxTransactionBytes??WR,l=0,d=[],p=[],f=!1;try{if(await Si(t,"lock-created"),await St(i.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await sn(i.preimages,{recursive:!0,mode:448}),await sn(i.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=un(r,g.path);await cn(r,g.path);let w=await ln(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 v=G.join(i.preimages,`${m}.bin`);await aa(v,w.bytes,384,gt(t?.durabilityTrace,"prepare","preimage",`${o}:preimage:${m}`)),p.push(m),await Si(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 at(i.preimages,gt(t?.durabilityTrace,"prepare","directory",`${o}:preimages-directory-batch`));for(let m of p)await Si(t,"preimage-persisted",m)}let u=Yc({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 Kc(i.journal,u,gt(t?.durabilityTrace,"prepare","journal",`${o}:journal-prepared`)),Xt.set(o,{desiredContents:e.desiredContents,journal:u}),await Si(t,"journal-prepared"),HR(r,e.plan,o)}catch(u){if(u instanceof Ci)throw Xt.delete(o),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await Gc(i.transactionDirectory,{recursive:!0,force:!0}),await Rr(i.lock),await at(i.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function Qt(e){return XR(e)}async function ZR(e,t,r,n){return Zt(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},gt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function QR(e,t,r,n,a,i){let o=un(e,n.path);await cn(e,n.path);let s=await ln(o);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=G.join(t.quarantine,`${n.index}.bin`),f=gt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await nt({context:pn(f),operation:"rename",run:()=>$i(o,p)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[G.dirname(o),t.quarantine]}let c=a.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 sn(G.dirname(o),{recursive:!0}),await cn(e,n.path);let l=G.join(G.dirname(o),`.dyyto-${r}-${n.index}.tmp`),d=gt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await aa(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await i?.onCheckpoint?.("temporary-file-synced",n.index),await nt({context:pn(d),operation:"rename",bytes:c.byteLength,run:()=>$i(l,o)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[G.dirname(o)]}async function e_(e,t){let r=Xt.get(e.transactionId);if(r===void 0||e[Cf]!==!0)throw new j("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=na(e.projectRoot,e.plan.planId),a=await Zt(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},gt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let i=new Map;for(let o=0;o<a.operations.length;o+=jf){let s=a.operations.slice(o,o+jf),c=await Promise.allSettled(s.map(d=>QR(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,gt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[o,s]of i)await at(o,s);for(let o of a.operations)await t?.onCheckpoint?.("target-renamed",o.index),o.status="applied",await t?.onCheckpoint?.("operation-applied",o.index);a=await Zt(n.journal,{...a,operations:a.operations,updatedAt:new Date().toISOString()},gt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let o of a.operations)await t?.onCheckpoint?.("operation-journaled",o.index);return a=await Zt(n.journal,{...a,state:"applied",updatedAt:new Date().toISOString()},gt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Rr(n.lock),await at(n.platformDirectory),Xt.delete(e.transactionId),_r(a)}catch(i){throw a=await ZR(n,a,i instanceof j?i.operationIndex:void 0,t?.durabilityTrace),Xt.set(e.transactionId,{desiredContents:r.desiredContents,journal:a}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function er(e){return e_(e)}function _r(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Dt(e){let t=await xi(e.projectRoot),r=na(t,e.planId);if(!await St(r.journal)){if(!await St(r.lock))return null;let n=await ji(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return _r(await Hc(r.journal))}async function t_(e,t,r){await sn(G.dirname(e),{recursive:!0});let n=G.join(G.dirname(e),`.dyyto-recover-${dn()}.tmp`);await aa(n,t,r&511),await $i(n,e),await qR(e,r&511),await at(G.dirname(e))}async function Tf(e){let t=await xi(e.projectRoot),r=na(t,e.planId);if(!await St(r.journal)){if(!await St(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let a=await ji(r.lock);if(a.planId!==e.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await Gc(r.transactionDirectory,{recursive:!0,force:!0}),await sn(r.transactionDirectory,{recursive:!0,mode:448});let i=Yc({schemaVersion:1,transactionId:a.transactionId,planId:a.planId,approvedPlanId:a.planId,projectRootDigest:y(t),state:"recovered",createdAt:a.startedAt,updatedAt:e.now,operations:[]});return await Kc(r.journal,i),await Rr(r.lock),await at(r.platformDirectory),_r(i)}let n=await Hc(r.journal);if(n.state==="recovered")return _r(n);if(n.state==="applied"){for(let a of n.operations){let i=await ln(un(t,a.path));if(!(a.kind==="remove"?i===void 0:i?.digest===a.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",a.path,a.index)}if(await St(r.lock)){let a=await ji(r.lock);if(a.transactionId!==n.transactionId||a.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Rr(r.lock),await at(r.platformDirectory)}return Xt.delete(n.transactionId),_r(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await St(r.lock)){let a=await ji(r.lock);if(a.transactionId!==n.transactionId||a.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Xc(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:dn()});n=await Zt(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let a of[...n.operations].reverse()){if(a.status==="restored")continue;let i=un(t,a.path);if(await cn(t,a.path),a.kind!=="remove"){let s=G.join(G.dirname(i),`.dyyto-${n.transactionId}-${a.index}.tmp`);if(await St(s)){if((await ln(s))?.digest!==a.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",a.path,a.index);await Rr(s),await at(G.dirname(s))}}let o=await ln(i);if(a.before.kind==="absent"){if(o!==void 0){if(o.digest!==a.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",a.path,a.index);await Rr(i),await at(G.dirname(i))}}else if(o?.digest!==a.before.digest){let s=G.join(r.quarantine,`${a.index}.bin`),c=o?.digest===a.desiredDigest,l=a.kind==="remove"&&o===void 0&&await St(s),d=e.approvedConflicts?.find(f=>f.path===a.path&&f.currentDigest===o?.digest);if(!c&&!l&&!d)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",a.path,a.index);let p=await Li(G.join(r.preimages,`${a.index}.bin`));if(y(p)!==a.before.preimageDigest)throw new j("JOURNAL_CORRUPTED","Preimage digest is invalid",a.path,a.index);await t_(i,p,a.before.mode),l&&await Gc(s,{force:!0})}a.status="restored",n=await Zt(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",a.index)}return n=await Zt(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Rr(r.lock),await at(r.platformDirectory),Xt.delete(n.transactionId),_r(n)}async function ia(e){return Tf(e)}async function Zc(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 Tf(e)}async function Qc(e){let t=await xi(e.projectRoot),r=na(t,e.planId),n=await Hc(r.journal);if(n.state==="recovered")return _r(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let a;for(let i of n.operations){let o=await ln(un(t,i.path)),s=i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest,c=i.before.kind==="absent"?o===void 0:o?.digest===i.before.digest;if(!s&&!c){a=i;break}}if(await Xc(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:dn()}),n=await Zt(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),a!==void 0)throw new j("RECOVERY_CONFLICT","Rollback would overwrite external content",a.path,a.index);return Xt.set(n.transactionId,{desiredContents:new Map,journal:n}),ia({projectRoot:t,planId:e.planId,now:e.now})}var we=class extends Error{code;constructor(t,r){super(r),this.code=t}},oa=class extends Error{};function la(e,t){let r=ke.join(e,".dyyto"),n=ke.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:ke.join(r,"evidence"),lockFile:ke.join(r,"project-lock.json"),transactionLock:ke.join(r,"metadata-lock.json"),transactionDirectory:n,journal:ke.join(n,"journal.json")}}async function tr(e){try{return await r_(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function jt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Fi(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function qi(e,t){let r=await Lf(e,Mi.O_RDONLY);try{await nt({context:Fi(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function rl(e,t,r){let n=await Lf(e,Mi.O_CREAT|Mi.O_EXCL|Mi.O_WRONLY,384);try{await nt({context:Fi(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await nt({context:Fi(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function sa(e,t,r){let n=ke.dirname(e),a=ke.join(n,`.tmp-${tl()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
17
+ `);await rl(a,i,r),await nt({context:Fi(r),operation:"rename",bytes:i.byteLength,run:()=>n_(a,e)}),await qi(n,r)}function nl(e){return{...e,journalDigest:y(b(e))}}async function Vi(e,t,r){let{journalDigest:n,...a}=t,i=nl(a);return await sa(e,i,r),i}async function xf(e){try{let t=JSON.parse(await ca(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==y(b(n)))throw new Error("invalid journal");return t.evidence.forEach(ra),Ue(t.lock),t}catch{throw new we("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function al(e,t,r){try{await rl(e,Buffer.from(`${JSON.stringify(t,null,2)}
18
+ `),r),await qi(ke.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new we("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Vf(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(b(r))}}function Mf(e,t,r){let n=t.map(Af),a=e.verifiers.map(o=>o.id).sort(),i=n.map(o=>o.verifierId).sort();if(a.length!==i.length||a.some((o,s)=>o!==i[s]))throw new we("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 we("VERIFICATION_FAILED",`Verifier ${o.verifierId} did not pass`);if(o.projectStateDigest!==r)throw new we("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function a_(e,t,r){let n=ke.join(e,`${t.evidenceId}.json`);if(await tr(n)){let a=ra(JSON.parse(await ca(n,"utf8")));if(b(a)!==b(t))throw new we("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await rl(n,Buffer.from(`${JSON.stringify(t,null,2)}
19
+ `),r),await qi(e,r)}async function i_(e,t,r,n){if(await tr(e)){let a=Ue(JSON.parse(await ca(e,"utf8")));if(b(a)===b(t))return;if(r===void 0||y(b(a))!==r)throw new we("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await sa(e,t,n);return}await sa(e,t,n)}async function Ui(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new oa("Simulated metadata crash",{cause:r})}}async function il(e,t,r){let n=la(e,t.planId),a=t;try{for(let i of a.evidence)await a_(n.evidenceDirectory,i,jt(r?.durabilityTrace,"evidence",`${a.transactionId}:evidence`));return a=await Vi(n.journal,{...a,state:"evidence-written",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:evidence-written`)),await Ui(r,"evidence-written"),await i_(n.lockFile,a.lock,a.previousLockDigest,jt(r?.durabilityTrace,"lock",`${a.transactionId}:project-lock`)),a=await Vi(n.journal,{...a,state:"lock-written",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:lock-written`)),await Ui(r,"lock-written"),a=await Vi(n.journal,{...a,state:"committed",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:committed`)),await Ui(r,"committed"),await el(n.transactionLock),await qi(n.platformDirectory,jt(r?.durabilityTrace,"directory",`${a.transactionId}:unlock`)),a.lock}catch(i){if(i instanceof oa)throw new we("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Vi(n.journal,{...a,state:"recovery-required",updatedAt:new Date().toISOString()},jt(r?.durabilityTrace,"journal",`${a.transactionId}:recovery-required`))}catch{}throw i}}async function o_(e){let t=await Ar(ke.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Ar(ke.resolve(e.transactionRoot));if((await Dt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new we("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let a;try{a=await kr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new we("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let o=Mf(e.release,e.verificationResults,a.projectStateDigest).map(m=>Vf(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:a.projectStateDigest,assets:a.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};Ue(d);let p=la(t,e.plan.planId);if(await fn(p.platformDirectory,{recursive:!0,mode:448}),await fn(p.evidenceDirectory,{recursive:!0,mode:448}),await tr(p.lockFile)&&e.previousLock===void 0){let m=Ue(JSON.parse(await ca(p.lockFile,"utf8")));if(b(m)===b(d))return m;throw new we("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=tl();if(await al(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},jt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await tr(p.transactionDirectory))throw await el(p.transactionLock),new we("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await fn(p.transactionDirectory,{recursive:!0,mode:448});let u=nl({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(b(Ue(e.previousLock)))}});await sa(p.journal,u,jt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await Ui(e.hooks,"journal-prepared")}catch(m){throw m instanceof oa?new we("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return il(t,u,e.hooks)}async function ol(e){return o_(e)}async function sl(e){let t=await Ar(ke.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Ar(ke.resolve(e.transactionRoot));if((await Dt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new we("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let a=e.previousLock.capabilities.find(h=>h.capabilityId===e.release.capabilityId&&h.version===e.release.version);if(a===void 0)throw new we("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let i=e.previousLock.capabilities.filter(h=>h!==a),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??i.flatMap(h=>h.assets).map(h=>({...h,digest:s.get(h.path)??h.digest})),l=await kr({projectRoot:t,expectedAssets:c}),p=Mf(e.release,e.verificationResults,l.projectStateDigest).map(h=>Vf(e.release,h)),f={schemaVersion:i.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:i};Ue(f);let u=la(t,e.plan.planId);await fn(u.platformDirectory,{recursive:!0,mode:448}),await fn(u.evidenceDirectory,{recursive:!0,mode:448});let m=tl();await al(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await fn(u.transactionDirectory,{recursive:!1,mode:448});let g=nl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(b(Ue(e.previousLock)))});return await sa(u.journal,g),il(t,g)}async function cl(e){let t=await Ar(ke.resolve(e.projectRoot)),r=la(t,e.planId),n=await xf(r.journal);return n.state==="committed"?(await tr(r.transactionLock)&&await el(r.transactionLock),n.lock):(await tr(r.transactionLock)||await al(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),il(t,n))}async function ll(e){let t=await Ar(ke.resolve(e.projectRoot)),r=la(t,e.planId);if(!await tr(r.journal))return null;let n=await xf(r.journal);return{planId:n.planId,state:n.state}}async function Te(e){let t=await Ar(ke.resolve(e)),r=ke.join(t,".dyyto","project-lock.json");return await tr(r)?Ue(JSON.parse(await ca(r,"utf8"))):null}import{lstat as qf,readFile as Uf,realpath as Ff}from"node:fs/promises";import rr from"node:path";var ht=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Bf(e){return y(b(e))}async function s_(e,t){let r=rr.join(e,"assets",...t.split("/"));try{return await qf(r),r}catch(n){if(n.code!=="ENOENT"||rr.posix.basename(t)!==".gitignore")throw n}return rr.join(e,"assets",...rr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Ie(e){let t=await Ff(rr.resolve(e)),r;try{r=_f(JSON.parse(await Uf(rr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof ht?c:new ht("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...a}=r;if(Bf(a)!==n)throw new ht("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let i=new Map,o=new Set,s="";for(let c of r.assets){try{Ei(c.path)}catch{throw new ht("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 ht("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 s_(t,c.path),d=await Ff(l),p=rr.join(t,"assets");if(!d.startsWith(`${p}${rr.sep}`))throw new ht("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await qf(l);if(!f.isFile()||f.isSymbolicLink())throw new ht("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await Uf(l);if(y(u)!==c.digest)throw new ht("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);i.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 ht("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:i}}import{link as c_,open as Jf,lstat as Er,mkdir as Wf,readFile as dl,readdir as Bi,realpath as $t,rm as l_,unlink as d_}from"node:fs/promises";import me from"node:path";var be=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},p_={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function u_(){return new TextEncoder().encode(`${JSON.stringify(p_,null,2)}
20
+ `)}async function f_(e,t=!1){let r=me.resolve(e),n=await Er(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new be("TARGET_INVALID","Workspace target must be a real existing directory");let a=await $t(r);for(let i of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let o=await Er(me.join(a,i)).catch(()=>null);if(o===null||!o.isFile()||o.isSymbolicLink())throw new be("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${i}`)}if(await Er(me.join(a,"project-capabilities.json")).catch(()=>null))throw new be("MANIFEST_EXISTS","Project manifest already exists");return a}async function Gf(e){let t=await f_(e.projectRoot,e.documentationOnly===!0),r=u_(),n=Pe({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 m_(e){let t=await Jf(e,"r");try{await t.sync()}finally{await t.close()}}async function Kf(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await Jf(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await c_(r,e),await d_(r),await m_(me.dirname(e))}catch(a){throw await l_(r,{force:!0}),a}}async function g_(e){let t=me.resolve(e);try{let r=await Er(t);if(!r.isDirectory()||r.isSymbolicLink())throw new be("TARGET_INVALID","Project target must be a real directory");if((await Bi(t)).length!==0)throw new be("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=me.dirname(t),a=await Er(n).catch(()=>null);if(a===null||!a.isDirectory()||a.isSymbolicLink())throw new be("TARGET_INVALID","Project target parent must be a real directory");await Wf(t)}return $t(t)}async function zi(e){let t=X(e.manifest),r=await g_(e.projectRoot),n=me.join(r,"project-capabilities.json");try{await Kf(n,`${JSON.stringify(t,null,2)}
21
+ `)}catch(a){throw a.code==="EEXIST"?new be("MANIFEST_EXISTS","Project manifest already exists"):a}return{projectRoot:r,manifest:t}}function da(e){let{planId:t,...r}=e;if(Pi(r)!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function h_(e){let t=await $t(me.resolve(e.projectRoot)),r=Ht(e.plan);da(r);let n=me.join(t,".dyyto","plans");await Wf(n,{recursive:!0,mode:448});let a=me.join(n,`${r.planId}.json`);try{await Kf(a,`${b(r)}
22
+ `)}catch(i){if(i.code!=="EEXIST")throw i;let o=Ht(JSON.parse(await dl(a,"utf8")));if(da(o),b(o)!==b(r))throw new be("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return a}function zf(e){return b({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Ct(e){let t=await $t(me.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await $t(me.resolve(e.transactionRoot)),n=Ht(e.plan);da(n);let a=me.join(t,".dyyto","plans"),i=await Bi(a).catch(s=>{if(s.code==="ENOENT")return[];throw s}),o=[];for(let s of i.filter(c=>c.endsWith(".json")).sort()){let c=Ht(JSON.parse(await dl(me.join(a,s),"utf8")));da(c),!await Er(me.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)&&zf(c)===zf(n)&&o.push(c)}return o.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),o[0]!==void 0?o[0]:(await h_({projectRoot:t,plan:n}),n)}async function Pr(e){let t=await $t(me.resolve(e.projectRoot)),r=me.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=Ht(JSON.parse(await dl(r,"utf8")));if(da(n),n.planId!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new be("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Ji(e,t=[],r,n=[]){let a=await $t(me.resolve(e)),i=r===void 0?a:await $t(me.resolve(r)),o=me.join(a,".dyyto","plans"),s=await Bi(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 Pr({projectRoot:a,planId:p}),u=await Dt({projectRoot:i,planId:p}),m=await Er(me.join(a,".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=y_(c);if(l===void 0)throw new be("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 y_(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 pl(e){let t=await $t(me.resolve(e)),r=me.join(t,".dyyto","plans"),n=await Bi(r).catch(i=>{if(i.code==="ENOENT")return[];throw i}),a=[];for(let i of n.filter(o=>o.endsWith(".json")).sort())a.push(await Pr({projectRoot:t,planId:i.slice(0,-5)}));return a}import{lstat as Yf,readFile as w_,readdir as I_,realpath as v_}from"node:fs/promises";import Ne from"node:path";import{homedir as Hf}from"node:os";var it=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Xf(e){let t=Ne.resolve(e),r=await Yf(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ne.parse(t).root||t===Ne.resolve(Hf()))throw new it("WORKSPACE_PATH_UNSAFE");let n=await v_(t);if(n!==t)throw new it("WORKSPACE_PATH_UNSAFE");return n}async function Nr(e){let t=await Yf(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new it("WORKSPACE_PATH_UNSAFE");return w_(e)}}function Zf(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let a of t){if(/^packages:\s*(?:#.*)?$/u.test(a)){n=!0;continue}if(!n)continue;let i=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(a);if(i){r.push(i[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(a.trim()&&!/^\s/u.test(a))break}if(r.length===0)throw new it("WORKSPACE_MANIFEST_INVALID");return r}function b_(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 Wi(e){let t=await Xf(e),r=await Nr(Ne.join(t,"pnpm-workspace.yaml"));if(!r)throw new it("WORKSPACE_OWNER_MISSING");let n=new Map;for(let a of Zf(r.toString("utf8"))){let i=[];if(a.endsWith("/*")&&!a.slice(0,-2).includes("*")){let o=a.slice(0,-2),s=await I_(Ne.join(t,...o.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&i.push(`${o}/${c.name}`)}else if(!a.includes("*"))i.push(a);else throw new it("WORKSPACE_MANIFEST_INVALID");for(let o of i){let s=await Nr(Ne.join(t,...o.split("/"),"package.json"));s&&n.set(o,s)}}return Object.freeze([...n].sort(([a],[i])=>a.localeCompare(i)).map(([a,i])=>Object.freeze({relativeRoot:a,bytes:i})))}async function Tt(e){let t=await Xf(e);if(await Nr(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 Nr(Ne.join(t,"pnpm-workspace.yaml")))throw new it("WORKSPACE_NESTED_UNSUPPORTED");let r=Ne.dirname(t),n;for(;r!==Ne.parse(r).root&&r!==Ne.resolve(Hf());){let i=await Nr(Ne.join(r,"pnpm-workspace.yaml"));if(i){if(n)throw new it("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:i};break}r=Ne.dirname(r)}if(!n||!await Nr(Ne.join(n.root,"pnpm-lock.yaml"))||!await Nr(Ne.join(n.root,"project-capabilities.json")))throw new it("WORKSPACE_OWNER_MISSING");let a=Ne.relative(n.root,t).split(Ne.sep).join("/");if(!a||a.startsWith("../")||Zf(n.manifest.toString("utf8")).filter(i=>b_(i,a)).length!==1)throw new it("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:a,unitImporterId:a,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var Qf=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function ul(e){let t=await pl(e);for(let r of t){let n=await Dt({projectRoot:e,planId:r.planId});if(n!==null&&Qf.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await ll({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 k_(e){let t=await ul(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ia({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await cl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function em(e){let t=await k_(e);if(t.kind!=="none")return t;let r=await Tt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await pl(e.projectRoot)).map(c=>c.planId)),a=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(!a)return t;let i;try{let c=JSON.parse(a);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 o=await Dt({projectRoot:r.transactionRoot,planId:i});if(!o||!Qf.has(o.state))return t;let s=await ia({projectRoot:r.transactionRoot,planId:i,now:e.now});return{kind:"filesystem",planId:i,state:s.state}}import{lstat as R_,readFile as fl,realpath as tm}from"node:fs/promises";import pa from"node:path";var __=new Set(["MIT","Apache-2.0","UNLICENSED"]),A_=new Set(["public","restricted","private"]),E_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,P_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function N_(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 Or(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 nr(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(),a=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,i=a==="1.1.0"||a==="1.2.0"||t==="react-component-library",o=i?["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||!E_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!P_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!__.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!A_.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:N_(p)}:{}}}function ml(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)}
23
23
  `)}function gl(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)}
24
24
  `)}function O_(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)}
25
25
  `)}function S_(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)}
26
26
  `)}function D_(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)}
27
27
  `)}function j_(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)}
28
- `)}async function rm(e,t){let r=pa.join(e,...t.split("/"));try{let n=await R_(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 fl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Sr(e,t){let r=X(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?S_(Or(r).name):t==="workspace-expo-application"?j_(Or(r).name):t==="nextjs-full-stack-application"?D_(Or(r).name):O_(Or(r).name):t==="react-component-library"?gl(nr(r,t)):ml(nr(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:Me(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 tm(pa.resolve(e.projectRoot)),d=[],l=[];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 rm(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 fl(pa.join(c,...u.path.split("/"))));let h=y(s.get(u.path));d.push(g),l.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:l.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:l,observedAssets:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:f,desiredContents:s}}function ua(e){return Sr(e,"standalone-npm-package")}function fa(e){return Sr(e,"react-component-library")}function fn(e){return Sr(e,"nextjs-full-stack-application")}async function hl(e){let t=X(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=X({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await fn({...e,manifest:r}),a=await tm(pa.resolve(e.projectRoot)),i="project-capabilities.json",o=await fl(pa.join(a,i)),s=Buffer.from(`${JSON.stringify(r,null,2)}
29
- `),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:i,kind:"replace",ownership:"owned-file",baseDigest:y(o),desiredDigest:y(s)});let d=await Promise.all(c.map(u=>rm(a,u.path))),l=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!==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:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[i,s]]),f=new Map;for(let u of l.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:l,desiredContents:f}}function ma(e){return Sr(e,"workspace-npm-package")}function ga(e){return Sr(e,"workspace-node-application")}function ha(e){return Sr(e,"workspace-web-application")}function ya(e){return Sr(e,"workspace-expo-application")}async function nm(e){if(e.currentLock!==void 0){let n=await ua(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ua({...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 fa(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await fa({...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 im(e){if(e.currentLock!==void 0){let n=await fn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await fn({...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 ma(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ma({...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 ga(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ga({...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 cm(e){if(e.currentLock!==void 0){let n=await ha(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ha({...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 lm(e){if(e.currentLock!==void 0){let n=await ya(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ya({...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 Q_,readFile as so,realpath as eA}from"node:fs/promises";import ba from"node:path";var yt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Dr=/^sha256:[a-f0-9]{64}$/,$_=/^sha512-[A-Za-z0-9+/]{86}==$/,C_=/^(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}$/,T_=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,dm=/^[a-z][a-z0-9._:-]{2,127}$/;function jr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,a)=>n===[...t].sort()[a])}function L_(e){if(!jr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!pm.test(e.registryId)||!dm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,a)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==a)||!jr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!jr(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&&!dm.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 yl(e){if(!L_(e))throw new yt("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(b(t))})}function wa(e){let t=e;if(typeof t!="object"||t===null||!jr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Dr.test(t.revision))throw new yt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...a}=t;if(yl(a).revision!==n)throw new yt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function x_(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 wl(e,t){let r=wa(t);if(!jr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!x_(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 yt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(b(n))})}function um(e,t){let r=e;if(typeof r!="object"||r===null||!jr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Dr.test(r.bindingDigest))throw new yt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:a,...i}=r;if(wl(i,t).bindingDigest!==a)throw new yt("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 jr(e,t)&&pm.test(e.registryId)&&Dr.test(e.registryConfigRevision)&&T_.test(e.packageName)&&C_.test(e.version)&&$_.test(e.integrity)&&Dr.test(e.tarballDigest)&&Dr.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&&Dr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Il(e){if(!V_(e))throw new yt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function fm(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Dr.test(t.receiptId))throw new yt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...a}=t;if(Il(a).receiptId!==n)throw new yt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var be=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Ia(e){return y(b(e))}var vl=/^sha256:[a-f0-9]{64}$/u,M_=/^sha512-[A-Za-z0-9+/]{86}==$/u,U_=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,Gi=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,F_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,q_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function Ki(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function mm(e){return y(b(e))}function gm(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},a={...n,jobId:mm(n),desiredLockfile:t};hm(a);let i={...a,importerFacts:Object.freeze(a.importerFacts.map(o=>Object.freeze({...o}))),packageFacts:Object.freeze(a.packageFacts.map(o=>Object.freeze({...o}))),cacheObservation:Object.freeze({...a.cacheObservation})};return Object.freeze(i)}function hm(e){if(!Ki(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 be("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(a=>vl.test(a)))throw new be("RESOLUTION_EVIDENCE_INVALID");if(!Gi.test(e.workerReleaseId)||!Gi.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 be("RESOLUTION_EVIDENCE_INVALID");if(!Ki(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new be("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(a=>!Ki(a,["importerId","manifestDigest","preimageDigest","desiredDigest"])||a.importerId!=="."&&!Gi.test(a.importerId)||![a.manifestDigest,a.preimageDigest,a.desiredDigest].every(i=>vl.test(i))))throw new be("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(a=>!Ki(a,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!q_.test(a.identity)||!F_.test(a.packageName)||!Gi.test(a.registryId)||!U_.test(a.version)||!M_.test(a.integrity)||typeof a.managed!="boolean"||!vl.test(a.edgesDigest)))throw new be("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(a=>a.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(a=>a.identity)).size!==e.packageFacts.length)throw new be("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(mm(n)!==e.jobId)throw new be("RESOLUTION_EVIDENCE_INVALID")}function bl(e,t){if(hm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new be("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new be("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new be("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let a=e.importerFacts.find(i=>i.importerId===n.importerId);if(!a||a.preimageDigest!==n.preimageDigest||a.desiredDigest!==n.preimageDigest)throw new be("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let a=e.packageFacts.filter(i=>i.managed&&i.packageName===n.packageName);if(a.length!==1||a[0].registryId!==n.registryId||a[0].version!==n.version||a[0].integrity!==n.integrity)throw new be("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new be("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Y=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function Xi(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:a,expiresAt:i})=>({registryId:r,registryConfigRevision:n,bindingDigest:a,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 Y("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var Yi=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,ym=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function kl(e){return Array.isArray(e)?`[${e.map(kl).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)}:${kl(r)}`).join(",")}}`:JSON.stringify(e)}function Lt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function ot(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function Hi(e){for(let t of[ot(e.dependencies),ot(e.devDependencies),ot(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!Yi.test(n)||ym.test(n)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}var B_=["dependencies","devDependencies","optionalDependencies"];function Zi(e,t){let r=[];for(let n of B_)for(let[a,i]of Object.entries(ot(e[n]))){if(t.has(a)){if(!Yi.test(i))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(i))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:a,specifier:i})}return r.sort((n,a)=>`${n.section}:${n.packageName}`.localeCompare(`${a.section}:${a.packageName}`))}function Rl(e){let t=Lt(e.packageJson);Hi(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:o})=>[i,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:o})=>[i,o])),a={...t,...Object.keys(r).length?{dependencies:{...ot(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ot(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(a,null,2)}
28
+ `)}async function rm(e,t){let r=pa.join(e,...t.split("/"));try{let n=await R_(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 fl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Sr(e,t){let r=X(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?S_(Or(r).name):t==="workspace-expo-application"?j_(Or(r).name):t==="nextjs-full-stack-application"?D_(Or(r).name):O_(Or(r).name):t==="react-component-library"?gl(nr(r,t)):ml(nr(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:Ue(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 tm(pa.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 rm(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 fl(pa.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=Pe({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 ua(e){return Sr(e,"standalone-npm-package")}function fa(e){return Sr(e,"react-component-library")}function mn(e){return Sr(e,"nextjs-full-stack-application")}async function hl(e){let t=X(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=X({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await mn({...e,manifest:r}),a=await tm(pa.resolve(e.projectRoot)),i="project-capabilities.json",o=await fl(pa.join(a,i)),s=Buffer.from(`${JSON.stringify(r,null,2)}
29
+ `),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:i,kind:"replace",ownership:"owned-file",baseDigest:y(o),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>rm(a,u.path))),d=Pe({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 ma(e){return Sr(e,"workspace-npm-package")}function ga(e){return Sr(e,"workspace-node-application")}function ha(e){return Sr(e,"workspace-web-application")}function ya(e){return Sr(e,"workspace-expo-application")}async function nm(e){if(e.currentLock!==void 0){let n=await ua(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ua({...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 fa(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await fa({...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 im(e){if(e.currentLock!==void 0){let n=await mn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await mn({...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 ma(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ma({...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 ga(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ga({...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 cm(e){if(e.currentLock!==void 0){let n=await ha(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ha({...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 lm(e){if(e.currentLock!==void 0){let n=await ya(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ya({...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 eA,readFile as so,realpath as tA}from"node:fs/promises";import ba from"node:path";var yt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Dr=/^sha256:[a-f0-9]{64}$/,$_=/^sha512-[A-Za-z0-9+/]{86}==$/,C_=/^(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}$/,T_=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,dm=/^[a-z][a-z0-9._:-]{2,127}$/;function jr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,a)=>n===[...t].sort()[a])}function L_(e){if(!jr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!pm.test(e.registryId)||!dm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,a)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==a)||!jr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!jr(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&&!dm.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 yl(e){if(!L_(e))throw new yt("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(b(t))})}function wa(e){let t=e;if(typeof t!="object"||t===null||!jr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Dr.test(t.revision))throw new yt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...a}=t;if(yl(a).revision!==n)throw new yt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function x_(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 wl(e,t){let r=wa(t);if(!jr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!x_(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 yt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(b(n))})}function um(e,t){let r=e;if(typeof r!="object"||r===null||!jr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Dr.test(r.bindingDigest))throw new yt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:a,...i}=r;if(wl(i,t).bindingDigest!==a)throw new yt("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 jr(e,t)&&pm.test(e.registryId)&&Dr.test(e.registryConfigRevision)&&T_.test(e.packageName)&&C_.test(e.version)&&$_.test(e.integrity)&&Dr.test(e.tarballDigest)&&Dr.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&&Dr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Il(e){if(!V_(e))throw new yt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function fm(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Dr.test(t.receiptId))throw new yt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...a}=t;if(Il(a).receiptId!==n)throw new yt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Re=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Ia(e){return y(b(e))}var vl=/^sha256:[a-f0-9]{64}$/u,M_=/^sha512-[A-Za-z0-9+/]{86}==$/u,U_=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,Gi=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,F_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,q_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function Ki(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function mm(e){return y(b(e))}function gm(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},a={...n,jobId:mm(n),desiredLockfile:t};hm(a);let i={...a,importerFacts:Object.freeze(a.importerFacts.map(o=>Object.freeze({...o}))),packageFacts:Object.freeze(a.packageFacts.map(o=>Object.freeze({...o}))),cacheObservation:Object.freeze({...a.cacheObservation})};return Object.freeze(i)}function hm(e){if(!Ki(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 Re("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(a=>vl.test(a)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!Gi.test(e.workerReleaseId)||!Gi.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 Re("RESOLUTION_EVIDENCE_INVALID");if(!Ki(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(a=>!Ki(a,["importerId","manifestDigest","preimageDigest","desiredDigest"])||a.importerId!=="."&&!Gi.test(a.importerId)||![a.manifestDigest,a.preimageDigest,a.desiredDigest].every(i=>vl.test(i))))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(a=>!Ki(a,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!q_.test(a.identity)||!F_.test(a.packageName)||!Gi.test(a.registryId)||!U_.test(a.version)||!M_.test(a.integrity)||typeof a.managed!="boolean"||!vl.test(a.edgesDigest)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(a=>a.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(a=>a.identity)).size!==e.packageFacts.length)throw new Re("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(mm(n)!==e.jobId)throw new Re("RESOLUTION_EVIDENCE_INVALID")}function bl(e,t){if(hm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Re("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Re("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let a=e.importerFacts.find(i=>i.importerId===n.importerId);if(!a||a.preimageDigest!==n.preimageDigest||a.desiredDigest!==n.preimageDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let a=e.packageFacts.filter(i=>i.managed&&i.packageName===n.packageName);if(a.length!==1||a[0].registryId!==n.registryId||a[0].version!==n.version||a[0].integrity!==n.integrity)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Y=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function Xi(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:a,expiresAt:i})=>({registryId:r,registryConfigRevision:n,bindingDigest:a,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 Y("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var Yi=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,ym=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function kl(e){return Array.isArray(e)?`[${e.map(kl).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)}:${kl(r)}`).join(",")}}`:JSON.stringify(e)}function Lt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function ot(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function Hi(e){for(let t of[ot(e.dependencies),ot(e.devDependencies),ot(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!Yi.test(n)||ym.test(n)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}var B_=["dependencies","devDependencies","optionalDependencies"];function Zi(e,t){let r=[];for(let n of B_)for(let[a,i]of Object.entries(ot(e[n]))){if(t.has(a)){if(!Yi.test(i))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(i))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:a,specifier:i})}return r.sort((n,a)=>`${n.section}:${n.packageName}`.localeCompare(`${a.section}:${a.packageName}`))}function Rl(e){let t=Lt(e.packageJson);Hi(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:o})=>[i,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:o})=>[i,o])),a={...t,...Object.keys(r).length?{dependencies:{...ot(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ot(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(a,null,2)}
30
30
  `)}function va(e){let t=Lt(e.packageJson);Zi(t,new Set(e.release.packageSources.map(a=>a.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="runtime").map(({packageName:a,version:i})=>[a,i])),n=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="development").map(({packageName:a,version:i})=>[a,i]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...ot(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ot(t.devDependencies),...n}}:{}},null,2)}
31
31
  `)}function _l(e){let t=Lt(e.packageJson);Hi(t);let r=ot(t.dependencies),n=ot(t.devDependencies);for(let i of e.remove)delete(i.usage==="runtime"?r:n)[i.packageName];let a={...t};return Object.keys(r).length===0?delete a.dependencies:a.dependencies=r,Object.keys(n).length===0?delete a.devDependencies:a.devDependencies=n,Buffer.from(`${JSON.stringify(a,null,2)}
32
32
  `)}function Al(e){let t=Lt(e.packageJson);Zi(t,new Set(e.remove.map(i=>i.packageName)));let r=ot(t.dependencies),n=ot(t.devDependencies);for(let i of e.remove)delete(i.usage==="runtime"?r:n)[i.packageName];let a={...t};return Object.keys(r).length===0?delete a.dependencies:a.dependencies=r,Object.keys(n).length===0?delete a.devDependencies:a.devDependencies=n,Buffer.from(`${JSON.stringify(a,null,2)}
33
33
  `)}function wm(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new Y("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)),a=_l({packageJson:e.packageJson,remove:n}),i=Lt(e.projectManifest),o=Array.isArray(i.capabilities)?i.capabilities:[],s=Buffer.from(`${JSON.stringify({...i,capabilities:o.filter(p=>p.capabilityId!==e.release.capabilityId||p.version!==e.release.version)},null,2)}
34
- `),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),d=[{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(a)},{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:d,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(a),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",a],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function Im(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 Y("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)),a=Al({packageJson:e.packageJson,remove:n}),i=e.remainingSources.map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_})),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=bl(e.resolutionEvidence,{requestDigest:Ia({schemaVersion:1,pnpmVersion:"11.21.0",topology:o,currentLockfileDigest:y(e.currentLockfile),desiredPackageJsonDigest:y(a),sources:i,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(a),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h})),managedSources:i,now:e.generatedAt}),c=Lt(e.projectManifest),d=Array.isArray(c.capabilities)?c.capabilities:[],l=Buffer.from(`${JSON.stringify({...c,capabilities:d.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
35
- `),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(l)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(a)},{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(a),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:o,preservedDependencies:Zi(Lt(a),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),l],[p("package.json"),a],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function Qi(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",a=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!a)||e.release.packageSources.length===0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let i=Lt(e.packageJson),o=e.desiredBasePackageJson??e.packageJson,s=Lt(o),c="topology"in e,d=c?Zi(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||Hi(i),c||Hi(s);let l=new Map(e.registryConfigs.map(I=>{let R=wa(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=l.get(I.registryId);if(R===void 0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let S=um(I,R);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let R=fm(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?bl(e.resolutionEvidence,{requestDigest:Ia({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(va({release:e.release,packageJson:o})),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(va({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: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 Y("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=l.get(I.registryId),S=p.get(I.registryId),C=f.get(I.deliveryReceiptId),ce=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 Y("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||!ce||!$)throw new Y("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||ce.integrity!==I.integrity||ce.tarballDigest!==I.tarballDigest||ce.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Y("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!Yi.test(I.version)||ce.lifecycleScripts.length>0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,H]of Object.entries(ce.dependencies)){let ie=m.get(P);if(P.startsWith("@aipt/")&&(!ie||ie.version!==H||!Yi.test(H)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${H}`)});if(ym.test(H))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?va({release:e.release,packageJson:o}):Rl({release:e.release,packageJson:o}),v={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([...l.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(d.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},A=y(kl(v));return Object.freeze({...v,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function eo(e){return Qi(e,"production")}function to(e){return Qi(e,"development")}function ro(e){return Qi(e,"production")}function no(e){return Qi(e,"development")}function z_(e){let t=e.packageAdoption;if(t===void 0)throw new Y("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",a=e.operations.filter(({path:l})=>l===r),i=e.operations.filter(({path:l})=>l===n);if(a.length!==1||i.length!==1)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let o=a[0],s=i[0],c=o.kind==="replace"&&o.baseDigest===t.packageJsonPreimageDigest&&o.desiredDigest===t.desiredPackageJsonDigest&&o.disposition==="ready",d=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||!d)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}async function vm(e){z_(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await Qt({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await er(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 Qc({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 Y("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var _m=Fr(wr(),1);var Am=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Em="^[a-z0-9][a-z0-9._-]{0,127}$",El="^[A-Z][A-Z0-9_]{0,127}$",bm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",J_={$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:Em},profile:{enum:Am}}},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:El},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:El},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:bm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:El},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:bm}}}]}}}},km=new _m.Ajv2020({allErrors:!0,strict:!0}).compile(J_),Rm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,W_=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Je=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function Pm(e){let t=X(e),r=t.profile?.id;if(!Am.includes(r))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},a=n.name;if(Object.keys(n).length!==1||typeof a!="string"||!new RegExp(Em,"u").test(a))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:a,profile:r}}function Pl(e,t){if(!km(e))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",km.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,a=new Set;for(let i of r.bindings){if(n.has(i.name))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${i.name}`);if(n.add(i.name),i.kind==="value"){if(Rm.test(i.name))throw new Je("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 Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${i.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let o=i.kind==="secret-file"?"secrets/":"certs/";if(i.kind==="certificate-file"&&(Rm.test(i.name)||W_.test(i.name)))throw new Je("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(o)||s.some(c=>c===""||c==="."||c===".."))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5FC5\u987B\u4F4D\u4E8E ${o} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(a.has(i.file))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${i.file}`);a.add(i.file)}if(t!==void 0){let i=Pm(t);if(r.application.id!==i.id||r.application.profile!==i.profile)throw new Je("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ao(e){let t=Pm(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 Pl(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
36
- `)}import{createHash as G_,X509Certificate as K_}from"node:crypto";import{lstat as Nl,readFile as mn,realpath as Nm}from"node:fs/promises";import We from"node:path";var Ce=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Dm(e){let t=X(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new Ce("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function io(e){let t=Dm(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)}
37
- `)}function Y_(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 Ce("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 Ce("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Dm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new Ce("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function H_(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let a=n.trim();if(!a||a.startsWith("#"))continue;let i=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(a),o=i?.[1],s=i?.[2];if(!o||s===void 0||o in t)throw new Ce("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 Om(e){return`sha256:${G_("sha256").update(e).digest("hex")}`}function X_(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Sm(e,t,r){let n=await Nl(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new Ce("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 Z_(e,t){if(t.APP_CONFIG_DIR)return t.APP_CONFIG_DIR;let r=t.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(!r||!We.isAbsolute(r))return;let n=await Nl(r).catch(()=>null);if(!n?.isFile()||n.isSymbolicLink()||n.nlink!==1||(n.mode&511&-385)!==0)throw new Ce("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await mn(r,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new Ce("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");return a.projects.filter(o=>typeof o.containerPath=="string"&&typeof o.configDirectory=="string"&&(e===o.containerPath||e.startsWith(`${o.containerPath}${We.sep}`))).sort((o,s)=>s.containerPath.length-o.containerPath.length)[0]?.configDirectory}async function oo({projectRoot:e,environment:t=process.env}){let r=await Nm(We.resolve(e)),[n,a,i]=await Promise.all([mn(We.join(r,"project-capabilities.json")),mn(We.join(r,".dyyto/application-config-binding.json")),mn(We.join(r,"config/application-config.json"))]),o=JSON.parse(n.toString("utf8")),s=Y_(JSON.parse(a.toString("utf8")),o),c=Pl(JSON.parse(i.toString("utf8")),o),d=await Z_(r,t);if(!d||!We.isAbsolute(d))throw new Ce("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let l=await Nm(d),p=await Nl(l);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new Ce("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=We.relative(r,l);if(f===""||!f.startsWith("..")&&!We.isAbsolute(f))throw new Ce("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=We.join(l,".env");await Sm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=H_(await mn(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:X_(C)});continue}if(m[h.name]!==h.file)throw new Ce("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=We.resolve(l,h.file),v=We.relative(l,_);if(!v||v.startsWith("..")||We.isAbsolute(v))throw new Ce("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Sm(_,h.name,!h.required),I=await mn(_),R=I.length>0,S;if(R&&h.kind==="certificate-file")try{let C=new K_(I);S={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new Ce("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:Om(I),updatedAt:A.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:l,contractDigest:Om(i),entries:g}}var $r="project-capabilities.json",jm=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function tA(e,t){if(!jm.test(e)||!jm.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 a=0;a<3;a+=1)if(r[a]!==n[a])return r[a]-n[a];return 0}async function rA(e,t){let r=ba.join(e,...t.split("/"));try{let n=await Q_(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 so(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function co(e,t){let r=X(e),n=t.release,a=n.assets.find(o=>o.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&a?.renderer?.startsWith("npm-package-json-")===!0)return ml(nr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&a?.renderer==="react-component-package-json-v1")return gl(nr(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 Ol(e){let t=X(e.manifest),r=Me(e.currentLock),n=e.sourceRelease.release,a=e.targetRelease.release,i=t.capabilities.find(P=>P.capabilityId===n.capabilityId),o=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=a.capabilityId!==n.capabilityId&&a.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(i===void 0||o===void 0||i.capabilityId!==o.capabilityId||i.version!==o.version||n.capabilityId!==o.capabilityId||n.version!==o.version||n.integrity!==o.integrity||!s&&a.capabilityId!==o.capabilityId||a.consumerProfile!==o.consumerProfile||n.consumerProfile!==a.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&tA(a.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await eA(ba.resolve(e.projectRoot)),d={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:a.capabilityId,version:a.version}:P)},l=new Map(e.targetRelease.contents);a.assets.some(P=>P.path==="package.json")&&l.set("package.json",co(d,e.targetRelease));for(let P of a.assets)P.renderer==="application-config-contract-v1"&&l.set(P.path,ao(d)),P.renderer==="application-config-binding-v1"&&l.set(P.path,io(d));let p,f=c,u="package.json",m;if(a.schemaVersion===2&&a.availability.maturity!=="withdrawn"&&(a.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=l.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let H=await so(ba.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 Xe={release:a,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:a.consumerProfile,packageJson:H,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let dt=ie.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?no:ro)({...Xe,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"?to:eo)({...Xe,lockResolution:e.packageSource.lockResolution});p=Xi(dt),l.set("package.json",dt.desiredPackageJson),l.set(m,dt.desiredLockfile)}catch(dt){throw dt instanceof Y?new M("CONSUMER_PROFILE_UNSUPPORTED",dt.code):dt}}let g=new Map(o.assets.filter(P=>P.path!==$r).map(P=>[P.path,P.digest])),h=new Map(a.assets.filter(P=>P.path!==$r).map(P=>{let H=l.get(P.path);if(H===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(H)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],v=[];for(let P of w){let H=await rA(c,P);_.push(H);let ie=g.get(P),Xe=h.get(P),dt=a.assets.find(Fh=>Fh.path===P);if(dt?.ownership==="seed-file"&&H.exists&&H.digest!==void 0){h.set(P,H.digest),l.set(P,await so(ba.join(c,...P.split("/")))),v.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:H.digest,desiredDigest:H.digest});continue}if(ie===void 0){if(Xe===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);v.push({path:P,kind:"create",ownership:dt?.ownership??"owned-file",desiredDigest:Xe})}else Xe===void 0?v.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ie}):v.push({path:P,kind:"replace",ownership:dt?.ownership??"owned-file",baseDigest:ie,desiredDigest:Xe})}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 H=l.get(m);_.push({path:m,exists:!0,digest:y(P)}),v.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(H)})}let A=await so(ba.join(c,$r)),I=Buffer.from(`${JSON.stringify(d,null,2)}
38
- `);_.push({path:$r,exists:!0,digest:y(A)}),v.push({path:$r,kind:"replace",ownership:"owned-file",baseDigest:y(A),desiredDigest:y(I)});let R={schemaVersion:1,capabilityId:a.capabilityId,version:a.version,integrity:a.integrity,assets:a.assets.filter(P=>P.path!==$r).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:a.verifiers.map(({id:P})=>({id:P,kind:"command"}))},S=f===c?v:v.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),C=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),ce=Ae({action:"upgrade",capability:R,changes:S,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});l.set($r,I);let $=new Map;for(let P of ce.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let H=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ie=P.path===m?P.path:P.path.startsWith(H)?P.path.slice(H.length):P.path,Xe=l.get(ie);if(Xe===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,Xe)}return{sourceLock:r,targetManifest:d,release:e.targetRelease,plan:ce,desiredContents:$,transactionRoot:f}}import{link as nA,mkdir as aA,open as $m,readFile as wt,readdir as iA,realpath as It,rm as oA,unlink as sA}from"node:fs/promises";import ue from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function Pe(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Cm(e){return y(b(e))}function Cl(e){if(!Pe(e.project.lockDigest)||!Pe(e.project.appliedPlanId)||!Pe(e.artifact.digest))throw new D("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 D("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 D("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(a=>typeof a!="string"||a.length>512||/[\u0000-\u001f\u007f]/.test(a)))throw new D("DELIVERY_PRECONDITION_FAILED","npm publication policy is invalid")}if(e.kind!=="npm-publish"&&e.publication!==void 0)throw new D("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:Cm(t)}}function Sl(e){let t=e;if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.state!=="reviewable")throw new D("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 D("DELIVERY_PRECONDITION_FAILED","Delivery Plan schema and publication policy do not match");let{planId:r,...n}=t;if(Cm(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return Cl({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 Tm(e){if(!Pe(e.planId)||!Pe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:y(b(t))}}function Lm(e){if(!Pe(e.planId)||!Pe(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:y(b(t))}}function lo(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function Dl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function xm(e){if(!Pe(e.planId)||!Pe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:y(b(t))}}function jl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function po(e){if(!Pe(e.planId)||!Pe(e.artifactDigest)||e.externalIdentity.length===0)throw new D("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"||!Pe(r.attestationUrlDigest))throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:y(b(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 D("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:y(b(t))}}function $l(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:a,schemaVersion:i,status:o,...s}=t;return po(s)}async function cA(e){let t=await $m(e,"r");try{await t.sync()}finally{await t.close()}}async function ka(e,t){let r=ue.dirname(e);await aA(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,a=await $m(n,"wx",384);try{await a.writeFile(`${b(t)}
39
- `,"utf8"),await a.sync()}finally{await a.close()}try{await nA(n,e),await sA(n),await cA(r)}catch(i){throw await oA(n,{force:!0}),i}}async function Vm(e){let t=await It(ue.resolve(e.projectRoot)),r=Sl(e.plan),n=ue.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await ka(n,r)}catch(a){if(a.code!=="EEXIST")throw a;if(b(Sl(JSON.parse(await wt(n,"utf8"))))!==b(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function xt(e){if(!Pe(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=Sl(JSON.parse(await wt(ue.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 Tl(e){let t=await It(ue.resolve(e.projectRoot)),r=$l(e.receipt),n=await xt({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 hn({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 a=ue.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=$l(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return o}return r}async function gn(e){if(!Pe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=$l(JSON.parse(await wt(ue.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 Mm(e){let t=await It(ue.resolve(e.projectRoot)),r=lo(e.record),n=await xt({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 a=ue.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=lo(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return o}return r}async function Um(e){if(!Pe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=lo(JSON.parse(await wt(ue.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 Fm(e){let t=await It(ue.resolve(e.projectRoot)),r=ue.join(t,".dyyto","delivery","attempts"),n;try{n=await iA(r)}catch(a){if(a.code==="ENOENT")return null;throw a}for(let a of n.sort()){if(!a.endsWith(".json"))continue;let i=lo(JSON.parse(await wt(ue.join(r,a),"utf8")));if((await xt({projectRoot:t,planId:i.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([hn({projectRoot:t,planId:i.planId}),gn({projectRoot:t,planId:i.planId})]);if(s===null&&c===null)return i}return null}async function qm(e){let t=await It(ue.resolve(e.projectRoot)),r=Dl(e.record),n=await xt({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 a=ue.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=Dl(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return o}return r}async function hn(e){if(!Pe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=Dl(JSON.parse(await wt(ue.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 Bm(e){let t=await It(ue.resolve(e.projectRoot)),r=jl(e.record),n=await hn({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 a=ue.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=jl(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return o}return r}async function zm(e){if(!Pe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=jl(JSON.parse(await wt(ue.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 cg,readdir as GA}from"node:fs/promises";import Ml from"node:path";import{mkdir as Ll,open as go,readFile as _a,readdir as xl,rename as ho,rm as ig}from"node:fs/promises";import ge from"node:path";var lA=44;var Jm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",dA=new Uint8Array(64),Gm=new Uint8Array(128);for(let e=0;e<Jm.length;e++){let t=Jm.charCodeAt(e);dA[e]=t,Gm[t]=e}function Ra(e,t){let r=0,n=0,a=0;do{let o=e.next();a=Gm[o],r|=(a&31)<<n,n+=5}while(a&32);let i=r&1;return r>>>=1,i&&(r=-2147483648|-r),t+r}function Wm(e,t){return e.pos>=t?!1:e.peek()!==lA}var oD=1024*16;var pA=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 Km(e){let{length:t}=e,r=new pA(e),n=[],a=0,i=0,o=0,s=0,c=0;do{let d=r.indexOf(";"),l=[],p=!0,f=0;for(a=0;r.pos<d;){let u;a=Ra(r,a),a<f&&(p=!1),f=a,Wm(r,d)?(i=Ra(r,i),o=Ra(r,o),s=Ra(r,s),Wm(r,d)?(c=Ra(r,c),u=[a,i,o,s,c]):u=[a,i,o,s]):u=[a],l.push(u),r.pos++}p||uA(l),n.push(l),r.pos=d+1}while(r.pos<=t);return n}function uA(e){e.sort(fA)}function fA(e,t){return e[0]-t[0]}var mA=/^[\w+.-]+:\/\//,gA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,hA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function yA(e){return mA.test(e)}function wA(e){return e.startsWith("//")}function Xm(e){return e.startsWith("/")}function IA(e){return e.startsWith("file:")}function Ym(e){return/^[.?#]/.test(e)}function uo(e){let t=gA.exec(e);return Zm(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function vA(e){let t=hA.exec(e),r=t[2];return Zm("file:","",t[1]||"","",Xm(r)?r:"/"+r,t[3]||"",t[4]||"")}function Zm(e,t,r,n,a,i,o){return{scheme:e,user:t,host:r,port:n,path:a,query:i,hash:o,type:7}}function Hm(e){if(wA(e)){let r=uo("http:"+e);return r.scheme="",r.type=6,r}if(Xm(e)){let r=uo("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(IA(e))return vA(e);if(yA(e))return uo(e);let t=uo("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function bA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function kA(e,t){Qm(t,t.type),e.path==="/"?e.path=t.path:e.path=bA(t.path)+e.path}function Qm(e,t){let r=t<=4,n=e.path.split("/"),a=1,i=0,o=!1;for(let c=1;c<n.length;c++){let d=n[c];if(!d){o=!0;continue}if(o=!1,d!=="."){if(d===".."){i?(o=!0,i--,a--):r&&(n[a++]=d);continue}n[a++]=d,i++}}let s="";for(let c=1;c<a;c++)s+="/"+n[c];(!s||o&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function eg(e,t){if(!e&&!t)return"";let r=Hm(e),n=r.type;if(t&&n!==7){let i=Hm(t),o=i.type;switch(n){case 1:r.hash=i.hash;case 2:r.query=i.query;case 3:case 4:kA(r,i);case 5:r.user=i.user,r.host=i.host,r.port=i.port;case 6:r.scheme=i.scheme}o>n&&(n=o)}Qm(r,n);let a=r.query+r.hash;switch(n){case 2:case 3:return a;case 4:{let i=r.path.slice(1);return i?Ym(t||e)&&!Ym(i)?"./"+i+a:i+a:a||"."}case 5:return r.path+a;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+a}}function RA(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function _A(e,t){let r=RA(e),n=t?t+"/":"";return a=>eg(n+(a||""),r)}var ar=0,AA=1,EA=2,PA=3,NA=4;function OA(e,t){let r=tg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=tg(e,n+1))e[n]=DA(e[n],t);return e}function tg(e,t){for(let r=t;r<e.length;r++)if(!SA(e[r]))return r;return e.length}function SA(e){for(let t=1;t<e.length;t++)if(e[t][ar]<e[t-1][ar])return!1;return!0}function DA(e,t){return t||(e=e.slice()),e.sort(jA)}function jA(e,t){return e[ar]-t[ar]}var mo=!1;function $A(e,t,r,n){for(;r<=n;){let a=r+(n-r>>1),i=e[a][ar]-t;if(i===0)return mo=!0,a;i<0?r=a+1:n=a-1}return mo=!1,r-1}function CA(e,t,r){for(let n=r+1;n<e.length&&e[n][ar]===t;r=n++);return r}function TA(e,t,r){for(let n=r-1;n>=0&&e[n][ar]===t;r=n--);return r}function LA(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function xA(e,t,r,n){let{lastKey:a,lastNeedle:i,lastIndex:o}=r,s=0,c=e.length-1;if(n===a){if(t===i)return mo=o!==-1&&e[o][ar]===t,o;t>=i?s=o===-1?0:o:c=o}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=$A(e,t,s,c)}function VA(e){return typeof e=="string"?JSON.parse(e):e}var MA="`line` must be greater than 0 (lines start at line 1)",UA="`column` must be greater than or equal to 0 (columns start at column 0)",rg=-1,FA=1,ng=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=VA(e),{version:a,file:i,names:o,sourceRoot:s,sources:c,sourcesContent:d}=n;this.version=a,this.file=i,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=d,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let l=_A(t,s);this.resolvedSources=c.map(l);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=OA(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=LA(),this._bySources=void 0,this._bySourceMemos=void 0}};function qA(e){var t;return(t=e)._decoded||(t._decoded=Km(e._encoded))}function ag(e,t){let{line:r,column:n,bias:a}=t;if(r--,r<0)throw new Error(MA);if(n<0)throw new Error(UA);let i=qA(e);if(r>=i.length)return fo(null,null,null,null);let o=i[r],s=BA(o,e._decodedMemo,r,n,a||FA);if(s===-1)return fo(null,null,null,null);let c=o[s];if(c.length===1)return fo(null,null,null,null);let{names:d,resolvedSources:l}=e;return fo(l[c[AA]],c[EA]+1,c[PA],c.length===5?d[c[NA]]:null)}function fo(e,t,r,n){return{source:e,line:t,column:r,name:n}}function BA(e,t,r,n,a){let i=xA(e,n,t,r);return mo?i=(a===rg?CA:TA)(e,n,i):a===rg&&i++,i===-1||i===e.length?-1:i}var ae=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Vl=/^sha256:[a-f0-9]{64}$/,og=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,zA=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,yo=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Aa=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),yn=(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 ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ge.join(ge.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await xt({projectRoot:r,planId:t.deploymentId}),a=await gn({projectRoot:r,planId:n.planId});if(a===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||a.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await xl(ge.join(ge.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function JA(e){if(!Aa(e)||!yo(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Aa(e.error)||!Aa(e.page)||!yo(e.error,["type","message","frames"])||!yo(e.page,["origin","path"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!og.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 ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Vl.test(n)))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!zA.test(e.traceparent)))throw new ae("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 ae("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 ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Aa(n)||!yo(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let a of[n.line,n.column])if(a!==void 0&&(!Number.isSafeInteger(a)||Number(a)<1))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new ae("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 ae("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function WA(e,t,r="unknown"){let n=e.error.frames.map(o=>({file:yn(o.file,2048),...o.line===void 0?{}:{line:o.line},...o.column===void 0?{}:{column:o.column},...o.function===void 0?{}:{function:yn(o.function,256)}})),a={type:yn(e.error.type,256),message:yn(e.error.message,4096),frames:n},i=y(b({type:a.type,message:a.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:yn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:a,page:{origin:e.page.origin,path:yn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:i,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Vt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ge.join(ge.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ge.join(ge.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=JA(t);if(!r.allowedOrigins.includes(n.page.origin))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let a=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),i=WA(n,r.receivedAt,a);return this.#t(async()=>{let o=this.directory();await Ll(o,{recursive:!0,mode:448});let s=ge.join(o,`${i.eventId}.json`);try{let f=JSON.parse(await _a(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(b({...u,receivedAt:i.receivedAt})!==b(i))throw new ae("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()}`,d=await go(c,"wx",384);try{await d.writeFile(`${b(i)}
40
- `,"utf8"),await d.sync()}finally{await d.close()}await ho(c,s);let l=await go(o,"r");try{await l.sync()}finally{await l.close()}await this.rotate(),i.releaseId!==void 0&&await this.resymbolicate(i.releaseId);let p=JSON.parse(await _a(s,"utf8"));return{eventId:i.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=ge.join(this.directory(),t),n=ge.join(ge.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await Ll(n,{recursive:!0,mode:448}),await ho(r,ge.join(n,`${Date.now()}-${t}`))}async all(){let t=await xl(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let a=JSON.parse(await _a(ge.join(this.directory(),n),"utf8"));if(a.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...a,correlation:a.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,a)=>a.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(a.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=b({v:1,offset:t,snapshot:r});return Buffer.from(b({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 a=JSON.parse(n.content);if(a.v!==1||!Number.isSafeInteger(a.offset)||a.offset<0||a.snapshot!==r)throw new Error("expired");return a.offset}catch{throw new ae("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),a=y(b(n.map(s=>s.eventId))),i=t.cursor===void 0?0:this.parseCursor(t.cursor,a),o=n.slice(i,i+r);return{events:o,...i+o.length<n.length?{nextCursor:this.cursor(i+o.length,a)}:{}}}async get(t){if(!og.test(t))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await _a(ge.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 ae("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 a of r){let i=n.get(a.fingerprint);i?i.count+=1:n.set(a.fingerprint,{count:1,latestAt:a.occurredAt,event:a})}return{total:r.length,groups:[...n.entries()].map(([a,i])=>({fingerprint:a,...i}))}}async rotate(){let t=await this.all(),n=t.reduce((a,i)=>Math.max(a,Date.parse(i.receivedAt)),0)-10080*60*1e3;for(let a of t.slice(1e4))await ig(ge.join(this.directory(),`${a.eventId}.json`),{force:!0});for(let a of t.slice(0,1e4))Date.parse(a.receivedAt)<n&&await ig(ge.join(this.directory(),`${a.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Vl.test(t.releaseId)||!Vl.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!Aa(t.map)||"sourcesContent"in t.map)throw new ae("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(b(t.map)),n=y(r),a=ge.join(this.releases(),t.releaseId);await Ll(a,{recursive:!0,mode:448});let i=y(t.asset),o=ge.join(a,`${i}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await go(`${o}.tmp`,"w",384);try{await c.writeFile(`${b({registration:s,map:t.map})}
41
- `),await c.sync()}finally{await c.close()}return await ho(`${o}.tmp`,o),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await xl(ge.join(this.releases(),t)).catch(()=>[]),n=[];for(let a of r)try{n.push(JSON.parse(await _a(ge.join(this.releases(),t,a),"utf8")))}catch{}for(let a of(await this.all()).filter(i=>i.releaseId===t&&i.state==="map-missing")){let i=!1,o=a.error.frames.map(l=>{let p=n.find(f=>new URL(l.file,"http://local").pathname.endsWith(`/${f.registration.asset}`));if(!p||l.line===void 0||l.column===void 0)return l;try{let f=ag(new ng(p.map),{line:l.line,column:Math.max(0,l.column-1)});return f.source===null||f.line===null||f.column===null?l:(i=!0,{...l,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return l}});if(!i)continue;let s={...a,error:{...a.error,frames:o},state:"symbolicated"},c=ge.join(this.directory(),`${a.eventId}.json`),d=await go(`${c}.tmp`,"w",384);try{await d.writeFile(`${b(s)}
42
- `),await d.sync()}finally{await d.close()}await ho(`${c}.tmp`,c)}}};var Ge=(e,t,r,n,a)=>({code:e,severity:t,fact:r,message:n,...a===void 0?{}:{action:a}});async function Ea(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[Ge("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 a=ra(JSON.parse(await cg(Ml.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(a.evidenceId!==n||a.capabilityId!==r.capabilityId||a.capabilityVersion!==r.version||a.capabilityIntegrity!==r.integrity||a.projectStateDigest!==r.projectStateDigest||a.result!=="passed")return[Ge("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[Ge("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[Ge("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function Ul(e){return e==="adopted"?[]:e==="planned"?[Ge("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"?[Ge("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"?[Ge("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"?[Ge("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")]:[Ge("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 lg(e){try{let r=JSON.parse(await cg(Ml.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[Ge("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[Ge("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 Vt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await GA(Ml.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[Ge("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")]:[Ge("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function dg(e){let t=e.units.map(n=>{let a=n.findings.some(i=>i.severity==="critical")?"blocked":n.findings.some(i=>i.severity==="warning")?"attention":"healthy";return{...n,status:a}}),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 Pa,realpath as pg}from"node:fs/promises";import Cr from"node:path";var oe=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function ug(e){let t=await pg(Cr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,a=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!a||a.packageAdoption!==void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let i=X({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),o=Buffer.from(`${JSON.stringify(i,null,2)}
43
- `),s=await Na(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:y(o)},...a.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],d=await Promise.all(c.map(f=>Na(t,f.path))),l={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:a.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:l,changes:c,observedAssets:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:i,desiredContents:new Map([["project-capabilities.json",o]]),transactionRoot:t,removedSources:[]}}async function Na(e,t){try{let r=await Pa(Cr.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 Fl(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await pg(Cr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,a=e.packageSource?.topology,i=a?.transactionRoot??t,o=R=>a?.mode==="pnpm-shared-lockfile"?`${a.unitRelativeRoot}/${R}`:R;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new oe("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new oe("CAPABILITY_ALREADY_SELECTED","The capability is already selected by this project");let s=r.profile?.id,c=s==="typescript-library"?"blank-typescript-library":s,d=n.dependencies?.profiles??[],l=e.currentLock.capabilities.find(R=>R.consumerProfile===c);if(c===void 0||!d.includes(c)||l===void 0)throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(S=>S.capabilityId===R)||!e.currentLock.capabilities.some(S=>S.capabilityId===R)))throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=X({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=o("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
44
- `),g=await Na(i,u);if(!g.exists||g.digest===void 0)throw new oe("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 oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await Pa(Cr.join(t,"package.json"))}catch{throw new oe("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 Pa(Cr.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"},ce=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(ce&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let H=ce?(e.packageChannel==="development"?no:ro)({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"?to:eo)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=Xi(H),h.push({path:o("package.json"),kind:"replace",ownership:"owned-file",baseDigest:H.packageJsonPreimageDigest,desiredDigest:H.desiredPackageJsonDigest}),w.set(o("package.json"),H.desiredPackageJson),h.push({path:C.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:y(S)},desiredDigest:H.desiredLockfileDigest}),w.set(C.lockfilePath,H.desiredLockfile)}catch(S){throw S instanceof Y?new oe("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 oe("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?ao(r):R.renderer==="application-config-binding-v1"?io(r):S;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new oe("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ce;try{ce=await Pa(Cr.join(t,...R.path.split("/")))}catch{throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(Pf({source:ce.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:o(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(ce),desiredDigest:y($)}),w.set(o(R.path),$)}else{let ce=await Na(t,R.path);if(R.ownership==="seed-file"&&ce.exists){let $=await Pa(Cr.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(C)}),w.set(o(R.path),C)}}let v=await Promise.all(h.map(R=>Na(i,R.path))),A={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==a?.lockfilePath).map(R=>({path:a?.mode==="pnpm-shared-lockfile"?R.path.slice(a.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:A,changes:h,observedAssets:v,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:i,dependency:{profile:c,satisfied:!0}}}var fg=Fr(wr(),1);var KA={$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:kt},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}}}}},VD=new fg.Ajv2020({allErrors:!0,strict:!0}).compile(KA);var wg=Fr(wr(),1);import{readFile as YA,realpath as HA}from"node:fs/promises";import mg from"node:path";var gg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",hg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",XA={$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:gg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:kt},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:hg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:gg}},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:hg,maxLength:240}}}}}},yg=new wg.Ajv2020({allErrors:!0,strict:!0}).compile(XA),Tr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function ZA(e){return y(b(e))}function QA(e){if(!yg(e))throw new Tr("EXAMPLE_RECIPE_INVALID",yg.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 Tr("EXAMPLE_RECIPE_INVALID");return t}async function Ig(e){let t=await HA(mg.resolve(e)),r;try{r=QA(JSON.parse(await YA(mg.join(t,"recipe.json"),"utf8")))}catch(i){throw i instanceof Tr?i:new Tr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...a}=r;if(ZA(a)!==n)throw new Tr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var kg=Fr(wr(),1);import{readFile as eE,realpath as tE}from"node:fs/promises";import vg from"node:path";var rE={$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:kt},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"]}}}},bg=new kg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(rE),Mt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function nE(e){return y(b(e))}function aE(e){if(!bg(e))throw new Mt("TEMPLATE_INVALID",bg.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 Mt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Mt("TEMPLATE_INVALID");return t}async function Oa(e,t=new Date){let r=await tE(vg.resolve(e)),n;try{n=aE(JSON.parse(await eE(vg.join(r,"template.json"),"utf8")))}catch(o){throw o instanceof Mt?o:new Mt("TEMPLATE_INVALID")}let{integrity:a,...i}=n;if(nE(i)!==a)throw new Mt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Mt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Rg}from"node:fs/promises";import _g from"node:path";var iE=/^[A-Z][A-Z0-9_]*$/u,oE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function sE(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||!iE.test(n[1]))continue;let a=n[1],i=n[2].trim();t.set(a,{name:a,requirement:i.length===0?"conditional":"optional",secret:oE.test(a),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Ag(e){let t=await Rg(_g.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Rg(_g.join(e.projectRoot,t),"utf8"):"",n=await oo({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}:{}})):sE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Eg={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"])},Pg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Ng(e,t){if(!Eg[t.plane]||t.state&&!Pg.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=Eg[t.plane],n=t.from?Date.parse(t.from):null,a=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||a!==null&&Number.isNaN(a)||n!==null&&a!==null&&n>a)throw new Error("OPERATION_FILTER_INVALID");let i=e.filter(d=>r.has(d.operation)),o=[...new Map(i.map(d=>[d.projectId,{id:d.projectId,name:d.projectName}])).values()].sort((d,l)=>d.name.localeCompare(l.name)),s=i.filter(d=>(!t.projectId||d.projectId===t.projectId)&&(!t.state||d.state===t.state)&&(!t.kind||d.operation===t.kind)&&(n===null||Date.parse(d.createdAt)>=n)&&(a===null||Date.parse(d.createdAt)<=a)).sort((d,l)=>l.updatedAt.localeCompare(d.updatedAt)),c={total:s.length,running:s.filter(d=>d.state==="running"||d.state==="queued").length,succeeded:s.filter(d=>d.state==="succeeded").length,attention:s.filter(d=>d.state==="failed"||d.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([...Pg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Ke=class extends Error{code;constructor(t){super(t),this.code=t}},cE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Og=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,lE=/^sha512-[A-Za-z0-9+/]{86}==$/u,wo=/^sha256:[a-f0-9]{64}$/u,dE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,pE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,uE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Lr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function fE(e){if(!Lr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!cE.test(e.packageName)||!Og.test(e.version)||!dE.test(e.assetName)||!lE.test(e.integrity)||!wo.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)||!Og.test(n)||pE.test(n))?!1:e.lifecycleScripts.every(r=>uE.has(r))}function ql(e){if(!Lr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Ke("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=>!fE(i)))throw new Ke("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(i=>i.packageName+"@"+i.version);if(new Set(r).size!==r.length||r.some((i,o)=>o>0&&i.localeCompare(r[o-1])<=0))throw new Ke("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(i=>i.packageName));for(let i of t)for(let[o,s]of Object.entries(i.dependencies))if(o.startsWith("@aipt/")&&(!n.has(o)||!t.some(c=>c.packageName===o&&c.version===s)))throw new Ke("LOCAL_ARTIFACT_POLICY_VIOLATION");let a={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...a,bundleId:y(b(a))})}function xr(e){let t=e;if(typeof t!="object"||t===null||!Lr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!wo.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Ke("LOCAL_ARTIFACT_BUNDLE_INVALID");if(ql({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Ke("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Bl(e){if(!Lr(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 Ke("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(a=>Object.freeze({...a}));if(t.some(a=>!Lr(a,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(a.relativeRoot)||!wo.test(a.manifestDigest))||new Set(t.map(a=>a.relativeRoot)).size!==t.length)throw new Ke("LOCAL_ARTIFACT_PLAN_INVALID");let r=xr(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(b(n))})}function Sg(e){let t=e;if(typeof t!="object"||t===null||!Lr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!wo.test(t.planId)||!Lr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Ke("LOCAL_ARTIFACT_PLAN_INVALID");if(Bl({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Ke("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Dg(e){let t=xr(e.bundle),r=wa(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Ke("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Il({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 ze=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},jg=/^sha256:[a-f0-9]{64}$/u,Io=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function zl(e){if(!Io.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>jg.test(r))||!Io.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 ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(b(t))})}function $g(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new ze("RESOLUTION_WORKER_BUILD_INVALID");let r=zl({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 ze("RESOLUTION_WORKER_BUILD_INVALID");return r}function Jl(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>jg.test(r))||!Io.test(e.workerReleaseId)||!Io.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function vo(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new ze("RESOLUTION_WORKER_BUILD_INVALID");let r=Jl({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 ze("RESOLUTION_WORKER_BUILD_INVALID");return r}var Sa=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},Wl=/^sha256:[a-f0-9]{64}$/u,mE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function Gl(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>Wl.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!mE.test(r.path)||!Wl.test(r.currentDigest)||!Wl.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Sa("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(b(t))})}function Cg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Sa("RECOVERY_OVERRIDE_INVALID");let r=Gl({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 Sa("RECOVERY_OVERRIDE_INVALID");return r}var Da=class extends Error{code;constructor(t,r){super(r),this.code=t}},Yl=/^sha256:[a-f0-9]{64}$/u,gE=/^sha512-[A-Za-z0-9+/]{86}==$/u,hE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,yE=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,wE=/[\u0000-\u001f\u007f]/u;function wn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function In(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function Ut(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!wE.test(e)}function Kl(e){return Ut(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Tg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Ut(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function IE(e){return e===null?!0:!wn(e)||!In(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:Kl(e.fileName)&&Yl.test(String(e.digest))&&gE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function vE(e){if(!wn(e)||!In(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!hE.test(e.packageName)||!yE.test(e.version)||!Ut(e.title,120)||!Ut(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!wn(e.source)||!In(e.source,["repository","path","revision","treeDigest"])||!Ut(e.source.repository)||!Kl(e.source.path)||!Ut(e.source.revision,200)||!Yl.test(String(e.source.treeDigest))||!IE(e.artifact)||!wn(e.compatibility)||!In(e.compatibility,["node","packageManager"])||!Ut(e.compatibility.node,100)||!Ut(e.compatibility.packageManager,100)||!Tg(e.exports)||!Tg(e.consumerEvidence)||!wn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!In(e.documentation,t)||!Kl(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Ut(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function bE(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(!vE(t))throw new Da("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(b(t))})}function Lg(e){if(!wn(e)||!In(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Yl.test(String(e.releaseDigest)))throw new Da("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...a}=e,i=bE(a);if(i.releaseDigest!==t)throw new Da("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return i}import{lstat as kE,readFile as RE,realpath as _E}from"node:fs/promises";import xg from"node:path";async function Vg(e){let t=await _E(xg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,a=[...e.lock.capabilities].sort((o,s)=>o.committedAt.localeCompare(s.committedAt)||o.capabilityId.localeCompare(s.capabilityId));for(let o of a)if(!r.has(o.capabilityId))for(let s of o.assets){let c=s.ownership??"owned-file",d=`${s.path}\0`;if(c==="managed-region")n.delete(d);else for(let p of n.keys())p.startsWith(d)&&n.delete(p);let l=c==="managed-region"?`${d}${s.regionId??""}`:d;n.set(l,{capabilityId:o.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let i=[];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=xg.join(t,...o.path.split("/")),d=await kE(s).then(async l=>{if(!l.isFile()||l.isSymbolicLink())return;let p=await RE(s);if(o.ownership!=="managed-region")return y(p);if(o.regionId!==void 0)try{return y(Ai(p.toString("utf8"),o.regionId))}catch{return}}).catch(l=>l.code==="ENOENT"?void 0:Promise.reject(l))===o.digest;i.push({capabilityId:o.capabilityId,path:o.path,kind:"create",ownership:o.ownership,...o.regionId===void 0?{}:{regionId:o.regionId},desiredDigest:o.digest,disposition:d?"noop":"conflict",...d?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return i}import{readFile as re,readdir as Qg,realpath as vt}from"node:fs/promises";import{execFile as ME,spawn as UE}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as FE}from"node:util";import{lstat as Mg,mkdir as Xl,readFile as Ug,realpath as Hl,rm as AE,writeFile as Fg}from"node:fs/promises";import Ye from"node:path";var He=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},EE=e=>b(e),qg=e=>y(EE(e));async function Bg(e,t){let r=await Hl(Ye.resolve(e)),n=Ye.join(r,".examples");await Xl(n,{recursive:!0});let a=await Hl(n),i=Ye.resolve(r,t);if(Ye.dirname(i)!==a||Ye.basename(i).startsWith(".")||Ye.basename(i).length<1)throw new He("SCAFFOLD_ARGUMENT_INVALID");if(await Mg(i).then(()=>!0).catch(o=>o.code==="ENOENT"?!1:Promise.reject(o)))throw new He("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:i,outputRelativePath:Ye.relative(r,i)}}async function zg(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 He("SCAFFOLD_ARGUMENT_INVALID");let r=await Bg(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),a={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={...a,planId:qg(a)},o=Ye.join(r.workspaceRoot,".dyyto","scaffold-plans");await Xl(o,{recursive:!0});let s=Ye.join(o,`${i.planId}.json`);return await Fg(s,`${b(i)}
34
+ `),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(a)},{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:Pe({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(a),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",a],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function Im(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 Y("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)),a=Al({packageJson:e.packageJson,remove:n}),i=e.remainingSources.map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_})),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=bl(e.resolutionEvidence,{requestDigest:Ia({schemaVersion:1,pnpmVersion:"11.21.0",topology:o,currentLockfileDigest:y(e.currentLockfile),desiredPackageJsonDigest:y(a),sources:i,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(a),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h})),managedSources:i,now:e.generatedAt}),c=Lt(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)}
35
+ `),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(a)},{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:Pe({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(a),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:o,preservedDependencies:Zi(Lt(a),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"),a],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function Qi(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",a=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!a)||e.release.packageSources.length===0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let i=Lt(e.packageJson),o=e.desiredBasePackageJson??e.packageJson,s=Lt(o),c="topology"in e,l=c?Zi(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||Hi(i),c||Hi(s);let d=new Map(e.registryConfigs.map(I=>{let R=wa(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new Y("PACKAGE_SOURCE_NOT_FOUND");let S=um(I,R);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let R=fm(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?bl(e.resolutionEvidence,{requestDigest:Ia({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(va({release:e.release,packageJson:o})),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(va({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: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 Y("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),ce=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 Y("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||!ce||!$)throw new Y("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||ce.integrity!==I.integrity||ce.tarballDigest!==I.tarballDigest||ce.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Y("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!Yi.test(I.version)||ce.lifecycleScripts.length>0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,H]of Object.entries(ce.dependencies)){let ie=m.get(P);if(P.startsWith("@aipt/")&&(!ie||ie.version!==H||!Yi.test(H)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${H}`)});if(ym.test(H))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?va({release:e.release,packageJson:o}):Rl({release:e.release,packageJson:o}),v={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(kl(v));return Object.freeze({...v,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function eo(e){return Qi(e,"production")}function to(e){return Qi(e,"development")}function ro(e){return Qi(e,"production")}function no(e){return Qi(e,"development")}function z_(e){let t=e.packageAdoption;if(t===void 0)throw new Y("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",a=e.operations.filter(({path:d})=>d===r),i=e.operations.filter(({path:d})=>d===n);if(a.length!==1||i.length!==1)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let o=a[0],s=i[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 Y("PACKAGE_SOURCE_POLICY_VIOLATION")}async function vm(e){z_(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await Qt({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await er(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 Qc({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 Y("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var _m=qr(wr(),1);var Am=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Em="^[a-z0-9][a-z0-9._-]{0,127}$",El="^[A-Z][A-Z0-9_]{0,127}$",bm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",J_={$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:Em},profile:{enum:Am}}},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:El},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:El},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:bm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:El},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:bm}}}]}}}},km=new _m.Ajv2020({allErrors:!0,strict:!0}).compile(J_),Rm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,W_=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,We=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function Pm(e){let t=X(e),r=t.profile?.id;if(!Am.includes(r))throw new We("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},a=n.name;if(Object.keys(n).length!==1||typeof a!="string"||!new RegExp(Em,"u").test(a))throw new We("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:a,profile:r}}function Pl(e,t){if(!km(e))throw new We("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",km.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new We("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,a=new Set;for(let i of r.bindings){if(n.has(i.name))throw new We("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${i.name}`);if(n.add(i.name),i.kind==="value"){if(Rm.test(i.name))throw new We("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 We("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${i.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let o=i.kind==="secret-file"?"secrets/":"certs/";if(i.kind==="certificate-file"&&(Rm.test(i.name)||W_.test(i.name)))throw new We("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(o)||s.some(c=>c===""||c==="."||c===".."))throw new We("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5FC5\u987B\u4F4D\u4E8E ${o} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(a.has(i.file))throw new We("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${i.file}`);a.add(i.file)}if(t!==void 0){let i=Pm(t);if(r.application.id!==i.id||r.application.profile!==i.profile)throw new We("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ao(e){let t=Pm(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 Pl(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
36
+ `)}import{createHash as G_,X509Certificate as K_}from"node:crypto";import{lstat as Nl,readFile as $r,realpath as Nm}from"node:fs/promises";import ge from"node:path";var ve=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Dm(e){let t=X(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function io(e){let t=Dm(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)}
37
+ `)}function Y_(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 ve("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 ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Dm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function H_(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let a=n.trim();if(!a||a.startsWith("#"))continue;let i=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(a),o=i?.[1],s=i?.[2];if(!o||s===void 0||o in t)throw new ve("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 Om(e){return`sha256:${G_("sha256").update(e).digest("hex")}`}function X_(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Sm(e,t,r){let n=await Nl(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new ve("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 Z_(e,t,r){let n=ge.dirname(e);for(;n!==ge.dirname(n);){try{if(JSON.parse(await $r(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 ve("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(a){if(a instanceof ve)throw a}n=ge.dirname(n)}return ge.join(t,r)}async function Q_(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let i=await Nl(n).catch(()=>null);if(!i?.isFile()||i.isSymbolicLink()||i.nlink!==1||(i.mode&511&-385)!==0)throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let o=JSON.parse(await $r(n,"utf8"));if(o.schemaVersion!==1||!Array.isArray(o.projects))throw new ve("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}${ge.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let a=r.APP_CONFIG_DIR;if(a){if(!ge.isAbsolute(a))throw new ve("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(a,await Z_(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function oo({projectRoot:e,environment:t=process.env}){let r=await Nm(ge.resolve(e)),[n,a,i]=await Promise.all([$r(ge.join(r,"project-capabilities.json")),$r(ge.join(r,".dyyto/application-config-binding.json")),$r(ge.join(r,"config/application-config.json"))]),o=JSON.parse(n.toString("utf8")),s=Y_(JSON.parse(a.toString("utf8")),o),c=Pl(JSON.parse(i.toString("utf8")),o),l=await Q_(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new ve("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Nm(l),p=await Nl(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new ve("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 ve("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 Sm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=H_(await $r(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:X_(C)});continue}if(m[h.name]!==h.file)throw new ve("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),v=ge.relative(d,_);if(!v||v.startsWith("..")||ge.isAbsolute(v))throw new ve("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Sm(_,h.name,!h.required),I=await $r(_),R=I.length>0,S;if(R&&h.kind==="certificate-file")try{let C=new K_(I);S={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new ve("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:Om(I),updatedAt:A.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Om(i),entries:g}}var Cr="project-capabilities.json",jm=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function rA(e,t){if(!jm.test(e)||!jm.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 a=0;a<3;a+=1)if(r[a]!==n[a])return r[a]-n[a];return 0}async function nA(e,t){let r=ba.join(e,...t.split("/"));try{let n=await eA(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 so(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function co(e,t){let r=X(e),n=t.release,a=n.assets.find(o=>o.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&a?.renderer?.startsWith("npm-package-json-")===!0)return ml(nr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&a?.renderer==="react-component-package-json-v1")return gl(nr(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 Ol(e){let t=X(e.manifest),r=Ue(e.currentLock),n=e.sourceRelease.release,a=e.targetRelease.release,i=t.capabilities.find(P=>P.capabilityId===n.capabilityId),o=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=a.capabilityId!==n.capabilityId&&a.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(i===void 0||o===void 0||i.capabilityId!==o.capabilityId||i.version!==o.version||n.capabilityId!==o.capabilityId||n.version!==o.version||n.integrity!==o.integrity||!s&&a.capabilityId!==o.capabilityId||a.consumerProfile!==o.consumerProfile||n.consumerProfile!==a.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&rA(a.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await tA(ba.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:a.capabilityId,version:a.version}:P)},d=new Map(e.targetRelease.contents);a.assets.some(P=>P.path==="package.json")&&d.set("package.json",co(l,e.targetRelease));for(let P of a.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,ao(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,io(l));let p,f=c,u="package.json",m;if(a.schemaVersion===2&&a.availability.maturity!=="withdrawn"&&(a.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 H=await so(ba.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 Xe={release:a,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:a.consumerProfile,packageJson:H,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let dt=ie.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?no:ro)({...Xe,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"?to:eo)({...Xe,lockResolution:e.packageSource.lockResolution});p=Xi(dt),d.set("package.json",dt.desiredPackageJson),d.set(m,dt.desiredLockfile)}catch(dt){throw dt instanceof Y?new M("CONSUMER_PROFILE_UNSUPPORTED",dt.code):dt}}let g=new Map(o.assets.filter(P=>P.path!==Cr).map(P=>[P.path,P.digest])),h=new Map(a.assets.filter(P=>P.path!==Cr).map(P=>{let H=d.get(P.path);if(H===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(H)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],v=[];for(let P of w){let H=await nA(c,P);_.push(H);let ie=g.get(P),Xe=h.get(P),dt=a.assets.find(Fh=>Fh.path===P);if(dt?.ownership==="seed-file"&&H.exists&&H.digest!==void 0){h.set(P,H.digest),d.set(P,await so(ba.join(c,...P.split("/")))),v.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:H.digest,desiredDigest:H.digest});continue}if(ie===void 0){if(Xe===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);v.push({path:P,kind:"create",ownership:dt?.ownership??"owned-file",desiredDigest:Xe})}else Xe===void 0?v.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ie}):v.push({path:P,kind:"replace",ownership:dt?.ownership??"owned-file",baseDigest:ie,desiredDigest:Xe})}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 H=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),v.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(H)})}let A=await so(ba.join(c,Cr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
38
+ `);_.push({path:Cr,exists:!0,digest:y(A)}),v.push({path:Cr,kind:"replace",ownership:"owned-file",baseDigest:y(A),desiredDigest:y(I)});let R={schemaVersion:1,capabilityId:a.capabilityId,version:a.version,integrity:a.integrity,assets:a.assets.filter(P=>P.path!==Cr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:a.verifiers.map(({id:P})=>({id:P,kind:"command"}))},S=f===c?v:v.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),C=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),ce=Pe({action:"upgrade",capability:R,changes:S,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Cr,I);let $=new Map;for(let P of ce.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let H=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ie=P.path===m?P.path:P.path.startsWith(H)?P.path.slice(H.length):P.path,Xe=d.get(ie);if(Xe===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,Xe)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:ce,desiredContents:$,transactionRoot:f}}import{link as aA,mkdir as iA,open as $m,readFile as wt,readdir as oA,realpath as It,rm as sA,unlink as cA}from"node:fs/promises";import ue from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function Oe(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Cm(e){return y(b(e))}function Cl(e){if(!Oe(e.project.lockDigest)||!Oe(e.project.appliedPlanId)||!Oe(e.artifact.digest))throw new D("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 D("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 D("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(a=>typeof a!="string"||a.length>512||/[\u0000-\u001f\u007f]/.test(a)))throw new D("DELIVERY_PRECONDITION_FAILED","npm publication policy is invalid")}if(e.kind!=="npm-publish"&&e.publication!==void 0)throw new D("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:Cm(t)}}function Sl(e){let t=e;if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.state!=="reviewable")throw new D("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 D("DELIVERY_PRECONDITION_FAILED","Delivery Plan schema and publication policy do not match");let{planId:r,...n}=t;if(Cm(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return Cl({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 Tm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:y(b(t))}}function Lm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:y(b(t))}}function lo(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function Dl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function xm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:y(b(t))}}function jl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function po(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||e.externalIdentity.length===0)throw new D("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"||!Oe(r.attestationUrlDigest))throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:y(b(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 D("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:y(b(t))}}function $l(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==y(b(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:a,schemaVersion:i,status:o,...s}=t;return po(s)}async function lA(e){let t=await $m(e,"r");try{await t.sync()}finally{await t.close()}}async function ka(e,t){let r=ue.dirname(e);await iA(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,a=await $m(n,"wx",384);try{await a.writeFile(`${b(t)}
39
+ `,"utf8"),await a.sync()}finally{await a.close()}try{await aA(n,e),await cA(n),await lA(r)}catch(i){throw await sA(n,{force:!0}),i}}async function Vm(e){let t=await It(ue.resolve(e.projectRoot)),r=Sl(e.plan),n=ue.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await ka(n,r)}catch(a){if(a.code!=="EEXIST")throw a;if(b(Sl(JSON.parse(await wt(n,"utf8"))))!==b(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function xt(e){if(!Oe(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=Sl(JSON.parse(await wt(ue.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 Tl(e){let t=await It(ue.resolve(e.projectRoot)),r=$l(e.receipt),n=await xt({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 hn({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 a=ue.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=$l(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return o}return r}async function gn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=$l(JSON.parse(await wt(ue.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 Mm(e){let t=await It(ue.resolve(e.projectRoot)),r=lo(e.record),n=await xt({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 a=ue.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=lo(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return o}return r}async function Um(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=lo(JSON.parse(await wt(ue.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 Fm(e){let t=await It(ue.resolve(e.projectRoot)),r=ue.join(t,".dyyto","delivery","attempts"),n;try{n=await oA(r)}catch(a){if(a.code==="ENOENT")return null;throw a}for(let a of n.sort()){if(!a.endsWith(".json"))continue;let i=lo(JSON.parse(await wt(ue.join(r,a),"utf8")));if((await xt({projectRoot:t,planId:i.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([hn({projectRoot:t,planId:i.planId}),gn({projectRoot:t,planId:i.planId})]);if(s===null&&c===null)return i}return null}async function qm(e){let t=await It(ue.resolve(e.projectRoot)),r=Dl(e.record),n=await xt({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 a=ue.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=Dl(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return o}return r}async function hn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=Dl(JSON.parse(await wt(ue.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 Bm(e){let t=await It(ue.resolve(e.projectRoot)),r=jl(e.record),n=await hn({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 a=ue.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await ka(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=jl(JSON.parse(await wt(a,"utf8")));if(b(o)!==b(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return o}return r}async function zm(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await It(ue.resolve(e.projectRoot));try{let r=jl(JSON.parse(await wt(ue.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 cg,readdir as KA}from"node:fs/promises";import Ml from"node:path";import{mkdir as Ll,open as go,readFile as _a,readdir as xl,rename as ho,rm as ig}from"node:fs/promises";import he from"node:path";var dA=44;var Jm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pA=new Uint8Array(64),Gm=new Uint8Array(128);for(let e=0;e<Jm.length;e++){let t=Jm.charCodeAt(e);pA[e]=t,Gm[t]=e}function Ra(e,t){let r=0,n=0,a=0;do{let o=e.next();a=Gm[o],r|=(a&31)<<n,n+=5}while(a&32);let i=r&1;return r>>>=1,i&&(r=-2147483648|-r),t+r}function Wm(e,t){return e.pos>=t?!1:e.peek()!==dA}var sD=1024*16;var uA=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 Km(e){let{length:t}=e,r=new uA(e),n=[],a=0,i=0,o=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(a=0;r.pos<l;){let u;a=Ra(r,a),a<f&&(p=!1),f=a,Wm(r,l)?(i=Ra(r,i),o=Ra(r,o),s=Ra(r,s),Wm(r,l)?(c=Ra(r,c),u=[a,i,o,s,c]):u=[a,i,o,s]):u=[a],d.push(u),r.pos++}p||fA(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function fA(e){e.sort(mA)}function mA(e,t){return e[0]-t[0]}var gA=/^[\w+.-]+:\/\//,hA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,yA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function wA(e){return gA.test(e)}function IA(e){return e.startsWith("//")}function Xm(e){return e.startsWith("/")}function vA(e){return e.startsWith("file:")}function Ym(e){return/^[.?#]/.test(e)}function uo(e){let t=hA.exec(e);return Zm(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function bA(e){let t=yA.exec(e),r=t[2];return Zm("file:","",t[1]||"","",Xm(r)?r:"/"+r,t[3]||"",t[4]||"")}function Zm(e,t,r,n,a,i,o){return{scheme:e,user:t,host:r,port:n,path:a,query:i,hash:o,type:7}}function Hm(e){if(IA(e)){let r=uo("http:"+e);return r.scheme="",r.type=6,r}if(Xm(e)){let r=uo("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(vA(e))return bA(e);if(wA(e))return uo(e);let t=uo("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function kA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function RA(e,t){Qm(t,t.type),e.path==="/"?e.path=t.path:e.path=kA(t.path)+e.path}function Qm(e,t){let r=t<=4,n=e.path.split("/"),a=1,i=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===".."){i?(o=!0,i--,a--):r&&(n[a++]=l);continue}n[a++]=l,i++}}let s="";for(let c=1;c<a;c++)s+="/"+n[c];(!s||o&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function eg(e,t){if(!e&&!t)return"";let r=Hm(e),n=r.type;if(t&&n!==7){let i=Hm(t),o=i.type;switch(n){case 1:r.hash=i.hash;case 2:r.query=i.query;case 3:case 4:RA(r,i);case 5:r.user=i.user,r.host=i.host,r.port=i.port;case 6:r.scheme=i.scheme}o>n&&(n=o)}Qm(r,n);let a=r.query+r.hash;switch(n){case 2:case 3:return a;case 4:{let i=r.path.slice(1);return i?Ym(t||e)&&!Ym(i)?"./"+i+a:i+a:a||"."}case 5:return r.path+a;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+a}}function _A(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function AA(e,t){let r=_A(e),n=t?t+"/":"";return a=>eg(n+(a||""),r)}var ar=0,EA=1,PA=2,NA=3,OA=4;function SA(e,t){let r=tg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=tg(e,n+1))e[n]=jA(e[n],t);return e}function tg(e,t){for(let r=t;r<e.length;r++)if(!DA(e[r]))return r;return e.length}function DA(e){for(let t=1;t<e.length;t++)if(e[t][ar]<e[t-1][ar])return!1;return!0}function jA(e,t){return t||(e=e.slice()),e.sort($A)}function $A(e,t){return e[ar]-t[ar]}var mo=!1;function CA(e,t,r,n){for(;r<=n;){let a=r+(n-r>>1),i=e[a][ar]-t;if(i===0)return mo=!0,a;i<0?r=a+1:n=a-1}return mo=!1,r-1}function TA(e,t,r){for(let n=r+1;n<e.length&&e[n][ar]===t;r=n++);return r}function LA(e,t,r){for(let n=r-1;n>=0&&e[n][ar]===t;r=n--);return r}function xA(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function VA(e,t,r,n){let{lastKey:a,lastNeedle:i,lastIndex:o}=r,s=0,c=e.length-1;if(n===a){if(t===i)return mo=o!==-1&&e[o][ar]===t,o;t>=i?s=o===-1?0:o:c=o}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=CA(e,t,s,c)}function MA(e){return typeof e=="string"?JSON.parse(e):e}var UA="`line` must be greater than 0 (lines start at line 1)",FA="`column` must be greater than or equal to 0 (columns start at column 0)",rg=-1,qA=1,ng=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=MA(e),{version:a,file:i,names:o,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=a,this.file=i,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=AA(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=SA(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=xA(),this._bySources=void 0,this._bySourceMemos=void 0}};function BA(e){var t;return(t=e)._decoded||(t._decoded=Km(e._encoded))}function ag(e,t){let{line:r,column:n,bias:a}=t;if(r--,r<0)throw new Error(UA);if(n<0)throw new Error(FA);let i=BA(e);if(r>=i.length)return fo(null,null,null,null);let o=i[r],s=zA(o,e._decodedMemo,r,n,a||qA);if(s===-1)return fo(null,null,null,null);let c=o[s];if(c.length===1)return fo(null,null,null,null);let{names:l,resolvedSources:d}=e;return fo(d[c[EA]],c[PA]+1,c[NA],c.length===5?l[c[OA]]:null)}function fo(e,t,r,n){return{source:e,line:t,column:r,name:n}}function zA(e,t,r,n,a){let i=VA(e,n,t,r);return mo?i=(a===rg?TA:LA)(e,n,i):a===rg&&i++,i===-1||i===e.length?-1:i}var ae=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Vl=/^sha256:[a-f0-9]{64}$/,og=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,JA=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,yo=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Aa=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),yn=(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 ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=he.join(he.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await xt({projectRoot:r,planId:t.deploymentId}),a=await gn({projectRoot:r,planId:n.planId});if(a===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||a.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await xl(he.join(he.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function WA(e){if(!Aa(e)||!yo(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Aa(e.error)||!Aa(e.page)||!yo(e.error,["type","message","frames"])||!yo(e.page,["origin","path"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!og.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 ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Vl.test(n)))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!JA.test(e.traceparent)))throw new ae("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 ae("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 ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Aa(n)||!yo(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let a of[n.line,n.column])if(a!==void 0&&(!Number.isSafeInteger(a)||Number(a)<1))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new ae("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 ae("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function GA(e,t,r="unknown"){let n=e.error.frames.map(o=>({file:yn(o.file,2048),...o.line===void 0?{}:{line:o.line},...o.column===void 0?{}:{column:o.column},...o.function===void 0?{}:{function:yn(o.function,256)}})),a={type:yn(e.error.type,256),message:yn(e.error.message,4096),frames:n},i=y(b({type:a.type,message:a.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:yn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:a,page:{origin:e.page.origin,path:yn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:i,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Vt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=WA(t);if(!r.allowedOrigins.includes(n.page.origin))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let a=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),i=GA(n,r.receivedAt,a);return this.#t(async()=>{let o=this.directory();await Ll(o,{recursive:!0,mode:448});let s=he.join(o,`${i.eventId}.json`);try{let f=JSON.parse(await _a(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(b({...u,receivedAt:i.receivedAt})!==b(i))throw new ae("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 go(c,"wx",384);try{await l.writeFile(`${b(i)}
40
+ `,"utf8"),await l.sync()}finally{await l.close()}await ho(c,s);let d=await go(o,"r");try{await d.sync()}finally{await d.close()}await this.rotate(),i.releaseId!==void 0&&await this.resymbolicate(i.releaseId);let p=JSON.parse(await _a(s,"utf8"));return{eventId:i.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=he.join(this.directory(),t),n=he.join(he.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await Ll(n,{recursive:!0,mode:448}),await ho(r,he.join(n,`${Date.now()}-${t}`))}async all(){let t=await xl(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let a=JSON.parse(await _a(he.join(this.directory(),n),"utf8"));if(a.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...a,correlation:a.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,a)=>a.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(a.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=b({v:1,offset:t,snapshot:r});return Buffer.from(b({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 a=JSON.parse(n.content);if(a.v!==1||!Number.isSafeInteger(a.offset)||a.offset<0||a.snapshot!==r)throw new Error("expired");return a.offset}catch{throw new ae("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),a=y(b(n.map(s=>s.eventId))),i=t.cursor===void 0?0:this.parseCursor(t.cursor,a),o=n.slice(i,i+r);return{events:o,...i+o.length<n.length?{nextCursor:this.cursor(i+o.length,a)}:{}}}async get(t){if(!og.test(t))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await _a(he.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 ae("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 a of r){let i=n.get(a.fingerprint);i?i.count+=1:n.set(a.fingerprint,{count:1,latestAt:a.occurredAt,event:a})}return{total:r.length,groups:[...n.entries()].map(([a,i])=>({fingerprint:a,...i}))}}async rotate(){let t=await this.all(),n=t.reduce((a,i)=>Math.max(a,Date.parse(i.receivedAt)),0)-10080*60*1e3;for(let a of t.slice(1e4))await ig(he.join(this.directory(),`${a.eventId}.json`),{force:!0});for(let a of t.slice(0,1e4))Date.parse(a.receivedAt)<n&&await ig(he.join(this.directory(),`${a.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Vl.test(t.releaseId)||!Vl.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!Aa(t.map)||"sourcesContent"in t.map)throw new ae("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(b(t.map)),n=y(r),a=he.join(this.releases(),t.releaseId);await Ll(a,{recursive:!0,mode:448});let i=y(t.asset),o=he.join(a,`${i}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await go(`${o}.tmp`,"w",384);try{await c.writeFile(`${b({registration:s,map:t.map})}
41
+ `),await c.sync()}finally{await c.close()}return await ho(`${o}.tmp`,o),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await xl(he.join(this.releases(),t)).catch(()=>[]),n=[];for(let a of r)try{n.push(JSON.parse(await _a(he.join(this.releases(),t,a),"utf8")))}catch{}for(let a of(await this.all()).filter(i=>i.releaseId===t&&i.state==="map-missing")){let i=!1,o=a.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=ag(new ng(p.map),{line:d.line,column:Math.max(0,d.column-1)});return f.source===null||f.line===null||f.column===null?d:(i=!0,{...d,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return d}});if(!i)continue;let s={...a,error:{...a.error,frames:o},state:"symbolicated"},c=he.join(this.directory(),`${a.eventId}.json`),l=await go(`${c}.tmp`,"w",384);try{await l.writeFile(`${b(s)}
42
+ `),await l.sync()}finally{await l.close()}await ho(`${c}.tmp`,c)}}};var Ge=(e,t,r,n,a)=>({code:e,severity:t,fact:r,message:n,...a===void 0?{}:{action:a}});async function Ea(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[Ge("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 a=ra(JSON.parse(await cg(Ml.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(a.evidenceId!==n||a.capabilityId!==r.capabilityId||a.capabilityVersion!==r.version||a.capabilityIntegrity!==r.integrity||a.projectStateDigest!==r.projectStateDigest||a.result!=="passed")return[Ge("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[Ge("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[Ge("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function Ul(e){return e==="adopted"?[]:e==="planned"?[Ge("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"?[Ge("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"?[Ge("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"?[Ge("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")]:[Ge("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 lg(e){try{let r=JSON.parse(await cg(Ml.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[Ge("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[Ge("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 Vt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await KA(Ml.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[Ge("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")]:[Ge("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function dg(e){let t=e.units.map(n=>{let a=n.findings.some(i=>i.severity==="critical")?"blocked":n.findings.some(i=>i.severity==="warning")?"attention":"healthy";return{...n,status:a}}),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 Pa,realpath as pg}from"node:fs/promises";import Tr from"node:path";var oe=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function ug(e){let t=await pg(Tr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,a=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!a||a.packageAdoption!==void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let i=X({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),o=Buffer.from(`${JSON.stringify(i,null,2)}
43
+ `),s=await Na(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:y(o)},...a.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>Na(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:a.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:Pe({action:"remove",capability:d,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:i,desiredContents:new Map([["project-capabilities.json",o]]),transactionRoot:t,removedSources:[]}}async function Na(e,t){try{let r=await Pa(Tr.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 Fl(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await pg(Tr.resolve(e.projectRoot)),r=X(e.manifest),n=e.release.release,a=e.packageSource?.topology,i=a?.transactionRoot??t,o=R=>a?.mode==="pnpm-shared-lockfile"?`${a.unitRelativeRoot}/${R}`:R;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new oe("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new oe("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 oe("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(S=>S.capabilityId===R)||!e.currentLock.capabilities.some(S=>S.capabilityId===R)))throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=X({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=o("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
44
+ `),g=await Na(i,u);if(!g.exists||g.digest===void 0)throw new oe("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 oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await Pa(Tr.join(t,"package.json"))}catch{throw new oe("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 Pa(Tr.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"},ce=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(ce&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let H=ce?(e.packageChannel==="development"?no:ro)({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"?to:eo)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=Xi(H),h.push({path:o("package.json"),kind:"replace",ownership:"owned-file",baseDigest:H.packageJsonPreimageDigest,desiredDigest:H.desiredPackageJsonDigest}),w.set(o("package.json"),H.desiredPackageJson),h.push({path:C.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:y(S)},desiredDigest:H.desiredLockfileDigest}),w.set(C.lockfilePath,H.desiredLockfile)}catch(S){throw S instanceof Y?new oe("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 oe("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?ao(r):R.renderer==="application-config-binding-v1"?io(r):S;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new oe("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ce;try{ce=await Pa(Tr.join(t,...R.path.split("/")))}catch{throw new oe("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(Pf({source:ce.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:o(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(ce),desiredDigest:y($)}),w.set(o(R.path),$)}else{let ce=await Na(t,R.path);if(R.ownership==="seed-file"&&ce.exists){let $=await Pa(Tr.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(C)}),w.set(o(R.path),C)}}let v=await Promise.all(h.map(R=>Na(i,R.path))),A={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==a?.lockfilePath).map(R=>({path:a?.mode==="pnpm-shared-lockfile"?R.path.slice(a.unitRelativeRoot.length+1):R.path,ownership:R.ownership,desiredDigest:R.desiredDigest})),verifiers:n.verifiers.map(R=>({id:R.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:A,changes:h,observedAssets:v,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:i,dependency:{profile:c,satisfied:!0}}}var fg=qr(wr(),1);var YA={$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:kt},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}}}}},MD=new fg.Ajv2020({allErrors:!0,strict:!0}).compile(YA);var wg=qr(wr(),1);import{readFile as HA,realpath as XA}from"node:fs/promises";import mg from"node:path";var gg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",hg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",ZA={$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:gg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:kt},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:hg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:gg}},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:hg,maxLength:240}}}}}},yg=new wg.Ajv2020({allErrors:!0,strict:!0}).compile(ZA),Lr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function QA(e){return y(b(e))}function eE(e){if(!yg(e))throw new Lr("EXAMPLE_RECIPE_INVALID",yg.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 Lr("EXAMPLE_RECIPE_INVALID");return t}async function Ig(e){let t=await XA(mg.resolve(e)),r;try{r=eE(JSON.parse(await HA(mg.join(t,"recipe.json"),"utf8")))}catch(i){throw i instanceof Lr?i:new Lr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...a}=r;if(QA(a)!==n)throw new Lr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var kg=qr(wr(),1);import{readFile as tE,realpath as rE}from"node:fs/promises";import vg from"node:path";var nE={$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:kt},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"]}}}},bg=new kg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(nE),Mt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function aE(e){return y(b(e))}function iE(e){if(!bg(e))throw new Mt("TEMPLATE_INVALID",bg.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 Mt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Mt("TEMPLATE_INVALID");return t}async function Oa(e,t=new Date){let r=await rE(vg.resolve(e)),n;try{n=iE(JSON.parse(await tE(vg.join(r,"template.json"),"utf8")))}catch(o){throw o instanceof Mt?o:new Mt("TEMPLATE_INVALID")}let{integrity:a,...i}=n;if(aE(i)!==a)throw new Mt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Mt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Rg}from"node:fs/promises";import _g 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 cE(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 a=n[1],i=n[2].trim();t.set(a,{name:a,requirement:i.length===0?"conditional":"optional",secret:sE.test(a),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Ag(e){let t=await Rg(_g.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Rg(_g.join(e.projectRoot,t),"utf8"):"",n=await oo({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}:{}})):cE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Eg={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"])},Pg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Ng(e,t){if(!Eg[t.plane]||t.state&&!Pg.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=Eg[t.plane],n=t.from?Date.parse(t.from):null,a=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||a!==null&&Number.isNaN(a)||n!==null&&a!==null&&n>a)throw new Error("OPERATION_FILTER_INVALID");let i=e.filter(l=>r.has(l.operation)),o=[...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)&&(a===null||Date.parse(l.createdAt)<=a)).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([...Pg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Ke=class extends Error{code;constructor(t){super(t),this.code=t}},lE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Og=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,dE=/^sha512-[A-Za-z0-9+/]{86}==$/u,wo=/^sha256:[a-f0-9]{64}$/u,pE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,uE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,fE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function xr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function mE(e){if(!xr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!lE.test(e.packageName)||!Og.test(e.version)||!pE.test(e.assetName)||!dE.test(e.integrity)||!wo.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)||!Og.test(n)||uE.test(n))?!1:e.lifecycleScripts.every(r=>fE.has(r))}function ql(e){if(!xr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Ke("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=>!mE(i)))throw new Ke("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(i=>i.packageName+"@"+i.version);if(new Set(r).size!==r.length||r.some((i,o)=>o>0&&i.localeCompare(r[o-1])<=0))throw new Ke("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(i=>i.packageName));for(let i of t)for(let[o,s]of Object.entries(i.dependencies))if(o.startsWith("@aipt/")&&(!n.has(o)||!t.some(c=>c.packageName===o&&c.version===s)))throw new Ke("LOCAL_ARTIFACT_POLICY_VIOLATION");let a={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...a,bundleId:y(b(a))})}function Vr(e){let t=e;if(typeof t!="object"||t===null||!xr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!wo.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Ke("LOCAL_ARTIFACT_BUNDLE_INVALID");if(ql({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Ke("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Bl(e){if(!xr(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 Ke("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(a=>Object.freeze({...a}));if(t.some(a=>!xr(a,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(a.relativeRoot)||!wo.test(a.manifestDigest))||new Set(t.map(a=>a.relativeRoot)).size!==t.length)throw new Ke("LOCAL_ARTIFACT_PLAN_INVALID");let r=Vr(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(b(n))})}function Sg(e){let t=e;if(typeof t!="object"||t===null||!xr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!wo.test(t.planId)||!xr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Ke("LOCAL_ARTIFACT_PLAN_INVALID");if(Bl({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Ke("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Dg(e){let t=Vr(e.bundle),r=wa(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Ke("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Il({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 Je=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},jg=/^sha256:[a-f0-9]{64}$/u,Io=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function zl(e){if(!Io.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>jg.test(r))||!Io.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 Je("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(b(t))})}function $g(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Je("RESOLUTION_WORKER_BUILD_INVALID");let r=zl({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 Je("RESOLUTION_WORKER_BUILD_INVALID");return r}function Jl(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>jg.test(r))||!Io.test(e.workerReleaseId)||!Io.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Je("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function vo(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Je("RESOLUTION_WORKER_BUILD_INVALID");let r=Jl({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 Je("RESOLUTION_WORKER_BUILD_INVALID");return r}var Sa=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},Wl=/^sha256:[a-f0-9]{64}$/u,gE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function Gl(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>Wl.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!gE.test(r.path)||!Wl.test(r.currentDigest)||!Wl.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Sa("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(b(t))})}function Cg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Sa("RECOVERY_OVERRIDE_INVALID");let r=Gl({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 Sa("RECOVERY_OVERRIDE_INVALID");return r}var Da=class extends Error{code;constructor(t,r){super(r),this.code=t}},Yl=/^sha256:[a-f0-9]{64}$/u,hE=/^sha512-[A-Za-z0-9+/]{86}==$/u,yE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,wE=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,IE=/[\u0000-\u001f\u007f]/u;function wn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function In(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function Ut(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!IE.test(e)}function Kl(e){return Ut(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Tg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Ut(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function vE(e){return e===null?!0:!wn(e)||!In(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:Kl(e.fileName)&&Yl.test(String(e.digest))&&hE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function bE(e){if(!wn(e)||!In(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!yE.test(e.packageName)||!wE.test(e.version)||!Ut(e.title,120)||!Ut(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!wn(e.source)||!In(e.source,["repository","path","revision","treeDigest"])||!Ut(e.source.repository)||!Kl(e.source.path)||!Ut(e.source.revision,200)||!Yl.test(String(e.source.treeDigest))||!vE(e.artifact)||!wn(e.compatibility)||!In(e.compatibility,["node","packageManager"])||!Ut(e.compatibility.node,100)||!Ut(e.compatibility.packageManager,100)||!Tg(e.exports)||!Tg(e.consumerEvidence)||!wn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!In(e.documentation,t)||!Kl(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Ut(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function kE(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(!bE(t))throw new Da("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(b(t))})}function Lg(e){if(!wn(e)||!In(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Yl.test(String(e.releaseDigest)))throw new Da("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...a}=e,i=kE(a);if(i.releaseDigest!==t)throw new Da("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return i}import{lstat as RE,readFile as _E,realpath as AE}from"node:fs/promises";import xg from"node:path";async function Vg(e){let t=await AE(xg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,a=[...e.lock.capabilities].sort((o,s)=>o.committedAt.localeCompare(s.committedAt)||o.capabilityId.localeCompare(s.capabilityId));for(let o of a)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 i=[];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=xg.join(t,...o.path.split("/")),l=await RE(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await _E(s);if(o.ownership!=="managed-region")return y(p);if(o.regionId!==void 0)try{return y(Ai(p.toString("utf8"),o.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===o.digest;i.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 i}import{readFile as re,readdir as Qg,realpath as vt}from"node:fs/promises";import{execFile as UE,spawn as FE}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as qE}from"node:util";import{lstat as Mg,mkdir as Xl,readFile as Ug,realpath as Hl,rm as EE,writeFile as Fg}from"node:fs/promises";import Ye from"node:path";var He=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},PE=e=>b(e),qg=e=>y(PE(e));async function Bg(e,t){let r=await Hl(Ye.resolve(e)),n=Ye.join(r,".examples");await Xl(n,{recursive:!0});let a=await Hl(n),i=Ye.resolve(r,t);if(Ye.dirname(i)!==a||Ye.basename(i).startsWith(".")||Ye.basename(i).length<1)throw new He("SCAFFOLD_ARGUMENT_INVALID");if(await Mg(i).then(()=>!0).catch(o=>o.code==="ENOENT"?!1:Promise.reject(o)))throw new He("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:i,outputRelativePath:Ye.relative(r,i)}}async function zg(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 He("SCAFFOLD_ARGUMENT_INVALID");let r=await Bg(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),a={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={...a,planId:qg(a)},o=Ye.join(r.workspaceRoot,".dyyto","scaffold-plans");await Xl(o,{recursive:!0});let s=Ye.join(o,`${i.planId}.json`);return await Fg(s,`${b(i)}
45
45
  `,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await Ug(s,"utf8")!==`${b(i)}
46
- `)throw new He("SCAFFOLD_PLAN_INVALID")}),i}async function PE(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new He("SCAFFOLD_PLAN_INVALID");let r=await Hl(Ye.resolve(e)),n;try{n=JSON.parse(await Ug(Ye.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new He("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:a,...i}=n;if(a!==t||qg(i)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new He("SCAFFOLD_PLAN_INVALID");return n}async function Jg(e){let t=await PE(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new He("SCAFFOLD_PLAN_INVALID");let r=await Bg(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await Mg(r.output).then(()=>!0).catch(()=>!1)&&await AE(r.output,{recursive:!0,force:!0}),new He("SCAFFOLD_APPLY_FAILED",s)}let a={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},i=y(b(a)),o=Ye.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await Xl(o,{recursive:!0}),await Fg(Ye.join(o,`${i}.json`),`${b({...a,evidenceId:i})}
47
- `,{flag:"wx",mode:384}),{evidenceId:i,output:r.output,receipts:n}}import{lstat as ja,readFile as Zl,readdir as NE,realpath as Ql}from"node:fs/promises";import fe from"node:path";var Wg={capabilities:fe.resolve(import.meta.dirname,"catalog"),packages:fe.resolve(import.meta.dirname,"package-releases")};function Kg(e,t){return e<t?-1:e>t?1:0}function ko(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(ko).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Kg(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${ko(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function OE(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let a=n.trim();if(a===""||a.startsWith("#"))continue;if(a.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(a);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 o=i[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(i[1],o)}return t}async function Gg(e,t){let r=await ja(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 bo(e,t){let r=await ja(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 Ql(e)}async function SE(e){let t=e;for(;;){if(await ja(fe.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=fe.dirname(t);if(r===t)return;t=r}}async function DE(e){if(!fe.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await bo(e,"IDP_CONFIG_DIR");await SE(t);let r=await bo(fe.join(t,"components"),"components"),n=await bo(fe.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),a=fe.relative(t,n);if(a.startsWith("..")||fe.isAbsolute(a))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let i=fe.join(n,".env");await Gg(i,"Dyyto \u7EC4\u4EF6 .env");let o=OE(await Zl(i,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(o===void 0||o==="")return[];if(fe.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=fe.resolve(n,o),c=fe.relative(n,s);if(c===""||c.startsWith("..")||fe.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let d=n;for(let u of c.split(fe.sep).slice(0,-1))d=await bo(fe.join(d,u),"Package Catalog Binding \u7236\u76EE\u5F55");let l=await Ql(fe.dirname(s)),p=fe.relative(n,l);if(p.startsWith("..")||fe.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Gg(s,"Package Catalog Binding");let f=[];for(let u of(await Zl(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!fe.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await ja(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await Ql(m),w=await ja(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 jE(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await DE(e);return{capabilities:Wg.capabilities,packages:[Wg.packages,...t]}}async function Ro(e){return(await NE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function $E(e,t){let r=i=>i.split("-",1)[0].split(".").map(Number),n=r(e),a=r(t);for(let i=0;i<3;i+=1){let o=(n[i]??0)-(a[i]??0);if(o!==0)return o}return e.localeCompare(t)}function CE(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 TE(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 LE(e){let t=[];for(let r of await Ro(e))for(let n of await Ro(fe.join(e,r))){let a=`capability:${r}@${n}`;t.push(we(fe.join(e,r,n)).then(i=>({entry:{item:CE(i.release),release:i.release}})).catch(()=>({diagnostic:{ref:a,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 xE(e){let t=[];for(let r of await Ro(e))for(let n of await Ro(fe.join(e,r))){let a=fe.join(e,r,n,"release.json"),i=`package:${r}@${n}`;t.push(Zl(a,"utf8").then(o=>{let s=Lg(JSON.parse(o));return{entry:{item:TE(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 ed(e){let t=e??await jE(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...a]=await Promise.all([LE(t.capabilities),...r.map(xE)]),i=[...n.entries,...a.flatMap(d=>d.entries)].sort((d,l)=>d.item.ref.localeCompare(l.item.ref)),o=[],s=new Set,c=[];for(let d of i)s.has(d.item.ref)?c.push({ref:d.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(d.item.ref),o.push(d));return{entries:o,diagnostics:[...n.diagnostics,...a.flatMap(d=>d.diagnostics),...c].sort((d,l)=>d.ref.localeCompare(l.ref))}}async function _o(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await ed(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}`,d=n.get(c);(d===void 0||$E(d.version,o.version)<0)&&n.set(c,o)}let a=[...n.values()].sort((o,s)=>o.ref.localeCompare(s.ref)),i=e.limit??50;return{query:t,total:a.length,items:a.slice(0,i),diagnostics:r.diagnostics}}async function Ao(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await ed(e.roots),n=r.entries.find(({item:i})=>i.ref===t),a=r.diagnostics.find(i=>i.ref===t);if(a?.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&&a!==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 VE(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let a=n;if(typeof a.capabilityId!="string"||typeof a.version!="string"||!Array.isArray(a.integration?.packages))continue;let i=`capability:${a.capabilityId}@${a.version}`;for(let o of a.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}`,d=t.get(c)??new Set;d.add(i),t.set(c,d)}}return t}async function Yg(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 ed(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=VE(r.entries),a=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)=>Kg(o.ref,s.ref)),i={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(a)};return Object.freeze({...i,sourceDigest:y(ko(i))})}function Hg(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(ko(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
48
- `}var $a={"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"},eh=FE(ME),qE=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"]),th=(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,Eo={"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 rh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Po(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let a=await re(N.join(e,"package.json")),i=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:o}=await import("./optional-runtime.js"),s=await Tt(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 oe("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new oe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=va({release:t.release,packageJson:n??a}),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 d=Rl({release:t.release,packageJson:n??a}),l=await o({desiredPackageJson:d,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:i.registryConfigs,endpointBindings:i.endpointBindings});return{...i,lockResolution:l,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function nh(e,t,r,n){let a=r.capabilities.find(v=>v.capabilityId===t.release.capabilityId&&v.version===t.release.version);if(a&&!a.packageAdoption){let v=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return ug({projectRoot:e,manifest:v,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 oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!a?.packageAdoption)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let i=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),o=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Tt(e),d=await re(N.join(c.transactionRoot,c.lockfilePath)),l=new Set(r.capabilities.filter(v=>v!==a).flatMap(v=>v.packageAdoption?.sources.map(A=>A.packageName)??[])),p=a.packageAdoption.sources.filter(v=>!l.has(v.packageName)),f=c.mode==="pnpm-shared-lockfile"?Al({packageJson:o,remove:p}):_l({packageJson:o,remove:p}),u=r.capabilities.filter(v=>v!==a).flatMap(v=>v.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new oe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let v=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:d,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,...a.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{...Im({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:d,endpointBindings:i.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:v.preservedImporterDigests,resolutionEvidence:v.evidence,resolutionWorkerReleaseId:v.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:d,sources:u,registrySources:[...u,...a.packageAdoption.sources],registries:i.registryConfigs,endpointBindings:i.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...a.assets.map(v=>v.path)].map(async v=>re(N.join(e,...v.split("/"))).then(A=>({path:v,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:v,exists:!1}:Promise.reject(A))));return{...wm({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:d,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 k(e){throw new L({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Ne(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?k("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function No(e,t){return qE.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):k("The selected template release is not bundled with this CLI.")}function BE(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?k("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 Oo(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return k("Project manifest must select one capability.");let n=await we(Ne(r.capabilityId,r.version)),a=await $e(e).catch(()=>null),i=new Date,s=await(t.profile?.id==="standalone-npm-package"?ua:t.profile?.id==="react-component-library"?fa:t.profile?.id==="nextjs-full-stack-application"?fn:t.profile?.id==="workspace-npm-package"?ma:t.profile?.id==="workspace-node-application"?ga:t.profile?.id==="workspace-web-application"?ha:t.profile?.id==="workspace-expo-application"?ya:Oi)({projectRoot:e,manifest:t,release:n,...a===null?{}:{currentLock:a},generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString()});return Ct({projectRoot:e,plan:s.plan,now:i.toISOString()})}async function ah(e){let t;try{t=pe({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 k("Create arguments are invalid.")}if(t.positionals.length!==1)return k("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Oa(No(g,h))}let a=n?.profile.id??t.values.profile;if(a!=="typescript-library"&&a!=="standalone-npm-package"&&a!=="react-component-library"&&a!=="nextjs-full-stack-application"&&a!=="workspace-root")return k("Create requires a supported --profile.");let i=t.values.capability,o=a==="workspace-root"&&i==="foundation.workspace-root@1.0.0"||a==="standalone-npm-package"&&i==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(o?i:$a[a]);if(n!==void 0&&s.split("@")[0]!==$a[a].split("@")[0])return k(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&i!==s)return k(`Create requires --capability ${s}.`);if(n!==void 0&&i!==void 0)return k("Create with --template does not accept --capability.");let[c,d]=s.split("@"),l={};if(a==="standalone-npm-package"||a==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,_=t.values["publish-access"],v=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||d==="1.1.0"&&typeof v!="string")return k(`Standalone npm package requires --name, --version, --license, --publish-access${d==="1.1.0"?", and --repository":""}.`);l={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof v=="string"?{repository:v}:{}}}else if(a==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return k("Next.js application requires --name.");l={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:a,parameters:l},capabilities:[{capabilityId:c,version:d}]};(a==="standalone-npm-package"||a==="react-component-library")&&nr(X(p),a),a==="nextjs-full-stack-application"&&Or(X(p));let f=await zi({projectRoot:t.positionals[0],manifest:p}),u=await Oo(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
46
+ `)throw new He("SCAFFOLD_PLAN_INVALID")}),i}async function NE(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new He("SCAFFOLD_PLAN_INVALID");let r=await Hl(Ye.resolve(e)),n;try{n=JSON.parse(await Ug(Ye.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new He("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:a,...i}=n;if(a!==t||qg(i)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new He("SCAFFOLD_PLAN_INVALID");return n}async function Jg(e){let t=await NE(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new He("SCAFFOLD_PLAN_INVALID");let r=await Bg(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await Mg(r.output).then(()=>!0).catch(()=>!1)&&await EE(r.output,{recursive:!0,force:!0}),new He("SCAFFOLD_APPLY_FAILED",s)}let a={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},i=y(b(a)),o=Ye.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await Xl(o,{recursive:!0}),await Fg(Ye.join(o,`${i}.json`),`${b({...a,evidenceId:i})}
47
+ `,{flag:"wx",mode:384}),{evidenceId:i,output:r.output,receipts:n}}import{lstat as ja,readFile as Zl,readdir as OE,realpath as Ql}from"node:fs/promises";import fe from"node:path";var Wg={capabilities:fe.resolve(import.meta.dirname,"catalog"),packages:fe.resolve(import.meta.dirname,"package-releases")};function Kg(e,t){return e<t?-1:e>t?1:0}function ko(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(ko).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Kg(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${ko(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function SE(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let a=n.trim();if(a===""||a.startsWith("#"))continue;if(a.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(a);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 o=i[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(i[1],o)}return t}async function Gg(e,t){let r=await ja(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 bo(e,t){let r=await ja(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 Ql(e)}async function DE(e){let t=e;for(;;){if(await ja(fe.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=fe.dirname(t);if(r===t)return;t=r}}async function jE(e){if(!fe.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await bo(e,"IDP_CONFIG_DIR");await DE(t);let r=await bo(fe.join(t,"components"),"components"),n=await bo(fe.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),a=fe.relative(t,n);if(a.startsWith("..")||fe.isAbsolute(a))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let i=fe.join(n,".env");await Gg(i,"Dyyto \u7EC4\u4EF6 .env");let o=SE(await Zl(i,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(o===void 0||o==="")return[];if(fe.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=fe.resolve(n,o),c=fe.relative(n,s);if(c===""||c.startsWith("..")||fe.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(fe.sep).slice(0,-1))l=await bo(fe.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await Ql(fe.dirname(s)),p=fe.relative(n,d);if(p.startsWith("..")||fe.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Gg(s,"Package Catalog Binding");let f=[];for(let u of(await Zl(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!fe.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await ja(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await Ql(m),w=await ja(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 $E(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await jE(e);return{capabilities:Wg.capabilities,packages:[Wg.packages,...t]}}async function Ro(e){return(await OE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function CE(e,t){let r=i=>i.split("-",1)[0].split(".").map(Number),n=r(e),a=r(t);for(let i=0;i<3;i+=1){let o=(n[i]??0)-(a[i]??0);if(o!==0)return o}return e.localeCompare(t)}function TE(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 LE(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 xE(e){let t=[];for(let r of await Ro(e))for(let n of await Ro(fe.join(e,r))){let a=`capability:${r}@${n}`;t.push(Ie(fe.join(e,r,n)).then(i=>({entry:{item:TE(i.release),release:i.release}})).catch(()=>({diagnostic:{ref:a,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 VE(e){let t=[];for(let r of await Ro(e))for(let n of await Ro(fe.join(e,r))){let a=fe.join(e,r,n,"release.json"),i=`package:${r}@${n}`;t.push(Zl(a,"utf8").then(o=>{let s=Lg(JSON.parse(o));return{entry:{item:LE(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 ed(e){let t=e??await $E(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...a]=await Promise.all([xE(t.capabilities),...r.map(VE)]),i=[...n.entries,...a.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),o=[],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),o.push(l));return{entries:o,diagnostics:[...n.diagnostics,...a.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function _o(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await ed(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||CE(l.version,o.version)<0)&&n.set(c,o)}let a=[...n.values()].sort((o,s)=>o.ref.localeCompare(s.ref)),i=e.limit??50;return{query:t,total:a.length,items:a.slice(0,i),diagnostics:r.diagnostics}}async function Ao(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await ed(e.roots),n=r.entries.find(({item:i})=>i.ref===t),a=r.diagnostics.find(i=>i.ref===t);if(a?.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&&a!==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 ME(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let a=n;if(typeof a.capabilityId!="string"||typeof a.version!="string"||!Array.isArray(a.integration?.packages))continue;let i=`capability:${a.capabilityId}@${a.version}`;for(let o of a.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(i),t.set(c,l)}}return t}async function Yg(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 ed(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=ME(r.entries),a=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)=>Kg(o.ref,s.ref)),i={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(a)};return Object.freeze({...i,sourceDigest:y(ko(i))})}function Hg(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(ko(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
48
+ `}var $a={"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"},eh=qE(UE),BE=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"]),th=(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,Eo={"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 rh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Po(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let a=await re(N.join(e,"package.json")),i=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:o}=await import("./optional-runtime.js"),s=await Tt(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 oe("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new oe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=va({release:t.release,packageJson:n??a}),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=Rl({release:t.release,packageJson:n??a}),d=await o({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 nh(e,t,r,n){let a=r.capabilities.find(v=>v.capabilityId===t.release.capabilityId&&v.version===t.release.version);if(a&&!a.packageAdoption){let v=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return ug({projectRoot:e,manifest:v,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 oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!a?.packageAdoption)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let i=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),o=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Tt(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(v=>v!==a).flatMap(v=>v.packageAdoption?.sources.map(A=>A.packageName)??[])),p=a.packageAdoption.sources.filter(v=>!d.has(v.packageName)),f=c.mode==="pnpm-shared-lockfile"?Al({packageJson:o,remove:p}):_l({packageJson:o,remove:p}),u=r.capabilities.filter(v=>v!==a).flatMap(v=>v.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new oe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let v=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,...a.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{...Im({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:l,endpointBindings:i.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:v.preservedImporterDigests,resolutionEvidence:v.evidence,resolutionWorkerReleaseId:v.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,...a.packageAdoption.sources],registries:i.registryConfigs,endpointBindings:i.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...a.assets.map(v=>v.path)].map(async v=>re(N.join(e,...v.split("/"))).then(A=>({path:v,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:v,exists:!1}:Promise.reject(A))));return{...wm({release:t.release,currentLock:r,projectManifest:s,packageJson:o,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 k(e){throw new L({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)?k("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function No(e,t){return BE.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):k("The selected template release is not bundled with this CLI.")}function zE(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?k("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 Oo(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return k("Project manifest must select one capability.");let n=await Ie(Se(r.capabilityId,r.version)),a=await Te(e).catch(()=>null),i=new Date,s=await(t.profile?.id==="standalone-npm-package"?ua:t.profile?.id==="react-component-library"?fa:t.profile?.id==="nextjs-full-stack-application"?mn:t.profile?.id==="workspace-npm-package"?ma:t.profile?.id==="workspace-node-application"?ga:t.profile?.id==="workspace-web-application"?ha:t.profile?.id==="workspace-expo-application"?ya:Oi)({projectRoot:e,manifest:t,release:n,...a===null?{}:{currentLock:a},generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString()});return Ct({projectRoot:e,plan:s.plan,now:i.toISOString()})}async function ah(e){let t;try{t=pe({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 k("Create arguments are invalid.")}if(t.positionals.length!==1)return k("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Oa(No(g,h))}let a=n?.profile.id??t.values.profile;if(a!=="typescript-library"&&a!=="standalone-npm-package"&&a!=="react-component-library"&&a!=="nextjs-full-stack-application"&&a!=="workspace-root")return k("Create requires a supported --profile.");let i=t.values.capability,o=a==="workspace-root"&&i==="foundation.workspace-root@1.0.0"||a==="standalone-npm-package"&&i==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(o?i:$a[a]);if(n!==void 0&&s.split("@")[0]!==$a[a].split("@")[0])return k(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&i!==s)return k(`Create requires --capability ${s}.`);if(n!==void 0&&i!==void 0)return k("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(a==="standalone-npm-package"||a==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,_=t.values["publish-access"],v=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof v!="string")return k(`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 v=="string"?{repository:v}:{}}}else if(a==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return k("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:a,parameters:d},capabilities:[{capabilityId:c,version:l}]};(a==="standalone-npm-package"||a==="react-component-library")&&nr(X(p),a),a==="nextjs-full-stack-application"&&Or(X(p));let f=await zi({projectRoot:t.positionals[0],manifest:p}),u=await Oo(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
49
49
  Plan: ${u.planId}
50
50
  State: ${u.state}
51
- Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:a,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function zE(e){let[t,...r]=e,n;try{n=pe({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return k("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return k("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return k("Retrofit requires --project <directory>.");let a=await we(Ne("foundation.workspace-root","1.2.0")),i=new Date,o=await Gf({projectRoot:n.values.project,capabilityIntegrity:a.release.integrity,generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}),s=ee(o.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return k("Retrofit plan does not accept --approve.");let p=await Ct({projectRoot:o.projectRoot,plan:o.plan,now:i.toISOString()});return{outputMode:z(e),human:`Project: ${s}
51
+ Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:a,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function JE(e){let[t,...r]=e,n;try{n=pe({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return k("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return k("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return k("Retrofit requires --project <directory>.");let a=await Ie(Se("foundation.workspace-root","1.2.0")),i=new Date,o=await Gf({projectRoot:n.values.project,capabilityIntegrity:a.release.integrity,generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}),s=ee(o.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return k("Retrofit plan does not accept --approve.");let p=await Ct({projectRoot:o.projectRoot,plan:o.plan,now:i.toISOString()});return{outputMode:z(e),human:`Project: ${s}
52
52
  Plan: ${p.planId}
53
53
  State: ${p.state}
54
54
  Files: project-capabilities.json
55
- Next: dyyto retrofit apply --project ${s} --approve ${p.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:s,plan:p}}}}if(typeof n.values.approve!="string")return k("Retrofit apply requires --approve <planId>.");let c=await Pr({projectRoot:o.projectRoot,planId:n.values.approve}),d=await Qt({projectRoot:o.projectRoot,plan:c,approvedPlanId:n.values.approve,desiredContents:o.desiredContents,now:i.toISOString()}),l=await er(d);return{outputMode:z(e),human:`Project: ${s}
55
+ Next: dyyto retrofit apply --project ${s} --approve ${p.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:s,plan:p}}}}if(typeof n.values.approve!="string")return k("Retrofit apply requires --approve <planId>.");let c=await Pr({projectRoot:o.projectRoot,planId:n.values.approve}),l=await Qt({projectRoot:o.projectRoot,plan:c,approvedPlanId:n.values.approve,desiredContents:o.desiredContents,now:i.toISOString()}),d=await er(l);return{outputMode:z(e),human:`Project: ${s}
56
56
  Plan: ${c.planId}
57
- State: ${l.state}
58
- Files applied: ${l.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:s,planId:c.planId,transaction:l}}}}async function JE(e,t){let r;try{r=pe({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return k(`${e} requires --project.`);let n=await vt(N.resolve(r.values.project)),a=X(JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")));if(a.template===void 0)return k("The project does not declare an engineering template.");let i=await Oa(No(a.template.id,a.template.version)),o=i.commands[e];if(o===void 0)return k(`Template ${i.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=UE("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",_=>{process.off("SIGINT",h),process.off("SIGTERM",w),u(_??1)})})!==0)throw new L({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${i.templateId}@${i.version}`,command:o,durationMs:Date.now()-c,stdout:""};return{outputMode:z(t),human:`dev completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let d=await eh("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),l={template:`${i.templateId}@${i.version}`,command:o,durationMs:Date.now()-c,stdout:d.stdout.trim()};return{outputMode:z(t),human:`${e} completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:l}}}async function WE(e){let t;try{t=pe({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 k("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(_=>typeof _!="string"))return k("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 k("Add package requires a supported --profile.");let a=n==="react-component-library"?$a["workspace-react-component-library"]:$a["workspace-npm-package"];if(t.values.capability!==a)return k(`Add package requires --capability ${a}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return k("Add package --kind only accepts fixture.");let i=t.values.kind==="fixture"?"fixture":"package",o=String(t.values.path),s=hd(o,i);if(s!==void 0)return k(s);let c=await vt(N.resolve(String(t.values.workspace))),d=JSON.parse(await re(N.join(c,"project-capabilities.json"),"utf8"));if(d.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let l=d.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root")return k("Workspace root capability is invalid.");let p=await $e(c);if(p===null){let _=await we(Ne(l.capabilityId,l.version)),v=new Date;if((await Ni({projectRoot:c,release:_,generatedAt:v.toISOString(),expiresAt:new Date(v.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding a package.")}if(p!==null){try{await kr({projectRoot:c,expectedAssets:rh(p)})}catch{return k("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Ea({projectRoot:c,lock:p})).some(v=>v.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await wd(c,i==="fixture"?"fixtures":"packages",String(t.values.name)))return k("A workspace package already uses this npm name.");let[f,u]=a.split("@"),m={schemaVersion:1,...Eo[n]===void 0?{}:{template:Eo[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}]};nr(X(m),n);let g=await zi({projectRoot:N.join(c,...o.split("/")),manifest:m}),h=await Oo(g.projectRoot),w=ee(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${o}' initialized.
57
+ State: ${d.state}
58
+ Files applied: ${d.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:s,planId:c.planId,transaction:d}}}}async function WE(e,t){let r;try{r=pe({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return k(`${e} requires --project.`);let n=await vt(N.resolve(r.values.project)),a=X(JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")));if(a.template===void 0)return k("The project does not declare an engineering template.");let i=await Oa(No(a.template.id,a.template.version)),o=i.commands[e];if(o===void 0)return k(`Template ${i.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=FE("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",_=>{process.off("SIGINT",h),process.off("SIGTERM",w),u(_??1)})})!==0)throw new L({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${i.templateId}@${i.version}`,command:o,durationMs:Date.now()-c,stdout:""};return{outputMode:z(t),human:`dev completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let l=await eh("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${i.templateId}@${i.version}`,command:o,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:z(t),human:`${e} completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:d}}}async function GE(e){let t;try{t=pe({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 k("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(_=>typeof _!="string"))return k("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 k("Add package requires a supported --profile.");let a=n==="react-component-library"?$a["workspace-react-component-library"]:$a["workspace-npm-package"];if(t.values.capability!==a)return k(`Add package requires --capability ${a}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return k("Add package --kind only accepts fixture.");let i=t.values.kind==="fixture"?"fixture":"package",o=String(t.values.path),s=hd(o,i);if(s!==void 0)return k(s);let c=await vt(N.resolve(String(t.values.workspace))),l=JSON.parse(await re(N.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let d=l.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root")return k("Workspace root capability is invalid.");let p=await Te(c);if(p===null){let _=await Ie(Se(d.capabilityId,d.version)),v=new Date;if((await Ni({projectRoot:c,release:_,generatedAt:v.toISOString(),expiresAt:new Date(v.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding a package.")}if(p!==null){try{await kr({projectRoot:c,expectedAssets:rh(p)})}catch{return k("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Ea({projectRoot:c,lock:p})).some(v=>v.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await wd(c,i==="fixture"?"fixtures":"packages",String(t.values.name)))return k("A workspace package already uses this npm name.");let[f,u]=a.split("@"),m={schemaVersion:1,...Eo[n]===void 0?{}:{template:Eo[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}]};nr(X(m),n);let g=await zi({projectRoot:N.join(c,...o.split("/")),manifest:m}),h=await Oo(g.projectRoot),w=ee(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${o}' initialized.
59
59
  Plan: ${h.planId}
60
60
  State: ${h.state}
61
- Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:o,plan:h}}}}async function GE(e){let t;try{t=pe({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 k("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return k("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 k("Add application requires a supported --profile.");let n=r,a=$a[n],i=String(t.values.path),o=yd(i,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(o!==void 0)return k(o);let s=await vt(N.resolve(String(t.values.workspace))),c=JSON.parse(await re(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let d=c.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(d.version))return k("Workspace applications require a supported foundation.workspace-root release.");if(i.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(d.version))return k("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let l=await $e(s);if(l===null){let w=await we(Ne(d.capabilityId,d.version)),_=new Date;if((await Ni({projectRoot:s,release:w,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding an application.")}if(l!==null){try{await kr({projectRoot:s,expectedAssets:rh(l)})}catch{return k("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Ea({projectRoot:s,lock:l})).some(_=>_.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Id(s,String(t.values.name)))return k("A workspace application already uses this name.");let[p,f]=a.split("@"),u={schemaVersion:1,...Eo[n]===void 0?{}:{template:Eo[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Or(X(u));let m=await zi({projectRoot:N.join(s,...i.split("/")),manifest:u}),g=await Oo(m.projectRoot),h=ee(m.projectRoot);return{outputMode:z(e),human:`Workspace application '${i}' initialized.
61
+ Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:o,plan:h}}}}async function KE(e){let t;try{t=pe({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 k("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return k("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 k("Add application requires a supported --profile.");let n=r,a=$a[n],i=String(t.values.path),o=yd(i,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(o!==void 0)return k(o);let s=await vt(N.resolve(String(t.values.workspace))),c=JSON.parse(await re(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return k("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 k("Workspace applications require a supported foundation.workspace-root release.");if(i.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let d=await Te(s);if(d===null){let w=await Ie(Se(l.capabilityId,l.version)),_=new Date;if((await Ni({projectRoot:s,release:w,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding an application.")}if(d!==null){try{await kr({projectRoot:s,expectedAssets:rh(d)})}catch{return k("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Ea({projectRoot:s,lock:d})).some(_=>_.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Id(s,String(t.values.name)))return k("A workspace application already uses this name.");let[p,f]=a.split("@"),u={schemaVersion:1,...Eo[n]===void 0?{}:{template:Eo[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Or(X(u));let m=await zi({projectRoot:N.join(s,...i.split("/")),manifest:u}),g=await Oo(m.projectRoot),h=ee(m.projectRoot);return{outputMode:z(e),human:`Workspace application '${i}' initialized.
62
62
  Plan: ${g.planId}
63
63
  State: ${g.state}
64
- Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:ee(s),path:i,plan:g}}}}async function ih(e,t){let r;try{r=pe({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 k("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=await vt(N.resolve(r.values.project)),a=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),i=await $e(n);if(i===null)return k("Add feature requires an adopted project with a verified Profile Lock.");let[o,s]=So(r.values.capability),c=await we(Ne(o,s)),d=new Date,l;try{let u=await Po(n,c,t);l=await Fl({projectRoot:n,manifest:a,release:c,currentLock:i,generatedAt:d.toISOString(),expiresAt:new Date(d.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof oe?new L({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Ct({projectRoot:n,plan:l.plan,now:d.toISOString(),transactionRoot:l.transactionRoot}),f=ee(n);return{outputMode:z(e),human:`Project: ${f}
64
+ Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:ee(s),path:i,plan:g}}}}async function ih(e,t){let r;try{r=pe({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 k("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=await vt(N.resolve(r.values.project)),a=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),i=await Te(n);if(i===null)return k("Add feature requires an adopted project with a verified Profile Lock.");let[o,s]=So(r.values.capability),c=await Ie(Se(o,s)),l=new Date,d;try{let u=await Po(n,c,t);d=await Fl({projectRoot:n,manifest:a,release:c,currentLock:i,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 oe?new L({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Ct({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:z(e),human:`Project: ${f}
65
65
  Feature: ${o}@${s}
66
- Dependency: ${l.dependency.profile} satisfied
66
+ Dependency: ${d.dependency.profile} satisfied
67
67
  Plan: ${p.planId}
68
68
  State: ${p.state}
69
- Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:l.dependency,plan:p}}}}async function KE(e,t){let r;try{r=pe({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 k("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Remove feature requires --project and --capability.");let n=await vt(N.resolve(r.values.project)),a=await $e(n);if(a===null)return k("Remove feature requires a verified Lock.");let[i,o]=So(r.values.capability),s=await we(Ne(i,o)),c=await nh(n,s,a,t),d=await Ct({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),l=ee(n);return{outputMode:z(e),human:`Project: ${l}
69
+ 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 YE(e,t){let r;try{r=pe({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 k("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Remove feature requires --project and --capability.");let n=await vt(N.resolve(r.values.project)),a=await Te(n);if(a===null)return k("Remove feature requires a verified Lock.");let[i,o]=So(r.values.capability),s=await Ie(Se(i,o)),c=await nh(n,s,a,t),l=await Ct({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),d=ee(n);return{outputMode:z(e),human:`Project: ${d}
70
70
  \u79FB\u9664\u80FD\u529B\uFF1A${i}@${o}
71
71
  \u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
72
- Plan: ${d.planId}
73
- State: ${d.state}
74
- Next: dyyto apply --project ${l} --approve ${d.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:l,capability:r.values.capability,removedSources:c.removedSources,plan:d}}}}async function YE(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k("Plan arguments are invalid.")}if(typeof t.values.project!="string")return k("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Oo(r),a=ee(r),i=n.state==="reviewable"?`Next: dyyto apply --project ${a} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${a}
72
+ Plan: ${l.planId}
73
+ State: ${l.state}
74
+ 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 HE(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k("Plan arguments are invalid.")}if(typeof t.values.project!="string")return k("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Oo(r),a=ee(r),i=n.state==="reviewable"?`Next: dyyto apply --project ${a} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${a}
75
75
  Plan: ${n.planId}
76
76
  State: ${n.state}
77
- ${i}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:a,plan:n}}}}function So(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?k("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function HE(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return k("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return k("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await $e(r)!==null)return k("Baseline is only for a historical project without a Lock.");let[n,a]=So(t.values.capability),i=await we(Ne(n,a)),o=JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await hl({projectRoot:r,manifest:o,release:i,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),d=await Ct({projectRoot:r,plan:c.plan,now:s.toISOString()}),l=ee(r);return{outputMode:z(e),human:`Project: ${l}
77
+ ${i}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:a,plan:n}}}}function So(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?k("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function XE(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return k("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return k("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Te(r)!==null)return k("Baseline is only for a historical project without a Lock.");let[n,a]=So(t.values.capability),i=await Ie(Se(n,a)),o=JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await hl({projectRoot:r,manifest:o,release:i,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Ct({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:z(e),human:`Project: ${d}
78
78
  Baseline: ${n}@${a}
79
- Plan: ${d.planId}
80
- State: ${d.state}
81
- Preserved seed files: ${d.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
82
- Next: dyyto apply --project ${l} --approve ${d.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:l,plan:d}}}}async function XE(e,t){let r;try{r=pe({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 k("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return k("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),a=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),[i,o]=So(r.values.to),s=a.capabilities?.find(R=>R.capabilityId===i);if(s===void 0)return k(`Upgrade requires ${i} to be adopted by the project.`);let c=await $e(n);if(c===null)return k("Upgrade requires an adopted project with a verified Lock.");let d=(a.profile.id==="standalone-npm-package"||a.profile.id==="workspace-npm-package")&&o==="1.1.0";if(d){if(typeof r.values.repository!="string")return k("npm package upgrade to 1.1.0 requires --repository.");a={...a,profile:{...a.profile,parameters:{...a.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is only valid for an npm package upgrade to 1.1.0.");let l=await we(Ne(s.capabilityId,s.version)),p=await we(Ne(i,o)),f={...a,capabilities:a.capabilities.map(R=>R.capabilityId===i?{capabilityId:i,version:o}:R)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?co(f,p):void 0,g=u?await Po(n,p,t,m):void 0,h=th(i,o),w=new Date,_=await Ol({projectRoot:n,manifest:a,currentLock:c,sourceRelease:l,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}}),v=await Ct({projectRoot:n,plan:_.plan,now:w.toISOString(),transactionRoot:_.transactionRoot}),A=ee(n),I=v.state==="reviewable"?`Next: dyyto apply --project ${A} --approve ${v.planId}${d?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${A}
79
+ Plan: ${l.planId}
80
+ State: ${l.state}
81
+ Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
82
+ Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function ZE(e,t){let r;try{r=pe({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 k("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return k("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),a=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),[i,o]=So(r.values.to),s=a.capabilities?.find(R=>R.capabilityId===i);if(s===void 0)return k(`Upgrade requires ${i} to be adopted by the project.`);let c=await Te(n);if(c===null)return k("Upgrade requires an adopted project with a verified Lock.");let l=(a.profile.id==="standalone-npm-package"||a.profile.id==="workspace-npm-package")&&o==="1.1.0";if(l){if(typeof r.values.repository!="string")return k("npm package upgrade to 1.1.0 requires --repository.");a={...a,profile:{...a.profile,parameters:{...a.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await Ie(Se(s.capabilityId,s.version)),p=await Ie(Se(i,o)),f={...a,capabilities:a.capabilities.map(R=>R.capabilityId===i?{capabilityId:i,version:o}:R)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?co(f,p):void 0,g=u?await Po(n,p,t,m):void 0,h=th(i,o),w=new Date,_=await Ol({projectRoot:n,manifest:a,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}}),v=await Ct({projectRoot:n,plan:_.plan,now:w.toISOString(),transactionRoot:_.transactionRoot}),A=ee(n),I=v.state==="reviewable"?`Next: dyyto apply --project ${A} --approve ${v.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${A}
83
83
  Upgrade: ${s.version} -> ${o}
84
84
  Plan: ${v.planId}
85
85
  State: ${v.state}
86
- ${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:v}}}}async function td(e,t){let r;try{r=pe({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 k("Apply arguments are invalid.")}if(typeof r.values.project!="string")return k("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return k("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),a=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),i=a.capabilities?.[0];if(i===void 0)return k("Project manifest must select one capability.");let o=await Pr({projectRoot:n,planId:r.values.approve}),s=new Date,c,d,l;if(o.action==="remove"){let u=await $e(n);if(u===null)return k("Remove apply requires the verified Lock.");let m=await nh(n,await we(Ne(o.capability.capabilityId,o.capability.version)),u,t);c=m,d="registryConfigs"in m?m.registryConfigs:void 0,l="endpointBindings"in m?m.endpointBindings:void 0}else if(o.action==="upgrade"){let u=await $e(n),m=u?.capabilities.find(I=>I.capabilityId===o.capability.capabilityId);if(u===null||m===void 0)return k("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 k("npm package upgrade apply requires the approved --repository value.");a={...a,profile:{...a.profile,parameters:{...a.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is not valid for this apply operation.");let g=await we(Ne(o.capability.capabilityId,o.capability.version)),h={...a,capabilities:a.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,_=w?co(h,g):void 0,v=w?await Po(n,g,t,_):void 0;d=v?.registryConfigs,l=v?.endpointBindings;let A=th(o.capability.capabilityId,o.capability.version);c=await Ol({projectRoot:n,manifest:a,currentLock:u,sourceRelease:await we(Ne(m.capabilityId,m.version)),targetRelease:g,...A===void 0?{}:{targetTemplate:A},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...o.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...v===void 0?{}:{packageSource:v}})}else if(o.action==="adopt"&&a.profile?.id==="nextjs-full-stack-application"&&a.capabilities?.[0]?.capabilityId===o.capability.capabilityId&&a.capabilities?.[0]?.version!==o.capability.version)c=await hl({projectRoot:n,manifest:a,release:await we(Ne(o.capability.capabilityId,o.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(a.capabilities?.some(u=>u.capabilityId===o.capability.capabilityId&&u.version===o.capability.version)){let u=await we(Ne(i.capabilityId,i.version)),m=await $e(n).catch(()=>null);c=await(a.profile?.id==="standalone-npm-package"?ua:a.profile?.id==="react-component-library"?fa:a.profile?.id==="nextjs-full-stack-application"?fn:a.profile?.id==="workspace-npm-package"?ma:a.profile?.id==="workspace-node-application"?ga:a.profile?.id==="workspace-web-application"?ha:a.profile?.id==="workspace-expo-application"?ya:Oi)({projectRoot:n,manifest:a,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await $e(n);if(u===null)return k("Feature apply requires the verified Profile Lock.");let m=await we(Ne(o.capability.capabilityId,o.capability.version)),g=await Po(n,m,t);d=g?.registryConfigs,l=g?.endpointBindings,c=await Fl({projectRoot:n,manifest:a,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(d===void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(l===void 0)throw new oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await vm({projectRoot:c.transactionRoot??n,plan:o,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:u({registries:d,endpointBindings:l,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let u=await Qt({projectRoot:n,plan:o,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await er(u)}let f=ee(n);return{outputMode:z(e),human:`Project: ${f}
86
+ ${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:v}}}}async function td(e,t){let r;try{r=pe({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 k("Apply arguments are invalid.")}if(typeof r.values.project!="string")return k("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return k("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),a=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),i=a.capabilities?.[0];if(i===void 0)return k("Project manifest must select one capability.");let o=await Pr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(o.action==="remove"){let u=await Te(n);if(u===null)return k("Remove apply requires the verified Lock.");let m=await nh(n,await Ie(Se(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 Te(n),m=u?.capabilities.find(I=>I.capabilityId===o.capability.capabilityId);if(u===null||m===void 0)return k("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 k("npm package upgrade apply requires the approved --repository value.");a={...a,profile:{...a.profile,parameters:{...a.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return k("--repository is not valid for this apply operation.");let g=await Ie(Se(o.capability.capabilityId,o.capability.version)),h={...a,capabilities:a.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,_=w?co(h,g):void 0,v=w?await Po(n,g,t,_):void 0;l=v?.registryConfigs,d=v?.endpointBindings;let A=th(o.capability.capabilityId,o.capability.version);c=await Ol({projectRoot:n,manifest:a,currentLock:u,sourceRelease:await Ie(Se(m.capabilityId,m.version)),targetRelease:g,...A===void 0?{}:{targetTemplate:A},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...o.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...v===void 0?{}:{packageSource:v}})}else if(o.action==="adopt"&&a.profile?.id==="nextjs-full-stack-application"&&a.capabilities?.[0]?.capabilityId===o.capability.capabilityId&&a.capabilities?.[0]?.version!==o.capability.version)c=await hl({projectRoot:n,manifest:a,release:await Ie(Se(o.capability.capabilityId,o.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(a.capabilities?.some(u=>u.capabilityId===o.capability.capabilityId&&u.version===o.capability.version)){let u=await Ie(Se(i.capabilityId,i.version)),m=await Te(n).catch(()=>null);c=await(a.profile?.id==="standalone-npm-package"?ua:a.profile?.id==="react-component-library"?fa:a.profile?.id==="nextjs-full-stack-application"?mn:a.profile?.id==="workspace-npm-package"?ma:a.profile?.id==="workspace-node-application"?ga:a.profile?.id==="workspace-web-application"?ha:a.profile?.id==="workspace-expo-application"?ya:Oi)({projectRoot:n,manifest:a,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Te(n);if(u===null)return k("Feature apply requires the verified Profile Lock.");let m=await Ie(Se(o.capability.capabilityId,o.capability.version)),g=await Po(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await Fl({projectRoot:n,manifest:a,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 oe("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 oe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await vm({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 Qt({projectRoot:n,plan:o,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await er(u)}let f=ee(n);return{outputMode:z(e),human:`Project: ${f}
87
87
  Plan: ${o.planId}
88
88
  State: ${p.state}
89
89
  Files applied: ${p.operations.length}
90
- `+(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 ZE(e,t){let r;try{r=pe({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 k("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 k("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 k("Scaffold example recipe identifier is invalid.");let a=await Ig(BE(n,r.values["recipe-version"])),i=Number(r.values["artifact-port"]),o=r.values["artifact-workspace"],s=r.values["artifact-bundle"],c=r.values["artifact-fallback-bundle"],d=Array.isArray(c)?c.filter(u=>typeof u=="string"):[],l=r.values.approve;if(l===void 0){let u=await zg({workspaceRoot:o,output:r.values.output,recipe:a,artifactBundle:s,artifactFallbackBundles:d,artifactPort:i});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${a.title}
90
+ `+(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 QE(e,t){let r;try{r=pe({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 k("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 k("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 k("Scaffold example recipe identifier is invalid.");let a=await Ig(zE(n,r.values["recipe-version"])),i=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 zg({workspaceRoot:o,output:r.values.output,recipe:a,artifactBundle:s,artifactFallbackBundles:l,artifactPort:i});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${a.title}
91
91
  Plan\uFF1A${u.planId}
92
92
  \u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
93
- 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 l!="string")return k("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",o,"--artifact-bundle",s,...d.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(i)],f;try{f=await Jg({workspaceRoot:o,approvedPlanId:l,recipe:a,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(d)||m.artifactPort!==i)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await ah([u,"--profile","nextjs-full-stack-application","--capability",`${a.rootProfile.capabilityId}@${a.rootProfile.version}`,"--name",a.recipeId])).value.result.plan.planId;await td(["--project",u,"--approve",w],t),g.push(w),await eh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(o,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await rd(["--project",u]);for(let _ of a.capabilities){let v=`${_.capabilityId}@${_.version}`;try{let I=(await ih(["--project",u,"--capability",v,"--channel",_.channel,...p],t)).value.result.plan.planId;await td(["--project",u,"--approve",I,...p],t),await rd(["--project",u]),g.push(I)}catch(A){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${v}:${A instanceof Error?A.message:"UNKNOWN"}`,{cause:A})}}return g}})}catch(u){let m=u instanceof He&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new L({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:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
93
+ 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 k("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(i)],f;try{f=await Jg({workspaceRoot:o,approvedPlanId:d,recipe:a,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==i)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await ah([u,"--profile","nextjs-full-stack-application","--capability",`${a.rootProfile.capabilityId}@${a.rootProfile.version}`,"--name",a.recipeId])).value.result.plan.planId;await td(["--project",u,"--approve",w],t),g.push(w),await eh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(o,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await rd(["--project",u]);for(let _ of a.capabilities){let v=`${_.capabilityId}@${_.version}`;try{let I=(await ih(["--project",u,"--capability",v,"--channel",_.channel,...p],t)).value.result.plan.planId;await td(["--project",u,"--approve",I,...p],t),await rd(["--project",u]),g.push(I)}catch(A){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${v}:${A instanceof Error?A.message:"UNKNOWN"}`,{cause:A})}}return g}})}catch(u){let m=u instanceof He&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new L({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:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
94
94
  Evidence\uFF1A${f.evidenceId}
95
- \u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Ca(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function rd(e){let{projectRoot:t,outputMode:r}=Ca(e,"Verify"),n=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),a=await $e(t),i=await Tt(t).catch(()=>{}),o;try{let h=a?.capabilities.map(_=>_.appliedPlanId)??[],w=a?.capabilities.map(_=>_.capabilityId)??[];try{o=await Ji(t,h,t,w)}catch(_){if(!(_ instanceof Ie)||_.code!=="PLAN_NOT_FOUND"||i===void 0)throw _;o=await Ji(t,h,i.transactionRoot,w)}}catch(h){if(!(h instanceof Ie)||h.code!=="PLAN_NOT_FOUND"||a===null)throw h;let _=(await nd(["--project",t,"--json"])).value.result,v=await Ea({projectRoot:t,lock:a});if(_.state!=="adopted"||v.some(I=>I.code!=="EVIDENCE_VALID"))throw new L({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 A=ee(t);return{outputMode:r,human:`Project: ${A}
95
+ \u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Ca(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function rd(e){let{projectRoot:t,outputMode:r}=Ca(e,"Verify"),n=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),a=await Te(t),i=await Tt(t).catch(()=>{}),o;try{let h=a?.capabilities.map(_=>_.appliedPlanId)??[],w=a?.capabilities.map(_=>_.capabilityId)??[];try{o=await Ji(t,h,t,w)}catch(_){if(!(_ instanceof be)||_.code!=="PLAN_NOT_FOUND"||i===void 0)throw _;o=await Ji(t,h,i.transactionRoot,w)}}catch(h){if(!(h instanceof be)||h.code!=="PLAN_NOT_FOUND"||a===null)throw h;let _=(await nd(["--project",t,"--json"])).value.result,v=await Ea({projectRoot:t,lock:a});if(_.state!=="adopted"||v.some(I=>I.code!=="EVIDENCE_VALID"))throw new L({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 A=ee(t);return{outputMode:r,human:`Project: ${A}
96
96
  State: adopted
97
- Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:a}}}}let s=await we(Ne(o.capability.capabilityId,o.capability.version)),c=o.packageAdoption===void 0?void 0:i?.transactionRoot;if(a?.capabilities.some(h=>h.appliedPlanId===o.planId)){let h=ee(t);return{outputMode:r,human:`Project: ${h}
97
+ Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:a}}}}let s=await Ie(Se(o.capability.capabilityId,o.capability.version)),c=o.packageAdoption===void 0?void 0:i?.transactionRoot;if(a?.capabilities.some(h=>h.appliedPlanId===o.planId)){let h=ee(t);return{outputMode:r,human:`Project: ${h}
98
98
  State: adopted
99
99
  Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:h,state:"adopted",reused:!0}}}}if(o.action==="remove"){if(a===null)return k("Remove verification requires the previous verified Lock.");let h=a.capabilities.find($=>$.capabilityId===o.capability.capabilityId&&$.version===o.capability.version);if(h===void 0){let $=ee(t);return{outputMode:r,human:`Project: ${$}
100
100
  State: removed
101
101
  Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:a}}}}let w=o.packageAdoption?.schemaVersion===2&&o.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${o.packageAdoption.topology.unitRelativeRoot}/`:"",_=new Map(o.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),v=a.capabilities.filter($=>$!==h),A=[...v].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=v.flatMap($=>$.assets).map($=>({...$,digest:_.get($.path)??($.path==="package.json"?A?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:R}=await import("./optional-runtime.js"),S=await R({projectRoot:t,release:s,remainingAssets:I,removedPaths:h.assets.map($=>$.path)}),C=await sl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:o,release:s.release,verificationResults:S.results,committedAt:new Date().toISOString(),previousLock:a,expectedAssets:I}),ce=ee(t);return{outputMode:r,human:`Project: ${ce}
102
102
  State: removed
103
103
  ${S.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
104
- `)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ce,state:"removed",verifiers:S.summaries,lock:C}}}}let d=o.packageAdoption?.schemaVersion===2&&o.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${o.packageAdoption.topology.unitRelativeRoot}/`:"",l=(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===`${d}${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===`${d}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):o.operations).map(({path:h,desiredDigest:w,ownership:_,regionId:v})=>w===void 0?k("Applied plan is missing a desired asset digest."):{path:h,digest:w,ownership:_==="managed-region"?"managed-region":_==="seed-file"?"seed-file":"owned-file",...v===void 0?{}:{regionId:v}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:l}),u=o.action==="adopt"&&o.operations.every(h=>h.disposition==="noop")&&a?.capabilities.some(h=>h.capabilityId===o.capability.capabilityId)===!0,m=await ol({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:o,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:l,...(o.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&a!==null?{previousLock:a}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
104
+ `)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ce,state:"removed",verifiers:S.summaries,lock:C}}}}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:_,regionId:v})=>w===void 0?k("Applied plan is missing a desired asset digest."):{path:h,digest:w,ownership:_==="managed-region"?"managed-region":_==="seed-file"?"seed-file":"owned-file",...v===void 0?{}:{regionId:v}}),{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")&&a?.capabilities.some(h=>h.capabilityId===o.capability.capabilityId)===!0,m=await ol({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)&&a!==null?{previousLock:a}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
105
105
  State: adopted
106
106
  `+f.summaries.map(h=>`${h.verifierId}: ${h.result}`).join(`
107
107
  `),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function nd(e){let{projectRoot:t,outputMode:r}=Ca(e,"Inspect"),n=await ul(t),a=ee(t);if(n.required)return{outputMode:r,human:`Project: ${a}
108
108
  State: recovery-required
109
109
  Transaction: ${n.kind}
110
- Next: dyyto recover --project ${a}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,state:"recovery-required",recovery:n}}};let i=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return k("Project manifest must select one capability.");let s=await we(Ne(o.capabilityId,o.version)),c=await $e(t);try{let A=await Ji(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(A.action==="upgrade"||A.action==="adopt")return{outputMode:r,human:`Project: ${a}
110
+ Next: dyyto recover --project ${a}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,state:"recovery-required",recovery:n}}};let i=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return k("Project manifest must select one capability.");let s=await Ie(Se(o.capabilityId,o.version)),c=await Te(t);try{let A=await Ji(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(A.action==="upgrade"||A.action==="adopt")return{outputMode:r,human:`Project: ${a}
111
111
  State: applied-unverified
112
112
  Plan: ${A.planId}
113
- Next: dyyto verify --project ${a}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,state:"applied-unverified",operations:A.operations,lock:c}}}}catch{}let d=new Date,l={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:d.toISOString(),expiresAt:new Date(d.getTime()+1800*1e3).toISOString()},p=i.profile?.id==="standalone-npm-package"?await nm({...l,manifest:i}):i.profile?.id==="react-component-library"?await am({...l,manifest:i}):i.profile?.id==="nextjs-full-stack-application"?await im({...l,manifest:i}):i.profile?.id==="workspace-npm-package"?await om({...l,manifest:i}):i.profile?.id==="workspace-node-application"?await sm({...l,manifest:i}):i.profile?.id==="workspace-web-application"?await cm({...l,manifest:i}):i.profile?.id==="workspace-expo-application"?await lm({...l,manifest:i}):await Ni(l),f=c===null?void 0:[...c.capabilities].filter(A=>A.packageAdoption!==void 0).sort((A,I)=>A.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await re(N.join(t,"package.json")).then(y).catch(()=>{}),m=p.operations.map(A=>A.path==="package.json"&&u===f?{...A,desiredDigest:f,disposition:"noop",conflictCode:void 0}:A),g=c===null?[]:await Vg({projectRoot:t,lock:c,excludeCapabilityIds:[o.capabilityId]}),h=g.some(A=>A.disposition==="conflict"),w=f!==void 0&&m.every(A=>A.disposition==="noop")?{...p,state:"adopted"}:p,_={...w,state:h?"drifted":w.state,operations:[...m,...g]},v=c?.capabilities.flatMap(A=>A.packageAdoption?.sources.map(I=>({capabilityId:A.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${a}
113
+ Next: dyyto verify --project ${a}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,state:"applied-unverified",operations:A.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=i.profile?.id==="standalone-npm-package"?await nm({...d,manifest:i}):i.profile?.id==="react-component-library"?await am({...d,manifest:i}):i.profile?.id==="nextjs-full-stack-application"?await im({...d,manifest:i}):i.profile?.id==="workspace-npm-package"?await om({...d,manifest:i}):i.profile?.id==="workspace-node-application"?await sm({...d,manifest:i}):i.profile?.id==="workspace-web-application"?await cm({...d,manifest:i}):i.profile?.id==="workspace-expo-application"?await lm({...d,manifest:i}):await Ni(d),f=c===null?void 0:[...c.capabilities].filter(A=>A.packageAdoption!==void 0).sort((A,I)=>A.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await re(N.join(t,"package.json")).then(y).catch(()=>{}),m=p.operations.map(A=>A.path==="package.json"&&u===f?{...A,desiredDigest:f,disposition:"noop",conflictCode:void 0}:A),g=c===null?[]:await Vg({projectRoot:t,lock:c,excludeCapabilityIds:[o.capabilityId]}),h=g.some(A=>A.disposition==="conflict"),w=f!==void 0&&m.every(A=>A.disposition==="noop")?{...p,state:"adopted"}:p,_={...w,state:h?"drifted":w.state,operations:[...m,...g]},v=c?.capabilities.flatMap(A=>A.packageAdoption?.sources.map(I=>({capabilityId:A.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${a}
114
114
  State: ${_.state}
115
115
  `+_.operations.map(A=>`${A.path}: ${A.disposition}`).join(`
116
116
  `)+(v.length===0?"":`
117
117
  \u5305\u6765\u6E90\uFF1A
118
118
  ${v.map(A=>`- ${A.packageName}@${A.version}\uFF08Registry: ${A.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
119
- `)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,..._,lock:c,packageSources:v}}}}async function QE(e){let{projectRoot:t,outputMode:r}=Ca(e,"Recover"),n=await em({projectRoot:t,now:new Date().toISOString()}),a=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${a}
119
+ `)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,..._,lock:c,packageSources:v}}}}async function eP(e){let{projectRoot:t,outputMode:r}=Ca(e,"Recover"),n=await em({projectRoot:t,now:new Date().toISOString()}),a=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${a}
120
120
  Recovery: not-required`:`Project: ${a}
121
121
  Recovery: ${n.kind}
122
- State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:a,recovery:n}}}}function oh(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function eP(e,t){let{parsed:r,projectRoot:n,outputMode:a}=oh(t,"Lifecycle"),i=r.values.command;if((e==="start"||e==="restart")&&i!=="dev")return k("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:o,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:d}=await import("./optional-runtime.js"),l;if(e==="status")l=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 k("Lifecycle logs --after must be a non-negative integer cursor.");l=await o(n,f)}else if(e==="start")await Xg(n,"dev"),l=await c(n,"dev");else if(e==="stop")l=await d(n);else if(e==="restart")await Xg(n,"dev"),await d(n),l=await c(n,"dev");else return k("Lifecycle action must be start, stop, restart, status, or logs.");let p=ee(n);return{outputMode:a,human:`Project: ${p}
122
+ State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:a,recovery:n}}}}function oh(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function tP(e,t){let{parsed:r,projectRoot:n,outputMode:a}=oh(t,"Lifecycle"),i=r.values.command;if((e==="start"||e==="restart")&&i!=="dev")return k("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 k("Lifecycle logs --after must be a non-negative integer cursor.");d=await o(n,f)}else if(e==="start")await Xg(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await Xg(n,"dev"),await l(n),d=await c(n,"dev");else return k("Lifecycle action must be start, stop, restart, status, or logs.");let p=ee(n);return{outputMode:a,human:`Project: ${p}
123
123
  Lifecycle: ${e}
124
- State: ${"state"in l?l.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...l,projectRoot:void 0}}}}catch(o){let s=typeof o=="object"&&o!==null&&"code"in o?String(o.code):"PROJECT_PROCESS_FAILED";throw new L({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 Xg(e,t){let r=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new L({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 Oa(No(r.template.id,r.template.version))).commands[t]!==t)throw new L({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 tP(e){let{projectRoot:t,outputMode:r}=oh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),a=await n(t),i=ee(t),o=a.details.flatMap(d=>[`${d.title} (${d.capabilityId}@${d.version}) [${d.status}]`,` ${d.purpose}`,...d.packages.map(l=>` package ${l.packageName}@${l.version} [${l.state}]`),...d.packages.flatMap(l=>l.imports.map(p=>` import { ${p.symbol} } from '${p.importFrom}'${p.referencePath?` -> ${p.referencePath}`:""}`)),...d.codeAssets.map(l=>` asset ${l.sourcePath} -> ${l.targetPath} (${l.ownership})`)]),s=d=>a.platformDependencies.filter(l=>l.source===d).length,c=a.platformDependencies.map(d=>` platform ${d.packageName} ${d.version} [${d.source}]`);return{outputMode:r,human:`Project: ${i}
124
+ 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 L({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 Xg(e,t){let r=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new L({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 Oa(No(r.template.id,r.template.version))).commands[t]!==t)throw new L({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 rP(e){let{projectRoot:t,outputMode:r}=oh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),a=await n(t),i=ee(t),o=a.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=>a.platformDependencies.filter(d=>d.source===l).length,c=a.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${i}
125
125
  Declared: ${a.declared.length}
126
126
  Locked: ${a.locked.length}
127
127
  Verified: ${a.verified.length}
@@ -129,36 +129,36 @@ Findings: ${a.findings.length}
129
129
  Unmanaged platform dependencies: ${a.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
130
130
 
131
131
  ${[...o,...c].join(`
132
- `)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:i,...a,projectRoot:void 0}}}}async function rP(e){let t;try{t=pe({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 k("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return k("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return k("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:a,switchProjectPackageSources:i,verifyPackageSourceSwitch:o,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return k("Packages switch requires --source workspace|public|private.");let d=N.resolve(t.values.project),l=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:d,approvedPlanId:t.values.approve}):a({projectRoot:d,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?o({projectRoot:d,planId:t.values.verify}):i({projectRoot:d,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new L({code:m.code,message:m.message,exitCode:4,nextStep:"Run dyyto packages switch --help."}):m}),p=ee(l.projectRoot),f=l.changes.map(m=>` ${m.field} ${m.packageName}: ${m.from} -> ${m.to}`),u=l.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${l.planId} \u7CBE\u786E\u6279\u51C6\u3002`:l.state==="applied"?`\u4F7F\u7528 --verify ${l.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:z(e),human:`\u9879\u76EE\uFF1A${p}
133
- \u6765\u6E90\uFF1A${l.source}
134
- Registry\uFF1A${l.registry??"workspace protocol"}
135
- \u72B6\u6001\uFF1A${l.state}
136
- Plan\uFF1A${l.planId}
137
- Packages\uFF1A${l.packages.length}
138
- \u53D8\u66F4\uFF1A${l.changes.length}
139
- \u5DF2\u5199\u5165\uFF1A${l.written?"\u662F":"\u5426"}
132
+ `)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:i,...a,projectRoot:void 0}}}}async function nP(e){let t;try{t=pe({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 k("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return k("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return k("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:a,switchProjectPackageSources:i,verifyPackageSourceSwitch:o,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return k("Packages switch requires --source workspace|public|private.");let l=N.resolve(t.values.project),d=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:l,approvedPlanId:t.values.approve}):a({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?o({projectRoot:l,planId:t.values.verify}):i({projectRoot:l,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new L({code:m.code,message:m.message,exitCode:4,nextStep:"Run dyyto packages switch --help."}):m}),p=ee(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:z(e),human:`\u9879\u76EE\uFF1A${p}
133
+ \u6765\u6E90\uFF1A${d.source}
134
+ Registry\uFF1A${d.registry??"workspace protocol"}
135
+ \u72B6\u6001\uFF1A${d.state}
136
+ Plan\uFF1A${d.planId}
137
+ Packages\uFF1A${d.packages.length}
138
+ \u53D8\u66F4\uFF1A${d.changes.length}
139
+ \u5DF2\u5199\u5165\uFF1A${d.written?"\u662F":"\u5426"}
140
140
 
141
141
  ${f.join(`
142
142
  `)}${f.length>0?`
143
143
 
144
- `:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:l.source,registry:l.registry,state:l.state,planId:l.planId,packages:l.packages,changes:l.changes,written:l.written,...l.installVerified===void 0?{}:{installVerified:l.installVerified},...l.lockfileDigest===void 0?{}:{lockfileDigest:l.lockfileDigest}}}}}async function nP(e){let{projectRoot:t,outputMode:r}=Ca(e,"Inspect"),n=X(JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new L({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let a=await Oa(No(n.template.id,n.template.version)),i=await Ag({projectRoot:t,commands:a.commands}),o=ee(t);return{outputMode:r,human:`Project: ${o}
144
+ `:""}\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 aP(e){let{projectRoot:t,outputMode:r}=Ca(e,"Inspect"),n=X(JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new L({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let a=await Oa(No(n.template.id,n.template.version)),i=await Ag({projectRoot:t,commands:a.commands}),o=ee(t);return{outputMode:r,human:`Project: ${o}
145
145
  Commands: ${i.commands.map(s=>s.id).join(", ")}
146
- Environment: ${i.environment.filter(s=>s.configured).length}/${i.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:o,template:`${a.templateId}@${a.version}`,...i}}}}async function aP(e){let{projectRoot:t,outputMode:r}=Ca(e,"Inspect"),n=await oo({projectRoot:t}).catch(a=>{throw new L({code:a instanceof Error&&"code"in a?String(a.code):"APPLICATION_CONFIG_UNAVAILABLE",message:a instanceof Error?a.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}
146
+ Environment: ${i.environment.filter(s=>s.configured).length}/${i.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:o,template:`${a.templateId}@${a.version}`,...i}}}}async function iP(e){let{projectRoot:t,outputMode:r}=Ca(e,"Inspect"),n=await oo({projectRoot:t}).catch(a=>{throw new L({code:a instanceof Error&&"code"in a?String(a.code):"APPLICATION_CONFIG_UNAVAILABLE",message:a instanceof Error?a.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}
147
147
  \u73AF\u5883\uFF1A${n.environment}
148
148
  Config Dir\uFF1A${n.configDirectory}
149
149
  \u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(a=>a.configured).length}/${n.entries.length}
150
150
  ${n.entries.map(a=>`${a.name}: ${a.display}`).join(`
151
- `)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function iP(e){let t;try{t=pe({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 k("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return k("Operations requires --project and --plane change|quality|delivery.");let r=await vt(N.resolve(t.values.project)),n=ee(r),a=[];for(let o of await Qg(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(o.endsWith(".json"))try{let s=JSON.parse(await re(N.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"&&a.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 i=Ng(a,{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:z(e),human:`Project: ${n}
151
+ `)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function oP(e){let t;try{t=pe({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 k("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return k("Operations requires --project and --plane change|quality|delivery.");let r=await vt(N.resolve(t.values.project)),n=ee(r),a=[];for(let o of await Qg(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(o.endsWith(".json"))try{let s=JSON.parse(await re(N.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"&&a.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 i=Ng(a,{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:z(e),human:`Project: ${n}
152
152
  Operations: ${i.plane}
153
153
  Total: ${i.summary.total}
154
- Attention: ${i.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...i}}}}async function oP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return k("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Doctor requires --workspace.");let r=await vt(N.resolve(t.values.workspace));if(X(JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return k("Doctor requires a workspace-root project.");let a=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Qg(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let d=N.join(r,s,c.name);try{await re(N.join(d,"project-capabilities.json"))}catch{continue}a.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:d})}let i=[];for(let s of a){let c="invalid",d;try{let p=(await nd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",d=Ul(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?d.push(...await Ea({projectRoot:s.projectRoot,lock:p.lock})):c==="adopted"&&d.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{d=Ul("invalid")}try{let l=X(JSON.parse(await re(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));l.profile?.id==="workspace-web-application"&&d.push(...await lg({workspaceRoot:r,applicationId:String(l.profile.parameters.name)}))}catch{}i.push({unit:s.unit,kind:s.kind,state:c,findings:d})}let o=dg({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:i});return{outputMode:z(e),human:`Workspace: ${o.workspace}
154
+ Attention: ${i.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...i}}}}async function sP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return k("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Doctor requires --workspace.");let r=await vt(N.resolve(t.values.workspace));if(X(JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return k("Doctor requires a workspace-root project.");let a=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Qg(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await re(N.join(l,"project-capabilities.json"))}catch{continue}a.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let i=[];for(let s of a){let c="invalid",l;try{let p=(await nd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=Ul(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await Ea({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=Ul("invalid")}try{let d=X(JSON.parse(await re(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await lg({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}i.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let o=dg({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:i});return{outputMode:z(e),human:`Workspace: ${o.workspace}
155
155
  Status: ${o.status}
156
156
  Units: ${o.summary.total}
157
157
  Healthy: ${o.summary.healthy}
158
158
  Attention: ${o.summary.attention}
159
159
  Blocked: ${o.summary.blocked}
160
160
  `+o.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
161
- `),value:{schemaVersion:1,ok:!0,command:"doctor",result:o}}}async function ad(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:k("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function Zg(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function sh(e){let t=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8"))),r=await $e(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return k("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return k("Manifest and verified Lock must identify the same adopted capability.");let a=n.assets.filter(i=>!i.path.startsWith("src/"));return await kr({projectRoot:e,expectedAssets:a}),{manifest:t,lock:r,locked:n,lockDigest:y(b(r))}}async function sP(e){let t;try{t=pe({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 k("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return k("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await sh(r),i=await(await ad(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Fm({projectRoot:r,artifactIdentity:i.artifact.identity})!==null)throw new D("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 l=t.values.provider,p=t.values.repository,f=t.values.workflow,u=t.values.ref;if(l!=="github-actions"&&l!=="gitlab-ci"||typeof p!="string"||typeof f!="string"||typeof u!="string")throw new D("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:l,repository:p,workflow:f,ref:u,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(o!==void 0){let l=JSON.parse(await re(N.join(r,"package.json"),"utf8")),p=typeof l.repository=="string"?l.repository:l.repository!==null&&typeof l.repository=="object"?l.repository.url:void 0,f=`https://${o.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${o.execution.repository}`;if(p!==f)throw new D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=Cl({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:i.artifact,target:i.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 Vm({projectRoot:r,plan:c});let d=ee(r);return{outputMode:z(e),human:`Project: ${d}
161
+ `),value:{schemaVersion:1,ok:!0,command:"doctor",result:o}}}async function ad(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:k("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function Zg(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function sh(e){let t=X(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8"))),r=await Te(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return k("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return k("Manifest and verified Lock must identify the same adopted capability.");let a=n.assets.filter(i=>!i.path.startsWith("src/"));return await kr({projectRoot:e,expectedAssets:a}),{manifest:t,lock:r,locked:n,lockDigest:y(b(r))}}async function cP(e){let t;try{t=pe({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 k("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return k("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await sh(r),i=await(await ad(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Fm({projectRoot:r,artifactIdentity:i.artifact.identity})!==null)throw new D("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 D("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 re(N.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 D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=Cl({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:i.artifact,target:i.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 Vm({projectRoot:r,plan:c});let l=ee(r);return{outputMode:z(e),human:`Project: ${l}
162
162
  Delivery: ${c.kind}
163
163
  Artifact: ${c.artifact.identity}
164
164
  Target: ${c.target.location}
@@ -170,73 +170,73 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
170
170
  Approval: maintainer 2FA required outside Dyyto`}
171
171
  Plan: ${c.planId}
172
172
  State: reviewable
173
- Next: dyyto delivery apply --project ${d} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:d,plan:c}}}}async function cP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return k("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return k("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await xt({projectRoot:r,planId:t.values.approve}),a=await gn({projectRoot:r,planId:n.planId}),i=ee(r);if(a!==null)return{outputMode:z(e),human:`Project: ${i}
173
+ Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function lP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return k("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return k("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await xt({projectRoot:r,planId:t.values.approve}),a=await gn({projectRoot:r,planId:n.planId}),i=ee(r);if(a!==null)return{outputMode:z(e),human:`Project: ${i}
174
174
  Delivery: verified
175
175
  Receipt: ${a.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,reused:!0,receipt:a}}};let o=n.kind==="npm-publish"?await hn({projectRoot:r,planId:n.planId}):null;if(o!==null)return{outputMode:z(e),human:`Project: ${i}
176
176
  Delivery: staged
177
177
  Stage: ${Zg(o.stageId)}
178
- State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,reused:!0,state:"staged",record:o}}};if((n.kind==="npm-publish"?await Um({projectRoot:r,planId:n.planId}):null)!==null)throw new D("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 D("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 D("DELIVERY_PRECONDITION_FAILED","Adoption Lock changed after Delivery Plan approval");let d=await ad(n.kind),l=await d.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(b(l.artifact)!==b(n.artifact)||b(l.target)!==b(n.target))throw new D("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let p=await d.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await Mm({projectRoot:r,record:Lm({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Tm({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await qm({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${i}
178
+ State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,reused:!0,state:"staged",record:o}}};if((n.kind==="npm-publish"?await Um({projectRoot:r,planId:n.planId}):null)!==null)throw new D("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 D("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 D("DELIVERY_PRECONDITION_FAILED","Adoption Lock changed after Delivery Plan approval");let l=await ad(n.kind),d=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(b(d.artifact)!==b(n.artifact)||b(d.target)!==b(n.target))throw new D("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 Mm({projectRoot:r,record:Lm({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Tm({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await qm({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${i}
179
179
  Delivery: staged
180
180
  Stage: ${Zg(u.stageId)}
181
- State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await d.inspect({projectRoot:r,plan:n})).state!=="verified")throw new D("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let f=po({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 Tl({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${i}
181
+ State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await l.inspect({projectRoot:r,plan:n})).state!=="verified")throw new D("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let f=po({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 Tl({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${i}
182
182
  Delivery: verified
183
183
  Receipt: ${f.receiptId}
184
- External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,receipt:f}}}}async function lP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return k("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return k("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await xt({projectRoot:r,planId:t.values.plan}),a=await gn({projectRoot:r,planId:n.planId}),i=ee(r);if(a!==null)return{outputMode:z(e),human:`Project: ${i}
184
+ External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,receipt:f}}}}async function dP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return k("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return k("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await xt({projectRoot:r,planId:t.values.plan}),a=await gn({projectRoot:r,planId:n.planId}),i=ee(r);if(a!==null)return{outputMode:z(e),human:`Project: ${i}
185
185
  Delivery: verified
186
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,receipt:a}}};let o=n.kind==="npm-publish"?await hn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await zm({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||o===null)throw new D("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let d=y(await re(N.resolve(t.values["stage-artifact"])));if(d!==n.artifact.digest||d!==o.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=xm({planId:n.planId,stageId:o.stageId,artifactDigest:d,reviewedAt:new Date().toISOString()}),await Bm({projectRoot:r,record:s})}let c=await(await ad(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 D("NPM_PROVENANCE_REQUIRED","Registry inspection did not prove the approved npm artifact and provenance");let d=po({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 Tl({projectRoot:r,receipt:d}),{outputMode:z(e),human:`Project: ${i}
186
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,receipt:a}}};let o=n.kind==="npm-publish"?await hn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await zm({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||o===null)throw new D("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let l=y(await re(N.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==o.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=xm({planId:n.planId,stageId:o.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await Bm({projectRoot:r,record:s})}let c=await(await ad(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 D("NPM_PROVENANCE_REQUIRED","Registry inspection did not prove the approved npm artifact and provenance");let l=po({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 Tl({projectRoot:r,receipt:l}),{outputMode:z(e),human:`Project: ${i}
187
187
  Delivery: verified
188
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,stage:o,review:s,receipt:d,adapter:c}}}}if(n.kind==="npm-publish"&&o!==null){let d=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:z(e),human:`Project: ${i}
188
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,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:z(e),human:`Project: ${i}
189
189
  Delivery: staged
190
190
  Plan: ${n.planId}
191
191
  Artifact review: ${s===null?"pending":"verified"}
192
- State: ${d}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:d,plan:n,stage:o,review:s,receipt:null,adapter:c}}}}if(n.kind==="npm-publish"&&c.state==="verified")throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","Live npm artifact is visible but no immutable Stage Record exists for this Plan");return{outputMode:z(e),human:`Project: ${i}
192
+ State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:l,plan:n,stage:o,review:s,receipt:null,adapter:c}}}}if(n.kind==="npm-publish"&&c.state==="verified")throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","Live npm artifact is visible but no immutable Stage Record exists for this Plan");return{outputMode:z(e),human:`Project: ${i}
193
193
  Delivery: ${c.state}
194
- Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:c.state,plan:n,receipt:null,adapter:c}}}}async function dP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return k("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Observe errors requires --workspace.");let r=await vt(N.resolve(t.values.workspace)),n=new Vt(r),a={...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}:{}},[i,o]=await Promise.all([n.list(a),n.summary(a)]);return{outputMode:z(e),human:i.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":i.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
195
- `),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...i,summary:o}}}}async function pP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return k("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return k("Observe error requires --workspace and --id.");let r=await new Vt(await vt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new L({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:z(e),human:`${r.error.type}: ${r.error.message}
194
+ Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:c.state,plan:n,receipt:null,adapter:c}}}}async function pP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return k("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Observe errors requires --workspace.");let r=await vt(N.resolve(t.values.workspace)),n=new Vt(r),a={...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}:{}},[i,o]=await Promise.all([n.list(a),n.summary(a)]);return{outputMode:z(e),human:i.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":i.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
195
+ `),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...i,summary:o}}}}async function uP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return k("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return k("Observe error requires --workspace and --id.");let r=await new Vt(await vt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new L({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:z(e),human:`${r.error.type}: ${r.error.message}
196
196
  State: ${r.state}
197
197
  Correlation: ${r.correlation}
198
198
  Release: ${r.releaseId??"unknown"}
199
- Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function uP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return k("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return k("Observe release register requires --project.");let r=await vt(N.resolve(t.values.project)),n=await vt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:a}=await import("./optional-runtime.js"),i=await a({workspaceRoot:n,projectRoot:r});return{outputMode:z(e),human:`Release: ${i.releaseId}
199
+ Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function fP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return k("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return k("Observe release register requires --project.");let r=await vt(N.resolve(t.values.project)),n=await vt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:a}=await import("./optional-runtime.js"),i=await a({workspaceRoot:n,projectRoot:r});return{outputMode:z(e),human:`Release: ${i.releaseId}
200
200
  Source Maps: ${i.registrations.length}
201
- \u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:i}}}async function fP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return k("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return k("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 k("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let a=await _o({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),i=a.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":a.items.map(o=>`${o.ref}
201
+ \u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:i}}}async function mP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return k("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return k("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 k("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let a=await _o({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),i=a.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":a.items.map(o=>`${o.ref}
202
202
  ${o.summary}
203
203
  \u6210\u719F\u5EA6\uFF1A${o.maturity}`).join(`
204
- `);return{outputMode:z(e),human:i,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:a}}}async function mP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return k("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return k("Catalog show \u9700\u8981 --ref\u3002");let r=await Ao({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
204
+ `);return{outputMode:z(e),human:i,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:a}}}async function gP(e){let t;try{t=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return k("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return k("Catalog show \u9700\u8981 --ref\u3002");let r=await Ao({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
205
205
  ${r.item.summary}
206
206
  \u6210\u719F\u5EA6\uFF1A${r.item.maturity}
207
- \u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function ch(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(o=>o==="--version"||o==="--json"))return{outputMode:n,human:Rn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Rn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:gd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[a,...i]=r;return a==="catalog"&&i[0]==="search"?fP(i.slice(1)):a==="catalog"&&i[0]==="show"?mP(i.slice(1)):a==="create"?ah(i):a==="scaffold"&&i[0]==="example"?ZE(i.slice(1),t):a==="retrofit"?zE(i):a==="dev"||a==="build"||a==="test"||a==="package"?JE(a,i):a==="add"&&i[0]==="package"?WE(i.slice(1)):a==="add"&&i[0]==="application"?GE(i.slice(1)):a==="add"&&i[0]==="feature"?ih(i.slice(1),t):a==="remove"&&i[0]==="feature"?KE(i.slice(1),t):a==="plan"?YE(i):a==="upgrade"?XE(i,t):a==="apply"?td(i,t):a==="verify"?rd(i):a==="inspect"?nd(i):a==="doctor"?oP(i):a==="recover"?QE(i):a==="lifecycle"&&typeof i[0]=="string"?eP(i[0],i.slice(1)):a==="packages"&&i[0]==="switch"?rP(i.slice(1)):a==="integrations"?tP(i):a==="maintenance"?nP(i):a==="config"&&i[0]==="inspect"?aP(i.slice(1)):a==="operations"?iP(i):a==="baseline"?HE(i):a==="delivery"&&i[0]==="plan"?sP(i.slice(1)):a==="delivery"&&i[0]==="apply"?cP(i.slice(1)):a==="delivery"&&i[0]==="inspect"?lP(i.slice(1)):a==="observe"&&i[0]==="errors"?dP(i.slice(1)):a==="observe"&&i[0]==="error"?pP(i.slice(1)):a==="observe"&&i[0]==="release"&&i[1]==="register"?uP(i.slice(2)):k(`Unknown command '${a}'.`)}import{createServer as gP}from"node:http";import{readFile as hP,readdir as $$,rm as C$}from"node:fs/promises";import{execFile as yP}from"node:child_process";import{promisify as wP}from"node:util";import IP from"node:path";var M$=wP(yP),id=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 vP(e){try{let t=JSON.parse(await hP(IP.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 lh(e){let t=new Vt(e.workspaceRoot),r=[...e.allowedOrigins??await vP(e.workspaceRoot)],n=new id,a={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},i=gP(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 d=s.headers.origin;if(typeof d!="string"||!r.includes(d)){a.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let l=n.take(d);if(!l.allowed){a.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(l.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 ae("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)});a.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof ae?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?a.rejectedInvalid+=1:a.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 o=i.address();if(o===null||typeof o=="string")throw new Error("Collector did not expose a TCP address");return{server:i,origin:`http://127.0.0.1:${o.port}`,snapshot:()=>({...a}),close:()=>new Promise((s,c)=>i.close(d=>d?c(d):s()))}}import{createHash as bP}from"node:crypto";import{createServer as kP}from"node:http";import{readFile as dh,realpath as ph}from"node:fs/promises";import Do from"node:path";var Te=class extends Error{constructor(r){super(r);this.code=r}code};function RP(e){return"sha512-"+bP("sha512").update(e).digest("base64")}async function Ta(e){let t=await ph(e).catch(()=>{throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await dh(Do.join(t,"index.json"),"utf8").catch(()=>{throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=xr(JSON.parse(r))}catch{throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID")}let a=new Map;for(let i of n.artifacts){let o=Do.join(t,i.assetName),s=Do.relative(t,await ph(o).catch(()=>{throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Do.isAbsolute(s))throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await dh(o);if(y(c)!==i.tarballDigest||RP(c)!==i.integrity)throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID");a.set(i.assetName,c)}return{root:t,bundle:n,assets:a}}function _P(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function uh(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 AP(e,t){let r=i=>i.split(/[.-]/u).map(o=>/^\d+$/u.test(o)?Number(o):o),n=r(e),a=r(t);for(let i=0;i<Math.max(n.length,a.length);i+=1){let o=n[i]??0,s=a[i]??0;if(o!==s)return typeof o=="number"&&typeof s=="number"?o-s:String(o).localeCompare(String(s))}return 0}function EP(e,t){let r=new Map,n=new Map;for(let a of[e,...t])for(let i of a.bundle.artifacts){let o=`${i.packageName}@${i.version}`,s=r.get(o);if(s!==void 0&&uh(s)!==uh(i))throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=a.assets.get(i.assetName);if(c===void 0)throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID");let d=n.get(i.assetName);if(d!==void 0&&!Buffer.from(d).equals(c))throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(o,i),n.set(i.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function fh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Te("LOCAL_ARTIFACT_SERVER_INVALID");let t=await Ta(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(Ta)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Te("LOCAL_ARTIFACT_BUNDLE_INVALID");let a=EP(t,r),i=e.hostname??"127.0.0.1",o=kP((s,c)=>{let d=s.method??"";if(d!=="GET"&&d!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let l=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(l.slice(1)),f=a.artifacts.filter(u=>u.packageName===p).sort((u,m)=>AP(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(d==="HEAD"?void 0:h);return}if(l.startsWith("/tarballs/")){let u=l.slice(10),m=a.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(d==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(d==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{o.once("error",c),o.listen(e.port,i,s)}).catch(()=>{throw new Te("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+i+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>_P(o)})}import{createHash as PP}from"node:crypto";import{execFile as NP}from"node:child_process";import{cp as OP,mkdir as mh,mkdtemp as od,readFile as Co,realpath as La,rename as SP,rm as gh,stat as DP,writeFile as $o}from"node:fs/promises";import{tmpdir as jP}from"node:os";import Oe from"node:path";import{promisify as $P}from"node:util";import{gunzipSync as CP}from"node:zlib";var TP=$P(NP),LP=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function xP(e){return"sha512-"+PP("sha512").update(e).digest("base64")}async function VP(e,t){let r=await La(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 a of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(a))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let i=await La(Oe.join(r,a)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),o=Oe.relative(r,i);if(o!==a||o.startsWith("..")||Oe.isAbsolute(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Co(Oe.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:a,root:i,manifestBytes:s,manifest:c})}return n}function MP(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 a={};for(let[i,o]of Object.entries(n)){if(typeof o!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=o.startsWith("workspace:")?r.get(i):o;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");a[i]=s}return Object.fromEntries(Object.entries(a).sort(([i],[o])=>i.localeCompare(o)))}function UP(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 a=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(a===t)return e.subarray(r+512,r+512+i);r+=512+Math.ceil(i/512)*512}}function FP(e,t,r){let n;try{n=CP(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a=UP(n,"package/package.json");if(a===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let i;try{i=JSON.parse(a.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=i.dependencies===void 0?{}:i.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],[d])=>c.localeCompare(d)));if(i.name!==t.name||i.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function qP(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function BP(e,t,r){let n=Oe.join(await od(Oe.join(r,"stage-")),"package");await OP(e.root,n,{recursive:!0,filter:i=>Oe.basename(i)!=="node_modules"});let a=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await $o(Oe.join(n,"package.json"),`${JSON.stringify({...a,dependencies:t},null,2)}
208
- `),n}async function zP(e,t,r){let n=MP(e,t.manifest),a=qP(t.manifest,n)?await BP(t,n,r):t.root,i;try{({stdout:i}=await TP("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:a,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o;try{o=JSON.parse(i)}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 Co(Oe.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),d=t.manifest.scripts;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let l=LP.filter(p=>Object.hasOwn(d??{},p));return FP(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:xP(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:l},bytes:c}}async function hh(e,t){let r=await VP(e,t),n=await od(Oe.join(await La(jP()),"dyyto-local-artifact-pack-"));try{let a=await Promise.all(r.map(o=>zP(r,o,n)));a.sort((o,s)=>(o.artifact.packageName+"@"+o.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let i=ql({artifacts:a.map(o=>o.artifact)});return{packages:r,bundle:i,bytes:new Map(a.map(o=>[o.artifact.assetName,o.bytes]))}}finally{await gh(n,{recursive:!0,force:!0})}}function jo(e,t){return Oe.join(e,".dyyto","artifact-plans",t+".json")}function JP(e,t){return Oe.join(e,".dyyto","package-artifacts",t)}async function yh(e){let t=await La(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await hh(t,e.packageRoots),n=e.now??new Date,a=Bl({packageInputs:r.packages.map(i=>({relativeRoot:i.relativeRoot,manifestDigest:y(i.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await mh(Oe.dirname(jo(t,a.planId)),{recursive:!0}),await $o(jo(t,a.planId),JSON.stringify(a,null,2)+`
207
+ \u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function ch(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(o=>o==="--version"||o==="--json"))return{outputMode:n,human:Rn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Rn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:gd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[a,...i]=r;return a==="catalog"&&i[0]==="search"?mP(i.slice(1)):a==="catalog"&&i[0]==="show"?gP(i.slice(1)):a==="create"?ah(i):a==="scaffold"&&i[0]==="example"?QE(i.slice(1),t):a==="retrofit"?JE(i):a==="dev"||a==="build"||a==="test"||a==="package"?WE(a,i):a==="add"&&i[0]==="package"?GE(i.slice(1)):a==="add"&&i[0]==="application"?KE(i.slice(1)):a==="add"&&i[0]==="feature"?ih(i.slice(1),t):a==="remove"&&i[0]==="feature"?YE(i.slice(1),t):a==="plan"?HE(i):a==="upgrade"?ZE(i,t):a==="apply"?td(i,t):a==="verify"?rd(i):a==="inspect"?nd(i):a==="doctor"?sP(i):a==="recover"?eP(i):a==="lifecycle"&&typeof i[0]=="string"?tP(i[0],i.slice(1)):a==="packages"&&i[0]==="switch"?nP(i.slice(1)):a==="integrations"?rP(i):a==="maintenance"?aP(i):a==="config"&&i[0]==="inspect"?iP(i.slice(1)):a==="operations"?oP(i):a==="baseline"?XE(i):a==="delivery"&&i[0]==="plan"?cP(i.slice(1)):a==="delivery"&&i[0]==="apply"?lP(i.slice(1)):a==="delivery"&&i[0]==="inspect"?dP(i.slice(1)):a==="observe"&&i[0]==="errors"?pP(i.slice(1)):a==="observe"&&i[0]==="error"?uP(i.slice(1)):a==="observe"&&i[0]==="release"&&i[1]==="register"?fP(i.slice(2)):k(`Unknown command '${a}'.`)}import{createServer as hP}from"node:http";import{readFile as yP,readdir as C$,rm as T$}from"node:fs/promises";import{execFile as wP}from"node:child_process";import{promisify as IP}from"node:util";import vP from"node:path";var U$=IP(wP),id=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 bP(e){try{let t=JSON.parse(await yP(vP.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 lh(e){let t=new Vt(e.workspaceRoot),r=[...e.allowedOrigins??await bP(e.workspaceRoot)],n=new id,a={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},i=hP(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)){a.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){a.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 ae("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)});a.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof ae?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?a.rejectedInvalid+=1:a.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 o=i.address();if(o===null||typeof o=="string")throw new Error("Collector did not expose a TCP address");return{server:i,origin:`http://127.0.0.1:${o.port}`,snapshot:()=>({...a}),close:()=>new Promise((s,c)=>i.close(l=>l?c(l):s()))}}import{createHash as kP}from"node:crypto";import{createServer as RP}from"node:http";import{readFile as dh,realpath as ph}from"node:fs/promises";import Do from"node:path";var Le=class extends Error{constructor(r){super(r);this.code=r}code};function _P(e){return"sha512-"+kP("sha512").update(e).digest("base64")}async function Ta(e){let t=await ph(e).catch(()=>{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await dh(Do.join(t,"index.json"),"utf8").catch(()=>{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Vr(JSON.parse(r))}catch{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}let a=new Map;for(let i of n.artifacts){let o=Do.join(t,i.assetName),s=Do.relative(t,await ph(o).catch(()=>{throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Do.isAbsolute(s))throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await dh(o);if(y(c)!==i.tarballDigest||_P(c)!==i.integrity)throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");a.set(i.assetName,c)}return{root:t,bundle:n,assets:a}}function AP(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function uh(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 EP(e,t){let r=i=>i.split(/[.-]/u).map(o=>/^\d+$/u.test(o)?Number(o):o),n=r(e),a=r(t);for(let i=0;i<Math.max(n.length,a.length);i+=1){let o=n[i]??0,s=a[i]??0;if(o!==s)return typeof o=="number"&&typeof s=="number"?o-s:String(o).localeCompare(String(s))}return 0}function PP(e,t){let r=new Map,n=new Map;for(let a of[e,...t])for(let i of a.bundle.artifacts){let o=`${i.packageName}@${i.version}`,s=r.get(o);if(s!==void 0&&uh(s)!==uh(i))throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=a.assets.get(i.assetName);if(c===void 0)throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(i.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(o,i),n.set(i.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function fh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Le("LOCAL_ARTIFACT_SERVER_INVALID");let t=await Ta(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(Ta)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Le("LOCAL_ARTIFACT_BUNDLE_INVALID");let a=PP(t,r),i=e.hostname??"127.0.0.1",o=RP((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=a.artifacts.filter(u=>u.packageName===p).sort((u,m)=>EP(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=a.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,i,s)}).catch(()=>{throw new Le("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+i+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>AP(o)})}import{createHash as NP}from"node:crypto";import{execFile as OP}from"node:child_process";import{cp as SP,mkdir as mh,mkdtemp as od,readFile as Co,realpath as La,rename as DP,rm as gh,stat as jP,writeFile as $o}from"node:fs/promises";import{tmpdir as $P}from"node:os";import De from"node:path";import{promisify as CP}from"node:util";import{gunzipSync as TP}from"node:zlib";var LP=CP(OP),xP=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function VP(e){return"sha512-"+NP("sha512").update(e).digest("base64")}async function MP(e,t){let r=await La(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 a of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(a))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let i=await La(De.join(r,a)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),o=De.relative(r,i);if(o!==a||o.startsWith("..")||De.isAbsolute(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Co(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:a,root:i,manifestBytes:s,manifest:c})}return n}function UP(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 a={};for(let[i,o]of Object.entries(n)){if(typeof o!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=o.startsWith("workspace:")?r.get(i):o;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");a[i]=s}return Object.fromEntries(Object.entries(a).sort(([i],[o])=>i.localeCompare(o)))}function FP(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 a=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(a===t)return e.subarray(r+512,r+512+i);r+=512+Math.ceil(i/512)*512}}function qP(e,t,r){let n;try{n=TP(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a=FP(n,"package/package.json");if(a===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let i;try{i=JSON.parse(a.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=i.dependencies===void 0?{}:i.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(i.name!==t.name||i.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function BP(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function zP(e,t,r){let n=De.join(await od(De.join(r,"stage-")),"package");await SP(e.root,n,{recursive:!0,filter:i=>De.basename(i)!=="node_modules"});let a=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await $o(De.join(n,"package.json"),`${JSON.stringify({...a,dependencies:t},null,2)}
208
+ `),n}async function JP(e,t,r){let n=UP(e,t.manifest),a=BP(t.manifest,n)?await zP(t,n,r):t.root,i;try{({stdout:i}=await LP("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:a,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o;try{o=JSON.parse(i)}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 Co(De.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=xP.filter(p=>Object.hasOwn(l??{},p));return qP(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:VP(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function hh(e,t){let r=await MP(e,t),n=await od(De.join(await La($P()),"dyyto-local-artifact-pack-"));try{let a=await Promise.all(r.map(o=>JP(r,o,n)));a.sort((o,s)=>(o.artifact.packageName+"@"+o.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let i=ql({artifacts:a.map(o=>o.artifact)});return{packages:r,bundle:i,bytes:new Map(a.map(o=>[o.artifact.assetName,o.bytes]))}}finally{await gh(n,{recursive:!0,force:!0})}}function jo(e,t){return De.join(e,".dyyto","artifact-plans",t+".json")}function WP(e,t){return De.join(e,".dyyto","package-artifacts",t)}async function yh(e){let t=await La(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await hh(t,e.packageRoots),n=e.now??new Date,a=Bl({packageInputs:r.packages.map(i=>({relativeRoot:i.relativeRoot,manifestDigest:y(i.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await mh(De.dirname(jo(t,a.planId)),{recursive:!0}),await $o(jo(t,a.planId),JSON.stringify(a,null,2)+`
209
209
  `,{flag:"wx",mode:384}).catch(async i=>{if(i.code!=="EEXIST")throw i;if(await Co(jo(t,a.planId),"utf8")!==JSON.stringify(a,null,2)+`
210
- `)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),a}async function wh(e){let t=await La(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Co(jo(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Sg(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 a=JP(t,n.bundle.bundleId);if(await DP(a).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let i=await hh(t,n.packageInputs.map(c=>c.relativeRoot));if(i.bundle.bundleId!==n.bundle.bundleId||i.packages.some((c,d)=>y(c.manifestBytes)!==n.packageInputs[d].manifestDigest))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=Oe.dirname(a);await mh(o,{recursive:!0});let s=await od(Oe.join(o,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>$o(Oe.join(s,c.assetName),i.bytes.get(c.assetName),{mode:292}))),await $o(Oe.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
211
- `,{mode:292}),await SP(s,a)}catch(c){throw await gh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:a}}var ir=class extends Error{constructor(r){super(r);this.code=r}code};function Ih(e){let t=[xr(e.bundle),...(e.fallbackBundles??[]).map(xr)],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 ir("LOCAL_ARTIFACT_SOURCE_INVALID");let n=yl({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"}),a=wl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),i=t.flatMap(c=>Dg({bundle:c,registry:n,verifiedAt:e.resolvedAt})),o=new Map(t.flatMap(c=>c.artifacts.map(d=>[`${d.packageName}@${d.version}`,d]))),s=new Map(i.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 ir("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let l of c.packageSources){let p=`${l.packageName}@${l.version}`,f=o.get(p),u=s.get(p);if(!f||!u||l.registryId!==n.registryId||l.version!==f.version||l.integrity!==f.integrity||l.tarballDigest!==f.tarballDigest||l.deliveryReceiptId!==u.receiptId)throw new ir("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let d=Object.freeze(c.packageSources.map(l=>s.get(`${l.packageName}@${l.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([a]),receipts:d,inspections:Object.freeze(c.packageSources.map(l=>{let p=o.get(`${l.packageName}@${l.version}`);return Object.freeze({...l,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as WP,open as GP,readFile as ld,rename as KP,rm as YP,writeFile as HP}from"node:fs/promises";import vn from"node:path";import{resolvePnpmWorkspaceLock as XP}from"./optional-runtime.js";var ZP=y(b({schemaVersion:1,completedRequests:[]}));function vh(e){return y(b({schemaVersion:1,completedRequests:[...e].sort()}))}function dd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function sd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(a=>a==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let a=n+1;a<t.length;){let i=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[a]);if(!i){if(/^\S/u.test(t[a])&&t[a].trim())break;a+=1;continue}let o=[t[a]],s=a+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)o.push(t[s]),s+=1;r.set(dd(i[1]),y(Buffer.from(`${o.join(`
210
+ `)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),a}async function wh(e){let t=await La(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Co(jo(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Sg(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 a=WP(t,n.bundle.bundleId);if(await jP(a).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let i=await hh(t,n.packageInputs.map(c=>c.relativeRoot));if(i.bundle.bundleId!==n.bundle.bundleId||i.packages.some((c,l)=>y(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=De.dirname(a);await mh(o,{recursive:!0});let s=await od(De.join(o,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>$o(De.join(s,c.assetName),i.bytes.get(c.assetName),{mode:292}))),await $o(De.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
211
+ `,{mode:292}),await DP(s,a)}catch(c){throw await gh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:a}}var ir=class extends Error{constructor(r){super(r);this.code=r}code};function Ih(e){let t=[Vr(e.bundle),...(e.fallbackBundles??[]).map(Vr)],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 ir("LOCAL_ARTIFACT_SOURCE_INVALID");let n=yl({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"}),a=wl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),i=t.flatMap(c=>Dg({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(i.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 ir("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 ir("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([a]),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 GP,open as KP,readFile as ld,rename as YP,rm as HP,writeFile as XP}from"node:fs/promises";import vn from"node:path";import{resolvePnpmWorkspaceLock as ZP}from"./optional-runtime.js";var QP=y(b({schemaVersion:1,completedRequests:[]}));function vh(e){return y(b({schemaVersion:1,completedRequests:[...e].sort()}))}function dd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function sd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(a=>a==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let a=n+1;a<t.length;){let i=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[a]);if(!i){if(/^\S/u.test(t[a])&&t[a].trim())break;a+=1;continue}let o=[t[a]],s=a+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)o.push(t[s]),s+=1;r.set(dd(i[1]),y(Buffer.from(`${o.join(`
212
212
  `)}
213
213
  `))),a=s}return r}function cd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(i=>i===`${t}:`),a=[];if(n<0)return a;for(let i=n+1;i<r.length&&!(/^\S/u.test(r[i])&&r[i].trim());){let o=/^ (.+):\s*$/u.exec(r[i]);if(!o){i+=1;continue}let s=[r[i]],c=i+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;a.push({key:dd(o[1]),bytes:Buffer.from(`${s.join(`
214
214
  `)}
215
- `)}),i=c}return a}function QP(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 e0(e,t,r){let n=new Map(cd(e,"snapshots").map(a=>[a.key,a.bytes]));return cd(e,"packages").map(a=>{let i=QP(a.key),o=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(a.bytes).toString("utf8"));if(!i||!o)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=dd(o[1]),c=t.find(p=>p.packageName===i.packageName&&p.version===i.version),d=c?.registryId??r.find(p=>p.scopes.some(f=>i.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",l=n.get(a.key);return{identity:a.key,packageName:i.packageName,version:i.version,integrity:s,registryId:d,managed:c!==void 0,edgesDigest:y(l??b({dependencies:[]}))}}).sort((a,i)=>a.identity.localeCompare(i.identity))}function bh(e={}){return async t=>{let r=await XP({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:vn.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=sd(t.currentLockfile),a=sd(r.lockfile),i=await Wi(t.topology.transactionRoot),o=new Map(i.map(p=>[p.relativeRoot,p.bytes])),s=await ld(vn.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=[...a].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(b({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),d=e0(r.lockfile,t.sources,t.registryConfigs),l=cd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:d,snapshotClosureDigest:y(b(l.map(p=>({identity:p.key,digest:y(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:y(b({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:y(b({desiredLockDigest:y(r.lockfile),packageFacts:d.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function t0(e){try{let t=JSON.parse(await ld(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==vh(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:ZP,completedRequests:Object.freeze([])};throw t}}function kh(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=vo(JSON.parse(await ld(vn.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 i=[...sd(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=Ia({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:i.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),d=`pnpm11-node24-${y(b({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 WP(e.stateRoot,{recursive:!0});let l=vn.join(e.stateRoot,`${d.slice(7)}.lease`),p;try{p=await GP(l,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=vn.join(e.stateRoot,"state.json"),u=await t0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:d}),g=[...new Set([...u.completedRequests,s])].sort(),h=vh(g),w=gm({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:d,preimageRevision:u.revision,desiredRevision:h,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),_=vn.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await HP(_,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
216
- `,{mode:384}),await KP(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:i}}finally{await p.close(),await YP(l,{force:!0})}}}}import{execFile as r0}from"node:child_process";import{mkdir as bn,mkdtemp as n0,readFile as bt,readdir as a0,readlink as i0,realpath as ud,rename as o0,rm as Rh,stat as s0,writeFile as Vr}from"node:fs/promises";import{tmpdir as c0}from"node:os";import se from"node:path";import{promisify as l0}from"node:util";var d0=l0(r0);function _h(e,t){return se.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Ah(e){return se.join(e,".dyyto","resolution-worker")}function pd(e){return se.join(Ah(e),"build-receipt.json")}async function p0(e){let t=[];async function r(n){for(let a of await a0(n,{withFileTypes:!0}).catch(i=>i.code==="ENOENT"?[]:Promise.reject(i))){let i=se.join(n,a.name);if(a.isSymbolicLink()){let o=await i0(i);t.push({path:se.relative(e,i),digest:y(b({symlink:o})),bytes:0})}else if(a.isDirectory())await r(i);else if(a.isFile()){let o=await bt(i);t.push({path:se.relative(e,i),digest:y(o),bytes:o.byteLength})}}}return await r(e),t.sort((n,a)=>n.path.localeCompare(a.path)),{cacheDigest:y(b(t)),cacheBytes:t.reduce((n,a)=>n+a.bytes,0)}}function Eh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await n0(se.join(await ud(c0()),"dyyto-resolution-warmup-")),n=se.join(r,".home");await bn(n);try{await Vr(se.join(r,"pnpm-workspace.yaml"),await bt(se.join(e,"pnpm-workspace.yaml"))),await Vr(se.join(r,"pnpm-lock.yaml"),await bt(se.join(e,"pnpm-lock.yaml")));let a=await bt(se.join(e,"package.json")).catch(l=>l.code==="ENOENT"?void 0:Promise.reject(l));a&&await Vr(se.join(r,"package.json"),a);for(let l of await Wi(e)){let p=se.join(r,...l.relativeRoot.split("/"));await bn(p,{recursive:!0}),await Vr(se.join(p,"package.json"),l.bytes)}let i=se.join(n,"userconfig.npmrc");await Vr(i,`ignore-scripts=true
215
+ `)}),i=c}return a}function e0(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 t0(e,t,r){let n=new Map(cd(e,"snapshots").map(a=>[a.key,a.bytes]));return cd(e,"packages").map(a=>{let i=e0(a.key),o=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(a.bytes).toString("utf8"));if(!i||!o)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=dd(o[1]),c=t.find(p=>p.packageName===i.packageName&&p.version===i.version),l=c?.registryId??r.find(p=>p.scopes.some(f=>i.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",d=n.get(a.key);return{identity:a.key,packageName:i.packageName,version:i.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:y(d??b({dependencies:[]}))}}).sort((a,i)=>a.identity.localeCompare(i.identity))}function bh(e={}){return async t=>{let r=await ZP({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:vn.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=sd(t.currentLockfile),a=sd(r.lockfile),i=await Wi(t.topology.transactionRoot),o=new Map(i.map(p=>[p.relativeRoot,p.bytes])),s=await ld(vn.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=[...a].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(b({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=t0(r.lockfile,t.sources,t.registryConfigs),d=cd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:y(b(d.map(p=>({identity:p.key,digest:y(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:y(b({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:y(b({desiredLockDigest:y(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function r0(e){try{let t=JSON.parse(await ld(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==vh(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:QP,completedRequests:Object.freeze([])};throw t}}function kh(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=vo(JSON.parse(await ld(vn.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 i=[...sd(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=Ia({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:i.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),l=`pnpm11-node24-${y(b({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 GP(e.stateRoot,{recursive:!0});let d=vn.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await KP(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=vn.join(e.stateRoot,"state.json"),u=await r0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),h=vh(g),w=gm({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}),_=vn.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await XP(_,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
216
+ `,{mode:384}),await YP(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:i}}finally{await p.close(),await HP(d,{force:!0})}}}}import{execFile as n0}from"node:child_process";import{mkdir as bn,mkdtemp as a0,readFile as bt,readdir as i0,readlink as o0,realpath as ud,rename as s0,rm as Rh,stat as c0,writeFile as Mr}from"node:fs/promises";import{tmpdir as l0}from"node:os";import se from"node:path";import{promisify as d0}from"node:util";var p0=d0(n0);function _h(e,t){return se.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Ah(e){return se.join(e,".dyyto","resolution-worker")}function pd(e){return se.join(Ah(e),"build-receipt.json")}async function u0(e){let t=[];async function r(n){for(let a of await i0(n,{withFileTypes:!0}).catch(i=>i.code==="ENOENT"?[]:Promise.reject(i))){let i=se.join(n,a.name);if(a.isSymbolicLink()){let o=await o0(i);t.push({path:se.relative(e,i),digest:y(b({symlink:o})),bytes:0})}else if(a.isDirectory())await r(i);else if(a.isFile()){let o=await bt(i);t.push({path:se.relative(e,i),digest:y(o),bytes:o.byteLength})}}}return await r(e),t.sort((n,a)=>n.path.localeCompare(a.path)),{cacheDigest:y(b(t)),cacheBytes:t.reduce((n,a)=>n+a.bytes,0)}}function Eh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await a0(se.join(await ud(l0()),"dyyto-resolution-warmup-")),n=se.join(r,".home");await bn(n);try{await Mr(se.join(r,"pnpm-workspace.yaml"),await bt(se.join(e,"pnpm-workspace.yaml"))),await Mr(se.join(r,"pnpm-lock.yaml"),await bt(se.join(e,"pnpm-lock.yaml")));let a=await bt(se.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));a&&await Mr(se.join(r,"package.json"),a);for(let d of await Wi(e)){let p=se.join(r,...d.relativeRoot.split("/"));await bn(p,{recursive:!0}),await Mr(se.join(p,"package.json"),d.bytes)}let i=se.join(n,"userconfig.npmrc");await Mr(i,`ignore-scripts=true
217
217
  strict-peer-dependencies=true
218
218
  manage-package-manager-versions=false
219
- `,{mode:384});let o=se.join(t,"store","shared"),s=se.join(t,"cache");await bn(o,{recursive:!0}),await bn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],d=await d0("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:i,pnpm_config_store_dir:o},timeout:9e5,maxBuffer:8*1024*1024});return{...await p0(t),commandDigest:y(b({executable:"corepack",args:c,stdoutDigest:y(d.stdout),stderrDigest:y(d.stderr)}))}}finally{await Rh(r,{recursive:!0,force:!0})}}}async function Ph(e){let t=await ud(e.workspaceRoot),r=e.now??new Date,[n,a]=await Promise.all([bt(se.join(t,"pnpm-workspace.yaml")),bt(se.join(t,"pnpm-lock.yaml"))]),i=y(b({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),o=zl({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n),rootLockDigest:y(a),cacheNamespace:`pnpm11-node24-${i.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=_h(t,o.planId);await bn(se.dirname(s),{recursive:!0});let c=`${JSON.stringify(o,null,2)}
220
- `;return await Vr(s,c,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await bt(s,"utf8")!==c)throw d}),o}async function Nh(e){let t=await ud(e.workspaceRoot),r=$g(JSON.parse(await bt(_h(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new ze("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,a]=await Promise.all([bt(se.join(t,"pnpm-workspace.yaml")),bt(se.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(a)!==r.rootLockDigest)throw new ze("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let i=Ah(t),o=await bt(pd(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(o)return vo(JSON.parse(o));await bn(i,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:i,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new ze("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=Jl({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()}),d=se.join(i,`build-receipt.${r.planId.slice(7)}.tmp`);return await Vr(d,`${JSON.stringify(c,null,2)}
221
- `,{mode:384}),await o0(d,pd(t)),c}catch(s){throw await s0(pd(t)).then(()=>!0).catch(()=>!1)||await Rh(se.join(i,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as u0,readFile as Mr,realpath as Oh,writeFile as f0}from"node:fs/promises";import Ur from"node:path";function Sh(e,t){return Ur.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Dh(e){let t=await Oh(e.projectRoot),r=await Tt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Mr(Ur.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Mr(Ur.join(t,".dyyto","plans",`${n.planId}.json`));let a=JSON.parse(await Mr(Ur.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(a.state!=="recovery-required"&&a.state!=="recovering"||!Array.isArray(a.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let i=[];for(let l of a.operations){if(l.before.kind!=="present"||!l.before.preimageDigest)continue;let p=await Mr(Ur.join(r.transactionRoot,...l.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=y(p);f!==l.before.digest&&f!==l.desiredDigest&&i.push({path:l.path,currentDigest:f,preimageDigest:l.before.preimageDigest})}let o=e.now??new Date,s=Gl({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:i,generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+30*6e4).toISOString()}),c=Sh(t,s.planId);await u0(Ur.dirname(c),{recursive:!0});let d=`${JSON.stringify(s,null,2)}
222
- `;return await f0(c,d,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await Mr(c,"utf8")!==d)throw l}),s}async function jh(e){let t=await Oh(e.projectRoot),r=await Tt(t),n=Cg(JSON.parse(await Mr(Sh(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 a of n.conflicts){let i=await Mr(Ur.join(r.transactionRoot,...a.path.split("/")));if(y(i)!==a.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return Zc({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:a,currentDigest:i})=>({path:a,currentDigest:i}))})}function To(e){return e.endsWith(`
219
+ `,{mode:384});let o=se.join(t,"store","shared"),s=se.join(t,"cache");await bn(o,{recursive:!0}),await bn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await p0("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:i,pnpm_config_store_dir:o},timeout:9e5,maxBuffer:8*1024*1024});return{...await u0(t),commandDigest:y(b({executable:"corepack",args:c,stdoutDigest:y(l.stdout),stderrDigest:y(l.stderr)}))}}finally{await Rh(r,{recursive:!0,force:!0})}}}async function Ph(e){let t=await ud(e.workspaceRoot),r=e.now??new Date,[n,a]=await Promise.all([bt(se.join(t,"pnpm-workspace.yaml")),bt(se.join(t,"pnpm-lock.yaml"))]),i=y(b({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),o=zl({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n),rootLockDigest:y(a),cacheNamespace:`pnpm11-node24-${i.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=_h(t,o.planId);await bn(se.dirname(s),{recursive:!0});let c=`${JSON.stringify(o,null,2)}
220
+ `;return await Mr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await bt(s,"utf8")!==c)throw l}),o}async function Nh(e){let t=await ud(e.workspaceRoot),r=$g(JSON.parse(await bt(_h(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Je("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,a]=await Promise.all([bt(se.join(t,"pnpm-workspace.yaml")),bt(se.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(a)!==r.rootLockDigest)throw new Je("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let i=Ah(t),o=await bt(pd(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(o)return vo(JSON.parse(o));await bn(i,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:i,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Je("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=Jl({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=se.join(i,`build-receipt.${r.planId.slice(7)}.tmp`);return await Mr(l,`${JSON.stringify(c,null,2)}
221
+ `,{mode:384}),await s0(l,pd(t)),c}catch(s){throw await c0(pd(t)).then(()=>!0).catch(()=>!1)||await Rh(se.join(i,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as f0,readFile as Ur,realpath as Oh,writeFile as m0}from"node:fs/promises";import Fr from"node:path";function Sh(e,t){return Fr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Dh(e){let t=await Oh(e.projectRoot),r=await Tt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Ur(Fr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Ur(Fr.join(t,".dyyto","plans",`${n.planId}.json`));let a=JSON.parse(await Ur(Fr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(a.state!=="recovery-required"&&a.state!=="recovering"||!Array.isArray(a.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let i=[];for(let d of a.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await Ur(Fr.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&&i.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let o=e.now??new Date,s=Gl({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:i,generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+30*6e4).toISOString()}),c=Sh(t,s.planId);await f0(Fr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
222
+ `;return await m0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Ur(c,"utf8")!==l)throw d}),s}async function jh(e){let t=await Oh(e.projectRoot),r=await Tt(t),n=Cg(JSON.parse(await Ur(Sh(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 a of n.conflicts){let i=await Ur(Fr.join(r.transactionRoot,...a.path.split("/")));if(y(i)!==a.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return Zc({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:a,currentDigest:i})=>({path:a,currentDigest:i}))})}function To(e){return e.endsWith(`
223
223
  `)?e:`${e}
224
224
  `}function $h(e,t,r){return t==="json"?{stdout:To(JSON.stringify(e)),stderr:""}:{stdout:To(r),stderr:""}}function Ch(e,t){if(t==="json")return{stdout:"",stderr:To(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
225
- Next: ${e.error.nextStep}`;return{stdout:"",stderr:To(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as m0,readFile as Va,realpath as Th}from"node:fs/promises";import Le from"node:path";var st=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function xa(e){let t=await m0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return Va(e)}}async function Lh(e){let t=Le.dirname(e);for(;t!==Le.parse(t).root;){if(await xa(Le.join(t,"pnpm-workspace.yaml"))&&await xa(Le.join(t,"pnpm-lock.yaml"))&&await xa(Le.join(t,"project-capabilities.json")))return t;t=Le.dirname(t)}throw new st("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function g0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function xh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),a=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();a&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
225
+ Next: ${e.error.nextStep}`;return{stdout:"",stderr:To(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as g0,readFile as Va,realpath as Th}from"node:fs/promises";import xe from"node:path";var st=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function xa(e){let t=await g0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return Va(e)}}async function Lh(e){let t=xe.dirname(e);for(;t!==xe.parse(t).root;){if(await xa(xe.join(t,"pnpm-workspace.yaml"))&&await xa(xe.join(t,"pnpm-lock.yaml"))&&await xa(xe.join(t,"project-capabilities.json")))return t;t=xe.dirname(t)}throw new st("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function h0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function xh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),a=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();a&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
226
226
  `)?"":`
227
227
  `}verifyDepsBeforeRun: ${a}
228
- `);let i=n.split(/\r?\n/u),o=[],s=!1;for(let d of i){if(/^allowBuilds:\s*$/u.test(d)){s=!0;continue}if(s&&/^ ['"]?[^'"\s][^:]*['"]?:\s*true\s*$/u.test(d)){o.push(d.trim());continue}s&&d.trim()&&!/^\s/u.test(d)&&(s=!1)}let c=o.filter(d=>!r.split(/\r?\n/u).some(l=>l.trim()===d));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
228
+ `);let i=n.split(/\r?\n/u),o=[],s=!1;for(let l of i){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(`
229
229
  `)?"":`
230
230
  `}allowBuilds:
231
- ${c.map(d=>` ${d}`).join(`
231
+ ${c.map(l=>` ${l}`).join(`
232
232
  `)}
233
- `;else{let d=r.split(/\r?\n/u),p=d.findIndex(f=>/^allowBuilds:\s*$/u.test(f))+1;for(;p<d.length&&(!d[p].trim()||/^\s/u.test(d[p]));)p+=1;d.splice(p,0,...c.map(f=>` ${f}`)),r=d.join(`
233
+ `;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(`
234
234
  `)}return Buffer.from(r.endsWith(`
235
235
  `)?r:`${r}
236
- `)}async function Vh(e){let t=await Th(Le.resolve(e.projectRoot)),r=await Lh(t),n=Le.relative(r,t).split(Le.sep).join("/");if(!n||n.startsWith("../"))throw new st("WORKSPACE_TOPOLOGY_OWNER_MISSING");let a=await xa(Le.join(t,"pnpm-lock.yaml")),i=await xa(Le.join(t,"pnpm-workspace.yaml"));if(!a&&!i)throw new st("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let o=await Va(Le.join(r,"pnpm-lock.yaml")),s=await Va(Le.join(r,"pnpm-workspace.yaml"));if(!g0(o.toString("utf8"),n))throw new st("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(i&&!/^packages:\s*\[\]/mu.test(i.toString("utf8")))throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=i?xh(s,i):s,d=[...y(c)!==y(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(s),desiredDigest:y(c)}]:[],...a?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(a)}]:[],...i?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(i)}]:[]],l=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(l)+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:d,observedAssets:d.map(m=>({path:m.path,exists:!0,digest:m.baseDigest})),generatedAt:l,expiresAt:p});return{plan:await Ct({projectRoot:t,transactionRoot:r,plan:f,now:l}),transactionRoot:r}}async function Mh(e){let t=await Th(Le.resolve(e.projectRoot)),r=await Lh(t),n=await Pr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let a=new Map,i=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(i){let c=await Va(Le.join(t,"pnpm-workspace.yaml")),d=await Va(Le.join(r,"pnpm-workspace.yaml")),l=xh(d,c);if(y(l)!==i.desiredDigest)throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");a.set("pnpm-workspace.yaml",l)}let o=await Qt({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:a,now:e.now??new Date().toISOString()}),s=await er(o);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as h0}from"node:readline";import Lo from"node:process";var y0=[{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 fd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xo(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Ma(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function w0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return xo(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:Rn},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 xo(r,{tools:y0});if(e.method!=="tools/call")return Ma(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!fd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!fd(e.params.arguments))return Ma(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let a;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");a=await _o({...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");a=await Ao({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Ma(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return xo(r,{content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a})}catch(a){let i=a instanceof Error?a.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return xo(r,{isError:!0,content:[{type:"text",text:i}]})}}async function Uh(){let e=h0({input:Lo.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let a=JSON.parse(t);if(!fd(a)||a.jsonrpc!=="2.0"||typeof a.method!="string"){Lo.stdout.write(`${JSON.stringify(Ma(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
236
+ `)}async function Vh(e){let t=await Th(xe.resolve(e.projectRoot)),r=await Lh(t),n=xe.relative(r,t).split(xe.sep).join("/");if(!n||n.startsWith("../"))throw new st("WORKSPACE_TOPOLOGY_OWNER_MISSING");let a=await xa(xe.join(t,"pnpm-lock.yaml")),i=await xa(xe.join(t,"pnpm-workspace.yaml"));if(!a&&!i)throw new st("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let o=await Va(xe.join(r,"pnpm-lock.yaml")),s=await Va(xe.join(r,"pnpm-workspace.yaml"));if(!h0(o.toString("utf8"),n))throw new st("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(i&&!/^packages:\s*\[\]/mu.test(i.toString("utf8")))throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=i?xh(s,i):s,l=[...y(c)!==y(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(s),desiredDigest:y(c)}]:[],...a?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(a)}]:[],...i?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(i)}]:[]],d=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(d)+30*6e4).toISOString(),f=Pe({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 Ct({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function Mh(e){let t=await Th(xe.resolve(e.projectRoot)),r=await Lh(t),n=await Pr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let a=new Map,i=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(i){let c=await Va(xe.join(t,"pnpm-workspace.yaml")),l=await Va(xe.join(r,"pnpm-workspace.yaml")),d=xh(l,c);if(y(d)!==i.desiredDigest)throw new st("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");a.set("pnpm-workspace.yaml",d)}let o=await Qt({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:a,now:e.now??new Date().toISOString()}),s=await er(o);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as y0}from"node:readline";import Lo from"node:process";var w0=[{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 fd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xo(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Ma(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function I0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return xo(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:Rn},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 xo(r,{tools:w0});if(e.method!=="tools/call")return Ma(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!fd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!fd(e.params.arguments))return Ma(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let a;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");a=await _o({...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");a=await Ao({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Ma(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return xo(r,{content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a})}catch(a){let i=a instanceof Error?a.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return xo(r,{isError:!0,content:[{type:"text",text:i}]})}}async function Uh(){let e=y0({input:Lo.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let a=JSON.parse(t);if(!fd(a)||a.jsonrpc!=="2.0"||typeof a.method!="string"){Lo.stdout.write(`${JSON.stringify(Ma(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
237
237
  `);continue}r=a}catch{Lo.stdout.write(`${JSON.stringify(Ma(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
238
- `);continue}let n=await w0(r);n!==null&&Lo.stdout.write(`${JSON.stringify(n)}
239
- `)}}function ct(e){e.stdout.length>0&&lt.stdout.write(e.stdout),e.stderr.length>0&&lt.stderr.write(e.stderr)}async function I0(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),a=e[n+1],i=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||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a)||i.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new L({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 d=await Ta(kn.resolve(r,".dyyto","package-artifacts",a)),l=await Promise.all(i.map(p=>Ta(kn.resolve(r,".dyyto","package-artifacts",p))));if(d.bundle.bundleId!==a)throw new ir("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Ih({bundle:d.bundle,fallbackBundles:l.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:kh({stateRoot:kn.resolve(r,".dyyto","resolution-worker"),engine:bh()}),packageStoreRoot:kn.resolve(r,".dyyto","resolution-worker","store")}}async function WC(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new L({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 Uh();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],d=e[s+1];if(c===void 0||d===void 0||!n.has(c)||d.startsWith("--"))throw new L({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 a=e.indexOf("--output");if(a<0||e[a+1]!=="-")throw new L({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 i=e.indexOf("--generated-at"),o=i<0?new Date().toISOString():e[i+1];lt.stdout.write(Hg(await Yg({generatedAt:o})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),a=e[n+1];if(n<0||!a)throw new L({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 i=await Vh({projectRoot:a});ct({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:i})}
238
+ `);continue}let n=await I0(r);n!==null&&Lo.stdout.write(`${JSON.stringify(n)}
239
+ `)}}function ct(e){e.stdout.length>0&&lt.stdout.write(e.stdout),e.stderr.length>0&&lt.stderr.write(e.stderr)}async function v0(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),a=e[n+1],i=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||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a)||i.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new L({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 Ta(kn.resolve(r,".dyyto","package-artifacts",a)),d=await Promise.all(i.map(p=>Ta(kn.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==a)throw new ir("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Ih({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:kh({stateRoot:kn.resolve(r,".dyyto","resolution-worker"),engine:bh()}),packageStoreRoot:kn.resolve(r,".dyyto","resolution-worker","store")}}async function GC(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new L({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 Uh();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 L({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 a=e.indexOf("--output");if(a<0||e[a+1]!=="-")throw new L({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 i=e.indexOf("--generated-at"),o=i<0?new Date().toISOString():e[i+1];lt.stdout.write(Hg(await Yg({generatedAt:o})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),a=e[n+1];if(n<0||!a)throw new L({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 i=await Vh({projectRoot:a});ct({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:i})}
240
240
  `:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${i.plan.planId}
241
241
  \u72B6\u6001\uFF1A${i.plan.state}
242
242
  Next\uFF1Adyyto topology apply --project ${a} --approve ${i.plan.planId}
@@ -264,13 +264,13 @@ Next\uFF1Adyyto artifacts apply --workspace ${a} --approve ${o.planId}
264
264
  `:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
265
265
  Channel\uFF1Adevelopment
266
266
  Next\uFF1Adyyto artifacts serve --workspace ${a} --bundle ${s.bundleId} --port 4873
267
- `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),a=e[n+1],i=e.indexOf("--bundle"),o=e[i+1],s=e.flatMap((f,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),d=Number(e[c+1]);if(n<0||a===void 0||i<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(d)||d<1||d>65535)throw new L({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 l=await fh({bundleRoot:kn.resolve(a,".dyyto","package-artifacts",o),fallbackBundleRoots:s.map(f=>kn.resolve(a,".dyyto","package-artifacts",f)),port:d});ct({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:l.origin,bundleId:l.bundle.bundleId,fallbackBundleIds:l.fallbackBundles.map(f=>f.bundleId),channel:"development"}})}
268
- `:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${l.origin}
269
- \u4E3B Bundle\uFF1A${l.bundle.bundleId}
270
- Fallback Bundles\uFF1A${l.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
267
+ `,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),a=e[n+1],i=e.indexOf("--bundle"),o=e[i+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||a===void 0||i<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 L({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 fh({bundleRoot:kn.resolve(a,".dyyto","package-artifacts",o),fallbackBundleRoots:s.map(f=>kn.resolve(a,".dyyto","package-artifacts",f)),port:l});ct({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"}})}
268
+ `:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
269
+ \u4E3B Bundle\uFF1A${d.bundle.bundleId}
270
+ Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
271
271
  Channel\uFF1Adevelopment
272
- `,stderr:""});let p=async()=>{await l.close(),lt.exit(0)};lt.once("SIGINT",p),lt.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),a=e[n+1];if(n<0||a===void 0)throw new L({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let i=e.indexOf("--port"),o=i<0?void 0:Number(e[i+1]);if(o!==void 0&&(!Number.isSafeInteger(o)||o<1||o>65535))throw new L({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await lh({workspaceRoot:a,...o===void 0?{}:{port:o}});ct({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
272
+ `,stderr:""});let p=async()=>{await d.close(),lt.exit(0)};lt.once("SIGINT",p),lt.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),a=e[n+1];if(n<0||a===void 0)throw new L({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let i=e.indexOf("--port"),o=i<0?void 0:Number(e[i+1]);if(o!==void 0&&(!Number.isSafeInteger(o)||o<1||o>65535))throw new L({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await lh({workspaceRoot:a,...o===void 0?{}:{port:o}});ct({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
273
273
  `:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
274
- `,stderr:""});let c=async()=>{await s.close(),lt.exit(0)};lt.once("SIGINT",c),lt.once("SIGTERM",c),await new Promise(()=>{})}let r=await ch(e,await I0(e));ct($h(r.value,r.outputMode,r.human))}catch(r){if(lt.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;lt.stderr.write(`${r.stack??r.message}${s.map(d=>`
275
- Cause: ${d}`).join("")}
276
- `)}let n=r;if(r instanceof Ie)n=new L({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof j)n=new L({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 L({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof ye)n=new L({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 Y||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new L({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 Te)n=new L({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 L({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 ir)n=new L({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 ze)n=new L({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 be)n=new L({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 st)n=new L({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 L({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 D){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 L({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 a=md(n),i=n instanceof L?n:a===null?null:new L(a),o={schemaVersion:1,ok:!1,error:{code:i?.code??"CLI_INTERNAL_ERROR",message:i?.message??"The CLI could not complete the command.",...i?.nextStep===void 0?{}:{nextStep:i.nextStep}}};ct(Ch(o,t)),lt.exitCode=i?.exitCode??1}}export{WC as runCommand};
274
+ `,stderr:""});let c=async()=>{await s.close(),lt.exit(0)};lt.once("SIGINT",c),lt.once("SIGTERM",c),await new Promise(()=>{})}let r=await ch(e,await v0(e));ct($h(r.value,r.outputMode,r.human))}catch(r){if(lt.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;lt.stderr.write(`${r.stack??r.message}${s.map(l=>`
275
+ Cause: ${l}`).join("")}
276
+ `)}let n=r;if(r instanceof be)n=new L({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof j)n=new L({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 L({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof we)n=new L({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 Y||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new L({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 Le)n=new L({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 L({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 ir)n=new L({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 Je)n=new L({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 Re)n=new L({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 st)n=new L({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 L({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 D){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 L({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 a=md(n),i=n instanceof L?n:a===null?null:new L(a),o={schemaVersion:1,ok:!1,error:{code:i?.code??"CLI_INTERNAL_ERROR",message:i?.message??"The CLI could not complete the command.",...i?.nextStep===void 0?{}:{nextStep:i.nextStep}}};ct(Ch(o,t)),lt.exitCode=i?.exitCode??1}}export{GC as runCommand};