@aipt/cli 0.1.24 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -7
- package/dist/application-runner.js +177 -169
- package/dist/application.js +3 -1
- package/dist/chunk.js +4 -2
- package/dist/package-releases/aipt--cli/0.1.24/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.25/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.26/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.2/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.3/release.json +31 -0
- package/docs/bootstrap.md +1 -1
- package/docs/engineering-workflow.md +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/vibe-coding-guide.md +2 -2
- package/documentation-manifest.json +5 -5
- package/package.json +6 -4
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
import{a as E,b as Kr,c as On,d as Od,e as T,f as Sd,g as Dd,h as jd,i as $d,j as Cd}from"./chunk.js";var jn=E(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.regexpCode=K.getEsmExportName=K.getProperty=K.safeStringify=K.stringify=K.strConcat=K.addCodeArg=K.str=K._=K.nil=K._Code=K.Name=K.IDENTIFIER=K._CodeOrName=void 0;var Sn=class{};K._CodeOrName=Sn;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var ur=class extends Sn{constructor(t){if(super(),!K.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};K.Name=ur;var nt=class extends Sn{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof ur&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=nt;K.nil=new nt("");function Td(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Ya(r,t[n]),r.push(e[++n]);return new nt(r)}K._=Td;var Ka=new nt("+");function Ld(e,...t){let r=[Dn(e[0])],n=0;for(;n<t.length;)r.push(Ka),Ya(r,t[n]),r.push(Ka,Dn(e[++n]));return dy(r),new nt(r)}K.str=Ld;function Ya(e,t){t instanceof nt?e.push(...t._items):t instanceof ur?e.push(t):e.push(fy(t))}K.addCodeArg=Ya;function dy(e){let t=1;for(;t<e.length-1;){if(e[t]===Ka){let r=py(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function py(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof ur||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof ur))return`"${e}${t.slice(1)}`}function uy(e,t){return t.emptyStr()?e:e.emptyStr()?t:Ld`${e}${t}`}K.strConcat=uy;function fy(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Dn(Array.isArray(e)?e.join(","):e)}function my(e){return new nt(Dn(e))}K.stringify=my;function Dn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=Dn;function gy(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new nt(`.${e}`):Td`[${e}]`}K.getProperty=gy;function hy(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new nt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=hy;function yy(e){return new nt(e.toString())}K.regexpCode=yy});var Za=E(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.ValueScope=Je.ValueScopeName=Je.Scope=Je.varKinds=Je.UsedValueState=void 0;var ze=jn(),Ha=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ko;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ko||(Je.UsedValueState=Ko={}));Je.varKinds={const:new ze.Name("const"),let:new ze.Name("let"),var:new ze.Name("var")};var Yo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof ze.Name?t:this.name(t)}name(t){return new ze.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}}};Je.Scope=Yo;var Ho=class extends ze.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,ze._)`.${new ze.Name(r)}[${n}]`}};Je.ValueScopeName=Ho;var wy=(0,ze._)`\n`,Xa=class extends Yo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?wy:ze.nil}}get(){return this._scope}name(t){return new Ho(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:i}=o,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let d=s.get(a);if(d)return d}else s=this._values[i]=new Map;s.set(a,o);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,o.setValue(r,{property:i,itemIndex:l}),o}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,ze._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(t,r,n={},o){let i=ze.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,Ko.Started);let d=r(l);if(d){let p=this.opts.es5?Je.varKinds.var:Je.varKinds.const;i=(0,ze._)`${i}${p} ${l} = ${d};${this.opts._n}`}else if(d=o?.(l))i=(0,ze._)`${i}${d}${this.opts._n}`;else throw new Ha(l);c.set(l,Ko.Completed)})}return i}};Je.ValueScope=Xa});var x=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.or=U.and=U.not=U.CodeGen=U.operators=U.varKinds=U.ValueScopeName=U.ValueScope=U.Scope=U.Name=U.regexpCode=U.stringify=U.getProperty=U.nil=U.strConcat=U.str=U._=void 0;var B=jn(),mt=Za(),Wt=jn();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Wt._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Wt.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Wt.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Wt.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Wt.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Wt.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Wt.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Wt.Name}});var ei=Za();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return ei.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return ei.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return ei.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return ei.varKinds}});U.operators={GT:new B._Code(">"),GTE:new B._Code(">="),LT:new B._Code("<"),LTE:new B._Code("<="),EQ:new B._Code("==="),NEQ:new B._Code("!=="),NOT:new B._Code("!"),OR:new B._Code("||"),AND:new B._Code("&&"),ADD:new B._Code("+")};var $t=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Qa=class extends $t{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?mt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Hr(this.rhs,t,r)),this}get names(){return this.rhs instanceof B._CodeOrName?this.rhs.names:{}}},Xo=class extends $t{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof B.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Hr(this.rhs,t,r),this}get names(){let t=this.lhs instanceof B.Name?{}:{...this.lhs.names};return Qo(t,this.rhs)}},es=class extends Xo{constructor(t,r,n,o){super(t,n,o),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ts=class extends $t{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},rs=class extends $t{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ns=class extends $t{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},os=class extends $t{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=Hr(this.code,t,r),this}get names(){return this.code instanceof B._CodeOrName?this.code.names:{}}},$n=class extends $t{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(t,r)||(Iy(t,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>gr(t,r.names),{})}},Ct=class extends $n{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},is=class extends $n{},Yr=class extends Ct{};Yr.kind="else";var fr=class e extends Ct{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Yr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(xd(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=Hr(this.condition,t,r),this}get names(){let t=super.names;return Qo(t,this.condition),this.else&&gr(t,this.else.names),t}};fr.kind="if";var mr=class extends Ct{};mr.kind="for";var as=class extends mr{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=Hr(this.iteration,t,r),this}get names(){return gr(super.names,this.iteration.names)}},ss=class extends mr{constructor(t,r,n,o){super(),this.varKind=t,this.name=r,this.from=n,this.to=o}render(t){let r=t.es5?mt.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(t)}get names(){let t=Qo(super.names,this.from);return Qo(t,this.to)}},Zo=class extends mr{constructor(t,r,n,o){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=Hr(this.iterable,t,r),this}get names(){return gr(super.names,this.iterable.names)}},Cn=class extends Ct{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Cn.kind="func";var Tn=class extends $n{render(t){return"return "+super.render(t)}};Tn.kind="return";var cs=class extends Ct{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,o;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(o=this.finally)===null||o===void 0||o.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&gr(t,this.catch.names),this.finally&&gr(t,this.finally.names),t}},Ln=class extends Ct{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Ln.kind="catch";var xn=class extends Ct{render(t){return"finally"+super.render(t)}};xn.kind="finally";var ls=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=t,this._scope=new mt.Scope({parent:t}),this._nodes=[new is]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new Qa(t,i,n)),i}const(t,r,n){return this._def(mt.varKinds.const,t,r,n)}let(t,r,n){return this._def(mt.varKinds.let,t,r,n)}var(t,r,n){return this._def(mt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Xo(t,r,n))}add(t,r){return this._leafNode(new es(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new os(t)),this}object(...t){let r=["{"];for(let[n,o]of t)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,B.addCodeArg)(r,o));return r.push("}"),new B._Code(r)}if(t,r,n){if(this._blockNode(new fr(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new fr(t))}else(){return this._elseNode(new Yr)}endIf(){return this._endBlockNode(fr,Yr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new as(t),r)}forRange(t,r,n,o,i=this.opts.es5?mt.varKinds.var:mt.varKinds.let){let a=this._scope.toName(t);return this._for(new ss(i,a,r,n),()=>o(a))}forOf(t,r,n,o=mt.varKinds.const){let i=this._scope.toName(t);if(this.opts.es5){let a=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${a}.length`,s=>{this.var(i,(0,B._)`${a}[${s}]`),n(i)})}return this._for(new Zo("of",o,i,r),()=>n(i))}forIn(t,r,n,o=this.opts.es5?mt.varKinds.var:mt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,B._)`Object.keys(${r})`,n);let i=this._scope.toName(t);return this._for(new Zo("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(mr)}label(t){return this._leafNode(new ts(t))}break(t){return this._leafNode(new rs(t))}return(t){let r=new Tn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Tn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new cs;if(this._blockNode(o),this.code(t),r){let i=this.name("e");this._currNode=o.catch=new Ln(i),r(i)}return n&&(this._currNode=o.finally=new xn,this.code(n)),this._endBlockNode(Ln,xn)}throw(t){return this._leafNode(new ns(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=B.nil,n,o){return this._blockNode(new Cn(t,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Cn)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof fr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};U.CodeGen=ls;function gr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Qo(e,t){return t instanceof B._CodeOrName?gr(e,t.names):e}function Hr(e,t,r){if(e instanceof B.Name)return n(e);if(!o(e))return e;return new B._Code(e._items.reduce((i,a)=>(a instanceof B.Name&&(a=n(a)),a instanceof B._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||t[i.str]!==1?i:(delete t[i.str],a)}function o(i){return i instanceof B._Code&&i._items.some(a=>a instanceof B.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function Iy(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function xd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${ds(e)}`}U.not=xd;var vy=Vd(U.operators.AND);function by(...e){return e.reduce(vy)}U.and=by;var ky=Vd(U.operators.OR);function Ry(...e){return e.reduce(ky)}U.or=Ry;function Vd(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${ds(t)} ${e} ${ds(r)}`}function ds(e){return e instanceof B.Name?e:(0,B._)`(${e})`}});var q=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.checkStrictMode=F.getErrorPath=F.Type=F.useFunc=F.setEvaluated=F.evaluatedPropsToName=F.mergeEvaluated=F.eachItem=F.unescapeJsonPointer=F.escapeJsonPointer=F.escapeFragment=F.unescapeFragment=F.schemaRefOrVal=F.schemaHasRulesButRef=F.schemaHasRules=F.checkUnknownRules=F.alwaysValidSchema=F.toHash=void 0;var ne=x(),_y=jn();function Ay(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=Ay;function Ey(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Fd(e,t),!qd(t,e.self.RULES.all))}F.alwaysValidSchema=Ey;function Fd(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let o=n.RULES.keywords;for(let i in t)o[i]||Jd(e,`unknown keyword: "${i}"`)}F.checkUnknownRules=Fd;function qd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=qd;function Py(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}F.schemaHasRulesButRef=Py;function Ny({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ne._)`${r}`}return(0,ne._)`${e}${t}${(0,ne.getProperty)(n)}`}F.schemaRefOrVal=Ny;function Oy(e){return Bd(decodeURIComponent(e))}F.unescapeFragment=Oy;function Sy(e){return encodeURIComponent(us(e))}F.escapeFragment=Sy;function us(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=us;function Bd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Bd;function Dy(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=Dy;function Md({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,i,a,s)=>{let c=a===void 0?i:a instanceof ne.Name?(i instanceof ne.Name?e(o,i,a):t(o,i,a),a):i instanceof ne.Name?(t(o,a,i),i):r(i,a);return s===ne.Name&&!(c instanceof ne.Name)?n(o,c):c}}F.mergeEvaluated={props:Md({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ne._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ne._)`${r} || {}`).code((0,ne._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ne._)`${r} || {}`),fs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:zd}),items:Md({mergeNames:(e,t,r)=>e.if((0,ne._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ne._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ne._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ne._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function zd(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ne._)`{}`);return t!==void 0&&fs(e,r,t),r}F.evaluatedPropsToName=zd;function fs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ne._)`${t}${(0,ne.getProperty)(n)}`,!0))}F.setEvaluated=fs;var Ud={};function jy(e,t){return e.scopeValue("func",{ref:t,code:Ud[t.code]||(Ud[t.code]=new _y._Code(t.code))})}F.useFunc=jy;var ps;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ps||(F.Type=ps={}));function $y(e,t,r){if(e instanceof ne.Name){let n=t===ps.Num;return r?n?(0,ne._)`"[" + ${e} + "]"`:(0,ne._)`"['" + ${e} + "']"`:n?(0,ne._)`"/" + ${e}`:(0,ne._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ne.getProperty)(e).toString():"/"+us(e)}F.getErrorPath=$y;function Jd(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}F.checkStrictMode=Jd});var ot=E(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});var $e=x(),Cy={data:new $e.Name("data"),valCxt:new $e.Name("valCxt"),instancePath:new $e.Name("instancePath"),parentData:new $e.Name("parentData"),parentDataProperty:new $e.Name("parentDataProperty"),rootData:new $e.Name("rootData"),dynamicAnchors:new $e.Name("dynamicAnchors"),vErrors:new $e.Name("vErrors"),errors:new $e.Name("errors"),this:new $e.Name("this"),self:new $e.Name("self"),scope:new $e.Name("scope"),json:new $e.Name("json"),jsonPos:new $e.Name("jsonPos"),jsonLen:new $e.Name("jsonLen"),jsonPart:new $e.Name("jsonPart")};ms.default=Cy});var Vn=E(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.extendErrors=Ce.resetErrorsCount=Ce.reportExtraError=Ce.reportError=Ce.keyword$DataError=Ce.keywordError=void 0;var G=x(),ti=q(),Ue=ot();Ce.keywordError={message:({keyword:e})=>(0,G.str)`must pass "${e}" keyword validation`};Ce.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,G.str)`"${e}" keyword must be ${t} ($data)`:(0,G.str)`"${e}" keyword is invalid ($data)`};function Ty(e,t=Ce.keywordError,r,n){let{it:o}=e,{gen:i,compositeRule:a,allErrors:s}=o,c=Kd(e,t,r);n??(a||s)?Gd(i,c):Wd(o,(0,G._)`[${c}]`)}Ce.reportError=Ty;function Ly(e,t=Ce.keywordError,r){let{it:n}=e,{gen:o,compositeRule:i,allErrors:a}=n,s=Kd(e,t,r);Gd(o,s),i||a||Wd(n,Ue.default.vErrors)}Ce.reportExtraError=Ly;function xy(e,t){e.assign(Ue.default.errors,t),e.if((0,G._)`${Ue.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,G._)`${Ue.default.vErrors}.length`,t),()=>e.assign(Ue.default.vErrors,null)))}Ce.resetErrorsCount=xy;function Vy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",o,Ue.default.errors,s=>{e.const(a,(0,G._)`${Ue.default.vErrors}[${s}]`),e.if((0,G._)`${a}.instancePath === undefined`,()=>e.assign((0,G._)`${a}.instancePath`,(0,G.strConcat)(Ue.default.instancePath,i.errorPath))),e.assign((0,G._)`${a}.schemaPath`,(0,G.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,G._)`${a}.schema`,r),e.assign((0,G._)`${a}.data`,n))})}Ce.extendErrors=Vy;function Gd(e,t){let r=e.const("err",t);e.if((0,G._)`${Ue.default.vErrors} === null`,()=>e.assign(Ue.default.vErrors,(0,G._)`[${r}]`),(0,G._)`${Ue.default.vErrors}.push(${r})`),e.code((0,G._)`${Ue.default.errors}++`)}function Wd(e,t){let{gen:r,validateName:n,schemaEnv:o}=e;o.$async?r.throw((0,G._)`new ${e.ValidationError}(${t})`):(r.assign((0,G._)`${n}.errors`,t),r.return(!1))}var hr={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Kd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,G._)`{}`:My(e,t,r)}function My(e,t,r={}){let{gen:n,it:o}=e,i=[Uy(o,r),Fy(e,r)];return qy(e,t,i),n.object(...i)}function Uy({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,ti.getErrorPath)(t,ti.Type.Str)}`:e;return[Ue.default.instancePath,(0,G.strConcat)(Ue.default.instancePath,r)]}function Fy({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,G.str)`${t}/${e}`;return r&&(o=(0,G.str)`${o}${(0,ti.getErrorPath)(r,ti.Type.Str)}`),[hr.schemaPath,o]}function qy(e,{params:t,message:r},n){let{keyword:o,data:i,schemaValue:a,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([hr.keyword,o],[hr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([hr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([hr.schema,a],[hr.parentSchema,(0,G._)`${d}${p}`],[Ue.default.data,i]),l&&n.push([hr.propertyName,l])}});var Hd=E(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.boolOrEmptySchema=Xr.topBoolOrEmptySchema=void 0;var By=Vn(),zy=x(),Jy=ot(),Gy={message:"boolean schema is false"};function Wy(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Yd(e,!1):typeof r=="object"&&r.$async===!0?t.return(Jy.default.data):(t.assign((0,zy._)`${n}.errors`,null),t.return(!0))}Xr.topBoolOrEmptySchema=Wy;function Ky(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Yd(e)):r.var(t,!0)}Xr.boolOrEmptySchema=Ky;function Yd(e,t){let{gen:r,data:n}=e,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,By.reportError)(o,Gy,void 0,t)}});var gs=E(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.getRules=Zr.isJSONType=void 0;var Yy=["string","number","integer","boolean","null","object","array"],Hy=new Set(Yy);function Xy(e){return typeof e=="string"&&Hy.has(e)}Zr.isJSONType=Xy;function Zy(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Zr.getRules=Zy});var hs=E(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.shouldUseRule=Kt.shouldUseGroup=Kt.schemaHasRulesForType=void 0;function Qy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Xd(e,n)}Kt.schemaHasRulesForType=Qy;function Xd(e,t){return t.rules.some(r=>Zd(e,r))}Kt.shouldUseGroup=Xd;function Zd(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Kt.shouldUseRule=Zd});var Mn=E(Te=>{"use strict";Object.defineProperty(Te,"__esModule",{value:!0});Te.reportTypeError=Te.checkDataTypes=Te.checkDataType=Te.coerceAndCheckDataType=Te.getJSONTypes=Te.getSchemaTypes=Te.DataType=void 0;var ew=gs(),tw=hs(),rw=Vn(),V=x(),Qd=q(),Qr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Qr||(Te.DataType=Qr={}));function nw(e){let t=ep(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}Te.getSchemaTypes=nw;function ep(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(ew.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Te.getJSONTypes=ep;function ow(e,t){let{gen:r,data:n,opts:o}=e,i=iw(t,o.coerceTypes),a=t.length>0&&!(i.length===0&&t.length===1&&(0,tw.schemaHasRulesForType)(e,t[0]));if(a){let s=ws(t,n,o.strictNumbers,Qr.Wrong);r.if(s,()=>{i.length?aw(e,t,i):Is(e)})}return a}Te.coerceAndCheckDataType=ow;var tp=new Set(["string","number","integer","boolean","null"]);function iw(e,t){return t?e.filter(r=>tp.has(r)||t==="array"&&r==="array"):[]}function aw(e,t,r){let{gen:n,data:o,opts:i}=e,a=n.let("dataType",(0,V._)`typeof ${o}`),s=n.let("coerced",(0,V._)`undefined`);i.coerceTypes==="array"&&n.if((0,V._)`${a} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,V._)`${o}[0]`).assign(a,(0,V._)`typeof ${o}`).if(ws(t,o,i.strictNumbers),()=>n.assign(s,o))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(tp.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),Is(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(o,s),sw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,V._)`"" + ${o}`).elseIf((0,V._)`${o} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${a} == "boolean" || ${o} === null
|
|
3
|
-
|| (${
|
|
4
|
-
|| (${
|
|
5
|
-
|| ${a} === "boolean" || ${o} === null`).assign(s,(0,V._)`[${o}]`)}}}function sw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function ys(e,t,r,n=Qr.Correct){let o=n===Qr.Correct?V.operators.EQ:V.operators.NEQ,i;switch(e){case"null":return(0,V._)`${t} ${o} null`;case"array":i=(0,V._)`Array.isArray(${t})`;break;case"object":i=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=a();break;default:return(0,V._)`typeof ${t} ${o} ${e}`}return n===Qr.Correct?i:(0,V.not)(i);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Te.checkDataType=ys;function ws(e,t,r,n){if(e.length===1)return ys(e[0],t,r,n);let o,i=(0,Qd.toHash)(e);if(i.array&&i.object){let a=(0,V._)`typeof ${t} != "object"`;o=i.null?a:(0,V._)`!${t} || ${a}`,delete i.null,delete i.array,delete i.object}else o=V.nil;i.number&&delete i.integer;for(let a in i)o=(0,V.and)(o,ys(a,t,r,n));return o}Te.checkDataTypes=ws;var cw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Is(e){let t=lw(e);(0,rw.reportError)(t,cw)}Te.reportTypeError=Is;function lw(e){let{gen:t,data:r,schema:n}=e,o=(0,Qd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}});var np=E(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.assignDefaults=void 0;var en=x(),dw=q();function pw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let o in r)rp(e,o,r[o].default);else t==="array"&&Array.isArray(n)&&n.forEach((o,i)=>rp(e,i,o.default))}ri.assignDefaults=pw;function rp(e,t,r){let{gen:n,compositeRule:o,data:i,opts:a}=e;if(r===void 0)return;let s=(0,en._)`${i}${(0,en.getProperty)(t)}`;if(o){(0,dw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,en._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,en._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,en._)`${s} = ${(0,en.stringify)(r)}`)}});var it=E(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.validateUnion=te.validateArray=te.usePattern=te.callValidateCode=te.schemaProperties=te.allSchemaProperties=te.noPropertyInData=te.propertyInData=te.isOwnProperty=te.hasPropFunc=te.reportMissingProp=te.checkMissingProp=te.checkReportMissingProp=void 0;var de=x(),vs=q(),Yt=ot(),uw=q();function fw(e,t){let{gen:r,data:n,it:o}=e;r.if(ks(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,de._)`${t}`},!0),e.error()})}te.checkReportMissingProp=fw;function mw({gen:e,data:t,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(ks(e,t,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}te.checkMissingProp=mw;function gw(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=gw;function op(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=op;function bs(e,t,r){return(0,de._)`${op(e)}.call(${t}, ${r})`}te.isOwnProperty=bs;function hw(e,t,r,n){let o=(0,de._)`${t}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${bs(e,t,r)}`:o}te.propertyInData=hw;function ks(e,t,r,n){let o=(0,de._)`${t}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(bs(e,t,r))):o}te.noPropertyInData=ks;function ip(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=ip;function yw(e,t){return ip(t).filter(r=>!(0,vs.alwaysValidSchema)(e,t[r]))}te.schemaProperties=yw;function ww({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:a},s,c,l){let d=l?(0,de._)`${e}, ${t}, ${n}${o}`:t,p=[[Yt.default.instancePath,(0,de.strConcat)(Yt.default.instancePath,i)],[Yt.default.parentData,a.parentData],[Yt.default.parentDataProperty,a.parentDataProperty],[Yt.default.rootData,Yt.default.rootData]];a.opts.dynamicRef&&p.push([Yt.default.dynamicAnchors,Yt.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...p)}`;return c!==de.nil?(0,de._)`${s}.call(${c}, ${f})`:(0,de._)`${s}(${f})`}te.callValidateCode=ww;var Iw=(0,de._)`new RegExp`;function vw({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,i=o(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,de._)`${o.code==="new RegExp"?Iw:(0,uw.useFunc)(e,o)}(${r}, ${n})`})}te.usePattern=vw;function bw(e){let{gen:t,data:r,keyword:n,it:o}=e,i=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(i,!0),a(()=>t.break()),i;function a(s){let c=t.const("len",(0,de._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:vs.Type.Num},i),t.if((0,de.not)(i),s)})}}te.validateArray=bw;function kw(e){let{gen:t,schema:r,keyword:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,vs.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let d=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(a,(0,de._)`${a} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,de.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}te.validateUnion=kw});var cp=E(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.validateKeywordUsage=Et.validSchemaType=Et.funcKeywordCode=Et.macroKeywordCode=void 0;var Fe=x(),yr=ot(),Rw=it(),_w=Vn();function Aw(e,t){let{gen:r,keyword:n,schema:o,parentSchema:i,it:a}=e,s=t.macro.call(a.self,o,i,a),c=sp(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:Fe.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Et.macroKeywordCode=Aw;function Ew(e,t){var r;let{gen:n,keyword:o,schema:i,parentSchema:a,$data:s,it:c}=e;Nw(c,t);let l=!s&&t.compile?t.compile.call(c.self,i,a,c):t.validate,d=sp(n,o,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&ap(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&ap(e),h(()=>Pw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,Fe._)`await `),_=>n.assign(p,!1).if((0,Fe._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,Fe._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,Fe._)`${d}.errors`;return n.assign(w,null),g(Fe.nil),w}function g(w=t.async?(0,Fe._)`await `:Fe.nil){let _=c.opts.passContext?yr.default.this:yr.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Fe._)`${w}${(0,Rw.callValidateCode)(e,d,_,b)}`,t.modifying)}function h(w){var _;n.if((0,Fe.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Et.funcKeywordCode=Ew;function ap(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Fe._)`${n.parentData}[${n.parentDataProperty}]`))}function Pw(e,t){let{gen:r}=e;r.if((0,Fe._)`Array.isArray(${t})`,()=>{r.assign(yr.default.vErrors,(0,Fe._)`${yr.default.vErrors} === null ? ${t} : ${yr.default.vErrors}.concat(${t})`).assign(yr.default.errors,(0,Fe._)`${yr.default.vErrors}.length`),(0,_w.extendErrors)(e)},()=>e.error())}function Nw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function sp(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Fe.stringify)(r)})}function Ow(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Et.validSchemaType=Ow;function Sw({schema:e,opts:t,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let a=o.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Et.validateKeywordUsage=Sw});var dp=E(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.extendSubschemaMode=Ht.extendSubschemaData=Ht.getSubschema=void 0;var Pt=x(),lp=q();function Dw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:a}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Pt._)`${e.schemaPath}${(0,Pt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Pt._)`${e.schemaPath}${(0,Pt.getProperty)(t)}${(0,Pt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,lp.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ht.getSubschema=Dw;function jw(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:a}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Pt._)`${t.data}${(0,Pt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Pt.str)`${l}${(0,lp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Pt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(o!==void 0){let l=o instanceof Pt.Name?o:s.let("data",o,!0);c(l),a!==void 0&&(e.propertyName=a)}i&&(e.dataTypes=i);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}Ht.extendSubschemaData=jw;function $w(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=r}Ht.extendSubschemaMode=$w});var Rs=E((hN,pp)=>{"use strict";pp.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var a=i[o];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var fp=E((yN,up)=>{"use strict";var Xt=up.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};ni(t,n,o,e,"",e)};Xt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Xt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Xt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Xt.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function ni(e,t,r,n,o,i,a,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,i,a,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Xt.arrayKeywords)for(var f=0;f<p.length;f++)ni(e,t,r,p[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Xt.propsKeywords){if(p&&typeof p=="object")for(var u in p)ni(e,t,r,p[u],o+"/"+d+"/"+Cw(u),i,o,d,n,u)}else(d in Xt.keywords||e.allKeys&&!(d in Xt.skipKeywords))&&ni(e,t,r,p,o+"/"+d,i,o,d,n)}r(n,o,i,a,s,c,l)}}function Cw(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Un=E(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.getSchemaRefs=Ge.resolveUrl=Ge.normalizeId=Ge._getFullPath=Ge.getFullPath=Ge.inlineRef=void 0;var Tw=q(),Lw=Rs(),xw=fp(),Vw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Mw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!_s(e):t?mp(e)<=t:!1}Ge.inlineRef=Mw;var Uw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function _s(e){for(let t in e){if(Uw.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(_s)||typeof r=="object"&&_s(r))return!0}return!1}function mp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!Vw.has(r)&&(typeof e[r]=="object"&&(0,Tw.eachItem)(e[r],n=>t+=mp(n)),t===1/0))return 1/0}return t}function gp(e,t="",r){r!==!1&&(t=tn(t));let n=e.parse(t);return hp(e,n)}Ge.getFullPath=gp;function hp(e,t){return e.serialize(t).split("#")[0]+"#"}Ge._getFullPath=hp;var Fw=/#\/?$/;function tn(e){return e?e.replace(Fw,""):""}Ge.normalizeId=tn;function qw(e,t,r){return r=tn(r),e.resolve(t,r)}Ge.resolveUrl=qw;var Bw=/^[a-z_][-a-z0-9._]*$/i;function zw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=tn(e[r]||t),i={"":o},a=gp(n,o,!1),s={},c=new Set;return xw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=a+f,h=i[m];typeof p[r]=="string"&&(h=w.call(this,p[r])),_.call(this,p.$anchor),_.call(this,p.$dynamicAnchor),i[f]=h;function w(b){let A=this.opts.uriResolver.resolve;if(b=tn(h?A(h,b):b),c.has(b))throw d(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,b):b!==tn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function _(b){if(typeof b=="string"){if(!Bw.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Lw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Ge.getSchemaRefs=zw});var Bn=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.getData=Zt.KeywordCxt=Zt.validateFunctionCode=void 0;var bp=Hd(),yp=Mn(),Es=hs(),oi=Mn(),Jw=np(),qn=cp(),As=dp(),O=x(),L=ot(),Gw=Un(),Tt=q(),Fn=Vn();function Ww(e){if(_p(e)&&(Ap(e),Rp(e))){Hw(e);return}kp(e,()=>(0,bp.topBoolOrEmptySchema)(e))}Zt.validateFunctionCode=Ww;function kp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},i){o.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${wp(r,o)}`),Yw(e,o),e.code(i)}):e.func(t,(0,O._)`${L.default.data}, ${Kw(o)}`,n.$async,()=>e.code(wp(r,o)).code(i))}function Kw(e){return(0,O._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,O._)`, ${L.default.dynamicAnchors}={}`:O.nil}}={}`}function Yw(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,O._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,O._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,O._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,O._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,O._)`""`),e.var(L.default.parentData,(0,O._)`undefined`),e.var(L.default.parentDataProperty,(0,O._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`{}`)})}function Hw(e){let{schema:t,opts:r,gen:n}=e;kp(e,()=>{r.$comment&&t.$comment&&Pp(e),tI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&Xw(e),Ep(e),oI(e)})}function Xw(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,O._)`${r}.evaluated`),t.if((0,O._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,O._)`${e.evaluated}.props`,(0,O._)`undefined`)),t.if((0,O._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,O._)`${e.evaluated}.items`,(0,O._)`undefined`))}function wp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function Zw(e,t){if(_p(e)&&(Ap(e),Rp(e))){Qw(e,t);return}(0,bp.boolOrEmptySchema)(e,t)}function Rp({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function _p(e){return typeof e.schema!="boolean"}function Qw(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&Pp(e),rI(e),nI(e);let i=n.const("_errs",L.default.errors);Ep(e,i),n.var(t,(0,O._)`${i} === ${L.default.errors}`)}function Ap(e){(0,Tt.checkUnknownRules)(e),eI(e)}function Ep(e,t){if(e.opts.jtd)return Ip(e,[],!1,t);let r=(0,yp.getSchemaTypes)(e.schema),n=(0,yp.coerceAndCheckDataType)(e,r);Ip(e,r,!n,t)}function eI(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Tt.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function tI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Tt.checkStrictMode)(e,"default is ignored in the schema root")}function rI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Gw.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function nI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Pp({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let a=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function oI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${o}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),i.unevaluated&&iI(e),t.return((0,O._)`${L.default.errors} === 0`))}function iI({gen:e,evaluated:t,props:r,items:n}){r instanceof O.Name&&e.assign((0,O._)`${t}.props`,r),n instanceof O.Name&&e.assign((0,O._)`${t}.items`,n)}function Ip(e,t,r,n){let{gen:o,schema:i,data:a,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Tt.schemaHasRulesButRef)(i,d))){o.block(()=>Op(e,"$ref",d.all.$ref.definition));return}c.jtd||aI(e,t),o.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Es.shouldUseGroup)(i,f)&&(f.type?(o.if((0,oi.checkDataType)(f.type,a,c.strictNumbers)),vp(e,f),t.length===1&&t[0]===f.type&&r&&(o.else(),(0,oi.reportTypeError)(e)),o.endIf()):vp(e,f),s||o.if((0,O._)`${L.default.errors} === ${n||0}`))}}function vp(e,t){let{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,Jw.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,Es.shouldUseRule)(n,i)&&Op(e,i.keyword,i.definition,t.type)})}function aI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(sI(e,t),e.opts.allowUnionTypes||cI(e,t),lI(e,e.dataTypes))}function sI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Np(e.dataTypes,r)||Ps(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),pI(e,t)}}function cI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ps(e,"use allowUnionTypes to allow union type keyword")}function lI(e,t){let r=e.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Es.shouldUseRule)(e.schema,o)){let{type:i}=o.definition;i.length&&!i.some(a=>dI(t,a))&&Ps(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function dI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Np(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function pI(e,t){let r=[];for(let n of e.dataTypes)Np(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ps(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Tt.checkStrictMode)(e,t,e.opts.strictTypes)}var ii=class{constructor(t,r,n){if((0,qn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Tt.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Sp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,qn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Fn.reportExtraError:Fn.reportError)(this,this.def.error,r)}$dataError(){(0,Fn.reportError)(this,this.def.$dataError||Fn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Fn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=O.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:a}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,O.or)(a(),s());function a(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,oi.checkDataTypes)(c,r,i.opts.strictNumbers,oi.DataType.Wrong)}`}return O.nil}function s(){if(o.validateSchema){let c=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,As.getSubschema)(this.it,t);(0,As.extendSubschemaData)(n,this.it,t),(0,As.extendSubschemaMode)(n,t);let o={...this.it,...n,items:void 0,props:void 0};return Zw(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Tt.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Tt.mergeEvaluated.items(o,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};Zt.KeywordCxt=ii;function Op(e,t,r,n){let o=new ii(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,qn.funcKeywordCode)(o,r):"macro"in r?(0,qn.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,qn.funcKeywordCode)(o,r)}var uI=/^\/(?:[^~]|~0|~1)*$/,fI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Sp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,i;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!uI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=L.default.rootData}else{let l=fI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(o=l[2],o==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(i=r[t-d],!o)return i}let a=i,s=o.split("/");for(let l of s)l&&(i=(0,O._)`${i}${(0,O.getProperty)((0,Tt.unescapeJsonPointer)(l))}`,a=(0,O._)`${a} && ${i}`);return a;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Zt.getData=Sp});var ai=E(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});var Ns=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Os.default=Ns});var zn=E(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var Ss=Un(),Ds=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ss.resolveUrl)(t,r,n),this.missingSchema=(0,Ss.normalizeId)((0,Ss.getFullPath)(t,this.missingRef))}};js.default=Ds});var Jn=E(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.resolveSchema=at.getCompilingSchema=at.resolveRef=at.compileSchema=at.SchemaEnv=void 0;var gt=x(),mI=ai(),wr=ot(),ht=Un(),Dp=q(),gI=Bn(),rn=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,ht.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};at.SchemaEnv=rn;function Cs(e){let t=jp.call(this,e);if(t)return t;let r=(0,ht.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,a=new gt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),s;e.$async&&(s=a.scopeValue("Error",{ref:mI.default,code:(0,gt._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:wr.default.data,parentData:wr.default.parentData,parentDataProperty:wr.default.parentDataProperty,dataNames:[wr.default.data],dataPathArr:[gt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,gt.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:gt.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,gt._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,gI.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();d=`${a.scopeRefs(wr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${wr.default.self}`,`${wr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof gt.Name?void 0:m,items:g instanceof gt.Name?void 0:g,dynamicProps:m instanceof gt.Name,dynamicItems:g instanceof gt.Name},u.source&&(u.source.evaluated=(0,gt.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}at.compileSchema=Cs;function hI(e,t,r){var n;r=(0,ht.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let i=II.call(this,e,r);if(i===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(i=new rn({schema:a,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=yI.call(this,i)}at.resolveRef=hI;function yI(e){return(0,ht.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Cs.call(this,e)}function jp(e){for(let t of this._compilations)if(wI(t,e))return t}at.getCompilingSchema=jp;function wI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function II(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||si.call(this,e,t)}function si(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ht._getFullPath)(this.opts.uriResolver,r),o=(0,ht.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return $s.call(this,r,e);let i=(0,ht.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let s=si.call(this,e,a);return typeof s?.schema!="object"?void 0:$s.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||Cs.call(this,a),i===(0,ht.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,l=s[c];return l&&(o=(0,ht.resolveUrl)(this.opts.uriResolver,o,l)),new rn({schema:s,schemaId:c,root:e,baseId:o})}return $s.call(this,r,a)}}at.resolveSchema=si;var vI=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function $s(e,{baseId:t,schema:r,root:n}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Dp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!vI.has(s)&&l&&(t=(0,ht.resolveUrl)(this.opts.uriResolver,t,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,Dp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ht.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=si.call(this,n,s)}let{schemaId:a}=this.opts;if(i=i||new rn({schema:r,schemaId:a,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var $p=E((RN,bI)=>{bI.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var xs=E((_N,Mp)=>{"use strict";var kI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Tp=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),Ts=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Lp=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),RI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Ls(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var _I=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Cp(e){return e.length=0,!0}function AI(e,t,r){if(e.length){let n=Ls(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function EI(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,a=!1,s=AI;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(i===!0&&(a=!0),!s(o,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(i=!0),n.push(":");continue}else if(l==="%"){if(!s(o,n,r))break;s=Cp}else{o.push(l);continue}}return o.length&&(s===Cp?r.zone=o.join(""):a?n.push(o.join("")):n.push(Ls(o))),r.address=n.join(""),r}function xp(e){if(PI(e,":")<2)return{host:e,isIPV6:!1};let t=EI(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function PI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function NI(e){let t=e,r=[],n=-1,o=0;for(;o=t.length;){if(o===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(o===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){r.push("/");break}}else if(o===3&&t==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var OI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},SI=/[@/?#:]/g,DI=/[@/?#]/g;function Vp(e,t){let r=t?DI:SI;return r.lastIndex=0,e.replace(r,n=>OI[n])}function jI(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let o=e.slice(n+1,n+3);if(Ts(o)){let i=o.toUpperCase(),a=String.fromCharCode(parseInt(i,16));t&&Lp(a)?r+=a:r+="%"+i,n+=2;continue}}r+=e[n]}return r}function $I(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(Ts(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&Lp(i)?t+=i:t+="%"+o,r+=2;continue}}RI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function CI(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(Ts(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function TI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!Tp(r)){let n=xp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=Vp(r,!1)}t.push(r)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}Mp.exports={nonSimpleDomain:_I,recomposeAuthority:TI,reescapeHostDelimiters:Vp,normalizePercentEncoding:jI,normalizePathEncoding:$I,escapePreservingEscapes:CI,removeDotSegments:NI,isIPv4:Tp,isUUID:kI,normalizeIPv6:xp,stringArrayToHexStripped:Ls}});var zp=E((AN,Bp)=>{"use strict";var{isUUID:LI}=xs(),xI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,VI=["http","https","ws","wss","urn","urn:uuid"];function MI(e){return VI.indexOf(e)!==-1}function Vs(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function Up(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Fp(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function UI(e){return e.secure=Vs(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function FI(e){if((e.port===(Vs(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function qI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(xI);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let o=`${n}:${t.nid||e.nid}`,i=Ms(o);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function BI(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,i=Ms(o);i&&(e=i.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function zI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!LI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function JI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var qp={scheme:"http",domainHost:!0,parse:Up,serialize:Fp},GI={scheme:"https",domainHost:qp.domainHost,parse:Up,serialize:Fp},ci={scheme:"ws",domainHost:!0,parse:UI,serialize:FI},WI={scheme:"wss",domainHost:ci.domainHost,parse:ci.parse,serialize:ci.serialize},KI={scheme:"urn",parse:qI,serialize:BI,skipNormalize:!0},YI={scheme:"urn:uuid",parse:zI,serialize:JI,skipNormalize:!0},li={http:qp,https:GI,ws:ci,wss:WI,urn:KI,"urn:uuid":YI};Object.setPrototypeOf(li,null);function Ms(e){return e&&(li[e]||li[e.toLowerCase()])||void 0}Bp.exports={wsIsSecure:Vs,SCHEMES:li,isValidSchemeName:MI,getSchemeHandler:Ms}});var Yp=E((EN,ui)=>{"use strict";var{normalizeIPv6:HI,removeDotSegments:Gn,recomposeAuthority:XI,normalizePercentEncoding:ZI,normalizePathEncoding:QI,escapePreservingEscapes:ev,reescapeHostDelimiters:tv,isIPv4:rv,nonSimpleDomain:nv}=xs(),{SCHEMES:ov,getSchemeHandler:Gp}=zp();function iv(e,t){return typeof e=="string"?e=uv(e,t):typeof e=="object"&&(e=pi(Ir(e,t),t)),e}function av(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=di(e,n),{parsed:a,malformedAuthorityOrPort:s}=di(t,n);if(i||s)throw new Error(o.error||a.error||"URI is malformed.");let c=Wp(o,a,n,!0);return n.skipEscape=!0,Ir(c,n)}function Wp(e,t,r,n){let o={};return n||(e=pi(Ir(e,r),r),t=pi(Ir(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Gn(t.path||""),o.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Gn(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=Gn(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?o.path="/"+t.path:e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path,o.path=Gn(o.path)),o.query=t.query):(o.path=e.path,t.query!==void 0?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function sv(e,t,r){let n=Jp(e,r),o=Jp(t,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function Ir(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),o=[],i=Gp(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=ZI(r.path):(r.path=ev(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let a=XI(r);if(a!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(a),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=Gn(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var cv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,lv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,dv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function pv(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function di(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,i=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let a=e.match(lv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let s=e.match(dv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=e.match(cv);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let l=pv(n,c);if(l!==void 0&&(n.error=n.error||l,o=!0),n.host)if(rv(n.host)===!1){let f=HI(n.host);n.host=f.host.toLowerCase(),i=f.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=Gp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&nv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!d||d&&!d.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=tv(unescape(n.host),i))),n.path&&(n.path=QI(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function pi(e,t){return di(e,t).parsed}function uv(e,t){return Kp(e,t).normalized}function Kp(e,t){let{parsed:r,malformedAuthorityOrPort:n}=di(e,t);return{normalized:n?e:Ir(r,t),malformedAuthorityOrPort:n}}function Jp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Kp(e,t);return n?void 0:r}if(typeof e=="object")return Ir(e,t)}var Us={SCHEMES:ov,normalize:iv,resolve:av,resolveComponent:Wp,equal:sv,serialize:Ir,parse:pi};ui.exports=Us;ui.exports.default=Us;ui.exports.fastUri=Us});var Xp=E(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var Hp=Yp();Hp.code='require("ajv/dist/runtime/uri").default';Fs.default=Hp});var iu=E(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.CodeGen=Ae.Name=Ae.nil=Ae.stringify=Ae.str=Ae._=Ae.KeywordCxt=void 0;var fv=Bn();Object.defineProperty(Ae,"KeywordCxt",{enumerable:!0,get:function(){return fv.KeywordCxt}});var nn=x();Object.defineProperty(Ae,"_",{enumerable:!0,get:function(){return nn._}});Object.defineProperty(Ae,"str",{enumerable:!0,get:function(){return nn.str}});Object.defineProperty(Ae,"stringify",{enumerable:!0,get:function(){return nn.stringify}});Object.defineProperty(Ae,"nil",{enumerable:!0,get:function(){return nn.nil}});Object.defineProperty(Ae,"Name",{enumerable:!0,get:function(){return nn.Name}});Object.defineProperty(Ae,"CodeGen",{enumerable:!0,get:function(){return nn.CodeGen}});var mv=ai(),ru=zn(),gv=gs(),Wn=Jn(),hv=x(),Kn=Un(),fi=Mn(),Bs=q(),Zp=$p(),yv=Xp(),nu=(e,t)=>new RegExp(e,t);nu.code="new RegExp";var wv=["removeAdditional","useDefaults","coerceTypes"],Iv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),vv={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},bv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Qp=200;function kv(e){var t,r,n,o,i,a,s,c,l,d,p,f,u,m,g,h,w,_,b,A,I,R,S,C,le;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,X=P===!0||P===void 0?1:P||0,ie=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:nu,rt=(o=e.uriResolver)!==null&&o!==void 0?o:yv.default;return{strictSchema:(a=(i=e.strictSchema)!==null&&i!==void 0?i:$)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:X,regExp:ie}:{optimize:X,regExp:ie},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Qp,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:Qp,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(le=e.int32range)!==null&&le!==void 0?le:!0,uriResolver:rt}}var Yn=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...kv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new hv.ValueScope({scope:{},prefixes:Iv,es5:r,lines:n}),this.logger=Nv(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,gv.getRules)(),eu.call(this,vv,t,"NOT SUPPORTED"),eu.call(this,bv,t,"DEPRECATED","warn"),this._metaOpts=Ev.call(this),t.formats&&_v.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Av.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Rv.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,o=Zp;n==="id"&&(o={...Zp},o.id=o.$id,delete o.$id),r&&t&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,t,r);async function o(d,p){await i.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||a.call(this,f)}async function i(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function a(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof ru.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),a.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await i.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,o);return this}let i;if(typeof t=="object"){let{schemaId:a}=this.opts;if(i=t[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Kn.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,o,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,t);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(t){let r;for(;typeof(r=tu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,o=new Wn.SchemaEnv({schema:{},schemaId:n});if(r=Wn.resolveSchema.call(this,o,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=tu.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Kn.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Sv.call(this,n,r),!r)return(0,Bs.eachItem)(n,i=>qs.call(this,i)),this;jv.call(this,r);let o={...r,type:(0,fi.getJSONTypes)(r.type),schemaType:(0,fi.getJSONTypes)(r.schemaType)};return(0,Bs.eachItem)(n,o.type.length===0?i=>qs.call(this,i,o):i=>o.type.forEach(a=>qs.call(this,i,o,a))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===t);o>=0&&n.rules.splice(o,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let i=o.split("/").slice(1),a=t;for(let s of i)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=a[s];l&&d&&(a[s]=ou(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let o=t[n];(!r||r.test(n))&&(typeof o=="string"?delete t[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[n]))}}_addSchema(t,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,Kn.normalizeId)(a||n);let l=Kn.getSchemaRefs.call(this,t,n);return c=new Wn.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):Wn.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{Wn.compileSchema.call(this,t)}finally{this.opts=r}}};Yn.ValidationError=mv.default;Yn.MissingRefError=ru.default;Ae.default=Yn;function eu(e,t,r,n="error"){for(let o in e){let i=o;i in t&&this.logger[n](`${r}: option ${o}. ${e[i]}`)}}function tu(e){return e=(0,Kn.normalizeId)(e),this.schemas[e]||this.refs[e]}function Rv(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function _v(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Av(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function Ev(){let e={...this.opts};for(let t of wv)delete e[t];return e}var Pv={log(){},warn(){},error(){}};function Nv(e){if(e===!1)return Pv;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Ov=/^[a-z_$][a-z0-9_$:-]*$/i;function Sv(e,t){let{RULES:r}=this;if((0,Bs.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Ov.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function qs(e,t,r){var n;let o=t?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=o?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,fi.getJSONTypes)(t.type),schemaType:(0,fi.getJSONTypes)(t.schemaType)}};t.before?Dv.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Dv(e,t,r){let n=e.rules.findIndex(o=>o.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function jv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=ou(t)),e.validateSchema=this.compile(t,!0))}var $v={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function ou(e){return{anyOf:[e,$v]}}});var au=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var Cv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};zs.default=Cv});var hi=E(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.callRef=vr.getValidate=void 0;var Tv=zn(),su=it(),We=x(),on=ot(),cu=Jn(),mi=q(),Lv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:i,validateName:a,opts:s,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&o===l.baseId)return p();let d=cu.resolveRef.call(c,l,o,r);if(d===void 0)throw new Tv.default(n.opts.uriResolver,o,r);if(d instanceof cu.SchemaEnv)return f(d);return u(d);function p(){if(i===l)return gi(e,a,i,i.$async);let m=t.scopeValue("root",{ref:l});return gi(e,(0,We._)`${m}.validate`,l,l.$async)}function f(m){let g=lu(e,m);gi(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,We.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:We.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function lu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,We._)`${r.scopeValue("wrapper",{ref:t})}.validate`}vr.getValidate=lu;function gi(e,t,r,n){let{gen:o,it:i}=e,{allErrors:a,schemaEnv:s,opts:c}=i,l=c.passContext?on.default.this:We.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=o.let("valid");o.try(()=>{o.code((0,We._)`await ${(0,su.callValidateCode)(e,t,l)}`),u(t),a||o.assign(m,!0)},g=>{o.if((0,We._)`!(${g} instanceof ${i.ValidationError})`,()=>o.throw(g)),f(g),a||o.assign(m,!1)}),e.ok(m)}function p(){e.result((0,su.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,We._)`${m}.errors`;o.assign(on.default.vErrors,(0,We._)`${on.default.vErrors} === null ? ${g} : ${on.default.vErrors}.concat(${g})`),o.assign(on.default.errors,(0,We._)`${on.default.vErrors}.length`)}function u(m){var g;if(!i.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(i.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(i.props=mi.mergeEvaluated.props(o,h.props,i.props));else{let w=o.var("props",(0,We._)`${m}.evaluated.props`);i.props=mi.mergeEvaluated.props(o,w,i.props,We.Name)}if(i.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(i.items=mi.mergeEvaluated.items(o,h.items,i.items));else{let w=o.var("items",(0,We._)`${m}.evaluated.items`);i.items=mi.mergeEvaluated.items(o,w,i.items,We.Name)}}}vr.callRef=gi;vr.default=Lv});var du=E(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var xv=au(),Vv=hi(),Mv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",xv.default,Vv.default];Js.default=Mv});var pu=E(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});var yi=x(),Qt=yi.operators,wi={maximum:{okStr:"<=",ok:Qt.LTE,fail:Qt.GT},minimum:{okStr:">=",ok:Qt.GTE,fail:Qt.LT},exclusiveMaximum:{okStr:"<",ok:Qt.LT,fail:Qt.GTE},exclusiveMinimum:{okStr:">",ok:Qt.GT,fail:Qt.LTE}},Uv={message:({keyword:e,schemaCode:t})=>(0,yi.str)`must be ${wi[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,yi._)`{comparison: ${wi[e].okStr}, limit: ${t}}`},Fv={keyword:Object.keys(wi),type:"number",schemaType:"number",$data:!0,error:Uv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,yi._)`${r} ${wi[t].fail} ${n} || isNaN(${r})`)}};Gs.default=Fv});var uu=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Hn=x(),qv={message:({schemaCode:e})=>(0,Hn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Hn._)`{multipleOf: ${e}}`},Bv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:qv,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,i=o.opts.multipleOfPrecision,a=t.let("res"),s=i?(0,Hn._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,Hn._)`${a} !== parseInt(${a})`;e.fail$data((0,Hn._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};Ws.default=Bv});var mu=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});function fu(e){let t=e.length,r=0,n=0,o;for(;n<t;)r++,o=e.charCodeAt(n++),o>=55296&&o<=56319&&n<t&&(o=e.charCodeAt(n),(o&64512)===56320&&n++);return r}Ks.default=fu;fu.code='require("ajv/dist/runtime/ucs2length").default'});var gu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var br=x(),zv=q(),Jv=mu(),Gv={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,br.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,br._)`{limit: ${e}}`},Wv={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Gv,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,i=t==="maxLength"?br.operators.GT:br.operators.LT,a=o.opts.unicode===!1?(0,br._)`${r}.length`:(0,br._)`${(0,zv.useFunc)(e.gen,Jv.default)}(${r})`;e.fail$data((0,br._)`${a} ${i} ${n}`)}};Ys.default=Wv});var hu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Kv=it(),Yv=q(),an=x(),Hv={message:({schemaCode:e})=>(0,an.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,an._)`{pattern: ${e}}`},Xv={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Hv,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:i,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,an._)`new RegExp`:(0,Yv.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,an._)`${l}(${i}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,an._)`!${d}`)}else{let c=(0,Kv.usePattern)(e,o);e.fail$data((0,an._)`!${c}.test(${r})`)}}};Hs.default=Xv});var yu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var Xn=x(),Zv={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Xn.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Xn._)`{limit: ${e}}`},Qv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Zv,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxProperties"?Xn.operators.GT:Xn.operators.LT;e.fail$data((0,Xn._)`Object.keys(${r}).length ${o} ${n}`)}};Xs.default=Qv});var wu=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Zn=it(),Qn=x(),eb=q(),tb={message:({params:{missingProperty:e}})=>(0,Qn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Qn._)`{missingProperty: ${e}}`},rb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:tb,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:i,it:a}=e,{opts:s}=a;if(!i&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?l():d(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let h=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,eb.checkStrictMode)(a,w,a.opts.strictRequired)}}function l(){if(c||i)e.block$data(Qn.nil,p);else for(let u of r)(0,Zn.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||i){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,Zn.checkMissingProp)(e,r,u)),(0,Zn.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,Zn.noPropertyInData)(t,o,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,Zn.propertyInData)(t,o,u,s.ownProperties)),t.if((0,Qn.not)(m),()=>{e.error(),t.break()})},Qn.nil)}}};Zs.default=rb});var Iu=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var eo=x(),nb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,eo.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,eo._)`{limit: ${e}}`},ob={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:nb,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxItems"?eo.operators.GT:eo.operators.LT;e.fail$data((0,eo._)`${r}.length ${o} ${n}`)}};Qs.default=ob});var Ii=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var vu=Rs();vu.code='require("ajv/dist/runtime/equal").default';ec.default=vu});var bu=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var tc=Mn(),Ee=x(),ib=q(),ab=Ii(),sb={message:({params:{i:e,j:t}})=>(0,Ee.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ee._)`{i: ${e}, j: ${t}}`},cb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:sb,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:i,schemaCode:a,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),l=i.items?(0,tc.getSchemaTypes)(i.items):[];e.block$data(c,d,(0,Ee._)`${a} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ee._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ee._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,tc.checkDataTypes)(l,h,s.opts.strictNumbers,tc.DataType.Wrong),_=t.const("indices",(0,Ee._)`{}`);t.for((0,Ee._)`;${m}--;`,()=>{t.let(h,(0,Ee._)`${r}[${m}]`),t.if(w,(0,Ee._)`continue`),l.length>1&&t.if((0,Ee._)`typeof ${h} == "string"`,(0,Ee._)`${h} += "_"`),t.if((0,Ee._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ee._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ee._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,ib.useFunc)(t,ab.default),w=t.name("outer");t.label(w).for((0,Ee._)`;${m}--;`,()=>t.for((0,Ee._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ee._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};rc.default=cb});var ku=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var nc=x(),lb=q(),db=Ii(),pb={message:"must be equal to constant",params:({schemaCode:e})=>(0,nc._)`{allowedValue: ${e}}`},ub={keyword:"const",$data:!0,error:pb,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,nc._)`!${(0,lb.useFunc)(t,db.default)}(${r}, ${o})`):e.fail((0,nc._)`${i} !== ${r}`)}};oc.default=ub});var Ru=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var to=x(),fb=q(),mb=Ii(),gb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,to._)`{allowedValues: ${e}}`},hb={keyword:"enum",schemaType:"array",$data:!0,error:gb,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:i,it:a}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,fb.useFunc)(t,mb.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let u=t.const("vSchema",i);d=(0,to.or)(...o.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",i,u=>t.if((0,to._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=o[m];return typeof g=="object"&&g!==null?(0,to._)`${l()}(${r}, ${u}[${m}])`:(0,to._)`${r} === ${g}`}}};ic.default=hb});var _u=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var yb=pu(),wb=uu(),Ib=gu(),vb=hu(),bb=yu(),kb=wu(),Rb=Iu(),_b=bu(),Ab=ku(),Eb=Ru(),Pb=[yb.default,wb.default,Ib.default,vb.default,bb.default,kb.default,Rb.default,_b.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Ab.default,Eb.default];ac.default=Pb});var cc=E(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.validateAdditionalItems=void 0;var kr=x(),sc=q(),Nb={message:({params:{len:e}})=>(0,kr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,kr._)`{limit: ${e}}`},Ob={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Nb,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,sc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Au(e,n)}};function Au(e,t){let{gen:r,schema:n,data:o,keyword:i,it:a}=e;a.items=!0;let s=r.const("len",(0,kr._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,kr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,sc.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,kr._)`${s} <= ${t.length}`);r.if((0,kr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:i,dataProp:d,dataPropType:sc.Type.Num},l),a.allErrors||r.if((0,kr.not)(l),()=>r.break())})}}ro.validateAdditionalItems=Au;ro.default=Ob});var lc=E(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.validateTuple=void 0;var Eu=x(),vi=q(),Sb=it(),Db={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Pu(e,"additionalItems",t);r.items=!0,!(0,vi.alwaysValidSchema)(r,t)&&e.ok((0,Sb.validateArray)(e))}};function Pu(e,t,r=e.schema){let{gen:n,parentSchema:o,data:i,keyword:a,it:s}=e;d(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=vi.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Eu._)`${i}.length`);r.forEach((p,f)=>{(0,vi.alwaysValidSchema)(s,p)||(n.if((0,Eu._)`${l} > ${f}`,()=>e.subschema({keyword:a,schemaProp:f,dataProp:f},c)),e.ok(c))});function d(p){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===p.minItems&&(m===p.maxItems||p[t]===!1);if(f.strictTuples&&!g){let h=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,vi.checkStrictMode)(s,h,f.strictTuples)}}}no.validateTuple=Pu;no.default=Db});var Nu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var jb=lc(),$b={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,jb.validateTuple)(e,"items")};dc.default=$b});var Su=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var Ou=x(),Cb=q(),Tb=it(),Lb=cc(),xb={message:({params:{len:e}})=>(0,Ou.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ou._)`{limit: ${e}}`},Vb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:xb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,Cb.alwaysValidSchema)(n,t)&&(o?(0,Lb.validateAdditionalItems)(e,o):e.ok((0,Tb.validateArray)(e)))}};pc.default=Vb});var Du=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var st=x(),bi=q(),Mb={message:({params:{min:e,max:t}})=>t===void 0?(0,st.str)`must contain at least ${e} valid item(s)`:(0,st.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,st._)`{minContains: ${e}}`:(0,st._)`{minContains: ${e}, maxContains: ${t}}`},Ub={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Mb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e,a,s,{minContains:c,maxContains:l}=n;i.opts.next?(a=c===void 0?1:c,s=l):a=1;let d=t.const("len",(0,st._)`${o}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,bi.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,bi.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,bi.alwaysValidSchema)(i,r)){let g=(0,st._)`${d} >= ${a}`;s!==void 0&&(g=(0,st._)`${g} && ${d} <= ${s}`),e.pass(g);return}i.items=!0;let p=t.name("valid");s===void 0&&a===1?u(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,st._)`${o}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),h=t.let("count",0);u(g,()=>t.if(g,()=>m(h)))}function u(g,h){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:bi.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,st._)`${g}++`),s===void 0?t.if((0,st._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,st._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,st._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};uc.default=Ub});var ki=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.validateSchemaDeps=Nt.validatePropertyDeps=Nt.error=void 0;var fc=x(),Fb=q(),oo=it();Nt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,fc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,fc._)`{property: ${e},
|
|
1
|
+
import{a as E,b as Hr,c as jn,d as $d,e as T,f as Cd,g as Td,h as Ld,i as xd,j as Vd}from"./chunk.js";var Tn=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 fr=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=fr;var nt=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 fr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};K._Code=nt;K.nil=new nt("");function Md(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Zo(r,t[n]),r.push(e[++n]);return new nt(r)}K._=Md;var Xo=new nt("+");function Ud(e,...t){let r=[Cn(e[0])],n=0;for(;n<t.length;)r.push(Xo),Zo(r,t[n]),r.push(Xo,Cn(e[++n]));return Iy(r),new nt(r)}K.str=Ud;function Zo(e,t){t instanceof nt?e.push(...t._items):t instanceof fr?e.push(t):e.push(ky(t))}K.addCodeArg=Zo;function Iy(e){let t=1;for(;t<e.length-1;){if(e[t]===Xo){let r=vy(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function vy(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof fr||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 fr))return`"${e}${t.slice(1)}`}function by(e,t){return t.emptyStr()?e:e.emptyStr()?t:Ud`${e}${t}`}K.strConcat=by;function ky(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Cn(Array.isArray(e)?e.join(","):e)}function Ry(e){return new nt(Cn(e))}K.stringify=Ry;function Cn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=Cn;function _y(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new nt(`.${e}`):Md`[${e}]`}K.getProperty=_y;function Ay(e){if(typeof e=="string"&&K.IDENTIFIER.test(e))return new nt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}K.getEsmExportName=Ay;function Ey(e){return new nt(e.toString())}K.regexpCode=Ey});var ts=E(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.ValueScope=Ge.ValueScopeName=Ge.Scope=Ge.varKinds=Ge.UsedValueState=void 0;var Je=Tn(),Qo=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Xa;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Xa||(Ge.UsedValueState=Xa={}));Ge.varKinds={const:new Je.Name("const"),let:new Je.Name("let"),var:new Je.Name("var")};var Za=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Je.Name?t:this.name(t)}name(t){return new Je.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Ge.Scope=Za;var Qa=class extends Je.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Je._)`.${new Je.Name(r)}[${n}]`}};Ge.ValueScopeName=Qa;var Py=(0,Je._)`\n`,es=class extends Za{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Py:Je.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,Je._)`${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=Je.nil;for(let o in t){let s=t[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,Xa.Started);let d=r(l);if(d){let p=this.opts.es5?Ge.varKinds.var:Ge.varKinds.const;i=(0,Je._)`${i}${p} ${l} = ${d};${this.opts._n}`}else if(d=a?.(l))i=(0,Je._)`${i}${d}${this.opts._n}`;else throw new Qo(l);c.set(l,Xa.Completed)})}return i}};Ge.ValueScope=es});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=Tn(),mt=ts(),Kt=Tn();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Kt._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Kt.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Kt.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Kt.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Kt.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Kt.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Kt.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Kt.Name}});var ni=ts();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return ni.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return ni.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return ni.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return ni.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 Tt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},rs=class extends Tt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?mt.varKinds.var:this.varKind,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:{}}},ei=class extends Tt{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 ri(t,this.rhs)}},ns=class extends ei{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},as=class extends Tt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},is=class extends Tt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},os=class extends Tt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ss=class extends Tt{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:{}}},Ln=class extends Tt{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)||(Ny(t,i.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>hr(t,r.names),{})}},Lt=class extends Ln{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},cs=class extends Ln{},Xr=class extends Lt{};Xr.kind="else";var mr=class e extends Lt{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Xr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(Fd(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 ri(t,this.condition),this.else&&hr(t,this.else.names),t}};mr.kind="if";var gr=class extends Lt{};gr.kind="for";var ls=class extends gr{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 hr(super.names,this.iteration.names)}},ds=class extends gr{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?mt.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=ri(super.names,this.from);return ri(t,this.to)}},ti=class extends gr{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 hr(super.names,this.iterable.names)}},xn=class extends Lt{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)}};xn.kind="func";var Vn=class extends Ln{render(t){return"return "+super.render(t)}};Vn.kind="return";var ps=class extends Lt{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&&hr(t,this.catch.names),this.finally&&hr(t,this.finally.names),t}},Mn=class extends Lt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Mn.kind="catch";var Un=class extends Lt{render(t){return"finally"+super.render(t)}};Un.kind="finally";var us=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
+
`:""},this._extScope=t,this._scope=new mt.Scope({parent:t}),this._nodes=[new cs]}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 rs(t,i,n)),i}const(t,r,n){return this._def(mt.varKinds.const,t,r,n)}let(t,r,n){return this._def(mt.varKinds.let,t,r,n)}var(t,r,n){return this._def(mt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new ei(t,r,n))}add(t,r){return this._leafNode(new ns(t,U.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==B.nil&&this._leafNode(new ss(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 mr(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 mr(t))}else(){return this._elseNode(new Xr)}endIf(){return this._endBlockNode(mr,Xr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new ls(t),r)}forRange(t,r,n,a,i=this.opts.es5?mt.varKinds.var:mt.varKinds.let){let o=this._scope.toName(t);return this._for(new ds(i,o,r,n),()=>a(o))}forOf(t,r,n,a=mt.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 ti("of",a,i,r),()=>n(i))}forIn(t,r,n,a=this.opts.es5?mt.varKinds.var:mt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,B._)`Object.keys(${r})`,n);let i=this._scope.toName(t);return this._for(new ti("in",a,i,r),()=>n(i))}endFor(){return this._endBlockNode(gr)}label(t){return this._leafNode(new as(t))}break(t){return this._leafNode(new is(t))}return(t){let r=new Vn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Vn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new ps;if(this._blockNode(a),this.code(t),r){let i=this.name("e");this._currNode=a.catch=new Mn(i),r(i)}return n&&(this._currNode=a.finally=new Un,this.code(n)),this._endBlockNode(Mn,Un)}throw(t){return this._leafNode(new os(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 xn(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(xn)}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 mr))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=us;function hr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function ri(e,t){return t instanceof B._CodeOrName?hr(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 Ny(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function Fd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,B._)`!${fs(e)}`}U.not=Fd;var Oy=qd(U.operators.AND);function Sy(...e){return e.reduce(Oy)}U.and=Sy;var Dy=qd(U.operators.OR);function jy(...e){return e.reduce(Dy)}U.or=jy;function qd(e){return(t,r)=>t===B.nil?r:r===B.nil?t:(0,B._)`${fs(t)} ${e} ${fs(r)}`}function fs(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 ae=x(),$y=Tn();function Cy(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=Cy;function Ty(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Jd(e,t),!Gd(t,e.self.RULES.all))}F.alwaysValidSchema=Ty;function Jd(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]||Yd(e,`unknown keyword: "${i}"`)}F.checkUnknownRules=Jd;function Gd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}F.schemaHasRules=Gd;function Ly(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=Ly;function xy({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ae._)`${r}`}return(0,ae._)`${e}${t}${(0,ae.getProperty)(n)}`}F.schemaRefOrVal=xy;function Vy(e){return Wd(decodeURIComponent(e))}F.unescapeFragment=Vy;function My(e){return encodeURIComponent(gs(e))}F.escapeFragment=My;function gs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}F.escapeJsonPointer=gs;function Wd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}F.unescapeJsonPointer=Wd;function Uy(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}F.eachItem=Uy;function Bd({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,i,o,s)=>{let c=o===void 0?i:o instanceof ae.Name?(i instanceof ae.Name?e(a,i,o):t(a,i,o),o):i instanceof ae.Name?(t(a,o,i),i):r(i,o);return s===ae.Name&&!(c instanceof ae.Name)?n(a,c):c}}F.mergeEvaluated={props:Bd({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ae._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ae._)`${r} || {}`).code((0,ae._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ae._)`${r} || {}`),hs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Kd}),items:Bd({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ae._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ae._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Kd(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&hs(e,r,t),r}F.evaluatedPropsToName=Kd;function hs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}F.setEvaluated=hs;var zd={};function Fy(e,t){return e.scopeValue("func",{ref:t,code:zd[t.code]||(zd[t.code]=new $y._Code(t.code))})}F.useFunc=Fy;var ms;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ms||(F.Type=ms={}));function qy(e,t,r){if(e instanceof ae.Name){let n=t===ms.Num;return r?n?(0,ae._)`"[" + ${e} + "]"`:(0,ae._)`"['" + ${e} + "']"`:n?(0,ae._)`"/" + ${e}`:(0,ae._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ae.getProperty)(e).toString():"/"+gs(e)}F.getErrorPath=qy;function Yd(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=Yd});var at=E(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});var Te=x(),By={data:new Te.Name("data"),valCxt:new Te.Name("valCxt"),instancePath:new Te.Name("instancePath"),parentData:new Te.Name("parentData"),parentDataProperty:new Te.Name("parentDataProperty"),rootData:new Te.Name("rootData"),dynamicAnchors:new Te.Name("dynamicAnchors"),vErrors:new Te.Name("vErrors"),errors:new Te.Name("errors"),this:new Te.Name("this"),self:new Te.Name("self"),scope:new Te.Name("scope"),json:new Te.Name("json"),jsonPos:new Te.Name("jsonPos"),jsonLen:new Te.Name("jsonLen"),jsonPart:new Te.Name("jsonPart")};ys.default=By});var Fn=E(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.extendErrors=Le.resetErrorsCount=Le.reportExtraError=Le.reportError=Le.keyword$DataError=Le.keywordError=void 0;var G=x(),ai=q(),Fe=at();Le.keywordError={message:({keyword:e})=>(0,G.str)`must pass "${e}" keyword validation`};Le.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,G.str)`"${e}" keyword must be ${t} ($data)`:(0,G.str)`"${e}" keyword is invalid ($data)`};function zy(e,t=Le.keywordError,r,n){let{it:a}=e,{gen:i,compositeRule:o,allErrors:s}=a,c=Zd(e,t,r);n??(o||s)?Hd(i,c):Xd(a,(0,G._)`[${c}]`)}Le.reportError=zy;function Jy(e,t=Le.keywordError,r){let{it:n}=e,{gen:a,compositeRule:i,allErrors:o}=n,s=Zd(e,t,r);Hd(a,s),i||o||Xd(n,Fe.default.vErrors)}Le.reportExtraError=Jy;function Gy(e,t){e.assign(Fe.default.errors,t),e.if((0,G._)`${Fe.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,G._)`${Fe.default.vErrors}.length`,t),()=>e.assign(Fe.default.vErrors,null)))}Le.resetErrorsCount=Gy;function Wy({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,Fe.default.errors,s=>{e.const(o,(0,G._)`${Fe.default.vErrors}[${s}]`),e.if((0,G._)`${o}.instancePath === undefined`,()=>e.assign((0,G._)`${o}.instancePath`,(0,G.strConcat)(Fe.default.instancePath,i.errorPath))),e.assign((0,G._)`${o}.schemaPath`,(0,G.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,G._)`${o}.schema`,r),e.assign((0,G._)`${o}.data`,n))})}Le.extendErrors=Wy;function Hd(e,t){let r=e.const("err",t);e.if((0,G._)`${Fe.default.vErrors} === null`,()=>e.assign(Fe.default.vErrors,(0,G._)`[${r}]`),(0,G._)`${Fe.default.vErrors}.push(${r})`),e.code((0,G._)`${Fe.default.errors}++`)}function Xd(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,G._)`new ${e.ValidationError}(${t})`):(r.assign((0,G._)`${n}.errors`,t),r.return(!1))}var yr={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Zd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,G._)`{}`:Ky(e,t,r)}function Ky(e,t,r={}){let{gen:n,it:a}=e,i=[Yy(a,r),Hy(e,r)];return Xy(e,t,i),n.object(...i)}function Yy({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,ai.getErrorPath)(t,ai.Type.Str)}`:e;return[Fe.default.instancePath,(0,G.strConcat)(Fe.default.instancePath,r)]}function Hy({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,G.str)`${t}/${e}`;return r&&(a=(0,G.str)`${a}${(0,ai.getErrorPath)(r,ai.Type.Str)}`),[yr.schemaPath,a]}function Xy(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([yr.keyword,a],[yr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([yr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([yr.schema,o],[yr.parentSchema,(0,G._)`${d}${p}`],[Fe.default.data,i]),l&&n.push([yr.propertyName,l])}});var ep=E(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.boolOrEmptySchema=Qr.topBoolOrEmptySchema=void 0;var Zy=Fn(),Qy=x(),ew=at(),tw={message:"boolean schema is false"};function rw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Qd(e,!1):typeof r=="object"&&r.$async===!0?t.return(ew.default.data):(t.assign((0,Qy._)`${n}.errors`,null),t.return(!0))}Qr.topBoolOrEmptySchema=rw;function nw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Qd(e)):r.var(t,!0)}Qr.boolOrEmptySchema=nw;function Qd(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,Zy.reportError)(a,tw,void 0,t)}});var ws=E(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.getRules=en.isJSONType=void 0;var aw=["string","number","integer","boolean","null","object","array"],iw=new Set(aw);function ow(e){return typeof e=="string"&&iw.has(e)}en.isJSONType=ow;function sw(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}en.getRules=sw});var Is=E(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.shouldUseRule=Yt.shouldUseGroup=Yt.schemaHasRulesForType=void 0;function cw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&tp(e,n)}Yt.schemaHasRulesForType=cw;function tp(e,t){return t.rules.some(r=>rp(e,r))}Yt.shouldUseGroup=tp;function rp(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))}Yt.shouldUseRule=rp});var qn=E(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});xe.reportTypeError=xe.checkDataTypes=xe.checkDataType=xe.coerceAndCheckDataType=xe.getJSONTypes=xe.getSchemaTypes=xe.DataType=void 0;var lw=ws(),dw=Is(),pw=Fn(),V=x(),np=q(),tn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(tn||(xe.DataType=tn={}));function uw(e){let t=ap(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}xe.getSchemaTypes=uw;function ap(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(lw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}xe.getJSONTypes=ap;function fw(e,t){let{gen:r,data:n,opts:a}=e,i=mw(t,a.coerceTypes),o=t.length>0&&!(i.length===0&&t.length===1&&(0,dw.schemaHasRulesForType)(e,t[0]));if(o){let s=bs(t,n,a.strictNumbers,tn.Wrong);r.if(s,()=>{i.length?gw(e,t,i):ks(e)})}return o}xe.coerceAndCheckDataType=fw;var ip=new Set(["string","number","integer","boolean","null"]);function mw(e,t){return t?e.filter(r=>ip.has(r)||t==="array"&&r==="array"):[]}function gw(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(bs(t,a,i.strictNumbers),()=>n.assign(s,a))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(ip.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),ks(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(a,s),hw(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
|
+
|| (${o} == "string" && ${a} && ${a} == +${a})`).assign(s,(0,V._)`+${a}`);return;case"integer":n.elseIf((0,V._)`${o} === "boolean" || ${a} === null
|
|
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 hw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function vs(e,t,r,n=tn.Correct){let a=n===tn.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===tn.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)}}xe.checkDataType=vs;function bs(e,t,r,n){if(e.length===1)return vs(e[0],t,r,n);let a,i=(0,np.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,vs(o,t,r,n));return a}xe.checkDataTypes=bs;var yw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function ks(e){let t=ww(e);(0,pw.reportError)(t,yw)}xe.reportTypeError=ks;function ww(e){let{gen:t,data:r,schema:n}=e,a=(0,np.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var sp=E(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.assignDefaults=void 0;var rn=x(),Iw=q();function vw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)op(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,i)=>op(e,i,a.default))}ii.assignDefaults=vw;function op(e,t,r){let{gen:n,compositeRule:a,data:i,opts:o}=e;if(r===void 0)return;let s=(0,rn._)`${i}${(0,rn.getProperty)(t)}`;if(a){(0,Iw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,rn._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,rn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,rn._)`${s} = ${(0,rn.stringify)(r)}`)}});var it=E(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.validateUnion=re.validateArray=re.usePattern=re.callValidateCode=re.schemaProperties=re.allSchemaProperties=re.noPropertyInData=re.propertyInData=re.isOwnProperty=re.hasPropFunc=re.reportMissingProp=re.checkMissingProp=re.checkReportMissingProp=void 0;var de=x(),Rs=q(),Ht=at(),bw=q();function kw(e,t){let{gen:r,data:n,it:a}=e;r.if(As(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,de._)`${t}`},!0),e.error()})}re.checkReportMissingProp=kw;function Rw({gen:e,data:t,it:{opts:r}},n,a){return(0,de.or)(...n.map(i=>(0,de.and)(As(e,t,i,r.ownProperties),(0,de._)`${a} = ${i}`)))}re.checkMissingProp=Rw;function _w(e,t){e.setParams({missingProperty:t},!0),e.error()}re.reportMissingProp=_w;function cp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=cp;function _s(e,t,r){return(0,de._)`${cp(e)}.call(${t}, ${r})`}re.isOwnProperty=_s;function Aw(e,t,r,n){let a=(0,de._)`${t}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${a} && ${_s(e,t,r)}`:a}re.propertyInData=Aw;function As(e,t,r,n){let a=(0,de._)`${t}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(a,(0,de.not)(_s(e,t,r))):a}re.noPropertyInData=As;function lp(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}re.allSchemaProperties=lp;function Ew(e,t){return lp(t).filter(r=>!(0,Rs.alwaysValidSchema)(e,t[r]))}re.schemaProperties=Ew;function Pw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:i},it:o},s,c,l){let d=l?(0,de._)`${e}, ${t}, ${n}${a}`:t,p=[[Ht.default.instancePath,(0,de.strConcat)(Ht.default.instancePath,i)],[Ht.default.parentData,o.parentData],[Ht.default.parentDataProperty,o.parentDataProperty],[Ht.default.rootData,Ht.default.rootData]];o.opts.dynamicRef&&p.push([Ht.default.dynamicAnchors,Ht.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...p)}`;return c!==de.nil?(0,de._)`${s}.call(${c}, ${f})`:(0,de._)`${s}(${f})`}re.callValidateCode=Pw;var Nw=(0,de._)`new RegExp`;function Ow({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,de._)`${a.code==="new RegExp"?Nw:(0,bw.useFunc)(e,a)}(${r}, ${n})`})}re.usePattern=Ow;function Sw(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,de._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Rs.Type.Num},i),t.if((0,de.not)(i),s)})}}re.validateArray=Sw;function Dw(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,Rs.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,de._)`${o} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,de.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}re.validateUnion=Dw});var up=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.validateKeywordUsage=Nt.validSchemaType=Nt.funcKeywordCode=Nt.macroKeywordCode=void 0;var qe=x(),wr=at(),jw=it(),$w=Fn();function Cw(e,t){let{gen:r,keyword:n,schema:a,parentSchema:i,it:o}=e,s=t.macro.call(o.self,a,i,o),c=pp(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:qe.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Nt.macroKeywordCode=Cw;function Tw(e,t){var r;let{gen:n,keyword:a,schema:i,parentSchema:o,$data:s,it:c}=e;xw(c,t);let l=!s&&t.compile?t.compile.call(c.self,i,o,c):t.validate,d=pp(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&&dp(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&dp(e),h(()=>Lw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,qe._)`await `),_=>n.assign(p,!1).if((0,qe._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,qe._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,qe._)`${d}.errors`;return n.assign(w,null),g(qe.nil),w}function g(w=t.async?(0,qe._)`await `:qe.nil){let _=c.opts.passContext?wr.default.this:wr.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,qe._)`${w}${(0,jw.callValidateCode)(e,d,_,b)}`,t.modifying)}function h(w){var _;n.if((0,qe.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Nt.funcKeywordCode=Tw;function dp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,qe._)`${n.parentData}[${n.parentDataProperty}]`))}function Lw(e,t){let{gen:r}=e;r.if((0,qe._)`Array.isArray(${t})`,()=>{r.assign(wr.default.vErrors,(0,qe._)`${wr.default.vErrors} === null ? ${t} : ${wr.default.vErrors}.concat(${t})`).assign(wr.default.errors,(0,qe._)`${wr.default.vErrors}.length`),(0,$w.extendErrors)(e)},()=>e.error())}function xw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function pp(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,qe.stringify)(r)})}function Vw(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")}Nt.validSchemaType=Vw;function Mw({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)}}Nt.validateKeywordUsage=Mw});var mp=E(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.extendSubschemaMode=Xt.extendSubschemaData=Xt.getSubschema=void 0;var Ot=x(),fp=q();function Uw(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,Ot._)`${e.schemaPath}${(0,Ot.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Ot._)`${e.schemaPath}${(0,Ot.getProperty)(t)}${(0,Ot.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,fp.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')}Xt.getSubschema=Uw;function Fw(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,Ot._)`${t.data}${(0,Ot.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Ot.str)`${l}${(0,fp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Ot._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(a!==void 0){let l=a instanceof Ot.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]}}Xt.extendSubschemaData=Fw;function qw(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}Xt.extendSubschemaMode=qw});var Es=E((CN,gp)=>{"use strict";gp.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 yp=E((TN,hp)=>{"use strict";var Zt=hp.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(){};oi(t,n,a,e,"",e)};Zt.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Zt.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Zt.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Zt.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 oi(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 Zt.arrayKeywords)for(var f=0;f<p.length;f++)oi(e,t,r,p[f],a+"/"+d+"/"+f,i,a,d,n,f)}else if(d in Zt.propsKeywords){if(p&&typeof p=="object")for(var u in p)oi(e,t,r,p[u],a+"/"+d+"/"+Bw(u),i,a,d,n,u)}else(d in Zt.keywords||e.allKeys&&!(d in Zt.skipKeywords))&&oi(e,t,r,p,a+"/"+d,i,a,d,n)}r(n,a,i,o,s,c,l)}}function Bw(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Bn=E(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.getSchemaRefs=We.resolveUrl=We.normalizeId=We._getFullPath=We.getFullPath=We.inlineRef=void 0;var zw=q(),Jw=Es(),Gw=yp(),Ww=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Kw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Ps(e):t?wp(e)<=t:!1}We.inlineRef=Kw;var Yw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Ps(e){for(let t in e){if(Yw.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Ps)||typeof r=="object"&&Ps(r))return!0}return!1}function wp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!Ww.has(r)&&(typeof e[r]=="object"&&(0,zw.eachItem)(e[r],n=>t+=wp(n)),t===1/0))return 1/0}return t}function Ip(e,t="",r){r!==!1&&(t=nn(t));let n=e.parse(t);return vp(e,n)}We.getFullPath=Ip;function vp(e,t){return e.serialize(t).split("#")[0]+"#"}We._getFullPath=vp;var Hw=/#\/?$/;function nn(e){return e?e.replace(Hw,""):""}We.normalizeId=nn;function Xw(e,t,r){return r=nn(r),e.resolve(t,r)}We.resolveUrl=Xw;var Zw=/^[a-z_][-a-z0-9._]*$/i;function Qw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=nn(e[r]||t),i={"":a},o=Ip(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(b){let A=this.opts.uriResolver.resolve;if(b=nn(h?A(h,b):b),c.has(b))throw d(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,b):b!==nn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function _(b){if(typeof b=="string"){if(!Zw.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Jw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}We.getSchemaRefs=Qw});var Gn=E(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.getData=Qt.KeywordCxt=Qt.validateFunctionCode=void 0;var Ap=ep(),bp=qn(),Os=Is(),si=qn(),eI=sp(),Jn=up(),Ns=mp(),S=x(),L=at(),tI=Bn(),xt=q(),zn=Fn();function rI(e){if(Np(e)&&(Op(e),Pp(e))){iI(e);return}Ep(e,()=>(0,Ap.topBoolOrEmptySchema)(e))}Qt.validateFunctionCode=rI;function Ep({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},i){a.code.es5?e.func(t,(0,S._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,S._)`"use strict"; ${kp(r,a)}`),aI(e,a),e.code(i)}):e.func(t,(0,S._)`${L.default.data}, ${nI(a)}`,n.$async,()=>e.code(kp(r,a)).code(i))}function nI(e){return(0,S._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,S._)`, ${L.default.dynamicAnchors}={}`:S.nil}}={}`}function aI(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,S._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,S._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,S._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,S._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,S._)`""`),e.var(L.default.parentData,(0,S._)`undefined`),e.var(L.default.parentDataProperty,(0,S._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`{}`)})}function iI(e){let{schema:t,opts:r,gen:n}=e;Ep(e,()=>{r.$comment&&t.$comment&&Dp(e),dI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&oI(e),Sp(e),fI(e)})}function oI(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,S._)`${r}.evaluated`),t.if((0,S._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,S._)`${e.evaluated}.props`,(0,S._)`undefined`)),t.if((0,S._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,S._)`${e.evaluated}.items`,(0,S._)`undefined`))}function kp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,S._)`/*# sourceURL=${r} */`:S.nil}function sI(e,t){if(Np(e)&&(Op(e),Pp(e))){cI(e,t);return}(0,Ap.boolOrEmptySchema)(e,t)}function Pp({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 Np(e){return typeof e.schema!="boolean"}function cI(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&Dp(e),pI(e),uI(e);let i=n.const("_errs",L.default.errors);Sp(e,i),n.var(t,(0,S._)`${i} === ${L.default.errors}`)}function Op(e){(0,xt.checkUnknownRules)(e),lI(e)}function Sp(e,t){if(e.opts.jtd)return Rp(e,[],!1,t);let r=(0,bp.getSchemaTypes)(e.schema),n=(0,bp.coerceAndCheckDataType)(e,r);Rp(e,r,!n,t)}function lI(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,xt.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function dI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,xt.checkStrictMode)(e,"default is ignored in the schema root")}function pI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,tI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function uI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Dp({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let i=r.$comment;if(a.$comment===!0)e.code((0,S._)`${L.default.self}.logger.log(${i})`);else if(typeof a.$comment=="function"){let o=(0,S.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,S._)`${L.default.self}.opts.$comment(${i}, ${o}, ${s}.schema)`)}}function fI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:i}=e;r.$async?t.if((0,S._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,S._)`new ${a}(${L.default.vErrors})`)):(t.assign((0,S._)`${n}.errors`,L.default.vErrors),i.unevaluated&&mI(e),t.return((0,S._)`${L.default.errors} === 0`))}function mI({gen:e,evaluated:t,props:r,items:n}){r instanceof S.Name&&e.assign((0,S._)`${t}.props`,r),n instanceof S.Name&&e.assign((0,S._)`${t}.items`,n)}function Rp(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,xt.schemaHasRulesButRef)(i,d))){a.block(()=>$p(e,"$ref",d.all.$ref.definition));return}c.jtd||gI(e,t),a.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Os.shouldUseGroup)(i,f)&&(f.type?(a.if((0,si.checkDataType)(f.type,o,c.strictNumbers)),_p(e,f),t.length===1&&t[0]===f.type&&r&&(a.else(),(0,si.reportTypeError)(e)),a.endIf()):_p(e,f),s||a.if((0,S._)`${L.default.errors} === ${n||0}`))}}function _p(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,eI.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,Os.shouldUseRule)(n,i)&&$p(e,i.keyword,i.definition,t.type)})}function gI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(hI(e,t),e.opts.allowUnionTypes||yI(e,t),wI(e,e.dataTypes))}function hI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{jp(e.dataTypes,r)||Ss(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),vI(e,t)}}function yI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ss(e,"use allowUnionTypes to allow union type keyword")}function wI(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,Os.shouldUseRule)(e.schema,a)){let{type:i}=a.definition;i.length&&!i.some(o=>II(t,o))&&Ss(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function II(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function jp(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function vI(e,t){let r=[];for(let n of e.dataTypes)jp(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ss(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,xt.checkStrictMode)(e,t,e.opts.strictTypes)}var ci=class{constructor(t,r,n){if((0,Jn.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,xt.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",Cp(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Jn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,S.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,S.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,S._)`${r} !== undefined && (${(0,S.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?zn.reportExtraError:zn.reportError)(this,this.def.error,r)}$dataError(){(0,zn.reportError)(this,this.def.$dataError||zn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,zn.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=S.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=S.nil,r=S.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:i,def:o}=this;n.if((0,S.or)((0,S._)`${a} === undefined`,r)),t!==S.nil&&n.assign(t,!0),(i.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==S.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:a,it:i}=this;return(0,S.or)(o(),s());function o(){if(n.length){if(!(r instanceof S.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,S._)`${(0,si.checkDataTypes)(c,r,i.opts.strictNumbers,si.DataType.Wrong)}`}return S.nil}function s(){if(a.validateSchema){let c=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,S._)`!${c}(${r})`}return S.nil}}subschema(t,r){let n=(0,Ns.getSubschema)(this.it,t);(0,Ns.extendSubschemaData)(n,this.it,t),(0,Ns.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return sI(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=xt.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=xt.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,S.Name)),!0}};Qt.KeywordCxt=ci;function $p(e,t,r,n){let a=new ci(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,Jn.funcKeywordCode)(a,r):"macro"in r?(0,Jn.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,Jn.funcKeywordCode)(a,r)}var bI=/^\/(?:[^~]|~0|~1)*$/,kI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Cp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,i;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!bI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,i=L.default.rootData}else{let l=kI.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,S._)`${i}${(0,S.getProperty)((0,xt.unescapeJsonPointer)(l))}`,o=(0,S._)`${o} && ${i}`);return o;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Qt.getData=Cp});var li=E(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});var Ds=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};js.default=Ds});var Wn=E(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var $s=Bn(),Cs=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,$s.resolveUrl)(t,r,n),this.missingSchema=(0,$s.normalizeId)((0,$s.getFullPath)(t,this.missingRef))}};Ts.default=Cs});var Kn=E(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.resolveSchema=ot.getCompilingSchema=ot.resolveRef=ot.compileSchema=ot.SchemaEnv=void 0;var gt=x(),RI=li(),Ir=at(),ht=Bn(),Tp=q(),_I=Gn(),an=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,ht.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};ot.SchemaEnv=an;function xs(e){let t=Lp.call(this,e);if(t)return t;let r=(0,ht.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:i}=this.opts,o=new gt.CodeGen(this.scope,{es5:n,lines:a,ownProperties:i}),s;e.$async&&(s=o.scopeValue("Error",{ref:RI.default,code:(0,gt._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let l={gen:o,allErrors:this.opts.allErrors,data:Ir.default.data,parentData:Ir.default.parentData,parentDataProperty:Ir.default.parentDataProperty,dataNames:[Ir.default.data],dataPathArr:[gt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,gt.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:gt.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,gt._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,_I.validateFunctionCode)(l),o.optimize(this.opts.code.optimize);let p=o.toString();d=`${o.scopeRefs(Ir.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${Ir.default.self}`,`${Ir.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 gt.Name?void 0:m,items:g instanceof gt.Name?void 0:g,dynamicProps:m instanceof gt.Name,dynamicItems:g instanceof gt.Name},u.source&&(u.source.evaluated=(0,gt.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}ot.compileSchema=xs;function AI(e,t,r){var n;r=(0,ht.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let i=NI.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 an({schema:o,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=EI.call(this,i)}ot.resolveRef=AI;function EI(e){return(0,ht.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:xs.call(this,e)}function Lp(e){for(let t of this._compilations)if(PI(t,e))return t}ot.getCompilingSchema=Lp;function PI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function NI(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||di.call(this,e,t)}function di(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ht._getFullPath)(this.opts.uriResolver,r),a=(0,ht.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return Ls.call(this,r,e);let i=(0,ht.normalizeId)(n),o=this.refs[i]||this.schemas[i];if(typeof o=="string"){let s=di.call(this,e,o);return typeof s?.schema!="object"?void 0:Ls.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||xs.call(this,o),i===(0,ht.normalizeId)(t)){let{schema:s}=o,{schemaId:c}=this.opts,l=s[c];return l&&(a=(0,ht.resolveUrl)(this.opts.uriResolver,a,l)),new an({schema:s,schemaId:c,root:e,baseId:a})}return Ls.call(this,r,o)}}ot.resolveSchema=di;var OI=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Ls(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,Tp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!OI.has(s)&&l&&(t=(0,ht.resolveUrl)(this.opts.uriResolver,t,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,Tp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ht.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=di.call(this,n,s)}let{schemaId:o}=this.opts;if(i=i||new an({schema:r,schemaId:o,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var xp=E((FN,SI)=>{SI.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 Us=E((qN,Bp)=>{"use strict";var DI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Mp=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),Vs=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Up=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),jI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Ms(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var $I=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Vp(e){return e.length=0,!0}function CI(e,t,r){if(e.length){let n=Ms(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function TI(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],i=!1,o=!1,s=CI;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=Vp}else{a.push(l);continue}}return a.length&&(s===Vp?r.zone=a.join(""):o?n.push(a.join("")):n.push(Ms(a))),r.address=n.join(""),r}function Fp(e){if(LI(e,":")<2)return{host:e,isIPV6:!1};let t=TI(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 LI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function xI(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 VI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},MI=/[@/?#:]/g,UI=/[@/?#]/g;function qp(e,t){let r=t?UI:MI;return r.lastIndex=0,e.replace(r,n=>VI[n])}function FI(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(Vs(a)){let i=a.toUpperCase(),o=String.fromCharCode(parseInt(i,16));t&&Up(o)?r+=o:r+="%"+i,n+=2;continue}}r+=e[n]}return r}function qI(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(Vs(n)){let a=n.toUpperCase(),i=String.fromCharCode(parseInt(a,16));i!=="."&&Up(i)?t+=i:t+="%"+a,r+=2;continue}}jI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function BI(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(Vs(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function zI(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!Mp(r)){let n=Fp(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=qp(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}Bp.exports={nonSimpleDomain:$I,recomposeAuthority:zI,reescapeHostDelimiters:qp,normalizePercentEncoding:FI,normalizePathEncoding:qI,escapePreservingEscapes:BI,removeDotSegments:xI,isIPv4:Mp,isUUID:DI,normalizeIPv6:Fp,stringArrayToHexStripped:Ms}});var Kp=E((BN,Wp)=>{"use strict";var{isUUID:JI}=Us(),GI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,WI=["http","https","ws","wss","urn","urn:uuid"];function KI(e){return WI.indexOf(e)!==-1}function Fs(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 zp(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Jp(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 YI(e){return e.secure=Fs(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function HI(e){if((e.port===(Fs(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 XI(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=qs(a);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function ZI(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=qs(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 QI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!JI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function ev(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Gp={scheme:"http",domainHost:!0,parse:zp,serialize:Jp},tv={scheme:"https",domainHost:Gp.domainHost,parse:zp,serialize:Jp},pi={scheme:"ws",domainHost:!0,parse:YI,serialize:HI},rv={scheme:"wss",domainHost:pi.domainHost,parse:pi.parse,serialize:pi.serialize},nv={scheme:"urn",parse:XI,serialize:ZI,skipNormalize:!0},av={scheme:"urn:uuid",parse:QI,serialize:ev,skipNormalize:!0},ui={http:Gp,https:tv,ws:pi,wss:rv,urn:nv,"urn:uuid":av};Object.setPrototypeOf(ui,null);function qs(e){return e&&(ui[e]||ui[e.toLowerCase()])||void 0}Wp.exports={wsIsSecure:Fs,SCHEMES:ui,isValidSchemeName:KI,getSchemeHandler:qs}});var Qp=E((zN,gi)=>{"use strict";var{normalizeIPv6:iv,removeDotSegments:Yn,recomposeAuthority:ov,normalizePercentEncoding:sv,normalizePathEncoding:cv,escapePreservingEscapes:lv,reescapeHostDelimiters:dv,isIPv4:pv,nonSimpleDomain:uv}=Us(),{SCHEMES:fv,getSchemeHandler:Hp}=Kp();function mv(e,t){return typeof e=="string"?e=bv(e,t):typeof e=="object"&&(e=mi(vr(e,t),t)),e}function gv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:a,malformedAuthorityOrPort:i}=fi(e,n),{parsed:o,malformedAuthorityOrPort:s}=fi(t,n);if(i||s)throw new Error(a.error||o.error||"URI is malformed.");let c=Xp(a,o,n,!0);return n.skipEscape=!0,vr(c,n)}function Xp(e,t,r,n){let a={};return n||(e=mi(vr(e,r),r),t=mi(vr(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=Yn(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=Yn(t.path||""),a.query=t.query):(t.path?(t.path[0]==="/"?a.path=Yn(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=Yn(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 hv(e,t,r){let n=Yp(e,r),a=Yp(t,r);return n!==void 0&&a!==void 0&&n.toLowerCase()===a.toLowerCase()}function vr(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=Hp(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=sv(r.path):(r.path=lv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let o=ov(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=Yn(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 yv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,wv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Iv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function vv(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 fi(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(wv);o!==null&&o[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",a=!0);let s=e.match(Iv);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(yv);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=vv(n,c);if(l!==void 0&&(n.error=n.error||l,a=!0),n.host)if(pv(n.host)===!1){let f=iv(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=Hp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&uv(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=dv(unescape(n.host),i))),n.path&&(n.path=cv(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 mi(e,t){return fi(e,t).parsed}function bv(e,t){return Zp(e,t).normalized}function Zp(e,t){let{parsed:r,malformedAuthorityOrPort:n}=fi(e,t);return{normalized:n?e:vr(r,t),malformedAuthorityOrPort:n}}function Yp(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Zp(e,t);return n?void 0:r}if(typeof e=="object")return vr(e,t)}var Bs={SCHEMES:fv,normalize:mv,resolve:gv,resolveComponent:Xp,equal:hv,serialize:vr,parse:mi};gi.exports=Bs;gi.exports.default=Bs;gi.exports.fastUri=Bs});var tu=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var eu=Qp();eu.code='require("ajv/dist/runtime/uri").default';zs.default=eu});var lu=E(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.CodeGen=Pe.Name=Pe.nil=Pe.stringify=Pe.str=Pe._=Pe.KeywordCxt=void 0;var kv=Gn();Object.defineProperty(Pe,"KeywordCxt",{enumerable:!0,get:function(){return kv.KeywordCxt}});var on=x();Object.defineProperty(Pe,"_",{enumerable:!0,get:function(){return on._}});Object.defineProperty(Pe,"str",{enumerable:!0,get:function(){return on.str}});Object.defineProperty(Pe,"stringify",{enumerable:!0,get:function(){return on.stringify}});Object.defineProperty(Pe,"nil",{enumerable:!0,get:function(){return on.nil}});Object.defineProperty(Pe,"Name",{enumerable:!0,get:function(){return on.Name}});Object.defineProperty(Pe,"CodeGen",{enumerable:!0,get:function(){return on.CodeGen}});var Rv=li(),ou=Wn(),_v=ws(),Hn=Kn(),Av=x(),Xn=Bn(),hi=qn(),Gs=q(),ru=xp(),Ev=tu(),su=(e,t)=>new RegExp(e,t);su.code="new RegExp";var Pv=["removeAdditional","useDefaults","coerceTypes"],Nv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Ov={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."},Sv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},nu=200;function Dv(e){var t,r,n,a,i,o,s,c,l,d,p,f,u,m,g,h,w,_,b,A,I,R,N,j,te;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,X=P===!0||P===void 0?1:P||0,oe=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:su,rt=(a=e.uriResolver)!==null&&a!==void 0?a:Ev.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:X,regExp:oe}:{optimize:X,regExp:oe},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:nu,loopEnum:(h=e.loopEnum)!==null&&h!==void 0?h:nu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(N=e.validateFormats)!==null&&N!==void 0?N:!0,unicodeRegExp:(j=e.unicodeRegExp)!==null&&j!==void 0?j:!0,int32range:(te=e.int32range)!==null&&te!==void 0?te:!0,uriResolver:rt}}var Zn=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,...Dv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new Av.ValueScope({scope:{},prefixes:Nv,es5:r,lines:n}),this.logger=xv(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,_v.getRules)(),au.call(this,Ov,t,"NOT SUPPORTED"),au.call(this,Sv,t,"DEPRECATED","warn"),this._metaOpts=Tv.call(this),t.formats&&$v.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Cv.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),jv.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=ru;n==="id"&&(a={...ru},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 ou.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,Xn.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=iu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new Hn.SchemaEnv({schema:{},schemaId:n});if(r=Hn.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=iu.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,Xn.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(Mv.call(this,n,r),!r)return(0,Gs.eachItem)(n,i=>Js.call(this,i)),this;Fv.call(this,r);let a={...r,type:(0,hi.getJSONTypes)(r.type),schemaType:(0,hi.getJSONTypes)(r.schemaType)};return(0,Gs.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]=cu(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,Xn.normalizeId)(o||n);let l=Xn.getSchemaRefs.call(this,t,n);return c=new Hn.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):Hn.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{Hn.compileSchema.call(this,t)}finally{this.opts=r}}};Zn.ValidationError=Rv.default;Zn.MissingRefError=ou.default;Pe.default=Zn;function au(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 iu(e){return e=(0,Xn.normalizeId)(e),this.schemas[e]||this.refs[e]}function jv(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function $v(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Cv(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 Tv(){let e={...this.opts};for(let t of Pv)delete e[t];return e}var Lv={log(){},warn(){},error(){}};function xv(e){if(e===!1)return Lv;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 Vv=/^[a-z_$][a-z0-9_$:-]*$/i;function Mv(e,t){let{RULES:r}=this;if((0,Gs.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Vv.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,hi.getJSONTypes)(t.type),schemaType:(0,hi.getJSONTypes)(t.schemaType)}};t.before?Uv.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 Uv(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 Fv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=cu(t)),e.validateSchema=this.compile(t,!0))}var qv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function cu(e){return{anyOf:[e,qv]}}});var du=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Bv={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ws.default=Bv});var Ii=E(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.callRef=br.getValidate=void 0;var zv=Wn(),pu=it(),Ke=x(),sn=at(),uu=Kn(),yi=q(),Jv={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=uu.resolveRef.call(c,l,a,r);if(d===void 0)throw new zv.default(n.opts.uriResolver,a,r);if(d instanceof uu.SchemaEnv)return f(d);return u(d);function p(){if(i===l)return wi(e,o,i,i.$async);let m=t.scopeValue("root",{ref:l});return wi(e,(0,Ke._)`${m}.validate`,l,l.$async)}function f(m){let g=fu(e,m);wi(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Ke.stringify)(m)}:{ref:m}),h=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Ke.nil,topSchemaRef:g,errSchemaPath:r},h);e.mergeEvaluated(w),e.ok(h)}}};function fu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Ke._)`${r.scopeValue("wrapper",{ref:t})}.validate`}br.getValidate=fu;function wi(e,t,r,n){let{gen:a,it:i}=e,{allErrors:o,schemaEnv:s,opts:c}=i,l=c.passContext?sn.default.this:Ke.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=a.let("valid");a.try(()=>{a.code((0,Ke._)`await ${(0,pu.callValidateCode)(e,t,l)}`),u(t),o||a.assign(m,!0)},g=>{a.if((0,Ke._)`!(${g} instanceof ${i.ValidationError})`,()=>a.throw(g)),f(g),o||a.assign(m,!1)}),e.ok(m)}function p(){e.result((0,pu.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Ke._)`${m}.errors`;a.assign(sn.default.vErrors,(0,Ke._)`${sn.default.vErrors} === null ? ${g} : ${sn.default.vErrors}.concat(${g})`),a.assign(sn.default.errors,(0,Ke._)`${sn.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=yi.mergeEvaluated.props(a,h.props,i.props));else{let w=a.var("props",(0,Ke._)`${m}.evaluated.props`);i.props=yi.mergeEvaluated.props(a,w,i.props,Ke.Name)}if(i.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(i.items=yi.mergeEvaluated.items(a,h.items,i.items));else{let w=a.var("items",(0,Ke._)`${m}.evaluated.items`);i.items=yi.mergeEvaluated.items(a,w,i.items,Ke.Name)}}}br.callRef=wi;br.default=Jv});var mu=E(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});var Gv=du(),Wv=Ii(),Kv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Gv.default,Wv.default];Ks.default=Kv});var gu=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var vi=x(),er=vi.operators,bi={maximum:{okStr:"<=",ok:er.LTE,fail:er.GT},minimum:{okStr:">=",ok:er.GTE,fail:er.LT},exclusiveMaximum:{okStr:"<",ok:er.LT,fail:er.GTE},exclusiveMinimum:{okStr:">",ok:er.GT,fail:er.LTE}},Yv={message:({keyword:e,schemaCode:t})=>(0,vi.str)`must be ${bi[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,vi._)`{comparison: ${bi[e].okStr}, limit: ${t}}`},Hv={keyword:Object.keys(bi),type:"number",schemaType:"number",$data:!0,error:Yv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,vi._)`${r} ${bi[t].fail} ${n} || isNaN(${r})`)}};Ys.default=Hv});var hu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Qn=x(),Xv={message:({schemaCode:e})=>(0,Qn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Qn._)`{multipleOf: ${e}}`},Zv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Xv,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,i=a.opts.multipleOfPrecision,o=t.let("res"),s=i?(0,Qn._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${i}`:(0,Qn._)`${o} !== parseInt(${o})`;e.fail$data((0,Qn._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};Hs.default=Zv});var wu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});function yu(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}Xs.default=yu;yu.code='require("ajv/dist/runtime/ucs2length").default'});var Iu=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var kr=x(),Qv=q(),eb=wu(),tb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,kr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,kr._)`{limit: ${e}}`},rb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:tb,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,i=t==="maxLength"?kr.operators.GT:kr.operators.LT,o=a.opts.unicode===!1?(0,kr._)`${r}.length`:(0,kr._)`${(0,Qv.useFunc)(e.gen,eb.default)}(${r})`;e.fail$data((0,kr._)`${o} ${i} ${n}`)}};Zs.default=rb});var vu=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var nb=it(),ab=q(),cn=x(),ib={message:({schemaCode:e})=>(0,cn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,cn._)`{pattern: ${e}}`},ob={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:ib,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,cn._)`new RegExp`:(0,ab.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,cn._)`${l}(${i}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,cn._)`!${d}`)}else{let c=(0,nb.usePattern)(e,a);e.fail$data((0,cn._)`!${c}.test(${r})`)}}};Qs.default=ob});var bu=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var ea=x(),sb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ea.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ea._)`{limit: ${e}}`},cb={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:sb,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?ea.operators.GT:ea.operators.LT;e.fail$data((0,ea._)`Object.keys(${r}).length ${a} ${n}`)}};ec.default=cb});var ku=E(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var ta=it(),ra=x(),lb=q(),db={message:({params:{missingProperty:e}})=>(0,ra.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,ra._)`{missingProperty: ${e}}`},pb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:db,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,lb.checkStrictMode)(o,w,o.opts.strictRequired)}}function l(){if(c||i)e.block$data(ra.nil,p);else for(let u of r)(0,ta.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,ta.checkMissingProp)(e,r,u)),(0,ta.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,ta.noPropertyInData)(t,a,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,ta.propertyInData)(t,a,u,s.ownProperties)),t.if((0,ra.not)(m),()=>{e.error(),t.break()})},ra.nil)}}};tc.default=pb});var Ru=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var na=x(),ub={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,na.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,na._)`{limit: ${e}}`},fb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:ub,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?na.operators.GT:na.operators.LT;e.fail$data((0,na._)`${r}.length ${a} ${n}`)}};rc.default=fb});var ki=E(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var _u=Es();_u.code='require("ajv/dist/runtime/equal").default';nc.default=_u});var Au=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var ac=qn(),Ne=x(),mb=q(),gb=ki(),hb={message:({params:{i:e,j:t}})=>(0,Ne.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ne._)`{i: ${e}, j: ${t}}`},yb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:hb,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,ac.getSchemaTypes)(i.items):[];e.block$data(c,d,(0,Ne._)`${o} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ne._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ne._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,ac.checkDataTypes)(l,h,s.opts.strictNumbers,ac.DataType.Wrong),_=t.const("indices",(0,Ne._)`{}`);t.for((0,Ne._)`;${m}--;`,()=>{t.let(h,(0,Ne._)`${r}[${m}]`),t.if(w,(0,Ne._)`continue`),l.length>1&&t.if((0,Ne._)`typeof ${h} == "string"`,(0,Ne._)`${h} += "_"`),t.if((0,Ne._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ne._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ne._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,mb.useFunc)(t,gb.default),w=t.name("outer");t.label(w).for((0,Ne._)`;${m}--;`,()=>t.for((0,Ne._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ne._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};ic.default=yb});var Eu=E(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});var oc=x(),wb=q(),Ib=ki(),vb={message:"must be equal to constant",params:({schemaCode:e})=>(0,oc._)`{allowedValue: ${e}}`},bb={keyword:"const",$data:!0,error:vb,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,oc._)`!${(0,wb.useFunc)(t,Ib.default)}(${r}, ${a})`):e.fail((0,oc._)`${i} !== ${r}`)}};sc.default=bb});var Pu=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var aa=x(),kb=q(),Rb=ki(),_b={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,aa._)`{allowedValues: ${e}}`},Ab={keyword:"enum",schemaType:"array",$data:!0,error:_b,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,kb.useFunc)(t,Rb.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,aa.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,aa._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=a[m];return typeof g=="object"&&g!==null?(0,aa._)`${l()}(${r}, ${u}[${m}])`:(0,aa._)`${r} === ${g}`}}};cc.default=Ab});var Nu=E(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var Eb=gu(),Pb=hu(),Nb=Iu(),Ob=vu(),Sb=bu(),Db=ku(),jb=Ru(),$b=Au(),Cb=Eu(),Tb=Pu(),Lb=[Eb.default,Pb.default,Nb.default,Ob.default,Sb.default,Db.default,jb.default,$b.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Cb.default,Tb.default];lc.default=Lb});var pc=E(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.validateAdditionalItems=void 0;var Rr=x(),dc=q(),xb={message:({params:{len:e}})=>(0,Rr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Rr._)`{limit: ${e}}`},Vb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:xb,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,dc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Ou(e,n)}};function Ou(e,t){let{gen:r,schema:n,data:a,keyword:i,it:o}=e;o.items=!0;let s=r.const("len",(0,Rr._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Rr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,dc.alwaysValidSchema)(o,n)){let l=r.var("valid",(0,Rr._)`${s} <= ${t.length}`);r.if((0,Rr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:i,dataProp:d,dataPropType:dc.Type.Num},l),o.allErrors||r.if((0,Rr.not)(l),()=>r.break())})}}ia.validateAdditionalItems=Ou;ia.default=Vb});var uc=E(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.validateTuple=void 0;var Su=x(),Ri=q(),Mb=it(),Ub={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Du(e,"additionalItems",t);r.items=!0,!(0,Ri.alwaysValidSchema)(r,t)&&e.ok((0,Mb.validateArray)(e))}};function Du(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=Ri.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Su._)`${i}.length`);r.forEach((p,f)=>{(0,Ri.alwaysValidSchema)(s,p)||(n.if((0,Su._)`${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,Ri.checkStrictMode)(s,h,f.strictTuples)}}}oa.validateTuple=Du;oa.default=Ub});var ju=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var Fb=uc(),qb={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Fb.validateTuple)(e,"items")};fc.default=qb});var Cu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var $u=x(),Bb=q(),zb=it(),Jb=pc(),Gb={message:({params:{len:e}})=>(0,$u.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,$u._)`{limit: ${e}}`},Wb={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,Bb.alwaysValidSchema)(n,t)&&(a?(0,Jb.validateAdditionalItems)(e,a):e.ok((0,zb.validateArray)(e)))}};mc.default=Wb});var Tu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var st=x(),_i=q(),Kb={message:({params:{min:e,max:t}})=>t===void 0?(0,st.str)`must contain at least ${e} valid item(s)`:(0,st.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,st._)`{minContains: ${e}}`:(0,st._)`{minContains: ${e}, maxContains: ${t}}`},Yb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Kb,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,st._)`${a}.length`);if(e.setParams({min:o,max:s}),s===void 0&&o===0){(0,_i.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,_i.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,_i.alwaysValidSchema)(i,r)){let g=(0,st._)`${d} >= ${o}`;s!==void 0&&(g=(0,st._)`${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,st._)`${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:_i.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,st._)`${g}++`),s===void 0?t.if((0,st._)`${g} >= ${o}`,()=>t.assign(p,!0).break()):(t.if((0,st._)`${g} > ${s}`,()=>t.assign(p,!1).break()),o===1?t.assign(p,!0):t.if((0,st._)`${g} >= ${o}`,()=>t.assign(p,!0)))}}};gc.default=Yb});var Ai=E(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.validateSchemaDeps=St.validatePropertyDeps=St.error=void 0;var hc=x(),Hb=q(),sa=it();St.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,hc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,hc._)`{property: ${e},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${t},
|
|
8
|
-
deps: ${r}}`};var qb={keyword:"dependencies",type:"object",schemaType:"object",error:Nt.error,code(e){let[t,r]=Bb(e);ju(e,t),$u(e,r)}};function Bb({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let o=Array.isArray(e[n])?t:r;o[n]=e[n]}return[t,r]}function ju(e,t=e.schema){let{gen:r,data:n,it:o}=e;if(Object.keys(t).length===0)return;let i=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,oo.propertyInData)(r,n,a,o.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),o.allErrors?r.if(c,()=>{for(let l of s)(0,oo.checkReportMissingProp)(e,l)}):(r.if((0,fc._)`${c} && (${(0,oo.checkMissingProp)(e,s,i)})`),(0,oo.reportMissingProp)(e,i),r.else())}}Nt.validatePropertyDeps=ju;function $u(e,t=e.schema){let{gen:r,data:n,keyword:o,it:i}=e,a=r.name("valid");for(let s in t)(0,Fb.alwaysValidSchema)(i,t[s])||(r.if((0,oo.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}Nt.validateSchemaDeps=$u;Nt.default=qb});var Tu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Cu=x(),zb=q(),Jb={message:"property name must be valid",params:({params:e})=>(0,Cu._)`{propertyName: ${e.propertyName}}`},Gb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Jb,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,zb.alwaysValidSchema)(o,r))return;let i=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,Cu.not)(i),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(i)}};mc.default=Gb});var hc=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Ri=it(),yt=x(),Wb=ot(),_i=q(),Kb={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},Yb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Kb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,_i.alwaysValidSchema)(a,r))return;let l=(0,Ri.allSchemaProperties)(n.properties),d=(0,Ri.allSchemaProperties)(n.patternProperties);p(),e.ok((0,yt._)`${i} === ${Wb.default.errors}`);function p(){t.forIn("key",o,h=>{!l.length&&!d.length?m(h):t.if(f(h),()=>m(h))})}function f(h){let w;if(l.length>8){let _=(0,_i.schemaRefOrVal)(a,n.properties,"properties");w=(0,Ri.isOwnProperty)(t,_,h)}else l.length?w=(0,yt.or)(...l.map(_=>(0,yt._)`${h} === ${_}`)):w=yt.nil;return d.length&&(w=(0,yt.or)(w,...d.map(_=>(0,yt._)`${(0,Ri.usePattern)(e,_)}.test(${h})`))),(0,yt.not)(w)}function u(h){t.code((0,yt._)`delete ${o}[${h}]`)}function m(h){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(h);return}if(r===!1){e.setParams({additionalProperty:h}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,_i.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,yt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,yt.not)(w),()=>t.break()))}}function g(h,w,_){let b={keyword:"additionalProperties",dataProp:h,dataPropType:_i.Type.Str};_===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};gc.default=Yb});var Vu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Hb=Bn(),Lu=it(),yc=q(),xu=hc(),Xb={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&xu.default.code(new Hb.KeywordCxt(i,xu.default,"additionalProperties"));let a=(0,Lu.allSchemaProperties)(r);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=yc.mergeEvaluated.props(t,(0,yc.toHash)(a),i.props));let s=a.filter(p=>!(0,yc.alwaysValidSchema)(i,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,Lu.propertyInData)(t,o,p,i.opts.ownProperties)),d(p),i.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};wc.default=Xb});var qu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Mu=it(),Ai=x(),Uu=q(),Fu=q(),Zb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:i}=e,{opts:a}=i,s=(0,Mu.allSchemaProperties)(r),c=s.filter(g=>(0,Uu.alwaysValidSchema)(i,r[g]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&o.properties,d=t.name("valid");i.props!==!0&&!(i.props instanceof Ai.Name)&&(i.props=(0,Fu.evaluatedPropsToName)(t,i.props));let{props:p}=i;f();function f(){for(let g of s)l&&u(g),i.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let h in l)new RegExp(g).test(h)&&(0,Uu.checkStrictMode)(i,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,Ai._)`${(0,Mu.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Fu.Type.Str},d),i.opts.unevaluated&&p!==!0?t.assign((0,Ai._)`${p}[${h}]`,!0):!w&&!i.allErrors&&t.if((0,Ai.not)(d),()=>t.break())})})}}};Ic.default=Zb});var Bu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Qb=q(),ek={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Qb.alwaysValidSchema)(n,r)){e.fail();return}let o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};vc.default=ek});var zu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var tk=it(),rk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:tk.validateUnion,error:{message:"must match a schema in anyOf"}};bc.default=rk});var Ju=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Ei=x(),nk=q(),ok={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ei._)`{passingSchemas: ${e.passing}}`},ik={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ok,code(e){let{gen:t,schema:r,parentSchema:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(a,()=>e.reset(),()=>e.error(!0));function l(){i.forEach((d,p)=>{let f;(0,nk.alwaysValidSchema)(o,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Ei._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Ei._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Ei.Name)})})}}};kc.default=ik});var Gu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ak=q(),sk={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=t.name("valid");r.forEach((i,a)=>{if((0,ak.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)})}};Rc.default=sk});var Yu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var Pi=x(),Ku=q(),ck={message:({params:e})=>(0,Pi.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Pi._)`{failingKeyword: ${e.ifClause}}`},lk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ck,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Ku.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=Wu(n,"then"),i=Wu(n,"else");if(!o&&!i)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&i){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else o?t.if(s,l("then")):t.if((0,Pi.not)(s),l("else"));e.pass(a,()=>e.error(!0));function c(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function l(d,p){return()=>{let f=e.subschema({keyword:d},s);t.assign(a,s),e.mergeValidEvaluated(f,a),p?t.assign(p,(0,Pi._)`${d}`):e.setParams({ifClause:d})}}}};function Wu(e,t){let r=e.schema[t];return r!==void 0&&!(0,Ku.alwaysValidSchema)(e,r)}_c.default=lk});var Hu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var dk=q(),pk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,dk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Ac.default=pk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var uk=cc(),fk=Nu(),mk=lc(),gk=Su(),hk=Du(),yk=ki(),wk=Tu(),Ik=hc(),vk=Vu(),bk=qu(),kk=Bu(),Rk=zu(),_k=Ju(),Ak=Gu(),Ek=Yu(),Pk=Hu();function Nk(e=!1){let t=[kk.default,Rk.default,_k.default,Ak.default,Ek.default,Pk.default,wk.default,Ik.default,yk.default,vk.default,bk.default];return e?t.push(fk.default,gk.default):t.push(uk.default,mk.default),t.push(hk.default),t}Ec.default=Nk});var Nc=E(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.dynamicAnchor=void 0;var Pc=x(),Ok=ot(),Zu=Jn(),Sk=hi(),Dk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Qu(e,e.schema)};function Qu(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let o=(0,Pc._)`${Ok.default.dynamicAnchors}${(0,Pc.getProperty)(t)}`,i=n.errSchemaPath==="#"?n.validateName:jk(e);r.if((0,Pc._)`!${o}`,()=>r.assign(o,i))}io.dynamicAnchor=Qu;function jk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:o,baseId:i,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,l=new Zu.SchemaEnv({schema:r,schemaId:c,root:o,baseId:i,localRefs:a,meta:s});return Zu.compileSchema.call(n,l),(0,Sk.getValidate)(e,l)}io.default=Dk});var Oc=E(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.dynamicRef=void 0;var ef=x(),$k=ot(),tf=hi(),Ck={keyword:"$dynamicRef",schemaType:"string",code:e=>rf(e,e.schema)};function rf(e,t){let{gen:r,keyword:n,it:o}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let i=t.slice(1);if(o.allErrors)a();else{let c=r.let("valid",!1);a(c),e.ok(c)}function a(c){if(o.schemaEnv.root.dynamicAnchors[i]){let l=r.let("_v",(0,ef._)`${$k.default.dynamicAnchors}${(0,ef.getProperty)(i)}`);r.if(l,s(l,c),s(o.validateName,c))}else s(o.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,tf.callRef)(e,c),r.let(l,!0)}):()=>(0,tf.callRef)(e,c)}}ao.dynamicRef=rf;ao.default=Ck});var nf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var Tk=Nc(),Lk=q(),xk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,Tk.dynamicAnchor)(e,""):(0,Lk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Sc.default=xk});var of=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var Vk=Oc(),Mk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,Vk.dynamicRef)(e,e.schema)};Dc.default=Mk});var af=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var Uk=Nc(),Fk=Oc(),qk=nf(),Bk=of(),zk=[Uk.default,Fk.default,qk.default,Bk.default];jc.default=zk});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var sf=ki(),Jk={keyword:"dependentRequired",type:"object",schemaType:"object",error:sf.error,code:e=>(0,sf.validatePropertyDeps)(e)};$c.default=Jk});var lf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var Gk=ki(),Wk={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,Gk.validateSchemaDeps)(e)};Cc.default=Wk});var df=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Kk=q(),Yk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Kk.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Tc.default=Yk});var pf=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var Hk=cf(),Xk=lf(),Zk=df(),Qk=[Hk.default,Xk.default,Zk.default];Lc.default=Qk});var ff=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var er=x(),uf=q(),eR=ot(),tR={message:"must NOT have unevaluated properties",params:({params:e})=>(0,er._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},rR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:tR,code(e){let{gen:t,schema:r,data:n,errsCount:o,it:i}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:a,props:s}=i;s instanceof er.Name?t.if((0,er._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),i.props=!0,e.ok((0,er._)`${o} === ${eR.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,uf.alwaysValidSchema)(i,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:uf.Type.Str},f),a||t.if((0,er.not)(f),()=>t.break())}}function l(p,f){return(0,er._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,er._)`${f} !== ${m}`);return(0,er.and)(...u)}}};xc.default=rR});var gf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var Rr=x(),mf=q(),nR={message:({params:{len:e}})=>(0,Rr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Rr._)`{limit: ${e}}`},oR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:nR,code(e){let{gen:t,schema:r,data:n,it:o}=e,i=o.items||0;if(i===!0)return;let a=t.const("len",(0,Rr._)`${n}.length`);if(r===!1)e.setParams({len:i}),e.fail((0,Rr._)`${a} > ${i}`);else if(typeof r=="object"&&!(0,mf.alwaysValidSchema)(o,r)){let c=t.var("valid",(0,Rr._)`${a} <= ${i}`);t.if((0,Rr.not)(c),()=>s(c,i)),e.ok(c)}o.items=!0;function s(c,l){t.forRange("i",l,a,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:mf.Type.Num},c),o.allErrors||t.if((0,Rr.not)(c),()=>t.break())})}}};Vc.default=oR});var hf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var iR=ff(),aR=gf(),sR=[iR.default,aR.default];Mc.default=sR});var yf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var we=x(),cR={message:({schemaCode:e})=>(0,we.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,we._)`{format: ${e}}`},lR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:cR,code(e,t){let{gen:r,data:n,$data:o,schema:i,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;o?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,we._)`${m}[${a}]`),h=r.let("fType"),w=r.let("format");r.if((0,we._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,we._)`${g}.type || "string"`).assign(w,(0,we._)`${g}.validate`),()=>r.assign(h,(0,we._)`"string"`).assign(w,g)),e.fail$data((0,we.or)(_(),b()));function _(){return c.strictSchema===!1?we.nil:(0,we._)`${a} && !${w}`}function b(){let A=d.$async?(0,we._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,we._)`${w}(${n})`,I=(0,we._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,we._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[i];if(!m){_();return}if(m===!0)return;let[g,h,w]=b(m);g===t&&e.pass(A());function _(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(I){let R=I instanceof RegExp?(0,we.regexpCode)(I):c.code.formats?(0,we._)`${c.code.formats}${(0,we.getProperty)(i)}`:void 0,S=r.scopeValue("formats",{key:i,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,we._)`${S}.validate`]:["string",I,S]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,we._)`await ${w}(${n})`}return typeof h=="function"?(0,we._)`${w}(${n})`:(0,we._)`${w}.test(${n})`}}}};Uc.default=lR});var wf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var dR=yf(),pR=[dR.default];Fc.default=pR});var If=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.contentVocabulary=sn.metadataVocabulary=void 0;sn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];sn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var bf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var uR=du(),fR=_u(),mR=Xu(),gR=af(),hR=pf(),yR=hf(),wR=wf(),vf=If(),IR=[gR.default,uR.default,fR.default,(0,mR.default)(!0),wR.default,vf.metadataVocabulary,vf.contentVocabulary,hR.default,yR.default];qc.default=IR});var Rf=E(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.DiscrError=void 0;var kf;(function(e){e.Tag="tag",e.Mapping="mapping"})(kf||(Ni.DiscrError=kf={}))});var Af=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var cn=x(),Bc=Rf(),_f=Jn(),vR=zn(),bR=q(),kR={message:({params:{discrError:e,tagName:t}})=>e===Bc.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,cn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},RR={keyword:"discriminator",type:"object",schemaType:"object",error:kR,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:i}=e,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,cn._)`${r}${(0,cn.getProperty)(s)}`);t.if((0,cn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:Bc.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,cn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:Bc.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,cn.Name),m}function f(){var u;let m={},g=w(o),h=!0;for(let A=0;A<a.length;A++){let I=a[A];if(I?.$ref&&!(0,bR.schemaHasRulesButRef)(I,i.self.RULES)){let S=I.$ref;if(I=_f.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,S),I instanceof _f.SchemaEnv&&(I=I.schema),I===void 0)throw new vR.default(i.opts.uriResolver,i.baseId,S)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),_(R,A)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:A}){return Array.isArray(A)&&A.includes(s)}function _(A,I){if(A.const)b(A.const,I);else if(A.enum)for(let R of A.enum)b(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};zc.default=RR});var Ef=E((EO,_R)=>{_R.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var Pf=E((PO,AR)=>{AR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var Nf=E((NO,ER)=>{ER.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var Of=E((OO,PR)=>{PR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var Sf=E((SO,NR)=>{NR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var Df=E((DO,OR)=>{OR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var jf=E((jO,SR)=>{SR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var $f=E(($O,DR)=>{DR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var Cf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var jR=Ef(),$R=Pf(),CR=Nf(),TR=Of(),LR=Sf(),xR=Df(),VR=jf(),MR=$f(),UR=["/properties"];function FR(e){return[jR,$R,CR,TR,LR,t(this,xR),VR,t(this,MR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,UR):n}}Jc.default=FR});var _r=E((pe,Wc)=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv2020=void 0;var qR=iu(),BR=bf(),zR=Af(),JR=Cf(),Gc="https://json-schema.org/draft/2020-12/schema",ln=class extends qR.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),BR.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(zR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(JR.default.call(this,t),this.refs["http://json-schema.org/schema"]=Gc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Gc)?Gc:void 0)}};pe.Ajv2020=ln;Wc.exports=pe=ln;Wc.exports.Ajv2020=ln;Object.defineProperty(pe,"__esModule",{value:!0});pe.default=ln;var GR=Bn();Object.defineProperty(pe,"KeywordCxt",{enumerable:!0,get:function(){return GR.KeywordCxt}});var dn=x();Object.defineProperty(pe,"_",{enumerable:!0,get:function(){return dn._}});Object.defineProperty(pe,"str",{enumerable:!0,get:function(){return dn.str}});Object.defineProperty(pe,"stringify",{enumerable:!0,get:function(){return dn.stringify}});Object.defineProperty(pe,"nil",{enumerable:!0,get:function(){return dn.nil}});Object.defineProperty(pe,"Name",{enumerable:!0,get:function(){return dn.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:!0,get:function(){return dn.CodeGen}});var WR=ai();Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return WR.default}});var KR=zn();Object.defineProperty(pe,"MissingRefError",{enumerable:!0,get:function(){return KR.default}})});import je from"node:process";import jt from"node:path";import{spawnSync as Q0}from"node:child_process";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",At="^sha256:[a-f0-9]{64}$";import{constants as Wi}from"node:fs";import{lstat as __,mkdir as In,open as Xf,readFile as go,realpath as Dr,rename as A_,unlink as dl}from"node:fs/promises";import{randomUUID as pl}from"node:crypto";import Re from"node:path";var Tf=Kr(_r(),1);var Pe={type:"string",pattern:At},YR={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Kc={type:"string",format:"date-time"},Yc={enum:["typescript.typecheck","vitest.run","typescript.build","npm.pack-dry-run","workspace.structure","capability.assets","node.application-smoke","web.application-build","web.application-smoke","expo.application-config","expo.application-export","react.library-build","next.application-test","next.application-build","next.application-package","next.application-smoke","application.config-contract"]},Lf={type:"object",additionalProperties:!1,required:["node","pnpm","typescript"],properties:{node:{type:"string",minLength:1,maxLength:64},pnpm:{type:"string",minLength:1,maxLength:64},typescript:{type:"string",minLength:1,maxLength:64}}},Hc={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","consumerProfile","compatibility","assets","verifiers","exit"],properties:{schemaVersion:{const:1},capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Pe,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:Z}}}},compatibility:Lf,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:Pe,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:Z},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:Yc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},xf={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:Pe,deliveryReceiptId:Pe,usage:{enum:["runtime","development"]}}},{$id:LO,...Vf}=Hc,HR={...Vf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Hc.required,"availability","packageSources"],properties:{...Hc.properties,schemaVersion:{const:2},availability:{oneOf:[{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"local-artifact"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"development-registry"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"available"},visibility:{const:"catalog-consumers"},sourceState:{const:"registry-verified"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","reasonCode"],properties:{maturity:{const:"withdrawn"},visibility:{const:"existing-locks-only"},reasonCode:{type:"string",pattern:"^[A-Z][A-Z0-9_]{2,63}$"}}}]},packageSources:{type:"array",maxItems:128,items:xf}}},XR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Vf,(()=>{let{$id:e,...t}=HR;return t})()]},Oi={$id:"https://schemas.dyyto.dev/platform/verification-result-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","verifierId","result","issuer","commandId","exitCode","stdoutDigest","stderrDigest","startedAt","completedAt","projectStateDigest","runtime"],properties:{schemaVersion:{const:1},verifierId:Yc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Yc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Pe,stderrDigest:Pe,startedAt:Kc,completedAt:Kc,projectStateDigest:Pe,runtime:Lf}},ZR={...Oi,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Oi.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Oi.properties,evidenceId:Pe,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Pe}},QR={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Pe,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Pe,projectStateDigest:Pe,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Pe,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:Z}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Pe},committedAt:Kc,packageAdoption:{type:"object",additionalProperties:!1,required:["registryRevisions","sources","packageJsonDigest","lockfileDigest"],properties:{sourceChannel:{enum:["production","development"]},registryRevisions:{type:"array",items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:YR,revision:Pe}}},sources:{type:"array",minItems:1,maxItems:128,items:xf},packageJsonDigest:Pe,lockfileDigest:Pe}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},so=new Tf.Ajv2020({allErrors:!0,strict:!0});so.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Di={capabilityBundleRelease:so.compile(XR),verificationResult:so.compile(Oi),adoptionEvidence:so.compile(ZR),projectAdoptionLock:so.compile(QR)},Si=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ji(e,t,r){if(!t(r))throw new Si(e,t.errors??[]);return r}var Mf=e=>{let t=ji("capabilityBundleRelease",Di.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Si("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let o="",i=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(o)<=0||i.has(c))&&r(),o=c,i.add(c)}let a=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(a.length!==n.length||a.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},Uf=e=>ji("verificationResult",Di.verificationResult,e),co=e=>ji("adoptionEvidence",Di.adoptionEvidence,e),qe=e=>ji("projectAdoptionLock",Di.projectAdoptionLock,e);import{lstat as c_,readFile as el,realpath as tl}from"node:fs/promises";import un from"node:path";import{createHash as e_}from"node:crypto";function y(e){return`sha256:${e_("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var Ot=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Ff(e){if(!new RegExp(Z).test(e))throw new Ot("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function $i(e,t){if(e.includes("\r"))throw new Ot("Managed regions require LF newlines");let{begin:r,end:n}=Ff(t),o=e.split(r).length-1,i=e.split(n).length-1;if(o!==1||i!==1)throw new Ot("Managed region markers are unavailable or ambiguous");let a=e.indexOf(r)+r.length,s=e.indexOf(n,a),c=e.slice(a,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ot("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function
|
|
8
|
+
deps: ${r}}`};var Xb={keyword:"dependencies",type:"object",schemaType:"object",error:St.error,code(e){let[t,r]=Zb(e);Lu(e,t),xu(e,r)}};function Zb({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 Lu(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,sa.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,sa.checkReportMissingProp)(e,l)}):(r.if((0,hc._)`${c} && (${(0,sa.checkMissingProp)(e,s,i)})`),(0,sa.reportMissingProp)(e,i),r.else())}}St.validatePropertyDeps=Lu;function xu(e,t=e.schema){let{gen:r,data:n,keyword:a,it:i}=e,o=r.name("valid");for(let s in t)(0,Hb.alwaysValidSchema)(i,t[s])||(r.if((0,sa.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))}St.validateSchemaDeps=xu;St.default=Xb});var Mu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Vu=x(),Qb=q(),ek={message:"property name must be valid",params:({params:e})=>(0,Vu._)`{propertyName: ${e.propertyName}}`},tk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:ek,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,Qb.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,Vu.not)(i),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(i)}};yc.default=tk});var Ic=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Ei=it(),yt=x(),rk=at(),Pi=q(),nk={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},ak={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:nk,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,Pi.alwaysValidSchema)(o,r))return;let l=(0,Ei.allSchemaProperties)(n.properties),d=(0,Ei.allSchemaProperties)(n.patternProperties);p(),e.ok((0,yt._)`${i} === ${rk.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,Pi.schemaRefOrVal)(o,n.properties,"properties");w=(0,Ei.isOwnProperty)(t,_,h)}else l.length?w=(0,yt.or)(...l.map(_=>(0,yt._)`${h} === ${_}`)):w=yt.nil;return d.length&&(w=(0,yt.or)(w,...d.map(_=>(0,yt._)`${(0,Ei.usePattern)(e,_)}.test(${h})`))),(0,yt.not)(w)}function u(h){t.code((0,yt._)`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,Pi.alwaysValidSchema)(o,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(h,w,!1),t.if((0,yt.not)(w),()=>{e.reset(),u(h)})):(g(h,w),s||t.if((0,yt.not)(w),()=>t.break()))}}function g(h,w,_){let b={keyword:"additionalProperties",dataProp:h,dataPropType:Pi.Type.Str};_===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};wc.default=ak});var qu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var ik=Gn(),Uu=it(),vc=q(),Fu=Ic(),ok={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&&Fu.default.code(new ik.KeywordCxt(i,Fu.default,"additionalProperties"));let o=(0,Uu.allSchemaProperties)(r);for(let p of o)i.definedProperties.add(p);i.opts.unevaluated&&o.length&&i.props!==!0&&(i.props=vc.mergeEvaluated.props(t,(0,vc.toHash)(o),i.props));let s=o.filter(p=>!(0,vc.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,Uu.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)}}};bc.default=ok});var Gu=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Bu=it(),Ni=x(),zu=q(),Ju=q(),sk={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,Bu.allSchemaProperties)(r),c=s.filter(g=>(0,zu.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 Ni.Name)&&(i.props=(0,Ju.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,zu.checkStrictMode)(i,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,Ni._)`${(0,Bu.usePattern)(e,g)}.test(${h})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:Ju.Type.Str},d),i.opts.unevaluated&&p!==!0?t.assign((0,Ni._)`${p}[${h}]`,!0):!w&&!i.allErrors&&t.if((0,Ni.not)(d),()=>t.break())})})}}};kc.default=sk});var Wu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ck=q(),lk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,ck.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"}};Rc.default=lk});var Ku=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var dk=it(),pk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:dk.validateUnion,error:{message:"must match a schema in anyOf"}};_c.default=pk});var Yu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var Oi=x(),uk=q(),fk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Oi._)`{passingSchemas: ${e.passing}}`},mk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:fk,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,uk.alwaysValidSchema)(a,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Oi._)`${c} && ${o}`).assign(o,!1).assign(s,(0,Oi._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Oi.Name)})})}}};Ac.default=mk});var Hu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var gk=q(),hk={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,gk.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:o},a);e.ok(a),e.mergeEvaluated(s)})}};Ec.default=hk});var Qu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Si=x(),Zu=q(),yk={message:({params:e})=>(0,Si.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Si._)`{failingKeyword: ${e.ifClause}}`},wk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:yk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Zu.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=Xu(n,"then"),i=Xu(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,Si.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,Si._)`${d}`):e.setParams({ifClause:d})}}}};function Xu(e,t){let r=e.schema[t];return r!==void 0&&!(0,Zu.alwaysValidSchema)(e,r)}Pc.default=wk});var ef=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var Ik=q(),vk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Ik.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Nc.default=vk});var tf=E(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var bk=pc(),kk=ju(),Rk=uc(),_k=Cu(),Ak=Tu(),Ek=Ai(),Pk=Mu(),Nk=Ic(),Ok=qu(),Sk=Gu(),Dk=Wu(),jk=Ku(),$k=Yu(),Ck=Hu(),Tk=Qu(),Lk=ef();function xk(e=!1){let t=[Dk.default,jk.default,$k.default,Ck.default,Tk.default,Lk.default,Pk.default,Nk.default,Ek.default,Ok.default,Sk.default];return e?t.push(kk.default,_k.default):t.push(bk.default,Rk.default),t.push(Ak.default),t}Oc.default=xk});var Dc=E(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.dynamicAnchor=void 0;var Sc=x(),Vk=at(),rf=Kn(),Mk=Ii(),Uk={keyword:"$dynamicAnchor",schemaType:"string",code:e=>nf(e,e.schema)};function nf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let a=(0,Sc._)`${Vk.default.dynamicAnchors}${(0,Sc.getProperty)(t)}`,i=n.errSchemaPath==="#"?n.validateName:Fk(e);r.if((0,Sc._)`!${a}`,()=>r.assign(a,i))}ca.dynamicAnchor=nf;function Fk(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 rf.SchemaEnv({schema:r,schemaId:c,root:a,baseId:i,localRefs:o,meta:s});return rf.compileSchema.call(n,l),(0,Mk.getValidate)(e,l)}ca.default=Uk});var jc=E(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.dynamicRef=void 0;var af=x(),qk=at(),of=Ii(),Bk={keyword:"$dynamicRef",schemaType:"string",code:e=>sf(e,e.schema)};function sf(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,af._)`${qk.default.dynamicAnchors}${(0,af.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,of.callRef)(e,c),r.let(l,!0)}):()=>(0,of.callRef)(e,c)}}la.dynamicRef=sf;la.default=Bk});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var zk=Dc(),Jk=q(),Gk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,zk.dynamicAnchor)(e,""):(0,Jk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};$c.default=Gk});var lf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var Wk=jc(),Kk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,Wk.dynamicRef)(e,e.schema)};Cc.default=Kk});var df=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Yk=Dc(),Hk=jc(),Xk=cf(),Zk=lf(),Qk=[Yk.default,Hk.default,Xk.default,Zk.default];Tc.default=Qk});var uf=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var pf=Ai(),eR={keyword:"dependentRequired",type:"object",schemaType:"object",error:pf.error,code:e=>(0,pf.validatePropertyDeps)(e)};Lc.default=eR});var ff=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var tR=Ai(),rR={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,tR.validateSchemaDeps)(e)};xc.default=rR});var mf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var nR=q(),aR={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,nR.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Vc.default=aR});var gf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var iR=uf(),oR=ff(),sR=mf(),cR=[iR.default,oR.default,sR.default];Mc.default=cR});var yf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var tr=x(),hf=q(),lR=at(),dR={message:"must NOT have unevaluated properties",params:({params:e})=>(0,tr._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},pR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:dR,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 tr.Name?t.if((0,tr._)`${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,tr._)`${a} === ${lR.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),o||t.break();return}if(!(0,hf.alwaysValidSchema)(i,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:hf.Type.Str},f),o||t.if((0,tr.not)(f),()=>t.break())}}function l(p,f){return(0,tr._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,tr._)`${f} !== ${m}`);return(0,tr.and)(...u)}}};Uc.default=pR});var If=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var _r=x(),wf=q(),uR={message:({params:{len:e}})=>(0,_r.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,_r._)`{limit: ${e}}`},fR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:uR,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,_r._)`${n}.length`);if(r===!1)e.setParams({len:i}),e.fail((0,_r._)`${o} > ${i}`);else if(typeof r=="object"&&!(0,wf.alwaysValidSchema)(a,r)){let c=t.var("valid",(0,_r._)`${o} <= ${i}`);t.if((0,_r.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:wf.Type.Num},c),a.allErrors||t.if((0,_r.not)(c),()=>t.break())})}}};Fc.default=fR});var vf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var mR=yf(),gR=If(),hR=[mR.default,gR.default];qc.default=hR});var bf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var we=x(),yR={message:({schemaCode:e})=>(0,we.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,we._)`{format: ${e}}`},wR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:yR,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,we._)`${m}[${o}]`),h=r.let("fType"),w=r.let("format");r.if((0,we._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,we._)`${g}.type || "string"`).assign(w,(0,we._)`${g}.validate`),()=>r.assign(h,(0,we._)`"string"`).assign(w,g)),e.fail$data((0,we.or)(_(),b()));function _(){return c.strictSchema===!1?we.nil:(0,we._)`${o} && !${w}`}function b(){let A=d.$async?(0,we._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,we._)`${w}(${n})`,I=(0,we._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,we._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[i];if(!m){_();return}if(m===!0)return;let[g,h,w]=b(m);g===t&&e.pass(A());function _(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(I){let R=I instanceof RegExp?(0,we.regexpCode)(I):c.code.formats?(0,we._)`${c.code.formats}${(0,we.getProperty)(i)}`:void 0,N=r.scopeValue("formats",{key:i,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,we._)`${N}.validate`]:["string",I,N]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,we._)`await ${w}(${n})`}return typeof h=="function"?(0,we._)`${w}(${n})`:(0,we._)`${w}.test(${n})`}}}};Bc.default=wR});var kf=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var IR=bf(),vR=[IR.default];zc.default=vR});var Rf=E(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.contentVocabulary=ln.metadataVocabulary=void 0;ln.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ln.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Af=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var bR=mu(),kR=Nu(),RR=tf(),_R=df(),AR=gf(),ER=vf(),PR=kf(),_f=Rf(),NR=[_R.default,bR.default,kR.default,(0,RR.default)(!0),PR.default,_f.metadataVocabulary,_f.contentVocabulary,AR.default,ER.default];Jc.default=NR});var Pf=E(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.DiscrError=void 0;var Ef;(function(e){e.Tag="tag",e.Mapping="mapping"})(Ef||(Di.DiscrError=Ef={}))});var Of=E(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var dn=x(),Gc=Pf(),Nf=Kn(),OR=Wn(),SR=q(),DR={message:({params:{discrError:e,tagName:t}})=>e===Gc.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,dn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},jR={keyword:"discriminator",type:"object",schemaType:"object",error:DR,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,dn._)`${r}${(0,dn.getProperty)(s)}`);t.if((0,dn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:Gc.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,dn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:Gc.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,dn.Name),m}function f(){var u;let m={},g=w(a),h=!0;for(let A=0;A<o.length;A++){let I=o[A];if(I?.$ref&&!(0,SR.schemaHasRulesButRef)(I,i.self.RULES)){let N=I.$ref;if(I=Nf.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,N),I instanceof Nf.SchemaEnv&&(I=I.schema),I===void 0)throw new OR.default(i.opts.uriResolver,i.baseId,N)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),_(R,A)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:A}){return Array.isArray(A)&&A.includes(s)}function _(A,I){if(A.const)b(A.const,I);else if(A.enum)for(let R of A.enum)b(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};Wc.default=jR});var Sf=E((zO,$R)=>{$R.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var Df=E((JO,CR)=>{CR.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 jf=E((GO,TR)=>{TR.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 $f=E((WO,LR)=>{LR.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 Cf=E((KO,xR)=>{xR.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 Tf=E((YO,VR)=>{VR.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 Lf=E((HO,MR)=>{MR.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 xf=E((XO,UR)=>{UR.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 Vf=E(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});var FR=Sf(),qR=Df(),BR=jf(),zR=$f(),JR=Cf(),GR=Tf(),WR=Lf(),KR=xf(),YR=["/properties"];function HR(e){return[FR,qR,BR,zR,JR,t(this,GR),WR,t(this,KR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,YR):n}}Kc.default=HR});var Ar=E((pe,Hc)=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv2020=void 0;var XR=lu(),ZR=Af(),QR=Of(),e_=Vf(),Yc="https://json-schema.org/draft/2020-12/schema",pn=class extends XR.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),ZR.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(QR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(e_.default.call(this,t),this.refs["http://json-schema.org/schema"]=Yc)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Yc)?Yc:void 0)}};pe.Ajv2020=pn;Hc.exports=pe=pn;Hc.exports.Ajv2020=pn;Object.defineProperty(pe,"__esModule",{value:!0});pe.default=pn;var t_=Gn();Object.defineProperty(pe,"KeywordCxt",{enumerable:!0,get:function(){return t_.KeywordCxt}});var un=x();Object.defineProperty(pe,"_",{enumerable:!0,get:function(){return un._}});Object.defineProperty(pe,"str",{enumerable:!0,get:function(){return un.str}});Object.defineProperty(pe,"stringify",{enumerable:!0,get:function(){return un.stringify}});Object.defineProperty(pe,"nil",{enumerable:!0,get:function(){return un.nil}});Object.defineProperty(pe,"Name",{enumerable:!0,get:function(){return un.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:!0,get:function(){return un.CodeGen}});var r_=li();Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return r_.default}});var n_=Wn();Object.defineProperty(pe,"MissingRefError",{enumerable:!0,get:function(){return n_.default}})});import Ee from"node:process";import Et from"node:path";import{spawnSync as yN}from"node:child_process";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Pt="^sha256:[a-f0-9]{64}$";import{constants as Hi}from"node:fs";import{lstat as $_,mkdir as bn,open as tm,readFile as ya,realpath as jr,rename as C_,unlink as fl}from"node:fs/promises";import{randomUUID as ml}from"node:crypto";import _e from"node:path";var Mf=Hr(Ar(),1);var Oe={type:"string",pattern:Pt},a_={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Xc={type:"string",format:"date-time"},Zc={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"]},Uf={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}}},Qc={$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:Oe,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:Z}}}},compatibility:Uf,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:Oe,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern: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:Zc}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},Ff={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:Oe,deliveryReceiptId:Oe,usage:{enum:["runtime","development"]}}},{$id:eS,...qf}=Qc,i_={...qf,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...Qc.required,"availability","packageSources"],properties:{...Qc.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:Ff}}},o_={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[qf,(()=>{let{$id:e,...t}=i_;return t})()]},ji={$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:Zc,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Zc,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:Oe,stderrDigest:Oe,startedAt:Xc,completedAt:Xc,projectStateDigest:Oe,runtime:Uf}},s_={...ji,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...ji.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...ji.properties,evidenceId:Oe,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Oe}},c_={$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:Oe,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Oe,projectStateDigest:Oe,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Oe,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:Z}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Oe},committedAt:Xc,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:a_,revision:Oe}}},sources:{type:"array",minItems:1,maxItems:128,items:Ff},packageJsonDigest:Oe,lockfileDigest:Oe}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},da=new Mf.Ajv2020({allErrors:!0,strict:!0});da.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Ci={capabilityBundleRelease:da.compile(o_),verificationResult:da.compile(ji),adoptionEvidence:da.compile(s_),projectAdoptionLock:da.compile(c_)},$i=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Ti(e,t,r){if(!t(r))throw new $i(e,t.errors??[]);return r}var Bf=e=>{let t=Ti("capabilityBundleRelease",Ci.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new $i("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},zf=e=>Ti("verificationResult",Ci.verificationResult,e),pa=e=>Ti("adoptionEvidence",Ci.adoptionEvidence,e),Be=e=>Ti("projectAdoptionLock",Ci.projectAdoptionLock,e);import{lstat as y_,readFile as nl,realpath as al}from"node:fs/promises";import mn from"node:path";import{createHash as l_}from"node:crypto";function y(e){return`sha256:${l_("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var Dt=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function Jf(e){if(!new RegExp(Z).test(e))throw new Dt("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Li(e,t){if(e.includes("\r"))throw new Dt("Managed regions require LF newlines");let{begin:r,end:n}=Jf(t),a=e.split(r).length-1,i=e.split(n).length-1;if(a!==1||i!==1)throw new Dt("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 Dt("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
+
`}function Gf(e){let{begin:t,end:r}=Jf(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Dt("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 Dt("Managed region markers are ambiguous");let i=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(i))throw new Dt("Managed regions cannot contain nested Dyyto markers");let o=`${t}
|
|
10
10
|
${i}
|
|
11
11
|
${r}`;if(n===0){let d=e.source.replace(/\n*$/g,"");return`${d}${d.length===0?"":`
|
|
12
12
|
|
|
13
|
-
`}${
|
|
14
|
-
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new Ot("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import Bf from"node:path";var tr=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ci(e){if(e.length===0||Bf.posix.isAbsolute(e)||Bf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new tr("Asset path must be a normalized project-relative POSIX path",e)}function t_(e,t){Ci(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(Z).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new tr("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,o=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&o===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===o?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||o!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function ke(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new tr("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new tr("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ci(s.path),t.has(s.path))throw new tr("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new tr("Proposed change paths must be unique",s.path);return r.add(s.path),t_(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),o={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},i=y(k(o)),a={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:o.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:i,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...a,planId:y(k(a))}}function Ti(e){return y(k(e))}var zf=Kr(_r(),1);var Q={type:"string",pattern:At},pn={type:"string",pattern:Z},Pr={type:"string",minLength:1,maxLength:128},Er={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},r_={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:pn,version:Pr,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Er,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},n_={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:pn,version:Pr}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:Z},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:pn,version:Pr}}}}},o_={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:pn,version:Pr,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Er,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},i_={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:pn,capabilityVersion:Pr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},a_={$id:"https://schemas.dyyto.dev/platform/change-plan-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","planId","action","state","capability","generatedAt","expiresAt","inputDigest","operations"],properties:{schemaVersion:{const:1},planId:Q,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:pn,version:Pr,integrity:Q}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:Q,packageAdoption:{type:"object",additionalProperties:!1,required:["schemaVersion","packageJsonPreimageDigest","desiredPackageJsonDigest","lockfilePreimage","desiredLockfileDigest","registryRevisions","endpointBindings","sources","installPolicy"],properties:{schemaVersion:{enum:[1,2]},sourceChannel:{enum:["production","development"]},packageJsonPreimageDigest:Q,desiredPackageJsonDigest:Q,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:Q}}]},desiredLockfileDigest:Q,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:Q}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:Q,bindingDigest:Q,expiresAt:{type:"string",format:"date-time"}}}},sources:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",minLength:1,maxLength:128},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$"},version:Pr,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:Q,deliveryReceiptId:Q,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:Er,unitImporterId:Er,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:Q}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:Er,preimageDigest:Q,desiredDigest:Q}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:Er,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:Q,baseDigest:Q,regionId:{type:"string",pattern:Z},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},s_={$id:"https://schemas.dyyto.dev/platform/transaction-journal-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","transactionId","planId","approvedPlanId","projectRootDigest","state","createdAt","updatedAt","operations","journalDigest"],properties:{schemaVersion:{const:1},transactionId:{type:"string",minLength:1,maxLength:128},planId:Q,approvedPlanId:Q,projectRootDigest:Q,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:Er,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:Q,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:Q}}]},desiredDigest:Q,status:{enum:["pending","applied","restored"]}}}},failure:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",minLength:1,maxLength:128},operationIndex:{type:"integer",minimum:0}}},journalDigest:Q}},Ar=new zf.Ajv2020({allErrors:!0,strict:!0});Ar.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Zc={capabilityRelease:Ar.compile(r_),projectManifest:Ar.compile(n_),projectLock:Ar.compile(o_),evidence:Ar.compile(i_),changePlan:Ar.compile(a_),transactionJournal:Ar.compile(s_)},Xc=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Qc(e,t,r){if(!t(r))throw new Xc(e,t.errors??[]);return r}var Y=e=>Qc("projectManifest",Zc.projectManifest,e);var rr=e=>Qc("changePlan",Zc.changePlan,e),Jf=e=>Qc("transactionJournal",Zc.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Li(e){if(e.currentLock!==void 0){let i=await xi({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:i.plan.state==="conflicted"?"drifted":"adopted",operations:i.plan.operations}}let t=await tl(un.resolve(e.projectRoot)),r=[],n=0,o=0;for(let i of e.release.release.assets){let a=await rl(t,i.path);a.exists&&(n+=1),a.digest===i.digest&&(o+=1),r.push({path:i.path,kind:"create",ownership:i.ownership,desiredDigest:i.ownership==="seed-file"&&a.digest?a.digest:i.digest,disposition:a.exists?i.ownership==="seed-file"||a.digest===i.digest?"noop":"conflict":"ready",...a.exists&&a.digest!==i.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:o===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function rl(e,t){let r=un.join(e,...t.split("/"));try{let n=await c_(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Blank profile target must be a regular file",t);return{path:t,exists:!0,digest:y(await el(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Nr(e){let t=await tl(un.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let o=await rl(t,n.path),i=o.exists&&o.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&o.exists)try{i=y($i(await el(un.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{i=!1}if(!i)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(k(r))}}async function xi(e){let t=Y(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let o=(e.currentLock===void 0?void 0:qe(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(o!==void 0&&(o.version!==e.release.release.version||o.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let i=await tl(un.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await rl(i,d.path);if(a.push(p),p.exists&&o===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await el(un.join(i,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:ke({action:"adopt",capability:l,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as d_,lstat as Bi,mkdir as fn,open as Kf,readFile as zi,realpath as p_,rename as Fi,rm as nl,unlink as Or}from"node:fs/promises";import{constants as Mi}from"node:fs";import{homedir as u_}from"node:os";import W from"node:path";import{randomUUID as hn}from"node:crypto";function l_(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function ct(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Gf(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Gf(e.context,e.operation,e.bytes??0,t,"failed",l_(r)),r}}async function Gf(e,t,r,n,o,i){if(e?.sink===void 0)return;let a=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:a.toString(),result:o,...i===void 0?{}:{errorCategory:i}},c=Object.freeze({...s,eventId:y(k(s))});try{await e.sink(c)}catch{}}var Yf=Symbol("prepared-transaction"),nr=new Map,f_=5*1024*1024,m_=25*1024*1024,Wf=8,qi=class extends Error{};async function Vi(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new qi("Simulated prepare crash",{cause:n})}}var j=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,o){super(r),this.code=t,this.relativePath=n,this.operationIndex=o}};function lo(e,t){let r=W.join(e,".dyyto"),n=W.join(r,"transactions",t);return{platformDirectory:r,lock:W.join(r,"transaction-lock.json"),transactionDirectory:n,journal:W.join(n,"journal.json"),preimages:W.join(n,"preimages"),quarantine:W.join(n,"quarantine")}}async function Lt(e){try{return await Bi(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function yn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function wt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function lt(e,t){let r=await Kf(e,Mi.O_RDONLY);try{await ct({context:yn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function po(e,t,r=384,n){let o=await Kf(e,Mi.O_CREAT|Mi.O_EXCL|Mi.O_WRONLY,r);try{await ct({context:yn(n),operation:"write",bytes:t.byteLength,run:()=>o.writeFile(t)}),await ct({context:yn(n),operation:"file-sync",bytes:t.byteLength,run:()=>o.sync()})}finally{await o.close()}}async function ol(e,t,r){let n=W.dirname(e),o=W.join(n,`.tmp-${hn()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await
|
|
16
|
-
`),384,r),await lt(W.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new j("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Ui(e){try{let t=JSON.parse(await zi(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new j("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function w_(e,t,r){return{[Yf]:!0,projectRoot:e,plan:t,transactionId:r}}async function I_(e,t){h_(e.plan,e.approvedPlanId,e.now);let r=await Ji(e.projectRoot),n=y_(e.plan),o=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!o.has(u))throw new j("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(wn(r,u.path),await mn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||y(m)!==u.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let i=lo(r,e.plan.planId);await fn(i.platformDirectory,{recursive:!0,mode:448}),await mn(r,".dyyto");let a=hn();await sl(i.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:hn()},wt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??f_,c=e.limits?.maxTransactionBytes??m_,l=0,d=[],p=[],f=!1;try{if(await Vi(t,"lock-created"),await Lt(i.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await fn(i.preimages,{recursive:!0,mode:448}),await fn(i.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=wn(r,g.path);await mn(r,g.path);let w=await gn(h);if(g.kind==="create"){if(w!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new j("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let _={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new j("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=W.join(i.preimages,`${m}.bin`);await po(b,w.bytes,384,wt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),p.push(m),await Vi(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await lt(i.preimages,wt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of p)await Vi(t,"preimage-persisted",m)}let u=il({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await ol(i.journal,u,wt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),nr.set(a,{desiredContents:e.desiredContents,journal:u}),await Vi(t,"journal-prepared"),w_(r,e.plan,a)}catch(u){if(u instanceof qi)throw nr.delete(a),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await nl(i.transactionDirectory,{recursive:!0,force:!0}),await Or(i.lock),await lt(i.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function ir(e){return I_(e)}async function v_(e,t,r,n){return or(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},wt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function b_(e,t,r,n,o,i){let a=wn(e,n.path);await mn(e,n.path);let s=await gn(a);if(n.before.kind==="absent"){if(s!==void 0)throw new j("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new j("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=W.join(t.quarantine,`${n.index}.bin`),f=wt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await ct({context:yn(f),operation:"rename",run:()=>Fi(a,p)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(a),t.quarantine]}let c=o.get(n.path);if(c===void 0||y(c)!==n.desiredDigest)throw new j("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await fn(W.dirname(a),{recursive:!0}),await mn(e,n.path);let l=W.join(W.dirname(a),`.dyyto-${r}-${n.index}.tmp`),d=wt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await po(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await i?.onCheckpoint?.("temporary-file-synced",n.index),await ct({context:yn(d),operation:"rename",bytes:c.byteLength,run:()=>Fi(l,a)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(a)]}async function k_(e,t){let r=nr.get(e.transactionId);if(r===void 0||e[Yf]!==!0)throw new j("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=lo(e.projectRoot,e.plan.planId),o=await or(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let i=new Map;for(let a=0;a<o.operations.length;a+=Wf){let s=o.operations.slice(a,a+Wf),c=await Promise.allSettled(s.map(d=>b_(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)i.has(p)||i.set(p,wt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of i)await lt(a,s);for(let a of o.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);o=await or(n.journal,{...o,operations:o.operations,updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of o.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return o=await or(n.journal,{...o,state:"applied",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Or(n.lock),await lt(n.platformDirectory),nr.delete(e.transactionId),Sr(o)}catch(i){throw o=await v_(n,o,i instanceof j?i.operationIndex:void 0,t?.durabilityTrace),nr.set(e.transactionId,{desiredContents:r.desiredContents,journal:o}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function ar(e){return k_(e)}function Sr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function xt(e){let t=await Ji(e.projectRoot),r=lo(t,e.planId);if(!await Lt(r.journal)){if(!await Lt(r.lock))return null;let n=await Ui(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Sr(await al(r.journal))}async function R_(e,t,r){await fn(W.dirname(e),{recursive:!0});let n=W.join(W.dirname(e),`.dyyto-recover-${hn()}.tmp`);await po(n,t,r&511),await Fi(n,e),await d_(e,r&511),await lt(W.dirname(e))}async function Hf(e){let t=await Ji(e.projectRoot),r=lo(t,e.planId);if(!await Lt(r.journal)){if(!await Lt(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let o=await Ui(r.lock);if(o.planId!==e.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await nl(r.transactionDirectory,{recursive:!0,force:!0}),await fn(r.transactionDirectory,{recursive:!0,mode:448});let i=il({schemaVersion:1,transactionId:o.transactionId,planId:o.planId,approvedPlanId:o.planId,projectRootDigest:y(t),state:"recovered",createdAt:o.startedAt,updatedAt:e.now,operations:[]});return await ol(r.journal,i),await Or(r.lock),await lt(r.platformDirectory),Sr(i)}let n=await al(r.journal);if(n.state==="recovered")return Sr(n);if(n.state==="applied"){for(let o of n.operations){let i=await gn(wn(t,o.path));if(!(o.kind==="remove"?i===void 0:i?.digest===o.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",o.path,o.index)}if(await Lt(r.lock)){let o=await Ui(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Or(r.lock),await lt(r.platformDirectory)}return nr.delete(n.transactionId),Sr(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Lt(r.lock)){let o=await Ui(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:hn()});n=await or(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let o of[...n.operations].reverse()){if(o.status==="restored")continue;let i=wn(t,o.path);if(await mn(t,o.path),o.kind!=="remove"){let s=W.join(W.dirname(i),`.dyyto-${n.transactionId}-${o.index}.tmp`);if(await Lt(s)){if((await gn(s))?.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",o.path,o.index);await Or(s),await lt(W.dirname(s))}}let a=await gn(i);if(o.before.kind==="absent"){if(a!==void 0){if(a.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);await Or(i),await lt(W.dirname(i))}}else if(a?.digest!==o.before.digest){let s=W.join(r.quarantine,`${o.index}.bin`),c=a?.digest===o.desiredDigest,l=o.kind==="remove"&&a===void 0&&await Lt(s),d=e.approvedConflicts?.find(f=>f.path===o.path&&f.currentDigest===a?.digest);if(!c&&!l&&!d)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);let p=await zi(W.join(r.preimages,`${o.index}.bin`));if(y(p)!==o.before.preimageDigest)throw new j("JOURNAL_CORRUPTED","Preimage digest is invalid",o.path,o.index);await R_(i,p,o.before.mode),l&&await nl(s,{force:!0})}o.status="restored",n=await or(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",o.index)}return n=await or(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Or(r.lock),await lt(r.platformDirectory),nr.delete(n.transactionId),Sr(n)}async function uo(e){return Hf(e)}async function cl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new j("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Hf(e)}async function ll(e){let t=await Ji(e.projectRoot),r=lo(t,e.planId),n=await al(r.journal);if(n.state==="recovered")return Sr(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let o;for(let i of n.operations){let a=await gn(wn(t,i.path)),s=i.kind==="remove"?a===void 0:a?.digest===i.desiredDigest,c=i.before.kind==="absent"?a===void 0:a?.digest===i.before.digest;if(!s&&!c){o=i;break}}if(await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:hn()}),n=await or(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),o!==void 0)throw new j("RECOVERY_CONFLICT","Rollback would overwrite external content",o.path,o.index);return nr.set(n.transactionId,{desiredContents:new Map,journal:n}),uo({projectRoot:t,planId:e.planId,now:e.now})}var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t}},fo=class extends Error{};function ho(e,t){let r=Re.join(e,".dyyto"),n=Re.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Re.join(r,"evidence"),lockFile:Re.join(r,"project-lock.json"),transactionLock:Re.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Re.join(n,"journal.json")}}async function sr(e){try{return await __(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Vt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Yi(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function Hi(e,t){let r=await Xf(e,Wi.O_RDONLY);try{await ct({context:Yi(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function ul(e,t,r){let n=await Xf(e,Wi.O_CREAT|Wi.O_EXCL|Wi.O_WRONLY,384);try{await ct({context:Yi(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await ct({context:Yi(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function mo(e,t,r){let n=Re.dirname(e),o=Re.join(n,`.tmp-${pl()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await
|
|
18
|
-
`),r),await
|
|
19
|
-
`),r),await
|
|
20
|
-
`)}async function
|
|
21
|
-
`),
|
|
22
|
-
`)}catch(
|
|
23
|
-
`)}catch(i){if(i.code!=="EEXIST")throw i;let a=rr(JSON.parse(await vl(o,"utf8")));if(yo(a),k(a)!==k(r))throw new he("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return o}function im(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Mt(e){let t=await Dt(ae.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Dt(ae.resolve(e.transactionRoot)),n=rr(e.plan);yo(n);let o=ae.join(t,".dyyto","plans"),i=await Xi(o).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of i.filter(c=>c.endsWith(".json")).sort()){let c=rr(JSON.parse(await vl(ae.join(o,s),"utf8")));yo(c),!await St(ae.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&im(c)===im(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await M_({projectRoot:t,plan:n}),n)}async function jr(e){let t=await Dt(ae.resolve(e.projectRoot)),r=ae.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=rr(JSON.parse(await vl(r,"utf8")));if(yo(n),n.planId!==e.planId)throw new he("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new he("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Qi(e,t=[],r,n=[]){let o=await Dt(ae.resolve(e)),i=r===void 0?o:await Dt(ae.resolve(r)),a=ae.join(o,".dyyto","plans"),s=await Xi(a).catch(d=>{if(d.code==="ENOENT")return[];throw d}),c=[];for(let d of s.filter(p=>p.endsWith(".json")).sort()){let p=d.slice(0,-5),f=await jr({projectRoot:o,planId:p}),u=await xt({projectRoot:i,planId:p}),m=await St(ae.join(o,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=U_(c);if(l===void 0)throw new he("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function U_(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function bl(e){let t=await Dt(ae.resolve(e)),r=ae.join(t,".dyyto","plans"),n=await Xi(r).catch(i=>{if(i.code==="ENOENT")return[];throw i}),o=[];for(let i of n.filter(a=>a.endsWith(".json")).sort())o.push(await jr({projectRoot:t,planId:i.slice(0,-5)}));return o}import{lstat as pm,readFile as F_,readdir as q_,realpath as B_}from"node:fs/promises";import Ne from"node:path";import{homedir as um}from"node:os";var dt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function fm(e){let t=Ne.resolve(e),r=await pm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ne.parse(t).root||t===Ne.resolve(um()))throw new dt("WORKSPACE_PATH_UNSAFE");let n=await B_(t);if(n!==t)throw new dt("WORKSPACE_PATH_UNSAFE");return n}async function $r(e){let t=await pm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new dt("WORKSPACE_PATH_UNSAFE");return F_(e)}}function mm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let o of t){if(/^packages:\s*(?:#.*)?$/u.test(o)){n=!0;continue}if(!n)continue;let i=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(o);if(i){r.push(i[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(o.trim()&&!/^\s/u.test(o))break}if(r.length===0)throw new dt("WORKSPACE_MANIFEST_INVALID");return r}function z_(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function ea(e){let t=await fm(e),r=await $r(Ne.join(t,"pnpm-workspace.yaml"));if(!r)throw new dt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let o of mm(r.toString("utf8"))){let i=[];if(o.endsWith("/*")&&!o.slice(0,-2).includes("*")){let a=o.slice(0,-2),s=await q_(Ne.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&i.push(`${a}/${c.name}`)}else if(!o.includes("*"))i.push(o);else throw new dt("WORKSPACE_MANIFEST_INVALID");for(let a of i){let s=await $r(Ne.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([o],[i])=>o.localeCompare(i)).map(([o,i])=>Object.freeze({relativeRoot:o,bytes:i})))}async function Ut(e){let t=await fm(e);if(await $r(Ne.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await $r(Ne.join(t,"pnpm-workspace.yaml")))throw new dt("WORKSPACE_NESTED_UNSUPPORTED");let r=Ne.dirname(t),n;for(;r!==Ne.parse(r).root&&r!==Ne.resolve(um());){let i=await $r(Ne.join(r,"pnpm-workspace.yaml"));if(i){if(n)throw new dt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:i};break}r=Ne.dirname(r)}if(!n||!await $r(Ne.join(n.root,"pnpm-lock.yaml"))||!await $r(Ne.join(n.root,"project-capabilities.json")))throw new dt("WORKSPACE_OWNER_MISSING");let o=Ne.relative(n.root,t).split(Ne.sep).join("/");if(!o||o.startsWith("../")||mm(n.manifest.toString("utf8")).filter(i=>z_(i,o)).length!==1)throw new dt("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:o,unitImporterId:o,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:y(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var gm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function kl(e){let t=await bl(e);for(let r of t){let n=await xt({projectRoot:e,planId:r.planId});if(n!==null&&gm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Il({projectRoot:e,planId:r.planId});if(n!==null&&n.state!=="committed")return{required:!0,kind:"metadata",planId:r.planId,state:n.state}}return{required:!1}}async function J_(e){let t=await kl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await uo({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await wl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function hm(e){let t=await J_(e);if(t.kind!=="none")return t;let r=await Ut(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await bl(e.projectRoot)).map(c=>c.planId)),o=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!o)return t;let i;try{let c=JSON.parse(o);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;i=c.planId}catch{return t}let a=await xt({projectRoot:r.transactionRoot,planId:i});if(!a||!gm.has(a.state))return t;let s=await uo({projectRoot:r.transactionRoot,planId:i,now:e.now});return{kind:"filesystem",planId:i,state:s.state}}import{lstat as G_,readFile as Rl,realpath as ym}from"node:fs/promises";import wo from"node:path";var W_=new Set(["MIT","Apache-2.0","UNLICENSED"]),K_=new Set(["public","restricted","private"]),Y_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,H_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function X_(e){let t;try{t=new URL(e)}catch{throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL")}if(t.protocol!=="https:"||t.username.length>0||t.password.length>0||t.search.length>0||t.hash.length>0||t.pathname==="/"||t.pathname.includes(".."))throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL");t.pathname=t.pathname.replace(/\/$/,"").replace(/\.git$/,"");let r=t.href.replace(/\/$/,"");if(r!==e)throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository URL must already be canonical");return r}function Cr(e){if(e.profile?.id!=="workspace-node-application"&&e.profile?.id!=="workspace-web-application"&&e.profile?.id!=="workspace-expo-application"&&e.profile?.id!=="nextjs-full-stack-application")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Manifest must select a workspace application profile");let t=Object.keys(e.profile.parameters),r=e.profile.parameters.name;if(t.length!==1||t[0]!=="name"||r===void 0||r.length>128||!/^[a-z0-9][a-z0-9._-]*$/.test(r))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Application parameters must contain one valid lowercase name");return{name:r}}function lr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),o=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,i=o==="1.1.0"||o==="1.2.0"||t==="react-component-library",a=i?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==a.length||n.some((f,u)=>f!==a[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:d,repository:p}=r;if(s===void 0||s.length>214||!Y_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!H_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!W_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!K_.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...i?{repository:X_(p)}:{}}}function _l(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
-
`)}function
|
|
25
|
-
`)}function
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
28
|
-
`)}function
|
|
29
|
-
`)}async function
|
|
30
|
-
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:i,kind:"replace",ownership:"owned-file",baseDigest:y(a),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>wm(o,u.path))),d=ke({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==i).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[i,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function bo(e){return Tr(e,"workspace-npm-package")}function ko(e){return Tr(e,"workspace-node-application")}function Ro(e){return Tr(e,"workspace-web-application")}function _o(e){return Tr(e,"workspace-expo-application")}async function Im(e){if(e.currentLock!==void 0){let n=await Io(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Io({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function vm(e){if(e.currentLock!==void 0){let n=await vo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await vo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function bm(e){if(e.currentLock!==void 0){let n=await vn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await vn({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function km(e){if(e.currentLock!==void 0){let n=await bo(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await bo({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Rm(e){if(e.currentLock!==void 0){let n=await ko(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ko({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function _m(e){if(e.currentLock!==void 0){let n=await Ro(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ro({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Am(e){if(e.currentLock!==void 0){let n=await _o(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await _o({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as RA,readFile as ga,realpath as _A}from"node:fs/promises";import No from"node:path";var vt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Lr=/^sha256:[a-f0-9]{64}$/,rA=/^sha512-[A-Za-z0-9+/]{86}==$/,nA=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,Pm=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,oA=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Em=/^[a-z][a-z0-9._:-]{2,127}$/;function xr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,o)=>n===[...t].sort()[o])}function iA(e){if(!xr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!Pm.test(e.registryId)||!Em.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,o)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==o)||!xr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!xr(e.capabilities,["read","write","provenance","staging"])||!["workload-identity","short-lived-token","restricted-token","anonymous-test"].includes(e.authentication.kind)||e.authentication.kind==="anonymous-test"!=(e.authentication.credentialRef===void 0)||e.authentication.credentialRef!==void 0&&!Em.test(e.authentication.credentialRef))return!1;let t;try{t=new URL(e.origin)}catch{return!1}if(t.username||t.password||t.search||t.hash||!t.pathname.endsWith("/")||t.pathname.includes("..")||/%2f|%5c/iu.test(t.pathname))return!1;let r=t.hostname==="127.0.0.1"||t.hostname==="localhost"||t.hostname==="[::1]";return e.authentication.kind==="anonymous-test"&&(!r||t.protocol!=="http:")||e.authentication.kind!=="anonymous-test"&&t.protocol!=="https:"?!1:typeof e.capabilities.read=="boolean"&&typeof e.capabilities.write=="boolean"&&typeof e.capabilities.provenance=="boolean"&&typeof e.capabilities.staging=="boolean"&&(e.status==="enabled"||e.status==="disabled")}function Pl(e){if(!iA(e))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:y(k(t))})}function Ao(e){let t=e;if(typeof t!="object"||t===null||!xr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Lr.test(t.revision))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...o}=t;if(Pl(o).revision!==n)throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function aA(e,t){let r,n;try{r=new URL(e.origin),n=new URL(t)}catch{return!1}return n.username||n.password||n.search||n.hash||n.pathname!==r.pathname||n.protocol!==r.protocol||n.hostname!==r.hostname?!1:e.authentication.kind==="anonymous-test"||n.port===r.port}function Nl(e,t){let r=Ao(t);if(!xr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!aA(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(k(n))})}function Nm(e,t){let r=e;if(typeof r!="object"||r===null||!xr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Lr.test(r.bindingDigest))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:o,...i}=r;if(Nl(i,t).bindingDigest!==o)throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function sA(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return xr(e,t)&&Pm.test(e.registryId)&&Lr.test(e.registryConfigRevision)&&oA.test(e.packageName)&&nA.test(e.version)&&rA.test(e.integrity)&&Lr.test(e.tarballDigest)&&Lr.test(e.sourceDeliveryReceiptId)&&!Number.isNaN(Date.parse(e.verifiedAt))&&(e.access==="restricted"||e.access==="private")&&["registry-attested","external-attested","local-readback-verified","development-readback-verified","registry-verified-no-attestation"].includes(e.provenance)&&(e.provenance!=="registry-verified-no-attestation"?e.verificationIdentityDigest!==void 0&&Lr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Ol(e){if(!sA(e))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function Om(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Lr.test(t.receiptId))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...o}=t;if(Ol(o).receiptId!==n)throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var _e=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Eo(e){return y(k(e))}var Sl=/^sha256:[a-f0-9]{64}$/u,cA=/^sha512-[A-Za-z0-9+/]{86}==$/u,lA=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ta=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,dA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,pA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ra(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,i)=>o===n[i])}function Sm(e){return y(k(e))}function Dm(e){let t=Buffer.from(e.desiredLockfile),r=y(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(a=>({...a})),packageFacts:e.packageFacts.map(a=>({...a})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},o={...n,jobId:Sm(n),desiredLockfile:t};jm(o);let i={...o,importerFacts:Object.freeze(o.importerFacts.map(a=>Object.freeze({...a}))),packageFacts:Object.freeze(o.packageFacts.map(a=>Object.freeze({...a}))),cacheObservation:Object.freeze({...o.cacheObservation})};return Object.freeze(i)}function jm(e){if(!ra(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new _e("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(o=>Sl.test(o)))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(!ta.test(e.workerReleaseId)||!ta.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||y(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(!ra(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new _e("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(o=>!ra(o,["importerId","manifestDigest","preimageDigest","desiredDigest"])||o.importerId!=="."&&!ta.test(o.importerId)||![o.manifestDigest,o.preimageDigest,o.desiredDigest].every(i=>Sl.test(i))))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(o=>!ra(o,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!pA.test(o.identity)||!dA.test(o.packageName)||!ta.test(o.registryId)||!lA.test(o.version)||!cA.test(o.integrity)||typeof o.managed!="boolean"||!Sl.test(o.edgesDigest)))throw new _e("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(o=>o.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(o=>o.identity)).size!==e.packageFacts.length)throw new _e("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(Sm(n)!==e.jobId)throw new _e("RESOLUTION_EVIDENCE_INVALID")}function Dl(e,t){if(jm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new _e("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new _e("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new _e("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let o=e.importerFacts.find(i=>i.importerId===n.importerId);if(!o||o.preimageDigest!==n.preimageDigest||o.desiredDigest!==n.preimageDigest)throw new _e("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let o=e.packageFacts.filter(i=>i.managed&&i.packageName===n.packageName);if(o.length!==1||o[0].registryId!==n.registryId||o[0].version!==n.version||o[0].integrity!==n.integrity)throw new _e("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new _e("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var H=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function ia(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:i})=>({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:i})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var na=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,$m=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function jl(e){return Array.isArray(e)?`[${e.map(jl).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${jl(r)}`).join(",")}}`:JSON.stringify(e)}function Ft(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function pt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function oa(e){for(let t of[pt(e.dependencies),pt(e.devDependencies),pt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!na.test(n)||$m.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var uA=["dependencies","devDependencies","optionalDependencies"];function aa(e,t){let r=[];for(let n of uA)for(let[o,i]of Object.entries(pt(e[n]))){if(t.has(o)){if(!na.test(i))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(i))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:o,specifier:i})}return r.sort((n,o)=>`${n.section}:${n.packageName}`.localeCompare(`${o.section}:${o.packageName}`))}function $l(e){let t=Ft(e.packageJson);oa(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:a})=>[i,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:a})=>[i,a])),o={...t,...Object.keys(r).length?{dependencies:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(o,null,2)}
|
|
31
|
-
`)}function
|
|
32
|
-
`)}function
|
|
33
|
-
`)}function
|
|
34
|
-
`)}function
|
|
35
|
-
`),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(
|
|
36
|
-
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:y(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:ke({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(o),lockfilePreimage:{kind:"present",digest:y(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})=>({registryId:g,registryConfigRevision:h,bindingDigest:w,expiresAt:_})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:aa(Ft(o),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),o],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function sa(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",o=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!o)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let i=Ft(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Ft(a),c="topology"in e,l=c?aa(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||oa(i),c||oa(s);let d=new Map(e.registryConfigs.map(I=>{let R=Ao(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let S=Nm(I,R);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let R=Om(I);return[R.receiptId,R]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),m=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Dl(e.resolutionEvidence,{requestDigest:Eo({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(Po({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(Po({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C})),now:e.generatedAt}):void 0,h=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:R,version:S,integrity:C})=>({registryId:I,packageName:R,version:S,integrity:C}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),S=p.get(I.registryId),C=f.get(I.deliveryReceiptId),le=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!C||!le||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==R.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||le.integrity!==I.integrity||le.tarballDigest!==I.tarballDigest||le.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!na.test(I.version)||le.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,X]of Object.entries(le.dependencies)){let ie=m.get(P);if(P.startsWith("@aipt/")&&(!ie||ie.version!==X||!na.test(X)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${X}`)});if($m.test(X))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?Po({release:e.release,packageJson:a}):$l({release:e.release,packageJson:a}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:S,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:S,expiresAt:C})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},A=y(jl(b));return Object.freeze({...b,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function ca(e){return sa(e,"production")}function la(e){return sa(e,"development")}function da(e){return sa(e,"production")}function pa(e){return sa(e,"development")}function fA(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",o=e.operations.filter(({path:d})=>d===r),i=e.operations.filter(({path:d})=>d===n);if(o.length!==1||i.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let a=o[0],s=i[0],c=a.kind==="replace"&&a.baseDigest===t.packageJsonPreimageDigest&&a.desiredDigest===t.desiredPackageJsonDigest&&a.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Lm(e){fA(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await ir({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await ar(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await ll({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new H("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Um=Kr(_r(),1);var Fm=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],qm="^[a-z0-9][a-z0-9._-]{0,127}$",Ll="^[A-Z][A-Z0-9_]{0,127}$",xm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",mA={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{const:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json"},schemaVersion:{const:1},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:qm},profile:{enum:Fm}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{const:"IDP_CONFIG_DIR"},relativeDirectory:{type:"string",pattern:"^applications/[a-z0-9][a-z0-9._-]{0,127}$"},environmentFile:{const:".env"},materializationOwner:{const:"external-deployment-control-plane"}}},bindings:{type:"array",maxItems:128,items:{oneOf:[{type:"object",additionalProperties:!1,required:["name","kind","required"],properties:{name:{type:"string",pattern:Ll},kind:{const:"value"},required:{type:"boolean"},default:{type:"string",maxLength:1024}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ll},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:xm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ll},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:xm}}}]}}}},Vm=new Um.Ajv2020({allErrors:!0,strict:!0}).compile(mA),Mm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,gA=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Xe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function Bm(e){let t=Y(e),r=t.profile?.id;if(!Fm.includes(r))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},o=n.name;if(Object.keys(n).length!==1||typeof o!="string"||!new RegExp(qm,"u").test(o))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:o,profile:r}}function xl(e,t){if(!Vm(e))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",Vm.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,o=new Set;for(let i of r.bindings){if(n.has(i.name))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${i.name}`);if(n.add(i.name),i.kind==="value"){if(Mm.test(i.name))throw new Xe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${i.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!i.name.endsWith("_FILE"))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${i.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let a=i.kind==="secret-file"?"secrets/":"certs/";if(i.kind==="certificate-file"&&(Mm.test(i.name)||gA.test(i.name)))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=i.file.split("/");if(!i.file.startsWith(a)||s.some(c=>c===""||c==="."||c===".."))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5FC5\u987B\u4F4D\u4E8E ${a} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(i.file))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${i.file}`);o.add(i.file)}if(t!==void 0){let i=Bm(t);if(r.application.id!==i.id||r.application.profile!==i.profile)throw new Xe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ua(e){let t=Bm(e),r=t.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],n={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:1,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"IDP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return xl(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
-
`)}import{createHash as
|
|
38
|
-
`)}function wA(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new be("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new be("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Wm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new be("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function IA(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(!o||o.startsWith("#"))continue;let i=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o),a=i?.[1],s=i?.[2];if(!a||s===void 0||a in t)throw new be("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[a]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Jm(e){return`sha256:${hA("sha256").update(e).digest("hex")}`}function vA(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Gm(e,t,r){let n=await Vl(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new be("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}async function bA(e,t,r){let n=ge.dirname(e);for(;n!==ge.dirname(n);){try{if(JSON.parse(await Vr(ge.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let i=ge.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(i))throw new be("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return ge.join(ge.basename(n),i,r)}}catch(o){if(o instanceof be)throw o}n=ge.dirname(n)}return ge.join(t,r)}async function kA(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let i=await Vl(n).catch(()=>null);if(!i?.isFile()||i.isSymbolicLink()||i.nlink!==1||(i.mode&511&-385)!==0)throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await Vr(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=a.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${ge.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let o=r.APP_CONFIG_DIR;if(o){if(!ge.isAbsolute(o))throw new be("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(o,await bA(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function ma({projectRoot:e,environment:t=process.env}){let r=await zm(ge.resolve(e)),[n,o,i]=await Promise.all([Vr(ge.join(r,"project-capabilities.json")),Vr(ge.join(r,".dyyto/application-config-binding.json")),Vr(ge.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=wA(JSON.parse(o.toString("utf8")),a),c=xl(JSON.parse(i.toString("utf8")),a),l=await kA(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new be("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await zm(l),p=await Vl(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new be("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=ge.relative(r,d);if(f===""||!f.startsWith("..")&&!ge.isAbsolute(f))throw new be("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=ge.join(d,".env");await Gm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=IA(await Vr(u,"utf8")),g=[];for(let h of c.bindings){if(h.kind==="value"){let C=m[h.name]??"";g.push({name:h.name,kind:h.kind,required:h.required,configured:C.length>0,source:"APP_CONFIG_DIR",display:vA(C)});continue}if(m[h.name]!==h.file)throw new be("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),b=ge.relative(d,_);if(!b||b.startsWith("..")||ge.isAbsolute(b))throw new be("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Gm(_,h.name,!h.required),I=await Vr(_),R=I.length>0,S;if(R&&h.kind==="certificate-file")try{let C=new yA(I);S={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new be("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:Jm(I),updatedAt:A.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Jm(i),entries:g}}var Mr="project-capabilities.json",Km=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function AA(e,t){if(!Km.test(e)||!Km.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let o=0;o<3;o+=1)if(r[o]!==n[o])return r[o]-n[o];return 0}async function EA(e,t){let r=No.join(e,...t.split("/"));try{let n=await RA(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed upgrade target must be a regular file",t);return{path:t,exists:!0,digest:y(await ga(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function ha(e,t){let r=Y(e),n=t.release,o=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&o?.renderer?.startsWith("npm-package-json-")===!0)return _l(lr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&o?.renderer==="react-component-package-json-v1")return Al(lr(r,n.consumerProfile));let i=t.contents.get("package.json");if(i===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return i}async function Ml(e){let t=Y(e.manifest),r=qe(e.currentLock),n=e.sourceRelease.release,o=e.targetRelease.release,i=t.capabilities.find(P=>P.capabilityId===n.capabilityId),a=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=o.capabilityId!==n.capabilityId&&o.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(i===void 0||a===void 0||i.capabilityId!==a.capabilityId||i.version!==a.version||n.capabilityId!==a.capabilityId||n.version!==a.version||n.integrity!==a.integrity||!s&&o.capabilityId!==a.capabilityId||o.consumerProfile!==a.consumerProfile||n.consumerProfile!==o.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&AA(o.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await _A(No.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:o.capabilityId,version:o.version}:P)},d=new Map(e.targetRelease.contents);o.assets.some(P=>P.path==="package.json")&&d.set("package.json",ha(l,e.targetRelease));for(let P of o.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,ua(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,fa(l));let p,f=c,u="package.json",m;if(o.schemaVersion===2&&o.availability.maturity!=="withdrawn"&&(o.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let X=await ga(No.join(c,"package.json")),ie=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=ie.transactionRoot,u=ie.mode==="pnpm-shared-lockfile"?`${ie.unitRelativeRoot}/package.json`:"package.json",m=ie.lockfilePath;let rt={release:o,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:o.consumerProfile,packageJson:X,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ft=ie.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?pa:da)({...rt,topology:{mode:ie.mode,unitRelativeRoot:ie.unitRelativeRoot,unitImporterId:ie.unitImporterId,lockfilePath:ie.lockfilePath,workspaceManifestPath:ie.workspaceManifestPath,workspaceManifestDigest:ie.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?la:ca)({...rt,lockResolution:e.packageSource.lockResolution});p=ia(ft),d.set("package.json",ft.desiredPackageJson),d.set(m,ft.desiredLockfile)}catch(ft){throw ft instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ft.code):ft}}let g=new Map(a.assets.filter(P=>P.path!==Mr).map(P=>[P.path,P.digest])),h=new Map(o.assets.filter(P=>P.path!==Mr).map(P=>{let X=d.get(P.path);if(X===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(X)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],b=[];for(let P of w){let X=await EA(c,P);_.push(X);let ie=g.get(P),rt=h.get(P),ft=o.assets.find(ly=>ly.path===P);if(ft?.ownership==="seed-file"&&X.exists&&X.digest!==void 0){h.set(P,X.digest),d.set(P,await ga(No.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:X.digest,desiredDigest:X.digest});continue}if(ie===void 0){if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ft?.ownership??"owned-file",desiredDigest:rt})}else rt===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ie}):b.push({path:P,kind:"replace",ownership:ft?.ownership??"owned-file",baseDigest:ie,desiredDigest:rt})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let X=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(X)})}let A=await ga(No.join(c,Mr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
-
`);_.push({path:
|
|
40
|
-
`,"utf8"),await o.sync()}finally{await o.close()}try{await PA(n,e),await DA(n),await jA(r)}catch(i){throw await SA(n,{force:!0}),i}}async function eg(e){let t=await kt(fe.resolve(e.projectRoot)),r=Ul(e.plan),n=fe.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Oo(n,r)}catch(o){if(o.code!=="EEXIST")throw o;if(k(Ul(JSON.parse(await bt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function qt(e){if(!Oe(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Ul(JSON.parse(await bt(fe.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Jl(e){let t=await kt(fe.resolve(e.projectRoot)),r=Bl(e.receipt),n=await qt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let i=await kn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||i===null||r.npm.stageId!==i.stageId||r.npm.tarballDigest!==i.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let o=fe.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=Bl(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function bn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Bl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function tg(e){let t=await kt(fe.resolve(e.projectRoot)),r=ya(e.record),n=await qt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let o=fe.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=ya(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function rg(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=ya(JSON.parse(await bt(fe.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function ng(e){let t=await kt(fe.resolve(e.projectRoot)),r=fe.join(t,".dyyto","delivery","attempts"),n;try{n=await OA(r)}catch(o){if(o.code==="ENOENT")return null;throw o}for(let o of n.sort()){if(!o.endsWith(".json"))continue;let i=ya(JSON.parse(await bt(fe.join(r,o),"utf8")));if((await qt({projectRoot:t,planId:i.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([kn({projectRoot:t,planId:i.planId}),bn({projectRoot:t,planId:i.planId})]);if(s===null&&c===null)return i}return null}async function og(e){let t=await kt(fe.resolve(e.projectRoot)),r=Fl(e.record),n=await qt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let o=fe.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=Fl(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function kn(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Fl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function ig(e){let t=await kt(fe.resolve(e.projectRoot)),r=ql(e.record),n=await kn({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let o=fe.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Oo(o,r)}catch(i){if(i.code!=="EEXIST")throw i;let a=ql(JSON.parse(await bt(o,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function ag(e){if(!Oe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=ql(JSON.parse(await bt(fe.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as _g,readdir as yE}from"node:fs/promises";import Yl from"node:path";import{mkdir as Gl,open as ka,readFile as Do,readdir as Wl,rename as Ra,rm as bg}from"node:fs/promises";import ye from"node:path";var $A=44;var sg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",CA=new Uint8Array(64),lg=new Uint8Array(128);for(let e=0;e<sg.length;e++){let t=sg.charCodeAt(e);CA[e]=t,lg[t]=e}function So(e,t){let r=0,n=0,o=0;do{let a=e.next();o=lg[a],r|=(o&31)<<n,n+=5}while(o&32);let i=r&1;return r>>>=1,i&&(r=-2147483648|-r),t+r}function cg(e,t){return e.pos>=t?!1:e.peek()!==$A}var FD=1024*16;var TA=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:r}=this,n=t.indexOf(e,r);return n===-1?t.length:n}};function dg(e){let{length:t}=e,r=new TA(e),n=[],o=0,i=0,a=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(o=0;r.pos<l;){let u;o=So(r,o),o<f&&(p=!1),f=o,cg(r,l)?(i=So(r,i),a=So(r,a),s=So(r,s),cg(r,l)?(c=So(r,c),u=[o,i,a,s,c]):u=[o,i,a,s]):u=[o],d.push(u),r.pos++}p||LA(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function LA(e){e.sort(xA)}function xA(e,t){return e[0]-t[0]}var VA=/^[\w+.-]+:\/\//,MA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,UA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function FA(e){return VA.test(e)}function qA(e){return e.startsWith("//")}function fg(e){return e.startsWith("/")}function BA(e){return e.startsWith("file:")}function pg(e){return/^[.?#]/.test(e)}function Ia(e){let t=MA.exec(e);return mg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function zA(e){let t=UA.exec(e),r=t[2];return mg("file:","",t[1]||"","",fg(r)?r:"/"+r,t[3]||"",t[4]||"")}function mg(e,t,r,n,o,i,a){return{scheme:e,user:t,host:r,port:n,path:o,query:i,hash:a,type:7}}function ug(e){if(qA(e)){let r=Ia("http:"+e);return r.scheme="",r.type=6,r}if(fg(e)){let r=Ia("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(BA(e))return zA(e);if(FA(e))return Ia(e);let t=Ia("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function JA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function GA(e,t){gg(t,t.type),e.path==="/"?e.path=t.path:e.path=JA(t.path)+e.path}function gg(e,t){let r=t<=4,n=e.path.split("/"),o=1,i=0,a=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){a=!0;continue}if(a=!1,l!=="."){if(l===".."){i?(a=!0,i--,o--):r&&(n[o++]=l);continue}n[o++]=l,i++}}let s="";for(let c=1;c<o;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function hg(e,t){if(!e&&!t)return"";let r=ug(e),n=r.type;if(t&&n!==7){let i=ug(t),a=i.type;switch(n){case 1:r.hash=i.hash;case 2:r.query=i.query;case 3:case 4:GA(r,i);case 5:r.user=i.user,r.host=i.host,r.port=i.port;case 6:r.scheme=i.scheme}a>n&&(n=a)}gg(r,n);let o=r.query+r.hash;switch(n){case 2:case 3:return o;case 4:{let i=r.path.slice(1);return i?pg(t||e)&&!pg(i)?"./"+i+o:i+o:o||"."}case 5:return r.path+o;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+o}}function WA(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function KA(e,t){let r=WA(e),n=t?t+"/":"";return o=>hg(n+(o||""),r)}var dr=0,YA=1,HA=2,XA=3,ZA=4;function QA(e,t){let r=yg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=yg(e,n+1))e[n]=tE(e[n],t);return e}function yg(e,t){for(let r=t;r<e.length;r++)if(!eE(e[r]))return r;return e.length}function eE(e){for(let t=1;t<e.length;t++)if(e[t][dr]<e[t-1][dr])return!1;return!0}function tE(e,t){return t||(e=e.slice()),e.sort(rE)}function rE(e,t){return e[dr]-t[dr]}var ba=!1;function nE(e,t,r,n){for(;r<=n;){let o=r+(n-r>>1),i=e[o][dr]-t;if(i===0)return ba=!0,o;i<0?r=o+1:n=o-1}return ba=!1,r-1}function oE(e,t,r){for(let n=r+1;n<e.length&&e[n][dr]===t;r=n++);return r}function iE(e,t,r){for(let n=r-1;n>=0&&e[n][dr]===t;r=n--);return r}function aE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function sE(e,t,r,n){let{lastKey:o,lastNeedle:i,lastIndex:a}=r,s=0,c=e.length-1;if(n===o){if(t===i)return ba=a!==-1&&e[a][dr]===t,a;t>=i?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=nE(e,t,s,c)}function cE(e){return typeof e=="string"?JSON.parse(e):e}var lE="`line` must be greater than 0 (lines start at line 1)",dE="`column` must be greater than or equal to 0 (columns start at column 0)",wg=-1,pE=1,Ig=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=cE(e),{version:o,file:i,names:a,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=o,this.file=i,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=KA(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=QA(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=aE(),this._bySources=void 0,this._bySourceMemos=void 0}};function uE(e){var t;return(t=e)._decoded||(t._decoded=dg(e._encoded))}function vg(e,t){let{line:r,column:n,bias:o}=t;if(r--,r<0)throw new Error(lE);if(n<0)throw new Error(dE);let i=uE(e);if(r>=i.length)return va(null,null,null,null);let a=i[r],s=fE(a,e._decodedMemo,r,n,o||pE);if(s===-1)return va(null,null,null,null);let c=a[s];if(c.length===1)return va(null,null,null,null);let{names:l,resolvedSources:d}=e;return va(d[c[YA]],c[HA]+1,c[XA],c.length===5?l[c[ZA]]:null)}function va(e,t,r,n){return{source:e,line:t,column:r,name:n}}function fE(e,t,r,n,o){let i=sE(e,n,t,r);return ba?i=(o===wg?oE:iE)(e,n,i):o===wg&&i++,i===-1||i===e.length?-1:i}var oe=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Kl=/^sha256:[a-f0-9]{64}$/,kg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,mE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,_a=(e,t)=>Object.keys(e).every(r=>t.includes(r)),jo=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Rn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Rg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ye.join(ye.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await qt({projectRoot:r,planId:t.deploymentId}),o=await bn({projectRoot:r,planId:n.planId});if(o===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||o.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await Wl(ye.join(ye.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function gE(e){if(!jo(e)||!_a(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!jo(e.error)||!jo(e.page)||!_a(e.error,["type","message","frames"])||!_a(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!kg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Kl.test(n)))throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!mE.test(e.traceparent)))throw new oe("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new oe("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!jo(n)||!_a(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let o of[n.line,n.column])if(o!==void 0&&(!Number.isSafeInteger(o)||Number(o)<1))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function hE(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Rn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Rn(a.function,256)}})),o={type:Rn(e.error.type,256),message:Rn(e.error.message,4096),frames:n},i=y(k({type:o.type,message:o.message,frames:n.slice(0,5).map(({file:a,line:s,column:c})=>({file:a,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Rn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:o,page:{origin:e.page.origin,path:Rn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:i,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Bt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=gE(t);if(!r.allowedOrigins.includes(n.page.origin))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let o=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),i=hE(n,r.receivedAt,o);return this.#t(async()=>{let a=this.directory();await Gl(a,{recursive:!0,mode:448});let s=ye.join(a,`${i.eventId}.json`);try{let f=JSON.parse(await Do(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:i.receivedAt})!==k(i))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:i.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await ka(c,"wx",384);try{await l.writeFile(`${k(i)}
|
|
41
|
-
`,"utf8"),await l.sync()}finally{await l.close()}await
|
|
42
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
43
|
-
`),await l.sync()}finally{await l.close()}await
|
|
44
|
-
`),s=await
|
|
45
|
-
`),g=await To(i,u);if(!g.exists||g.digest===void 0)throw new se("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let h=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:y(m)}],w=new Map([[u,m]]),_;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await Co(Ur.join(t,"package.json"))}catch{throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let S=e.packageSource.currentLockfile??await Co(Ur.join(t,"pnpm-lock.yaml")).catch(ie=>ie.code==="ENOENT"?void 0:Promise.reject(ie)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},le=C.mode==="pnpm-shared-lockfile",$={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(le&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let X=le?(e.packageChannel==="development"?pa:da)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?la:ca)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=ia(X),h.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:X.packageJsonPreimageDigest,desiredDigest:X.desiredPackageJsonDigest}),w.set(a("package.json"),X.desiredPackageJson),h.push({path:C.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:y(S)},desiredDigest:X.desiredLockfileDigest}),w.set(C.lockfilePath,X.desiredLockfile)}catch(S){throw S instanceof H?new se("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let R of n.assets){let S=e.release.contents.get(R.path);if(S===void 0)throw new se("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?ua(r):R.renderer==="application-config-binding-v1"?fa(r):S;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new se("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let le;try{le=await Co(Ur.join(t,...R.path.split("/")))}catch{throw new se("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(qf({source:le.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:a(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(le),desiredDigest:y($)}),w.set(a(R.path),$)}else{let le=await To(t,R.path);if(R.ownership==="seed-file"&&le.exists){let $=await Co(Ur.join(t,...R.path.split("/")));h.push({path:a(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(a(R.path),$)}else h.push({path:a(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(C)}),w.set(a(R.path),C)}}let b=await Promise.all(h.map(R=>To(i,R.path))),A={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:h.filter(R=>R.path!==u&&R.path!==o?.lockfilePath).map(R=>({path:o?.mode==="pnpm-shared-lockfile"?R.path.slice(o.unitRelativeRoot.length+1):R.path,ownership:R.ownership,desiredDigest:R.desiredDigest})),verifiers:n.verifiers.map(R=>({id:R.id,kind:"file-digest"}))};return{plan:ke({action:"adopt",capability:A,changes:h,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:i,dependency:{profile:c,satisfied:!0}}}var Og=Kr(_r(),1);var wE={$id:"https://schemas.dyyto.dev/platform/solution-catalog-entry-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","solutionId","version","integrity","title","summary","maturity","members","integration","exit"],properties:{schemaVersion:{const:1},solutionId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},maturity:{enum:["guided","automated"]},members:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","role","required"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},role:{type:"string",minLength:1,maxLength:80},required:{type:"boolean"}}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","steps","verification","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},steps:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["label","command"],properties:{label:{type:"string",minLength:1,maxLength:80},command:{type:"string",minLength:1,maxLength:2e3}}}},verification:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:1e3}},result:{type:"string",minLength:1,maxLength:400}}},exit:{type:"object",additionalProperties:!1,required:["summary"],properties:{summary:{type:"string",minLength:1,maxLength:400}}}}},Ij=new Og.Ajv2020({allErrors:!0,strict:!0}).compile(wE);var Cg=Kr(_r(),1);import{readFile as IE,realpath as vE}from"node:fs/promises";import Sg from"node:path";var Dg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",jg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",bE={$id:"https://schemas.dyyto.dev/platform/example-recipe-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","recipeId","version","integrity","title","locale","rootProfile","capabilities","expectedEntrypoint","verifiers","manualAcceptance","cleanup"],properties:{schemaVersion:{const:1},recipeId:{type:"string",pattern:Dg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128}}},capabilities:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","channel"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:jg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Dg}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:jg,maxLength:240}}}}}},$g=new Cg.Ajv2020({allErrors:!0,strict:!0}).compile(bE),Fr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function kE(e){return y(k(e))}function RE(e){if(!$g(e))throw new Fr("EXAMPLE_RECIPE_INVALID",$g.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new Fr("EXAMPLE_RECIPE_INVALID");return t}async function Tg(e){let t=await vE(Sg.resolve(e)),r;try{r=RE(JSON.parse(await IE(Sg.join(t,"recipe.json"),"utf8")))}catch(i){throw i instanceof Fr?i:new Fr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...o}=r;if(kE(o)!==n)throw new Fr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var Vg=Kr(_r(),1);import{readFile as _E,realpath as AE}from"node:fs/promises";import Lg from"node:path";var EE={$id:"https://schemas.dyyto.dev/platform/engineering-template-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","templateId","version","integrity","title","summary","status","profile","parameters","commands","technology","support","integration","metrics"],properties:{schemaVersion:{const:1},templateId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:At},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},status:{enum:["candidate","recommended","deprecated"]},profile:{type:"object",additionalProperties:!1,required:["id","capability"],properties:{id:{type:"string",pattern:Z},capability:{type:"string",pattern:`${Z.slice(1,-1)}@[0-9]+\\.[0-9]+\\.[0-9]+$`}}},parameters:{type:"array",minItems:0,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","required","description"],properties:{id:{type:"string",pattern:"^[a-z][A-Za-z0-9]*$"},required:{type:"boolean"},description:{type:"string",minLength:1,maxLength:160}}}},commands:{type:"object",minProperties:1,additionalProperties:!1,properties:{dev:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},build:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},test:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},package:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"}}},technology:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","version","policy","verifiedAt","rationale","alternative","exit"],properties:{id:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:64},policy:{enum:["recommended","allowed"]},verifiedAt:{type:"string",format:"date"},rationale:{type:"string",minLength:1,maxLength:240},alternative:{type:"string",minLength:1,maxLength:160},exit:{type:"string",minLength:1,maxLength:240}}}},support:{type:"object",additionalProperties:!1,required:["owner","tier","supportedFrom","supportedUntil","upgradeCadence","eolNoticeDays"],properties:{owner:{type:"string",pattern:Z},tier:{const:"production"},supportedFrom:{type:"string",format:"date"},supportedUntil:{type:"string",format:"date"},upgradeCadence:{type:"string",minLength:1,maxLength:80},eolNoticeDays:{type:"integer",minimum:30,maximum:730}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","createCommand","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},createCommand:{type:"string",minLength:1,maxLength:2e3},result:{type:"string",minLength:1,maxLength:400}}},metrics:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["time-to-green-build","time-to-first-business-commit","manual-engineering-edits","upgrade-conflicts"]}}}},xg=new Vg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(EE),zt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function PE(e){return y(k(e))}function NE(e){if(!xg(e))throw new zt("TEMPLATE_INVALID",xg.errors??[]);let t=e;if(new Set(t.parameters.map(r=>r.id)).size!==t.parameters.length||new Set(t.technology.map(r=>r.id)).size!==t.technology.length)throw new zt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new zt("TEMPLATE_INVALID");return t}async function Lo(e,t=new Date){let r=await AE(Lg.resolve(e)),n;try{n=NE(JSON.parse(await _E(Lg.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof zt?a:new zt("TEMPLATE_INVALID")}let{integrity:o,...i}=n;if(PE(i)!==o)throw new zt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new zt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Mg}from"node:fs/promises";import Ug from"node:path";var OE=/^[A-Z][A-Z0-9_]*$/u,SE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function DE(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(r.trim());if(!n||!OE.test(n[1]))continue;let o=n[1],i=n[2].trim();t.set(o,{name:o,requirement:i.length===0?"conditional":"optional",secret:SE.test(o),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Fg(e){let t=await Mg(Ug.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Mg(Ug.join(e.projectRoot,t),"utf8"):"",n=await ma({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(i=>e.commands[i]?[{id:i,script:e.commands[i],mode:i==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(i=>({name:i.name,requirement:i.required?"conditional":"optional",secret:i.kind!=="value",configured:i.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:i.display,...i.fingerprint?{fingerprint:i.fingerprint}:{}})):DE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var qg={change:new Set(["plan","apply","upgrade","recover","baseline-next","add-package","add-application","add-feature"]),quality:new Set(["inspect","verify","doctor","maintenance","test","build"]),delivery:new Set(["package","delivery-plan","delivery-apply","delivery-inspect"])},Bg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function zg(e,t){if(!qg[t.plane]||t.state&&!Bg.has(t.state)||t.limit!==void 0&&(!Number.isSafeInteger(t.limit)||t.limit<1||t.limit>200))throw new Error("OPERATION_FILTER_INVALID");let r=qg[t.plane],n=t.from?Date.parse(t.from):null,o=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||o!==null&&Number.isNaN(o)||n!==null&&o!==null&&n>o)throw new Error("OPERATION_FILTER_INVALID");let i=e.filter(l=>r.has(l.operation)),a=[...new Map(i.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=i.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(o===null||Date.parse(l.createdAt)<=o)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(a),states:Object.freeze([...Bg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Qe=class extends Error{code;constructor(t){super(t),this.code=t}},jE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Jg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,$E=/^sha512-[A-Za-z0-9+/]{86}==$/u,Aa=/^sha256:[a-f0-9]{64}$/u,CE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,TE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,LE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function qr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,i)=>o===n[i])}function xE(e){if(!qr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!jE.test(e.packageName)||!Jg.test(e.version)||!CE.test(e.assetName)||!$E.test(e.integrity)||!Aa.test(e.tarballDigest)||typeof e.dependencies!="object"||e.dependencies===null||Array.isArray(e.dependencies)||e.lifecycleScripts.length>0)return!1;let t=Object.entries(e.dependencies);return t.length>256||t.some(([r,n])=>!/^(@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u.test(r)||!Jg.test(n)||TE.test(n))?!1:e.lifecycleScripts.every(r=>LE.has(r))}function Zl(e){if(!qr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(i=>Object.freeze({...i,dependencies:Object.freeze({...i.dependencies}),lifecycleScripts:Object.freeze([...i.lifecycleScripts])}));if(t.some(i=>!xE(i)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(i=>i.packageName+"@"+i.version);if(new Set(r).size!==r.length||r.some((i,a)=>a>0&&i.localeCompare(r[a-1])<=0))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(i=>i.packageName));for(let i of t)for(let[a,s]of Object.entries(i.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let o={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...o,bundleId:y(k(o))})}function Br(e){let t=e;if(typeof t!="object"||t===null||!qr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Aa.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");if(Zl({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Ql(e){if(!qr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(o=>Object.freeze({...o}));if(t.some(o=>!qr(o,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o.relativeRoot)||!Aa.test(o.manifestDigest))||new Set(t.map(o=>o.relativeRoot)).size!==t.length)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let r=Br(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:y(k(n))})}function Gg(e){let t=e;if(typeof t!="object"||t===null||!qr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Aa.test(t.planId)||!qr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");if(Ql({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Wg(e){let t=Br(e.bundle),r=Ao(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Ol({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ke=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Kg=/^sha256:[a-f0-9]{64}$/u,Ea=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function ed(e){if(!Ea.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Kg.test(r))||!Ea.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(k(t))})}function Yg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let r=ed({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");return r}function td(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Kg.test(r))||!Ea.test(e.workerReleaseId)||!Ea.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function Pa(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");let r=td({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ke("RESOLUTION_WORKER_BUILD_INVALID");return r}var xo=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},rd=/^sha256:[a-f0-9]{64}$/u,VE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function nd(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>rd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!VE.test(r.path)||!rd.test(r.currentDigest)||!rd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new xo("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:y(k(t))})}function Hg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new xo("RECOVERY_OVERRIDE_INVALID");let r=nd({transactionPlanId:t.transactionPlanId,transactionRootDigest:t.transactionRootDigest,conflicts:t.conflicts,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new xo("RECOVERY_OVERRIDE_INVALID");return r}var Vo=class extends Error{code;constructor(t,r){super(r),this.code=t}},id=/^sha256:[a-f0-9]{64}$/u,ME=/^sha512-[A-Za-z0-9+/]{86}==$/u,UE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,FE=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,qE=/[\u0000-\u001f\u007f]/u;function _n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function An(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,i)=>o===n[i])}function Jt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!qE.test(e)}function od(e){return Jt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Xg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Jt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function BE(e){return e===null?!0:!_n(e)||!An(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:od(e.fileName)&&id.test(String(e.digest))&&ME.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function zE(e){if(!_n(e)||!An(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!UE.test(e.packageName)||!FE.test(e.version)||!Jt(e.title,120)||!Jt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!_n(e.source)||!An(e.source,["repository","path","revision","treeDigest"])||!Jt(e.source.repository)||!od(e.source.path)||!Jt(e.source.revision,200)||!id.test(String(e.source.treeDigest))||!BE(e.artifact)||!_n(e.compatibility)||!An(e.compatibility,["node","packageManager"])||!Jt(e.compatibility.node,100)||!Jt(e.compatibility.packageManager,100)||!Xg(e.exports)||!Xg(e.consumerEvidence)||!_n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!An(e.documentation,t)||!od(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Jt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function JE(e){let t={schemaVersion:1,kind:"PackageRelease",...e,source:Object.freeze({...e.source}),artifact:e.artifact===null?null:Object.freeze({...e.artifact}),compatibility:Object.freeze({...e.compatibility}),exports:Object.freeze([...e.exports]),documentation:Object.freeze({...e.documentation}),consumerEvidence:Object.freeze([...e.consumerEvidence])};if(!zE(t))throw new Vo("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(k(t))})}function Zg(e){if(!_n(e)||!An(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!id.test(String(e.releaseDigest)))throw new Vo("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...o}=e,i=JE(o);if(i.releaseDigest!==t)throw new Vo("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return i}import{lstat as GE,readFile as WE,realpath as KE}from"node:fs/promises";import Qg from"node:path";async function eh(e){let t=await KE(Qg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,o=[...e.lock.capabilities].sort((a,s)=>a.committedAt.localeCompare(s.committedAt)||a.capabilityId.localeCompare(s.capabilityId));for(let a of o)if(!r.has(a.capabilityId))for(let s of a.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let p of n.keys())p.startsWith(l)&&n.delete(p);let d=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(d,{capabilityId:a.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let i=[];for(let a of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Qg.join(t,...a.path.split("/")),l=await GE(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await WE(s);if(a.ownership!=="managed-region")return y(p);if(a.regionId!==void 0)try{return y($i(p.toString("utf8"),a.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===a.digest;i.push({capabilityId:a.capabilityId,path:a.path,kind:"create",ownership:a.ownership,...a.regionId===void 0?{}:{regionId:a.regionId},desiredDigest:a.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return i}import{readFile as re,readdir as gh,realpath as Rt}from"node:fs/promises";import{execFile as lP,spawn as dP}from"node:child_process";import N from"node:path";import{parseArgs as ue,promisify as pP}from"node:util";import{lstat as th,mkdir as sd,readFile as rh,realpath as ad,rm as YE,writeFile as nh}from"node:fs/promises";import et from"node:path";var tt=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},HE=e=>k(e),oh=e=>y(HE(e));async function ih(e,t){let r=await ad(et.resolve(e)),n=et.join(r,".examples");await sd(n,{recursive:!0});let o=await ad(n),i=et.resolve(r,t);if(et.dirname(i)!==o||et.basename(i).startsWith(".")||et.basename(i).length<1)throw new tt("SCAFFOLD_ARGUMENT_INVALID");if(await th(i).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new tt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:i,outputRelativePath:et.relative(r,i)}}async function ah(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new tt("SCAFFOLD_ARGUMENT_INVALID");let r=await ih(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),o={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},i={...o,planId:oh(o)},a=et.join(r.workspaceRoot,".dyyto","scaffold-plans");await sd(a,{recursive:!0});let s=et.join(a,`${i.planId}.json`);return await nh(s,`${k(i)}
|
|
46
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
47
|
-
`)throw new tt("SCAFFOLD_PLAN_INVALID")}),i}async function
|
|
48
|
-
`,{flag:"wx",mode:384}),{evidenceId:i,output:r.output,receipts:n}}import{lstat as Mo,readFile as cd,readdir as ZE,realpath as ld}from"node:fs/promises";import me from"node:path";var ch={capabilities:me.resolve(import.meta.dirname,"catalog"),packages:me.resolve(import.meta.dirname,"package-releases")};function dh(e,t){return e<t?-1:e>t?1:0}function Oa(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Oa).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>dh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Oa(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function QE(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(o===""||o.startsWith("#"))continue;if(o.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let i=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o);if(!i)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(i[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${i[1]}`);let a=i[2].trim();if((a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),/[`$][({]?/u.test(a))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(i[1],a)}return t}async function lh(e,t){let r=await Mo(e);if(!r.isFile()||r.isSymbolicLink()||r.nlink!==1)throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u975E\u94FE\u63A5\u6587\u4EF6`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-385)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80600`)}async function Na(e,t){let r=await Mo(e);if(!r.isDirectory()||r.isSymbolicLink())throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u4E14\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-449)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80700`);return ld(e)}async function eP(e){let t=e;for(;;){if(await Mo(me.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=me.dirname(t);if(r===t)return;t=r}}async function tP(e){if(!me.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Na(e,"IDP_CONFIG_DIR");await eP(t);let r=await Na(me.join(t,"components"),"components"),n=await Na(me.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),o=me.relative(t,n);if(o.startsWith("..")||me.isAbsolute(o))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let i=me.join(n,".env");await lh(i,"Dyyto \u7EC4\u4EF6 .env");let a=QE(await cd(i,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(me.isAbsolute(a)||a.includes("\0")||/[*?{}[\]]/u.test(a))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=me.resolve(n,a),c=me.relative(n,s);if(c===""||c.startsWith("..")||me.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(me.sep).slice(0,-1))l=await Na(me.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await ld(me.dirname(s)),p=me.relative(n,d);if(p.startsWith("..")||me.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await lh(s,"Package Catalog Binding");let f=[];for(let u of(await cd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!me.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Mo(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await ld(m),w=await Mo(h);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(h)||f.push(h)}return f.sort()}async function rP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await tP(e);return{capabilities:ch.capabilities,packages:[ch.packages,...t]}}async function Sa(e){return(await ZE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function nP(e,t){let r=i=>i.split("-",1)[0].split(".").map(Number),n=r(e),o=r(t);for(let i=0;i<3;i+=1){let a=(n[i]??0)-(o[i]??0);if(a!==0)return a}return e.localeCompare(t)}function oP(e){let t=e.schemaVersion===2?e.availability.maturity:"legacy-unverified",r="consumerProfile"in e?e.consumerProfile:"\u591A\u79CD\u5DE5\u7A0B Profile";return{kind:"capability",ref:`capability:${e.capabilityId}@${e.version}`,id:e.capabilityId,version:e.version,title:e.capabilityId,summary:`\u9002\u7528\u4E8E ${r} \u7684\u5DE5\u7A0B\u80FD\u529B\u53D1\u884C\u3002`,maturity:t,integrity:e.integrity}}function iP(e){return{kind:"package",ref:`package:${e.packageName}@${e.version}`,id:e.packageName,version:e.version,title:e.title,summary:e.summary,maturity:e.maturity,integrity:e.releaseDigest}}async function aP(e){let t=[];for(let r of await Sa(e))for(let n of await Sa(me.join(e,r))){let o=`capability:${r}@${n}`;t.push(ve(me.join(e,r,n)).then(i=>({entry:{item:oP(i.release),release:i.release}})).catch(()=>({diagnostic:{ref:o,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function sP(e){let t=[];for(let r of await Sa(e))for(let n of await Sa(me.join(e,r))){let o=me.join(e,r,n,"release.json"),i=`package:${r}@${n}`;t.push(cd(o,"utf8").then(a=>{let s=Zg(JSON.parse(a));return{entry:{item:iP(s),release:s}}}).catch(()=>({diagnostic:{ref:i,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function dd(e){let t=e??await rP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...o]=await Promise.all([aP(t.capabilities),...r.map(sP)]),i=[...n.entries,...o.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),a=[],s=new Set,c=[];for(let l of i)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),a.push(l));return{entries:a,diagnostics:[...n.diagnostics,...o.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Da(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await dd(e.roots),n=new Map;for(let{item:a}of r.entries){if(e.kind!==void 0&&a.kind!==e.kind)continue;let s=[a.id,a.version,a.title,a.summary,a.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${a.kind}:${a.id}`,l=n.get(c);(l===void 0||nP(l.version,a.version)<0)&&n.set(c,a)}let o=[...n.values()].sort((a,s)=>a.ref.localeCompare(s.ref)),i=e.limit??50;return{query:t,total:o.length,items:o.slice(0,i),diagnostics:r.diagnostics}}async function ja(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await dd(e.roots),n=r.entries.find(({item:i})=>i.ref===t),o=r.diagnostics.find(i=>i.ref===t);if(o?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&o!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function cP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let o=n;if(typeof o.capabilityId!="string"||typeof o.version!="string"||!Array.isArray(o.integration?.packages))continue;let i=`capability:${o.capabilityId}@${o.version}`;for(let a of o.integration.packages){if(typeof a!="object"||a===null)continue;let s=a;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(i),t.set(c,l)}}return t}async function ph(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await dd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=cP(r.entries),o=r.entries.filter(({item:a})=>a.kind==="package").map(({release:a})=>{let s=a;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((a,s)=>dh(a.ref,s.ref)),i={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(o)};return Object.freeze({...i,sourceDigest:y(Oa(i))})}function uh(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(Oa(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
-
`}var Uo={"typescript-library":"foundation.typescript-quality@1.0.0","standalone-npm-package":"foundation.standalone-npm-package@1.2.0","workspace-root":"foundation.workspace-root@1.1.0","workspace-npm-package":"foundation.workspace-npm-package@1.2.0","workspace-node-application":"foundation.workspace-node-application@1.1.0","workspace-web-application":"foundation.workspace-web-application@1.1.0","workspace-expo-application":"foundation.workspace-expo-application@1.0.0","react-component-library":"foundation.react-component-library@1.1.0","workspace-react-component-library":"foundation.workspace-react-component-library@1.2.0","nextjs-full-stack-application":"foundation.nextjs-full-stack-application@1.0.0"},hh=pP(lP),uP=new Set(["template.typescript-library@1.0.0","template.typescript-library@1.1.0","template.react-component-library@1.0.0","template.react-component-library@1.1.0","template.nextjs-full-stack-application@1.0.0","template.expo-react-native-application@1.0.0","template.node-api-application@1.0.0","template.workspace-root@1.0.0","template.workspace-root@1.1.0","template.workspace-root@1.2.0","template.workspace-npm-package@1.0.0","template.workspace-react-component-library@1.0.0","template.workspace-react-component-library@1.1.0","template.workspace-react-component-library@1.2.0","template.web-frontend-application@1.0.0"]),yh=(e,t)=>e==="foundation.workspace-root"&&t==="1.4.0"?{id:"template.workspace-root",version:"1.1.0"}:e==="foundation.workspace-root"&&t==="1.5.0"?{id:"template.workspace-root",version:"1.2.0"}:void 0,$a={"workspace-npm-package":{id:"template.workspace-npm-package",version:"1.0.0"},"react-component-library":{id:"template.workspace-react-component-library",version:"1.2.0"},"workspace-web-application":{id:"template.web-frontend-application",version:"1.0.0"},"workspace-node-application":{id:"template.node-api-application",version:"1.0.0"},"workspace-expo-application":{id:"template.expo-react-native-application",version:"1.0.0"},"nextjs-full-stack-application":{id:"template.nextjs-full-stack-application",version:"1.0.0"}};function wh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Ca(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let o=await re(N.join(e,"package.json")),i=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await Ut(e),c=await re(N.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=Po({release:t.release,packageJson:n??o}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...i,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=$l({release:t.release,packageJson:n??o}),d=await a({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:i.registryConfigs,endpointBindings:i.endpointBindings});return{...i,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Ih(e,t,r,n){let o=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(o&&!o.packageAdoption){let b=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return Ng({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!o?.packageAdoption)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let i=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Ut(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==o).flatMap(b=>b.packageAdoption?.sources.map(A=>A.packageName)??[])),p=o.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?Tl({packageJson:a,remove:p}):Cl({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==o).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new se("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),A=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...o.assets.map(R=>`${c.unitRelativeRoot}/${R.path}`)],I=await Promise.all(A.map(async R=>re(N.join(c.transactionRoot,...R.split("/"))).then(S=>({path:R,exists:!0,digest:y(S)})).catch(S=>S.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(S))));return{...Tm({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,endpointBindings:i.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...o.packageAdoption.sources],registries:i.registryConfigs,endpointBindings:i.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...o.assets.map(b=>b.path)].map(async b=>re(N.join(e,...b.split("/"))).then(A=>({path:b,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(A))));return{...Cm({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:i.endpointBindings,observedAssets:_,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings}}function z(e){return e.includes("--json")?"json":"human"}function v(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Se(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Ta(e,t){return uP.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function fP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function La(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await ve(Se(r.capabilityId,r.version)),o=await Le(e).catch(()=>null),i=new Date,s=await(t.profile?.id==="standalone-npm-package"?Io:t.profile?.id==="react-component-library"?vo:t.profile?.id==="nextjs-full-stack-application"?vn:t.profile?.id==="workspace-npm-package"?bo:t.profile?.id==="workspace-node-application"?ko:t.profile?.id==="workspace-web-application"?Ro:t.profile?.id==="workspace-expo-application"?_o:xi)({projectRoot:e,manifest:t,release:n,...o===null?{}:{currentLock:o},generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString()});return Mt({projectRoot:e,plan:s.plan,now:i.toISOString()})}async function vh(e){let t;try{t=ue({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Lo(Ta(g,h))}let o=n?.profile.id??t.values.profile;if(o!=="typescript-library"&&o!=="standalone-npm-package"&&o!=="react-component-library"&&o!=="nextjs-full-stack-application"&&o!=="workspace-root")return v("Create requires a supported --profile.");let i=t.values.capability,a=o==="workspace-root"&&i==="foundation.workspace-root@1.0.0"||o==="standalone-npm-package"&&i==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(a?i:Uo[o]);if(n!==void 0&&s.split("@")[0]!==Uo[o].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&i!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&i!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(o==="standalone-npm-package"||o==="react-component-library"){let g=t.values.name,h=t.values.version,w=t.values.license,_=t.values["publish-access"],b=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof b=="string"?{repository:b}:{}}}else if(o==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:o,parameters:d},capabilities:[{capabilityId:c,version:l}]};(o==="standalone-npm-package"||o==="react-component-library")&&lr(Y(p),o),o==="nextjs-full-stack-application"&&Cr(Y(p));let f=await Zi({projectRoot:t.positionals[0],manifest:p}),u=await La(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
|
|
13
|
+
`}${o}
|
|
14
|
+
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new Dt("Managed regions cannot overlap");return`${e.source.slice(0,s)}${o}${e.source.slice(c)}`}import Wf from"node:path";var rr=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function xi(e){if(e.length===0||Wf.posix.isAbsolute(e)||Wf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new rr("Asset path must be a normalized project-relative POSIX path",e)}function d_(e,t){xi(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 rr("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 Re(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new rr("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new rr("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(xi(s.path),t.has(s.path))throw new rr("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 rr("Proposed change paths must be unique",s.path);return r.add(s.path),d_(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(k(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(k(o))}}function Vi(e){return y(k(e))}var Kf=Hr(Ar(),1);var Q={type:"string",pattern:Pt},fn={type:"string",pattern:Z},Nr={type:"string",minLength:1,maxLength:128},Pr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},p_={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:fn,version:Nr,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Pr,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"]}}}}}},u_={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:fn,version:Nr}},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:fn,version:Nr}}}}},f_={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:fn,version:Nr,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Pr,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},m_={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:fn,capabilityVersion:Nr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},g_={$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:fn,version:Nr,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:Nr,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:Pr,unitImporterId:Pr,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:Pr,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:Pr,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"]}}}}}},h_={$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:Pr,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}},Er=new Kf.Ajv2020({allErrors:!0,strict:!0});Er.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var tl={capabilityRelease:Er.compile(p_),projectManifest:Er.compile(u_),projectLock:Er.compile(f_),evidence:Er.compile(m_),changePlan:Er.compile(g_),transactionJournal:Er.compile(h_)},el=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function rl(e,t,r){if(!t(r))throw new el(e,t.errors??[]);return r}var Y=e=>rl("projectManifest",tl.projectManifest,e);var nr=e=>rl("changePlan",tl.changePlan,e),Yf=e=>rl("transactionJournal",tl.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Mi(e){if(e.currentLock!==void 0){let i=await Ui({...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 al(mn.resolve(e.projectRoot)),r=[],n=0,a=0;for(let i of e.release.release.assets){let o=await il(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 il(e,t){let r=mn.join(e,...t.split("/"));try{let n=await y_(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 nl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Or(e){let t=await al(mn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let a=await il(t,n.path),i=a.exists&&a.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&a.exists)try{i=y(Li(await nl(mn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{i=!1}if(!i)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(k(r))}}async function Ui(e){let t=Y(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let a=(e.currentLock===void 0?void 0:Be(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 al(mn.resolve(e.projectRoot)),o=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await il(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 nl(mn.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:Re({action:"adopt",capability:l,changes:s,observedAssets:o,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as I_,lstat as Gi,mkdir as gn,open as Zf,readFile as Wi,realpath as v_,rename as zi,rm as ol,unlink as Sr}from"node:fs/promises";import{constants as qi}from"node:fs";import{homedir as b_}from"node:os";import W from"node:path";import{randomUUID as wn}from"node:crypto";function w_(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function ct(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Hf(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Hf(e.context,e.operation,e.bytes??0,t,"failed",w_(r)),r}}async function Hf(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(k(s))});try{await e.sink(c)}catch{}}var Qf=Symbol("prepared-transaction"),ar=new Map,k_=5*1024*1024,R_=25*1024*1024,Xf=8,Ji=class extends Error{};async function Fi(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new Ji("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,a){super(r),this.code=t,this.relativePath=n,this.operationIndex=a}};function ua(e,t){let r=W.join(e,".dyyto"),n=W.join(r,"transactions",t);return{platformDirectory:r,lock:W.join(r,"transaction-lock.json"),transactionDirectory:n,journal:W.join(n,"journal.json"),preimages:W.join(n,"preimages"),quarantine:W.join(n,"quarantine")}}async function Vt(e){try{return await Gi(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function In(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function wt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function lt(e,t){let r=await Zf(e,qi.O_RDONLY);try{await ct({context:In(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function fa(e,t,r=384,n){let a=await Zf(e,qi.O_CREAT|qi.O_EXCL|qi.O_WRONLY,r);try{await ct({context:In(n),operation:"write",bytes:t.byteLength,run:()=>a.writeFile(t)}),await ct({context:In(n),operation:"file-sync",bytes:t.byteLength,run:()=>a.sync()})}finally{await a.close()}}async function sl(e,t,r){let n=W.dirname(e),a=W.join(n,`.tmp-${wn()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
+
`);await fa(a,i,384,r),await ct({context:In(r),operation:"rename",bytes:i.byteLength,run:()=>zi(a,e)}),await lt(n,r)}function cl(e){return{...e,journalDigest:y(k(e))}}function __(e){let t;try{t=Yf(e)}catch{throw new C("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(k(n)))throw new C("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let 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 C("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");a.add(o.path)}return t}async function ll(e){try{return __(JSON.parse(await Wi(e,"utf8")))}catch(t){throw t instanceof C?t:new C("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function ir(e,t,r){let{journalDigest:n,...a}=t,i=cl(a);return await sl(e,i,r),i}async function Ki(e){let t=W.resolve(e),r=W.parse(t);if(t===r.root||t===W.resolve(b_()))throw new C("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await Gi(t);if(!n.isDirectory()||n.isSymbolicLink())throw new C("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let a=await v_(t);if(a!==t)throw new C("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return a}function vn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||W.posix.isAbsolute(t)||W.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new C("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=W.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${W.sep}`))throw new C("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function hn(e,t){let r=t.split("/"),n=e;for(let a of r){n=W.join(n,a);try{if((await Gi(n)).isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(i){if(i.code==="ENOENT")return;throw i}}}async function yn(e){try{let t=await Gi(e);if(!t.isFile()||t.isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await Wi(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function A_(e,t,r){nr(e);let{planId:n,...a}=e;if(Vi(a)!==e.planId)throw new C("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new C("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new C("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new C("PLAN_EXPIRED","Plan has expired")}function E_(e){let t=e.operations.filter(r=>r.disposition==="ready");for(let r of t)if(!((r.ownership==="owned-file"||r.ownership==="seed-file")&&["create","replace","remove"].includes(r.kind)||r.ownership==="managed-region"&&r.kind==="merge"&&r.regionId!==void 0))throw new C("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function dl(e,t,r){try{await fa(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
16
|
+
`),384,r),await lt(W.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Bi(e){try{let t=JSON.parse(await Wi(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function P_(e,t,r){return{[Qf]:!0,projectRoot:e,plan:t,transactionId:r}}async function N_(e,t){A_(e.plan,e.approvedPlanId,e.now);let r=await Ki(e.projectRoot),n=E_(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 C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(vn(r,u.path),await hn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||y(m)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let i=ua(r,e.plan.planId);await gn(i.platformDirectory,{recursive:!0,mode:448}),await hn(r,".dyyto");let o=wn();await dl(i.lock,{schemaVersion:1,transactionId:o,planId:e.plan.planId,startedAt:e.now,nonce:wn()},wt(t?.durabilityTrace,"prepare","lock",`${o}:prepare-lock`));let s=e.limits?.maxFileBytes??k_,c=e.limits?.maxTransactionBytes??R_,l=0,d=[],p=[],f=!1;try{if(await Fi(t,"lock-created"),await Vt(i.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await gn(i.preimages,{recursive:!0,mode:448}),await gn(i.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let h=vn(r,g.path);await hn(r,g.path);let w=await yn(h);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let _={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=W.join(i.preimages,`${m}.bin`);await fa(b,w.bytes,384,wt(t?.durabilityTrace,"prepare","preimage",`${o}:preimage:${m}`)),p.push(m),await Fi(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:y(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await lt(i.preimages,wt(t?.durabilityTrace,"prepare","directory",`${o}:preimages-directory-batch`));for(let m of p)await Fi(t,"preimage-persisted",m)}let u=cl({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 sl(i.journal,u,wt(t?.durabilityTrace,"prepare","journal",`${o}:journal-prepared`)),ar.set(o,{desiredContents:e.desiredContents,journal:u}),await Fi(t,"journal-prepared"),P_(r,e.plan,o)}catch(u){if(u instanceof Ji)throw ar.delete(o),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await ol(i.transactionDirectory,{recursive:!0,force:!0}),await Sr(i.lock),await lt(i.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function or(e){return N_(e)}async function O_(e,t,r,n){return ir(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},wt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function S_(e,t,r,n,a,i){let o=vn(e,n.path);await hn(e,n.path);let s=await yn(o);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=W.join(t.quarantine,`${n.index}.bin`),f=wt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await ct({context:In(f),operation:"rename",run:()=>zi(o,p)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(o),t.quarantine]}let c=a.get(n.path);if(c===void 0||y(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await gn(W.dirname(o),{recursive:!0}),await hn(e,n.path);let l=W.join(W.dirname(o),`.dyyto-${r}-${n.index}.tmp`),d=wt(i?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await fa(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await i?.onCheckpoint?.("temporary-file-synced",n.index),await ct({context:In(d),operation:"rename",bytes:c.byteLength,run:()=>zi(l,o)}),await i?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(o)]}async function D_(e,t){let r=ar.get(e.transactionId);if(r===void 0||e[Qf]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=ua(e.projectRoot,e.plan.planId),a=await ir(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let i=new Map;for(let o=0;o<a.operations.length;o+=Xf){let s=a.operations.slice(o,o+Xf),c=await Promise.allSettled(s.map(d=>S_(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)i.has(p)||i.set(p,wt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[o,s]of i)await lt(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 ir(n.journal,{...a,operations:a.operations,updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let o of a.operations)await t?.onCheckpoint?.("operation-journaled",o.index);return a=await ir(n.journal,{...a,state:"applied",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Sr(n.lock),await lt(n.platformDirectory),ar.delete(e.transactionId),Dr(a)}catch(i){throw a=await O_(n,a,i instanceof C?i.operationIndex:void 0,t?.durabilityTrace),ar.set(e.transactionId,{desiredContents:r.desiredContents,journal:a}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function sr(e){return D_(e)}function Dr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Mt(e){let t=await Ki(e.projectRoot),r=ua(t,e.planId);if(!await Vt(r.journal)){if(!await Vt(r.lock))return null;let n=await Bi(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Dr(await ll(r.journal))}async function j_(e,t,r){await gn(W.dirname(e),{recursive:!0});let n=W.join(W.dirname(e),`.dyyto-recover-${wn()}.tmp`);await fa(n,t,r&511),await zi(n,e),await I_(e,r&511),await lt(W.dirname(e))}async function em(e){let t=await Ki(e.projectRoot),r=ua(t,e.planId);if(!await Vt(r.journal)){if(!await Vt(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let a=await Bi(r.lock);if(a.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await ol(r.transactionDirectory,{recursive:!0,force:!0}),await gn(r.transactionDirectory,{recursive:!0,mode:448});let i=cl({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 sl(r.journal,i),await Sr(r.lock),await lt(r.platformDirectory),Dr(i)}let n=await ll(r.journal);if(n.state==="recovered")return Dr(n);if(n.state==="applied"){for(let a of n.operations){let i=await yn(vn(t,a.path));if(!(a.kind==="remove"?i===void 0:i?.digest===a.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",a.path,a.index)}if(await Vt(r.lock)){let a=await Bi(r.lock);if(a.transactionId!==n.transactionId||a.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Sr(r.lock),await lt(r.platformDirectory)}return ar.delete(n.transactionId),Dr(n)}if(n.projectRootDigest!==y(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Vt(r.lock)){let a=await Bi(r.lock);if(a.transactionId!==n.transactionId||a.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await dl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:wn()});n=await ir(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let a of[...n.operations].reverse()){if(a.status==="restored")continue;let i=vn(t,a.path);if(await hn(t,a.path),a.kind!=="remove"){let s=W.join(W.dirname(i),`.dyyto-${n.transactionId}-${a.index}.tmp`);if(await Vt(s)){if((await yn(s))?.digest!==a.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",a.path,a.index);await Sr(s),await lt(W.dirname(s))}}let o=await yn(i);if(a.before.kind==="absent"){if(o!==void 0){if(o.digest!==a.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",a.path,a.index);await Sr(i),await lt(W.dirname(i))}}else if(o?.digest!==a.before.digest){let s=W.join(r.quarantine,`${a.index}.bin`),c=o?.digest===a.desiredDigest,l=a.kind==="remove"&&o===void 0&&await Vt(s),d=e.approvedConflicts?.find(f=>f.path===a.path&&f.currentDigest===o?.digest);if(!c&&!l&&!d)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",a.path,a.index);let p=await Wi(W.join(r.preimages,`${a.index}.bin`));if(y(p)!==a.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",a.path,a.index);await j_(i,p,a.before.mode),l&&await ol(s,{force:!0})}a.status="restored",n=await ir(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",a.index)}return n=await ir(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Sr(r.lock),await lt(r.platformDirectory),ar.delete(n.transactionId),Dr(n)}async function ma(e){return em(e)}async function pl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return em(e)}async function ul(e){let t=await Ki(e.projectRoot),r=ua(t,e.planId),n=await ll(r.journal);if(n.state==="recovered")return Dr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let a;for(let i of n.operations){let o=await yn(vn(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 dl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:wn()}),n=await ir(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),a!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",a.path,a.index);return ar.set(n.transactionId,{desiredContents:new Map,journal:n}),ma({projectRoot:t,planId:e.planId,now:e.now})}var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t}},ga=class extends Error{};function wa(e,t){let r=_e.join(e,".dyyto"),n=_e.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:_e.join(r,"evidence"),lockFile:_e.join(r,"project-lock.json"),transactionLock:_e.join(r,"metadata-lock.json"),transactionDirectory:n,journal:_e.join(n,"journal.json")}}async function cr(e){try{return await $_(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Ut(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Zi(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 tm(e,Hi.O_RDONLY);try{await ct({context:Zi(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function gl(e,t,r){let n=await tm(e,Hi.O_CREAT|Hi.O_EXCL|Hi.O_WRONLY,384);try{await ct({context:Zi(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await ct({context:Zi(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function ha(e,t,r){let n=_e.dirname(e),a=_e.join(n,`.tmp-${ml()}`),i=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
+
`);await gl(a,i,r),await ct({context:Zi(r),operation:"rename",bytes:i.byteLength,run:()=>C_(a,e)}),await Qi(n,r)}function hl(e){return{...e,journalDigest:y(k(e))}}async function Yi(e,t,r){let{journalDigest:n,...a}=t,i=hl(a);return await ha(e,i,r),i}async function rm(e){try{let t=JSON.parse(await ya(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==y(k(n)))throw new Error("invalid journal");return t.evidence.forEach(pa),Be(t.lock),t}catch{throw new Ie("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function yl(e,t,r){try{await gl(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
18
|
+
`),r),await Qi(_e.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Ie("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function nm(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(k(r))}}function am(e,t,r){let n=t.map(zf),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 Ie("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 Ie("VERIFICATION_FAILED",`Verifier ${o.verifierId} did not pass`);if(o.projectStateDigest!==r)throw new Ie("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function T_(e,t,r){let n=_e.join(e,`${t.evidenceId}.json`);if(await cr(n)){let a=pa(JSON.parse(await ya(n,"utf8")));if(k(a)!==k(t))throw new Ie("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await gl(n,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
19
|
+
`),r),await Qi(e,r)}async function L_(e,t,r,n){if(await cr(e)){let a=Be(JSON.parse(await ya(e,"utf8")));if(k(a)===k(t))return;if(r===void 0||y(k(a))!==r)throw new Ie("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await ha(e,t,n);return}await ha(e,t,n)}async function Xi(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new ga("Simulated metadata crash",{cause:r})}}async function wl(e,t,r){let n=wa(e,t.planId),a=t;try{for(let i of a.evidence)await T_(n.evidenceDirectory,i,Ut(r?.durabilityTrace,"evidence",`${a.transactionId}:evidence`));return a=await Yi(n.journal,{...a,state:"evidence-written",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${a.transactionId}:evidence-written`)),await Xi(r,"evidence-written"),await L_(n.lockFile,a.lock,a.previousLockDigest,Ut(r?.durabilityTrace,"lock",`${a.transactionId}:project-lock`)),a=await Yi(n.journal,{...a,state:"lock-written",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${a.transactionId}:lock-written`)),await Xi(r,"lock-written"),a=await Yi(n.journal,{...a,state:"committed",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${a.transactionId}:committed`)),await Xi(r,"committed"),await fl(n.transactionLock),await Qi(n.platformDirectory,Ut(r?.durabilityTrace,"directory",`${a.transactionId}:unlock`)),a.lock}catch(i){if(i instanceof ga)throw new Ie("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Yi(n.journal,{...a,state:"recovery-required",updatedAt:new Date().toISOString()},Ut(r?.durabilityTrace,"journal",`${a.transactionId}:recovery-required`))}catch{}throw i}}async function x_(e){let t=await jr(_e.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await jr(_e.resolve(e.transactionRoot));if((await Mt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ie("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let a;try{a=await Or({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new Ie("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let o=am(e.release,e.verificationResults,a.projectStateDigest).map(m=>nm(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};Be(d);let p=wa(t,e.plan.planId);if(await bn(p.platformDirectory,{recursive:!0,mode:448}),await bn(p.evidenceDirectory,{recursive:!0,mode:448}),await cr(p.lockFile)&&e.previousLock===void 0){let m=Be(JSON.parse(await ya(p.lockFile,"utf8")));if(k(m)===k(d))return m;throw new Ie("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=ml();if(await yl(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},Ut(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await cr(p.transactionDirectory))throw await fl(p.transactionLock),new Ie("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await bn(p.transactionDirectory,{recursive:!0,mode:448});let u=hl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:o,lock:d,...e.previousLock===void 0?{}:{previousLockDigest:y(k(Be(e.previousLock)))}});await ha(p.journal,u,Ut(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await Xi(e.hooks,"journal-prepared")}catch(m){throw m instanceof ga?new Ie("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return wl(t,u,e.hooks)}async function Il(e){return x_(e)}async function vl(e){let t=await jr(_e.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await jr(_e.resolve(e.transactionRoot));if((await Mt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ie("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 Ie("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 Or({projectRoot:t,expectedAssets:c}),p=am(e.release,e.verificationResults,l.projectStateDigest).map(h=>nm(e.release,h)),f={schemaVersion:i.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:i};Be(f);let u=wa(t,e.plan.planId);await bn(u.platformDirectory,{recursive:!0,mode:448}),await bn(u.evidenceDirectory,{recursive:!0,mode:448});let m=ml();await yl(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await bn(u.transactionDirectory,{recursive:!1,mode:448});let g=hl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(k(Be(e.previousLock)))});return await ha(u.journal,g),wl(t,g)}async function bl(e){let t=await jr(_e.resolve(e.projectRoot)),r=wa(t,e.planId),n=await rm(r.journal);return n.state==="committed"?(await cr(r.transactionLock)&&await fl(r.transactionLock),n.lock):(await cr(r.transactionLock)||await yl(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),wl(t,n))}async function kl(e){let t=await jr(_e.resolve(e.projectRoot)),r=wa(t,e.planId);if(!await cr(r.journal))return null;let n=await rm(r.journal);return{planId:n.planId,state:n.state}}async function Ve(e){let t=await jr(_e.resolve(e)),r=_e.join(t,".dyyto","project-lock.json");return await cr(r)?Be(JSON.parse(await ya(r,"utf8"))):null}import{lstat as sm,readFile as im,realpath as om}from"node:fs/promises";import lr from"node:path";var It=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function cm(e){return y(k(e))}async function V_(e,t){let r=lr.join(e,"assets",...t.split("/"));try{return await sm(r),r}catch(n){if(n.code!=="ENOENT"||lr.posix.basename(t)!==".gitignore")throw n}return lr.join(e,"assets",...lr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function ve(e){let t=await om(lr.resolve(e)),r;try{r=Bf(JSON.parse(await im(lr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof It?c:new It("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...a}=r;if(cm(a)!==n)throw new It("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{xi(c.path)}catch{throw new It("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 It("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 V_(t,c.path),d=await om(l),p=lr.join(t,"assets");if(!d.startsWith(`${p}${lr.sep}`))throw new It("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await sm(l);if(!f.isFile()||f.isSymbolicLink())throw new It("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await im(l);if(y(u)!==c.digest)throw new It("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 It("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:i}}import{link as M_,open as dm,lstat as jt,mkdir as pm,readFile as Rl,readdir as eo,realpath as $t,rm as U_,unlink as F_}from"node:fs/promises";import se from"node:path";var he=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},q_={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function B_(){return new TextEncoder().encode(`${JSON.stringify(q_,null,2)}
|
|
20
|
+
`)}async function z_(e,t=!1){let r=se.resolve(e),n=await jt(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new he("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 jt(se.join(a,i)).catch(()=>null);if(o===null||!o.isFile()||o.isSymbolicLink())throw new he("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${i}`)}if(await jt(se.join(a,"project-capabilities.json")).catch(()=>null))throw new he("MANIFEST_EXISTS","Project manifest already exists");return a}async function J_(e,t){let r=se.resolve(e),n=await jt(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new he("TARGET_INVALID","Project target must be a real existing directory");let a=await $t(r);for(let i of t){let o=await jt(se.join(a,i)).catch(()=>null);if(o===null||!o.isFile()||o.isSymbolicLink())throw new he("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${i}`)}if(await jt(se.join(a,"project-capabilities.json")).catch(()=>null))throw new he("MANIFEST_EXISTS","Project manifest already exists");return a}async function um(e){let t=await J_(e.projectRoot,e.requiredMarkers??["package.json"]),r=Y(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
|
|
21
|
+
`),a=r.capabilities[0],i=Re({action:"adopt",capability:{schemaVersion:1,capabilityId:a.capabilityId,version:a.version,integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:y(n)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:i,desiredContents:new Map([["project-capabilities.json",n]])}}async function fm(e){let t=await z_(e.projectRoot,e.documentationOnly===!0),r=B_(),n=Re({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 G_(e){let t=await dm(e,"r");try{await t.sync()}finally{await t.close()}}async function mm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await dm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await M_(r,e),await F_(r),await G_(se.dirname(e))}catch(a){throw await U_(r,{force:!0}),a}}async function W_(e){let t=se.resolve(e);try{let r=await jt(t);if(!r.isDirectory()||r.isSymbolicLink())throw new he("TARGET_INVALID","Project target must be a real directory");if((await eo(t)).length!==0)throw new he("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=se.dirname(t),a=await jt(n).catch(()=>null);if(a===null||!a.isDirectory()||a.isSymbolicLink())throw new he("TARGET_INVALID","Project target parent must be a real directory");await pm(t)}return $t(t)}async function to(e){let t=Y(e.manifest),r=await W_(e.projectRoot),n=se.join(r,"project-capabilities.json");try{await mm(n,`${JSON.stringify(t,null,2)}
|
|
22
|
+
`)}catch(a){throw a.code==="EEXIST"?new he("MANIFEST_EXISTS","Project manifest already exists"):a}return{projectRoot:r,manifest:t}}function Ia(e){let{planId:t,...r}=e;if(Vi(r)!==e.planId)throw new he("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function K_(e){let t=await $t(se.resolve(e.projectRoot)),r=nr(e.plan);Ia(r);let n=se.join(t,".dyyto","plans");await pm(n,{recursive:!0,mode:448});let a=se.join(n,`${r.planId}.json`);try{await mm(a,`${k(r)}
|
|
23
|
+
`)}catch(i){if(i.code!=="EEXIST")throw i;let o=nr(JSON.parse(await Rl(a,"utf8")));if(Ia(o),k(o)!==k(r))throw new he("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return a}function lm(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Ft(e){let t=await $t(se.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await $t(se.resolve(e.transactionRoot)),n=nr(e.plan);Ia(n);let a=se.join(t,".dyyto","plans"),i=await eo(a).catch(s=>{if(s.code==="ENOENT")return[];throw s}),o=[];for(let s of i.filter(c=>c.endsWith(".json")).sort()){let c=nr(JSON.parse(await Rl(se.join(a,s),"utf8")));Ia(c),!await jt(se.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)&&lm(c)===lm(n)&&o.push(c)}return o.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),o[0]!==void 0?o[0]:(await K_({projectRoot:t,plan:n}),n)}async function $r(e){let t=await $t(se.resolve(e.projectRoot)),r=se.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=nr(JSON.parse(await Rl(r,"utf8")));if(Ia(n),n.planId!==e.planId)throw new he("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new he("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ro(e,t=[],r,n=[]){let a=await $t(se.resolve(e)),i=r===void 0?a:await $t(se.resolve(r)),o=se.join(a,".dyyto","plans"),s=await eo(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 $r({projectRoot:a,planId:p}),u=await Mt({projectRoot:i,planId:p}),m=await jt(se.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 he("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function 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 _l(e){let t=await $t(se.resolve(e)),r=se.join(t,".dyyto","plans"),n=await eo(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 $r({projectRoot:t,planId:i.slice(0,-5)}));return a}import{lstat as gm,readFile as H_,readdir as X_,realpath as Z_}from"node:fs/promises";import Se from"node:path";import{homedir as hm}from"node:os";var dt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function ym(e){let t=Se.resolve(e),r=await gm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Se.parse(t).root||t===Se.resolve(hm()))throw new dt("WORKSPACE_PATH_UNSAFE");let n=await Z_(t);if(n!==t)throw new dt("WORKSPACE_PATH_UNSAFE");return n}async function Cr(e){let t=await gm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new dt("WORKSPACE_PATH_UNSAFE");return H_(e)}}function wm(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 dt("WORKSPACE_MANIFEST_INVALID");return r}function Q_(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 no(e){let t=await ym(e),r=await Cr(Se.join(t,"pnpm-workspace.yaml"));if(!r)throw new dt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let a of wm(r.toString("utf8"))){let i=[];if(a.endsWith("/*")&&!a.slice(0,-2).includes("*")){let o=a.slice(0,-2),s=await X_(Se.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 dt("WORKSPACE_MANIFEST_INVALID");for(let o of i){let s=await Cr(Se.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 qt(e){let t=await ym(e);if(await Cr(Se.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Cr(Se.join(t,"pnpm-workspace.yaml")))throw new dt("WORKSPACE_NESTED_UNSUPPORTED");let r=Se.dirname(t),n;for(;r!==Se.parse(r).root&&r!==Se.resolve(hm());){let i=await Cr(Se.join(r,"pnpm-workspace.yaml"));if(i){if(n)throw new dt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:i};break}r=Se.dirname(r)}if(!n||!await Cr(Se.join(n.root,"pnpm-lock.yaml"))||!await Cr(Se.join(n.root,"project-capabilities.json")))throw new dt("WORKSPACE_OWNER_MISSING");let a=Se.relative(n.root,t).split(Se.sep).join("/");if(!a||a.startsWith("../")||wm(n.manifest.toString("utf8")).filter(i=>Q_(i,a)).length!==1)throw new dt("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 Im=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Al(e){let t=await _l(e);for(let r of t){let n=await Mt({projectRoot:e,planId:r.planId});if(n!==null&&Im.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await kl({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 eA(e){let t=await Al(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ma({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await bl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function vm(e){let t=await eA(e);if(t.kind!=="none")return t;let r=await qt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await _l(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 Mt({projectRoot:r.transactionRoot,planId:i});if(!o||!Im.has(o.state))return t;let s=await ma({projectRoot:r.transactionRoot,planId:i,now:e.now});return{kind:"filesystem",planId:i,state:s.state}}import{lstat as tA,readFile as El,realpath as bm}from"node:fs/promises";import va from"node:path";var rA=new Set(["MIT","Apache-2.0","UNLICENSED"]),nA=new Set(["public","restricted","private"]),aA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,iA=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function oA(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 Tr(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 dr(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||!aA.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!iA.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!rA.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!nA.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:oA(p)}:{}}}function Pl(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
+
`)}function Nl(e){return Buffer.from(`${JSON.stringify({name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,repository:{type:"git",url:e.repository},type:"module",sideEffects:["**/*.css"],files:["dist"],main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./style.css":"./dist/style.css"},engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"vite build && tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run","verify:bundle":"vite build && tsc -p tsconfig.build.json && node tooling/verify-bundle.mjs",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm verify:bundle",prepack:"corepack pnpm check"},peerDependencies:{react:">=19.0.0 <20","react-dom":">=19.0.0 <20"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",react:"19.2.8","react-dom":"19.2.8",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}}},null,2)}
|
|
25
|
+
`)}function sA(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build",start:"node dist/index.js"},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
|
|
26
|
+
`)}function cA(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"vite",build:"tsc -b && vite build",preview:"vite preview",typecheck:"tsc -b --pretty false",test:"vitest run",check:"pnpm typecheck && pnpm test && pnpm build"},dependencies:{react:"19.2.8","react-dom":"19.2.8"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"}},null,2)}
|
|
27
|
+
`)}function lA(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,type:"module",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"next dev",build:"next build",start:"node .artifacts/standalone/server.js",typecheck:"tsc --noEmit",lint:"eslint .","test:unit":"vitest run","test:e2e":"playwright test",test:"pnpm test:unit && pnpm test:e2e",package:"pnpm build && node tooling/package-standalone.mjs",check:"pnpm lint && pnpm typecheck && pnpm test:unit && pnpm build"},dependencies:{next:"16.2.11",react:"19.2.8","react-dom":"19.2.8","server-only":"0.0.1"},devDependencies:{"@playwright/test":"1.62.1","@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",eslint:"9.39.5","eslint-config-next":"16.2.11",jsdom:"30.0.1",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
|
|
28
|
+
`)}function dA(e){return Buffer.from(`${JSON.stringify({name:e,version:"0.0.0",private:!0,main:"expo-router/entry",engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{dev:"expo start",android:"expo start --android",ios:"expo start --ios",web:"expo start --web",build:"expo export --platform web --output-dir dist",package:"corepack pnpm build && node tooling/verify-expo-export.mjs",typecheck:"tsc --noEmit",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm package"},dependencies:{expo:"~57.0.15","expo-router":"~57.0.15","expo-status-bar":"~57.0.1",react:"19.2.3","react-dom":"19.2.3","react-native":"0.86.2","react-native-safe-area-context":"5.9.1","react-native-screens":"4.27.0","react-native-web":"0.21.2"},devDependencies:{"@types/node":"24.10.13","@types/react":"19.2.14",typescript:"6.0.3",vitest:"4.1.10"}},null,2)}
|
|
29
|
+
`)}async function km(e,t){let r=va.join(e,...t.split("/"));try{let n=await tA(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 El(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Lr(e,t){let r=Y(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?cA(Tr(r).name):t==="workspace-expo-application"?dA(Tr(r).name):t==="nextjs-full-stack-application"?lA(Tr(r).name):sA(Tr(r).name):t==="react-component-library"?Nl(dr(r,t)):Pl(dr(r,t));if(r.capabilities.filter(u=>u.capabilityId===e.release.release.capabilityId&&u.version===e.release.release.version).length!==1||e.release.release.consumerProfile!==t)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded standalone npm release");let o=(e.currentLock===void 0?void 0:Be(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(o!==void 0&&(o.version!==e.release.release.version||o.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Changing locked npm profile parameters or release is not supported");let s=new Map(e.release.contents);s.set("package.json",n);let c=await bm(va.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 km(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 El(va.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=Re({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 ba(e){return Lr(e,"standalone-npm-package")}function ka(e){return Lr(e,"react-component-library")}function kn(e){return Lr(e,"nextjs-full-stack-application")}async function Ol(e){let t=Y(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=Y({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await kn({...e,manifest:r}),a=await bm(va.resolve(e.projectRoot)),i="project-capabilities.json",o=await El(va.join(a,i)),s=Buffer.from(`${JSON.stringify(r,null,2)}
|
|
30
|
+
`),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=>km(a,u.path))),d=Re({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 Ra(e){return Lr(e,"workspace-npm-package")}function _a(e){return Lr(e,"workspace-node-application")}function Aa(e){return Lr(e,"workspace-web-application")}function Ea(e){return Lr(e,"workspace-expo-application")}async function Rm(e){if(e.currentLock!==void 0){let n=await ba(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ba({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function _m(e){if(e.currentLock!==void 0){let n=await ka(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ka({...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 kn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await kn({...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 Em(e){if(e.currentLock!==void 0){let n=await Ra(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ra({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Pm(e){if(e.currentLock!==void 0){let n=await _a(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await _a({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Nm(e){if(e.currentLock!==void 0){let n=await Aa(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Aa({...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 Ea(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ea({...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 jA,readFile as Io,realpath as $A}from"node:fs/promises";import Sa from"node:path";var vt=class extends Error{code;constructor(t,r){super(r),this.code=t}},xr=/^sha256:[a-f0-9]{64}$/,pA=/^sha512-[A-Za-z0-9+/]{86}==$/,uA=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,Dm=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,fA=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Sm=/^[a-z][a-z0-9._:-]{2,127}$/;function Vr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,a)=>n===[...t].sort()[a])}function mA(e){if(!Vr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!Dm.test(e.registryId)||!Sm.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)||!Vr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Vr(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&&!Sm.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 Sl(e){if(!mA(e))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:y(k(t))})}function Pa(e){let t=e;if(typeof t!="object"||t===null||!Vr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!xr.test(t.revision))throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...a}=t;if(Sl(a).revision!==n)throw new vt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function gA(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 Dl(e,t){let r=Pa(t);if(!Vr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!gA(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:y(k(n))})}function jm(e,t){let r=e;if(typeof r!="object"||r===null||!Vr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!xr.test(r.bindingDigest))throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:a,...i}=r;if(Dl(i,t).bindingDigest!==a)throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function hA(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Vr(e,t)&&Dm.test(e.registryId)&&xr.test(e.registryConfigRevision)&&fA.test(e.packageName)&&uA.test(e.version)&&pA.test(e.integrity)&&xr.test(e.tarballDigest)&&xr.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&&xr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function jl(e){if(!hA(e))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function $m(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!xr.test(t.receiptId))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...a}=t;if(jl(a).receiptId!==n)throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Ae=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Na(e){return y(k(e))}var $l=/^sha256:[a-f0-9]{64}$/u,yA=/^sha512-[A-Za-z0-9+/]{86}==$/u,wA=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ao=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,IA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,vA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function io(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function Cm(e){return y(k(e))}function Tm(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:Cm(n),desiredLockfile:t};Lm(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 Lm(e){if(!io(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 Ae("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=>$l.test(a)))throw new Ae("RESOLUTION_EVIDENCE_INVALID");if(!ao.test(e.workerReleaseId)||!ao.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 Ae("RESOLUTION_EVIDENCE_INVALID");if(!io(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Ae("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(a=>!io(a,["importerId","manifestDigest","preimageDigest","desiredDigest"])||a.importerId!=="."&&!ao.test(a.importerId)||![a.manifestDigest,a.preimageDigest,a.desiredDigest].every(i=>$l.test(i))))throw new Ae("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(a=>!io(a,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!vA.test(a.identity)||!IA.test(a.packageName)||!ao.test(a.registryId)||!wA.test(a.version)||!yA.test(a.integrity)||typeof a.managed!="boolean"||!$l.test(a.edgesDigest)))throw new Ae("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 Ae("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(Cm(n)!==e.jobId)throw new Ae("RESOLUTION_EVIDENCE_INVALID")}function Cl(e,t){if(Lm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Ae("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Ae("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Ae("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 Ae("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 Ae("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Ae("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var H=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function co(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 H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var oo=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,xm=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Tl(e){return Array.isArray(e)?`[${e.map(Tl).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)}:${Tl(r)}`).join(",")}}`:JSON.stringify(e)}function Bt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function pt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function so(e){for(let t of[pt(e.dependencies),pt(e.devDependencies),pt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!oo.test(n)||xm.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var bA=["dependencies","devDependencies","optionalDependencies"];function lo(e,t){let r=[];for(let n of bA)for(let[a,i]of Object.entries(pt(e[n]))){if(t.has(a)){if(!oo.test(i))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(i))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:a,specifier:i})}return r.sort((n,a)=>`${n.section}:${n.packageName}`.localeCompare(`${a.section}:${a.packageName}`))}function Ll(e){let t=Bt(e.packageJson);so(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:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(a,null,2)}
|
|
31
|
+
`)}function Oa(e){let t=Bt(e.packageJson);lo(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:{...pt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...pt(t.devDependencies),...n}}:{}},null,2)}
|
|
32
|
+
`)}function xl(e){let t=Bt(e.packageJson);so(t);let r=pt(t.dependencies),n=pt(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
|
+
`)}function Vl(e){let t=Bt(e.packageJson);lo(t,new Set(e.remove.map(i=>i.packageName)));let r=pt(t.dependencies),n=pt(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)}
|
|
34
|
+
`)}function Vm(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new H("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(p=>p!==t).flatMap(p=>p.packageAdoption?.sources.map(f=>f.packageName)??[])),n=t.packageAdoption.sources.filter(p=>!r.has(p.packageName)),a=xl({packageJson:e.packageJson,remove:n}),i=Bt(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)}
|
|
35
|
+
`),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(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:Re({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 Mm(e){let t=e.currentLock.capabilities.find(g=>g.capabilityId===e.release.capabilityId&&g.version===e.release.version);if(!t?.packageAdoption||e.topology.mode!=="pnpm-shared-lockfile")throw new H("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(g=>g!==t).flatMap(g=>g.packageAdoption?.sources.map(h=>h.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),a=Vl({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=Cl(e.resolutionEvidence,{requestDigest:Na({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=Bt(e.projectManifest),l=Array.isArray(c.capabilities)?c.capabilities:[],d=Buffer.from(`${JSON.stringify({...c,capabilities:l.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
|
|
36
|
+
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(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:Re({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:lo(Bt(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 po(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 H("PACKAGE_SOURCE_NOT_FOUND");let i=Bt(e.packageJson),o=e.desiredBasePackageJson??e.packageJson,s=Bt(o),c="topology"in e,l=c?lo(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||so(i),c||so(s);let d=new Map(e.registryConfigs.map(I=>{let R=Pa(I);return[R.registryId,R]})),p=new Map(e.endpointBindings.map(I=>{let R=d.get(I.registryId);if(R===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let N=jm(I,R);return[N.registryId,N]})),f=new Map(e.receipts.map(I=>{let R=$m(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?Cl(e.resolutionEvidence,{requestDigest:Na({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:y(e.currentLockfile),desiredPackageJsonDigest:y(Oa({release:e.release,packageJson:o})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:N,integrity:j})=>({registryId:I,packageName:R,version:N,integrity:j})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:y(Oa({release:e.release,packageJson:o})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:N,integrity:j})=>({registryId:I,packageName:R,version:N,integrity:j})),now:e.generatedAt}):void 0,h=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:R,version:N,integrity:j})=>({registryId:I,packageName:R,version:N,integrity:j}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),N=p.get(I.registryId),j=f.get(I.deliveryReceiptId),te=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(j!==void 0&&(t==="production"&&j.provenance==="development-readback-verified"||t==="development"&&j.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!N||Date.parse(N.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!j||!te||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(j.registryId!==I.registryId||j.registryConfigRevision!==R.revision||j.packageName!==I.packageName||j.version!==I.version||j.integrity!==I.integrity||j.tarballDigest!==I.tarballDigest||te.integrity!==I.integrity||te.tarballDigest!==I.tarballDigest||te.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!oo.test(I.version)||te.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,X]of Object.entries(te.dependencies)){let oe=m.get(P);if(P.startsWith("@aipt/")&&(!oe||oe.version!==X||!oo.test(X)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${X}`)});if(xm.test(X))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?Oa({release:e.release,packageJson:o}):Ll({release:e.release,packageJson:o}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:N,expiresAt:j})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:N,expiresAt:j})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},A=y(Tl(b));return Object.freeze({...b,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function uo(e){return po(e,"production")}function fo(e){return po(e,"development")}function mo(e){return po(e,"production")}function go(e){return po(e,"development")}function kA(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",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 H("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 H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Um(e){kA(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await or({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await sr(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 ul({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new H("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var zm=Hr(Ar(),1);var Jm=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Gm="^[a-z0-9][a-z0-9._-]{0,127}$",Ml="^[A-Z][A-Z0-9_]{0,127}$",Fm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",RA={$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:Gm},profile:{enum:Jm}}},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:Ml},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:Ml},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:Fm}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Ml},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:Fm}}}]}}}},qm=new zm.Ajv2020({allErrors:!0,strict:!0}).compile(RA),Bm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,_A=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Xe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function Wm(e){let t=Y(e),r=t.profile?.id;if(!Jm.includes(r))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},a=n.name;if(Object.keys(n).length!==1||typeof a!="string"||!new RegExp(Gm,"u").test(a))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:a,profile:r}}function Ul(e,t){if(!qm(e))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",qm.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,a=new Set;for(let i of r.bindings){if(n.has(i.name))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${i.name}`);if(n.add(i.name),i.kind==="value"){if(Bm.test(i.name))throw new Xe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${i.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!i.name.endsWith("_FILE"))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${i.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let o=i.kind==="secret-file"?"secrets/":"certs/";if(i.kind==="certificate-file"&&(Bm.test(i.name)||_A.test(i.name)))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${i.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=i.file.split("/");if(!i.file.startsWith(o)||s.some(c=>c===""||c==="."||c===".."))throw new Xe("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 Xe("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=Wm(t);if(r.application.id!==i.id||r.application.profile!==i.profile)throw new Xe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ho(e){let t=Wm(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 Ul(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
+
`)}import{createHash as AA,X509Certificate as EA}from"node:crypto";import{lstat as Fl,readFile as Mr,realpath as Km}from"node:fs/promises";import ge from"node:path";var be=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Xm(e){let t=Y(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new be("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function yo(e){let t=Xm(e);return Buffer.from(`${JSON.stringify({$schema:"https://schemas.dyyto.dev/platform/application-config-binding-v1.json",schemaVersion:1,kind:"ApplicationConfigBinding",application:t,environment:{name:"local"},configDirectory:{rootEnvironmentVariable:"APP_CONFIG_DIR",scope:"application-environment"},contract:{path:"config/application-config.json"},materializationOwner:"external-deployment-control-plane"},null,2)}
|
|
38
|
+
`)}function PA(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new be("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new be("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Xm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new be("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function NA(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 be("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 Ym(e){return`sha256:${AA("sha256").update(e).digest("hex")}`}function OA(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Hm(e,t,r){let n=await Fl(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new be("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}async function SA(e,t,r){let n=ge.dirname(e);for(;n!==ge.dirname(n);){try{if(JSON.parse(await Mr(ge.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let i=ge.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(i))throw new be("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return ge.join(ge.basename(n),i,r)}}catch(a){if(a instanceof be)throw a}n=ge.dirname(n)}return ge.join(t,r)}async function DA(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let i=await Fl(n).catch(()=>null);if(!i?.isFile()||i.isSymbolicLink()||i.nlink!==1||(i.mode&511&-385)!==0)throw new be("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let o=JSON.parse(await Mr(n,"utf8"));if(o.schemaVersion!==1||!Array.isArray(o.projects))throw new be("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 be("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(a,await SA(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function wo({projectRoot:e,environment:t=process.env}){let r=await Km(ge.resolve(e)),[n,a,i]=await Promise.all([Mr(ge.join(r,"project-capabilities.json")),Mr(ge.join(r,".dyyto/application-config-binding.json")),Mr(ge.join(r,"config/application-config.json"))]),o=JSON.parse(n.toString("utf8")),s=PA(JSON.parse(a.toString("utf8")),o),c=Ul(JSON.parse(i.toString("utf8")),o),l=await DA(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new be("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Km(l),p=await Fl(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new be("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=ge.relative(r,d);if(f===""||!f.startsWith("..")&&!ge.isAbsolute(f))throw new be("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=ge.join(d,".env");await Hm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=NA(await Mr(u,"utf8")),g=[];for(let h of c.bindings){if(h.kind==="value"){let j=m[h.name]??"";g.push({name:h.name,kind:h.kind,required:h.required,configured:j.length>0,source:"APP_CONFIG_DIR",display:OA(j)});continue}if(m[h.name]!==h.file)throw new be("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),b=ge.relative(d,_);if(!b||b.startsWith("..")||ge.isAbsolute(b))throw new be("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Hm(_,h.name,!h.required),I=await Mr(_),R=I.length>0,N;if(R&&h.kind==="certificate-file")try{let j=new EA(I);N={subject:j.subject,issuer:j.issuer,validFrom:j.validFrom,validTo:j.validTo}}catch{throw new be("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:Ym(I),updatedAt:A.mtime.toISOString()}:{},...N?{certificate:N}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Ym(i),entries:g}}var Ur="project-capabilities.json",Zm=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function CA(e,t){if(!Zm.test(e)||!Zm.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 TA(e,t){let r=Sa.join(e,...t.split("/"));try{let n=await jA(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 Io(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function vo(e,t){let r=Y(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 Pl(dr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&a?.renderer==="react-component-package-json-v1")return Nl(dr(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 ql(e){let t=Y(e.manifest),r=Be(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&&CA(a.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await $A(Sa.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",vo(l,e.targetRelease));for(let P of a.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,ho(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,yo(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 X=await Io(Sa.join(c,"package.json")),oe=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=oe.transactionRoot,u=oe.mode==="pnpm-shared-lockfile"?`${oe.unitRelativeRoot}/package.json`:"package.json",m=oe.lockfilePath;let rt={release:a,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:a.consumerProfile,packageJson:X,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ft=oe.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?go:mo)({...rt,topology:{mode:oe.mode,unitRelativeRoot:oe.unitRelativeRoot,unitImporterId:oe.unitImporterId,lockfilePath:oe.lockfilePath,workspaceManifestPath:oe.workspaceManifestPath,workspaceManifestDigest:oe.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?fo:uo)({...rt,lockResolution:e.packageSource.lockResolution});p=co(ft),d.set("package.json",ft.desiredPackageJson),d.set(m,ft.desiredLockfile)}catch(ft){throw ft instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ft.code):ft}}let g=new Map(o.assets.filter(P=>P.path!==Ur).map(P=>[P.path,P.digest])),h=new Map(a.assets.filter(P=>P.path!==Ur).map(P=>{let X=d.get(P.path);if(X===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(X)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],b=[];for(let P of w){let X=await TA(c,P);_.push(X);let oe=g.get(P),rt=h.get(P),ft=a.assets.find(wy=>wy.path===P);if(ft?.ownership==="seed-file"&&X.exists&&X.digest!==void 0){h.set(P,X.digest),d.set(P,await Io(Sa.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:X.digest,desiredDigest:X.digest});continue}if(oe===void 0){if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ft?.ownership??"owned-file",desiredDigest:rt})}else rt===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:oe}):b.push({path:P,kind:"replace",ownership:ft?.ownership??"owned-file",baseDigest:oe,desiredDigest:rt})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let X=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(X)})}let A=await Io(Sa.join(c,Ur)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
+
`);_.push({path:Ur,exists:!0,digest:y(A)}),b.push({path:Ur,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!==Ur).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:a.verifiers.map(({id:P})=>({id:P,kind:"command"}))},N=f===c?b:b.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),j=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),te=Re({action:"upgrade",capability:R,changes:N,observedAssets:j,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Ur,I);let $=new Map;for(let P of te.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let X=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,oe=P.path===m?P.path:P.path.startsWith(X)?P.path.slice(X.length):P.path,rt=d.get(oe);if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,rt)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:te,desiredContents:$,transactionRoot:f}}import{link as LA,mkdir as xA,open as Qm,readFile as bt,readdir as VA,realpath as kt,rm as MA,unlink as UA}from"node:fs/promises";import fe from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function De(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function eg(e){return y(k(e))}function Wl(e){if(!De(e.project.lockDigest)||!De(e.project.appliedPlanId)||!De(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:eg(t)}}function Bl(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(eg(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return Wl({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 tg(e){if(!De(e.planId)||!De(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(k(t))}}function rg(e){if(!De(e.planId)||!De(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(k(t))}}function bo(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==y(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function zl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==y(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function ng(e){if(!De(e.planId)||!De(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(k(t))}}function Jl(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==y(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function ko(e){if(!De(e.planId)||!De(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"||!De(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(k(n))}}if(e.kind==="npm-publish"||e.kind==="application-deploy"&&e.adapterId!=="deployment.local-docker"||e.kind==="artifact-publication"&&e.adapterId!=="publication.offline-web"&&e.adapterId!=="publication.hosted-static"||e.kind==="hosted-static"&&(e.adapterId!=="publication.hosted-static"||e.details.renderMode!=="csr"))throw new D("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:y(k(t))}}function Gl(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==y(k(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 ko(s)}async function FA(e){let t=await Qm(e,"r");try{await t.sync()}finally{await t.close()}}async function Da(e,t){let r=fe.dirname(e);await xA(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,a=await Qm(n,"wx",384);try{await a.writeFile(`${k(t)}
|
|
40
|
+
`,"utf8"),await a.sync()}finally{await a.close()}try{await LA(n,e),await UA(n),await FA(r)}catch(i){throw await MA(n,{force:!0}),i}}async function ag(e){let t=await kt(fe.resolve(e.projectRoot)),r=Bl(e.plan),n=fe.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Da(n,r)}catch(a){if(a.code!=="EEXIST")throw a;if(k(Bl(JSON.parse(await bt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function zt(e){if(!De(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Bl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Kl(e){let t=await kt(fe.resolve(e.projectRoot)),r=Gl(e.receipt),n=await zt({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 _n({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=fe.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Da(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=Gl(JSON.parse(await bt(a,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return o}return r}async function Rn(e){if(!De(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Gl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function ig(e){let t=await kt(fe.resolve(e.projectRoot)),r=bo(e.record),n=await zt({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=fe.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Da(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=bo(JSON.parse(await bt(a,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return o}return r}async function og(e){if(!De(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=bo(JSON.parse(await bt(fe.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function sg(e){let t=await kt(fe.resolve(e.projectRoot)),r=fe.join(t,".dyyto","delivery","attempts"),n;try{n=await VA(r)}catch(a){if(a.code==="ENOENT")return null;throw a}for(let a of n.sort()){if(!a.endsWith(".json"))continue;let i=bo(JSON.parse(await bt(fe.join(r,a),"utf8")));if((await zt({projectRoot:t,planId:i.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([_n({projectRoot:t,planId:i.planId}),Rn({projectRoot:t,planId:i.planId})]);if(s===null&&c===null)return i}return null}async function cg(e){let t=await kt(fe.resolve(e.projectRoot)),r=zl(e.record),n=await zt({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=fe.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Da(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=zl(JSON.parse(await bt(a,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return o}return r}async function _n(e){if(!De(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=zl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function lg(e){let t=await kt(fe.resolve(e.projectRoot)),r=Jl(e.record),n=await _n({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=fe.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Da(a,r)}catch(i){if(i.code!=="EEXIST")throw i;let o=Jl(JSON.parse(await bt(a,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return o}return r}async function dg(e){if(!De(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await kt(fe.resolve(e.projectRoot));try{let r=Jl(JSON.parse(await bt(fe.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as Ng,readdir as EE}from"node:fs/promises";import Zl from"node:path";import{mkdir as Yl,open as Eo,readFile as $a,readdir as Hl,rename as Po,rm as Ag}from"node:fs/promises";import ye from"node:path";var qA=44;var pg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",BA=new Uint8Array(64),fg=new Uint8Array(128);for(let e=0;e<pg.length;e++){let t=pg.charCodeAt(e);BA[e]=t,fg[t]=e}function ja(e,t){let r=0,n=0,a=0;do{let o=e.next();a=fg[o],r|=(a&31)<<n,n+=5}while(a&32);let i=r&1;return r>>>=1,i&&(r=-2147483648|-r),t+r}function ug(e,t){return e.pos>=t?!1:e.peek()!==qA}var ij=1024*16;var zA=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 mg(e){let{length:t}=e,r=new zA(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=ja(r,a),a<f&&(p=!1),f=a,ug(r,l)?(i=ja(r,i),o=ja(r,o),s=ja(r,s),ug(r,l)?(c=ja(r,c),u=[a,i,o,s,c]):u=[a,i,o,s]):u=[a],d.push(u),r.pos++}p||JA(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function JA(e){e.sort(GA)}function GA(e,t){return e[0]-t[0]}var WA=/^[\w+.-]+:\/\//,KA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,YA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function HA(e){return WA.test(e)}function XA(e){return e.startsWith("//")}function yg(e){return e.startsWith("/")}function ZA(e){return e.startsWith("file:")}function gg(e){return/^[.?#]/.test(e)}function Ro(e){let t=KA.exec(e);return wg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function QA(e){let t=YA.exec(e),r=t[2];return wg("file:","",t[1]||"","",yg(r)?r:"/"+r,t[3]||"",t[4]||"")}function wg(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 hg(e){if(XA(e)){let r=Ro("http:"+e);return r.scheme="",r.type=6,r}if(yg(e)){let r=Ro("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(ZA(e))return QA(e);if(HA(e))return Ro(e);let t=Ro("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function eE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function tE(e,t){Ig(t,t.type),e.path==="/"?e.path=t.path:e.path=eE(t.path)+e.path}function Ig(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 vg(e,t){if(!e&&!t)return"";let r=hg(e),n=r.type;if(t&&n!==7){let i=hg(t),o=i.type;switch(n){case 1:r.hash=i.hash;case 2:r.query=i.query;case 3:case 4:tE(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)}Ig(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?gg(t||e)&&!gg(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 rE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function nE(e,t){let r=rE(e),n=t?t+"/":"";return a=>vg(n+(a||""),r)}var pr=0,aE=1,iE=2,oE=3,sE=4;function cE(e,t){let r=bg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=bg(e,n+1))e[n]=dE(e[n],t);return e}function bg(e,t){for(let r=t;r<e.length;r++)if(!lE(e[r]))return r;return e.length}function lE(e){for(let t=1;t<e.length;t++)if(e[t][pr]<e[t-1][pr])return!1;return!0}function dE(e,t){return t||(e=e.slice()),e.sort(pE)}function pE(e,t){return e[pr]-t[pr]}var Ao=!1;function uE(e,t,r,n){for(;r<=n;){let a=r+(n-r>>1),i=e[a][pr]-t;if(i===0)return Ao=!0,a;i<0?r=a+1:n=a-1}return Ao=!1,r-1}function fE(e,t,r){for(let n=r+1;n<e.length&&e[n][pr]===t;r=n++);return r}function mE(e,t,r){for(let n=r-1;n>=0&&e[n][pr]===t;r=n--);return r}function gE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function hE(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 Ao=o!==-1&&e[o][pr]===t,o;t>=i?s=o===-1?0:o:c=o}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=uE(e,t,s,c)}function yE(e){return typeof e=="string"?JSON.parse(e):e}var wE="`line` must be greater than 0 (lines start at line 1)",IE="`column` must be greater than or equal to 0 (columns start at column 0)",kg=-1,vE=1,Rg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=yE(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=nE(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=cE(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=gE(),this._bySources=void 0,this._bySourceMemos=void 0}};function bE(e){var t;return(t=e)._decoded||(t._decoded=mg(e._encoded))}function _g(e,t){let{line:r,column:n,bias:a}=t;if(r--,r<0)throw new Error(wE);if(n<0)throw new Error(IE);let i=bE(e);if(r>=i.length)return _o(null,null,null,null);let o=i[r],s=kE(o,e._decodedMemo,r,n,a||vE);if(s===-1)return _o(null,null,null,null);let c=o[s];if(c.length===1)return _o(null,null,null,null);let{names:l,resolvedSources:d}=e;return _o(d[c[aE]],c[iE]+1,c[oE],c.length===5?l[c[sE]]:null)}function _o(e,t,r,n){return{source:e,line:t,column:r,name:n}}function kE(e,t,r,n,a){let i=hE(e,n,t,r);return Ao?i=(a===kg?fE:mE)(e,n,i):a===kg&&i++,i===-1||i===e.length?-1:i}var ie=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Xl=/^sha256:[a-f0-9]{64}$/,Eg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,RE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,No=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Ca=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),An=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Pg(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 ie("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ye.join(ye.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await zt({projectRoot:r,planId:t.deploymentId}),a=await Rn({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 ie("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await Hl(ye.join(ye.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new ie("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function _E(e){if(!Ca(e)||!No(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new ie("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Ca(e.error)||!Ca(e.page)||!No(e.error,["type","message","frames"])||!No(e.page,["origin","path"]))throw new ie("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Eg.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 ie("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new ie("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Xl.test(n)))throw new ie("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!RE.test(e.traceparent)))throw new ie("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 ie("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 ie("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Ca(n)||!No(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new ie("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 ie("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new ie("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new ie("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 ie("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function AE(e,t,r="unknown"){let n=e.error.frames.map(o=>({file:An(o.file,2048),...o.line===void 0?{}:{line:o.line},...o.column===void 0?{}:{column:o.column},...o.function===void 0?{}:{function:An(o.function,256)}})),a={type:An(e.error.type,256),message:An(e.error.message,4096),frames:n},i=y(k({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:An(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:An(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:i,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Jt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=_E(t);if(!r.allowedOrigins.includes(n.page.origin))throw new ie("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let a=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),i=AE(n,r.receivedAt,a);return this.#t(async()=>{let o=this.directory();await Yl(o,{recursive:!0,mode:448});let s=ye.join(o,`${i.eventId}.json`);try{let f=JSON.parse(await $a(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:i.receivedAt})!==k(i))throw new ie("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 Eo(c,"wx",384);try{await l.writeFile(`${k(i)}
|
|
41
|
+
`,"utf8"),await l.sync()}finally{await l.close()}await Po(c,s);let d=await Eo(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=ye.join(this.directory(),t),n=ye.join(ye.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await Yl(n,{recursive:!0,mode:448}),await Po(r,ye.join(n,`${Date.now()}-${t}`))}async all(){let t=await Hl(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(ye.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=k({v:1,offset:t,snapshot:r});return Buffer.from(k({content:n,digest:y(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==y(n.content))throw new Error("tampered");let 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 ie("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(k(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(!Eg.test(t))throw new ie("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await $a(ye.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 ie("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 Ag(ye.join(this.directory(),`${a.eventId}.json`),{force:!0});for(let a of t.slice(0,1e4))Date.parse(a.receivedAt)<n&&await Ag(ye.join(this.directory(),`${a.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Xl.test(t.releaseId)||!Xl.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!Ca(t.map)||"sourcesContent"in t.map)throw new ie("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(k(t.map)),n=y(r),a=ye.join(this.releases(),t.releaseId);await Yl(a,{recursive:!0,mode:448});let i=y(t.asset),o=ye.join(a,`${i}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await Eo(`${o}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
|
|
42
|
+
`),await c.sync()}finally{await c.close()}return await Po(`${o}.tmp`,o),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await Hl(ye.join(this.releases(),t)).catch(()=>[]),n=[];for(let a of r)try{n.push(JSON.parse(await $a(ye.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=_g(new Rg(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=ye.join(this.directory(),`${a.eventId}.json`),l=await Eo(`${c}.tmp`,"w",384);try{await l.writeFile(`${k(s)}
|
|
43
|
+
`),await l.sync()}finally{await l.close()}await Po(`${c}.tmp`,c)}}};var Ze=(e,t,r,n,a)=>({code:e,severity:t,fact:r,message:n,...a===void 0?{}:{action:a}});async function Ta(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[Ze("EVIDENCE_INVALID","critical","evidence","\u5DF2\u9A8C\u8BC1\u9501\u7F3A\u5C11\u5B8C\u6574\u8BC1\u636E\u5F15\u7528\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")];for(let r of e.lock.capabilities)for(let n of r.evidenceIds)try{let a=pa(JSON.parse(await Ng(Zl.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[Ze("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u4E0E\u5DF2\u9A8C\u8BC1\u9501\u7684\u8EAB\u4EFD\u6216\u5DE5\u7A0B\u72B6\u6001\u4E0D\u4E00\u81F4\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u73B0\u573A\u5DF2\u53D8\u5316\uFF0C\u5148\u68C0\u67E5\u5E76\u91CD\u65B0\u89C4\u5212\u3002")]}catch{return[Ze("EVIDENCE_INVALID","critical","evidence","\u91C7\u7528\u8BC1\u636E\u7F3A\u5931\u3001\u635F\u574F\u6216\u4E0D\u7B26\u5408\u5951\u7EA6\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")]}let t=e.lock.capabilities.reduce((r,n)=>r+n.evidenceIds.length,0);return[Ze("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function Ql(e){return e==="adopted"?[]:e==="planned"?[Ze("ADOPTION_PLANNED","warning","lock","\u80FD\u529B\u91C7\u7528\u4ECD\u5904\u4E8E\u8BA1\u5212\u9636\u6BB5\u3002","\u5BA1\u9605\u5E76\u6279\u51C6\u7CBE\u786E Plan\u3002")]:e==="applied-unverified"?[Ze("VERIFICATION_REQUIRED","warning","evidence","\u53D8\u66F4\u5DF2\u5E94\u7528\u4F46\u5C1A\u672A\u5F62\u6210\u9A8C\u8BC1\u8BC1\u636E\u3002","\u8FD0\u884C\u9A8C\u8BC1\u5E76\u63D0\u4EA4\u91C7\u7528\u9501\u3002")]:e==="drifted"?[Ze("REPOSITORY_DRIFT","warning","repository","\u5DE5\u7A0B\u73B0\u573A\u4E0E\u5DF2\u9501\u5B9A\u4E8B\u5B9E\u4E0D\u4E00\u81F4\u3002","\u68C0\u67E5\u5DEE\u5F02\u5E76\u91CD\u65B0\u89C4\u5212\uFF0C\u5E73\u53F0\u4E0D\u4F1A\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002")]:e==="recovery-required"?[Ze("RECOVERY_REQUIRED","critical","recovery","\u68C0\u6D4B\u5230\u672A\u5B8C\u6210\u7684\u6301\u4E45\u5316\u4E8B\u52A1\u3002","\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\uFF0C\u518D\u7EE7\u7EED\u5176\u4ED6\u64CD\u4F5C\u3002")]:[Ze("FACT_INVALID","critical","manifest","\u5DE5\u7A0B\u5355\u5143\u4E8B\u5B9E\u65E0\u6CD5\u5B89\u5168\u8BFB\u53D6\u3002","\u4FEE\u590D\u8BE5\u5355\u5143\u7684 Manifest \u6216\u5143\u6570\u636E\u540E\u91CD\u65B0\u8BCA\u65AD\u3002")]}async function Og(e){try{let r=JSON.parse(await Ng(Zl.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[Ze("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}catch{return[Ze("OBSERVABILITY_NOT_CONFIGURED","warning","repository","\u5F53\u524D Web \u5E94\u7528\u5C1A\u672A\u914D\u7F6E\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u3002","\u767B\u8BB0\u5E94\u7528 Origin\uFF0C\u5E76\u542F\u52A8\u672C\u5730\u91C7\u96C6\u7AEF\u3002")]}await new Jt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await EE(Zl.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[Ze("OBSERVABILITY_STORE_DAMAGED","critical","repository",`\u8FD0\u884C\u65F6\u9519\u8BEF\u672C\u5730\u5B58\u50A8\u5DF2\u9694\u79BB ${t} \u6761\u635F\u574F\u8BB0\u5F55\uFF0C\u5065\u5EB7\u4E8B\u4EF6\u4ECD\u53EF\u67E5\u8BE2\u3002`,"\u68C0\u67E5\u672C\u673A\u78C1\u76D8\u72B6\u6001\uFF0C\u5E76\u663E\u5F0F\u5904\u7406\u9694\u79BB\u8BB0\u5F55\u3002")]:[Ze("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function Sg(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 La,realpath as Dg}from"node:fs/promises";import Fr from"node:path";var ce=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function jg(e){let t=await Dg(Fr.resolve(e.projectRoot)),r=Y(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 ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let i=Y({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),o=Buffer.from(`${JSON.stringify(i,null,2)}
|
|
44
|
+
`),s=await xa(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new ce("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=>xa(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:Re({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 xa(e,t){try{let r=await La(Fr.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 ed(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await Dg(Fr.resolve(e.projectRoot)),r=Y(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 ce("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new ce("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 ce("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(N=>N.capabilityId===R)||!e.currentLock.capabilities.some(N=>N.capabilityId===R)))throw new ce("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=Y({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=o("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
|
|
45
|
+
`),g=await xa(i,u);if(!g.exists||g.digest===void 0)throw new ce("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 ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let R;try{R=await La(Fr.join(t,"package.json"))}catch{throw new ce("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let N=e.packageSource.currentLockfile??await La(Fr.join(t,"pnpm-lock.yaml")).catch(oe=>oe.code==="ENOENT"?void 0:Promise.reject(oe)),j=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},te=j.mode==="pnpm-shared-lockfile",$={mode:j.mode,unitRelativeRoot:j.unitRelativeRoot,unitImporterId:j.unitImporterId,lockfilePath:j.lockfilePath,...j.workspaceManifestPath?{workspaceManifestPath:j.workspaceManifestPath,workspaceManifestDigest:j.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(te&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let X=te?(e.packageChannel==="development"?go:mo)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:N,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?fo:uo)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...N===void 0?{}:{currentLockfile:N},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=co(X),h.push({path:o("package.json"),kind:"replace",ownership:"owned-file",baseDigest:X.packageJsonPreimageDigest,desiredDigest:X.desiredPackageJsonDigest}),w.set(o("package.json"),X.desiredPackageJson),h.push({path:j.lockfilePath,kind:N===void 0?"create":"replace",ownership:"owned-file",...N===void 0?{}:{baseDigest:y(N)},desiredDigest:X.desiredLockfileDigest}),w.set(j.lockfilePath,X.desiredLockfile)}catch(N){throw N instanceof H?new ce("CAPABILITY_PACKAGE_SOURCE_INVALID",N.code):N}}for(let R of n.assets){let N=e.release.contents.get(R.path);if(N===void 0)throw new ce("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let j=R.renderer==="application-config-contract-v1"?ho(r):R.renderer==="application-config-binding-v1"?yo(r):N;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new ce("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let te;try{te=await La(Fr.join(t,...R.path.split("/")))}catch{throw new ce("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(Gf({source:te.toString("utf8"),regionId:R.regionId,content:Buffer.from(j).toString("utf8")}));h.push({path:o(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(te),desiredDigest:y($)}),w.set(o(R.path),$)}else{let te=await xa(t,R.path);if(R.ownership==="seed-file"&&te.exists){let $=await La(Fr.join(t,...R.path.split("/")));h.push({path:o(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(o(R.path),$)}else h.push({path:o(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(j)}),w.set(o(R.path),j)}}let b=await Promise.all(h.map(R=>xa(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:Re({action:"adopt",capability:A,changes:h,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:i,dependency:{profile:c,satisfied:!0}}}var $g=Hr(Ar(),1);var PE={$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:Pt},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}}}}},xj=new $g.Ajv2020({allErrors:!0,strict:!0}).compile(PE);var Vg=Hr(Ar(),1);import{readFile as NE,realpath as OE}from"node:fs/promises";import Cg from"node:path";var Tg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",Lg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",SE={$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:Tg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Pt},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:Lg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Tg}},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:Lg,maxLength:240}}}}}},xg=new Vg.Ajv2020({allErrors:!0,strict:!0}).compile(SE),qr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function DE(e){return y(k(e))}function jE(e){if(!xg(e))throw new qr("EXAMPLE_RECIPE_INVALID",xg.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new qr("EXAMPLE_RECIPE_INVALID");return t}async function Mg(e){let t=await OE(Cg.resolve(e)),r;try{r=jE(JSON.parse(await NE(Cg.join(t,"recipe.json"),"utf8")))}catch(i){throw i instanceof qr?i:new qr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...a}=r;if(DE(a)!==n)throw new qr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var qg=Hr(Ar(),1);import{readFile as $E,realpath as CE}from"node:fs/promises";import Ug from"node:path";var TE={$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:Pt},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"]}}}},Fg=new qg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(TE),Gt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function LE(e){return y(k(e))}function xE(e){if(!Fg(e))throw new Gt("TEMPLATE_INVALID",Fg.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 Gt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Gt("TEMPLATE_INVALID");return t}async function Va(e,t=new Date){let r=await CE(Ug.resolve(e)),n;try{n=xE(JSON.parse(await $E(Ug.join(r,"template.json"),"utf8")))}catch(o){throw o instanceof Gt?o:new Gt("TEMPLATE_INVALID")}let{integrity:a,...i}=n;if(LE(i)!==a)throw new Gt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Gt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Bg}from"node:fs/promises";import zg from"node:path";var VE=/^[A-Z][A-Z0-9_]*$/u,ME=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function UE(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||!VE.test(n[1]))continue;let a=n[1],i=n[2].trim();t.set(a,{name:a,requirement:i.length===0?"conditional":"optional",secret:ME.test(a),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Jg(e){let t=await Bg(zg.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Bg(zg.join(e.projectRoot,t),"utf8"):"",n=await wo({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}:{}})):UE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Gg={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"])},Wg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Kg(e,t){if(!Gg[t.plane]||t.state&&!Wg.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=Gg[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([...Wg]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var Qe=class extends Error{code;constructor(t){super(t),this.code=t}},FE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Yg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,qE=/^sha512-[A-Za-z0-9+/]{86}==$/u,Oo=/^sha256:[a-f0-9]{64}$/u,BE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,zE=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,JE=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Br(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function GE(e){if(!Br(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!FE.test(e.packageName)||!Yg.test(e.version)||!BE.test(e.assetName)||!qE.test(e.integrity)||!Oo.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)||!Yg.test(n)||zE.test(n))?!1:e.lifecycleScripts.every(r=>JE.has(r))}function td(e){if(!Br(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(i=>Object.freeze({...i,dependencies:Object.freeze({...i.dependencies}),lifecycleScripts:Object.freeze([...i.lifecycleScripts])}));if(t.some(i=>!GE(i)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(i=>i.packageName+"@"+i.version);if(new Set(r).size!==r.length||r.some((i,o)=>o>0&&i.localeCompare(r[o-1])<=0))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(i=>i.packageName));for(let i of t)for(let[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 Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let a={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...a,bundleId:y(k(a))})}function zr(e){let t=e;if(typeof t!="object"||t===null||!Br(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Oo.test(t.bundleId)||!Array.isArray(t.artifacts))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");if(td({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function rd(e){if(!Br(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(a=>Object.freeze({...a}));if(t.some(a=>!Br(a,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(a.relativeRoot)||!Oo.test(a.manifestDigest))||new Set(t.map(a=>a.relativeRoot)).size!==t.length)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");let r=zr(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:y(k(n))})}function Hg(e){let t=e;if(typeof t!="object"||t===null||!Br(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Oo.test(t.planId)||!Br(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");if(rd({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new Qe("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Xg(e){let t=zr(e.bundle),r=Pa(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>jl({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ye=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Zg=/^sha256:[a-f0-9]{64}$/u,So=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function nd(e){if(!So.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Zg.test(r))||!So.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:y(k(t))})}function Qg(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let r=nd({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");return r}function ad(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Zg.test(r))||!So.test(e.workerReleaseId)||!So.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(k(t))})}function Do(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");let r=ad({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ye("RESOLUTION_WORKER_BUILD_INVALID");return r}var Ma=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},id=/^sha256:[a-f0-9]{64}$/u,WE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function od(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>id.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!WE.test(r.path)||!id.test(r.currentDigest)||!id.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ma("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:y(k(t))})}function eh(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Ma("RECOVERY_OVERRIDE_INVALID");let r=od({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 Ma("RECOVERY_OVERRIDE_INVALID");return r}var Ua=class extends Error{code;constructor(t,r){super(r),this.code=t}},cd=/^sha256:[a-f0-9]{64}$/u,KE=/^sha512-[A-Za-z0-9+/]{86}==$/u,YE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,HE=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,XE=/[\u0000-\u001f\u007f]/u;function En(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Pn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((a,i)=>a===n[i])}function Wt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!XE.test(e)}function sd(e){return Wt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function th(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Wt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function ZE(e){return e===null?!0:!En(e)||!Pn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:sd(e.fileName)&&cd.test(String(e.digest))&&KE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function QE(e){if(!En(e)||!Pn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!YE.test(e.packageName)||!HE.test(e.version)||!Wt(e.title,120)||!Wt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!En(e.source)||!Pn(e.source,["repository","path","revision","treeDigest"])||!Wt(e.source.repository)||!sd(e.source.path)||!Wt(e.source.revision,200)||!cd.test(String(e.source.treeDigest))||!ZE(e.artifact)||!En(e.compatibility)||!Pn(e.compatibility,["node","packageManager"])||!Wt(e.compatibility.node,100)||!Wt(e.compatibility.packageManager,100)||!th(e.exports)||!th(e.consumerEvidence)||!En(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Pn(e.documentation,t)||!sd(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Wt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function eP(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(!QE(t))throw new Ua("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(k(t))})}function rh(e){if(!En(e)||!Pn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!cd.test(String(e.releaseDigest)))throw new Ua("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...a}=e,i=eP(a);if(i.releaseDigest!==t)throw new Ua("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return i}import{lstat as tP,readFile as rP,realpath as nP}from"node:fs/promises";import nh from"node:path";async function ah(e){let t=await nP(nh.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=nh.join(t,...o.path.split("/")),l=await tP(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await rP(s);if(o.ownership!=="managed-region")return y(p);if(o.regionId!==void 0)try{return y(Li(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 ne,readdir as Ih,realpath as Rt}from"node:fs/promises";import{execFile as wP,spawn as IP}from"node:child_process";import O from"node:path";import{parseArgs as ue,promisify as vP}from"node:util";import{lstat as ih,mkdir as dd,readFile as oh,realpath as ld,rm as aP,writeFile as sh}from"node:fs/promises";import et from"node:path";var tt=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},iP=e=>k(e),ch=e=>y(iP(e));async function lh(e,t){let r=await ld(et.resolve(e)),n=et.join(r,".examples");await dd(n,{recursive:!0});let a=await ld(n),i=et.resolve(r,t);if(et.dirname(i)!==a||et.basename(i).startsWith(".")||et.basename(i).length<1)throw new tt("SCAFFOLD_ARGUMENT_INVALID");if(await ih(i).then(()=>!0).catch(o=>o.code==="ENOENT"?!1:Promise.reject(o)))throw new tt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:i,outputRelativePath:et.relative(r,i)}}async function dh(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new tt("SCAFFOLD_ARGUMENT_INVALID");let r=await lh(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:ch(a)},o=et.join(r.workspaceRoot,".dyyto","scaffold-plans");await dd(o,{recursive:!0});let s=et.join(o,`${i.planId}.json`);return await sh(s,`${k(i)}
|
|
46
|
+
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await oh(s,"utf8")!==`${k(i)}
|
|
47
|
+
`)throw new tt("SCAFFOLD_PLAN_INVALID")}),i}async function oP(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new tt("SCAFFOLD_PLAN_INVALID");let r=await ld(et.resolve(e)),n;try{n=JSON.parse(await oh(et.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new tt("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:a,...i}=n;if(a!==t||ch(i)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new tt("SCAFFOLD_PLAN_INVALID");return n}async function ph(e){let t=await oP(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new tt("SCAFFOLD_PLAN_INVALID");let r=await lh(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await ih(r.output).then(()=>!0).catch(()=>!1)&&await aP(r.output,{recursive:!0,force:!0}),new tt("SCAFFOLD_APPLY_FAILED",s)}let a={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},i=y(k(a)),o=et.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await dd(o,{recursive:!0}),await sh(et.join(o,`${i}.json`),`${k({...a,evidenceId:i})}
|
|
48
|
+
`,{flag:"wx",mode:384}),{evidenceId:i,output:r.output,receipts:n}}import{lstat as Fa,readFile as pd,readdir as sP,realpath as ud}from"node:fs/promises";import me from"node:path";var uh={capabilities:me.resolve(import.meta.dirname,"catalog"),packages:me.resolve(import.meta.dirname,"package-releases")};function mh(e,t){return e<t?-1:e>t?1:0}function $o(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map($o).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>mh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${$o(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function cP(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 fh(e,t){let r=await Fa(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 jo(e,t){let r=await Fa(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 ud(e)}async function lP(e){let t=e;for(;;){if(await Fa(me.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=me.dirname(t);if(r===t)return;t=r}}async function dP(e){if(!me.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await jo(e,"IDP_CONFIG_DIR");await lP(t);let r=await jo(me.join(t,"components"),"components"),n=await jo(me.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),a=me.relative(t,n);if(a.startsWith("..")||me.isAbsolute(a))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let i=me.join(n,".env");await fh(i,"Dyyto \u7EC4\u4EF6 .env");let o=cP(await pd(i,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(o===void 0||o==="")return[];if(me.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=me.resolve(n,o),c=me.relative(n,s);if(c===""||c.startsWith("..")||me.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(me.sep).slice(0,-1))l=await jo(me.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await ud(me.dirname(s)),p=me.relative(n,d);if(p.startsWith("..")||me.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await fh(s,"Package Catalog Binding");let f=[];for(let u of(await pd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!me.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Fa(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let h=await ud(m),w=await Fa(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 pP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await dP(e);return{capabilities:uh.capabilities,packages:[uh.packages,...t]}}async function Co(e){return(await sP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function uP(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 fP(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 mP(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 gP(e){let t=[];for(let r of await Co(e))for(let n of await Co(me.join(e,r))){let a=`capability:${r}@${n}`;t.push(ve(me.join(e,r,n)).then(i=>({entry:{item:fP(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 hP(e){let t=[];for(let r of await Co(e))for(let n of await Co(me.join(e,r))){let a=me.join(e,r,n,"release.json"),i=`package:${r}@${n}`;t.push(pd(a,"utf8").then(o=>{let s=rh(JSON.parse(o));return{entry:{item:mP(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 fd(e){let t=e??await pP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...a]=await Promise.all([gP(t.capabilities),...r.map(hP)]),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 To(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await fd(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||uP(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 Lo(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await fd(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 yP(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 gh(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 fd(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=yP(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)=>mh(o.ref,s.ref)),i={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(a)};return Object.freeze({...i,sourceDigest:y($o(i))})}function hh(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y($o(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
+
`}var qa={"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"},vh=vP(wP),bP=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"]),bh=(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,xo={"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 kh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Vo(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let a=await ne(O.join(e,"package.json")),i=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:o}=await import("./optional-runtime.js"),s=await qt(e),c=await ne(O.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new ce("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new ce("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=Oa({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=Ll({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 Rh(e,t,r,n){let a=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(a&&!a.packageAdoption){let b=JSON.parse(await ne(O.join(e,"project-capabilities.json"),"utf8")),A=new Date;return jg({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!a?.packageAdoption)throw new ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let i=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),o=await ne(O.join(e,"package.json")),s=await ne(O.join(e,"project-capabilities.json")),c=await qt(e),l=await ne(O.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==a).flatMap(b=>b.packageAdoption?.sources.map(A=>A.packageName)??[])),p=a.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?Vl({packageJson:o,remove:p}):xl({packageJson:o,remove:p}),u=r.capabilities.filter(b=>b!==a).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new ce("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),A=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...a.assets.map(R=>`${c.unitRelativeRoot}/${R.path}`)],I=await Promise.all(A.map(async R=>ne(O.join(c.transactionRoot,...R.split("/"))).then(N=>({path:R,exists:!0,digest:y(N)})).catch(N=>N.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(N))));return{...Mm({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:l,endpointBindings:i.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:i.registryConfigs,endpointBindings:i.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...a.packageAdoption.sources],registries:i.registryConfigs,endpointBindings:i.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...a.assets.map(b=>b.path)].map(async b=>ne(O.join(e,...b.split("/"))).then(A=>({path:b,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(A))));return{...Vm({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 v(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function je(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):O.resolve(import.meta.dirname,"catalog",e,t)}function Mo(e,t){return bP.has(`${e}@${t}`)?O.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function kP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("The selected example recipe identity or version is invalid."):O.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=O.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${O.sep}`)?t:O.basename(e)}async function Uo(e){let t=JSON.parse(await ne(O.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await ve(je(r.capabilityId,r.version)),a=await Ve(e).catch(()=>null),i=new Date,s=await(t.profile?.id==="standalone-npm-package"?ba:t.profile?.id==="react-component-library"?ka:t.profile?.id==="nextjs-full-stack-application"?kn:t.profile?.id==="workspace-npm-package"?Ra:t.profile?.id==="workspace-node-application"?_a:t.profile?.id==="workspace-web-application"?Aa:t.profile?.id==="workspace-expo-application"?Ea:Ui)({projectRoot:e,manifest:t,release:n,...a===null?{}:{currentLock:a},generatedAt:i.toISOString(),expiresAt:new Date(i.getTime()+1800*1e3).toISOString()});return Ft({projectRoot:e,plan:s.plan,now:i.toISOString()})}async function _h(e){let t;try{t=ue({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Va(Mo(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 v("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:qa[a]);if(n!==void 0&&s.split("@")[0]!==qa[a].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&i!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&i!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(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"],b=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof b=="string"?{repository:b}:{}}}else if(a==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:a,parameters:d},capabilities:[{capabilityId:c,version:l}]};(a==="standalone-npm-package"||a==="react-component-library")&&dr(Y(p),a),a==="nextjs-full-stack-application"&&Tr(Y(p));let f=await to({projectRoot:t.positionals[0],manifest:p}),u=await Uo(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
|
|
50
50
|
Plan: ${u.planId}
|
|
51
51
|
State: ${u.state}
|
|
52
|
-
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:a,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function RP(e){let[t,...r]=e,n;try{n=ue({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},profile:{type:"string"},capability:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return v("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return v("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return v("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return v("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return v("Retrofit --profile is invalid.");let a=n.values.capability??"foundation.workspace-root@1.2.0",i=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(a);if(!i)return v("Retrofit --capability is invalid.");let o=await ve(je(i[1],i[2])),s=n.values.profile??"workspace-root";if(o.release.consumerProfile!==s)return v("Retrofit profile and capability are incompatible.");let c=new Date,l=s==="workspace-root"?await fm({projectRoot:n.values.project,capabilityIntegrity:o.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}):await um({projectRoot:n.values.project,manifest:{schemaVersion:1,profile:{id:s,parameters:{}},capabilities:[{capabilityId:i[1],version:i[2]}]},capabilityIntegrity:o.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString()}),d=ee(l.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return v("Retrofit plan does not accept --approve.");let m=await Ft({projectRoot:l.projectRoot,plan:l.plan,now:c.toISOString()});return{outputMode:z(e),human:`Project: ${d}
|
|
53
53
|
Plan: ${m.planId}
|
|
54
54
|
State: ${m.state}
|
|
55
55
|
Files: project-capabilities.json
|
|
56
|
-
Next: dyyto retrofit apply --project ${d} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:d,plan:m}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let p=await
|
|
56
|
+
Next: dyyto retrofit apply --project ${d} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:d,plan:m}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let p=await $r({projectRoot:l.projectRoot,planId:n.values.approve}),f=await or({projectRoot:l.projectRoot,plan:p,approvedPlanId:n.values.approve,desiredContents:l.desiredContents,now:c.toISOString()}),u=await sr(f);return{outputMode:z(e),human:`Project: ${d}
|
|
57
57
|
Plan: ${p.planId}
|
|
58
58
|
State: ${u.state}
|
|
59
|
-
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:d,planId:p.planId,transaction:u}}}}async function
|
|
59
|
+
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:d,planId:p.planId,transaction:u}}}}async function _P(e,t){let r;try{r=ue({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return v(`${e} requires --project.`);let n=await Rt(O.resolve(r.values.project)),a=Y(JSON.parse(await ne(O.join(n,"project-capabilities.json"),"utf8")));if(a.template===void 0)return v("The project does not declare an engineering template.");let i=await Va(Mo(a.template.id,a.template.version)),o=i.commands[e];if(o===void 0)return v(`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=IP("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 T({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 vh("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 AP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"},capability:{type:"string"},kind:{type:"string"},profile:{type:"string"}}})}catch{return v("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(_=>typeof _!="string"))return v("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return v("Add package requires a supported --profile.");let a=n==="react-component-library"?qa["workspace-react-component-library"]:qa["workspace-npm-package"];if(t.values.capability!==a)return v(`Add package requires --capability ${a}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return v("Add package --kind only accepts fixture.");let i=t.values.kind==="fixture"?"fixture":"package",o=String(t.values.path),s=Td(o,i);if(s!==void 0)return v(s);let c=await Rt(O.resolve(String(t.values.workspace))),l=JSON.parse(await ne(O.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let d=l.capabilities?.[0];if(d?.capabilityId!=="foundation.workspace-root")return v("Workspace root capability is invalid.");let p=await Ve(c);if(p===null){let _=await ve(je(d.capabilityId,d.version)),b=new Date;if((await Mi({projectRoot:c,release:_,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding a package.")}if(p!==null){try{await Or({projectRoot:c,expectedAssets:kh(p)})}catch{return v("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Ta({projectRoot:c,lock:p})).some(b=>b.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await xd(c,i==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[f,u]=a.split("@"),m={schemaVersion:1,...xo[n]===void 0?{}:{template:xo[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}]};dr(Y(m),n);let g=await to({projectRoot:O.join(c,...o.split("/")),manifest:m}),h=await Uo(g.projectRoot),w=ee(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${o}' initialized.
|
|
60
60
|
Plan: ${h.planId}
|
|
61
61
|
State: ${h.state}
|
|
62
|
-
Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:
|
|
62
|
+
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 EP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},profile:{type:"string"},capability:{type:"string"}}})}catch{return v("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return v("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return v("Add application requires a supported --profile.");let n=r,a=qa[n],i=String(t.values.path),o=Ld(i,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(o!==void 0)return v(o);let s=await Rt(O.resolve(String(t.values.workspace))),c=JSON.parse(await ne(O.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let l=c.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(l.version))return v("Workspace applications require a supported foundation.workspace-root release.");if(i.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return v("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let d=await Ve(s);if(d===null){let w=await ve(je(l.capabilityId,l.version)),_=new Date;if((await Mi({projectRoot:s,release:w,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding an application.")}if(d!==null){try{await Or({projectRoot:s,expectedAssets:kh(d)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Ta({projectRoot:s,lock:d})).some(_=>_.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Vd(s,String(t.values.name)))return v("A workspace application already uses this name.");let[p,f]=a.split("@"),u={schemaVersion:1,...xo[n]===void 0?{}:{template:xo[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Tr(Y(u));let m=await to({projectRoot:O.join(s,...i.split("/")),manifest:u}),g=await Uo(m.projectRoot),h=ee(m.projectRoot);return{outputMode:z(e),human:`Workspace application '${i}' initialized.
|
|
63
63
|
Plan: ${g.planId}
|
|
64
64
|
State: ${g.state}
|
|
65
|
-
Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:ee(s),path:i,plan:g}}}}async function
|
|
66
|
-
Feature: ${
|
|
65
|
+
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 Ah(e,t){let r;try{r=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=await Rt(O.resolve(r.values.project)),a=JSON.parse(await ne(O.join(n,"project-capabilities.json"),"utf8")),i=await Ve(n);if(i===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[o,s]=Fo(r.values.capability),c=await ve(je(o,s)),l=new Date,d;try{let u=await Vo(n,c,t);d=await ed({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 ce?new T({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Ft({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:z(e),human:`Project: ${f}
|
|
66
|
+
Feature: ${o}@${s}
|
|
67
67
|
Dependency: ${d.dependency.profile} satisfied
|
|
68
68
|
Plan: ${p.planId}
|
|
69
69
|
State: ${p.state}
|
|
70
|
-
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function
|
|
71
|
-
\u79FB\u9664\u80FD\u529B\uFF1A${i}@${
|
|
70
|
+
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function PP(e,t){let r;try{r=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await Rt(O.resolve(r.values.project)),a=await Ve(n);if(a===null)return v("Remove feature requires a verified Lock.");let[i,o]=Fo(r.values.capability),s=await ve(je(i,o)),c=await Rh(n,s,a,t),l=await Ft({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}
|
|
71
|
+
\u79FB\u9664\u80FD\u529B\uFF1A${i}@${o}
|
|
72
72
|
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
|
|
73
73
|
Plan: ${l.planId}
|
|
74
74
|
State: ${l.state}
|
|
75
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function
|
|
75
|
+
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function NP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=O.resolve(t.values.project),n=await Uo(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}
|
|
76
76
|
Plan: ${n.planId}
|
|
77
77
|
State: ${n.state}
|
|
78
|
-
${i}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:
|
|
79
|
-
Baseline: ${n}@${
|
|
78
|
+
${i}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:a,plan:n}}}}function Fo(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?v("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function OP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return v("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return v("Baseline requires --project and --capability.");let r=O.resolve(t.values.project);if(await Ve(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,a]=Fo(t.values.capability),i=await ve(je(n,a)),o=JSON.parse(await ne(O.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await Ol({projectRoot:r,manifest:o,release:i,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Ft({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:z(e),human:`Project: ${d}
|
|
79
|
+
Baseline: ${n}@${a}
|
|
80
80
|
Plan: ${l.planId}
|
|
81
81
|
State: ${l.state}
|
|
82
82
|
Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
|
|
83
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function
|
|
84
|
-
Upgrade: ${s.version} -> ${
|
|
83
|
+
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function SP(e,t){let r;try{r=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},to:{type:"string"},repository:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return v("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=O.resolve(r.values.project),a=JSON.parse(await ne(O.join(n,"project-capabilities.json"),"utf8")),[i,o]=Fo(r.values.to),s=a.capabilities?.find(R=>R.capabilityId===i);if(s===void 0)return v(`Upgrade requires ${i} to be adopted by the project.`);let c=await Ve(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let l=(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 v("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 v("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await ve(je(s.capabilityId,s.version)),p=await ve(je(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?vo(f,p):void 0,g=u?await Vo(n,p,t,m):void 0,h=bh(i,o),w=new Date,_=await ql({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}}),b=await Ft({projectRoot:n,plan:_.plan,now:w.toISOString(),transactionRoot:_.transactionRoot}),A=ee(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${A} --approve ${b.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${A}
|
|
84
|
+
Upgrade: ${s.version} -> ${o}
|
|
85
85
|
Plan: ${b.planId}
|
|
86
86
|
State: ${b.state}
|
|
87
|
-
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function
|
|
88
|
-
Plan: ${
|
|
87
|
+
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function md(e,t){let r;try{r=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},repository:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Apply arguments are invalid.")}if(typeof r.values.project!="string")return v("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return v("Apply requires --approve <planId>.");let n=O.resolve(r.values.project),a=JSON.parse(await ne(O.join(n,"project-capabilities.json"),"utf8")),i=a.capabilities?.[0];if(i===void 0)return v("Project manifest must select one capability.");let o=await $r({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(o.action==="remove"){let u=await Ve(n);if(u===null)return v("Remove apply requires the verified Lock.");let m=await Rh(n,await ve(je(o.capability.capabilityId,o.capability.version)),u,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,d="endpointBindings"in m?m.endpointBindings:void 0}else if(o.action==="upgrade"){let u=await Ve(n),m=u?.capabilities.find(I=>I.capabilityId===o.capability.capabilityId);if(u===null||m===void 0)return v("Upgrade apply requires the verified source Lock.");if((m.consumerProfile==="standalone-npm-package"||m.consumerProfile==="workspace-npm-package")&&o.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return v("npm package upgrade apply requires the approved --repository value.");a={...a,profile:{...a.profile,parameters:{...a.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is not valid for this apply operation.");let g=await ve(je(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?vo(h,g):void 0,b=w?await Vo(n,g,t,_):void 0;l=b?.registryConfigs,d=b?.endpointBindings;let A=bh(o.capability.capabilityId,o.capability.version);c=await ql({projectRoot:n,manifest:a,currentLock:u,sourceRelease:await ve(je(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"}:{},...b===void 0?{}:{packageSource:b}})}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 Ol({projectRoot:n,manifest:a,release:await ve(je(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 ve(je(i.capabilityId,i.version)),m=await Ve(n).catch(()=>null);c=await(a.profile?.id==="standalone-npm-package"?ba:a.profile?.id==="react-component-library"?ka:a.profile?.id==="nextjs-full-stack-application"?kn:a.profile?.id==="workspace-npm-package"?Ra:a.profile?.id==="workspace-node-application"?_a:a.profile?.id==="workspace-web-application"?Aa:a.profile?.id==="workspace-expo-application"?Ea:Ui)({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 Ve(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let m=await ve(je(o.capability.capabilityId,o.capability.version)),g=await Vo(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await ed({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 ce("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 ce("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await Um({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 or({projectRoot:n,plan:o,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await sr(u)}let f=ee(n);return{outputMode:z(e),human:`Project: ${f}
|
|
88
|
+
Plan: ${o.planId}
|
|
89
89
|
State: ${p.state}
|
|
90
90
|
Files applied: ${p.operations.length}
|
|
91
|
-
`+(
|
|
91
|
+
`+(o.packageAdoption===void 0?`Next: cd ${f} && corepack pnpm install`:`Next: dyyto verify --project ${f}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:f,planId:o.planId,transaction:p}}}}async function DP(e,t){let r;try{r=ue({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},output:{type:"string"},locale:{type:"string"},channel:{type:"string"},approve:{type:"string"},"recipe-version":{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return v("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return v("Scaffold example recipe identifier is invalid.");let a=await Mg(kP(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 dh({workspaceRoot:o,output:r.values.output,recipe:a,artifactBundle:s,artifactFallbackBundles:l,artifactPort:i});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${a.title}
|
|
92
92
|
Plan\uFF1A${u.planId}
|
|
93
93
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
|
|
94
|
-
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return v("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",
|
|
94
|
+
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return v("Scaffold example --approve must be an exact Plan ID.");let p=["--artifact-workspace",o,"--artifact-bundle",s,...l.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(i)],f;try{f=await ph({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 _h([u,"--profile","nextjs-full-stack-application","--capability",`${a.rootProfile.capabilityId}@${a.rootProfile.version}`,"--name",a.recipeId])).value.result.plan.planId;await md(["--project",u,"--approve",w],t),g.push(w),await vh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:O.join(o,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await gd(["--project",u]);for(let _ of a.capabilities){let b=`${_.capabilityId}@${_.version}`;try{let I=(await Ah(["--project",u,"--capability",b,"--channel",_.channel,...p],t)).value.result.plan.planId;await md(["--project",u,"--approve",I,...p],t),await gd(["--project",u]),g.push(I)}catch(A){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${A instanceof Error?A.message:"UNKNOWN"}`,{cause:A})}}return g}})}catch(u){let m=u instanceof tt&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new T({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${m}`,exitCode:1,nextStep:"\u68C0\u67E5\u5931\u8D25\u7684 Capability \u4E0E\u4E8B\u52A1 Evidence\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}return{outputMode:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${O.relative(process.cwd(),f.output)}
|
|
95
95
|
Evidence\uFF1A${f.evidenceId}
|
|
96
|
-
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Ba(e,t){let r;try{r=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project <directory>.`):{projectRoot:O.resolve(r.values.project),outputMode:z(e)}}async function gd(e){let{projectRoot:t,outputMode:r}=Ba(e,"Verify"),n=JSON.parse(await ne(O.join(t,"project-capabilities.json"),"utf8")),a=await Ve(t),i=await qt(t).catch(()=>{}),o;try{let h=a?.capabilities.map(_=>_.appliedPlanId)??[],w=a?.capabilities.map(_=>_.capabilityId)??[];try{o=await ro(t,h,t,w)}catch(_){if(!(_ instanceof he)||_.code!=="PLAN_NOT_FOUND"||i===void 0)throw _;o=await ro(t,h,i.transactionRoot,w)}}catch(h){if(!(h instanceof he)||h.code!=="PLAN_NOT_FOUND"||a===null)throw h;let _=(await hd(["--project",t,"--json"])).value.result,b=await Ta({projectRoot:t,lock:a});if(_.state!=="adopted"||b.some(I=>I.code!=="EVIDENCE_VALID"))throw new T({code:"VERIFICATION_STATE_INVALID",message:"The adopted project has drifted or its verification evidence is invalid.",exitCode:4,nextStep:"Run dyyto inspect and dyyto doctor before creating a new plan."});let A=ee(t);return{outputMode:r,human:`Project: ${A}
|
|
97
97
|
State: adopted
|
|
98
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:
|
|
98
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:a}}}}let s=await ve(je(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}
|
|
99
99
|
State: adopted
|
|
100
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:h,state:"adopted",reused:!0}}}}if(
|
|
100
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:h,state:"adopted",reused:!0}}}}if(o.action==="remove"){if(a===null)return v("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: ${$}
|
|
101
101
|
State: removed
|
|
102
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:
|
|
102
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock: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]])),b=a.capabilities.filter($=>$!==h),A=[...b].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=b.flatMap($=>$.assets).map($=>({...$,digest:_.get($.path)??($.path==="package.json"?A?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:R}=await import("./optional-runtime.js"),N=await R({projectRoot:t,release:s,remainingAssets:I,removedPaths:h.assets.map($=>$.path)}),j=await vl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:o,release:s.release,verificationResults:N.results,committedAt:new Date().toISOString(),previousLock:a,expectedAssets:I}),te=ee(t);return{outputMode:r,human:`Project: ${te}
|
|
103
103
|
State: removed
|
|
104
|
-
${
|
|
105
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:
|
|
104
|
+
${N.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
|
|
105
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:te,state:"removed",verifiers:N.summaries,lock:j}}}}let l=o.packageAdoption?.schemaVersion===2&&o.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${o.packageAdoption.topology.unitRelativeRoot}/`:"",d=(s.release.kind==="engineering-feature"?s.release.assets.map(h=>({path:h.path,desiredDigest:h.ownership==="managed-region"?h.digest:o.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):o.action==="upgrade"?s.release.assets.map(h=>({path:h.path,desiredDigest:o.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):o.operations).map(({path:h,desiredDigest:w,ownership:_,regionId:b})=>w===void 0?v("Applied plan is missing a desired asset digest."):{path:h,digest:w,ownership:_==="managed-region"?"managed-region":_==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:d}),u=o.action==="adopt"&&o.operations.every(h=>h.disposition==="noop")&&a?.capabilities.some(h=>h.capabilityId===o.capability.capabilityId)===!0,m=await Il({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}
|
|
106
106
|
State: adopted
|
|
107
107
|
`+f.summaries.map(h=>`${h.verifierId}: ${h.result}`).join(`
|
|
108
|
-
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function
|
|
108
|
+
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function hd(e){let{projectRoot:t,outputMode:r}=Ba(e,"Inspect"),n=await Al(t),a=ee(t);if(n.required)return{outputMode:r,human:`Project: ${a}
|
|
109
109
|
State: recovery-required
|
|
110
110
|
Transaction: ${n.kind}
|
|
111
|
-
Next: dyyto recover --project ${
|
|
111
|
+
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 ne(O.join(t,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return v("Project manifest must select one capability.");let s=await ve(je(o.capabilityId,o.version)),c=await Ve(t);try{let A=await ro(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}
|
|
112
112
|
State: applied-unverified
|
|
113
113
|
Plan: ${A.planId}
|
|
114
|
-
Next: dyyto verify --project ${
|
|
114
|
+
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 Rm({...d,manifest:i}):i.profile?.id==="react-component-library"?await _m({...d,manifest:i}):i.profile?.id==="nextjs-full-stack-application"?await Am({...d,manifest:i}):i.profile?.id==="workspace-npm-package"?await Em({...d,manifest:i}):i.profile?.id==="workspace-node-application"?await Pm({...d,manifest:i}):i.profile?.id==="workspace-web-application"?await Nm({...d,manifest:i}):i.profile?.id==="workspace-expo-application"?await Om({...d,manifest:i}):await Mi(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 ne(O.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 ah({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]},b=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}
|
|
115
115
|
State: ${_.state}
|
|
116
116
|
`+_.operations.map(A=>`${A.path}: ${A.disposition}`).join(`
|
|
117
117
|
`)+(b.length===0?"":`
|
|
118
118
|
\u5305\u6765\u6E90\uFF1A
|
|
119
119
|
${b.map(A=>`- ${A.packageName}@${A.version}\uFF08Registry: ${A.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
|
|
120
|
-
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:
|
|
121
|
-
Recovery: not-required`:`Project: ${
|
|
120
|
+
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:a,..._,lock:c,packageSources:b}}}}async function jP(e){let{projectRoot:t,outputMode:r}=Ba(e,"Recover"),n=await vm({projectRoot:t,now:new Date().toISOString()}),a=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${a}
|
|
121
|
+
Recovery: not-required`:`Project: ${a}
|
|
122
122
|
Recovery: ${n.kind}
|
|
123
|
-
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:
|
|
123
|
+
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:a,recovery:n}}}}function Eh(e,t){let r;try{r=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project.`):{parsed:r,projectRoot:O.resolve(r.values.project),outputMode:z(e)}}async function $P(e,t){let{parsed:r,projectRoot:n,outputMode:a}=Eh(t,"Lifecycle"),i=r.values.command;if((e==="start"||e==="restart")&&i!=="dev")return v("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:o,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:l}=await import("./optional-runtime.js"),d;if(e==="status")d=await s(n);else if(e==="logs"){let f=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(f)||f<0)return v("Lifecycle logs --after must be a non-negative integer cursor.");d=await o(n,f)}else if(e==="start")await yh(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await yh(n,"dev"),await l(n),d=await c(n,"dev");else return v("Lifecycle action must be start, stop, restart, status, or logs.");let p=ee(n);return{outputMode:a,human:`Project: ${p}
|
|
124
124
|
Lifecycle: ${e}
|
|
125
|
-
State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(
|
|
126
|
-
Declared: ${
|
|
127
|
-
Locked: ${
|
|
128
|
-
Verified: ${
|
|
129
|
-
Findings: ${
|
|
130
|
-
Unmanaged platform dependencies: ${
|
|
125
|
+
State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(o){let s=typeof o=="object"&&o!==null&&"code"in o?String(o.code):"PROJECT_PROCESS_FAILED";throw new T({code:s,message:o instanceof Error?o.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function yh(e,t){let r=Y(JSON.parse(await ne(O.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"Managed lifecycle requires a formal Template Release.",exitCode:4,nextStep:"Use the project's standard package script directly or adopt a supported Template."});if((await Va(Mo(r.template.id,r.template.version))).commands[t]!==t)throw new T({code:"PROJECT_COMMAND_UNSUPPORTED",message:"The selected Template does not declare the requested lifecycle command.",exitCode:4,nextStep:"Choose a command declared by the project's Template Release."})}async function CP(e){let{projectRoot:t,outputMode:r}=Eh(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}
|
|
126
|
+
Declared: ${a.declared.length}
|
|
127
|
+
Locked: ${a.locked.length}
|
|
128
|
+
Verified: ${a.verified.length}
|
|
129
|
+
Findings: ${a.findings.length}
|
|
130
|
+
Unmanaged platform dependencies: ${a.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
|
|
131
131
|
|
|
132
|
-
${[...
|
|
133
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:i,...
|
|
132
|
+
${[...o,...c].join(`
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:i,...a,projectRoot:void 0}}}}async function TP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},source:{type:"string"},registry:{type:"string"},approve:{type:"string"},verify:{type:"string"},install:{type:"boolean"}}})}catch{return v("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return v("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return v("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch: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 v("Packages switch requires --source workspace|public|private.");let l=O.resolve(t.values.project),d=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:l,approvedPlanId:t.values.approve}):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 T({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}
|
|
134
134
|
\u6765\u6E90\uFF1A${d.source}
|
|
135
135
|
Registry\uFF1A${d.registry??"workspace protocol"}
|
|
136
136
|
\u72B6\u6001\uFF1A${d.state}
|
|
@@ -142,24 +142,24 @@ Packages\uFF1A${d.packages.length}
|
|
|
142
142
|
${f.join(`
|
|
143
143
|
`)}${f.length>0?`
|
|
144
144
|
|
|
145
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function
|
|
145
|
+
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function LP(e){let{projectRoot:t,outputMode:r}=Ba(e,"Inspect"),n=Y(JSON.parse(await ne(O.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new T({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let a=await Va(Mo(n.template.id,n.template.version)),i=await Jg({projectRoot:t,commands:a.commands}),o=ee(t);return{outputMode:r,human:`Project: ${o}
|
|
146
146
|
Commands: ${i.commands.map(s=>s.id).join(", ")}
|
|
147
|
-
Environment: ${i.environment.filter(s=>s.configured).length}/${i.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:
|
|
147
|
+
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 xP(e){let{projectRoot:t,outputMode:r}=Ba(e,"Inspect"),n=await wo({projectRoot:t}).catch(a=>{throw new T({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}
|
|
148
148
|
\u73AF\u5883\uFF1A${n.environment}
|
|
149
149
|
Config Dir\uFF1A${n.configDirectory}
|
|
150
|
-
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(
|
|
151
|
-
${n.entries.map(
|
|
152
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function
|
|
150
|
+
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(a=>a.configured).length}/${n.entries.length}
|
|
151
|
+
${n.entries.map(a=>`${a.name}: ${a.display}`).join(`
|
|
152
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function VP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plane:{type:"string"},state:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return v("Operations requires --project and --plane change|quality|delivery.");let r=await Rt(O.resolve(t.values.project)),n=ee(r),a=[];for(let o of await Ih(O.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(o.endsWith(".json"))try{let s=JSON.parse(await ne(O.join(r,".dyyto","workbench","tasks",o),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&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=Kg(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}
|
|
153
153
|
Operations: ${i.plane}
|
|
154
154
|
Total: ${i.summary.total}
|
|
155
|
-
Attention: ${i.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...i}}}}async function
|
|
156
|
-
Status: ${
|
|
157
|
-
Units: ${
|
|
158
|
-
Healthy: ${
|
|
159
|
-
Attention: ${
|
|
160
|
-
Blocked: ${
|
|
161
|
-
`+
|
|
162
|
-
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:
|
|
155
|
+
Attention: ${i.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...i}}}}async function MP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return v("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Doctor requires --workspace.");let r=await Rt(O.resolve(t.values.workspace));if(Y(JSON.parse(await ne(O.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let a=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Ih(O.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=O.join(r,s,c.name);try{await ne(O.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 hd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=Ql(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await Ta({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=Ql("invalid")}try{let d=Y(JSON.parse(await ne(O.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await Og({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}i.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let o=Sg({workspace:O.basename(r),generatedAt:new Date().toISOString(),units:i});return{outputMode:z(e),human:`Workspace: ${o.workspace}
|
|
156
|
+
Status: ${o.status}
|
|
157
|
+
Units: ${o.summary.total}
|
|
158
|
+
Healthy: ${o.summary.healthy}
|
|
159
|
+
Attention: ${o.summary.attention}
|
|
160
|
+
Blocked: ${o.summary.blocked}
|
|
161
|
+
`+o.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
|
|
162
|
+
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:o}}}async function yd(e){let{LocalDockerDeploymentAdapter:t,NpmjsPublisherAdapter:r,HostedStaticPublicationAdapter:n}=await import("./optional-runtime.js");return e==="npm-publish"?new r:e==="application-deploy"?new t:e==="hosted-static"?new n:v("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function wh(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function Ph(e){let t=Y(JSON.parse(await ne(O.join(e,"project-capabilities.json"),"utf8"))),r=await Ve(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return v("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return v("Manifest and verified Lock must identify the same adopted capability.");let a=n.assets.filter(i=>!i.path.startsWith("src/"));return await Or({projectRoot:e,expectedAssets:a}),{manifest:t,lock:r,locked:n,lockDigest:y(k(r))}}async function UP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},kind:{type:"string"},provider:{type:"string"},repository:{type:"string"},workflow:{type:"string"},ref:{type:"string"},environment:{type:"string"}}})}catch{return v("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return v("Delivery plan requires --project and --kind.");let r=O.resolve(t.values.project),n=await Ph(r),i=await(await yd(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await sg({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 ne(O.join(r,"package.json"),"utf8")),p=typeof d.repository=="string"?d.repository:d.repository!==null&&typeof d.repository=="object"?d.repository.url:void 0,f=`https://${o.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${o.execution.repository}`;if(p!==f)throw new D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=Wl({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 ag({projectRoot:r,plan:c});let l=ee(r);return{outputMode:z(e),human:`Project: ${l}
|
|
163
163
|
Delivery: ${c.kind}
|
|
164
164
|
Artifact: ${c.artifact.identity}
|
|
165
165
|
Target: ${c.target.location}
|
|
@@ -171,62 +171,62 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
|
|
|
171
171
|
Approval: maintainer 2FA required outside Dyyto`}
|
|
172
172
|
Plan: ${c.planId}
|
|
173
173
|
State: reviewable
|
|
174
|
-
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function
|
|
174
|
+
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function FP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return v("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return v("Delivery apply requires --project and --approve <planId>.");let r=O.resolve(t.values.project),n=await zt({projectRoot:r,planId:t.values.approve}),a=await Rn({projectRoot:r,planId:n.planId}),i=ee(r);if(a!==null)return{outputMode:z(e),human:`Project: ${i}
|
|
175
175
|
Delivery: verified
|
|
176
|
-
Receipt: ${
|
|
176
|
+
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 _n({projectRoot:r,planId:n.planId}):null;if(o!==null)return{outputMode:z(e),human:`Project: ${i}
|
|
177
177
|
Delivery: staged
|
|
178
|
-
Stage: ${
|
|
179
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,reused:!0,state:"staged",record:
|
|
178
|
+
Stage: ${wh(o.stageId)}
|
|
179
|
+
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 og({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 Ph(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 yd(n.kind),d=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(k(d.artifact)!==k(n.artifact)||k(d.target)!==k(n.target))throw new 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 ig({projectRoot:r,record:rg({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=tg({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await cg({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${i}
|
|
180
180
|
Delivery: staged
|
|
181
|
-
Stage: ${
|
|
182
|
-
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=
|
|
181
|
+
Stage: ${wh(u.stageId)}
|
|
182
|
+
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=ko({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 Kl({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${i}
|
|
183
183
|
Delivery: verified
|
|
184
184
|
Receipt: ${f.receiptId}
|
|
185
|
-
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,receipt:f}}}}async function
|
|
185
|
+
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,receipt:f}}}}async function qP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return v("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return v("Delivery inspect requires --project and --plan <planId>.");let r=O.resolve(t.values.project),n=await zt({projectRoot:r,planId:t.values.plan}),a=await Rn({projectRoot:r,planId:n.planId}),i=ee(r);if(a!==null)return{outputMode:z(e),human:`Project: ${i}
|
|
186
186
|
Delivery: verified
|
|
187
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,receipt:
|
|
187
|
+
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 _n({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await dg({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 ne(O.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=ng({planId:n.planId,stageId:o.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await lg({projectRoot:r,record:s})}let c=await(await yd(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=ko({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 Kl({projectRoot:r,receipt:l}),{outputMode:z(e),human:`Project: ${i}
|
|
188
188
|
Delivery: verified
|
|
189
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,stage:
|
|
189
|
+
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}
|
|
190
190
|
Delivery: staged
|
|
191
191
|
Plan: ${n.planId}
|
|
192
192
|
Artifact review: ${s===null?"pending":"verified"}
|
|
193
|
-
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:l,plan:n,stage:
|
|
193
|
+
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}
|
|
194
194
|
Delivery: ${c.state}
|
|
195
|
-
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
|
|
196
|
-
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...i,summary:
|
|
195
|
+
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 BP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return v("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Observe errors requires --workspace.");let r=await Rt(O.resolve(t.values.workspace)),n=new Jt(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(`
|
|
196
|
+
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...i,summary:o}}}}async function zP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return v("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return v("Observe error requires --workspace and --id.");let r=await new Jt(await Rt(O.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new T({code:"RUNTIME_ERROR_NOT_FOUND",message:"Runtime Error Event was not found.",exitCode:4,nextStep:"List recent errors and verify the event ID."});return{outputMode:z(e),human:`${r.error.type}: ${r.error.message}
|
|
197
197
|
State: ${r.state}
|
|
198
198
|
Correlation: ${r.correlation}
|
|
199
199
|
Release: ${r.releaseId??"unknown"}
|
|
200
|
-
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function
|
|
200
|
+
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function JP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return v("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return v("Observe release register requires --project.");let r=await Rt(O.resolve(t.values.project)),n=await Rt(O.resolve(typeof t.values.workspace=="string"?t.values.workspace:O.join(r,"../.."))),{registerWebRelease:a}=await import("./optional-runtime.js"),i=await a({workspaceRoot:n,projectRoot:r});return{outputMode:z(e),human:`Release: ${i.releaseId}
|
|
201
201
|
Source Maps: ${i.registrations.length}
|
|
202
|
-
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:i}}}async function
|
|
203
|
-
${
|
|
204
|
-
\u6210\u719F\u5EA6\uFF1A${
|
|
205
|
-
`);return{outputMode:z(e),human:i,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:
|
|
202
|
+
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:i}}}async function GP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return v("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return v("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let a=await To({...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}
|
|
203
|
+
${o.summary}
|
|
204
|
+
\u6210\u719F\u5EA6\uFF1A${o.maturity}`).join(`
|
|
205
|
+
`);return{outputMode:z(e),human:i,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:a}}}async function WP(e){let t;try{t=ue({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return v("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return v("Catalog show \u9700\u8981 --ref\u3002");let r=await Lo({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
|
|
206
206
|
${r.item.summary}
|
|
207
207
|
\u6210\u719F\u5EA6\uFF1A${r.item.maturity}
|
|
208
|
-
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function _h(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:On,value:{schemaVersion:1,ok:!0,command:"version",result:{version:On}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:Sd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[o,...i]=r;return o==="catalog"&&i[0]==="search"?xP(i.slice(1)):o==="catalog"&&i[0]==="show"?VP(i.slice(1)):o==="create"?vh(i):o==="scaffold"&&i[0]==="example"?kP(i.slice(1),t):o==="retrofit"?mP(i):o==="dev"||o==="build"||o==="test"||o==="package"?gP(o,i):o==="add"&&i[0]==="package"?hP(i.slice(1)):o==="add"&&i[0]==="application"?yP(i.slice(1)):o==="add"&&i[0]==="feature"?bh(i.slice(1),t):o==="remove"&&i[0]==="feature"?wP(i.slice(1),t):o==="plan"?IP(i):o==="upgrade"?bP(i,t):o==="apply"?pd(i,t):o==="verify"?ud(i):o==="inspect"?fd(i):o==="doctor"?SP(i):o==="recover"?RP(i):o==="lifecycle"&&typeof i[0]=="string"?_P(i[0],i.slice(1)):o==="packages"&&i[0]==="switch"?EP(i.slice(1)):o==="integrations"?AP(i):o==="maintenance"?PP(i):o==="config"&&i[0]==="inspect"?NP(i.slice(1)):o==="operations"?OP(i):o==="baseline"?vP(i):o==="delivery"&&i[0]==="plan"?DP(i.slice(1)):o==="delivery"&&i[0]==="apply"?jP(i.slice(1)):o==="delivery"&&i[0]==="inspect"?$P(i.slice(1)):o==="observe"&&i[0]==="errors"?CP(i.slice(1)):o==="observe"&&i[0]==="error"?TP(i.slice(1)):o==="observe"&&i[0]==="release"&&i[1]==="register"?LP(i.slice(2)):v(`Unknown command '${o}'.`)}import{createServer as MP}from"node:http";import{readFile as UP,readdir as mC,rm as gC}from"node:fs/promises";import{execFile as FP}from"node:child_process";import{promisify as qP}from"node:util";import BP from"node:path";var vC=qP(FP),gd=class{constructor(t=10,r=20,n=Date.now){this.rate=t;this.burst=r;this.now=n}rate;burst;now;buckets=new Map;take(t){let r=this.now(),n=this.buckets.get(t)??{tokens:this.burst,updatedAt:r};return n.tokens=Math.min(this.burst,n.tokens+Math.max(0,r-n.updatedAt)/1e3*this.rate),n.updatedAt=r,n.tokens<1?(this.buckets.set(t,n),{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((1-n.tokens)/this.rate))}):(n.tokens-=1,this.buckets.set(t,n),{allowed:!0})}};async function zP(e){try{let t=JSON.parse(await UP(BP.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function Ah(e){let t=new Bt(e.workspaceRoot),r=[...e.allowedOrigins??await zP(e.workspaceRoot)],n=new gd,o={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},i=MP(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){o.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){o.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new oe("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>Rg(e.workspaceRoot,m)});o.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof oe?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?o.rejectedInvalid+=1:o.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{i.once("error",c),i.listen(e.port??4318,"127.0.0.1",()=>{i.off("error",c),s()})});let a=i.address();if(a===null||typeof a=="string")throw new Error("Collector did not expose a TCP address");return{server:i,origin:`http://127.0.0.1:${a.port}`,snapshot:()=>({...o}),close:()=>new Promise((s,c)=>i.close(l=>l?c(l):s()))}}import{createHash as JP}from"node:crypto";import{createServer as GP}from"node:http";import{readFile as Eh,realpath as Ph}from"node:fs/promises";import Va from"node:path";var xe=class extends Error{constructor(r){super(r);this.code=r}code};function WP(e){return"sha512-"+JP("sha512").update(e).digest("base64")}async function qo(e){let t=await Ph(e).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await Eh(Va.join(t,"index.json"),"utf8").catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Br(JSON.parse(r))}catch{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}let o=new Map;for(let i of n.artifacts){let a=Va.join(t,i.assetName),s=Va.relative(t,await Ph(a).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Va.isAbsolute(s))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await Eh(a);if(y(c)!==i.tarballDigest||WP(c)!==i.integrity)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");o.set(i.assetName,c)}return{root:t,bundle:n,assets:o}}function KP(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function Nh(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function YP(e,t){let r=i=>i.split(/[.-]/u).map(a=>/^\d+$/u.test(a)?Number(a):a),n=r(e),o=r(t);for(let i=0;i<Math.max(n.length,o.length);i+=1){let a=n[i]??0,s=o[i]??0;if(a!==s)return typeof a=="number"&&typeof s=="number"?a-s:String(a).localeCompare(String(s))}return 0}function HP(e,t){let r=new Map,n=new Map;for(let o of[e,...t])for(let i of o.bundle.artifacts){let a=`${i.packageName}@${i.version}`,s=r.get(a);if(s!==void 0&&Nh(s)!==Nh(i))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=o.assets.get(i.assetName);if(c===void 0)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(i.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,i),n.set(i.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function Oh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new xe("LOCAL_ARTIFACT_SERVER_INVALID");let t=await qo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(qo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let o=HP(t,r),i=e.hostname??"127.0.0.1",a=GP((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=o.artifacts.filter(u=>u.packageName===p).sort((u,m)=>YP(u.version,m.version));if(f.length>0){let u="http://"+i+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),h=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(h.byteLength)),c.end(l==="HEAD"?void 0:h);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=o.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{a.once("error",c),a.listen(e.port,i,s)}).catch(()=>{throw new xe("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+i+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>KP(a)})}import{createHash as XP}from"node:crypto";import{execFile as ZP}from"node:child_process";import{cp as QP,mkdir as Sh,mkdtemp as hd,readFile as Fa,realpath as Bo,rename as e0,rm as Dh,stat as t0,writeFile as Ua}from"node:fs/promises";import{tmpdir as r0}from"node:os";import De from"node:path";import{promisify as n0}from"node:util";import{gunzipSync as o0}from"node:zlib";var i0=n0(ZP),a0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function s0(e){return"sha512-"+XP("sha512").update(e).digest("base64")}async function c0(e,t){let r=await Bo(e).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let o of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let i=await Bo(De.join(r,o)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),a=De.relative(r,i);if(a!==o||a.startsWith("..")||De.isAbsolute(a))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Fa(De.join(i,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:o,root:i,manifestBytes:s,manifest:c})}return n}function l0(e,t){let r=new Map(e.map(i=>[String(i.manifest.name),String(i.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let o={};for(let[i,a]of Object.entries(n)){if(typeof a!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(i):a;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");o[i]=s}return Object.fromEntries(Object.entries(o).sort(([i],[a])=>i.localeCompare(a)))}function d0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(a=>a===0))return;let o=n.toString("utf8",0,100).replace(/\0.*$/su,""),i=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(i)||i<0)return;if(o===t)return e.subarray(r+512,r+512+i);r+=512+Math.ceil(i/512)*512}}function p0(e,t,r){let n;try{n=o0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=d0(n,"package/package.json");if(o===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let i;try{i=JSON.parse(o.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a=i.dependencies===void 0?{}:i.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[l])=>c.localeCompare(l)));if(i.name!==t.name||i.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function u0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function f0(e,t,r){let n=De.join(await hd(De.join(r,"stage-")),"package");await QP(e.root,n,{recursive:!0,filter:i=>De.basename(i)!=="node_modules"});let o=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Ua(De.join(n,"package.json"),`${JSON.stringify({...o,dependencies:t},null,2)}
|
|
209
|
-
`),n}async function
|
|
210
|
-
`,{flag:"wx",mode:384}).catch(async i=>{if(i.code!=="EEXIST")throw i;if(await
|
|
211
|
-
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),
|
|
212
|
-
`,{mode:292}),await
|
|
208
|
+
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function Nh(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:jn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:jn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:Cd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[a,...i]=r;return a==="catalog"&&i[0]==="search"?GP(i.slice(1)):a==="catalog"&&i[0]==="show"?WP(i.slice(1)):a==="create"?_h(i):a==="scaffold"&&i[0]==="example"?DP(i.slice(1),t):a==="retrofit"?RP(i):a==="dev"||a==="build"||a==="test"||a==="package"?_P(a,i):a==="add"&&i[0]==="package"?AP(i.slice(1)):a==="add"&&i[0]==="application"?EP(i.slice(1)):a==="add"&&i[0]==="feature"?Ah(i.slice(1),t):a==="remove"&&i[0]==="feature"?PP(i.slice(1),t):a==="plan"?NP(i):a==="upgrade"?SP(i,t):a==="apply"?md(i,t):a==="verify"?gd(i):a==="inspect"?hd(i):a==="doctor"?MP(i):a==="recover"?jP(i):a==="lifecycle"&&typeof i[0]=="string"?$P(i[0],i.slice(1)):a==="packages"&&i[0]==="switch"?TP(i.slice(1)):a==="integrations"?CP(i):a==="maintenance"?LP(i):a==="config"&&i[0]==="inspect"?xP(i.slice(1)):a==="operations"?VP(i):a==="baseline"?OP(i):a==="delivery"&&i[0]==="plan"?UP(i.slice(1)):a==="delivery"&&i[0]==="apply"?FP(i.slice(1)):a==="delivery"&&i[0]==="inspect"?qP(i.slice(1)):a==="observe"&&i[0]==="errors"?BP(i.slice(1)):a==="observe"&&i[0]==="error"?zP(i.slice(1)):a==="observe"&&i[0]==="release"&&i[1]==="register"?JP(i.slice(2)):v(`Unknown command '${a}'.`)}import{createServer as KP}from"node:http";import{readFile as YP,readdir as jC,rm as $C}from"node:fs/promises";import{execFile as HP}from"node:child_process";import{promisify as XP}from"node:util";import ZP from"node:path";var VC=XP(HP),wd=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 QP(e){try{let t=JSON.parse(await YP(ZP.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 Oh(e){let t=new Jt(e.workspaceRoot),r=[...e.allowedOrigins??await QP(e.workspaceRoot)],n=new wd,a={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},i=KP(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 ie("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=>Pg(e.workspaceRoot,m)});a.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof ie?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 e0}from"node:crypto";import{createServer as t0}from"node:http";import{readFile as Sh,realpath as Dh}from"node:fs/promises";import qo from"node:path";var Me=class extends Error{constructor(r){super(r);this.code=r}code};function r0(e){return"sha512-"+e0("sha512").update(e).digest("base64")}async function za(e){let t=await Dh(e).catch(()=>{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await Sh(qo.join(t,"index.json"),"utf8").catch(()=>{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=zr(JSON.parse(r))}catch{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}let a=new Map;for(let i of n.artifacts){let o=qo.join(t,i.assetName),s=qo.relative(t,await Dh(o).catch(()=>{throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||qo.isAbsolute(s))throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await Sh(o);if(y(c)!==i.tarballDigest||r0(c)!==i.integrity)throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");a.set(i.assetName,c)}return{root:t,bundle:n,assets:a}}function n0(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function jh(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 a0(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 i0(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&&jh(s)!==jh(i))throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=a.assets.get(i.assetName);if(c===void 0)throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(i.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(o,i),n.set(i.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function $h(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Me("LOCAL_ARTIFACT_SERVER_INVALID");let t=await za(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(za)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Me("LOCAL_ARTIFACT_BUNDLE_INVALID");let a=i0(t,r),i=e.hostname??"127.0.0.1",o=t0((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)=>a0(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 Me("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+i+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>n0(o)})}import{createHash as o0}from"node:crypto";import{execFile as s0}from"node:child_process";import{cp as c0,mkdir as Ch,mkdtemp as Id,readFile as Jo,realpath as Ja,rename as l0,rm as Th,stat as d0,writeFile as zo}from"node:fs/promises";import{tmpdir as p0}from"node:os";import $e from"node:path";import{promisify as u0}from"node:util";import{gunzipSync as f0}from"node:zlib";var m0=u0(s0),g0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function h0(e){return"sha512-"+o0("sha512").update(e).digest("base64")}async function y0(e,t){let r=await Ja(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 Ja($e.join(r,a)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),o=$e.relative(r,i);if(o!==a||o.startsWith("..")||$e.isAbsolute(o))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Jo($e.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 w0(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 I0(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 v0(e,t,r){let n;try{n=f0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a=I0(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 b0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function k0(e,t,r){let n=$e.join(await Id($e.join(r,"stage-")),"package");await c0(e.root,n,{recursive:!0,filter:i=>$e.basename(i)!=="node_modules"});let a=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await zo($e.join(n,"package.json"),`${JSON.stringify({...a,dependencies:t},null,2)}
|
|
209
|
+
`),n}async function R0(e,t,r){let n=w0(e,t.manifest),a=b0(t.manifest,n)?await k0(t,n,r):t.root,i;try{({stdout:i}=await m0("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 Jo($e.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let d=g0.filter(p=>Object.hasOwn(l??{},p));return v0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:h0(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function Lh(e,t){let r=await y0(e,t),n=await Id($e.join(await Ja(p0()),"dyyto-local-artifact-pack-"));try{let a=await Promise.all(r.map(o=>R0(r,o,n)));a.sort((o,s)=>(o.artifact.packageName+"@"+o.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let i=td({artifacts:a.map(o=>o.artifact)});return{packages:r,bundle:i,bytes:new Map(a.map(o=>[o.artifact.assetName,o.bytes]))}}finally{await Th(n,{recursive:!0,force:!0})}}function Bo(e,t){return $e.join(e,".dyyto","artifact-plans",t+".json")}function _0(e,t){return $e.join(e,".dyyto","package-artifacts",t)}async function xh(e){let t=await Ja(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Lh(t,e.packageRoots),n=e.now??new Date,a=rd({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 Ch($e.dirname(Bo(t,a.planId)),{recursive:!0}),await zo(Bo(t,a.planId),JSON.stringify(a,null,2)+`
|
|
210
|
+
`,{flag:"wx",mode:384}).catch(async i=>{if(i.code!=="EEXIST")throw i;if(await Jo(Bo(t,a.planId),"utf8")!==JSON.stringify(a,null,2)+`
|
|
211
|
+
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),a}async function Vh(e){let t=await Ja(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Jo(Bo(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Hg(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=_0(t,n.bundle.bundleId);if(await d0(a).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let i=await Lh(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=$e.dirname(a);await Ch(o,{recursive:!0});let s=await Id($e.join(o,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>zo($e.join(s,c.assetName),i.bytes.get(c.assetName),{mode:292}))),await zo($e.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
|
|
212
|
+
`,{mode:292}),await l0(s,a)}catch(c){throw await Th(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:a}}var ur=class extends Error{constructor(r){super(r);this.code=r}code};function Mh(e){let t=[zr(e.bundle),...(e.fallbackBundles??[]).map(zr)],r=new URL(e.origin);if(r.protocol!=="http:"||r.hostname!=="127.0.0.1"||r.pathname!=="/"||r.username||r.password||r.search||r.hash||Number.isNaN(Date.parse(e.resolvedAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new ur("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Sl({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=Dl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),i=t.flatMap(c=>Xg({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 ur("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 ur("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 A0,open as E0,readFile as kd,rename as P0,rm as N0,writeFile as O0}from"node:fs/promises";import Nn from"node:path";import{resolvePnpmWorkspaceLock as S0}from"./optional-runtime.js";var D0=y(k({schemaVersion:1,completedRequests:[]}));function Uh(e){return y(k({schemaVersion:1,completedRequests:[...e].sort()}))}function Rd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function vd(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(Rd(i[1]),y(Buffer.from(`${o.join(`
|
|
213
213
|
`)}
|
|
214
|
-
`))),
|
|
214
|
+
`))),a=s}return r}function bd(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:Rd(o[1]),bytes:Buffer.from(`${s.join(`
|
|
215
215
|
`)}
|
|
216
|
-
`)}),i=c}return
|
|
217
|
-
`,{mode:384}),await
|
|
216
|
+
`)}),i=c}return a}function j0(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 $0(e,t,r){let n=new Map(bd(e,"snapshots").map(a=>[a.key,a.bytes]));return bd(e,"packages").map(a=>{let i=j0(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=Rd(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??k({dependencies:[]}))}}).sort((a,i)=>a.identity.localeCompare(i.identity))}function Fh(e={}){return async t=>{let r=await S0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:Nn.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=vd(t.currentLockfile),a=vd(r.lockfile),i=await no(t.topology.transactionRoot),o=new Map(i.map(p=>[p.relativeRoot,p.bytes])),s=await kd(Nn.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(k({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=$0(r.lockfile,t.sources,t.registryConfigs),d=bd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:y(k(d.map(p=>({identity:p.key,digest:y(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:y(k({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:y(k({desiredLockDigest:y(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function C0(e){try{let t=JSON.parse(await kd(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==Uh(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:D0,completedRequests:Object.freeze([])};throw t}}function qh(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=Do(JSON.parse(await kd(Nn.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=[...vd(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=Na({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(k({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:f,revision:u})=>({registryId:f,revision:u})).sort((f,u)=>f.registryId.localeCompare(u.registryId))})).slice(7)}`;await A0(e.stateRoot,{recursive:!0});let d=Nn.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await E0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=Nn.join(e.stateRoot,"state.json"),u=await C0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),h=Uh(g),w=Tm({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}),_=Nn.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await O0(_,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
|
|
217
|
+
`,{mode:384}),await P0(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:i}}finally{await p.close(),await N0(d,{force:!0})}}}}import{execFile as T0}from"node:child_process";import{mkdir as On,mkdtemp as L0,readFile as _t,readdir as x0,readlink as V0,realpath as Ad,rename as M0,rm as Bh,stat as U0,writeFile as Jr}from"node:fs/promises";import{tmpdir as F0}from"node:os";import le from"node:path";import{promisify as q0}from"node:util";var B0=q0(T0);function zh(e,t){return le.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Jh(e){return le.join(e,".dyyto","resolution-worker")}function _d(e){return le.join(Jh(e),"build-receipt.json")}async function z0(e){let t=[];async function r(n){for(let a of await x0(n,{withFileTypes:!0}).catch(i=>i.code==="ENOENT"?[]:Promise.reject(i))){let i=le.join(n,a.name);if(a.isSymbolicLink()){let o=await V0(i);t.push({path:le.relative(e,i),digest:y(k({symlink:o})),bytes:0})}else if(a.isDirectory())await r(i);else if(a.isFile()){let o=await _t(i);t.push({path:le.relative(e,i),digest:y(o),bytes:o.byteLength})}}}return await r(e),t.sort((n,a)=>n.path.localeCompare(a.path)),{cacheDigest:y(k(t)),cacheBytes:t.reduce((n,a)=>n+a.bytes,0)}}function Gh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await L0(le.join(await Ad(F0()),"dyyto-resolution-warmup-")),n=le.join(r,".home");await On(n);try{await Jr(le.join(r,"pnpm-workspace.yaml"),await _t(le.join(e,"pnpm-workspace.yaml"))),await Jr(le.join(r,"pnpm-lock.yaml"),await _t(le.join(e,"pnpm-lock.yaml")));let a=await _t(le.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));a&&await Jr(le.join(r,"package.json"),a);for(let d of await no(e)){let p=le.join(r,...d.relativeRoot.split("/"));await On(p,{recursive:!0}),await Jr(le.join(p,"package.json"),d.bytes)}let i=le.join(n,"userconfig.npmrc");await Jr(i,`ignore-scripts=true
|
|
218
218
|
strict-peer-dependencies=true
|
|
219
219
|
manage-package-manager-versions=false
|
|
220
|
-
`,{mode:384});let
|
|
221
|
-
`;return await
|
|
222
|
-
`,{mode:384}),await
|
|
223
|
-
`;return await
|
|
220
|
+
`,{mode:384});let o=le.join(t,"store","shared"),s=le.join(t,"cache");await On(o,{recursive:!0}),await On(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await B0("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 z0(t),commandDigest:y(k({executable:"corepack",args:c,stdoutDigest:y(l.stdout),stderrDigest:y(l.stderr)}))}}finally{await Bh(r,{recursive:!0,force:!0})}}}async function Wh(e){let t=await Ad(e.workspaceRoot),r=e.now??new Date,[n,a]=await Promise.all([_t(le.join(t,"pnpm-workspace.yaml")),_t(le.join(t,"pnpm-lock.yaml"))]),i=y(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),o=nd({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=zh(t,o.planId);await On(le.dirname(s),{recursive:!0});let c=`${JSON.stringify(o,null,2)}
|
|
221
|
+
`;return await Jr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await _t(s,"utf8")!==c)throw l}),o}async function Kh(e){let t=await Ad(e.workspaceRoot),r=Qg(JSON.parse(await _t(zh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Ye("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,a]=await Promise.all([_t(le.join(t,"pnpm-workspace.yaml")),_t(le.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(a)!==r.rootLockDigest)throw new Ye("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let i=Jh(t),o=await _t(_d(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(o)return Do(JSON.parse(o));await On(i,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:i,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Ye("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=ad({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=le.join(i,`build-receipt.${r.planId.slice(7)}.tmp`);return await Jr(l,`${JSON.stringify(c,null,2)}
|
|
222
|
+
`,{mode:384}),await M0(l,_d(t)),c}catch(s){throw await U0(_d(t)).then(()=>!0).catch(()=>!1)||await Bh(le.join(i,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as J0,readFile as Gr,realpath as Yh,writeFile as G0}from"node:fs/promises";import Wr from"node:path";function Hh(e,t){return Wr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Xh(e){let t=await Yh(e.projectRoot),r=await qt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Gr(Wr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Gr(Wr.join(t,".dyyto","plans",`${n.planId}.json`));let a=JSON.parse(await Gr(Wr.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 Gr(Wr.join(r.transactionRoot,...d.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=y(p);f!==d.before.digest&&f!==d.desiredDigest&&i.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let o=e.now??new Date,s=od({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:i,generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+30*6e4).toISOString()}),c=Hh(t,s.planId);await J0(Wr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
|
|
223
|
+
`;return await G0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Gr(c,"utf8")!==l)throw d}),s}async function Zh(e){let t=await Yh(e.projectRoot),r=await qt(t),n=eh(JSON.parse(await Gr(Hh(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 Gr(Wr.join(r.transactionRoot,...a.path.split("/")));if(y(i)!==a.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return pl({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 Go(e){return e.endsWith(`
|
|
224
224
|
`)?e:`${e}
|
|
225
|
-
`}function
|
|
226
|
-
Next: ${e.error.nextStep}`;return{stdout:"",stderr:
|
|
225
|
+
`}function Qh(e,t,r){return t==="json"?{stdout:Go(JSON.stringify(e)),stderr:""}:{stdout:Go(r),stderr:""}}function ey(e,t){if(t==="json")return{stdout:"",stderr:Go(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
|
|
226
|
+
Next: ${e.error.nextStep}`;return{stdout:"",stderr:Go(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as W0,readFile as Wa,realpath as ty}from"node:fs/promises";import Ue from"node:path";var ut=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function Ga(e){let t=await W0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return Wa(e)}}async function ry(e){let t=Ue.dirname(e);for(;t!==Ue.parse(t).root;){if(await Ga(Ue.join(t,"pnpm-workspace.yaml"))&&await Ga(Ue.join(t,"pnpm-lock.yaml"))&&await Ga(Ue.join(t,"project-capabilities.json")))return t;t=Ue.dirname(t)}throw new ut("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function K0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function ny(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(`
|
|
227
227
|
`)?"":`
|
|
228
|
-
`}verifyDepsBeforeRun: ${
|
|
229
|
-
`);let i=n.split(/\r?\n/u),
|
|
228
|
+
`}verifyDepsBeforeRun: ${a}
|
|
229
|
+
`);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(`
|
|
230
230
|
`)?"":`
|
|
231
231
|
`}allowBuilds:
|
|
232
232
|
${c.map(l=>` ${l}`).join(`
|
|
@@ -234,28 +234,29 @@ ${c.map(l=>` ${l}`).join(`
|
|
|
234
234
|
`;else{let l=r.split(/\r?\n/u),p=l.findIndex(f=>/^allowBuilds:\s*$/u.test(f))+1;for(;p<l.length&&(!l[p].trim()||/^\s/u.test(l[p]));)p+=1;l.splice(p,0,...c.map(f=>` ${f}`)),r=l.join(`
|
|
235
235
|
`)}return Buffer.from(r.endsWith(`
|
|
236
236
|
`)?r:`${r}
|
|
237
|
-
`)}async function
|
|
238
|
-
`);continue}r=
|
|
239
|
-
`);continue}let n=await
|
|
240
|
-
`)}}import{createHash as
|
|
237
|
+
`)}async function ay(e){let t=await ty(Ue.resolve(e.projectRoot)),r=await ry(t),n=Ue.relative(r,t).split(Ue.sep).join("/");if(!n||n.startsWith("../"))throw new ut("WORKSPACE_TOPOLOGY_OWNER_MISSING");let a=await Ga(Ue.join(t,"pnpm-lock.yaml")),i=await Ga(Ue.join(t,"pnpm-workspace.yaml"));if(!a&&!i)throw new ut("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let o=await Wa(Ue.join(r,"pnpm-lock.yaml")),s=await Wa(Ue.join(r,"pnpm-workspace.yaml"));if(!K0(o.toString("utf8"),n))throw new ut("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(i&&!/^packages:\s*\[\]/mu.test(i.toString("utf8")))throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=i?ny(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=Re({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 Ft({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function iy(e){let t=await ty(Ue.resolve(e.projectRoot)),r=await ry(t),n=await $r({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new ut("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 Wa(Ue.join(t,"pnpm-workspace.yaml")),l=await Wa(Ue.join(r,"pnpm-workspace.yaml")),d=ny(l,c);if(y(d)!==i.desiredDigest)throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");a.set("pnpm-workspace.yaml",d)}let o=await or({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:a,now:e.now??new Date().toISOString()}),s=await sr(o);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as Y0}from"node:readline";import Wo from"node:process";var H0=[{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 Ed(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ko(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Ka(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function X0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return Ko(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:jn},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 Ko(r,{tools:H0});if(e.method!=="tools/call")return Ka(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Ed(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Ed(e.params.arguments))return Ka(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 To({...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 Lo({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Ka(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return Ko(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 Ko(r,{isError:!0,content:[{type:"text",text:i}]})}}async function oy(){let e=Y0({input:Wo.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(!Ed(a)||a.jsonrpc!=="2.0"||typeof a.method!="string"){Wo.stdout.write(`${JSON.stringify(Ka(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
|
|
238
|
+
`);continue}r=a}catch{Wo.stdout.write(`${JSON.stringify(Ka(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
|
|
239
|
+
`);continue}let n=await X0(r);n!==null&&Wo.stdout.write(`${JSON.stringify(n)}
|
|
240
|
+
`)}}import{createHash as Z0}from"node:crypto";import{chmod as Q0,lstat as eN,mkdir as tN,readdir as rN,readFile as Kr,realpath as sy,rename as nN,unlink as aN,writeFile as iN}from"node:fs/promises";import ke from"node:path";var Pd="1.1.0",Ct=Object.freeze({"@aipt/cli":"0.1.26","@aipt/idp-cli":"0.1.5","@aipt/idp-deploy":"0.1.8"}),cy=Object.entries(Ct).map(([e,t])=>`${e}@${t}`),Od="<!-- dyyto:agent-policy:start -->",Ya="<!-- dyyto:agent-policy:end -->",ze=class extends Error{constructor(r,n){super(n);this.code=r}code},He=e=>`sha256:${Z0("sha256").update(e).digest("hex")}`,Sn=e=>Array.isArray(e)?`[${e.map(Sn).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Sn(r)}`).join(",")}}`:JSON.stringify(e),Yo=`${Od}
|
|
241
241
|
## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
|
|
242
242
|
|
|
243
243
|
\u672C\u9879\u76EE\u7531 Dyyto \u7EB3\u7BA1\u3002\u5F00\u59CB\u7F16\u7801\u524D\u6267\u884C \`dyyto context --project .\` \u4E0E \`dyyto doctor --project .\`\u3002
|
|
244
244
|
|
|
245
245
|
- \u4F18\u5148\u67E5\u8BE2 Catalog \u5E76\u590D\u7528\u5DF2\u53D1\u884C\u80FD\u529B\uFF1B\u5DE5\u7A0B\u53D8\u66F4\u8D70 Plan\u3001Apply\u3001Verify\u3002
|
|
246
|
+
- \u4E1A\u52A1\u901A\u7528\u80FD\u529B\u901A\u8FC7 \`packages/\` \u89C4\u8303\u5B75\u5316\uFF0C\u6210\u719F\u540E\u901A\u8FC7 \`dyyto package publish\` \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\u6E90\uFF0C\u5E76\u5728\u4E1A\u52A1\u4ED3\u5E93\u5207\u6362\u4E3A\u7A33\u5B9A\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002
|
|
246
247
|
- \u914D\u7F6E\u3001\u5BC6\u94A5\u548C\u8BC1\u4E66\u53EA\u4ECE\u4ED3\u5E93\u5916\u7ED1\u5B9A\u7684 Config Dir \u8BFB\u53D6\uFF0C\u7981\u6B62\u5199\u5165\u9879\u76EE\u73AF\u5883\u6587\u4EF6\u3002
|
|
247
248
|
- \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
|
|
248
249
|
- \u8BE6\u7EC6\u89C4\u8303\u4F7F\u7528 \`dyyto docs show --id engineering-workflow\` \u8BFB\u53D6\uFF0C\u7981\u6B62\u5728\u4E1A\u52A1\u4ED3\u5E93\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u3002
|
|
249
|
-
${
|
|
250
|
+
${Ya}`;function oN(e,t){let r=`${t}
|
|
250
251
|
|
|
251
|
-
${
|
|
252
|
-
`,n=e.indexOf(
|
|
252
|
+
${Yo}
|
|
253
|
+
`,n=e.indexOf(Od),a=e.indexOf(Ya);if(n<0&&a<0)return e.length===0?r:`${e.trimEnd()}
|
|
253
254
|
|
|
254
|
-
${
|
|
255
|
-
`;if(n<0||
|
|
255
|
+
${Yo}
|
|
256
|
+
`;if(n<0||a<n)throw new ze("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${Yo}${e.slice(a+Ya.length)}`}function sN(e){let t=e.indexOf(Od),r=e.indexOf(Ya);if(t<0&&r<0)return e;if(t<0||r<t)throw new ze("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+Ya.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
|
|
256
257
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
|
|
257
258
|
name: dyyto-engineering`)?null:`${n}
|
|
258
|
-
`}var
|
|
259
|
+
`}var Nd=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
|
|
259
260
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
|
|
260
261
|
alwaysApply: true
|
|
261
262
|
---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
|
|
@@ -264,12 +265,12 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
264
265
|
---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
|
|
265
266
|
name: dyyto-engineering
|
|
266
267
|
description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
|
|
267
|
-
---`]];async function
|
|
268
|
-
`,
|
|
269
|
-
`,i=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:
|
|
270
|
-
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",
|
|
271
|
-
`;if(l&&l!==d)throw new
|
|
272
|
-
`),{plan:
|
|
268
|
+
---`]];async function Sd(e){if(!ke.isAbsolute(e))throw new ze("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await sy(e),r=await eN(t);if(!r.isDirectory()||r.isSymbolicLink())throw new ze("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Yr(e){return Kr(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function Ho(e,t){await tN(ke.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await iN(r,t,{mode:384,flag:"wx"}),await nN(r,e),await Q0(e,e.endsWith(".json")?384:420)}function ly(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Ct["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:2f3072966d33b97b69c528b9db8ecb0dee0b6d1a36e2841f15b535ec2c802abb"},{id:"vibe-coding-guide",package:"@aipt/cli",version:Ct["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:8c0fc8c25137def0fa1d8c5ef07cab807f8cd79840cec38e47249fa6a630c1d9"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:Ct["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:2040de770d2c2bd81eea709185e913afd6d6cf4c78f1e30c82e6bcb42b066de9"},{id:"idp-integration",package:"@aipt/idp-cli",version:Ct["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:5a69f99fd3dc6eee0c8d7af9663b1f1e0984aced240bf008c65418b478e2a65a"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Ct["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:d6aec46bb077edf239a9708ae7852c6679d6b6ae5f1f810ba7fed5aadb8cf90e"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:Ct["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:848663f2528d1f7de5cdffa6c2d86c3f272642a4e5257b450534b12c83b66bef"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:Ct["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:He(Sn(e))}))}async function dy(e){let t=await Sd(e),r=[];for(let[p,f]of Nd){let u=await Yr(ke.join(t,p)),m=oN(u,f);r.push({path:p,preimageDigest:He(u),desired:m,desiredDigest:He(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Ct},null,2)}
|
|
269
|
+
`,a=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:Pd,digest:He(Yo)},adapters:Nd.map(([p])=>p)},null,2)}
|
|
270
|
+
`,i=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:ly()},null,2)}
|
|
271
|
+
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",a],[".dyyto/documentation.lock.json",i]]){let u=await Yr(ke.join(t,p));r.push({path:p,preimageDigest:He(u),desired:f,desiredDigest:He(f)})}let o={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:Pd,files:r,createdAt:new Date().toISOString()},s={...o,planId:He(Sn(o))},c=ke.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Yr(c),d=`${JSON.stringify(s,null,2)}
|
|
272
|
+
`;if(l&&l!==d)throw new ze("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await Ho(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function py(e){let t=await Sd(e),r=[];for(let[c]of Nd){let l=await Yr(ke.join(t,c)),d=sN(l);r.push({path:c,preimageDigest:He(l),desired:d,desiredDigest:He(d??"")})}let n=".dyyto/agent-policy.lock.json",a=await Yr(ke.join(t,n));r.push({path:n,preimageDigest:He(a),desired:null,desiredDigest:He("")});let i={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:Pd,files:r,createdAt:new Date().toISOString()},o={...i,planId:He(Sn(i))},s=ke.join(t,".dyyto/plans/bootstrap",`${o.planId.slice(7)}.json`);return await Ho(s,`${JSON.stringify(o,null,2)}
|
|
273
|
+
`),{plan:o,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Dd(e,t){if(!ke.isAbsolute(e))throw new ze("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Kr(await sy(e),"utf8")),{planId:n,...a}=r;if(n!==t||He(Sn(a))!==n)throw new ze("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let o of r.files)if(He(await Yr(ke.join(r.projectRoot,o.path)))!==o.preimageDigest)throw new ze("BOOTSTRAP_PREIMAGE_CHANGED",`${o.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let i=ke.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let o of r.files){let s=ke.join(r.projectRoot,o.path),c=await Yr(s);c&&c!==o.desired&&await Ho(ke.join(i,o.path),c),o.desired===null?c&&await aN(s):c!==o.desired&&await Ho(s,o.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(o=>o.preimageDigest!==o.desiredDigest).map(o=>o.path),preimageDirectory:i}}async function cN(e){let t=[],r=["packages","apps","services"];for(let n of r){let a=ke.join(e,n);try{let i=await rN(a,{withFileTypes:!0});for(let o of i){if(!o.isDirectory())continue;let s=ke.join(a,o.name,"package.json");try{let c=JSON.parse(await Kr(s,"utf8"));if(!c.name)continue;let l="incubating";c.dyyto?.tier?l=c.dyyto.tier:c.name.startsWith("@aipt/")||c.name.startsWith("@dyyto/")?l="platform-mirror":(o.name==="domain"||o.name==="persistence"||o.name==="application"||o.name==="api-contracts"||c.private===!0)&&(l="proprietary"),t.push({name:c.name,version:c.version||"0.0.0",relativePath:`${n}/${o.name}`,tier:l})}catch{}}}catch{}}return t}async function uy(e){let t=await Sd(e),r={tools:Ct};try{r=JSON.parse(await Kr(ke.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:ly()};try{n=JSON.parse(await Kr(ke.join(t,".dyyto/documentation.lock.json"),"utf8"))}catch{}let a;try{a=JSON.parse(await Kr(ke.join(t,"project-capabilities.json"),"utf8"))}catch{try{a=JSON.parse(await Kr(ke.join(t,".dyyto/project-capabilities.json"),"utf8"))}catch{}}let i=await cN(t);return{schemaVersion:1,projectRoot:t,intent:"\u4F18\u5148\u590D\u7528Dyyto Catalog\u80FD\u529B\uFF0C\u901A\u8FC7Plan/Apply/Verify\u5B89\u5168\u6F14\u8FDB\uFF1B\u914D\u7F6E\u4E0E\u5BC6\u94A5\u4F4D\u4E8E\u4ED3\u5E93\u5916Config Dir\u3002",requiredBeforeCoding:["dyyto doctor --project .","dyyto catalog search"],toolchain:r.tools,documents:n.documents,prohibitions:["\u4E0D\u5F97\u5728\u4ED3\u5E93\u5185\u4FDD\u5B58Secret","\u4E0D\u5F97\u7ED5\u8FC7\u4E0D\u53EF\u53D8Plan\u5199\u5165\u5DE5\u7A0B\u8D44\u4EA7","\u4E0D\u5F97\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u5230\u4E1A\u52A1\u4ED3\u5E93","\u4E0D\u5F97\u5C06\u4E1A\u52A1\u4E13\u5C5ESchema\u6216\u79C1\u6709\u72B6\u6001\u6CC4\u9732\u5230\u901A\u7528\u5305\u4E2D"],assetPerception:{localPackages:i,declaredCapabilities:a||null,proprietaryCount:i.filter(o=>o.tier==="proprietary").length,incubatingCount:i.filter(o=>o.tier==="incubating").length},vibeCodingDecisionGuide:{rulePrioritizeCatalog:"\u65B0\u589E\u529F\u80FD\u6216\u901A\u7528\u4F9D\u8D56\u524D\uFF0C\u5FC5\u987B\u5148\u6267\u884C dyyto catalog search \u68C0\u7D22\u5E76\u590D\u7528\u5DF2\u53D1\u884C\u7684\u901A\u7528\u80FD\u529B\u5305\u3002",ruleLocalIncubation:"\u82E5 Catalog \u5C1A\u65E0\u73B0\u6210\u80FD\u529B\uFF0C\u5E94\u5728 packages/ \u5EFA\u7ACB\u72EC\u7ACB\u5B50\u5305\u8FDB\u884C\u5B75\u5316\uFF1B\u4E25\u7981\u5F15\u7528\u4E1A\u52A1\u4E13\u7528\u6301\u4E45\u5C42\u6216\u679A\u4E3E\uFF0C\u5E76\u9644\u5E26 100% \u8986\u76D6\u7387\u7684 Vitest \u5355\u6D4B\u3002",rulePublishPromotion:"\u672C\u5730\u901A\u7528\u5305\u6210\u719F\u4E14\u901A\u8FC7 Golden Set \u9A8C\u6536\u540E\uFF0C\u4F7F\u7528 dyyto package publish \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\uFF0C\u4E1A\u52A1\u4ED3\u5E93\u968F\u540E\u5207\u56DE\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002"}}}var fy=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
|
|
273
274
|
|
|
274
275
|
\u672C\u5730 Sources \u5148\u8FD0\u884C idp-setup init \u5E76\u52A0\u8F7D\u751F\u6210\u7684\u73AF\u5883\u6587\u4EF6\u3002Workspace\u3001\u72EC\u7ACB\u9879\u76EE\u3001Package \u4E0E Application \u5747\u5148\u6267\u884C context \u4E0E doctor\uFF0C\u518D\u67E5\u8BE2 Catalog\u3001\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3001Apply \u540E\u8FD0\u884C Verify\u3002\u914D\u7F6E\u548C\u5BC6\u94A5\u59CB\u7EC8\u4F4D\u4E8E\u4ED3\u5E93\u5916 Config Dir\uFF1B\u90E8\u7F72\u53EA\u4F7F\u7528 idp \u4E0E idpctl bin\u3002
|
|
275
276
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
@@ -290,63 +291,70 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
290
291
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
291
292
|
|
|
292
293
|
\u672A\u77E5\u53C2\u6570\u65F6\u5148\u8FD0\u884C type -a idpctl \u4E0E idpctl --version --json\uFF0C\u786E\u8BA4 PATH \u547D\u4E2D\u9879\u76EE\u9501\u5B9A\u7248\u672C\u3002
|
|
293
|
-
`})[e];function
|
|
294
|
+
`})[e];import{createHash as jd}from"node:crypto";import{execFile as lN}from"node:child_process";import{mkdtemp as dN,readFile as my,readdir as pN,realpath as uN,rm as fN}from"node:fs/promises";import{tmpdir as mN}from"node:os";import Dn from"node:path";import{promisify as gN}from"node:util";var gy=gN(lN),At=class extends Error{constructor(r,n,a){super(n);this.code=r;this.nextStep=a;this.name="PackagePublishError"}code;nextStep},Ha=e=>`sha256:${jd("sha256").update(e).digest("hex")}`,hN=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-([0-9A-Za-z.-]+))?(?:\+([0-9A-Za-z.-]+))?$/u;async function hy(e){let t=Dn.isAbsolute(e.packageRoot)?e.packageRoot:Dn.resolve(process.cwd(),e.packageRoot),r=Dn.join(t,"package.json"),n;try{n=await my(r,"utf8")}catch{throw new At("PACKAGE_MANIFEST_NOT_FOUND",`\u627E\u4E0D\u5230 package.json: ${r}`,"\u8BF7\u6307\u5B9A\u6709\u6548\u7684 npm package \u76EE\u5F55\u3002")}let a;try{a=JSON.parse(n)}catch{throw new At("PACKAGE_MANIFEST_INVALID",`package.json \u65E0\u6CD5\u89E3\u6790\u4E3A JSON: ${r}`,"\u8BF7\u4FEE\u6B63 package.json \u8BED\u6CD5\u9519\u8BEF\u3002")}let i=a.name;if(typeof i!="string"||!i.trim())throw new At("PACKAGE_NAME_INVALID","package.json \u7F3A\u5C11\u6709\u6548\u7684 name \u5B57\u6BB5\u3002","\u5728 package.json \u4E2D\u914D\u7F6E\u5408\u6CD5\u5305\u540D\u3002");let o=a.version;if(typeof o!="string"||!hN.test(o))throw new At("PACKAGE_VERSION_INVALID",`\u7248\u672C\u53F7 "${o}" \u4E0D\u7B26\u5408 SemVer \u89C4\u8303 (x.y.z)\u3002`,"\u8BF7\u6309\u7167\u8BED\u4E49\u5316\u7248\u672C\u89C4\u8303\u914D\u7F6E\u7248\u672C\u53F7\u3002");let s={...a.dependencies||{},...a.devDependencies||{},...a.peerDependencies||{}},c=[];for(let[R,N]of Object.entries(s))typeof N=="string"&&N.startsWith("workspace:*")&&c.push(R);let l=e.registry||a.publishConfig?.registry||process.env.NPM_CONFIG_REGISTRY||"https://registry.npmjs.org",d=e.access||a.publishConfig?.access||(i.startsWith("@"),"public"),p=e.tag||a.publishConfig?.tag||"latest",f=!!e.dryRun,u=await dN(Dn.join(await uN(mN()),"dyyto-pkg-publish-")),m="",g="sha256:0000000000000000000000000000000000000000000000000000000000000000",h="sha512-AAAA",w=0,_=0;try{let R=await gy("npm",["pack","--pack-destination",u,"--json"],{cwd:t,env:process.env}),N=JSON.parse(R.stdout),j=Array.isArray(N)?N[0]:N,te=j?.filename||(await pN(u))[0];if(te){m=Dn.join(u,te);let $=await my(m);g=Ha($),h=`sha512-${jd("sha512").update($).digest("base64")}`,w=j?.entryCount||j?.files?.length||1,_=j?.unpackedSize||$.byteLength}}catch{let N=Buffer.from(n);g=Ha(N),h=`sha512-${jd("sha512").update(N).digest("base64")}`,w=a.files?.length||1,_=N.byteLength}let b=new Date().toISOString(),A={schemaVersion:1,kind:"PackagePublishPlan",packageName:i,version:o,packageRoot:t,registry:l,access:d,tag:p,dryRun:f,tarballDigest:g,integrity:h,tarballPath:m,filesCount:w,unpackedBytes:_,dependenciesChecked:c.length===0,createdAt:b},I=Ha(JSON.stringify(A));return Object.freeze({...A,planId:I})}async function yy(e){let t=new Date().toISOString();if(e.dryRun){let a={schemaVersion:1,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,registry:e.registry,access:e.access,tag:e.tag,tarballDigest:e.tarballDigest,status:"dry-run-verified",publishedAt:t};return Object.freeze({...a,receiptId:Ha(JSON.stringify(a))})}let r=["publish","--registry",e.registry,"--tag",e.tag,"--access",e.access];e.tarballPath&&r.push(e.tarballPath);try{await gy("npm",r,{cwd:e.packageRoot,env:process.env})}catch(a){let i=a?.stderr||a?.message||"";throw i.includes("EPUBLISHCONFLICT")||i.includes("409")?new At("PACKAGE_PUBLISH_CONFLICT",`\u7248\u672C ${e.packageName}@${e.version} \u5DF2\u5B58\u5728\u4E8E ${e.registry}\uFF0C\u7981\u6B62\u8986\u76D6\u53D1\u5E03\u3002`,"\u8BF7\u5347\u7EA7 package.json \u4E2D\u7684\u7248\u672C\u53F7\u540E\u91CD\u8BD5\u3002"):i.includes("ENEEDAUTH")||i.includes("401")||i.includes("403")?new At("PACKAGE_PUBLISH_UNAUTHORIZED",`\u53D1\u5E03\u5230 ${e.registry} \u9274\u6743\u5931\u8D25\uFF1A\u7F3A\u5C11\u6709\u6548\u7684 npm token \u6216\u65E0\u6743\u53D1\u5E03 ${e.packageName}\u3002`,"\u8BF7\u68C0\u67E5 NPM_TOKEN \u73AF\u5883\u53D8\u91CF\u6216\u914D\u7F6E ~/.npmrc \u51ED\u8BC1\u3002"):new At("PACKAGE_PUBLISH_FAILED",`\u53D1\u5E03\u5931\u8D25: ${i.slice(0,300)}`,"\u8BF7\u68C0\u67E5 Registry \u7F51\u7EDC\u8FDE\u901A\u6027\u4E0E\u6743\u9650\u3002")}finally{e.tarballPath&&await fN(Dn.dirname(e.tarballPath),{recursive:!0,force:!0}).catch(()=>{})}let n={schemaVersion:1,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,registry:e.registry,access:e.access,tag:e.tag,tarballDigest:e.tarballDigest,status:"published",publishedAt:t};return Object.freeze({...n,receiptId:Ha(JSON.stringify(n))})}function Ce(e){e.stdout.length>0&&Ee.stdout.write(e.stdout),e.stderr.length>0&&Ee.stderr.write(e.stderr)}async function wN(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 T({code:"CLI_ARGUMENT_INVALID",message:"Development Package Source requires exact --artifact-workspace, --artifact-bundle, optional --artifact-fallback-bundle and --artifact-port values.",exitCode:2,nextStep:"Start the approved local Artifact Bundle set and repeat the exact values."});let l=await za(Et.resolve(r,".dyyto","package-artifacts",a)),d=await Promise.all(i.map(p=>za(Et.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==a)throw new ur("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Mh({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:qh({stateRoot:Et.resolve(r,".dyyto","resolution-worker"),engine:Fh()}),packageStoreRoot:Et.resolve(r,".dyyto","resolution-worker","store")}}async function sL(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),a=n<0?Ee.cwd():e[n+1];if(!a)throw new ze("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let i=await py(Et.resolve(a)),o=e.includes("--apply")?await Dd(i.planFile,i.plan.planId):{status:"planned",planId:i.plan.planId,planFile:i.planFile,changed:i.changed};Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:o})}
|
|
294
295
|
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${i.plan.planId}
|
|
295
|
-
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),
|
|
296
|
-
`:
|
|
296
|
+
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),a=n<0?Ee.cwd():e[n+1];if(!a)throw new T({code:"CLI_ARGUMENT_INVALID",message:"bootstrap --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u4F20\u5165\u7EDD\u5BF9\u9879\u76EE\u6216Workspace\u76EE\u5F55\u3002"});let i=await dy(Et.resolve(a)),o=e.includes("--apply");if(o&&!e.includes("--skip-tool-install")){let c=Ee.env.PNPM_HOME;if(!c||!Et.isAbsolute(c))throw new ze("BOOTSTRAP_PNPM_HOME_REQUIRED","\u7F3A\u5C11\u7EDD\u5BF9PNPM_HOME\uFF1B\u5148\u8FD0\u884Cidp-setup init\uFF0C\u6216\u4F7F\u7528idp-setup bootstrap\u4F5C\u4E3A\u9879\u76EE\u9996\u6B21\u5165\u53E3\u3002");let l=yN("corepack",["pnpm","add","--global","--global-bin-dir",c,...cy],{encoding:"utf8",shell:!1,env:Ee.env});if(l.error||l.status!==0)throw new ze("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=o?await Dd(i.planFile,i.plan.planId):{status:"planned",planId:i.plan.planId,planFile:i.planFile,changed:i.changed};Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:o?"bootstrap-apply":"bootstrap-plan",result:s})}
|
|
297
|
+
`:o?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
297
298
|
Plan\uFF1A${i.plan.planId}
|
|
298
299
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
299
|
-
Next\uFF1Adyyto context --project ${
|
|
300
|
+
Next\uFF1Adyyto context --project ${a}
|
|
300
301
|
`:`Bootstrap Plan\uFF1A${i.plan.planId}
|
|
301
302
|
\u6587\u4EF6\uFF1A${i.planFile}
|
|
302
303
|
\u53D8\u66F4\uFF1A${i.changed.join("\u3001")||"\u65E0"}
|
|
303
304
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
304
|
-
`,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),
|
|
305
|
+
`,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),a=n<0?Ee.cwd():e[n+1];if(!a)throw new T({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let i=await uy(Et.resolve(a));Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context",result:i})}
|
|
305
306
|
`:`${i.intent}
|
|
306
307
|
|
|
307
308
|
\u7F16\u7801\u524D\uFF1A
|
|
308
|
-
${i.requiredBeforeCoding.map(
|
|
309
|
+
${i.requiredBeforeCoding.map(o=>`- ${o}`).join(`
|
|
309
310
|
`)}
|
|
310
311
|
|
|
311
312
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
312
|
-
${i.prohibitions.map(
|
|
313
|
+
${i.prohibitions.map(o=>`- ${o}`).join(`
|
|
313
314
|
`)}
|
|
314
|
-
`,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),
|
|
315
|
-
`:i,stderr:""});return}if(e[0]==="
|
|
315
|
+
`,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),a=e[n+1],i=a?fy(a):void 0;if(!i)throw new T({code:"DOCUMENT_NOT_FOUND",message:"\u672A\u77E5\u6216\u7F3A\u5C11\u7A33\u5B9A\u6587\u6863ID\u3002",exitCode:4,nextStep:"\u4F7F\u7528 engineering-workflow\u3001idp-integration \u6216 local-deployment\u3002"});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:a,content:i}})}
|
|
316
|
+
`:i,stderr:""});return}if(e[0]==="package"&&e[1]==="publish"||e[0]==="publish"){let n=e[0]==="publish"?1:2,a=e.slice(n),i=a.indexOf("--package-dir"),o=i>=0&&a[i+1]?Et.resolve(a[i+1]):Ee.cwd(),s=a.indexOf("--registry"),c=s>=0?a[s+1]:void 0,l=a.indexOf("--access"),d=l>=0?a[l+1]:void 0,p=a.indexOf("--tag"),f=p>=0?a[p+1]:void 0,u=a.includes("--dry-run"),m=await hy({packageRoot:o,registry:c,access:d,tag:f,dryRun:u}),g=await yy(m),h={status:u?"dry-run-verified":"published",receiptId:g.receiptId,packageName:g.packageName,version:g.version,registry:g.registry,access:g.access,tag:g.tag,tarballDigest:g.tarballDigest,filesCount:m.filesCount,unpackedBytes:m.unpackedBytes,publishedAt:g.publishedAt};Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"package-publish",result:h})}
|
|
317
|
+
`:`[Dyyto Package Publish] ${u?"\u3010\u9884\u68C0\u6A21\u62DF\u6210\u529F\u3011":"\u3010\u53D1\u5E03\u6210\u529F\u3011"}
|
|
318
|
+
\u5305\u540D\uFF1A${g.packageName}@${g.version}
|
|
319
|
+
\u76EE\u6807\u955C\u50CF\uFF1A${g.registry} (tag: ${g.tag}, access: ${g.access})
|
|
320
|
+
Tarball \u6458\u8981\uFF1A${g.tarballDigest}
|
|
321
|
+
\u6587\u4EF6\u6570\uFF1A${m.filesCount}\uFF0C\u89E3\u538B\u5927\u5C0F\uFF1A${m.unpackedBytes} bytes
|
|
322
|
+
\u4E0D\u53EF\u53D8\u8BC1\u636E Receipt\uFF1A${g.receiptId}
|
|
323
|
+
`,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new T({code:"CLI_ARGUMENT_INVALID",message:"mcp serve \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto mcp serve\uFF0C\u5E76\u901A\u8FC7 stdin/stdout \u4F7F\u7528 JSON-RPC\u3002"});await oy();return}if(e[0]==="catalog"&&e[1]==="export"){let n=new Set(["--output","--generated-at"]);for(let s=2;s<e.length;s+=2){let c=e[s],l=e[s+1];if(c===void 0||l===void 0||!n.has(c)||l.startsWith("--"))throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u53EA\u63A5\u53D7 --output - \u548C\u53EF\u9009 --generated-at <ISO UTC>\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto catalog export --output -\u3002"})}let a=e.indexOf("--output");if(a<0||e[a+1]!=="-")throw new T({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u5FC5\u987B\u901A\u8FC7 --output - \u8F93\u51FA\u53EA\u8BFB\u6295\u5F71\uFF1BDyyto \u4E0D\u76F4\u63A5\u6539\u5199\u6D88\u8D39\u8005\u914D\u7F6E\u3002",exitCode:2,nextStep:"\u5C06 stdout \u4EA4\u7ED9\u90E8\u7F72\u63A7\u5236\u9762\u7684\u539F\u5B50\u5FEB\u7167\u5BFC\u5165\u547D\u4EE4\u3002"});let i=e.indexOf("--generated-at"),o=i<0?new Date().toISOString():e[i+1];Ee.stdout.write(hh(await gh({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 T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u9700\u8981\u8FC1\u79FB\u5230\u6839\u5171\u4EAB\u9501\u7684\u5E94\u7528\u3002"});let i=await ay({projectRoot:a});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:i})}
|
|
316
324
|
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${i.plan.planId}
|
|
317
325
|
\u72B6\u6001\uFF1A${i.plan.state}
|
|
318
|
-
Next\uFF1Adyyto topology apply --project ${
|
|
319
|
-
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),
|
|
326
|
+
Next\uFF1Adyyto topology apply --project ${a} --approve ${i.plan.planId}
|
|
327
|
+
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),a=e[n+1],i=e.indexOf("--approve"),o=e[i+1];if(n<0||!a||i<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u5BA1\u6838\u5E76\u4F7F\u7528\u7CBE\u786E Plan ID\u3002"});let s=await iy({projectRoot:a,approvedPlanId:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
|
|
320
328
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
321
|
-
Next\uFF1Adyyto topology inspect --project ${
|
|
322
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),
|
|
329
|
+
Next\uFF1Adyyto topology inspect --project ${a}
|
|
330
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),a=e[n+1];if(n<0||!a)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u53D1\u751F\u5171\u4EAB\u4E8B\u52A1\u51B2\u7A81\u7684\u5355\u5143\u9879\u76EE\u3002"});let i=await Xh({projectRoot:a});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:i}})}
|
|
323
331
|
`:`Recovery Override Plan\uFF1A${i.planId}
|
|
324
332
|
\u51B2\u7A81\uFF1A${i.conflicts.length}
|
|
325
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),
|
|
333
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),a=e[n+1],i=e.indexOf("--approve"),o=e[i+1];if(n<0||!a||i<0||!o)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u7CBE\u786E Recovery Override Plan ID\u3002"});let s=await Zh({projectRoot:a,approvedPlanId:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
|
|
326
334
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
327
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),
|
|
335
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),a=e[n+1],i=e.indexOf("--maximum-bytes"),o=Number(e[i+1]);if(n<0||a===void 0||i<0||!Number.isSafeInteger(o)||o<1)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Plan \u9700\u8981 --workspace \u548C\u6B63\u6574\u6570 --maximum-bytes\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u5DF2\u6279\u51C6\u7684\u5BB9\u91CF\u4E0A\u9650\u91CD\u65B0\u751F\u6210 Build Plan\u3002"});let s=await Wh({workspaceRoot:a,maximumBytes:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
|
|
328
336
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
329
337
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
330
338
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
331
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),
|
|
339
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),a=e[n+1],i=e.indexOf("--approve"),o=e[i+1];if(n<0||a===void 0||i<0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Apply \u9700\u8981 --workspace \u548C\u7CBE\u786E --approve Plan ID\u3002",exitCode:2,nextStep:"\u68C0\u67E5\u4E0D\u53EF\u53D8 Build Plan\u3002"});let s=await Kh({workspaceRoot:a,approvedPlanId:o,warmup:Gh()});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
|
|
332
340
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
333
341
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
334
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),
|
|
335
|
-
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${
|
|
336
|
-
Bundle\uFF1A${
|
|
342
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),a=e[n+1],i=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||a===void 0||i.length===0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let o=await xh({workspaceRoot:a,packageRoots:i});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:o}})}
|
|
343
|
+
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${o.planId}
|
|
344
|
+
Bundle\uFF1A${o.bundle.bundleId}
|
|
337
345
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
338
|
-
Next\uFF1Adyyto artifacts apply --workspace ${
|
|
339
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),
|
|
346
|
+
Next\uFF1Adyyto artifacts apply --workspace ${a} --approve ${o.planId}
|
|
347
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),a=e[n+1],i=e.indexOf("--approve"),o=e[i+1];if(n<0||a===void 0||i<0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts apply requires --workspace and an exact --approve Plan ID.",exitCode:2,nextStep:"Review and approve the immutable Artifact Plan."});let s=await Vh({workspaceRoot:a,approvedPlanId:o});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
|
|
340
348
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
341
349
|
Channel\uFF1Adevelopment
|
|
342
|
-
Next\uFF1Adyyto artifacts serve --workspace ${
|
|
343
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),
|
|
350
|
+
Next\uFF1Adyyto artifacts serve --workspace ${a} --bundle ${s.bundleId} --port 4873
|
|
351
|
+
`,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 T({code:"CLI_ARGUMENT_INVALID",message:"Artifacts serve requires --workspace, an exact --bundle digest, optional exact --fallback-bundle digests, and a fixed --port.",exitCode:2,nextStep:"Run dyyto --help."});let d=await $h({bundleRoot:Et.resolve(a,".dyyto","package-artifacts",o),fallbackBundleRoots:s.map(f=>Et.resolve(a,".dyyto","package-artifacts",f)),port:l});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:d.origin,bundleId:d.bundle.bundleId,fallbackBundleIds:d.fallbackBundles.map(f=>f.bundleId),channel:"development"}})}
|
|
344
352
|
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
|
|
345
353
|
\u4E3B Bundle\uFF1A${d.bundle.bundleId}
|
|
346
354
|
Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
|
|
347
355
|
Channel\uFF1Adevelopment
|
|
348
|
-
`,stderr:""});let p=async()=>{await d.close(),
|
|
356
|
+
`,stderr:""});let p=async()=>{await d.close(),Ee.exit(0)};Ee.once("SIGINT",p),Ee.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 T({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 T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await Oh({workspaceRoot:a,...o===void 0?{}:{port:o}});Ce({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
|
|
349
357
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
350
|
-
`,stderr:""});let c=async()=>{await s.close(),
|
|
358
|
+
`,stderr:""});let c=async()=>{await s.close(),Ee.exit(0)};Ee.once("SIGINT",c),Ee.once("SIGTERM",c),await new Promise(()=>{})}let r=await Nh(e,await wN(e));Ce(Qh(r.value,r.outputMode,r.human))}catch(r){if(Ee.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;Ee.stderr.write(`${r.stack??r.message}${s.map(l=>`
|
|
351
359
|
Cause: ${l}`).join("")}
|
|
352
|
-
`)}let n=r;if(r instanceof
|
|
360
|
+
`)}let n=r;if(r instanceof ze)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"\u91CD\u65B0\u751F\u6210Bootstrap Plan\u5E76\u68C0\u67E5\u7528\u6237\u4FEE\u6539\u3002"});else if(r instanceof he)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof C)n=new T({code:r.code,message:r.message,exitCode:r.code==="RECOVERY_REQUIRED"?5:3,nextStep:r.code==="RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Run dyyto plan and approve the exact reviewable plan."});else if(r instanceof M)n=new T({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof Ie)n=new T({code:r.code,message:r.message,exitCode:r.code==="METADATA_RECOVERY_REQUIRED"?5:4,nextStep:r.code==="METADATA_RECOVERY_REQUIRED"?"Run dyyto recover for this project.":"Fix the verification failure, then run dyyto verify again."});else if(r instanceof H||r instanceof Error&&r.name==="PackageAdoptionError"&&"code"in r&&typeof r.code=="string"){let s=r.code,c=s==="PACKAGE_INSTALL_FAILED";n=new T({code:s,message:s,exitCode:c?5:4,nextStep:c?"\u68C0\u67E5\u9879\u76EE\u6062\u590D\u72B6\u6001\u548C\u53D7\u4FE1 Registry \u540E\u91CD\u65B0\u751F\u6210 Plan\u3002":"\u68C0\u67E5 Package Source\u3001Receipt \u4E0E\u6279\u51C6\u7684 Plan\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}else if(r instanceof Me)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5 Bundle index\u3001tarball \u6458\u8981\u548C\u672C\u5730\u53EA\u8BFB\u7AEF\u53E3\u540E\u91CD\u8BD5\u3002"});else if(r instanceof J)n=new T({code:r.code,message:r.code,exitCode:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?5:4,nextStep:r.code==="LOCAL_ARTIFACT_PREIMAGE_CONFLICT"?"Package \u6216 Bundle preimage \u5DF2\u53D8\u5316\uFF1B\u8BF7\u91CD\u65B0\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3002":"\u68C0\u67E5 package \u8F93\u5165\u548C Artifact Plan \u540E\u91CD\u8BD5\u3002"});else if(r instanceof ur)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u6838\u5BF9\u6279\u51C6\u7684 Bundle\u3001candidate Release \u4E0E loopback Registry \u53C2\u6570\u3002"});else if(r instanceof Ye)n=new T({code:r.code,message:r.code,exitCode:r.code==="RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT"?5:4,nextStep:"\u68C0\u67E5 Worker Build Plan\u3001workspace preimage \u4E0E\u5BB9\u91CF\u9650\u5236\u540E\u91CD\u8BD5\u3002"});else if(r instanceof Ae)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"Resolution Evidence \u672A\u901A\u8FC7\u4E25\u683C\u9A8C\u8BC1\uFF1B\u68C0\u67E5 importer\u3001package closure \u4E0E source binding\u3002"});else if(r instanceof ut)n=new T({code:r.code,message:r.code,exitCode:4,nextStep:"\u68C0\u67E5\u6839\u5171\u4EAB\u9501 importer\u3001\u5E94\u7528\u5C40\u90E8\u9501\u548C Plan preimage \u540E\u91CD\u65B0\u751F\u6210\u62D3\u6251\u8FC1\u79FB Plan\u3002"});else if(r instanceof Error&&/^RESOLUTION_WORKER_[A-Z_]+$/u.test(r.message))n=new T({code:r.message,message:r.message,exitCode:4,nextStep:"\u68C0\u67E5 Resolution Worker Receipt\u3001\u5171\u4EAB\u9501 trust facts \u4E0E persistent state\u3002"});else if(r instanceof At)n=new T({code:r.code,message:r.message,exitCode:4,nextStep:r.nextStep??"\u68C0\u67E5 package.json \u89C4\u8303\u4E0E Registry \u6743\u9650\u540E\u91CD\u8BD5\u3002"});else if(r instanceof 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 T({code:r.code,message:r.message,exitCode:c?5:4,nextStep:s[r.code]??(c?"Inspect the delivery target before retrying.":"Review the Delivery Plan and current project state.")})}let a=$d(n),i=n instanceof T?n:a===null?null:new T(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}}};Ce(ey(o,t)),Ee.exitCode=i?.exitCode??1}}export{sL as runCommand};
|