@aipt/cli 0.1.19 → 0.1.23
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 +90 -6
- package/dist/application-runner.js +177 -176
- package/dist/application.js +94 -93
- package/dist/chunk.js +3 -3
- package/dist/optional-runtime.js +27 -27
- package/dist/package-releases/aipt--cli/0.1.20/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.21/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.22/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.23/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.0/release.json +30 -0
- package/dist/package-releases/aipt--idp-setup/0.1.1/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.7/release.json +33 -0
- package/docs/bootstrap.md +1 -1
- package/docs/command-reference.md +1 -0
- package/docs/engineering-workflow.md +1 -1
- package/docs/vibe-coding-guide.md +2 -0
- package/documentation-manifest.json +5 -5
- package/package.json +3 -3
|
@@ -1,135 +1,136 @@
|
|
|
1
|
-
import{a as E,b as Kr,c as On,d as Od,e as T,f as Dd,g as Sd,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 Dn=class{};K._CodeOrName=Dn;K.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var pr=class extends Dn{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=pr;var nt=class extends Dn{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 pr&&(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;)Yi(r,t[n]),r.push(e[++n]);return new nt(r)}K._=Td;var Ki=new nt("+");function Ld(e,...t){let r=[Sn(e[0])],n=0;for(;n<t.length;)r.push(Ki),Yi(r,t[n]),r.push(Ki,Sn(e[++n]));return ly(r),new nt(r)}K.str=Ld;function Yi(e,t){t instanceof nt?e.push(...t._items):t instanceof pr?e.push(t):e.push(uy(t))}K.addCodeArg=Yi;function ly(e){let t=1;for(;t<e.length-1;){if(e[t]===Ki){let r=dy(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function dy(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof pr||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 pr))return`"${e}${t.slice(1)}`}function py(e,t){return t.emptyStr()?e:e.emptyStr()?t:Ld`${e}${t}`}K.strConcat=py;function uy(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Sn(Array.isArray(e)?e.join(","):e)}function fy(e){return new nt(Sn(e))}K.stringify=fy;function Sn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}K.safeStringify=Sn;function my(e){return typeof e=="string"&&K.IDENTIFIER.test(e)?new nt(`.${e}`):Td`[${e}]`}K.getProperty=my;function gy(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=gy;function hy(e){return new nt(e.toString())}K.regexpCode=hy});var Zi=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(),Hi=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 yy=(0,ze._)`\n`,Xi=class extends Yo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?yy: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:a}=o,i=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let d=s.get(i);if(d)return d}else s=this._values[a]=new Map;s.set(i,o);let c=this._scope[a]||(this._scope[a]=[]),l=c.length;return c[l]=r.ref,o.setValue(r,{property:a,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 a=ze.nil;for(let i in t){let s=t[i];if(!s)continue;let c=n[i]=n[i]||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;a=(0,ze._)`${a}${p} ${l} = ${d};${this.opts._n}`}else if(d=o?.(l))a=(0,ze._)`${a}${d}${this.opts._n}`;else throw new Hi(l);c.set(l,Ko.Completed)})}return a}};Je.ValueScope=Xi});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=Zi(),Gt=jn();Object.defineProperty(U,"_",{enumerable:!0,get:function(){return Gt._}});Object.defineProperty(U,"str",{enumerable:!0,get:function(){return Gt.str}});Object.defineProperty(U,"strConcat",{enumerable:!0,get:function(){return Gt.strConcat}});Object.defineProperty(U,"nil",{enumerable:!0,get:function(){return Gt.nil}});Object.defineProperty(U,"getProperty",{enumerable:!0,get:function(){return Gt.getProperty}});Object.defineProperty(U,"stringify",{enumerable:!0,get:function(){return Gt.stringify}});Object.defineProperty(U,"regexpCode",{enumerable:!0,get:function(){return Gt.regexpCode}});Object.defineProperty(U,"Name",{enumerable:!0,get:function(){return Gt.Name}});var ea=Zi();Object.defineProperty(U,"Scope",{enumerable:!0,get:function(){return ea.Scope}});Object.defineProperty(U,"ValueScope",{enumerable:!0,get:function(){return ea.ValueScope}});Object.defineProperty(U,"ValueScopeName",{enumerable:!0,get:function(){return ea.ValueScopeName}});Object.defineProperty(U,"varKinds",{enumerable:!0,get:function(){return ea.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 St=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Qi=class extends St{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 St{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 St{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},rs=class extends St{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ns=class extends St{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},os=class extends St{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 St{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 a=n[o];a.optimizeNames(t,r)||(wy(t,a.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>mr(t,r.names),{})}},jt=class extends $n{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},as=class extends $n{},Yr=class extends jt{};Yr.kind="else";var ur=class e extends jt{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&&mr(t,this.else.names),t}};ur.kind="if";var fr=class extends jt{};fr.kind="for";var is=class extends fr{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 mr(super.names,this.iteration.names)}},ss=class extends fr{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:a}=this;return`for(${r} ${n}=${o}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=Qo(super.names,this.from);return Qo(t,this.to)}},Zo=class extends fr{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 mr(super.names,this.iterable.names)}},Cn=class extends jt{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 jt{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&&mr(t,this.catch.names),this.finally&&mr(t,this.finally.names),t}},Ln=class extends jt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Ln.kind="catch";var xn=class extends jt{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 as]}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 a=this._scope.toName(r);return n!==void 0&&o&&(this._constants[a.str]=n),this._leafNode(new Qi(t,a,n)),a}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 ur(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 ur(t))}else(){return this._elseNode(new Yr)}endIf(){return this._endBlockNode(ur,Yr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new is(t),r)}forRange(t,r,n,o,a=this.opts.es5?mt.varKinds.var:mt.varKinds.let){let i=this._scope.toName(t);return this._for(new ss(a,i,r,n),()=>o(i))}forOf(t,r,n,o=mt.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let i=r instanceof B.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,B._)`${i}.length`,s=>{this.var(a,(0,B._)`${i}[${s}]`),n(a)})}return this._for(new Zo("of",o,a,r),()=>n(a))}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 a=this._scope.toName(t);return this._for(new Zo("in",o,a,r),()=>n(a))}endFor(){return this._endBlockNode(fr)}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 a=this.name("e");this._currNode=o.catch=new Ln(a),r(a)}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 ur))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 mr(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?mr(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((a,i)=>(i instanceof B.Name&&(i=n(i)),i instanceof B._Code?a.push(...i._items):a.push(i),a),[]));function n(a){let i=r[a.str];return i===void 0||t[a.str]!==1?a:(delete t[a.str],i)}function o(a){return a instanceof B._Code&&a._items.some(i=>i instanceof B.Name&&t[i.str]===1&&r[i.str]!==void 0)}}function wy(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 Iy=Vd(U.operators.AND);function vy(...e){return e.reduce(Iy)}U.and=vy;var by=Vd(U.operators.OR);function ky(...e){return e.reduce(by)}U.or=ky;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(),Ry=jn();function _y(e){let t={};for(let r of e)t[r]=!0;return t}F.toHash=_y;function Ay(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Fd(e,t),!qd(t,e.self.RULES.all))}F.alwaysValidSchema=Ay;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 a in t)o[a]||Jd(e,`unknown keyword: "${a}"`)}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 Ey(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=Ey;function Py({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=Py;function Ny(e){return Bd(decodeURIComponent(e))}F.unescapeFragment=Ny;function Oy(e){return encodeURIComponent(us(e))}F.escapeFragment=Oy;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,a,i,s)=>{let c=i===void 0?a:i instanceof ne.Name?(a instanceof ne.Name?e(o,a,i):t(o,a,i),i):a instanceof ne.Name?(t(o,i,a),a):r(a,i);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 Sy(e,t){return e.scopeValue("func",{ref:t,code:Ud[t.code]||(Ud[t.code]=new Ry._Code(t.code))})}F.useFunc=Sy;var ps;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(ps||(F.Type=ps={}));function jy(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=jy;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(),$y={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=$y});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(),ta=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 Cy(e,t=Ce.keywordError,r,n){let{it:o}=e,{gen:a,compositeRule:i,allErrors:s}=o,c=Kd(e,t,r);n??(i||s)?Gd(a,c):Wd(o,(0,G._)`[${c}]`)}Ce.reportError=Cy;function Ty(e,t=Ce.keywordError,r){let{it:n}=e,{gen:o,compositeRule:a,allErrors:i}=n,s=Kd(e,t,r);Gd(o,s),a||i||Wd(n,Ue.default.vErrors)}Ce.reportExtraError=Ty;function Ly(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=Ly;function xy({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:a}){if(o===void 0)throw new Error("ajv implementation error");let i=e.name("err");e.forRange("i",o,Ue.default.errors,s=>{e.const(i,(0,G._)`${Ue.default.vErrors}[${s}]`),e.if((0,G._)`${i}.instancePath === undefined`,()=>e.assign((0,G._)`${i}.instancePath`,(0,G.strConcat)(Ue.default.instancePath,a.errorPath))),e.assign((0,G._)`${i}.schemaPath`,(0,G.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,G._)`${i}.schema`,r),e.assign((0,G._)`${i}.data`,n))})}Ce.extendErrors=xy;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 gr={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._)`{}`:Vy(e,t,r)}function Vy(e,t,r={}){let{gen:n,it:o}=e,a=[My(o,r),Uy(e,r)];return Fy(e,t,a),n.object(...a)}function My({errorPath:e},{instancePath:t}){let r=t?(0,G.str)`${e}${(0,ta.getErrorPath)(t,ta.Type.Str)}`:e;return[Ue.default.instancePath,(0,G.strConcat)(Ue.default.instancePath,r)]}function Uy({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,ta.getErrorPath)(r,ta.Type.Str)}`),[gr.schemaPath,o]}function Fy(e,{params:t,message:r},n){let{keyword:o,data:a,schemaValue:i,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([gr.keyword,o],[gr.params,typeof t=="function"?t(e):t||(0,G._)`{}`]),c.messages&&n.push([gr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([gr.schema,i],[gr.parentSchema,(0,G._)`${d}${p}`],[Ue.default.data,a]),l&&n.push([gr.propertyName,l])}});var Hd=E(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.boolOrEmptySchema=Xr.topBoolOrEmptySchema=void 0;var qy=Vn(),By=x(),zy=ot(),Jy={message:"boolean schema is false"};function Gy(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Yd(e,!1):typeof r=="object"&&r.$async===!0?t.return(zy.default.data):(t.assign((0,By._)`${n}.errors`,null),t.return(!0))}Xr.topBoolOrEmptySchema=Gy;function Wy(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Yd(e)):r.var(t,!0)}Xr.boolOrEmptySchema=Wy;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,qy.reportError)(o,Jy,void 0,t)}});var gs=E(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.getRules=Zr.isJSONType=void 0;var Ky=["string","number","integer","boolean","null","object","array"],Yy=new Set(Ky);function Hy(e){return typeof e=="string"&&Yy.has(e)}Zr.isJSONType=Hy;function Xy(){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=Xy});var hs=E(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.shouldUseRule=Wt.shouldUseGroup=Wt.schemaHasRulesForType=void 0;function Zy({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Xd(e,n)}Wt.schemaHasRulesForType=Zy;function Xd(e,t){return t.rules.some(r=>Zd(e,r))}Wt.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))}Wt.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 Qy=gs(),ew=hs(),tw=Vn(),V=x(),Qd=q(),Qr;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Qr||(Te.DataType=Qr={}));function rw(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=rw;function ep(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Qy.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Te.getJSONTypes=ep;function nw(e,t){let{gen:r,data:n,opts:o}=e,a=ow(t,o.coerceTypes),i=t.length>0&&!(a.length===0&&t.length===1&&(0,ew.schemaHasRulesForType)(e,t[0]));if(i){let s=ws(t,n,o.strictNumbers,Qr.Wrong);r.if(s,()=>{a.length?aw(e,t,a):Is(e)})}return i}Te.coerceAndCheckDataType=nw;var tp=new Set(["string","number","integer","boolean","null"]);function ow(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:a}=e,i=n.let("dataType",(0,V._)`typeof ${o}`),s=n.let("coerced",(0,V._)`undefined`);a.coerceTypes==="array"&&n.if((0,V._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,V._)`${o}[0]`).assign(i,(0,V._)`typeof ${o}`).if(ws(t,o,a.strictNumbers),()=>n.assign(s,o))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(tp.has(l)||l==="array"&&a.coerceTypes==="array")&&c(l);n.else(),Is(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(o,s),iw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${i} == "number" || ${i} == "boolean"`).assign(s,(0,V._)`"" + ${o}`).elseIf((0,V._)`${o} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${i} == "boolean" || ${o} === null
|
|
3
|
-
|| (${
|
|
4
|
-
|| (${
|
|
5
|
-
|| ${i} === "boolean" || ${o} === null`).assign(s,(0,V._)`[${o}]`)}}}function iw({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,a;switch(e){case"null":return(0,V._)`${t} ${o} null`;case"array":a=(0,V._)`Array.isArray(${t})`;break;case"object":a=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=i((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=i();break;default:return(0,V._)`typeof ${t} ${o} ${e}`}return n===Qr.Correct?a:(0,V.not)(a);function i(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,a=(0,Qd.toHash)(e);if(a.array&&a.object){let i=(0,V._)`typeof ${t} != "object"`;o=a.null?i:(0,V._)`!${t} || ${i}`,delete a.null,delete a.array,delete a.object}else o=V.nil;a.number&&delete a.integer;for(let i in a)o=(0,V.and)(o,ys(i,t,r,n));return o}Te.checkDataTypes=ws;var sw={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=cw(e);(0,tw.reportError)(t,sw)}Te.reportTypeError=Is;function cw(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(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.assignDefaults=void 0;var en=x(),lw=q();function dw(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,a)=>rp(e,a,o.default))}ra.assignDefaults=dw;function rp(e,t,r){let{gen:n,compositeRule:o,data:a,opts:i}=e;if(r===void 0)return;let s=(0,en._)`${a}${(0,en.getProperty)(t)}`;if(o){(0,lw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,en._)`${s} === undefined`;i.useDefaults==="empty"&&(c=(0,en._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,en._)`${s} = ${(0,en.stringify)(r)}`)}});var at=E(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.validateUnion=te.validateArray=te.usePattern=te.callValidateCode=te.schemaProperties=te.allSchemaProperties=te.noPropertyInData=te.propertyInData=te.isOwnProperty=te.hasPropFunc=te.reportMissingProp=te.checkMissingProp=te.checkReportMissingProp=void 0;var le=x(),vs=q(),Kt=ot(),pw=q();function uw(e,t){let{gen:r,data:n,it:o}=e;r.if(ks(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,le._)`${t}`},!0),e.error()})}te.checkReportMissingProp=uw;function fw({gen:e,data:t,it:{opts:r}},n,o){return(0,le.or)(...n.map(a=>(0,le.and)(ks(e,t,a,r.ownProperties),(0,le._)`${o} = ${a}`)))}te.checkMissingProp=fw;function mw(e,t){e.setParams({missingProperty:t},!0),e.error()}te.reportMissingProp=mw;function op(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,le._)`Object.prototype.hasOwnProperty`})}te.hasPropFunc=op;function bs(e,t,r){return(0,le._)`${op(e)}.call(${t}, ${r})`}te.isOwnProperty=bs;function gw(e,t,r,n){let o=(0,le._)`${t}${(0,le.getProperty)(r)} !== undefined`;return n?(0,le._)`${o} && ${bs(e,t,r)}`:o}te.propertyInData=gw;function ks(e,t,r,n){let o=(0,le._)`${t}${(0,le.getProperty)(r)} === undefined`;return n?(0,le.or)(o,(0,le.not)(bs(e,t,r))):o}te.noPropertyInData=ks;function ap(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}te.allSchemaProperties=ap;function hw(e,t){return ap(t).filter(r=>!(0,vs.alwaysValidSchema)(e,t[r]))}te.schemaProperties=hw;function yw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:a},it:i},s,c,l){let d=l?(0,le._)`${e}, ${t}, ${n}${o}`:t,p=[[Kt.default.instancePath,(0,le.strConcat)(Kt.default.instancePath,a)],[Kt.default.parentData,i.parentData],[Kt.default.parentDataProperty,i.parentDataProperty],[Kt.default.rootData,Kt.default.rootData]];i.opts.dynamicRef&&p.push([Kt.default.dynamicAnchors,Kt.default.dynamicAnchors]);let f=(0,le._)`${d}, ${r.object(...p)}`;return c!==le.nil?(0,le._)`${s}.call(${c}, ${f})`:(0,le._)`${s}(${f})`}te.callValidateCode=yw;var ww=(0,le._)`new RegExp`;function Iw({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,a=o(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,le._)`${o.code==="new RegExp"?ww:(0,pw.useFunc)(e,o)}(${r}, ${n})`})}te.usePattern=Iw;function vw(e){let{gen:t,data:r,keyword:n,it:o}=e,a=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return i(()=>t.assign(s,!1)),s}return t.var(a,!0),i(()=>t.break()),a;function i(s){let c=t.const("len",(0,le._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:vs.Type.Num},a),t.if((0,le.not)(a),s)})}}te.validateArray=vw;function bw(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 i=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(i,(0,le._)`${i} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,le.not)(i))})),e.result(i,()=>e.reset(),()=>e.error(!0))}te.validateUnion=bw});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(),hr=ot(),kw=at(),Rw=Vn();function _w(e,t){let{gen:r,keyword:n,schema:o,parentSchema:a,it:i}=e,s=t.macro.call(i.self,o,a,i),c=sp(r,n,s);i.opts.validateSchema!==!1&&i.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:Fe.nil,errSchemaPath:`${i.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}Et.macroKeywordCode=_w;function Aw(e,t){var r;let{gen:n,keyword:o,schema:a,parentSchema:i,$data:s,it:c}=e;Pw(c,t);let l=!s&&t.compile?t.compile.call(c.self,a,i,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&&ip(e),h(()=>e.error());else{let w=t.async?u():m();t.modifying&&ip(e),h(()=>Ew(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?hr.default.this:hr.default.self,v=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,Fe._)`${w}${(0,kw.callValidateCode)(e,d,_,v)}`,t.modifying)}function h(w){var _;n.if((0,Fe.not)((_=t.valid)!==null&&_!==void 0?_:p),w)}}Et.funcKeywordCode=Aw;function ip(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Fe._)`${n.parentData}[${n.parentDataProperty}]`))}function Ew(e,t){let{gen:r}=e;r.if((0,Fe._)`Array.isArray(${t})`,()=>{r.assign(hr.default.vErrors,(0,Fe._)`${hr.default.vErrors} === null ? ${t} : ${hr.default.vErrors}.concat(${t})`).assign(hr.default.errors,(0,Fe._)`${hr.default.vErrors}.length`),(0,Rw.extendErrors)(e)},()=>e.error())}function Pw({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 Nw(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=Nw;function Ow({schema:e,opts:t,self:r,errSchemaPath:n},o,a){if(Array.isArray(o.keyword)?!o.keyword.includes(a):o.keyword!==a)throw new Error("ajv implementation error");let i=o.dependencies;if(i?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${a}: ${i.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[a])){let c=`keyword "${a}" 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=Ow});var dp=E(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.extendSubschemaMode=Yt.extendSubschemaData=Yt.getSubschema=void 0;var Pt=x(),lp=q();function Dw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:a,topSchemaRef:i}){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||a===void 0||i===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:i,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Yt.getSubschema=Dw;function Sw(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:a,propertyName:i}){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),i!==void 0&&(e.propertyName=i)}a&&(e.dataTypes=a);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}Yt.extendSubschemaData=Sw;function jw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:a}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}Yt.extendSubschemaMode=jw});var Rs=E((mN,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,a;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(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){var i=a[o];if(!e(t[i],r[i]))return!1}return!0}return t!==t&&r!==r}});var fp=E((gN,up)=>{"use strict";var Ht=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(){};na(t,n,o,e,"",e)};Ht.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Ht.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ht.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ht.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 na(e,t,r,n,o,a,i,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,a,i,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in Ht.arrayKeywords)for(var f=0;f<p.length;f++)na(e,t,r,p[f],o+"/"+d+"/"+f,a,o,d,n,f)}else if(d in Ht.propsKeywords){if(p&&typeof p=="object")for(var u in p)na(e,t,r,p[u],o+"/"+d+"/"+$w(u),a,o,d,n,u)}else(d in Ht.keywords||e.allKeys&&!(d in Ht.skipKeywords))&&na(e,t,r,p,o+"/"+d,a,o,d,n)}r(n,o,a,i,s,c,l)}}function $w(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 Cw=q(),Tw=Rs(),Lw=fp(),xw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Vw(e,t=!0){return typeof e=="boolean"?!0:t===!0?!_s(e):t?mp(e)<=t:!1}Ge.inlineRef=Vw;var Mw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function _s(e){for(let t in e){if(Mw.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++,!xw.has(r)&&(typeof e[r]=="object"&&(0,Cw.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 Uw=/#\/?$/;function tn(e){return e?e.replace(Uw,""):""}Ge.normalizeId=tn;function Fw(e,t,r){return r=tn(r),e.resolve(t,r)}Ge.resolveUrl=Fw;var qw=/^[a-z_][-a-z0-9._]*$/i;function Bw(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=tn(e[r]||t),a={"":o},i=gp(n,o,!1),s={},c=new Set;return Lw(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=i+f,h=a[m];typeof p[r]=="string"&&(h=w.call(this,p[r])),_.call(this,p.$anchor),_.call(this,p.$dynamicAnchor),a[f]=h;function w(v){let A=this.opts.uriResolver.resolve;if(v=tn(h?A(h,v):v),c.has(v))throw d(v);c.add(v);let I=this.refs[v];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,v):v!==tn(g)&&(v[0]==="#"?(l(p,s[v],v),s[v]=p):this.refs[v]=g),v}function _(v){if(typeof v=="string"){if(!qw.test(v))throw new Error(`invalid anchor "${v}"`);w.call(this,`#${v}`)}}}),s;function l(p,f,u){if(f!==void 0&&!Tw(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Ge.getSchemaRefs=Bw});var Bn=E(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.getData=Xt.KeywordCxt=Xt.validateFunctionCode=void 0;var bp=Hd(),yp=Mn(),Es=hs(),oa=Mn(),zw=np(),qn=cp(),As=dp(),O=x(),L=ot(),Jw=Un(),$t=q(),Fn=Vn();function Gw(e){if(_p(e)&&(Ap(e),Rp(e))){Yw(e);return}kp(e,()=>(0,bp.topBoolOrEmptySchema)(e))}Xt.validateFunctionCode=Gw;function kp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},a){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)}`),Kw(e,o),e.code(a)}):e.func(t,(0,O._)`${L.default.data}, ${Ww(o)}`,n.$async,()=>e.code(wp(r,o)).code(a))}function Ww(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 Kw(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 Yw(e){let{schema:t,opts:r,gen:n}=e;kp(e,()=>{r.$comment&&t.$comment&&Pp(e),eI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&Hw(e),Ep(e),nI(e)})}function Hw(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 Xw(e,t){if(_p(e)&&(Ap(e),Rp(e))){Zw(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 Zw(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&Pp(e),tI(e),rI(e);let a=n.const("_errs",L.default.errors);Ep(e,a),n.var(t,(0,O._)`${a} === ${L.default.errors}`)}function Ap(e){(0,$t.checkUnknownRules)(e),Qw(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 Qw(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,$t.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function eI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,$t.checkStrictMode)(e,"default is ignored in the schema root")}function tI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,Jw.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function rI(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 a=r.$comment;if(o.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${a})`);else if(typeof o.$comment=="function"){let i=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${a}, ${i}, ${s}.schema)`)}}function nI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:a}=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),a.unevaluated&&oI(e),t.return((0,O._)`${L.default.errors} === 0`))}function oI({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:a,data:i,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,$t.schemaHasRulesButRef)(a,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)(a,f)&&(f.type?(o.if((0,oa.checkDataType)(f.type,i,c.strictNumbers)),vp(e,f),t.length===1&&t[0]===f.type&&r&&(o.else(),(0,oa.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,zw.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,Es.shouldUseRule)(n,a)&&Op(e,a.keyword,a.definition,t.type)})}function aI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(iI(e,t),e.opts.allowUnionTypes||sI(e,t),cI(e,e.dataTypes))}function iI(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(",")}"`)}),dI(e,t)}}function sI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ps(e,"use allowUnionTypes to allow union type keyword")}function cI(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:a}=o.definition;a.length&&!a.some(i=>lI(t,i))&&Ps(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function lI(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 dI(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,$t.checkStrictMode)(e,t,e.opts.strictTypes)}var aa=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,$t.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",Dp(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:a,def:i}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(a.length||i.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:a}=this;return(0,O.or)(i(),s());function i(){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,oa.checkDataTypes)(c,r,a.opts.strictNumbers,oa.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 Xw(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=$t.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=$t.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}};Xt.KeywordCxt=aa;function Op(e,t,r,n){let o=new aa(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 pI=/^\/(?:[^~]|~0|~1)*$/,uI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Dp(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,a;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!pI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,a=L.default.rootData}else{let l=uI.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(a=r[t-d],!o)return a}let i=a,s=o.split("/");for(let l of s)l&&(a=(0,O._)`${a}${(0,O.getProperty)((0,$t.unescapeJsonPointer)(l))}`,i=(0,O._)`${i} && ${a}`);return i;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}Xt.getData=Dp});var ia=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 Ds=Un(),Ss=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Ds.resolveUrl)(t,r,n),this.missingSchema=(0,Ds.normalizeId)((0,Ds.getFullPath)(t,this.missingRef))}};js.default=Ss});var Jn=E(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.resolveSchema=it.getCompilingSchema=it.resolveRef=it.compileSchema=it.SchemaEnv=void 0;var gt=x(),fI=ia(),yr=ot(),ht=Un(),Sp=q(),mI=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={}}};it.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:a}=this.opts,i=new gt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:a}),s;e.$async&&(s=i.scopeValue("Error",{ref:fI.default,code:(0,gt._)`require("ajv/dist/runtime/validation_error").default`}));let c=i.scopeName("validate");e.validateName=c;let l={gen:i,allErrors:this.opts.allErrors,data:yr.default.data,parentData:yr.default.parentData,parentDataProperty:yr.default.parentDataProperty,dataNames:[yr.default.data],dataPathArr:[gt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.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,mI.validateFunctionCode)(l),i.optimize(this.opts.code.optimize);let p=i.toString();d=`${i.scopeRefs(yr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${yr.default.self}`,`${yr.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:i._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)}}it.compileSchema=Cs;function gI(e,t,r){var n;r=(0,ht.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let a=wI.call(this,e,r);if(a===void 0){let i=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;i&&(a=new rn({schema:i,schemaId:s,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=hI.call(this,a)}it.resolveRef=gI;function hI(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(yI(t,e))return t}it.getCompilingSchema=jp;function yI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function wI(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||sa.call(this,e,t)}function sa(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 a=(0,ht.normalizeId)(n),i=this.refs[a]||this.schemas[a];if(typeof i=="string"){let s=sa.call(this,e,i);return typeof s?.schema!="object"?void 0:$s.call(this,r,s)}if(typeof i?.schema=="object"){if(i.validate||Cs.call(this,i),a===(0,ht.normalizeId)(t)){let{schema:s}=i,{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,i)}}it.resolveSchema=sa;var II=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,Sp.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!II.has(s)&&l&&(t=(0,ht.resolveUrl)(this.opts.uriResolver,t,l))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,Sp.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ht.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=sa.call(this,n,s)}let{schemaId:i}=this.opts;if(a=a||new rn({schema:r,schemaId:i,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var $p=E((bN,vI)=>{vI.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((kN,Mp)=>{"use strict";var bI=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),kI=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 RI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Cp(e){return e.length=0,!0}function _I(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 AI(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],a=!1,i=!1,s=_I;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(a===!0&&(i=!0),!s(o,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(a=!0),n.push(":");continue}else if(l==="%"){if(!s(o,n,r))break;s=Cp}else{o.push(l);continue}}return o.length&&(s===Cp?r.zone=o.join(""):i?n.push(o.join("")):n.push(Ls(o))),r.address=n.join(""),r}function xp(e){if(EI(e,":")<2)return{host:e,isIPV6:!1};let t=AI(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function EI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function PI(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 NI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},OI=/[@/?#:]/g,DI=/[@/?#]/g;function Vp(e,t){let r=t?DI:OI;return r.lastIndex=0,e.replace(r,n=>NI[n])}function SI(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 a=o.toUpperCase(),i=String.fromCharCode(parseInt(a,16));t&&Lp(i)?r+=i:r+="%"+a,n+=2;continue}}r+=e[n]}return r}function jI(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(),a=String.fromCharCode(parseInt(o,16));a!=="."&&Lp(a)?t+=a:t+="%"+o,r+=2;continue}}kI(e[r])?t+=e[r]:t+=escape(e[r])}return t}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)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function CI(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:RI,recomposeAuthority:CI,reescapeHostDelimiters:Vp,normalizePercentEncoding:SI,normalizePathEncoding:jI,escapePreservingEscapes:$I,removeDotSegments:PI,isIPv4:Tp,isUUID:bI,normalizeIPv6:xp,stringArrayToHexStripped:Ls}});var zp=E((RN,Bp)=>{"use strict";var{isUUID:TI}=xs(),LI=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,xI=["http","https","ws","wss","urn","urn:uuid"];function VI(e){return xI.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 MI(e){return e.secure=Vs(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function UI(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 FI(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(LI);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}`,a=Ms(o);e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function qI(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}`,a=Ms(o);a&&(e=a.serialize(e,t));let i=e,s=e.nss;return i.path=`${n||t.nid}:${s}`,t.skipEscape=!0,i}function BI(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!TI(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function zI(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var qp={scheme:"http",domainHost:!0,parse:Up,serialize:Fp},JI={scheme:"https",domainHost:qp.domainHost,parse:Up,serialize:Fp},ca={scheme:"ws",domainHost:!0,parse:MI,serialize:UI},GI={scheme:"wss",domainHost:ca.domainHost,parse:ca.parse,serialize:ca.serialize},WI={scheme:"urn",parse:FI,serialize:qI,skipNormalize:!0},KI={scheme:"urn:uuid",parse:BI,serialize:zI,skipNormalize:!0},la={http:qp,https:JI,ws:ca,wss:GI,urn:WI,"urn:uuid":KI};Object.setPrototypeOf(la,null);function Ms(e){return e&&(la[e]||la[e.toLowerCase()])||void 0}Bp.exports={wsIsSecure:Vs,SCHEMES:la,isValidSchemeName:VI,getSchemeHandler:Ms}});var Yp=E((_N,ua)=>{"use strict";var{normalizeIPv6:YI,removeDotSegments:Gn,recomposeAuthority:HI,normalizePercentEncoding:XI,normalizePathEncoding:ZI,escapePreservingEscapes:QI,reescapeHostDelimiters:ev,isIPv4:tv,nonSimpleDomain:rv}=xs(),{SCHEMES:nv,getSchemeHandler:Gp}=zp();function ov(e,t){return typeof e=="string"?e=pv(e,t):typeof e=="object"&&(e=pa(wr(e,t),t)),e}function av(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:a}=da(e,n),{parsed:i,malformedAuthorityOrPort:s}=da(t,n);if(a||s)throw new Error(o.error||i.error||"URI is malformed.");let c=Wp(o,i,n,!0);return n.skipEscape=!0,wr(c,n)}function Wp(e,t,r,n){let o={};return n||(e=pa(wr(e,r),r),t=pa(wr(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 iv(e,t,r){let n=Jp(e,r),o=Jp(t,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function wr(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=[],a=Gp(n.scheme||r.scheme);a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=XI(r.path):(r.path=QI(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let i=HI(r);if(i!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(i),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Gn(s)),i===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 sv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,cv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,lv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function dv(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 da(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,a=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let i=e.match(cv);i!==null&&i[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let s=e.match(lv);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(sv);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=dv(n,c);if(l!==void 0&&(n.error=n.error||l,o=!0),n.host)if(tv(n.host)===!1){let f=YI(n.host);n.host=f.host.toLowerCase(),a=f.isIPV6}else a=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=Gp(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&a===!1&&rv(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=ev(unescape(n.host),a))),n.path&&(n.path=ZI(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 pa(e,t){return da(e,t).parsed}function pv(e,t){return Kp(e,t).normalized}function Kp(e,t){let{parsed:r,malformedAuthorityOrPort:n}=da(e,t);return{normalized:n?e:wr(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 wr(e,t)}var Us={SCHEMES:nv,normalize:ov,resolve:av,resolveComponent:Wp,equal:iv,serialize:wr,parse:pa};ua.exports=Us;ua.exports.default=Us;ua.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 au=E(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.CodeGen=_e.Name=_e.nil=_e.stringify=_e.str=_e._=_e.KeywordCxt=void 0;var uv=Bn();Object.defineProperty(_e,"KeywordCxt",{enumerable:!0,get:function(){return uv.KeywordCxt}});var nn=x();Object.defineProperty(_e,"_",{enumerable:!0,get:function(){return nn._}});Object.defineProperty(_e,"str",{enumerable:!0,get:function(){return nn.str}});Object.defineProperty(_e,"stringify",{enumerable:!0,get:function(){return nn.stringify}});Object.defineProperty(_e,"nil",{enumerable:!0,get:function(){return nn.nil}});Object.defineProperty(_e,"Name",{enumerable:!0,get:function(){return nn.Name}});Object.defineProperty(_e,"CodeGen",{enumerable:!0,get:function(){return nn.CodeGen}});var fv=ia(),ru=zn(),mv=gs(),Wn=Jn(),gv=x(),Kn=Un(),fa=Mn(),Bs=q(),Zp=$p(),hv=Xp(),nu=(e,t)=>new RegExp(e,t);nu.code="new RegExp";var yv=["removeAdditional","useDefaults","coerceTypes"],wv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Iv={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."},vv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Qp=200;function bv(e){var t,r,n,o,a,i,s,c,l,d,p,f,u,m,g,h,w,_,v,A,I,R,D,C,ce;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,H=P===!0||P===void 0?1:P||0,ae=(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:hv.default;return{strictSchema:(i=(a=e.strictSchema)!==null&&a!==void 0?a:$)!==null&&i!==void 0?i:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:H,regExp:ae}:{optimize:H,regExp:ae},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:(v=e.inlineRefs)!==null&&v!==void 0?v:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(D=e.validateFormats)!==null&&D!==void 0?D:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(ce=e.int32range)!==null&&ce!==void 0?ce:!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,...bv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new gv.ValueScope({scope:{},prefixes:wv,es5:r,lines:n}),this.logger=Pv(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,mv.getRules)(),eu.call(this,Iv,t,"NOT SUPPORTED"),eu.call(this,vv,t,"DEPRECATED","warn"),this._metaOpts=Av.call(this),t.formats&&Rv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&_v.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),kv.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 a.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||i.call(this,f)}async function a(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function i(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),i.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await a.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let i of t)this.addSchema(i,void 0,n,o);return this}let a;if(typeof t=="object"){let{schemaId:i}=this.opts;if(a=t[i],a!==void 0&&typeof a!="string")throw new Error(`schema ${i} must be string`)}return r=(0,Kn.normalizeId)(r||a),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 a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}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(Ov.call(this,n,r),!r)return(0,Bs.eachItem)(n,a=>qs.call(this,a)),this;Sv.call(this,r);let o={...r,type:(0,fa.getJSONTypes)(r.type),schemaType:(0,fa.getJSONTypes)(r.schemaType)};return(0,Bs.eachItem)(n,o.type.length===0?a=>qs.call(this,a,o):a=>o.type.forEach(i=>qs.call(this,a,o,i))),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(a=>a.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,a)=>o+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let a=o.split("/").slice(1),i=t;for(let s of a)i=i[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=i[s];l&&d&&(i[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,a=this.opts.addUsedSchema){let i,{schemaId:s}=this.opts;if(typeof t=="object")i=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)(i||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),a&&!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=fv.default;Yn.MissingRefError=ru.default;_e.default=Yn;function eu(e,t,r,n="error"){for(let o in e){let a=o;a in t&&this.logger[n](`${r}: option ${o}. ${e[a]}`)}}function tu(e){return e=(0,Kn.normalizeId)(e),this.schemas[e]||this.refs[e]}function kv(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function Rv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function _v(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function Av(){let e={...this.opts};for(let t of yv)delete e[t];return e}var Ev={log(){},warn(){},error(){}};function Pv(e){if(e===!1)return Ev;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 Nv=/^[a-z_$][a-z0-9_$:-]*$/i;function Ov(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(!Nv.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:a}=this,i=o?a.post:a.rules.find(({type:c})=>c===r);if(i||(i={type:r,rules:[]},a.rules.push(i)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,fa.getJSONTypes)(t.type),schemaType:(0,fa.getJSONTypes)(t.schemaType)}};t.before?Dv.call(this,i,s,t.before):i.rules.push(s),a.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 Sv(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=ou(t)),e.validateSchema=this.compile(t,!0))}var jv={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function ou(e){return{anyOf:[e,jv]}}});var iu=E(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});var $v={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};zs.default=$v});var ha=E(Ir=>{"use strict";Object.defineProperty(Ir,"__esModule",{value:!0});Ir.callRef=Ir.getValidate=void 0;var Cv=zn(),su=at(),We=x(),on=ot(),cu=Jn(),ma=q(),Tv={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:a,validateName:i,opts:s,self:c}=n,{root:l}=a;if((r==="#"||r==="#/")&&o===l.baseId)return p();let d=cu.resolveRef.call(c,l,o,r);if(d===void 0)throw new Cv.default(n.opts.uriResolver,o,r);if(d instanceof cu.SchemaEnv)return f(d);return u(d);function p(){if(a===l)return ga(e,i,a,a.$async);let m=t.scopeValue("root",{ref:l});return ga(e,(0,We._)`${m}.validate`,l,l.$async)}function f(m){let g=lu(e,m);ga(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`}Ir.getValidate=lu;function ga(e,t,r,n){let{gen:o,it:a}=e,{allErrors:i,schemaEnv:s,opts:c}=a,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),i||o.assign(m,!0)},g=>{o.if((0,We._)`!(${g} instanceof ${a.ValidationError})`,()=>o.throw(g)),f(g),i||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(!a.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(a.props=ma.mergeEvaluated.props(o,h.props,a.props));else{let w=o.var("props",(0,We._)`${m}.evaluated.props`);a.props=ma.mergeEvaluated.props(o,w,a.props,We.Name)}if(a.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(a.items=ma.mergeEvaluated.items(o,h.items,a.items));else{let w=o.var("items",(0,We._)`${m}.evaluated.items`);a.items=ma.mergeEvaluated.items(o,w,a.items,We.Name)}}}Ir.callRef=ga;Ir.default=Tv});var du=E(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var Lv=iu(),xv=ha(),Vv=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Lv.default,xv.default];Js.default=Vv});var pu=E(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});var ya=x(),Zt=ya.operators,wa={maximum:{okStr:"<=",ok:Zt.LTE,fail:Zt.GT},minimum:{okStr:">=",ok:Zt.GTE,fail:Zt.LT},exclusiveMaximum:{okStr:"<",ok:Zt.LT,fail:Zt.GTE},exclusiveMinimum:{okStr:">",ok:Zt.GT,fail:Zt.LTE}},Mv={message:({keyword:e,schemaCode:t})=>(0,ya.str)`must be ${wa[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,ya._)`{comparison: ${wa[e].okStr}, limit: ${t}}`},Uv={keyword:Object.keys(wa),type:"number",schemaType:"number",$data:!0,error:Mv,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,ya._)`${r} ${wa[t].fail} ${n} || isNaN(${r})`)}};Gs.default=Uv});var uu=E(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});var Hn=x(),Fv={message:({schemaCode:e})=>(0,Hn.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Hn._)`{multipleOf: ${e}}`},qv={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Fv,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,a=o.opts.multipleOfPrecision,i=t.let("res"),s=a?(0,Hn._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${a}`:(0,Hn._)`${i} !== parseInt(${i})`;e.fail$data((0,Hn._)`(${n} === 0 || (${i} = ${r}/${n}, ${s}))`)}};Ws.default=qv});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 vr=x(),Bv=q(),zv=mu(),Jv={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,vr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,vr._)`{limit: ${e}}`},Gv={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Jv,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,a=t==="maxLength"?vr.operators.GT:vr.operators.LT,i=o.opts.unicode===!1?(0,vr._)`${r}.length`:(0,vr._)`${(0,Bv.useFunc)(e.gen,zv.default)}(${r})`;e.fail$data((0,vr._)`${i} ${a} ${n}`)}};Ys.default=Gv});var hu=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Wv=at(),Kv=q(),an=x(),Yv={message:({schemaCode:e})=>(0,an.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,an._)`{pattern: ${e}}`},Hv={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Yv,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:a,it:i}=e,s=i.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=i.opts.code,l=c.code==="new RegExp"?(0,an._)`new RegExp`:(0,Kv.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,an._)`${l}(${a}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,an._)`!${d}`)}else{let c=(0,Wv.usePattern)(e,o);e.fail$data((0,an._)`!${c}.test(${r})`)}}};Hs.default=Hv});var yu=E(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});var Xn=x(),Xv={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}}`},Zv={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Xv,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=Zv});var wu=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Zn=at(),Qn=x(),Qv=q(),eb={message:({params:{missingProperty:e}})=>(0,Qn.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Qn._)`{missingProperty: ${e}}`},tb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:eb,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:a,it:i}=e,{opts:s}=i;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(i.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=i.schemaEnv.baseId+i.errSchemaPath,w=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,Qv.checkStrictMode)(i,w,i.opts.strictRequired)}}function l(){if(c||a)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||a){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=tb});var Iu=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var eo=x(),rb={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}}`},nb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:rb,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=nb});var Ia=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(),Ae=x(),ob=q(),ab=Ia(),ib={message:({params:{i:e,j:t}})=>(0,Ae.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ae._)`{i: ${e}, j: ${t}}`},sb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ib,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:a,schemaCode:i,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),l=a.items?(0,tc.getSchemaTypes)(a.items):[];e.block$data(c,d,(0,Ae._)`${i} === false`),e.ok(c);function d(){let m=t.let("i",(0,Ae._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ae._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let h=t.name("item"),w=(0,tc.checkDataTypes)(l,h,s.opts.strictNumbers,tc.DataType.Wrong),_=t.const("indices",(0,Ae._)`{}`);t.for((0,Ae._)`;${m}--;`,()=>{t.let(h,(0,Ae._)`${r}[${m}]`),t.if(w,(0,Ae._)`continue`),l.length>1&&t.if((0,Ae._)`typeof ${h} == "string"`,(0,Ae._)`${h} += "_"`),t.if((0,Ae._)`typeof ${_}[${h}] == "number"`,()=>{t.assign(g,(0,Ae._)`${_}[${h}]`),e.error(),t.assign(c,!1).break()}).code((0,Ae._)`${_}[${h}] = ${m}`)})}function u(m,g){let h=(0,ob.useFunc)(t,ab.default),w=t.name("outer");t.label(w).for((0,Ae._)`;${m}--;`,()=>t.for((0,Ae._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ae._)`${h}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};rc.default=sb});var ku=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var nc=x(),cb=q(),lb=Ia(),db={message:"must be equal to constant",params:({schemaCode:e})=>(0,nc._)`{allowedValue: ${e}}`},pb={keyword:"const",$data:!0,error:db,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,nc._)`!${(0,cb.useFunc)(t,lb.default)}(${r}, ${o})`):e.fail((0,nc._)`${a} !== ${r}`)}};oc.default=pb});var Ru=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var to=x(),ub=q(),fb=Ia(),mb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,to._)`{allowedValues: ${e}}`},gb={keyword:"enum",schemaType:"array",$data:!0,error:mb,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:a,it:i}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=i.opts.loopEnum,c,l=()=>c??(c=(0,ub.useFunc)(t,fb.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",a);d=(0,to.or)(...o.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",a,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}`}}};ac.default=gb});var _u=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var hb=pu(),yb=uu(),wb=gu(),Ib=hu(),vb=yu(),bb=wu(),kb=Iu(),Rb=bu(),_b=ku(),Ab=Ru(),Eb=[hb.default,yb.default,wb.default,Ib.default,vb.default,bb.default,kb.default,Rb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},_b.default,Ab.default];ic.default=Eb});var cc=E(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.validateAdditionalItems=void 0;var br=x(),sc=q(),Pb={message:({params:{len:e}})=>(0,br.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,br._)`{limit: ${e}}`},Nb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Pb,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:a,it:i}=e;i.items=!0;let s=r.const("len",(0,br._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,br._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,sc.alwaysValidSchema)(i,n)){let l=r.var("valid",(0,br._)`${s} <= ${t.length}`);r.if((0,br.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:a,dataProp:d,dataPropType:sc.Type.Num},l),i.allErrors||r.if((0,br.not)(l),()=>r.break())})}}ro.validateAdditionalItems=Au;ro.default=Nb});var lc=E(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.validateTuple=void 0;var Eu=x(),va=q(),Ob=at(),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,va.alwaysValidSchema)(r,t)&&e.ok((0,Ob.validateArray)(e))}};function Pu(e,t,r=e.schema){let{gen:n,parentSchema:o,data:a,keyword:i,it:s}=e;d(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=va.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Eu._)`${a}.length`);r.forEach((p,f)=>{(0,va.alwaysValidSchema)(s,p)||(n.if((0,Eu._)`${l} > ${f}`,()=>e.subschema({keyword:i,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=`"${i}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,va.checkStrictMode)(s,h,f.strictTuples)}}}no.validateTuple=Pu;no.default=Db});var Nu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var Sb=lc(),jb={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Sb.validateTuple)(e,"items")};dc.default=jb});var Du=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var Ou=x(),$b=q(),Cb=at(),Tb=cc(),Lb={message:({params:{len:e}})=>(0,Ou.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ou._)`{limit: ${e}}`},xb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Lb,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,$b.alwaysValidSchema)(n,t)&&(o?(0,Tb.validateAdditionalItems)(e,o):e.ok((0,Cb.validateArray)(e)))}};pc.default=xb});var Su=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var st=x(),ba=q(),Vb={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}}`},Mb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Vb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:a}=e,i,s,{minContains:c,maxContains:l}=n;a.opts.next?(i=c===void 0?1:c,s=l):i=1;let d=t.const("len",(0,st._)`${o}.length`);if(e.setParams({min:i,max:s}),s===void 0&&i===0){(0,ba.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&i>s){(0,ba.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,ba.alwaysValidSchema)(a,r)){let g=(0,st._)`${d} >= ${i}`;s!==void 0&&(g=(0,st._)`${g} && ${d} <= ${s}`),e.pass(g);return}a.items=!0;let p=t.name("valid");s===void 0&&i===1?u(p,()=>t.if(p,()=>t.break())):i===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:ba.Type.Num,compositeRule:!0},g),h()})}function m(g){t.code((0,st._)`${g}++`),s===void 0?t.if((0,st._)`${g} >= ${i}`,()=>t.assign(p,!0).break()):(t.if((0,st._)`${g} > ${s}`,()=>t.assign(p,!1).break()),i===1?t.assign(p,!0):t.if((0,st._)`${g} >= ${i}`,()=>t.assign(p,!0)))}}};uc.default=Mb});var ka=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.validateSchemaDeps=Nt.validatePropertyDeps=Nt.error=void 0;var fc=x(),Ub=q(),oo=at();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 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
|
+
|| (${a} == "string" && ${o} && ${o} == +${o})`).assign(s,(0,V._)`+${o}`);return;case"integer":n.elseIf((0,V._)`${a} === "boolean" || ${o} === null
|
|
4
|
+
|| (${a} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(s,(0,V._)`+${o}`);return;case"boolean":n.elseIf((0,V._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(s,!1).elseIf((0,V._)`${o} === "true" || ${o} === 1`).assign(s,!0);return;case"null":n.elseIf((0,V._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(s,null);return;case"array":n.elseIf((0,V._)`${a} === "string" || ${a} === "number"
|
|
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},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${t},
|
|
8
|
-
deps: ${r}}`};var Fb={keyword:"dependencies",type:"object",schemaType:"object",error:Nt.error,code(e){let[t,r]=qb(e);ju(e,t),$u(e,r)}};function qb({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 a=r.let("missing");for(let i in t){let s=t[i];if(s.length===0)continue;let c=(0,oo.propertyInData)(r,n,i,o.opts.ownProperties);e.setParams({property:i,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,a)})`),(0,oo.reportMissingProp)(e,a),r.else())}}Nt.validatePropertyDeps=ju;function $u(e,t=e.schema){let{gen:r,data:n,keyword:o,it:a}=e,i=r.name("valid");for(let s in t)(0,Ub.alwaysValidSchema)(a,t[s])||(r.if((0,oo.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},i);e.mergeValidEvaluated(c,i)},()=>r.var(i,!0)),e.ok(i))}Nt.validateSchemaDeps=$u;Nt.default=Fb});var Tu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Cu=x(),Bb=q(),zb={message:"property name must be valid",params:({params:e})=>(0,Cu._)`{propertyName: ${e.propertyName}}`},Jb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:zb,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,Bb.alwaysValidSchema)(o,r))return;let a=t.name("valid");t.forIn("key",n,i=>{e.setParams({propertyName:i}),e.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},a),t.if((0,Cu.not)(a),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(a)}};mc.default=Jb});var hc=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Ra=at(),yt=x(),Gb=ot(),_a=q(),Wb={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},Kb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Wb,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:a,it:i}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=i;if(i.props=!0,c.removeAdditional!=="all"&&(0,_a.alwaysValidSchema)(i,r))return;let l=(0,Ra.allSchemaProperties)(n.properties),d=(0,Ra.allSchemaProperties)(n.patternProperties);p(),e.ok((0,yt._)`${a} === ${Gb.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,_a.schemaRefOrVal)(i,n.properties,"properties");w=(0,Ra.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,Ra.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,_a.alwaysValidSchema)(i,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 v={keyword:"additionalProperties",dataProp:h,dataPropType:_a.Type.Str};_===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};gc.default=Kb});var Vu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var Yb=Bn(),Lu=at(),yc=q(),xu=hc(),Hb={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&xu.default.code(new Yb.KeywordCxt(a,xu.default,"additionalProperties"));let i=(0,Lu.allSchemaProperties)(r);for(let p of i)a.definedProperties.add(p);a.opts.unevaluated&&i.length&&a.props!==!0&&(a.props=yc.mergeEvaluated.props(t,(0,yc.toHash)(i),a.props));let s=i.filter(p=>!(0,yc.alwaysValidSchema)(a,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,Lu.propertyInData)(t,o,p,a.opts.ownProperties)),d(p),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return a.opts.useDefaults&&!a.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};wc.default=Hb});var qu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Mu=at(),Aa=x(),Uu=q(),Fu=q(),Xb={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:a}=e,{opts:i}=a,s=(0,Mu.allSchemaProperties)(r),c=s.filter(g=>(0,Uu.alwaysValidSchema)(a,r[g]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let l=i.strictSchema&&!i.allowMatchingProperties&&o.properties,d=t.name("valid");a.props!==!0&&!(a.props instanceof Aa.Name)&&(a.props=(0,Fu.evaluatedPropsToName)(t,a.props));let{props:p}=a;f();function f(){for(let g of s)l&&u(g),a.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let h in l)new RegExp(g).test(h)&&(0,Uu.checkStrictMode)(a,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,h=>{t.if((0,Aa._)`${(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),a.opts.unevaluated&&p!==!0?t.assign((0,Aa._)`${p}[${h}]`,!0):!w&&!a.allErrors&&t.if((0,Aa.not)(d),()=>t.break())})})}}};Ic.default=Xb});var Bu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Zb=q(),Qb={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Zb.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=Qb});var zu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var ek=at(),tk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:ek.validateUnion,error:{message:"must match a schema in anyOf"}};bc.default=tk});var Ju=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Ea=x(),rk=q(),nk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ea._)`{passingSchemas: ${e.passing}}`},ok={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:nk,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 a=r,i=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(i,()=>e.reset(),()=>e.error(!0));function l(){a.forEach((d,p)=>{let f;(0,rk.alwaysValidSchema)(o,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Ea._)`${c} && ${i}`).assign(i,!1).assign(s,(0,Ea._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(i,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Ea.Name)})})}}};kc.default=ok});var Gu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ak=q(),ik={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((a,i)=>{if((0,ak.alwaysValidSchema)(n,a))return;let s=e.subschema({keyword:"allOf",schemaProp:i},o);e.ok(o),e.mergeEvaluated(s)})}};Rc.default=ik});var Yu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var Pa=x(),Ku=q(),sk={message:({params:e})=>(0,Pa.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Pa._)`{failingKeyword: ${e.ifClause}}`},ck={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:sk,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"),a=Wu(n,"else");if(!o&&!a)return;let i=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&a){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,Pa.not)(s),l("else"));e.pass(i,()=>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(i,s),e.mergeValidEvaluated(f,i),p?t.assign(p,(0,Pa._)`${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=ck});var Hu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var lk=q(),dk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,lk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Ac.default=dk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var pk=cc(),uk=Nu(),fk=lc(),mk=Du(),gk=Su(),hk=ka(),yk=Tu(),wk=hc(),Ik=Vu(),vk=qu(),bk=Bu(),kk=zu(),Rk=Ju(),_k=Gu(),Ak=Yu(),Ek=Hu();function Pk(e=!1){let t=[bk.default,kk.default,Rk.default,_k.default,Ak.default,Ek.default,yk.default,wk.default,hk.default,Ik.default,vk.default];return e?t.push(uk.default,mk.default):t.push(pk.default,fk.default),t.push(gk.default),t}Ec.default=Pk});var Nc=E(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.dynamicAnchor=void 0;var Pc=x(),Nk=ot(),Zu=Jn(),Ok=ha(),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._)`${Nk.default.dynamicAnchors}${(0,Pc.getProperty)(t)}`,a=n.errSchemaPath==="#"?n.validateName:Sk(e);r.if((0,Pc._)`!${o}`,()=>r.assign(o,a))}ao.dynamicAnchor=Qu;function Sk(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:o,baseId:a,localRefs:i,meta:s}=t.root,{schemaId:c}=n.opts,l=new Zu.SchemaEnv({schema:r,schemaId:c,root:o,baseId:a,localRefs:i,meta:s});return Zu.compileSchema.call(n,l),(0,Ok.getValidate)(e,l)}ao.default=Dk});var Oc=E(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.dynamicRef=void 0;var ef=x(),jk=ot(),tf=ha(),$k={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 a=t.slice(1);if(o.allErrors)i();else{let c=r.let("valid",!1);i(c),e.ok(c)}function i(c){if(o.schemaEnv.root.dynamicAnchors[a]){let l=r.let("_v",(0,ef._)`${jk.default.dynamicAnchors}${(0,ef.getProperty)(a)}`);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)}}io.dynamicRef=rf;io.default=$k});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var Ck=Nc(),Tk=q(),Lk={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,Ck.dynamicAnchor)(e,""):(0,Tk.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Dc.default=Lk});var of=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var xk=Oc(),Vk={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,xk.dynamicRef)(e,e.schema)};Sc.default=Vk});var af=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var Mk=Nc(),Uk=Oc(),Fk=nf(),qk=of(),Bk=[Mk.default,Uk.default,Fk.default,qk.default];jc.default=Bk});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var sf=ka(),zk={keyword:"dependentRequired",type:"object",schemaType:"object",error:sf.error,code:e=>(0,sf.validatePropertyDeps)(e)};$c.default=zk});var lf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var Jk=ka(),Gk={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,Jk.validateSchemaDeps)(e)};Cc.default=Gk});var df=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Wk=q(),Kk={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,Wk.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Tc.default=Kk});var pf=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var Yk=cf(),Hk=lf(),Xk=df(),Zk=[Yk.default,Hk.default,Xk.default];Lc.default=Zk});var ff=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var Qt=x(),uf=q(),Qk=ot(),eR={message:"must NOT have unevaluated properties",params:({params:e})=>(0,Qt._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},tR={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:eR,code(e){let{gen:t,schema:r,data:n,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:i,props:s}=a;s instanceof Qt.Name?t.if((0,Qt._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),a.props=!0,e.ok((0,Qt._)`${o} === ${Qk.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),i||t.break();return}if(!(0,uf.alwaysValidSchema)(a,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:uf.Type.Str},f),i||t.if((0,Qt.not)(f),()=>t.break())}}function l(p,f){return(0,Qt._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,Qt._)`${f} !== ${m}`);return(0,Qt.and)(...u)}}};xc.default=tR});var gf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var kr=x(),mf=q(),rR={message:({params:{len:e}})=>(0,kr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,kr._)`{limit: ${e}}`},nR={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:rR,code(e){let{gen:t,schema:r,data:n,it:o}=e,a=o.items||0;if(a===!0)return;let i=t.const("len",(0,kr._)`${n}.length`);if(r===!1)e.setParams({len:a}),e.fail((0,kr._)`${i} > ${a}`);else if(typeof r=="object"&&!(0,mf.alwaysValidSchema)(o,r)){let c=t.var("valid",(0,kr._)`${i} <= ${a}`);t.if((0,kr.not)(c),()=>s(c,a)),e.ok(c)}o.items=!0;function s(c,l){t.forRange("i",l,i,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:mf.Type.Num},c),o.allErrors||t.if((0,kr.not)(c),()=>t.break())})}}};Vc.default=nR});var hf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var oR=ff(),aR=gf(),iR=[oR.default,aR.default];Mc.default=iR});var yf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var ye=x(),sR={message:({schemaCode:e})=>(0,ye.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ye._)`{format: ${e}}`},cR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:sR,code(e,t){let{gen:r,data:n,$data:o,schema:a,schemaCode:i,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,ye._)`${m}[${i}]`),h=r.let("fType"),w=r.let("format");r.if((0,ye._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,ye._)`${g}.type || "string"`).assign(w,(0,ye._)`${g}.validate`),()=>r.assign(h,(0,ye._)`"string"`).assign(w,g)),e.fail$data((0,ye.or)(_(),v()));function _(){return c.strictSchema===!1?ye.nil:(0,ye._)`${i} && !${w}`}function v(){let A=d.$async?(0,ye._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ye._)`${w}(${n})`,I=(0,ye._)`(typeof ${w} == "function" ? ${A} : ${w}.test(${n}))`;return(0,ye._)`${w} && ${w} !== true && ${h} === ${t} && !${I}`}}function u(){let m=p.formats[a];if(!m){_();return}if(m===!0)return;let[g,h,w]=v(m);g===t&&e.pass(A());function _(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${a}" ignored in schema at path "${l}"`}}function v(I){let R=I instanceof RegExp?(0,ye.regexpCode)(I):c.code.formats?(0,ye._)`${c.code.formats}${(0,ye.getProperty)(a)}`:void 0,D=r.scopeValue("formats",{key:a,ref:I,code:R});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,ye._)`${D}.validate`]:["string",I,D]}function A(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,ye._)`await ${w}(${n})`}return typeof h=="function"?(0,ye._)`${w}(${n})`:(0,ye._)`${w}.test(${n})`}}}};Uc.default=cR});var wf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var lR=yf(),dR=[lR.default];Fc.default=dR});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 pR=du(),uR=_u(),fR=Xu(),mR=af(),gR=pf(),hR=hf(),yR=wf(),vf=If(),wR=[mR.default,pR.default,uR.default,(0,fR.default)(!0),yR.default,vf.metadataVocabulary,vf.contentVocabulary,gR.default,hR.default];qc.default=wR});var Rf=E(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.DiscrError=void 0;var kf;(function(e){e.Tag="tag",e.Mapping="mapping"})(kf||(Na.DiscrError=kf={}))});var Af=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var cn=x(),Bc=Rf(),_f=Jn(),IR=zn(),vR=q(),bR={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}}`},kR={keyword:"discriminator",type:"object",schemaType:"object",error:bR,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:a}=e,{oneOf:i}=o;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!i)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<i.length;A++){let I=i[A];if(I?.$ref&&!(0,vR.schemaHasRulesButRef)(I,a.self.RULES)){let D=I.$ref;if(I=_f.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,D),I instanceof _f.SchemaEnv&&(I=I.schema),I===void 0)throw new IR.default(a.opts.uriResolver,a.baseId,D)}let R=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);h=h&&(g||w(I)),_(R,A)}if(!h)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:A}){return Array.isArray(A)&&A.includes(s)}function _(A,I){if(A.const)v(A.const,I);else if(A.enum)for(let R of A.enum)v(R,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function v(A,I){if(typeof A!="string"||A in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[A]=I}}}};zc.default=kR});var Ef=E((_O,RR)=>{RR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var Pf=E((AO,_R)=>{_R.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((EO,AR)=>{AR.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var Of=E((PO,ER)=>{ER.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 Df=E((NO,PR)=>{PR.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 Sf=E((OO,NR)=>{NR.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((DO,OR)=>{OR.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((SO,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 SR=Ef(),jR=Pf(),$R=Nf(),CR=Of(),TR=Df(),LR=Sf(),xR=jf(),VR=$f(),MR=["/properties"];function UR(e){return[SR,jR,$R,CR,TR,t(this,LR),xR,t(this,VR)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,MR):n}}Jc.default=UR});var Rr=E((de,Wc)=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.MissingRefError=de.ValidationError=de.CodeGen=de.Name=de.nil=de.stringify=de.str=de._=de.KeywordCxt=de.Ajv2020=void 0;var FR=au(),qR=bf(),BR=Af(),zR=Cf(),Gc="https://json-schema.org/draft/2020-12/schema",ln=class extends FR.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),qR.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(BR.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(zR.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)}};de.Ajv2020=ln;Wc.exports=de=ln;Wc.exports.Ajv2020=ln;Object.defineProperty(de,"__esModule",{value:!0});de.default=ln;var JR=Bn();Object.defineProperty(de,"KeywordCxt",{enumerable:!0,get:function(){return JR.KeywordCxt}});var dn=x();Object.defineProperty(de,"_",{enumerable:!0,get:function(){return dn._}});Object.defineProperty(de,"str",{enumerable:!0,get:function(){return dn.str}});Object.defineProperty(de,"stringify",{enumerable:!0,get:function(){return dn.stringify}});Object.defineProperty(de,"nil",{enumerable:!0,get:function(){return dn.nil}});Object.defineProperty(de,"Name",{enumerable:!0,get:function(){return dn.Name}});Object.defineProperty(de,"CodeGen",{enumerable:!0,get:function(){return dn.CodeGen}});var GR=ia();Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return GR.default}});var WR=zn();Object.defineProperty(de,"MissingRefError",{enumerable:!0,get:function(){return WR.default}})});import je from"node:process";import Dt from"node:path";import{spawnSync as X0}from"node:child_process";var Z="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",At="^sha256:[a-f0-9]{64}$";import{constants as Wa}from"node:fs";import{lstat as R_,mkdir as In,open as Xf,readFile as go,realpath as Dr,rename as __,unlink as dl}from"node:fs/promises";import{randomUUID as pl}from"node:crypto";import ke from"node:path";var Tf=Kr(Rr(),1);var Ee={type:"string",pattern:At},KR={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:Ee,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:Z}}}},compatibility: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:Ee,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:Z},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id: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:Ee,deliveryReceiptId:Ee,usage:{enum:["runtime","development"]}}},{$id:CO,...Vf}=Hc,YR={...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}}},HR={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[Vf,(()=>{let{$id:e,...t}=YR;return t})()]},Oa={$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:Ee,stderrDigest:Ee,startedAt:Kc,completedAt:Kc,projectStateDigest:Ee,runtime:Lf}},XR={...Oa,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Oa.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Oa.properties,evidenceId:Ee,capabilityId:{type:"string",pattern:Z},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:Ee}},ZR={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:Z},version:{type:"string",minLength:1,maxLength:128},integrity:Ee,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:Ee,projectStateDigest:Ee,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:Ee,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:Z}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:Z}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:Ee},committedAt: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:KR,revision:Ee}}},sources:{type:"array",minItems:1,maxItems:128,items:xf},packageJsonDigest:Ee,lockfileDigest:Ee}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},so=new Tf.Ajv2020({allErrors:!0,strict:!0});so.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Sa={capabilityBundleRelease:so.compile(HR),verificationResult:so.compile(Oa),adoptionEvidence:so.compile(XR),projectAdoptionLock:so.compile(ZR)},Da=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ja(e,t,r){if(!t(r))throw new Da(e,t.errors??[]);return r}var Mf=e=>{let t=ja("capabilityBundleRelease",Sa.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Da("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="",a=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(o)<=0||a.has(c))&&r(),o=c,a.add(c)}let i=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(i.length!==n.length||i.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},Uf=e=>ja("verificationResult",Sa.verificationResult,e),co=e=>ja("adoptionEvidence",Sa.adoptionEvidence,e),qe=e=>ja("projectAdoptionLock",Sa.projectAdoptionLock,e);import{lstat as s_,readFile as el,realpath as tl}from"node:fs/promises";import un from"node:path";import{createHash as QR}from"node:crypto";function y(e){return`sha256:${QR("sha256").update(e).digest("hex")}`}function b(e){return Array.isArray(e)?`[${e.map(b).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${b(n)}`).join(",")}}`:JSON.stringify(e)}var 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 $a(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,a=e.split(n).length-1;if(o!==1||a!==1)throw new Ot("Managed region markers are unavailable or ambiguous");let i=e.indexOf(r)+r.length,s=e.indexOf(n,i),c=e.slice(i,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ot("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function qf(e){let{begin:t,end:r}=Ff(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Ot("Managed regions require LF newlines");let n=e.source.split(t).length-1,o=e.source.split(r).length-1;if(n>1||o>1||n!==o)throw new Ot("Managed region markers are ambiguous");let
|
|
10
|
-
${
|
|
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 qf(e){let{begin:t,end:r}=Ff(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Ot("Managed regions require LF newlines");let n=e.source.split(t).length-1,o=e.source.split(r).length-1;if(n>1||o>1||n!==o)throw new Ot("Managed region markers are ambiguous");let i=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(i))throw new Ot("Managed regions cannot contain nested Dyyto markers");let a=`${t}
|
|
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)}${i}${e.source.slice(c)}`}import Bf from"node:path";var er=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ca(e){if(e.length===0||Bf.posix.isAbsolute(e)||Bf.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new er("Asset path must be a normalized project-relative POSIX path",e)}function e_(e,t){Ca(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 er("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 Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new er("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new er("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ca(s.path),t.has(s.path))throw new er("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 er("Proposed change paths must be unique",s.path);return r.add(s.path),e_(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}},a=y(b(o)),i={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:o.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:a,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...i,planId:y(b(i))}}function Ta(e){return y(b(e))}var zf=Kr(Rr(),1);var Q={type:"string",pattern:At},pn={type:"string",pattern:Z},Er={type:"string",minLength:1,maxLength:128},Ar={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},t_={$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:Er,integrity:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Ar,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"]}}}}}},r_={$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:Er}},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:Er}}}}},n_={$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:Er,integrity:Q,appliedPlanId:Q,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Ar,digest:Q}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},o_={$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:Er,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:Er,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:Er,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:Ar,unitImporterId:Ar,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:Ar,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:Ar,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"]}}}}}},i_={$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:Ar,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}},_r=new zf.Ajv2020({allErrors:!0,strict:!0});_r.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Zc={capabilityRelease:_r.compile(t_),projectManifest:_r.compile(r_),projectLock:_r.compile(n_),evidence:_r.compile(o_),changePlan:_r.compile(a_),transactionJournal:_r.compile(i_)},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 X=e=>Qc("projectManifest",Zc.projectManifest,e);var tr=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 La(e){if(e.currentLock!==void 0){let a=await xa({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:a.plan.state==="conflicted"?"drifted":"adopted",operations:a.plan.operations}}let t=await tl(un.resolve(e.projectRoot)),r=[],n=0,o=0;for(let a of e.release.release.assets){let i=await rl(t,a.path);i.exists&&(n+=1),i.digest===a.digest&&(o+=1),r.push({path:a.path,kind:"create",ownership:a.ownership,desiredDigest:a.ownership==="seed-file"&&i.digest?i.digest:a.digest,disposition:i.exists?a.ownership==="seed-file"||i.digest===a.digest?"noop":"conflict":"ready",...i.exists&&i.digest!==a.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 s_(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 Pr(e){let t=await tl(un.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let o=await rl(t,n.path),a=o.exists&&o.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&o.exists)try{a=y($a(await el(un.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{a=!1}if(!a)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:y(b(r))}}async function xa(e){let t=X(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let 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 a=await tl(un.resolve(e.projectRoot)),i=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await rl(a,d.path);if(i.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(a,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Pe({action:"adopt",capability:l,changes:s,observedAssets:i,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as l_,lstat as Ba,mkdir as fn,open as Kf,readFile as za,realpath as d_,rename as Fa,rm as nl,unlink as Nr}from"node:fs/promises";import{constants as Ma}from"node:fs";import{homedir as p_}from"node:os";import W from"node:path";import{randomUUID as hn}from"node:crypto";function c_(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",c_(r)),r}}async function Gf(e,t,r,n,o,a){if(e?.sink===void 0)return;let i=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:i.toString(),result:o,...a===void 0?{}:{errorCategory:a}},c=Object.freeze({...s,eventId:y(b(s))});try{await e.sink(c)}catch{}}var Yf=Symbol("prepared-transaction"),rr=new Map,u_=5*1024*1024,f_=25*1024*1024,Wf=8,qa=class extends Error{};async function Va(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new qa("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 Ct(e){try{return await Ba(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,Ma.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,Ma.O_CREAT|Ma.O_EXCL|Ma.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()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await po(o,
|
|
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 Ua(e){try{let t=JSON.parse(await za(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 y_(e,t,r){return{[Yf]:!0,projectRoot:e,plan:t,transactionId:r}}async function w_(e,t){g_(e.plan,e.approvedPlanId,e.now);let r=await Ja(e.projectRoot),n=h_(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 a=lo(r,e.plan.planId);await fn(a.platformDirectory,{recursive:!0,mode:448}),await mn(r,".dyyto");let i=hn();await sl(a.lock,{schemaVersion:1,transactionId:i,planId:e.plan.planId,startedAt:e.now,nonce:hn()},wt(t?.durabilityTrace,"prepare","lock",`${i}:prepare-lock`));let s=e.limits?.maxFileBytes??u_,c=e.limits?.maxTransactionBytes??f_,l=0,d=[],p=[],f=!1;try{if(await Va(t,"lock-created"),await Ct(a.transactionDirectory))throw new j("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await fn(a.preimages,{recursive:!0,mode:448}),await fn(a.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 v=W.join(a.preimages,`${m}.bin`);await po(v,w.bytes,384,wt(t?.durabilityTrace,"prepare","preimage",`${i}:preimage:${m}`)),p.push(m),await Va(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(a.preimages,wt(t?.durabilityTrace,"prepare","directory",`${i}:preimages-directory-batch`));for(let m of p)await Va(t,"preimage-persisted",m)}let u=al({schemaVersion:1,transactionId:i,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:y(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await ol(a.journal,u,wt(t?.durabilityTrace,"prepare","journal",`${i}:journal-prepared`)),rr.set(i,{desiredContents:e.desiredContents,journal:u}),await Va(t,"journal-prepared"),y_(r,e.plan,i)}catch(u){if(u instanceof qa)throw rr.delete(i),new j("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await nl(a.transactionDirectory,{recursive:!0,force:!0}),await Nr(a.lock),await lt(a.platformDirectory)}catch{throw new j("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function or(e){return w_(e)}async function I_(e,t,r,n){return nr(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 v_(e,t,r,n,o,a){let i=wn(e,n.path);await mn(e,n.path);let s=await gn(i);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(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await ct({context:yn(f),operation:"rename",run:()=>Fa(i,p)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(i),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(i),{recursive:!0}),await mn(e,n.path);let l=W.join(W.dirname(i),`.dyyto-${r}-${n.index}.tmp`),d=wt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await po(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await a?.onCheckpoint?.("temporary-file-synced",n.index),await ct({context:yn(d),operation:"rename",bytes:c.byteLength,run:()=>Fa(l,i)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[W.dirname(i)]}async function b_(e,t){let r=rr.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 nr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let a=new Map;for(let i=0;i<o.operations.length;i+=Wf){let s=o.operations.slice(i,i+Wf),c=await Promise.allSettled(s.map(d=>v_(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)a.has(p)||a.set(p,wt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[i,s]of a)await lt(i,s);for(let i of o.operations)await t?.onCheckpoint?.("target-renamed",i.index),i.status="applied",await t?.onCheckpoint?.("operation-applied",i.index);o=await nr(n.journal,{...o,operations:o.operations,updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let i of o.operations)await t?.onCheckpoint?.("operation-journaled",i.index);return o=await nr(n.journal,{...o,state:"applied",updatedAt:new Date().toISOString()},wt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Nr(n.lock),await lt(n.platformDirectory),rr.delete(e.transactionId),Or(o)}catch(a){throw o=await I_(n,o,a instanceof j?a.operationIndex:void 0,t?.durabilityTrace),rr.set(e.transactionId,{desiredContents:r.desiredContents,journal:o}),new j("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function ar(e){return b_(e)}function Or(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Tt(e){let t=await Ja(e.projectRoot),r=lo(t,e.planId);if(!await Ct(r.journal)){if(!await Ct(r.lock))return null;let n=await Ua(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Or(await il(r.journal))}async function k_(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 Fa(n,e),await l_(e,r&511),await lt(W.dirname(e))}async function Hf(e){let t=await Ja(e.projectRoot),r=lo(t,e.planId);if(!await Ct(r.journal)){if(!await Ct(r.lock))throw new j("JOURNAL_CORRUPTED","No transaction record exists");let o=await Ua(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 a=al({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,a),await Nr(r.lock),await lt(r.platformDirectory),Or(a)}let n=await il(r.journal);if(n.state==="recovered")return Or(n);if(n.state==="applied"){for(let o of n.operations){let a=await gn(wn(t,o.path));if(!(o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest))throw new j("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",o.path,o.index)}if(await Ct(r.lock)){let o=await Ua(r.lock);if(o.transactionId!==n.transactionId||o.planId!==n.planId)throw new j("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Nr(r.lock),await lt(r.platformDirectory)}return rr.delete(n.transactionId),Or(n)}if(n.projectRootDigest!==y(t))throw new j("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Ct(r.lock)){let o=await Ua(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 nr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let o of[...n.operations].reverse()){if(o.status==="restored")continue;let a=wn(t,o.path);if(await mn(t,o.path),o.kind!=="remove"){let s=W.join(W.dirname(a),`.dyyto-${n.transactionId}-${o.index}.tmp`);if(await Ct(s)){if((await gn(s))?.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Transaction temporary file was modified externally",o.path,o.index);await Nr(s),await lt(W.dirname(s))}}let i=await gn(a);if(o.before.kind==="absent"){if(i!==void 0){if(i.digest!==o.desiredDigest)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);await Nr(a),await lt(W.dirname(a))}}else if(i?.digest!==o.before.digest){let s=W.join(r.quarantine,`${o.index}.bin`),c=i?.digest===o.desiredDigest,l=o.kind==="remove"&&i===void 0&&await Ct(s),d=e.approvedConflicts?.find(f=>f.path===o.path&&f.currentDigest===i?.digest);if(!c&&!l&&!d)throw new j("RECOVERY_CONFLICT","Recovery would overwrite external content",o.path,o.index);let p=await za(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 k_(a,p,o.before.mode),l&&await nl(s,{force:!0})}o.status="restored",n=await nr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",o.index)}return n=await nr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Nr(r.lock),await lt(r.platformDirectory),rr.delete(n.transactionId),Or(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 Ja(e.projectRoot),r=lo(t,e.planId),n=await il(r.journal);if(n.state==="recovered")return Or(n);if(n.state!=="applied")throw new j("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let o;for(let a of n.operations){let i=await gn(wn(t,a.path)),s=a.kind==="remove"?i===void 0:i?.digest===a.desiredDigest,c=a.before.kind==="absent"?i===void 0:i?.digest===a.before.digest;if(!s&&!c){o=a;break}}if(await sl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:hn()}),n=await nr(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 rr.set(n.transactionId,{desiredContents:new Map,journal:n}),uo({projectRoot:t,planId:e.planId,now:e.now})}var we=class extends Error{code;constructor(t,r){super(r),this.code=t}},fo=class extends Error{};function ho(e,t){let r=ke.join(e,".dyyto"),n=ke.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:ke.join(r,"evidence"),lockFile:ke.join(r,"project-lock.json"),transactionLock:ke.join(r,"metadata-lock.json"),transactionDirectory:n,journal:ke.join(n,"journal.json")}}async function ir(e){try{return await R_(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Lt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function Ya(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function Ha(e,t){let r=await Xf(e,Wa.O_RDONLY);try{await ct({context:Ya(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function ul(e,t,r){let n=await Xf(e,Wa.O_CREAT|Wa.O_EXCL|Wa.O_WRONLY,384);try{await ct({context:Ya(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await ct({context:Ya(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function mo(e,t,r){let n=ke.dirname(e),o=ke.join(n,`.tmp-${pl()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await ul(o,
|
|
18
|
-
`),r),await
|
|
19
|
-
`),r),await
|
|
20
|
-
`)}async function
|
|
21
|
-
`)}
|
|
22
|
-
`)}catch(a){if(a.code!=="EEXIST")throw a;let i=tr(JSON.parse(await vl(o,"utf8")));if(yo(i),b(i)!==b(r))throw new be("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return o}function am(e){return b({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Vt(e){let t=await xt(me.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await xt(me.resolve(e.transactionRoot)),n=tr(e.plan);yo(n);let o=me.join(t,".dyyto","plans"),a=await Xa(o).catch(s=>{if(s.code==="ENOENT")return[];throw s}),i=[];for(let s of a.filter(c=>c.endsWith(".json")).sort()){let c=tr(JSON.parse(await vl(me.join(o,s),"utf8")));yo(c),!await Sr(me.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&am(c)===am(n)&&i.push(c)}return i.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),i[0]!==void 0?i[0]:(await x_({projectRoot:t,plan:n}),n)}async function jr(e){let t=await xt(me.resolve(e.projectRoot)),r=me.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=tr(JSON.parse(await vl(r,"utf8")));if(yo(n),n.planId!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new be("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function Qa(e,t=[],r,n=[]){let o=await xt(me.resolve(e)),a=r===void 0?o:await xt(me.resolve(r)),i=me.join(o,".dyyto","plans"),s=await Xa(i).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 Tt({projectRoot:a,planId:p}),m=await Sr(me.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=V_(c);if(l===void 0)throw new be("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function V_(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 xt(me.resolve(e)),r=me.join(t,".dyyto","plans"),n=await Xa(r).catch(a=>{if(a.code==="ENOENT")return[];throw a}),o=[];for(let a of n.filter(i=>i.endsWith(".json")).sort())o.push(await jr({projectRoot:t,planId:a.slice(0,-5)}));return o}import{lstat as dm,readFile as M_,readdir as U_,realpath as F_}from"node:fs/promises";import Ne from"node:path";import{homedir as pm}from"node:os";var dt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function um(e){let t=Ne.resolve(e),r=await dm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ne.parse(t).root||t===Ne.resolve(pm()))throw new dt("WORKSPACE_PATH_UNSAFE");let n=await F_(t);if(n!==t)throw new dt("WORKSPACE_PATH_UNSAFE");return n}async function $r(e){let t=await dm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new dt("WORKSPACE_PATH_UNSAFE");return M_(e)}}function fm(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 a=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(o);if(a){r.push(a[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 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 ei(e){let t=await um(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 fm(r.toString("utf8"))){let a=[];if(o.endsWith("/*")&&!o.slice(0,-2).includes("*")){let i=o.slice(0,-2),s=await U_(Ne.join(t,...i.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&a.push(`${i}/${c.name}`)}else if(!o.includes("*"))a.push(o);else throw new dt("WORKSPACE_MANIFEST_INVALID");for(let i of a){let s=await $r(Ne.join(t,...i.split("/"),"package.json"));s&&n.set(i,s)}}return Object.freeze([...n].sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>Object.freeze({relativeRoot:o,bytes:a})))}async function Mt(e){let t=await um(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(pm());){let a=await $r(Ne.join(r,"pnpm-workspace.yaml"));if(a){if(n)throw new dt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:a};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("../")||fm(n.manifest.toString("utf8")).filter(a=>q_(a,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 mm=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 Tt({projectRoot:e,planId:r.planId});if(n!==null&&mm.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 B_(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 gm(e){let t=await B_(e);if(t.kind!=="none")return t;let r=await Mt(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 a;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;a=c.planId}catch{return t}let i=await Tt({projectRoot:r.transactionRoot,planId:a});if(!i||!mm.has(i.state))return t;let s=await uo({projectRoot:r.transactionRoot,planId:a,now:e.now});return{kind:"filesystem",planId:a,state:s.state}}import{lstat as z_,readFile as Rl,realpath as hm}from"node:fs/promises";import wo from"node:path";var J_=new Set(["MIT","Apache-2.0","UNLICENSED"]),G_=new Set(["public","restricted","private"]),W_=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,K_=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function Y_(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 cr(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,a=o==="1.1.0"||o==="1.2.0"||t==="react-component-library",i=a?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==i.length||n.some((f,u)=>f!==i[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||!W_.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!K_.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!J_.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!G_.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...a?{repository:Y_(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)}
|
|
13
|
+
`}${a}
|
|
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 po(o,i,384,r),await ct({context:yn(r),operation:"rename",bytes:i.byteLength,run:()=>Fi(o,e)}),await lt(n,r)}function il(e){return{...e,journalDigest:y(k(e))}}function g_(e){let t;try{t=Jf(e)}catch{throw new j("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==y(k(n)))throw new j("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let o=new Set;for(let[i,a]of t.operations.entries()){if(a.index!==i||o.has(a.path)||a.kind==="create"&&a.before.kind!=="absent"||a.kind!=="create"&&a.before.kind!=="present"||a.kind!=="remove"&&a.desiredDigest===void 0||a.kind==="remove"&&a.desiredDigest!==void 0)throw new j("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");o.add(a.path)}return t}async function al(e){try{return g_(JSON.parse(await zi(e,"utf8")))}catch(t){throw t instanceof j?t:new j("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function or(e,t,r){let{journalDigest:n,...o}=t,i=il(o);return await ol(e,i,r),i}async function Ji(e){let t=W.resolve(e),r=W.parse(t);if(t===r.root||t===W.resolve(u_()))throw new j("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await Bi(t);if(!n.isDirectory()||n.isSymbolicLink())throw new j("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let o=await p_(t);if(o!==t)throw new j("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return o}function wn(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 j("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=W.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${W.sep}`))throw new j("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function mn(e,t){let r=t.split("/"),n=e;for(let o of r){n=W.join(n,o);try{if((await Bi(n)).isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(i){if(i.code==="ENOENT")return;throw i}}}async function gn(e){try{let t=await Bi(e);if(!t.isFile()||t.isSymbolicLink())throw new j("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await zi(e);return{bytes:r,digest:y(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function h_(e,t,r){rr(e);let{planId:n,...o}=e;if(Ti(o)!==e.planId)throw new j("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new j("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new j("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new j("PLAN_EXPIRED","Plan has expired")}function y_(e){let t=e.operations.filter(r=>r.disposition==="ready");for(let r of t)if(!((r.ownership==="owned-file"||r.ownership==="seed-file")&&["create","replace","remove"].includes(r.kind)||r.ownership==="managed-region"&&r.kind==="merge"&&r.regionId!==void 0))throw new j("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function sl(e,t,r){try{await po(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
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 ul(o,i,r),await ct({context:Yi(r),operation:"rename",bytes:i.byteLength,run:()=>A_(o,e)}),await Hi(n,r)}function fl(e){return{...e,journalDigest:y(k(e))}}async function Gi(e,t,r){let{journalDigest:n,...o}=t,i=fl(o);return await mo(e,i,r),i}async function Zf(e){try{let t=JSON.parse(await go(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(co),qe(t.lock),t}catch{throw new Ie("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function ml(e,t,r){try{await ul(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
18
|
+
`),r),await Hi(Re.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Ie("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Qf(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:y(k(r))}}function em(e,t,r){let n=t.map(Uf),o=e.verifiers.map(a=>a.id).sort(),i=n.map(a=>a.verifierId).sort();if(o.length!==i.length||o.some((a,s)=>a!==i[s]))throw new Ie("VERIFICATION_INCOMPLETE","Verification results do not cover the release verifier set");for(let a of n){if(a.commandId!==a.verifierId||a.result!=="passed"||a.exitCode!==0)throw new Ie("VERIFICATION_FAILED",`Verifier ${a.verifierId} did not pass`);if(a.projectStateDigest!==r)throw new Ie("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function E_(e,t,r){let n=Re.join(e,`${t.evidenceId}.json`);if(await sr(n)){let o=co(JSON.parse(await go(n,"utf8")));if(k(o)!==k(t))throw new Ie("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await ul(n,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
19
|
+
`),r),await Hi(e,r)}async function P_(e,t,r,n){if(await sr(e)){let o=qe(JSON.parse(await go(e,"utf8")));if(k(o)===k(t))return;if(r===void 0||y(k(o))!==r)throw new Ie("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await mo(e,t,n);return}await mo(e,t,n)}async function Ki(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new fo("Simulated metadata crash",{cause:r})}}async function gl(e,t,r){let n=ho(e,t.planId),o=t;try{for(let i of o.evidence)await E_(n.evidenceDirectory,i,Vt(r?.durabilityTrace,"evidence",`${o.transactionId}:evidence`));return o=await Gi(n.journal,{...o,state:"evidence-written",updatedAt:new Date().toISOString()},Vt(r?.durabilityTrace,"journal",`${o.transactionId}:evidence-written`)),await Ki(r,"evidence-written"),await P_(n.lockFile,o.lock,o.previousLockDigest,Vt(r?.durabilityTrace,"lock",`${o.transactionId}:project-lock`)),o=await Gi(n.journal,{...o,state:"lock-written",updatedAt:new Date().toISOString()},Vt(r?.durabilityTrace,"journal",`${o.transactionId}:lock-written`)),await Ki(r,"lock-written"),o=await Gi(n.journal,{...o,state:"committed",updatedAt:new Date().toISOString()},Vt(r?.durabilityTrace,"journal",`${o.transactionId}:committed`)),await Ki(r,"committed"),await dl(n.transactionLock),await Hi(n.platformDirectory,Vt(r?.durabilityTrace,"directory",`${o.transactionId}:unlock`)),o.lock}catch(i){if(i instanceof fo)throw new Ie("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await Gi(n.journal,{...o,state:"recovery-required",updatedAt:new Date().toISOString()},Vt(r?.durabilityTrace,"journal",`${o.transactionId}:recovery-required`))}catch{}throw i}}async function N_(e){let t=await Dr(Re.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Dr(Re.resolve(e.transactionRoot));if((await xt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ie("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let o;try{o=await Nr({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 a=em(e.release,e.verificationResults,o.projectStateDigest).map(m=>Qf(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:o.projectStateDigest,assets:o.assets,evidenceIds:a.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};qe(d);let p=ho(t,e.plan.planId);if(await In(p.platformDirectory,{recursive:!0,mode:448}),await In(p.evidenceDirectory,{recursive:!0,mode:448}),await sr(p.lockFile)&&e.previousLock===void 0){let m=qe(JSON.parse(await go(p.lockFile,"utf8")));if(k(m)===k(d))return m;throw new Ie("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=pl();if(await ml(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},Vt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await sr(p.transactionDirectory))throw await dl(p.transactionLock),new Ie("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await In(p.transactionDirectory,{recursive:!0,mode:448});let u=fl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:a,lock:d,...e.previousLock===void 0?{}:{previousLockDigest:y(k(qe(e.previousLock)))}});await mo(p.journal,u,Vt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await Ki(e.hooks,"journal-prepared")}catch(m){throw m instanceof fo?new Ie("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return gl(t,u,e.hooks)}async function hl(e){return N_(e)}async function yl(e){let t=await Dr(Re.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Dr(Re.resolve(e.transactionRoot));if((await xt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ie("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let o=e.previousLock.capabilities.find(h=>h.capabilityId===e.release.capabilityId&&h.version===e.release.version);if(o===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!==o),a=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(a)?[]:[[h.path.slice(a.length),h.desiredDigest]])),c=e.expectedAssets??i.flatMap(h=>h.assets).map(h=>({...h,digest:s.get(h.path)??h.digest})),l=await Nr({projectRoot:t,expectedAssets:c}),p=em(e.release,e.verificationResults,l.projectStateDigest).map(h=>Qf(e.release,h)),f={schemaVersion:i.some(h=>h.packageAdoption!==void 0)?2:1,capabilities:i};qe(f);let u=ho(t,e.plan.planId);await In(u.platformDirectory,{recursive:!0,mode:448}),await In(u.evidenceDirectory,{recursive:!0,mode:448});let m=pl();await ml(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await In(u.transactionDirectory,{recursive:!1,mode:448});let g=fl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:y(k(qe(e.previousLock)))});return await mo(u.journal,g),gl(t,g)}async function wl(e){let t=await Dr(Re.resolve(e.projectRoot)),r=ho(t,e.planId),n=await Zf(r.journal);return n.state==="committed"?(await sr(r.transactionLock)&&await dl(r.transactionLock),n.lock):(await sr(r.transactionLock)||await ml(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),gl(t,n))}async function Il(e){let t=await Dr(Re.resolve(e.projectRoot)),r=ho(t,e.planId);if(!await sr(r.journal))return null;let n=await Zf(r.journal);return{planId:n.planId,state:n.state}}async function Le(e){let t=await Dr(Re.resolve(e)),r=Re.join(t,".dyyto","project-lock.json");return await sr(r)?qe(JSON.parse(await go(r,"utf8"))):null}import{lstat as nm,readFile as tm,realpath as rm}from"node:fs/promises";import cr from"node:path";var It=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function om(e){return y(k(e))}async function O_(e,t){let r=cr.join(e,"assets",...t.split("/"));try{return await nm(r),r}catch(n){if(n.code!=="ENOENT"||cr.posix.basename(t)!==".gitignore")throw n}return cr.join(e,"assets",...cr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function ve(e){let t=await rm(cr.resolve(e)),r;try{r=Mf(JSON.parse(await tm(cr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof It?c:new It("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...o}=r;if(om(o)!==n)throw new It("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let i=new Map,a=new Set,s="";for(let c of r.assets){try{Ci(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"||a.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);a.add(c.path),s=c.path;let l=await O_(t,c.path),d=await rm(l),p=cr.join(t,"assets");if(!d.startsWith(`${p}${cr.sep}`))throw new It("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await nm(l);if(!f.isFile()||f.isSymbolicLink())throw new It("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await tm(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 S_,open as am,lstat as St,mkdir as sm,readFile as vl,readdir as Xi,realpath as Dt,rm as D_,unlink as j_}from"node:fs/promises";import ae from"node:path";var he=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},$_={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function C_(){return new TextEncoder().encode(`${JSON.stringify($_,null,2)}
|
|
20
|
+
`)}async function T_(e,t=!1){let r=ae.resolve(e),n=await St(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new he("TARGET_INVALID","Workspace target must be a real existing directory");let o=await Dt(r);for(let i of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let a=await St(ae.join(o,i)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new he("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${i}`)}if(await St(ae.join(o,"project-capabilities.json")).catch(()=>null))throw new he("MANIFEST_EXISTS","Project manifest already exists");return o}async function L_(e,t){let r=ae.resolve(e),n=await St(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new he("TARGET_INVALID","Project target must be a real existing directory");let o=await Dt(r);for(let i of t){let a=await St(ae.join(o,i)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new he("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${i}`)}if(await St(ae.join(o,"project-capabilities.json")).catch(()=>null))throw new he("MANIFEST_EXISTS","Project manifest already exists");return o}async function cm(e){let t=await L_(e.projectRoot,e.requiredMarkers??["package.json"]),r=Y(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
|
|
21
|
+
`),o=r.capabilities[0],i=ke({action:"adopt",capability:{schemaVersion:1,capabilityId:o.capabilityId,version:o.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 lm(e){let t=await T_(e.projectRoot,e.documentationOnly===!0),r=C_(),n=ke({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 x_(e){let t=await am(e,"r");try{await t.sync()}finally{await t.close()}}async function dm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await am(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await S_(r,e),await j_(r),await x_(ae.dirname(e))}catch(o){throw await D_(r,{force:!0}),o}}async function V_(e){let t=ae.resolve(e);try{let r=await St(t);if(!r.isDirectory()||r.isSymbolicLink())throw new he("TARGET_INVALID","Project target must be a real directory");if((await Xi(t)).length!==0)throw new he("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=ae.dirname(t),o=await St(n).catch(()=>null);if(o===null||!o.isDirectory()||o.isSymbolicLink())throw new he("TARGET_INVALID","Project target parent must be a real directory");await sm(t)}return Dt(t)}async function Zi(e){let t=Y(e.manifest),r=await V_(e.projectRoot),n=ae.join(r,"project-capabilities.json");try{await dm(n,`${JSON.stringify(t,null,2)}
|
|
22
|
+
`)}catch(o){throw o.code==="EEXIST"?new he("MANIFEST_EXISTS","Project manifest already exists"):o}return{projectRoot:r,manifest:t}}function yo(e){let{planId:t,...r}=e;if(Ti(r)!==e.planId)throw new he("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function M_(e){let t=await Dt(ae.resolve(e.projectRoot)),r=rr(e.plan);yo(r);let n=ae.join(t,".dyyto","plans");await sm(n,{recursive:!0,mode:448});let o=ae.join(n,`${r.planId}.json`);try{await dm(o,`${k(r)}
|
|
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)}
|
|
23
24
|
`)}function Al(e){return Buffer.from(`${JSON.stringify({name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,repository:{type:"git",url:e.repository},type:"module",sideEffects:["**/*.css"],files:["dist"],main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./style.css":"./dist/style.css"},engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"vite build && tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run","verify:bundle":"vite build && tsc -p tsconfig.build.json && node tooling/verify-bundle.mjs",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm verify:bundle",prepack:"corepack pnpm check"},peerDependencies:{react:">=19.0.0 <20","react-dom":">=19.0.0 <20"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",react:"19.2.8","react-dom":"19.2.8",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}}},null,2)}
|
|
24
|
-
`)}function
|
|
25
|
-
`)}function
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
28
|
-
`)}async function
|
|
29
|
-
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:a,kind:"replace",ownership:"owned-file",baseDigest:y(i),desiredDigest:y(s)});let l=await Promise.all(c.map(u=>ym(o,u.path))),d=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==a).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[a,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function 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 wm(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 Im(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 vm(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 bm(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 km(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 Rm(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 _m(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 bA,readFile as gi,realpath as kA}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}$/,eA=/^sha512-[A-Za-z0-9+/]{86}==$/,tA=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,Em=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,rA=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Am=/^[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 nA(e){if(!xr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!Em.test(e.registryId)||!Am.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&&!Am.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(!nA(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(b(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 oA(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||!oA(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(b(n))})}function Pm(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,...a}=r;if(Nl(a,t).bindingDigest!==o)throw new vt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function aA(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return xr(e,t)&&Em.test(e.registryId)&&Lr.test(e.registryConfigRevision)&&rA.test(e.packageName)&&tA.test(e.version)&&eA.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(!aA(e))throw new vt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:y(b(t))})}function Nm(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 Re=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Eo(e){return y(b(e))}var Dl=/^sha256:[a-f0-9]{64}$/u,iA=/^sha512-[A-Za-z0-9+/]{86}==$/u,sA=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ti=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,cA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,lA=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ri(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((o,a)=>o===n[a])}function Om(e){return y(b(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(i=>({...i})),packageFacts:e.packageFacts.map(i=>({...i})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},o={...n,jobId:Om(n),desiredLockfile:t};Sm(o);let a={...o,importerFacts:Object.freeze(o.importerFacts.map(i=>Object.freeze({...i}))),packageFacts:Object.freeze(o.packageFacts.map(i=>Object.freeze({...i}))),cacheObservation:Object.freeze({...o.cacheObservation})};return Object.freeze(a)}function Sm(e){if(!ri(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new Re("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(o=>Dl.test(o)))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!ti.test(e.workerReleaseId)||!ti.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||y(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(!ri(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(o=>!ri(o,["importerId","manifestDigest","preimageDigest","desiredDigest"])||o.importerId!=="."&&!ti.test(o.importerId)||![o.manifestDigest,o.preimageDigest,o.desiredDigest].every(a=>Dl.test(a))))throw new Re("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(o=>!ri(o,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!lA.test(o.identity)||!cA.test(o.packageName)||!ti.test(o.registryId)||!sA.test(o.version)||!iA.test(o.integrity)||typeof o.managed!="boolean"||!Dl.test(o.edgesDigest)))throw new Re("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 Re("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(Om(n)!==e.jobId)throw new Re("RESOLUTION_EVIDENCE_INVALID")}function Sl(e,t){if(Sm(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Re("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Re("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let o=e.importerFacts.find(a=>a.importerId===n.importerId);if(!o||o.preimageDigest!==n.preimageDigest||o.desiredDigest!==n.preimageDigest)throw new Re("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let o=e.packageFacts.filter(a=>a.managed&&a.packageName===n.packageName);if(o.length!==1||o[0].registryId!==n.registryId||o[0].version!==n.version||o[0].integrity!==n.integrity)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Re("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Y=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function ai(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:a})=>({registryId:r,registryConfigRevision:n,bindingDigest:o,expiresAt:a})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var ni=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,jm=/^(?: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 Ut(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function pt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function oi(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/")&&(!ni.test(n)||jm.test(n)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}var dA=["dependencies","devDependencies","optionalDependencies"];function ii(e,t){let r=[];for(let n of dA)for(let[o,a]of Object.entries(pt(e[n]))){if(t.has(o)){if(!ni.test(a))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(a))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:o,specifier:a})}return r.sort((n,o)=>`${n.section}:${n.packageName}`.localeCompare(`${o.section}:${o.packageName}`))}function $l(e){let t=Ut(e.packageJson);oi(t);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])),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)}
|
|
30
|
-
`)}function Po(e){let t=
|
|
31
|
-
`)}function Cl(e){let t=
|
|
32
|
-
`)}function Tl(e){let t=
|
|
33
|
-
`)}function
|
|
34
|
-
`),c=e.endpointBindings.filter(p=>n.some(f=>f.registryId===p.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(o)},{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:
|
|
35
|
-
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(h=>h.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.projectManifest),desiredDigest:y(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:y(e.packageJson),desiredDigest:y(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:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(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:i,preservedDependencies:ii(Ut(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 si(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 Y("PACKAGE_SOURCE_NOT_FOUND");let a=Ut(e.packageJson),i=e.desiredBasePackageJson??e.packageJson,s=Ut(i),c="topology"in e,l=c?ii(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||oi(a),c||oi(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 Y("PACKAGE_SOURCE_NOT_FOUND");let D=Pm(I,R);return[D.registryId,D]})),f=new Map(e.receipts.map(I=>{let R=Nm(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?Sl(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:i})),sources:e.release.packageSources.map(({registryId:I,packageName:R,version:D,integrity:C})=>({registryId:I,packageName:R,version:D,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:i})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:R})=>({importerId:I,preimageDigest:R})),managedSources:e.release.packageSources.map(({registryId:I,packageName:R,version:D,integrity:C})=>({registryId:I,packageName:R,version:D,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:D,integrity:C})=>({registryId:I,packageName:R,version:D,integrity:C}))}:e.lockResolution;if(h.lockfile.byteLength===0||h.packages.length!==e.release.packageSources.length)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${h.packages.length}/${e.release.packageSources.length}`)});let w=new Map(h.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let R=d.get(I.registryId),D=p.get(I.registryId),C=f.get(I.deliveryReceiptId),ce=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");if(!R||!D||Date.parse(D.expiresAt)<=Date.parse(e.expiresAt)||R.status!=="enabled"||!R.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!C||!ce||!$)throw new Y("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==R.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||ce.integrity!==I.integrity||ce.tarballDigest!==I.tarballDigest||ce.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Y("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!ni.test(I.version)||ce.lifecycleScripts.length>0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,H]of Object.entries(ce.dependencies)){let ae=m.get(P);if(P.startsWith("@aipt/")&&(!ae||ae.version!==H||!ni.test(H)))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${H}`)});if(jm.test(H))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?Po({release:e.release,packageJson:i}):$l({release:e.release,packageJson:i}),v={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:y(e.packageJson),desiredPackageJsonDigest:y(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:y(e.currentLockfile)}),desiredLockfileDigest:y(h.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,revision:R})=>Object.freeze({registryId:I,revision:R})).sort((I,R)=>I.registryId.localeCompare(R.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(R=>R.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:R,bindingDigest:D,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:R,bindingDigest:D,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(v));return Object.freeze({...v,planId:A,desiredPackageJson:_,desiredLockfile:h.lockfile})}function ci(e){return si(e,"production")}function li(e){return si(e,"development")}function di(e){return si(e,"production")}function pi(e){return si(e,"development")}function pA(e){let t=e.packageAdoption;if(t===void 0)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",o=e.operations.filter(({path:d})=>d===r),a=e.operations.filter(({path:d})=>d===n);if(o.length!==1||a.length!==1)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let i=o[0],s=a[0],c=i.kind==="replace"&&i.baseDigest===t.packageJsonPreimageDigest&&i.desiredDigest===t.desiredPackageJsonDigest&&i.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Tm(e){pA(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 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 Y("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Mm=Kr(Rr(),1);var Um=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],Fm="^[a-z0-9][a-z0-9._-]{0,127}$",Ll="^[A-Z][A-Z0-9_]{0,127}$",Lm="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",uA={$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:Fm},profile:{enum:Um}}},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:Lm}}},{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:Lm}}}]}}}},xm=new Mm.Ajv2020({allErrors:!0,strict:!0}).compile(uA),Vm=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,fA=/(?:^|_)(?: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 qm(e){let t=X(e),r=t.profile?.id;if(!Um.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(Fm,"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(!xm(e))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",xm.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 a of r.bindings){if(n.has(a.name))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${a.name}`);if(n.add(a.name),a.kind==="value"){if(Vm.test(a.name))throw new Xe("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${a.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!a.name.endsWith("_FILE"))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${a.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let i=a.kind==="secret-file"?"secrets/":"certs/";if(a.kind==="certificate-file"&&(Vm.test(a.name)||fA.test(a.name)))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=a.file.split("/");if(!a.file.startsWith(i)||s.some(c=>c===""||c==="."||c===".."))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5FC5\u987B\u4F4D\u4E8E ${i} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(a.file))throw new Xe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${a.file}`);o.add(a.file)}if(t!==void 0){let a=qm(t);if(r.application.id!==a.id||r.application.profile!==a.profile)throw new Xe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ui(e){let t=qm(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)}
|
|
36
|
-
`)}import{createHash as
|
|
37
|
-
`)}function hA(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new ve("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Gm(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new ve("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function yA(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let o=n.trim();if(!o||o.startsWith("#"))continue;let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o),i=a?.[1],s=a?.[2];if(!i||s===void 0||i in t)throw new ve("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[i]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function zm(e){return`sha256:${mA("sha256").update(e).digest("hex")}`}function wA(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function Jm(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 ve("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}async function IA(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 a=ge.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(a))throw new ve("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return ge.join(ge.basename(n),a,r)}}catch(o){if(o instanceof ve)throw o}n=ge.dirname(n)}return ge.join(t,r)}async function vA(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!ge.isAbsolute(n))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let a=await Vl(n).catch(()=>null);if(!a?.isFile()||a.isSymbolicLink()||a.nlink!==1||(a.mode&511&-385)!==0)throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let i=JSON.parse(await Vr(n,"utf8"));if(i.schemaVersion!==1||!Array.isArray(i.projects))throw new ve("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=i.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 ve("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return ge.join(o,await IA(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function mi({projectRoot:e,environment:t=process.env}){let r=await Bm(ge.resolve(e)),[n,o,a]=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"))]),i=JSON.parse(n.toString("utf8")),s=hA(JSON.parse(o.toString("utf8")),i),c=xl(JSON.parse(a.toString("utf8")),i),l=await vA(r,s.application.id,t);if(!l||!ge.isAbsolute(l))throw new ve("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Bm(l),p=await Vl(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new ve("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=ge.relative(r,d);if(f===""||!f.startsWith("..")&&!ge.isAbsolute(f))throw new ve("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=ge.join(d,".env");await Jm(u,"\u5E94\u7528.env",c.bindings.length===0);let m=yA(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:wA(C)});continue}if(m[h.name]!==h.file)throw new ve("APPLICATION_CONFIG_REFERENCE_CHANGED",`${h.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=ge.resolve(d,h.file),v=ge.relative(d,_);if(!v||v.startsWith("..")||ge.isAbsolute(v))throw new ve("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${h.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let A=await Jm(_,h.name,!h.required),I=await Vr(_),R=I.length>0,D;if(R&&h.kind==="certificate-file")try{let C=new gA(I);D={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new ve("APPLICATION_CERTIFICATE_INVALID",`${h.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:h.name,kind:h.kind,required:h.required,configured:R,source:"APP_CONFIG_DIR",display:R?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...R?{fingerprint:zm(I),updatedAt:A.mtime.toISOString()}:{},...D?{certificate:D}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:zm(a),entries:g}}var Mr="project-capabilities.json",Wm=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function RA(e,t){if(!Wm.test(e)||!Wm.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 _A(e,t){let r=No.join(e,...t.split("/"));try{let n=await bA(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 gi(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function hi(e,t){let r=X(e),n=t.release,o=n.assets.find(i=>i.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&o?.renderer?.startsWith("npm-package-json-")===!0)return _l(cr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&o?.renderer==="react-component-package-json-v1")return Al(cr(r,n.consumerProfile));let a=t.contents.get("package.json");if(a===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return a}async function Ml(e){let t=X(e.manifest),r=qe(e.currentLock),n=e.sourceRelease.release,o=e.targetRelease.release,a=t.capabilities.find(P=>P.capabilityId===n.capabilityId),i=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=o.capabilityId!==n.capabilityId&&o.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(a===void 0||i===void 0||a.capabilityId!==i.capabilityId||a.version!==i.version||n.capabilityId!==i.capabilityId||n.version!==i.version||n.integrity!==i.integrity||!s&&o.capabilityId!==i.capabilityId||o.consumerProfile!==i.consumerProfile||n.consumerProfile!==o.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&RA(o.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await kA(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",hi(l,e.targetRelease));for(let P of o.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,ui(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,fi(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 H=await gi(No.join(c,"package.json")),ae=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=ae.transactionRoot,u=ae.mode==="pnpm-shared-lockfile"?`${ae.unitRelativeRoot}/package.json`:"package.json",m=ae.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:H,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ft=ae.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?pi:di)({...rt,topology:{mode:ae.mode,unitRelativeRoot:ae.unitRelativeRoot,unitImporterId:ae.unitImporterId,lockfilePath:ae.lockfilePath,workspaceManifestPath:ae.workspaceManifestPath,workspaceManifestDigest:ae.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?li:ci)({...rt,lockResolution:e.packageSource.lockResolution});p=ai(ft),d.set("package.json",ft.desiredPackageJson),d.set(m,ft.desiredLockfile)}catch(ft){throw ft instanceof Y?new M("CONSUMER_PROFILE_UNSUPPORTED",ft.code):ft}}let g=new Map(i.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 H=d.get(P.path);if(H===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,y(H)]})),w=[...new Set([...g.keys(),...h.keys()])].sort(),_=[],v=[];for(let P of w){let H=await _A(c,P);_.push(H);let ae=g.get(P),rt=h.get(P),ft=o.assets.find(cy=>cy.path===P);if(ft?.ownership==="seed-file"&&H.exists&&H.digest!==void 0){h.set(P,H.digest),d.set(P,await gi(No.join(c,...P.split("/")))),v.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:H.digest,desiredDigest:H.digest});continue}if(ae===void 0){if(rt===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);v.push({path:P,kind:"create",ownership:ft?.ownership??"owned-file",desiredDigest:rt})}else rt===void 0?v.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ae}):v.push({path:P,kind:"replace",ownership:ft?.ownership??"owned-file",baseDigest:ae,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 H=d.get(m);_.push({path:m,exists:!0,digest:y(P)}),v.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:y(P),desiredDigest:y(H)})}let A=await gi(No.join(c,Mr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
38
|
-
`);_.push({path:Mr,exists:!0,digest:y(A)}),
|
|
39
|
-
`,"utf8"),await o.sync()}finally{await o.close()}try{await AA(n,e),await OA(n),await DA(r)}catch(a){throw await NA(n,{force:!0}),a}}async function Qm(e){let t=await kt(ue.resolve(e.projectRoot)),r=Ul(e.plan),n=ue.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Oo(n,r)}catch(o){if(o.code!=="EEXIST")throw o;if(b(Ul(JSON.parse(await bt(n,"utf8"))))!==b(r))throw new S("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Ft(e){if(!Oe(e.planId))throw new S("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=Ul(JSON.parse(await bt(ue.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new S("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function Jl(e){let t=await kt(ue.resolve(e.projectRoot)),r=Bl(e.receipt),n=await Ft({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let a=await kn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||a===null||r.npm.stageId!==a.stageId||r.npm.tarballDigest!==a.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new S("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let o=ue.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Oo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Bl(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return i}return r}async function bn(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=Bl(JSON.parse(await bt(ue.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function eg(e){let t=await kt(ue.resolve(e.projectRoot)),r=yi(e.record),n=await Ft({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let o=ue.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Oo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=yi(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return i}return r}async function tg(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=yi(JSON.parse(await bt(ue.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function rg(e){let t=await kt(ue.resolve(e.projectRoot)),r=ue.join(t,".dyyto","delivery","attempts"),n;try{n=await PA(r)}catch(o){if(o.code==="ENOENT")return null;throw o}for(let o of n.sort()){if(!o.endsWith(".json"))continue;let a=yi(JSON.parse(await bt(ue.join(r,o),"utf8")));if((await Ft({projectRoot:t,planId:a.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([kn({projectRoot:t,planId:a.planId}),bn({projectRoot:t,planId:a.planId})]);if(s===null&&c===null)return a}return null}async function ng(e){let t=await kt(ue.resolve(e.projectRoot)),r=Fl(e.record),n=await Ft({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let o=ue.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Oo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=Fl(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return i}return r}async function kn(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=Fl(JSON.parse(await bt(ue.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function og(e){let t=await kt(ue.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 S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let o=ue.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Oo(o,r)}catch(a){if(a.code!=="EEXIST")throw a;let i=ql(JSON.parse(await bt(o,"utf8")));if(b(i)!==b(r))throw new S("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return i}return r}async function ag(e){if(!Oe(e.planId))throw new S("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await kt(ue.resolve(e.projectRoot));try{let r=ql(JSON.parse(await bt(ue.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new S("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as Rg,readdir as gE}from"node:fs/promises";import Yl from"node:path";import{mkdir as Gl,open as ki,readFile as So,readdir as Wl,rename as Ri,rm as vg}from"node:fs/promises";import he from"node:path";var SA=44;var ig="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",jA=new Uint8Array(64),cg=new Uint8Array(128);for(let e=0;e<ig.length;e++){let t=ig.charCodeAt(e);jA[e]=t,cg[t]=e}function Do(e,t){let r=0,n=0,o=0;do{let i=e.next();o=cg[i],r|=(o&31)<<n,n+=5}while(o&32);let a=r&1;return r>>>=1,a&&(r=-2147483648|-r),t+r}function sg(e,t){return e.pos>=t?!1:e.peek()!==SA}var MS=1024*16;var $A=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 lg(e){let{length:t}=e,r=new $A(e),n=[],o=0,a=0,i=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(o=0;r.pos<l;){let u;o=Do(r,o),o<f&&(p=!1),f=o,sg(r,l)?(a=Do(r,a),i=Do(r,i),s=Do(r,s),sg(r,l)?(c=Do(r,c),u=[o,a,i,s,c]):u=[o,a,i,s]):u=[o],d.push(u),r.pos++}p||CA(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function CA(e){e.sort(TA)}function TA(e,t){return e[0]-t[0]}var LA=/^[\w+.-]+:\/\//,xA=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,VA=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function MA(e){return LA.test(e)}function UA(e){return e.startsWith("//")}function ug(e){return e.startsWith("/")}function FA(e){return e.startsWith("file:")}function dg(e){return/^[.?#]/.test(e)}function Ii(e){let t=xA.exec(e);return fg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function qA(e){let t=VA.exec(e),r=t[2];return fg("file:","",t[1]||"","",ug(r)?r:"/"+r,t[3]||"",t[4]||"")}function fg(e,t,r,n,o,a,i){return{scheme:e,user:t,host:r,port:n,path:o,query:a,hash:i,type:7}}function pg(e){if(UA(e)){let r=Ii("http:"+e);return r.scheme="",r.type=6,r}if(ug(e)){let r=Ii("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(FA(e))return qA(e);if(MA(e))return Ii(e);let t=Ii("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function BA(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function zA(e,t){mg(t,t.type),e.path==="/"?e.path=t.path:e.path=BA(t.path)+e.path}function mg(e,t){let r=t<=4,n=e.path.split("/"),o=1,a=0,i=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){i=!0;continue}if(i=!1,l!=="."){if(l===".."){a?(i=!0,a--,o--):r&&(n[o++]=l);continue}n[o++]=l,a++}}let s="";for(let c=1;c<o;c++)s+="/"+n[c];(!s||i&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function gg(e,t){if(!e&&!t)return"";let r=pg(e),n=r.type;if(t&&n!==7){let a=pg(t),i=a.type;switch(n){case 1:r.hash=a.hash;case 2:r.query=a.query;case 3:case 4:zA(r,a);case 5:r.user=a.user,r.host=a.host,r.port=a.port;case 6:r.scheme=a.scheme}i>n&&(n=i)}mg(r,n);let o=r.query+r.hash;switch(n){case 2:case 3:return o;case 4:{let a=r.path.slice(1);return a?dg(t||e)&&!dg(a)?"./"+a+o:a+o:o||"."}case 5:return r.path+o;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+o}}function JA(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function GA(e,t){let r=JA(e),n=t?t+"/":"";return o=>gg(n+(o||""),r)}var lr=0,WA=1,KA=2,YA=3,HA=4;function XA(e,t){let r=hg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=hg(e,n+1))e[n]=QA(e[n],t);return e}function hg(e,t){for(let r=t;r<e.length;r++)if(!ZA(e[r]))return r;return e.length}function ZA(e){for(let t=1;t<e.length;t++)if(e[t][lr]<e[t-1][lr])return!1;return!0}function QA(e,t){return t||(e=e.slice()),e.sort(eE)}function eE(e,t){return e[lr]-t[lr]}var bi=!1;function tE(e,t,r,n){for(;r<=n;){let o=r+(n-r>>1),a=e[o][lr]-t;if(a===0)return bi=!0,o;a<0?r=o+1:n=o-1}return bi=!1,r-1}function rE(e,t,r){for(let n=r+1;n<e.length&&e[n][lr]===t;r=n++);return r}function nE(e,t,r){for(let n=r-1;n>=0&&e[n][lr]===t;r=n--);return r}function oE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function aE(e,t,r,n){let{lastKey:o,lastNeedle:a,lastIndex:i}=r,s=0,c=e.length-1;if(n===o){if(t===a)return bi=i!==-1&&e[i][lr]===t,i;t>=a?s=i===-1?0:i:c=i}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=tE(e,t,s,c)}function iE(e){return typeof e=="string"?JSON.parse(e):e}var sE="`line` must be greater than 0 (lines start at line 1)",cE="`column` must be greater than or equal to 0 (columns start at column 0)",yg=-1,lE=1,wg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=iE(e),{version:o,file:a,names:i,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=o,this.file=a,this.names=i||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=GA(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=XA(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=oE(),this._bySources=void 0,this._bySourceMemos=void 0}};function dE(e){var t;return(t=e)._decoded||(t._decoded=lg(e._encoded))}function Ig(e,t){let{line:r,column:n,bias:o}=t;if(r--,r<0)throw new Error(sE);if(n<0)throw new Error(cE);let a=dE(e);if(r>=a.length)return vi(null,null,null,null);let i=a[r],s=pE(i,e._decodedMemo,r,n,o||lE);if(s===-1)return vi(null,null,null,null);let c=i[s];if(c.length===1)return vi(null,null,null,null);let{names:l,resolvedSources:d}=e;return vi(d[c[WA]],c[KA]+1,c[YA],c.length===5?l[c[HA]]:null)}function vi(e,t,r,n){return{source:e,line:t,column:r,name:n}}function pE(e,t,r,n,o){let a=aE(e,n,t,r);return bi?a=(o===yg?rE:nE)(e,n,a):o===yg&&a++,a===-1||a===e.length?-1:a}var oe=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Kl=/^sha256:[a-f0-9]{64}$/,bg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uE=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,_i=(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 kg(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=he.join(he.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Ft({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(he.join(he.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 fE(e){if(!jo(e)||!_i(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)||!_i(e.error,["type","message","frames"])||!_i(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!bg.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"||!uE.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)||!_i(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 mE(e,t,r="unknown"){let n=e.error.frames.map(i=>({file:Rn(i.file,2048),...i.line===void 0?{}:{line:i.line},...i.column===void 0?{}:{column:i.column},...i.function===void 0?{}:{function:Rn(i.function,256)}})),o={type:Rn(e.error.type,256),message:Rn(e.error.message,4096),frames:n},a=y(b({type:o.type,message:o.message,frames:n.slice(0,5).map(({file:i,line:s,column:c})=>({file:i,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:a,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var qt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return he.join(he.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=fE(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),a=mE(n,r.receivedAt,o);return this.#t(async()=>{let i=this.directory();await Gl(i,{recursive:!0,mode:448});let s=he.join(i,`${a.eventId}.json`);try{let f=JSON.parse(await So(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(b({...u,receivedAt:a.receivedAt})!==b(a))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:a.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await ki(c,"wx",384);try{await l.writeFile(`${b(a)}
|
|
40
|
-
`,"utf8"),await l.sync()}finally{await l.close()}await
|
|
41
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
42
|
-
`),await l.sync()}finally{await l.close()}await
|
|
43
|
-
`),s=await To(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new
|
|
44
|
-
`),g=await To(a,u);if(!g.exists||g.digest===void 0)throw new ie("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 ie("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 ie("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let D=e.packageSource.currentLockfile??await Co(Ur.join(t,"pnpm-lock.yaml")).catch(ae=>ae.code==="ENOENT"?void 0:Promise.reject(ae)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ce=C.mode==="pnpm-shared-lockfile",$={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ce&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Y("PACKAGE_SOURCE_POLICY_VIOLATION");let H=ce?(e.packageChannel==="development"?pi:di)({release:n,...P,consumerProfile:c,packageJson:R,currentLockfile:D,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?li:ci)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:R,...D===void 0?{}:{currentLockfile:D},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=ai(H),h.push({path:i("package.json"),kind:"replace",ownership:"owned-file",baseDigest:H.packageJsonPreimageDigest,desiredDigest:H.desiredPackageJsonDigest}),w.set(i("package.json"),H.desiredPackageJson),h.push({path:C.lockfilePath,kind:D===void 0?"create":"replace",ownership:"owned-file",...D===void 0?{}:{baseDigest:y(D)},desiredDigest:H.desiredLockfileDigest}),w.set(C.lockfilePath,H.desiredLockfile)}catch(D){throw D instanceof Y?new ie("CAPABILITY_PACKAGE_SOURCE_INVALID",D.code):D}}for(let R of n.assets){let D=e.release.contents.get(R.path);if(D===void 0)throw new ie("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=R.renderer==="application-config-contract-v1"?ui(r):R.renderer==="application-config-binding-v1"?fi(r):D;if(R.ownership==="managed-region"){if(R.regionId===void 0)throw new ie("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ce;try{ce=await Co(Ur.join(t,...R.path.split("/")))}catch{throw new ie("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(qf({source:ce.toString("utf8"),regionId:R.regionId,content:Buffer.from(C).toString("utf8")}));h.push({path:i(R.path),kind:"merge",ownership:"managed-region",regionId:R.regionId,baseDigest:y(ce),desiredDigest:y($)}),w.set(i(R.path),$)}else{let ce=await To(t,R.path);if(R.ownership==="seed-file"&&ce.exists){let $=await Co(Ur.join(t,...R.path.split("/")));h.push({path:i(R.path),kind:"create",ownership:"seed-file",desiredDigest:y($)}),w.set(i(R.path),$)}else h.push({path:i(R.path),kind:"create",ownership:R.ownership,desiredDigest:y(C)}),w.set(i(R.path),C)}}let v=await Promise.all(h.map(R=>To(a,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:Pe({action:"adopt",capability:A,changes:h,observedAssets:v,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:a,dependency:{profile:c,satisfied:!0}}}var Ng=Kr(Rr(),1);var hE={$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}}}}},yj=new Ng.Ajv2020({allErrors:!0,strict:!0}).compile(hE);var $g=Kr(Rr(),1);import{readFile as yE,realpath as wE}from"node:fs/promises";import Og from"node:path";var Dg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",Sg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",IE={$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:Sg,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:Sg,maxLength:240}}}}}},jg=new $g.Ajv2020({allErrors:!0,strict:!0}).compile(IE),Fr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function vE(e){return y(b(e))}function bE(e){if(!jg(e))throw new Fr("EXAMPLE_RECIPE_INVALID",jg.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 Cg(e){let t=await wE(Og.resolve(e)),r;try{r=bE(JSON.parse(await yE(Og.join(t,"recipe.json"),"utf8")))}catch(a){throw a instanceof Fr?a:new Fr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...o}=r;if(vE(o)!==n)throw new Fr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var xg=Kr(Rr(),1);import{readFile as kE,realpath as RE}from"node:fs/promises";import Tg from"node:path";var _E={$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"]}}}},Lg=new xg.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(_E),Bt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function AE(e){return y(b(e))}function EE(e){if(!Lg(e))throw new Bt("TEMPLATE_INVALID",Lg.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 Bt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Bt("TEMPLATE_INVALID");return t}async function Lo(e,t=new Date){let r=await RE(Tg.resolve(e)),n;try{n=EE(JSON.parse(await kE(Tg.join(r,"template.json"),"utf8")))}catch(i){throw i instanceof Bt?i:new Bt("TEMPLATE_INVALID")}let{integrity:o,...a}=n;if(AE(a)!==o)throw new Bt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Bt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as Vg}from"node:fs/promises";import Mg from"node:path";var PE=/^[A-Z][A-Z0-9_]*$/u,NE=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function OE(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||!PE.test(n[1]))continue;let o=n[1],a=n[2].trim();t.set(o,{name:o,requirement:a.length===0?"conditional":"optional",secret:NE.test(o),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function Ug(e){let t=await Vg(Mg.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await Vg(Mg.join(e.projectRoot,t),"utf8"):"",n=await mi({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(a=>e.commands[a]?[{id:a,script:e.commands[a],mode:a==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(a=>({name:a.name,requirement:a.required?"conditional":"optional",secret:a.kind!=="value",configured:a.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:a.display,...a.fingerprint?{fingerprint:a.fingerprint}:{}})):OE(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var Fg={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"])},qg=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Bg(e,t){if(!Fg[t.plane]||t.state&&!qg.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=Fg[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 a=e.filter(l=>r.has(l.operation)),i=[...new Map(a.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=a.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(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(i),states:Object.freeze([...qg]),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}},DE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,zg=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,SE=/^sha512-[A-Za-z0-9+/]{86}==$/u,Ai=/^sha256:[a-f0-9]{64}$/u,jE=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,$E=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,CE=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,a)=>o===n[a])}function TE(e){if(!qr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!DE.test(e.packageName)||!zg.test(e.version)||!jE.test(e.assetName)||!SE.test(e.integrity)||!Ai.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)||!zg.test(n)||$E.test(n))?!1:e.lifecycleScripts.every(r=>CE.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(a=>Object.freeze({...a,dependencies:Object.freeze({...a.dependencies}),lifecycleScripts:Object.freeze([...a.lifecycleScripts])}));if(t.some(a=>!TE(a)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(a=>a.packageName+"@"+a.version);if(new Set(r).size!==r.length||r.some((a,i)=>i>0&&a.localeCompare(r[i-1])<=0))throw new Qe("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(a=>a.packageName));for(let a of t)for(let[i,s]of Object.entries(a.dependencies))if(i.startsWith("@aipt/")&&(!n.has(i)||!t.some(c=>c.packageName===i&&c.version===s)))throw new Qe("LOCAL_ARTIFACT_POLICY_VIOLATION");let o={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...o,bundleId:y(b(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"||!Ai.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)||!Ai.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(b(n))})}function Jg(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"||!Ai.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 Gg(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"}},Wg=/^sha256:[a-f0-9]{64}$/u,Ei=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function ed(e){if(!Ei.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Wg.test(r))||!Ei.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(b(t))})}function Kg(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=>Wg.test(r))||!Ei.test(e.workerReleaseId)||!Ei.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(b(t))})}function Pi(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,LE=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[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=>!LE.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(b(t))})}function Yg(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}},ad=/^sha256:[a-f0-9]{64}$/u,xE=/^sha512-[A-Za-z0-9+/]{86}==$/u,VE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,ME=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,UE=/[\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,a)=>o===n[a])}function zt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!UE.test(e)}function od(e){return zt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Hg(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>zt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function FE(e){return e===null?!0:!_n(e)||!An(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:od(e.fileName)&&ad.test(String(e.digest))&&xE.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function qE(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"||!VE.test(e.packageName)||!ME.test(e.version)||!zt(e.title,120)||!zt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!_n(e.source)||!An(e.source,["repository","path","revision","treeDigest"])||!zt(e.source.repository)||!od(e.source.path)||!zt(e.source.revision,200)||!ad.test(String(e.source.treeDigest))||!FE(e.artifact)||!_n(e.compatibility)||!An(e.compatibility,["node","packageManager"])||!zt(e.compatibility.node,100)||!zt(e.compatibility.packageManager,100)||!Hg(e.exports)||!Hg(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&&!zt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function BE(e){let t={schemaVersion:1,kind:"PackageRelease",...e,source:Object.freeze({...e.source}),artifact:e.artifact===null?null:Object.freeze({...e.artifact}),compatibility:Object.freeze({...e.compatibility}),exports:Object.freeze([...e.exports]),documentation:Object.freeze({...e.documentation}),consumerEvidence:Object.freeze([...e.consumerEvidence])};if(!qE(t))throw new Vo("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:y(b(t))})}function Xg(e){if(!_n(e)||!An(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!ad.test(String(e.releaseDigest)))throw new Vo("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...o}=e,a=BE(o);if(a.releaseDigest!==t)throw new Vo("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return a}import{lstat as zE,readFile as JE,realpath as GE}from"node:fs/promises";import Zg from"node:path";async function Qg(e){let t=await GE(Zg.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,o=[...e.lock.capabilities].sort((i,s)=>i.committedAt.localeCompare(s.committedAt)||i.capabilityId.localeCompare(s.capabilityId));for(let i of o)if(!r.has(i.capabilityId))for(let s of i.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:i.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let a=[];for(let i of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Zg.join(t,...i.path.split("/")),l=await zE(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await JE(s);if(i.ownership!=="managed-region")return y(p);if(i.regionId!==void 0)try{return y($a(p.toString("utf8"),i.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===i.digest;a.push({capabilityId:i.capabilityId,path:i.path,kind:"create",ownership:i.ownership,...i.regionId===void 0?{}:{regionId:i.regionId},desiredDigest:i.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return a}import{readFile as re,readdir as mh,realpath as Rt}from"node:fs/promises";import{execFile as sP,spawn as cP}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as lP}from"node:util";import{lstat as eh,mkdir as sd,readFile as th,realpath as id,rm as WE,writeFile as rh}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},KE=e=>b(e),nh=e=>y(KE(e));async function oh(e,t){let r=await id(et.resolve(e)),n=et.join(r,".examples");await sd(n,{recursive:!0});let o=await id(n),a=et.resolve(r,t);if(et.dirname(a)!==o||et.basename(a).startsWith(".")||et.basename(a).length<1)throw new tt("SCAFFOLD_ARGUMENT_INVALID");if(await eh(a).then(()=>!0).catch(i=>i.code==="ENOENT"?!1:Promise.reject(i)))throw new tt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:a,outputRelativePath:et.relative(r,a)}}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 oh(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()},a={...o,planId:nh(o)},i=et.join(r.workspaceRoot,".dyyto","scaffold-plans");await sd(i,{recursive:!0});let s=et.join(i,`${a.planId}.json`);return await rh(s,`${b(a)}
|
|
45
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
46
|
-
`)throw new tt("SCAFFOLD_PLAN_INVALID")}),
|
|
47
|
-
`,{flag:"wx",mode:384}),{evidenceId:a,output:r.output,receipts:n}}import{lstat as Mo,readFile as cd,readdir as HE,realpath as ld}from"node:fs/promises";import fe from"node:path";var sh={capabilities:fe.resolve(import.meta.dirname,"catalog"),packages:fe.resolve(import.meta.dirname,"package-releases")};function lh(e,t){return e<t?-1:e>t?1:0}function Oi(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Oi).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>lh(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Oi(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function XE(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 a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(o);if(!a)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(a[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${a[1]}`);let i=a[2].trim();if((i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),/[`$][({]?/u.test(i))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(a[1],i)}return t}async function ch(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 Ni(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 ZE(e){let t=e;for(;;){if(await Mo(fe.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=fe.dirname(t);if(r===t)return;t=r}}async function QE(e){if(!fe.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ni(e,"IDP_CONFIG_DIR");await ZE(t);let r=await Ni(fe.join(t,"components"),"components"),n=await Ni(fe.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),o=fe.relative(t,n);if(o.startsWith("..")||fe.isAbsolute(o))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let a=fe.join(n,".env");await ch(a,"Dyyto \u7EC4\u4EF6 .env");let i=XE(await cd(a,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(i===void 0||i==="")return[];if(fe.isAbsolute(i)||i.includes("\0")||/[*?{}[\]]/u.test(i))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=fe.resolve(n,i),c=fe.relative(n,s);if(c===""||c.startsWith("..")||fe.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(fe.sep).slice(0,-1))l=await Ni(fe.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await ld(fe.dirname(s)),p=fe.relative(n,d);if(p.startsWith("..")||fe.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await ch(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(!fe.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 eP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await QE(e);return{capabilities:sh.capabilities,packages:[sh.packages,...t]}}async function Di(e){return(await HE(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function tP(e,t){let r=a=>a.split("-",1)[0].split(".").map(Number),n=r(e),o=r(t);for(let a=0;a<3;a+=1){let i=(n[a]??0)-(o[a]??0);if(i!==0)return i}return e.localeCompare(t)}function rP(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 nP(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 oP(e){let t=[];for(let r of await Di(e))for(let n of await Di(fe.join(e,r))){let o=`capability:${r}@${n}`;t.push(Ie(fe.join(e,r,n)).then(a=>({entry:{item:rP(a.release),release:a.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 aP(e){let t=[];for(let r of await Di(e))for(let n of await Di(fe.join(e,r))){let o=fe.join(e,r,n,"release.json"),a=`package:${r}@${n}`;t.push(cd(o,"utf8").then(i=>{let s=Xg(JSON.parse(i));return{entry:{item:nP(s),release:s}}}).catch(()=>({diagnostic:{ref:a,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function dd(e){let t=e??await eP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...o]=await Promise.all([oP(t.capabilities),...r.map(aP)]),a=[...n.entries,...o.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),i=[],s=new Set,c=[];for(let l of a)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),i.push(l));return{entries:i,diagnostics:[...n.diagnostics,...o.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Si(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await dd(e.roots),n=new Map;for(let{item:i}of r.entries){if(e.kind!==void 0&&i.kind!==e.kind)continue;let s=[i.id,i.version,i.title,i.summary,i.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${i.kind}:${i.id}`,l=n.get(c);(l===void 0||tP(l.version,i.version)<0)&&n.set(c,i)}let o=[...n.values()].sort((i,s)=>i.ref.localeCompare(s.ref)),a=e.limit??50;return{query:t,total:o.length,items:o.slice(0,a),diagnostics:r.diagnostics}}async function ji(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:a})=>a.ref===t),o=r.diagnostics.find(a=>a.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 iP(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 a=`capability:${o.capabilityId}@${o.version}`;for(let i of o.integration.packages){if(typeof i!="object"||i===null)continue;let s=i;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(a),t.set(c,l)}}return t}async function dh(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=iP(r.entries),o=r.entries.filter(({item:i})=>i.kind==="package").map(({release:i})=>{let s=i;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((i,s)=>lh(i.ref,s.ref)),a={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(o)};return Object.freeze({...a,sourceDigest:y(Oi(a))})}function ph(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||y(Oi(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
48
|
-
`}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"},gh=lP(sP),dP=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"]),hh=(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,$i={"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 yh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Ci(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let o=await re(N.join(e,"package.json")),a=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:i}=await import("./optional-runtime.js"),s=await Mt(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 ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new ie("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:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...a,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:h,version:w,integrity:_})=>({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 i({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:a.registryConfigs,endpointBindings:a.endpointBindings});return{...a,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function wh(e,t,r,n){let o=r.capabilities.find(v=>v.capabilityId===t.release.capabilityId&&v.version===t.release.version);if(o&&!o.packageAdoption){let v=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),A=new Date;return Pg({projectRoot:e,manifest:v,release:t,currentLock:r,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!o?.packageAdoption)throw new ie("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let a=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),i=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Mt(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(v=>v!==o).flatMap(v=>v.packageAdoption?.sources.map(A=>A.packageName)??[])),p=o.packageAdoption.sources.filter(v=>!d.has(v.packageName)),f=c.mode==="pnpm-shared-lockfile"?Tl({packageJson:i,remove:p}):Cl({packageJson:i,remove:p}),u=r.capabilities.filter(v=>v!==o).flatMap(v=>v.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new ie("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let v=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:a.registryConfigs,endpointBindings:a.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(D=>({path:R,exists:!0,digest:y(D)})).catch(D=>D.code==="ENOENT"?{path:R,exists:!1}:Promise.reject(D))));return{...Cm({release:t.release,currentLock:r,projectManifest:s,packageJson:i,currentLockfile:l,endpointBindings:a.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:v.preservedImporterDigests,resolutionEvidence:v.evidence,resolutionWorkerReleaseId:v.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}let{resolvePnpmLock:h}=await import("./optional-runtime.js"),w=await h({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...o.packageAdoption.sources],registries:a.registryConfigs,endpointBindings:a.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...o.assets.map(v=>v.path)].map(async v=>re(N.join(e,...v.split("/"))).then(A=>({path:v,exists:!0,digest:y(A)})).catch(A=>A.code==="ENOENT"?{path:v,exists:!1}:Promise.reject(A))));return{...$m({release:t.release,currentLock:r,projectManifest:s,packageJson:i,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:a.endpointBindings,observedAssets:_,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}function z(e){return e.includes("--json")?"json":"human"}function k(e){throw new T({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function De(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?k("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Ti(e,t){return dP.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):k("The selected template release is not bundled with this CLI.")}function pP(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?k("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function Li(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return k("Project manifest must select one capability.");let n=await Ie(De(r.capabilityId,r.version)),o=await Le(e).catch(()=>null),a=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:xa)({projectRoot:e,manifest:t,release:n,...o===null?{}:{currentLock:o},generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString()});return Vt({projectRoot:e,plan:s.plan,now:a.toISOString()})}async function Ih(e){let t;try{t=pe({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return k("Create arguments are invalid.")}if(t.positionals.length!==1)return k("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,h]=r.split("@");n=await Lo(Ti(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 k("Create requires a supported --profile.");let a=t.values.capability,i=o==="workspace-root"&&a==="foundation.workspace-root@1.0.0"||o==="standalone-npm-package"&&a==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(i?a:Uo[o]);if(n!==void 0&&s.split("@")[0]!==Uo[o].split("@")[0])return k(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&a!==s)return k(`Create requires --capability ${s}.`);if(n!==void 0&&a!==void 0)return k("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"],v=t.values.repository;if([g,h,w,_].some(A=>typeof A!="string")||l==="1.1.0"&&typeof v!="string")return k(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(h),license:String(w),publishAccess:String(_),...typeof v=="string"?{repository:v}:{}}}else if(o==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return k("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:o,parameters:d},capabilities:[{capabilityId:c,version:l}]};(o==="standalone-npm-package"||o==="react-component-library")&&cr(X(p),o),o==="nextjs-full-stack-application"&&Cr(X(p));let f=await Za({projectRoot:t.positionals[0],manifest:p}),u=await Li(f.projectRoot),m=ee(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
|
|
25
|
+
`)}function Z_(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 Q_(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 eA(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 tA(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 wm(e,t){let r=wo.join(e,...t.split("/"));try{let n=await G_(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 Rl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Tr(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"?Q_(Cr(r).name):t==="workspace-expo-application"?tA(Cr(r).name):t==="nextjs-full-stack-application"?eA(Cr(r).name):Z_(Cr(r).name):t==="react-component-library"?Al(lr(r,t)):_l(lr(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 a=(e.currentLock===void 0?void 0:qe(e.currentLock))?.capabilities.find(u=>u.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","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 ym(wo.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 wm(c,u.path);if(g.exists&&a===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 Rl(wo.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=ke({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 Io(e){return Tr(e,"standalone-npm-package")}function vo(e){return Tr(e,"react-component-library")}function vn(e){return Tr(e,"nextjs-full-stack-application")}async function El(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 vn({...e,manifest:r}),o=await ym(wo.resolve(e.projectRoot)),i="project-capabilities.json",a=await Rl(wo.join(o,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(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 Po(e){let t=Ft(e.packageJson);aa(t,new Set(e.release.packageSources.map(o=>o.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="runtime").map(({packageName:o,version:i})=>[o,i])),n=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="development").map(({packageName:o,version:i})=>[o,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 Cl(e){let t=Ft(e.packageJson);oa(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 o={...t};return Object.keys(r).length===0?delete o.dependencies:o.dependencies=r,Object.keys(n).length===0?delete o.devDependencies:o.devDependencies=n,Buffer.from(`${JSON.stringify(o,null,2)}
|
|
33
|
+
`)}function Tl(e){let t=Ft(e.packageJson);aa(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 o={...t};return Object.keys(r).length===0?delete o.dependencies:o.dependencies=r,Object.keys(n).length===0?delete o.devDependencies:o.devDependencies=n,Buffer.from(`${JSON.stringify(o,null,2)}
|
|
34
|
+
`)}function Cm(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)),o=Cl({packageJson:e.packageJson,remove:n}),i=Ft(e.projectManifest),a=Array.isArray(i.capabilities)?i.capabilities:[],s=Buffer.from(`${JSON.stringify({...i,capabilities:a.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(o)},{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:ke({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(o),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",o],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function Tm(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)),o=Tl({packageJson:e.packageJson,remove:n}),i=e.remainingSources.map(({registryId:g,packageName:h,version:w,integrity:_})=>({registryId:g,packageName:h,version:w,integrity:_})),a={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=Dl(e.resolutionEvidence,{requestDigest:Eo({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:y(e.currentLockfile),desiredPackageJsonDigest:y(o),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(o),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:h})=>({importerId:g,preimageDigest:h})),managedSources:i,now:e.generatedAt}),c=Ft(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(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 hA,X509Certificate as yA}from"node:crypto";import{lstat as Vl,readFile as Vr,realpath as zm}from"node:fs/promises";import ge from"node:path";var be=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Wm(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 fa(e){let t=Wm(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 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:Mr,exists:!0,digest:y(A)}),b.push({path:Mr,kind:"replace",ownership:"owned-file",baseDigest:y(A),desiredDigest:y(I)});let R={schemaVersion:1,capabilityId:o.capabilityId,version:o.version,integrity:o.integrity,assets:o.assets.filter(P=>P.path!==Mr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:h.get(P.path)})),verifiers:o.verifiers.map(({id:P})=>({id:P,kind:"command"}))},S=f===c?b:b.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),C=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),le=ke({action:"upgrade",capability:R,changes:S,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Mr,I);let $=new Map;for(let P of le.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let X=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ie=P.path===m?P.path:P.path.startsWith(X)?P.path.slice(X.length):P.path,rt=d.get(ie);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:le,desiredContents:$,transactionRoot:f}}import{link as PA,mkdir as NA,open as Ym,readFile as bt,readdir as OA,realpath as kt,rm as SA,unlink as DA}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 Oe(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Hm(e){return y(k(e))}function zl(e){if(!Oe(e.project.lockDigest)||!Oe(e.project.appliedPlanId)||!Oe(e.artifact.digest))throw new D("DELIVERY_PRECONDITION_FAILED","Delivery identities must use canonical SHA-256 digests");if(Date.parse(e.expiresAt)<=Date.parse(e.createdAt)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_PRECONDITION_FAILED","Delivery plan expiry must follow creation time");if(e.kind==="npm-publish"&&(e.artifact.type!=="npm-package"||e.target.adapterId!=="registry.npmjs"||e.risk!=="irreversible-publish")||e.kind==="application-deploy"&&(e.artifact.type!=="node-application"&&e.artifact.type!=="web-application"||e.target.adapterId!=="deployment.local-docker"||e.risk!=="local-reversible-deployment")||e.kind==="artifact-publication"&&(e.artifact.type!=="published-package"||e.target.adapterId!=="publication.offline-web"&&e.target.adapterId!=="publication.hosted-static"||(e.target.adapterId==="publication.offline-web"?e.risk!=="local-reversible-publication":e.risk!=="external-reversible-publication"))||e.kind==="hosted-static"&&(e.artifact.type!=="web-bundle"||e.target.adapterId!=="publication.hosted-static"||e.risk!=="external-reversible-publication"))throw new D("DELIVERY_PROJECT_UNSUPPORTED","Delivery kind, artifact, target, and risk must be compatible");if(e.kind==="npm-publish"&&e.publication!==void 0){let r=e.publication,n=r.execution;if(r.mode!=="staged"||r.access!=="public"||r.authentication!=="trusted-publishing"||r.trustedAction!=="stage-only"||r.provenance!=="required"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||n?.provider!=="github-actions"&&n?.provider!=="gitlab-ci"||!n.repository||!n.workflow||!n.ref||Object.values(n).some(o=>typeof o!="string"||o.length>512||/[\u0000-\u001f\u007f]/.test(o)))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:Hm(t)}}function Ul(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(Hm(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return zl({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 Xm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:y(k(t))}}function Zm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:y(k(t))}}function ya(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 Fl(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 Qm(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:y(k(t))}}function ql(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 wa(e){if(!Oe(e.planId)||!Oe(e.artifactDigest)||e.externalIdentity.length===0)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt identities are invalid");if("npm"in e){let r=e.npm;if(e.adapterId!=="registry.npmjs"||r===void 0||r.stageId.length===0||r.registry!=="https://registry.npmjs.org"||r.tarballDigest!==e.artifactDigest||r.access!=="public"||!/^[a-z0-9][a-z0-9._-]*$/.test(r.tag)||r.provenance!=="registry-attested"||!Oe(r.attestationUrlDigest))throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:y(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 Bl(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:o,schemaVersion:i,status:a,...s}=t;return wa(s)}async function jA(e){let t=await Ym(e,"r");try{await t.sync()}finally{await t.close()}}async function Oo(e,t){let r=fe.dirname(e);await NA(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,o=await Ym(n,"wx",384);try{await o.writeFile(`${k(t)}
|
|
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 Ra(c,s);let d=await ka(a,"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 Do(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 Gl(n,{recursive:!0,mode:448}),await Ra(r,ye.join(n,`${Date.now()}-${t}`))}async all(){let t=await Wl(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let o=JSON.parse(await Do(ye.join(this.directory(),n),"utf8"));if(o.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...o,correlation:o.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,o)=>o.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(o.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 o=JSON.parse(n.content);if(o.v!==1||!Number.isSafeInteger(o.offset)||o.offset<0||o.snapshot!==r)throw new Error("expired");return o.offset}catch{throw new oe("OBSERVABILITY_CURSOR_EXPIRED","Runtime Error query cursor is invalid or expired")}}async list(t){let r=Math.max(1,Math.min(t.limit??100,100)),n=this.selected(await this.all(),t),o=y(k(n.map(s=>s.eventId))),i=t.cursor===void 0?0:this.parseCursor(t.cursor,o),a=n.slice(i,i+r);return{events:a,...i+a.length<n.length?{nextCursor:this.cursor(i+a.length,o)}:{}}}async get(t){if(!kg.test(t))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Do(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 oe("OBSERVABILITY_STORE_DAMAGED","Runtime Error record is damaged and has been quarantined")}}async summary(t){let r=this.selected(await this.all(),t),n=new Map;for(let o of r){let i=n.get(o.fingerprint);i?i.count+=1:n.set(o.fingerprint,{count:1,latestAt:o.occurredAt,event:o})}return{total:r.length,groups:[...n.entries()].map(([o,i])=>({fingerprint:o,...i}))}}async rotate(){let t=await this.all(),n=t.reduce((o,i)=>Math.max(o,Date.parse(i.receivedAt)),0)-10080*60*1e3;for(let o of t.slice(1e4))await bg(ye.join(this.directory(),`${o.eventId}.json`),{force:!0});for(let o of t.slice(0,1e4))Date.parse(o.receivedAt)<n&&await bg(ye.join(this.directory(),`${o.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Kl.test(t.releaseId)||!Kl.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!jo(t.map)||"sourcesContent"in t.map)throw new oe("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(k(t.map)),n=y(r),o=ye.join(this.releases(),t.releaseId);await Gl(o,{recursive:!0,mode:448});let i=y(t.asset),a=ye.join(o,`${i}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await ka(`${a}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
|
|
42
|
+
`),await c.sync()}finally{await c.close()}return await Ra(`${a}.tmp`,a),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await Wl(ye.join(this.releases(),t)).catch(()=>[]),n=[];for(let o of r)try{n.push(JSON.parse(await Do(ye.join(this.releases(),t,o),"utf8")))}catch{}for(let o of(await this.all()).filter(i=>i.releaseId===t&&i.state==="map-missing")){let i=!1,a=o.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=vg(new Ig(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={...o,error:{...o.error,frames:a},state:"symbolicated"},c=ye.join(this.directory(),`${o.eventId}.json`),l=await ka(`${c}.tmp`,"w",384);try{await l.writeFile(`${k(s)}
|
|
43
|
+
`),await l.sync()}finally{await l.close()}await Ra(`${c}.tmp`,c)}}};var Ze=(e,t,r,n,o)=>({code:e,severity:t,fact:r,message:n,...o===void 0?{}:{action:o}});async function $o(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 o=co(JSON.parse(await _g(Yl.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(o.evidenceId!==n||o.capabilityId!==r.capabilityId||o.capabilityVersion!==r.version||o.capabilityIntegrity!==r.integrity||o.projectStateDigest!==r.projectStateDigest||o.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 Hl(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 Ag(e){try{let r=JSON.parse(await _g(Yl.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 Bt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await yE(Yl.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 Eg(e){let t=e.units.map(n=>{let o=n.findings.some(i=>i.severity==="critical")?"blocked":n.findings.some(i=>i.severity==="warning")?"attention":"healthy";return{...n,status:o}}),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 Co,realpath as Pg}from"node:fs/promises";import Ur from"node:path";var se=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function Ng(e){let t=await Pg(Ur.resolve(e.projectRoot)),r=Y(e.manifest),n=e.release.release,o=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!o||o.packageAdoption!==void 0)throw new se("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)}),a=Buffer.from(`${JSON.stringify(i,null,2)}
|
|
44
|
+
`),s=await To(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new se("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:y(a)},...o.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>To(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:o.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:ke({action:"remove",capability:d,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:i,desiredContents:new Map([["project-capabilities.json",a]]),transactionRoot:t,removedSources:[]}}async function To(e,t){try{let r=await Co(Ur.join(e,...t.split("/")));return{path:t,exists:!0,digest:y(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function Xl(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await Pg(Ur.resolve(e.projectRoot)),r=Y(e.manifest),n=e.release.release,o=e.packageSource?.topology,i=o?.transactionRoot??t,a=R=>o?.mode==="pnpm-shared-lockfile"?`${o.unitRelativeRoot}/${R}`:R;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new se("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(R=>R.capabilityId===n.capabilityId))throw new se("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 se("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(R=>!r.capabilities.some(S=>S.capabilityId===R)||!e.currentLock.capabilities.some(S=>S.capabilityId===R)))throw new se("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=a("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
|
|
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 rh(s,"utf8")!==`${k(i)}
|
|
47
|
+
`)throw new tt("SCAFFOLD_PLAN_INVALID")}),i}async function XE(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new tt("SCAFFOLD_PLAN_INVALID");let r=await ad(et.resolve(e)),n;try{n=JSON.parse(await rh(et.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new tt("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:o,...i}=n;if(o!==t||oh(i)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new tt("SCAFFOLD_PLAN_INVALID");return n}async function sh(e){let t=await XE(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 ih(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await th(r.output).then(()=>!0).catch(()=>!1)&&await YE(r.output,{recursive:!0,force:!0}),new tt("SCAFFOLD_APPLY_FAILED",s)}let o={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},i=y(k(o)),a=et.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await sd(a,{recursive:!0}),await nh(et.join(a,`${i}.json`),`${k({...o,evidenceId:i})}
|
|
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.
|
|
49
50
|
Plan: ${u.planId}
|
|
50
51
|
State: ${u.state}
|
|
51
|
-
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:o,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function
|
|
52
|
-
Plan: ${
|
|
53
|
-
State: ${
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:o,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function mP(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 o=n.values.capability??"foundation.workspace-root@1.2.0",i=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(o);if(!i)return v("Retrofit --capability is invalid.");let a=await ve(Se(i[1],i[2])),s=n.values.profile??"workspace-root";if(a.release.consumerProfile!==s)return v("Retrofit profile and capability are incompatible.");let c=new Date,l=s==="workspace-root"?await lm({projectRoot:n.values.project,capabilityIntegrity:a.release.integrity,generatedAt:c.toISOString(),expiresAt:new Date(c.getTime()+1800*1e3).toISOString(),...n.values["documentation-only"]===!0?{documentationOnly:!0}:{}}):await cm({projectRoot:n.values.project,manifest:{schemaVersion:1,profile:{id:s,parameters:{}},capabilities:[{capabilityId:i[1],version:i[2]}]},capabilityIntegrity:a.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 Mt({projectRoot:l.projectRoot,plan:l.plan,now:c.toISOString()});return{outputMode:z(e),human:`Project: ${d}
|
|
53
|
+
Plan: ${m.planId}
|
|
54
|
+
State: ${m.state}
|
|
54
55
|
Files: project-capabilities.json
|
|
55
|
-
Next: dyyto retrofit apply --project ${
|
|
56
|
-
Plan: ${
|
|
57
|
-
State: ${
|
|
58
|
-
Files applied: ${
|
|
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 jr({projectRoot:l.projectRoot,planId:n.values.approve}),f=await ir({projectRoot:l.projectRoot,plan:p,approvedPlanId:n.values.approve,desiredContents:l.desiredContents,now:c.toISOString()}),u=await ar(f);return{outputMode:z(e),human:`Project: ${d}
|
|
57
|
+
Plan: ${p.planId}
|
|
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 gP(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(N.resolve(r.values.project)),o=Y(JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")));if(o.template===void 0)return v("The project does not declare an engineering template.");let i=await Lo(Ta(o.template.id,o.template.version)),a=i.commands[e];if(a===void 0)return v(`Template ${i.templateId} does not support ${e}.`);let s=a==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",a],c=Date.now();if(e==="dev"){if(await new Promise((u,m)=>{let g=dP("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:a,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 hh("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${i.templateId}@${i.version}`,command:a,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 hP(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 o=n==="react-component-library"?Uo["workspace-react-component-library"]:Uo["workspace-npm-package"];if(t.values.capability!==o)return v(`Add package requires --capability ${o}.`);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",a=String(t.values.path),s=Dd(a,i);if(s!==void 0)return v(s);let c=await Rt(N.resolve(String(t.values.workspace))),l=JSON.parse(await re(N.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return 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 Le(c);if(p===null){let _=await ve(Se(d.capabilityId,d.version)),b=new Date;if((await Li({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 Nr({projectRoot:c,expectedAssets:wh(p)})}catch{return v("Workspace root locked assets have drifted; adding a package is blocked.")}if((await $o({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 $d(c,i==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[f,u]=o.split("@"),m={schemaVersion:1,...$a[n]===void 0?{}:{template:$a[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}]};lr(Y(m),n);let g=await Zi({projectRoot:N.join(c,...a.split("/")),manifest:m}),h=await La(g.projectRoot),w=ee(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${a}' initialized.
|
|
59
60
|
Plan: ${h.planId}
|
|
60
61
|
State: ${h.state}
|
|
61
|
-
Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:
|
|
62
|
+
Next: dyyto apply --project ${w} --approve ${h.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:a,plan:h}}}}async function yP(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,o=Uo[n],i=String(t.values.path),a=jd(i,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(a!==void 0)return v(a);let s=await Rt(N.resolve(String(t.values.workspace))),c=JSON.parse(await re(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return 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 Le(s);if(d===null){let w=await ve(Se(l.capabilityId,l.version)),_=new Date;if((await Li({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 Nr({projectRoot:s,expectedAssets:wh(d)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await $o({projectRoot:s,lock:d})).some(_=>_.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await Cd(s,String(t.values.name)))return v("A workspace application already uses this name.");let[p,f]=o.split("@"),u={schemaVersion:1,...$a[n]===void 0?{}:{template:$a[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Cr(Y(u));let m=await Zi({projectRoot:N.join(s,...i.split("/")),manifest:u}),g=await La(m.projectRoot),h=ee(m.projectRoot);return{outputMode:z(e),human:`Workspace application '${i}' initialized.
|
|
62
63
|
Plan: ${g.planId}
|
|
63
64
|
State: ${g.state}
|
|
64
|
-
Next: dyyto apply --project ${h} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:h,workspace:ee(s),path:
|
|
65
|
-
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 bh(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(N.resolve(r.values.project)),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),i=await Le(n);if(i===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[a,s]=xa(r.values.capability),c=await ve(Se(a,s)),l=new Date,d;try{let u=await Ca(n,c,t);d=await Xl({projectRoot:n,manifest:o,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 se?new T({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Mt({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:z(e),human:`Project: ${f}
|
|
66
|
+
Feature: ${a}@${s}
|
|
66
67
|
Dependency: ${d.dependency.profile} satisfied
|
|
67
68
|
Plan: ${p.planId}
|
|
68
69
|
State: ${p.state}
|
|
69
|
-
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function
|
|
70
|
-
\u79FB\u9664\u80FD\u529B\uFF1A${
|
|
70
|
+
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function wP(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(N.resolve(r.values.project)),o=await Le(n);if(o===null)return v("Remove feature requires a verified Lock.");let[i,a]=xa(r.values.capability),s=await ve(Se(i,a)),c=await Ih(n,s,o,t),l=await Mt({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}@${a}
|
|
71
72
|
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
|
|
72
73
|
Plan: ${l.planId}
|
|
73
74
|
State: ${l.state}
|
|
74
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function
|
|
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 IP(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=N.resolve(t.values.project),n=await La(r),o=ee(r),i=n.state==="reviewable"?`Next: dyyto apply --project ${o} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${o}
|
|
75
76
|
Plan: ${n.planId}
|
|
76
77
|
State: ${n.state}
|
|
77
|
-
${
|
|
78
|
+
${i}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:o,plan:n}}}}function xa(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 vP(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=N.resolve(t.values.project);if(await Le(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,o]=xa(t.values.capability),i=await ve(Se(n,o)),a=JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await El({projectRoot:r,manifest:a,release:i,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Mt({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:z(e),human:`Project: ${d}
|
|
78
79
|
Baseline: ${n}@${o}
|
|
79
80
|
Plan: ${l.planId}
|
|
80
81
|
State: ${l.state}
|
|
81
82
|
Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
|
|
82
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function
|
|
83
|
-
Upgrade: ${s.version} -> ${
|
|
84
|
-
Plan: ${
|
|
85
|
-
State: ${
|
|
86
|
-
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:A,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:
|
|
87
|
-
Plan: ${
|
|
83
|
+
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function bP(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=N.resolve(r.values.project),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),[i,a]=xa(r.values.to),s=o.capabilities?.find(R=>R.capabilityId===i);if(s===void 0)return v(`Upgrade requires ${i} to be adopted by the project.`);let c=await Le(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let l=(o.profile.id==="standalone-npm-package"||o.profile.id==="workspace-npm-package")&&a==="1.1.0";if(l){if(typeof r.values.repository!="string")return v("npm package upgrade to 1.1.0 requires --repository.");o={...o,profile:{...o.profile,parameters:{...o.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(Se(s.capabilityId,s.version)),p=await ve(Se(i,a)),f={...o,capabilities:o.capabilities.map(R=>R.capabilityId===i?{capabilityId:i,version:a}:R)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?ha(f,p):void 0,g=u?await Ca(n,p,t,m):void 0,h=yh(i,a),w=new Date,_=await Ml({projectRoot:n,manifest:o,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 Mt({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} -> ${a}
|
|
85
|
+
Plan: ${b.planId}
|
|
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 pd(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=N.resolve(r.values.project),o=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),i=o.capabilities?.[0];if(i===void 0)return v("Project manifest must select one capability.");let a=await jr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(a.action==="remove"){let u=await Le(n);if(u===null)return v("Remove apply requires the verified Lock.");let m=await Ih(n,await ve(Se(a.capability.capabilityId,a.capability.version)),u,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,d="endpointBindings"in m?m.endpointBindings:void 0}else if(a.action==="upgrade"){let u=await Le(n),m=u?.capabilities.find(I=>I.capabilityId===a.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")&&a.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return v("npm package upgrade apply requires the approved --repository value.");o={...o,profile:{...o.profile,parameters:{...o.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(Se(a.capability.capabilityId,a.capability.version)),h={...o,capabilities:o.capabilities.map(I=>I.capabilityId===a.capability.capabilityId?{capabilityId:a.capability.capabilityId,version:a.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,_=w?ha(h,g):void 0,b=w?await Ca(n,g,t,_):void 0;l=b?.registryConfigs,d=b?.endpointBindings;let A=yh(a.capability.capabilityId,a.capability.version);c=await Ml({projectRoot:n,manifest:o,currentLock:u,sourceRelease:await ve(Se(m.capabilityId,m.version)),targetRelease:g,...A===void 0?{}:{targetTemplate:A},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...b===void 0?{}:{packageSource:b}})}else if(a.action==="adopt"&&o.profile?.id==="nextjs-full-stack-application"&&o.capabilities?.[0]?.capabilityId===a.capability.capabilityId&&o.capabilities?.[0]?.version!==a.capability.version)c=await El({projectRoot:n,manifest:o,release:await ve(Se(a.capability.capabilityId,a.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(o.capabilities?.some(u=>u.capabilityId===a.capability.capabilityId&&u.version===a.capability.version)){let u=await ve(Se(i.capabilityId,i.version)),m=await Le(n).catch(()=>null);c=await(o.profile?.id==="standalone-npm-package"?Io:o.profile?.id==="react-component-library"?vo:o.profile?.id==="nextjs-full-stack-application"?vn:o.profile?.id==="workspace-npm-package"?bo:o.profile?.id==="workspace-node-application"?ko:o.profile?.id==="workspace-web-application"?Ro:o.profile?.id==="workspace-expo-application"?_o:xi)({projectRoot:n,manifest:o,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Le(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let m=await ve(Se(a.capability.capabilityId,a.capability.version)),g=await Ca(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await Xl({projectRoot:n,manifest:o,release:m,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let p;if(a.packageAdoption!==void 0){if(l===void 0)throw new se("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 se("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await Lm({projectRoot:c.transactionRoot??n,plan:a,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 ir({projectRoot:n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await ar(u)}let f=ee(n);return{outputMode:z(e),human:`Project: ${f}
|
|
88
|
+
Plan: ${a.planId}
|
|
88
89
|
State: ${p.state}
|
|
89
90
|
Files applied: ${p.operations.length}
|
|
90
|
-
`+(
|
|
91
|
+
`+(a.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:a.planId,transaction:p}}}}async function kP(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 o=await Tg(fP(n,r.values["recipe-version"])),i=Number(r.values["artifact-port"]),a=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 ah({workspaceRoot:a,output:r.values.output,recipe:o,artifactBundle:s,artifactFallbackBundles:l,artifactPort:i});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${o.title}
|
|
91
92
|
Plan\uFF1A${u.planId}
|
|
92
93
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
|
|
93
|
-
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof d!="string")return
|
|
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",a,"--artifact-bundle",s,...l.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(i)],f;try{f=await sh({workspaceRoot:a,approvedPlanId:d,recipe:o,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 vh([u,"--profile","nextjs-full-stack-application","--capability",`${o.rootProfile.capabilityId}@${o.rootProfile.version}`,"--name",o.recipeId])).value.result.plan.planId;await pd(["--project",u,"--approve",w],t),g.push(w),await hh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(a,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await ud(["--project",u]);for(let _ of o.capabilities){let b=`${_.capabilityId}@${_.version}`;try{let I=(await bh(["--project",u,"--capability",b,"--channel",_.channel,...p],t)).value.result.plan.planId;await pd(["--project",u,"--approve",I,...p],t),await ud(["--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${N.relative(process.cwd(),f.output)}
|
|
94
95
|
Evidence\uFF1A${f.evidenceId}
|
|
95
|
-
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Fo(e,t){let r;try{r=
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Fo(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:N.resolve(r.values.project),outputMode:z(e)}}async function ud(e){let{projectRoot:t,outputMode:r}=Fo(e,"Verify"),n=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),o=await Le(t),i=await Ut(t).catch(()=>{}),a;try{let h=o?.capabilities.map(_=>_.appliedPlanId)??[],w=o?.capabilities.map(_=>_.capabilityId)??[];try{a=await Qi(t,h,t,w)}catch(_){if(!(_ instanceof he)||_.code!=="PLAN_NOT_FOUND"||i===void 0)throw _;a=await Qi(t,h,i.transactionRoot,w)}}catch(h){if(!(h instanceof he)||h.code!=="PLAN_NOT_FOUND"||o===null)throw h;let _=(await fd(["--project",t,"--json"])).value.result,b=await $o({projectRoot:t,lock:o});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}
|
|
96
97
|
State: adopted
|
|
97
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:o}}}}let s=await
|
|
98
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:A,state:"adopted",reused:!0,lock:o}}}}let s=await ve(Se(a.capability.capabilityId,a.capability.version)),c=a.packageAdoption===void 0?void 0:i?.transactionRoot;if(o?.capabilities.some(h=>h.appliedPlanId===a.planId)){let h=ee(t);return{outputMode:r,human:`Project: ${h}
|
|
98
99
|
State: adopted
|
|
99
|
-
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(a.action==="remove"){if(o===null)return v("Remove verification requires the previous verified Lock.");let h=o.capabilities.find($=>$.capabilityId===a.capability.capabilityId&&$.version===a.capability.version);if(h===void 0){let $=ee(t);return{outputMode:r,human:`Project: ${$}
|
|
100
101
|
State: removed
|
|
101
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:o}}}}let w=
|
|
102
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:o}}}}let w=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",_=new Map(a.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),b=o.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"),S=await R({projectRoot:t,release:s,remainingAssets:I,removedPaths:h.assets.map($=>$.path)}),C=await yl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:S.results,committedAt:new Date().toISOString(),previousLock:o,expectedAssets:I}),le=ee(t);return{outputMode:r,human:`Project: ${le}
|
|
102
103
|
State: removed
|
|
103
|
-
${
|
|
104
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:
|
|
104
|
+
${S.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
|
|
105
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:le,state:"removed",verifiers:S.summaries,lock:C}}}}let l=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",d=(s.release.kind==="engineering-feature"?s.release.assets.map(h=>({path:h.path,desiredDigest:h.ownership==="managed-region"?h.digest:a.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):a.action==="upgrade"?s.release.assets.map(h=>({path:h.path,desiredDigest:a.operations.find(w=>w.path===`${l}${h.path}`)?.desiredDigest,ownership:h.ownership,regionId:h.regionId})):a.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=a.action==="adopt"&&a.operations.every(h=>h.disposition==="noop")&&o?.capabilities.some(h=>h.capabilityId===a.capability.capabilityId)===!0,m=await hl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:d,...(a.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&o!==null?{previousLock:o}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
|
|
105
106
|
State: adopted
|
|
106
107
|
`+f.summaries.map(h=>`${h.verifierId}: ${h.result}`).join(`
|
|
107
108
|
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function fd(e){let{projectRoot:t,outputMode:r}=Fo(e,"Inspect"),n=await kl(t),o=ee(t);if(n.required)return{outputMode:r,human:`Project: ${o}
|
|
108
109
|
State: recovery-required
|
|
109
110
|
Transaction: ${n.kind}
|
|
110
|
-
Next: dyyto recover --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,state:"recovery-required",recovery:n}}};let
|
|
111
|
+
Next: dyyto recover --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,state:"recovery-required",recovery:n}}};let i=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),a=i.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let s=await ve(Se(a.capabilityId,a.version)),c=await Le(t);try{let A=await Qi(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: ${o}
|
|
111
112
|
State: applied-unverified
|
|
112
113
|
Plan: ${A.planId}
|
|
113
|
-
Next: dyyto verify --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,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=
|
|
114
|
+
Next: dyyto verify --project ${o}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,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 Im({...d,manifest:i}):i.profile?.id==="react-component-library"?await vm({...d,manifest:i}):i.profile?.id==="nextjs-full-stack-application"?await bm({...d,manifest:i}):i.profile?.id==="workspace-npm-package"?await km({...d,manifest:i}):i.profile?.id==="workspace-node-application"?await Rm({...d,manifest:i}):i.profile?.id==="workspace-web-application"?await _m({...d,manifest:i}):i.profile?.id==="workspace-expo-application"?await Am({...d,manifest:i}):await Li(d),f=c===null?void 0:[...c.capabilities].filter(A=>A.packageAdoption!==void 0).sort((A,I)=>A.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await re(N.join(t,"package.json")).then(y).catch(()=>{}),m=p.operations.map(A=>A.path==="package.json"&&u===f?{...A,desiredDigest:f,disposition:"noop",conflictCode:void 0}:A),g=c===null?[]:await eh({projectRoot:t,lock:c,excludeCapabilityIds:[a.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: ${o}
|
|
114
115
|
State: ${_.state}
|
|
115
116
|
`+_.operations.map(A=>`${A.path}: ${A.disposition}`).join(`
|
|
116
|
-
`)+(
|
|
117
|
+
`)+(b.length===0?"":`
|
|
117
118
|
\u5305\u6765\u6E90\uFF1A
|
|
118
|
-
${
|
|
119
|
-
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:o,..._,lock:c,packageSources:
|
|
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:o,..._,lock:c,packageSources:b}}}}async function RP(e){let{projectRoot:t,outputMode:r}=Fo(e,"Recover"),n=await hm({projectRoot:t,now:new Date().toISOString()}),o=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${o}
|
|
120
121
|
Recovery: not-required`:`Project: ${o}
|
|
121
122
|
Recovery: ${n.kind}
|
|
122
|
-
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:o,recovery:n}}}}function
|
|
123
|
+
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:o,recovery:n}}}}function kh(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:N.resolve(r.values.project),outputMode:z(e)}}async function _P(e,t){let{parsed:r,projectRoot:n,outputMode:o}=kh(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:a,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 a(n,f)}else if(e==="start")await fh(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await fh(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:o,human:`Project: ${p}
|
|
123
124
|
Lifecycle: ${e}
|
|
124
|
-
State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(
|
|
125
|
+
State: ${"state"in d?d.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:p,...d,projectRoot:void 0}}}}catch(a){let s=typeof a=="object"&&a!==null&&"code"in a?String(a.code):"PROJECT_PROCESS_FAILED";throw new T({code:s,message:a instanceof Error?a.message:"Project lifecycle operation failed.",exitCode:4,nextStep:"Inspect lifecycle status and project logs before retrying."})}}async function fh(e,t){let r=Y(JSON.parse(await re(N.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 Lo(Ta(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 AP(e){let{projectRoot:t,outputMode:r}=kh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),o=await n(t),i=ee(t),a=o.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=>o.platformDependencies.filter(d=>d.source===l).length,c=o.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${i}
|
|
125
126
|
Declared: ${o.declared.length}
|
|
126
127
|
Locked: ${o.locked.length}
|
|
127
128
|
Verified: ${o.verified.length}
|
|
128
129
|
Findings: ${o.findings.length}
|
|
129
130
|
Unmanaged platform dependencies: ${o.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
|
|
130
131
|
|
|
131
|
-
${[...
|
|
132
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:
|
|
132
|
+
${[...a,...c].join(`
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:i,...o,projectRoot:void 0}}}}async function EP(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:o,switchProjectPackageSources:i,verifyPackageSourceSwitch:a,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=N.resolve(t.values.project),d=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:l,approvedPlanId:t.values.approve}):o({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?a({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}
|
|
133
134
|
\u6765\u6E90\uFF1A${d.source}
|
|
134
135
|
Registry\uFF1A${d.registry??"workspace protocol"}
|
|
135
136
|
\u72B6\u6001\uFF1A${d.state}
|
|
@@ -141,24 +142,24 @@ Packages\uFF1A${d.packages.length}
|
|
|
141
142
|
${f.join(`
|
|
142
143
|
`)}${f.length>0?`
|
|
143
144
|
|
|
144
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function
|
|
145
|
-
Commands: ${
|
|
146
|
-
Environment: ${
|
|
145
|
+
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function PP(e){let{projectRoot:t,outputMode:r}=Fo(e,"Inspect"),n=Y(JSON.parse(await re(N.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 o=await Lo(Ta(n.template.id,n.template.version)),i=await Fg({projectRoot:t,commands:o.commands}),a=ee(t);return{outputMode:r,human:`Project: ${a}
|
|
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:a,template:`${o.templateId}@${o.version}`,...i}}}}async function NP(e){let{projectRoot:t,outputMode:r}=Fo(e,"Inspect"),n=await ma({projectRoot:t}).catch(o=>{throw new T({code:o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_UNAVAILABLE",message:o instanceof Error?o.message:"\u5E94\u7528\u914D\u7F6E\u4E0D\u53EF\u7528\u3002",exitCode:4,nextStep:"\u8BBE\u7F6E\u8BE5\u9879\u76EE\u72EC\u4EAB\u7684\u7EDD\u5BF9APP_CONFIG_DIR\uFF0C\u5E76\u7531\u90E8\u7F72\u63A7\u5236\u9762\u5B8C\u6210config init\u3002"})});return{outputMode:r,human:`\u5E94\u7528\uFF1A${n.application}
|
|
147
148
|
\u73AF\u5883\uFF1A${n.environment}
|
|
148
149
|
Config Dir\uFF1A${n.configDirectory}
|
|
149
150
|
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(o=>o.configured).length}/${n.entries.length}
|
|
150
151
|
${n.entries.map(o=>`${o.name}: ${o.display}`).join(`
|
|
151
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function
|
|
152
|
-
Operations: ${
|
|
153
|
-
Total: ${
|
|
154
|
-
Attention: ${
|
|
155
|
-
Status: ${
|
|
156
|
-
Units: ${
|
|
157
|
-
Healthy: ${
|
|
158
|
-
Attention: ${
|
|
159
|
-
Blocked: ${
|
|
160
|
-
`+
|
|
161
|
-
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:
|
|
152
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function OP(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(N.resolve(t.values.project)),n=ee(r),o=[];for(let a of await gh(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(a.endsWith(".json"))try{let s=JSON.parse(await re(N.join(r,".dyyto","workbench","tasks",a),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&o.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=zg(o,{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
|
+
Operations: ${i.plane}
|
|
154
|
+
Total: ${i.summary.total}
|
|
155
|
+
Attention: ${i.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...i}}}}async function SP(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(N.resolve(t.values.workspace));if(Y(JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let o=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await gh(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await re(N.join(l,"project-capabilities.json"))}catch{continue}o.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let i=[];for(let s of o){let c="invalid",l;try{let p=(await fd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=Hl(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await $o({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=Hl("invalid")}try{let d=Y(JSON.parse(await re(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await Ag({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}i.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let a=Eg({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:i});return{outputMode:z(e),human:`Workspace: ${a.workspace}
|
|
156
|
+
Status: ${a.status}
|
|
157
|
+
Units: ${a.summary.total}
|
|
158
|
+
Healthy: ${a.summary.healthy}
|
|
159
|
+
Attention: ${a.summary.attention}
|
|
160
|
+
Blocked: ${a.summary.blocked}
|
|
161
|
+
`+a.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
|
|
162
|
+
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function md(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 mh(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function Rh(e){let t=Y(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8"))),r=await Le(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 o=n.assets.filter(i=>!i.path.startsWith("src/"));return await Nr({projectRoot:e,expectedAssets:o}),{manifest:t,lock:r,locked:n,lockDigest:y(k(r))}}async function DP(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=N.resolve(t.values.project),n=await Rh(r),i=await(await md(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await ng({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 a=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(a!==void 0){let d=JSON.parse(await re(N.join(r,"package.json"),"utf8")),p=typeof d.repository=="string"?d.repository:d.repository!==null&&typeof d.repository=="object"?d.repository.url:void 0,f=`https://${a.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${a.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=zl({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(),...a===void 0?{}:{publication:a}});await eg({projectRoot:r,plan:c});let l=ee(r);return{outputMode:z(e),human:`Project: ${l}
|
|
162
163
|
Delivery: ${c.kind}
|
|
163
164
|
Artifact: ${c.artifact.identity}
|
|
164
165
|
Target: ${c.target.location}
|
|
@@ -170,62 +171,62 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
|
|
|
170
171
|
Approval: maintainer 2FA required outside Dyyto`}
|
|
171
172
|
Plan: ${c.planId}
|
|
172
173
|
State: reviewable
|
|
173
|
-
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function
|
|
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 jP(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=N.resolve(t.values.project),n=await qt({projectRoot:r,planId:t.values.approve}),o=await bn({projectRoot:r,planId:n.planId}),i=ee(r);if(o!==null)return{outputMode:z(e),human:`Project: ${i}
|
|
174
175
|
Delivery: verified
|
|
175
|
-
Receipt: ${o.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
176
|
+
Receipt: ${o.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,reused:!0,receipt:o}}};let a=n.kind==="npm-publish"?await kn({projectRoot:r,planId:n.planId}):null;if(a!==null)return{outputMode:z(e),human:`Project: ${i}
|
|
176
177
|
Delivery: staged
|
|
177
|
-
Stage: ${
|
|
178
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
178
|
+
Stage: ${mh(a.stageId)}
|
|
179
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,reused:!0,state:"staged",record:a}}};if((n.kind==="npm-publish"?await rg({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 Rh(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 md(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 tg({projectRoot:r,record:Zm({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Xm({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await og({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${i}
|
|
179
180
|
Delivery: staged
|
|
180
|
-
Stage: ${
|
|
181
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
181
|
+
Stage: ${mh(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=wa({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 Jl({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${i}
|
|
182
183
|
Delivery: verified
|
|
183
184
|
Receipt: ${f.receiptId}
|
|
184
|
-
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
185
|
+
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:i,receipt:f}}}}async function $P(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=N.resolve(t.values.project),n=await qt({projectRoot:r,planId:t.values.plan}),o=await bn({projectRoot:r,planId:n.planId}),i=ee(r);if(o!==null)return{outputMode:z(e),human:`Project: ${i}
|
|
185
186
|
Delivery: verified
|
|
186
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
187
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,receipt:o}}};let a=n.kind==="npm-publish"?await kn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await ag({projectRoot:r,planId:n.planId}):null;if(typeof t.values["stage-artifact"]=="string"){if(n.kind!=="npm-publish"||a===null)throw new D("DELIVERY_PRECONDITION_FAILED","Stage artifact review requires an existing npm Stage Record");let l=y(await re(N.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==a.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=Qm({planId:n.planId,stageId:a.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await ig({projectRoot:r,record:s})}let c=await(await md(n.kind)).inspect({projectRoot:r,plan:n});if(n.kind==="npm-publish"&&a!==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=wa({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:a.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 Jl({projectRoot:r,receipt:l}),{outputMode:z(e),human:`Project: ${i}
|
|
187
188
|
Delivery: verified
|
|
188
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
189
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:"verified",plan:n,stage:a,review:s,receipt:l,adapter:c}}}}if(n.kind==="npm-publish"&&a!==null){let l=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:z(e),human:`Project: ${i}
|
|
189
190
|
Delivery: staged
|
|
190
191
|
Plan: ${n.planId}
|
|
191
192
|
Artifact review: ${s===null?"pending":"verified"}
|
|
192
|
-
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
193
|
+
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:i,state:l,plan:n,stage:a,review:s,receipt:null,adapter:c}}}}if(n.kind==="npm-publish"&&c.state==="verified")throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","Live npm artifact is visible but no immutable Stage Record exists for this Plan");return{outputMode:z(e),human:`Project: ${i}
|
|
193
194
|
Delivery: ${c.state}
|
|
194
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
195
|
-
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...
|
|
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 CP(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(N.resolve(t.values.workspace)),n=new Bt(r),o={...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,a]=await Promise.all([n.list(o),n.summary(o)]);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:a}}}}async function TP(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 Bt(await Rt(N.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}
|
|
196
197
|
State: ${r.state}
|
|
197
198
|
Correlation: ${r.correlation}
|
|
198
199
|
Release: ${r.releaseId??"unknown"}
|
|
199
|
-
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function
|
|
200
|
-
Source Maps: ${
|
|
201
|
-
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:
|
|
202
|
-
${
|
|
203
|
-
\u6210\u719F\u5EA6\uFF1A${
|
|
204
|
-
`);return{outputMode:z(e),human:
|
|
200
|
+
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function LP(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(N.resolve(t.values.project)),n=await Rt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:o}=await import("./optional-runtime.js"),i=await o({workspaceRoot:n,projectRoot:r});return{outputMode:z(e),human:`Release: ${i.releaseId}
|
|
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 xP(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 o=await Da({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),i=o.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":o.items.map(a=>`${a.ref}
|
|
203
|
+
${a.summary}
|
|
204
|
+
\u6210\u719F\u5EA6\uFF1A${a.maturity}`).join(`
|
|
205
|
+
`);return{outputMode:z(e),human:i,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:o}}}async function VP(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 ja({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
|
|
205
206
|
${r.item.summary}
|
|
206
207
|
\u6210\u719F\u5EA6\uFF1A${r.item.maturity}
|
|
207
|
-
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function Rh(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(i=>i==="--version"||i==="--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:Dd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[o,...a]=r;return o==="catalog"&&a[0]==="search"?TP(a.slice(1)):o==="catalog"&&a[0]==="show"?LP(a.slice(1)):o==="create"?Ih(a):o==="scaffold"&&a[0]==="example"?vP(a.slice(1),t):o==="retrofit"?uP(a):o==="dev"||o==="build"||o==="test"||o==="package"?fP(o,a):o==="add"&&a[0]==="package"?mP(a.slice(1)):o==="add"&&a[0]==="application"?gP(a.slice(1)):o==="add"&&a[0]==="feature"?vh(a.slice(1),t):o==="remove"&&a[0]==="feature"?hP(a.slice(1),t):o==="plan"?yP(a):o==="upgrade"?IP(a,t):o==="apply"?pd(a,t):o==="verify"?ud(a):o==="inspect"?fd(a):o==="doctor"?NP(a):o==="recover"?bP(a):o==="lifecycle"&&typeof a[0]=="string"?kP(a[0],a.slice(1)):o==="packages"&&a[0]==="switch"?_P(a.slice(1)):o==="integrations"?RP(a):o==="maintenance"?AP(a):o==="config"&&a[0]==="inspect"?EP(a.slice(1)):o==="operations"?PP(a):o==="baseline"?wP(a):o==="delivery"&&a[0]==="plan"?OP(a.slice(1)):o==="delivery"&&a[0]==="apply"?DP(a.slice(1)):o==="delivery"&&a[0]==="inspect"?SP(a.slice(1)):o==="observe"&&a[0]==="errors"?jP(a.slice(1)):o==="observe"&&a[0]==="error"?$P(a.slice(1)):o==="observe"&&a[0]==="release"&&a[1]==="register"?CP(a.slice(2)):k(`Unknown command '${o}'.`)}import{createServer as xP}from"node:http";import{readFile as VP,readdir as uC,rm as fC}from"node:fs/promises";import{execFile as MP}from"node:child_process";import{promisify as UP}from"node:util";import FP from"node:path";var wC=UP(MP),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 qP(e){try{let t=JSON.parse(await VP(FP.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function _h(e){let t=new qt(e.workspaceRoot),r=[...e.allowedOrigins??await qP(e.workspaceRoot)],n=new gd,o={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},a=xP(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=>kg(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)=>{a.once("error",c),a.listen(e.port??4318,"127.0.0.1",()=>{a.off("error",c),s()})});let i=a.address();if(i===null||typeof i=="string")throw new Error("Collector did not expose a TCP address");return{server:a,origin:`http://127.0.0.1:${i.port}`,snapshot:()=>({...o}),close:()=>new Promise((s,c)=>a.close(l=>l?c(l):s()))}}import{createHash as BP}from"node:crypto";import{createServer as zP}from"node:http";import{readFile as Ah,realpath as Eh}from"node:fs/promises";import Vi from"node:path";var xe=class extends Error{constructor(r){super(r);this.code=r}code};function JP(e){return"sha512-"+BP("sha512").update(e).digest("base64")}async function qo(e){let t=await Eh(e).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await Ah(Vi.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 a of n.artifacts){let i=Vi.join(t,a.assetName),s=Vi.relative(t,await Eh(i).catch(()=>{throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Vi.isAbsolute(s))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await Ah(i);if(y(c)!==a.tarballDigest||JP(c)!==a.integrity)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");o.set(a.assetName,c)}return{root:t,bundle:n,assets:o}}function GP(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function Ph(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 WP(e,t){let r=a=>a.split(/[.-]/u).map(i=>/^\d+$/u.test(i)?Number(i):i),n=r(e),o=r(t);for(let a=0;a<Math.max(n.length,o.length);a+=1){let i=n[a]??0,s=o[a]??0;if(i!==s)return typeof i=="number"&&typeof s=="number"?i-s:String(i).localeCompare(String(s))}return 0}function KP(e,t){let r=new Map,n=new Map;for(let o of[e,...t])for(let a of o.bundle.artifacts){let i=`${a.packageName}@${a.version}`,s=r.get(i);if(s!==void 0&&Ph(s)!==Ph(a))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=o.assets.get(a.assetName);if(c===void 0)throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(a.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new xe("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(i,a),n.set(a.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function Nh(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=KP(t,r),a=e.hostname??"127.0.0.1",i=zP((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)=>WP(u.version,m.version));if(f.length>0){let u="http://"+a+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),h=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(h.byteLength)),c.end(l==="HEAD"?void 0:h);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=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)=>{i.once("error",c),i.listen(e.port,a,s)}).catch(()=>{throw new xe("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+a+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>GP(i)})}import{createHash as YP}from"node:crypto";import{execFile as HP}from"node:child_process";import{cp as XP,mkdir as Oh,mkdtemp as hd,readFile as Fi,realpath as Bo,rename as ZP,rm as Dh,stat as QP,writeFile as Ui}from"node:fs/promises";import{tmpdir as e0}from"node:os";import Se from"node:path";import{promisify as t0}from"node:util";import{gunzipSync as r0}from"node:zlib";var n0=t0(HP),o0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function a0(e){return"sha512-"+YP("sha512").update(e).digest("base64")}async function i0(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 a=await Bo(Se.join(r,o)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),i=Se.relative(r,a);if(i!==o||i.startsWith("..")||Se.isAbsolute(i))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Fi(Se.join(a,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:o,root:a,manifestBytes:s,manifest:c})}return n}function s0(e,t){let r=new Map(e.map(a=>[String(a.manifest.name),String(a.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let o={};for(let[a,i]of Object.entries(n)){if(typeof i!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=i.startsWith("workspace:")?r.get(a):i;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");o[a]=s}return Object.fromEntries(Object.entries(o).sort(([a],[i])=>a.localeCompare(i)))}function c0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(i=>i===0))return;let o=n.toString("utf8",0,100).replace(/\0.*$/su,""),a=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(a)||a<0)return;if(o===t)return e.subarray(r+512,r+512+a);r+=512+Math.ceil(a/512)*512}}function l0(e,t,r){let n;try{n=r0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let o=c0(n,"package/package.json");if(o===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let a;try{a=JSON.parse(o.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i=a.dependencies===void 0?{}:a.dependencies;if(typeof i!="object"||i===null||Array.isArray(i))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(i).sort(([c],[l])=>c.localeCompare(l)));if(a.name!==t.name||a.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function d0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function p0(e,t,r){let n=Se.join(await hd(Se.join(r,"stage-")),"package");await XP(e.root,n,{recursive:!0,filter:a=>Se.basename(a)!=="node_modules"});let o=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Ui(Se.join(n,"package.json"),`${JSON.stringify({...o,dependencies:t},null,2)}
|
|
208
|
-
`),n}async function
|
|
209
|
-
`,{flag:"wx",mode:384}).catch(async
|
|
210
|
-
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),o}async function
|
|
211
|
-
`,{mode:292}),await
|
|
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 m0(e,t,r){let n=l0(e,t.manifest),o=u0(t.manifest,n)?await f0(t,n,r):t.root,i;try{({stdout:i}=await i0("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:o,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a;try{a=JSON.parse(i)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let s=a[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let c=await Fa(De.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let d=a0.filter(p=>Object.hasOwn(l??{},p));return p0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:s0(c),tarballDigest:y(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function jh(e,t){let r=await c0(e,t),n=await hd(De.join(await Bo(r0()),"dyyto-local-artifact-pack-"));try{let o=await Promise.all(r.map(a=>m0(r,a,n)));o.sort((a,s)=>(a.artifact.packageName+"@"+a.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let i=Zl({artifacts:o.map(a=>a.artifact)});return{packages:r,bundle:i,bytes:new Map(o.map(a=>[a.artifact.assetName,a.bytes]))}}finally{await Dh(n,{recursive:!0,force:!0})}}function Ma(e,t){return De.join(e,".dyyto","artifact-plans",t+".json")}function g0(e,t){return De.join(e,".dyyto","package-artifacts",t)}async function $h(e){let t=await Bo(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await jh(t,e.packageRoots),n=e.now??new Date,o=Ql({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 Sh(De.dirname(Ma(t,o.planId)),{recursive:!0}),await Ua(Ma(t,o.planId),JSON.stringify(o,null,2)+`
|
|
210
|
+
`,{flag:"wx",mode:384}).catch(async i=>{if(i.code!=="EEXIST")throw i;if(await Fa(Ma(t,o.planId),"utf8")!==JSON.stringify(o,null,2)+`
|
|
211
|
+
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),o}async function Ch(e){let t=await Bo(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await Fa(Ma(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Gg(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 o=g0(t,n.bundle.bundleId);if(await t0(o).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let i=await jh(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 a=De.dirname(o);await Sh(a,{recursive:!0});let s=await hd(De.join(a,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>Ua(De.join(s,c.assetName),i.bytes.get(c.assetName),{mode:292}))),await Ua(De.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
|
|
212
|
+
`,{mode:292}),await e0(s,o)}catch(c){throw await Dh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:o}}var pr=class extends Error{constructor(r){super(r);this.code=r}code};function Th(e){let t=[Br(e.bundle),...(e.fallbackBundles??[]).map(Br)],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 pr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Pl({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"}),o=Nl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),i=t.flatMap(c=>Wg({bundle:c,registry:n,verifiedAt:e.resolvedAt})),a=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 pr("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let d of c.packageSources){let p=`${d.packageName}@${d.version}`,f=a.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 pr("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([o]),receipts:l,inspections:Object.freeze(c.packageSources.map(d=>{let p=a.get(`${d.packageName}@${d.version}`);return Object.freeze({...d,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as h0,open as y0,readFile as Id,rename as w0,rm as I0,writeFile as v0}from"node:fs/promises";import En from"node:path";import{resolvePnpmWorkspaceLock as b0}from"./optional-runtime.js";var k0=y(k({schemaVersion:1,completedRequests:[]}));function Lh(e){return y(k({schemaVersion:1,completedRequests:[...e].sort()}))}function vd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function yd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(o=>o==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let o=n+1;o<t.length;){let i=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[o]);if(!i){if(/^\S/u.test(t[o])&&t[o].trim())break;o+=1;continue}let a=[t[o]],s=o+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)a.push(t[s]),s+=1;r.set(vd(i[1]),y(Buffer.from(`${a.join(`
|
|
212
213
|
`)}
|
|
213
|
-
`))),o=s}return r}function wd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(
|
|
214
|
+
`))),o=s}return r}function wd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(i=>i===`${t}:`),o=[];if(n<0)return o;for(let i=n+1;i<r.length&&!(/^\S/u.test(r[i])&&r[i].trim());){let a=/^ (.+):\s*$/u.exec(r[i]);if(!a){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;o.push({key:vd(a[1]),bytes:Buffer.from(`${s.join(`
|
|
214
215
|
`)}
|
|
215
|
-
`)}),
|
|
216
|
-
`,{mode:384}),await
|
|
216
|
+
`)}),i=c}return o}function R0(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(wd(e,"snapshots").map(o=>[o.key,o.bytes]));return wd(e,"packages").map(o=>{let i=R0(o.key),a=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(o.bytes).toString("utf8"));if(!i||!a)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=vd(a[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(o.key);return{identity:o.key,packageName:i.packageName,version:i.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:y(d??k({dependencies:[]}))}}).sort((o,i)=>o.identity.localeCompare(i.identity))}function xh(e={}){return async t=>{let r=await b0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:En.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=yd(t.currentLockfile),o=yd(r.lockfile),i=await ea(t.topology.transactionRoot),a=new Map(i.map(p=>[p.relativeRoot,p.bytes])),s=await Id(En.join(t.topology.transactionRoot,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));s&&a.set(".",s),a.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...o].map(([p,f])=>{let u=a.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=wd(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 A0(e){try{let t=JSON.parse(await Id(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==Lh(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:k0,completedRequests:Object.freeze([])};throw t}}function Vh(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=Pa(JSON.parse(await Id(En.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=[...yd(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)),a={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=Eo({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,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 h0(e.stateRoot,{recursive:!0});let d=En.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await y0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=En.join(e.stateRoot,"state.json"),u=await A0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),h=Lh(g),w=Dm({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}),_=En.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await v0(_,`${JSON.stringify({schemaVersion:1,revision:h,completedRequests:g},null,2)}
|
|
217
|
+
`,{mode:384}),await w0(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:i}}finally{await p.close(),await I0(d,{force:!0})}}}}import{execFile as E0}from"node:child_process";import{mkdir as Pn,mkdtemp as P0,readFile as _t,readdir as N0,readlink as O0,realpath as kd,rename as S0,rm as Mh,stat as D0,writeFile as zr}from"node:fs/promises";import{tmpdir as j0}from"node:os";import ce from"node:path";import{promisify as $0}from"node:util";var C0=$0(E0);function Uh(e,t){return ce.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Fh(e){return ce.join(e,".dyyto","resolution-worker")}function bd(e){return ce.join(Fh(e),"build-receipt.json")}async function T0(e){let t=[];async function r(n){for(let o of await N0(n,{withFileTypes:!0}).catch(i=>i.code==="ENOENT"?[]:Promise.reject(i))){let i=ce.join(n,o.name);if(o.isSymbolicLink()){let a=await O0(i);t.push({path:ce.relative(e,i),digest:y(k({symlink:a})),bytes:0})}else if(o.isDirectory())await r(i);else if(o.isFile()){let a=await _t(i);t.push({path:ce.relative(e,i),digest:y(a),bytes:a.byteLength})}}}return await r(e),t.sort((n,o)=>n.path.localeCompare(o.path)),{cacheDigest:y(k(t)),cacheBytes:t.reduce((n,o)=>n+o.bytes,0)}}function qh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await P0(ce.join(await kd(j0()),"dyyto-resolution-warmup-")),n=ce.join(r,".home");await Pn(n);try{await zr(ce.join(r,"pnpm-workspace.yaml"),await _t(ce.join(e,"pnpm-workspace.yaml"))),await zr(ce.join(r,"pnpm-lock.yaml"),await _t(ce.join(e,"pnpm-lock.yaml")));let o=await _t(ce.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));o&&await zr(ce.join(r,"package.json"),o);for(let d of await ea(e)){let p=ce.join(r,...d.relativeRoot.split("/"));await Pn(p,{recursive:!0}),await zr(ce.join(p,"package.json"),d.bytes)}let i=ce.join(n,"userconfig.npmrc");await zr(i,`ignore-scripts=true
|
|
217
218
|
strict-peer-dependencies=true
|
|
218
219
|
manage-package-manager-versions=false
|
|
219
|
-
`,{mode:384});let
|
|
220
|
-
`;return await zr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await _t(s,"utf8")!==c)throw l}),
|
|
221
|
-
`,{mode:384}),await
|
|
222
|
-
`;return await
|
|
220
|
+
`,{mode:384});let a=ce.join(t,"store","shared"),s=ce.join(t,"cache");await Pn(a,{recursive:!0}),await Pn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await C0("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:a},timeout:9e5,maxBuffer:8*1024*1024});return{...await T0(t),commandDigest:y(k({executable:"corepack",args:c,stdoutDigest:y(l.stdout),stderrDigest:y(l.stderr)}))}}finally{await Mh(r,{recursive:!0,force:!0})}}}async function Bh(e){let t=await kd(e.workspaceRoot),r=e.now??new Date,[n,o]=await Promise.all([_t(ce.join(t,"pnpm-workspace.yaml")),_t(ce.join(t,"pnpm-lock.yaml"))]),i=y(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n)})),a=ed({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:y(n),rootLockDigest:y(o),cacheNamespace:`pnpm11-node24-${i.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=Uh(t,a.planId);await Pn(ce.dirname(s),{recursive:!0});let c=`${JSON.stringify(a,null,2)}
|
|
221
|
+
`;return await zr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await _t(s,"utf8")!==c)throw l}),a}async function zh(e){let t=await kd(e.workspaceRoot),r=Yg(JSON.parse(await _t(Uh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Ke("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,o]=await Promise.all([_t(ce.join(t,"pnpm-workspace.yaml")),_t(ce.join(t,"pnpm-lock.yaml"))]);if(y(n)!==r.workspaceManifestDigest||y(o)!==r.rootLockDigest)throw new Ke("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let i=Fh(t),a=await _t(bd(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(a)return Pa(JSON.parse(a));await Pn(i,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:i,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Ke("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=td({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=ce.join(i,`build-receipt.${r.planId.slice(7)}.tmp`);return await zr(l,`${JSON.stringify(c,null,2)}
|
|
222
|
+
`,{mode:384}),await S0(l,bd(t)),c}catch(s){throw await D0(bd(t)).then(()=>!0).catch(()=>!1)||await Mh(ce.join(i,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as L0,readFile as Jr,realpath as Jh,writeFile as x0}from"node:fs/promises";import Gr from"node:path";function Gh(e,t){return Gr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Wh(e){let t=await Jh(e.projectRoot),r=await Ut(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Jr(Gr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Jr(Gr.join(t,".dyyto","plans",`${n.planId}.json`));let o=JSON.parse(await Jr(Gr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(o.state!=="recovery-required"&&o.state!=="recovering"||!Array.isArray(o.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let i=[];for(let d of o.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await Jr(Gr.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 a=e.now??new Date,s=nd({transactionPlanId:n.planId,transactionRootDigest:y(r.transactionRoot),conflicts:i,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+30*6e4).toISOString()}),c=Gh(t,s.planId);await L0(Gr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
|
|
223
|
+
`;return await x0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Jr(c,"utf8")!==l)throw d}),s}async function Kh(e){let t=await Jh(e.projectRoot),r=await Ut(t),n=Hg(JSON.parse(await Jr(Gh(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 o of n.conflicts){let i=await Jr(Gr.join(r.transactionRoot,...o.path.split("/")));if(y(i)!==o.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return cl({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:o,currentDigest:i})=>({path:o,currentDigest:i}))})}function qa(e){return e.endsWith(`
|
|
223
224
|
`)?e:`${e}
|
|
224
|
-
`}function
|
|
225
|
-
Next: ${e.error.nextStep}`;return{stdout:"",stderr:
|
|
225
|
+
`}function Yh(e,t,r){return t==="json"?{stdout:qa(JSON.stringify(e)),stderr:""}:{stdout:qa(r),stderr:""}}function Hh(e,t){if(t==="json")return{stdout:"",stderr:qa(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
|
|
226
|
+
Next: ${e.error.nextStep}`;return{stdout:"",stderr:qa(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as V0,readFile as Jo,realpath as Xh}from"node:fs/promises";import Ve from"node:path";var ut=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function zo(e){let t=await V0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return Jo(e)}}async function Zh(e){let t=Ve.dirname(e);for(;t!==Ve.parse(t).root;){if(await zo(Ve.join(t,"pnpm-workspace.yaml"))&&await zo(Ve.join(t,"pnpm-lock.yaml"))&&await zo(Ve.join(t,"project-capabilities.json")))return t;t=Ve.dirname(t)}throw new ut("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function M0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Qh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),o=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();o&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
|
|
226
227
|
`)?"":`
|
|
227
228
|
`}verifyDepsBeforeRun: ${o}
|
|
228
|
-
`);let
|
|
229
|
+
`);let i=n.split(/\r?\n/u),a=[],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)){a.push(l.trim());continue}s&&l.trim()&&!/^\s/u.test(l)&&(s=!1)}let c=a.filter(l=>!r.split(/\r?\n/u).some(d=>d.trim()===l));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
|
|
229
230
|
`)?"":`
|
|
230
231
|
`}allowBuilds:
|
|
231
232
|
${c.map(l=>` ${l}`).join(`
|
|
@@ -233,10 +234,10 @@ ${c.map(l=>` ${l}`).join(`
|
|
|
233
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(`
|
|
234
235
|
`)}return Buffer.from(r.endsWith(`
|
|
235
236
|
`)?r:`${r}
|
|
236
|
-
`)}async function
|
|
237
|
-
`);continue}r=o}catch{
|
|
238
|
-
`);continue}let n=await
|
|
239
|
-
`)}}import{createHash as
|
|
237
|
+
`)}async function ey(e){let t=await Xh(Ve.resolve(e.projectRoot)),r=await Zh(t),n=Ve.relative(r,t).split(Ve.sep).join("/");if(!n||n.startsWith("../"))throw new ut("WORKSPACE_TOPOLOGY_OWNER_MISSING");let o=await zo(Ve.join(t,"pnpm-lock.yaml")),i=await zo(Ve.join(t,"pnpm-workspace.yaml"));if(!o&&!i)throw new ut("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let a=await Jo(Ve.join(r,"pnpm-lock.yaml")),s=await Jo(Ve.join(r,"pnpm-workspace.yaml"));if(!M0(a.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?Qh(s,i):s,l=[...y(c)!==y(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:y(s),desiredDigest:y(c)}]:[],...o?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:y(o)}]:[],...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=ke({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 Mt({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function ty(e){let t=await Xh(Ve.resolve(e.projectRoot)),r=await Zh(t),n=await jr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let o=new Map,i=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(i){let c=await Jo(Ve.join(t,"pnpm-workspace.yaml")),l=await Jo(Ve.join(r,"pnpm-workspace.yaml")),d=Qh(l,c);if(y(d)!==i.desiredDigest)throw new ut("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");o.set("pnpm-workspace.yaml",d)}let a=await ir({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:o,now:e.now??new Date().toISOString()}),s=await ar(a);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as U0}from"node:readline";import Ba from"node:process";var F0=[{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 Rd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function za(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Go(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function q0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return za(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:On},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 za(r,{tools:F0});if(e.method!=="tools/call")return Go(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Rd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Rd(e.params.arguments))return Go(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let o;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");o=await Da({...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");o=await ja({ref:n.ref,...t===void 0?{}:{roots:t}})}else return Go(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return za(r,{content:[{type:"text",text:JSON.stringify(o)}],structuredContent:o})}catch(o){let i=o instanceof Error?o.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return za(r,{isError:!0,content:[{type:"text",text:i}]})}}async function ry(){let e=U0({input:Ba.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let o=JSON.parse(t);if(!Rd(o)||o.jsonrpc!=="2.0"||typeof o.method!="string"){Ba.stdout.write(`${JSON.stringify(Go(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
|
|
238
|
+
`);continue}r=o}catch{Ba.stdout.write(`${JSON.stringify(Go(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
|
|
239
|
+
`);continue}let n=await q0(r);n!==null&&Ba.stdout.write(`${JSON.stringify(n)}
|
|
240
|
+
`)}}import{createHash as B0}from"node:crypto";import{chmod as z0,lstat as J0,mkdir as G0,readFile as Ga,realpath as ny,rename as W0,unlink as K0,writeFile as Y0}from"node:fs/promises";import Be from"node:path";var _d="1.0.0",Gt=Object.freeze({"@aipt/cli":"0.1.23","@aipt/idp-cli":"0.1.2","@aipt/idp-deploy":"0.1.5"}),oy=Object.entries(Gt).map(([e,t])=>`${e}@${t}`),Ed="<!-- dyyto:agent-policy:start -->",Wo="<!-- dyyto:agent-policy:end -->",He=class extends Error{constructor(r,n){super(n);this.code=r}code},Ye=e=>`sha256:${B0("sha256").update(e).digest("hex")}`,Nn=e=>Array.isArray(e)?`[${e.map(Nn).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)}:${Nn(r)}`).join(",")}}`:JSON.stringify(e),Ja=`${Ed}
|
|
240
241
|
## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
|
|
241
242
|
|
|
242
243
|
\u672C\u9879\u76EE\u7531 Dyyto \u7EB3\u7BA1\u3002\u5F00\u59CB\u7F16\u7801\u524D\u6267\u884C \`dyyto context --project .\` \u4E0E \`dyyto doctor --project .\`\u3002
|
|
@@ -245,13 +246,13 @@ ${c.map(l=>` ${l}`).join(`
|
|
|
245
246
|
- \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
|
|
246
247
|
- \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
|
|
247
248
|
- \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
|
|
248
|
-
${Wo}`;function
|
|
249
|
+
${Wo}`;function H0(e,t){let r=`${t}
|
|
249
250
|
|
|
250
|
-
${
|
|
251
|
+
${Ja}
|
|
251
252
|
`,n=e.indexOf(Ed),o=e.indexOf(Wo);if(n<0&&o<0)return e.length===0?r:`${e.trimEnd()}
|
|
252
253
|
|
|
253
|
-
${
|
|
254
|
-
`;if(n<0||o<n)throw new He("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${
|
|
254
|
+
${Ja}
|
|
255
|
+
`;if(n<0||o<n)throw new He("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${Ja}${e.slice(o+Wo.length)}`}function X0(e){let t=e.indexOf(Ed),r=e.indexOf(Wo);if(t<0&&r<0)return e;if(t<0||r<t)throw new He("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+Wo.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
|
|
255
256
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
|
|
256
257
|
name: dyyto-engineering`)?null:`${n}
|
|
257
258
|
`}var Ad=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
|
|
@@ -263,14 +264,14 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
263
264
|
---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
|
|
264
265
|
name: dyyto-engineering
|
|
265
266
|
description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
|
|
266
|
-
---`]];async function Pd(e){if(!Be.isAbsolute(e))throw new He("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await
|
|
267
|
-
`,o=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:_d,digest:Ye(
|
|
268
|
-
`,
|
|
269
|
-
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",o],[".dyyto/documentation.lock.json",
|
|
270
|
-
`;if(l&&l!==d)throw new He("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await
|
|
271
|
-
`),{plan:
|
|
267
|
+
---`]];async function Pd(e){if(!Be.isAbsolute(e))throw new He("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await ny(e),r=await J0(t);if(!r.isDirectory()||r.isSymbolicLink())throw new He("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Wr(e){return Ga(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function Wa(e,t){await G0(Be.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await Y0(r,t,{mode:384,flag:"wx"}),await W0(r,e),await z0(e,e.endsWith(".json")?384:420)}function Z0(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Gt["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:a998adc964edea5ab17eadfeeb14f8503fe4a3636e4e6bae7c19aa56ee1baa21"},{id:"vibe-coding-guide",package:"@aipt/cli",version:Gt["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:e630a00032f05a639f2f09b484026c93a356fcefddd56aaf95d3b0bf4e224902"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:Gt["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:8d46b5486e532a4a5739d4bfd2675abf9de487681d91155e889fbf4cb8186208"},{id:"idp-integration",package:"@aipt/idp-cli",version:Gt["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:ad16f812d516763140c14efe8a0afb275b420987d23e0d6071fbbb7312b7324c"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Gt["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:4d86d7e7ed8619fa750430989afefe71e033673adedb924bb60b4272d7d2e3f6"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:Gt["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:d5ae60d7ef71422721b9fe34aaf11ad118d7e4a9ffacd9832aa69c259ef927f8"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:Gt["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:Ye(Nn(e))}))}async function iy(e){let t=await Pd(e),r=[];for(let[p,f]of Ad){let u=await Wr(Be.join(t,p)),m=H0(u,f);r.push({path:p,preimageDigest:Ye(u),desired:m,desiredDigest:Ye(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Gt},null,2)}
|
|
268
|
+
`,o=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:_d,digest:Ye(Ja)},adapters:Ad.map(([p])=>p)},null,2)}
|
|
269
|
+
`,i=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:Z0()},null,2)}
|
|
270
|
+
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",o],[".dyyto/documentation.lock.json",i]]){let u=await Wr(Be.join(t,p));r.push({path:p,preimageDigest:Ye(u),desired:f,desiredDigest:Ye(f)})}let a={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:_d,files:r,createdAt:new Date().toISOString()},s={...a,planId:Ye(Nn(a))},c=Be.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Wr(c),d=`${JSON.stringify(s,null,2)}
|
|
271
|
+
`;if(l&&l!==d)throw new He("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await Wa(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function ay(e){let t=await Pd(e),r=[];for(let[c]of Ad){let l=await Wr(Be.join(t,c)),d=X0(l);r.push({path:c,preimageDigest:Ye(l),desired:d,desiredDigest:Ye(d??"")})}let n=".dyyto/agent-policy.lock.json",o=await Wr(Be.join(t,n));r.push({path:n,preimageDigest:Ye(o),desired:null,desiredDigest:Ye("")});let i={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:_d,files:r,createdAt:new Date().toISOString()},a={...i,planId:Ye(Nn(i))},s=Be.join(t,".dyyto/plans/bootstrap",`${a.planId.slice(7)}.json`);return await Wa(s,`${JSON.stringify(a,null,2)}
|
|
272
|
+
`),{plan:a,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Nd(e,t){if(!Be.isAbsolute(e))throw new He("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Ga(await ny(e),"utf8")),{planId:n,...o}=r;if(n!==t||Ye(Nn(o))!==n)throw new He("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let a of r.files)if(Ye(await Wr(Be.join(r.projectRoot,a.path)))!==a.preimageDigest)throw new He("BOOTSTRAP_PREIMAGE_CHANGED",`${a.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let i=Be.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let a of r.files){let s=Be.join(r.projectRoot,a.path),c=await Wr(s);c&&c!==a.desired&&await Wa(Be.join(i,a.path),c),a.desired===null?c&&await K0(s):c!==a.desired&&await Wa(s,a.desired)}return{schemaVersion:1,status:"verified",planId:n,projectRoot:r.projectRoot,changed:r.files.filter(a=>a.preimageDigest!==a.desiredDigest).map(a=>a.path),preimageDirectory:i}}async function sy(e){let t=await Pd(e),r=JSON.parse(await Ga(Be.join(t,".dyyto/toolchain.lock.json"),"utf8")),n=JSON.parse(await Ga(Be.join(t,".dyyto/documentation.lock.json"),"utf8"));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"]}}var cy=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
|
|
272
273
|
|
|
273
|
-
\u5148\u6267\u884C context \u4E0E doctor\
|
|
274
|
+
\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
|
|
274
275
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
275
276
|
|
|
276
277
|
\u4E1A\u52A1\u5F00\u53D1\u4EE5 dyyto \u4E3A\u5165\u53E3\uFF1Bidp \u53EA\u8D1F\u8D23\u7EDF\u4E00\u67E5\u8BE2\u548C\u59D4\u6258\uFF0C\u6309\u9879\u76EE\u5DE5\u5177\u94FE\u9501\u8C03\u7528\u5BF9\u5E94 Kernel\u3002
|
|
@@ -279,7 +280,7 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
279
280
|
\u4F7F\u7528 idpctl app config-init \u4E0E local app plan/apply/verify\uFF1B\u672C\u5730 Compose \u4E0D\u63A8\u9001\u8FDC\u7A0B OCI\uFF0C\u751F\u4EA7\u4EA4\u4ED8\u4ECD\u9501\u5B9A\u591A\u67B6\u6784\u955C\u50CF\u6458\u8981\u3002
|
|
280
281
|
`,"vibe-coding-guide":`# Vibe Coding \u63A5\u5165
|
|
281
282
|
|
|
282
|
-
\
|
|
283
|
+
\u5148\u7528 idp-setup \u521D\u59CB\u5316 Sources \u672C\u5730\u73AF\u5883\uFF0C\u518D\u8FD0\u884C Bootstrap\u3002\u968F\u540E\u6BCF\u8F6E\u5148\u6267\u884C context \u4E0E doctor\uFF0C\u518D\u67E5\u8BE2 Catalog\uFF1BAgent \u89C4\u5219\u53EA\u4FDD\u7559\u77ED\u5165\u53E3\uFF0C\u5B8C\u6574\u89C4\u8303\u7531\u7248\u672C\u5316 npm \u5305\u63D0\u4F9B\u3002
|
|
283
284
|
`,"toolchain-troubleshooting":`# \u5DE5\u5177\u94FE\u8BCA\u65AD
|
|
284
285
|
|
|
285
286
|
\u6267\u884C type -a dyyto idp idpctl \u4EE5\u53CA\u5404\u547D\u4EE4\u7684 --version --json\uFF1B\u4EE5\u9879\u76EE toolchain.lock.json \u4E3A\u51C6\uFF0C\u66F4\u65B0\u540E\u6267\u884C hash -r\u3002
|
|
@@ -289,63 +290,63 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
289
290
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
290
291
|
|
|
291
292
|
\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
|
|
292
|
-
`})[e];function Me(e){e.stdout.length>0&&je.stdout.write(e.stdout),e.stderr.length>0&&je.stderr.write(e.stderr)}async function
|
|
293
|
-
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${
|
|
294
|
-
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)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
|
|
295
|
-
`:
|
|
296
|
-
Plan\uFF1A${
|
|
293
|
+
`})[e];function Me(e){e.stdout.length>0&&je.stdout.write(e.stdout),e.stderr.length>0&&je.stderr.write(e.stderr)}async function eN(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),o=e[n+1],i=e.flatMap((p,f)=>p==="--artifact-fallback-bundle"&&e[f+1]!==void 0?[e[f+1]]:[]),a=e.indexOf("--artifact-port"),s=Number(e[a+1]),c=[t>=0,n>=0,a>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||o===void 0||!/^sha256:[a-f0-9]{64}$/u.test(o)||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 qo(jt.resolve(r,".dyyto","package-artifacts",o)),d=await Promise.all(i.map(p=>qo(jt.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==o)throw new pr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Th({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:Vh({stateRoot:jt.resolve(r,".dyyto","resolution-worker"),engine:xh()}),packageStoreRoot:jt.resolve(r,".dyyto","resolution-worker","store")}}async function $T(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)throw new He("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let i=await ay(jt.resolve(o)),a=e.includes("--apply")?await Nd(i.planFile,i.plan.planId):{status:"planned",planId:i.plan.planId,planFile:i.planFile,changed:i.changed};Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:a})}
|
|
294
|
+
`:`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"),o=n<0?je.cwd():e[n+1];if(!o)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 iy(jt.resolve(o)),a=e.includes("--apply");if(a&&!e.includes("--skip-tool-install")){let c=Q0("corepack",["pnpm","add","--global","--global-bin-dir",jt.dirname(je.execPath),...oy],{encoding:"utf8",shell:!1,env:je.env});if(c.error||c.status!==0)throw new He("BOOTSTRAP_TOOLCHAIN_INSTALL_FAILED","\u7CBE\u786E\u5DE5\u5177\u94FE\u5B89\u88C5\u5931\u8D25\uFF0C\u9879\u76EE\u8D44\u4EA7\u5C1A\u672AApply\u3002")}let s=a?await Nd(i.planFile,i.plan.planId):{status:"planned",planId:i.plan.planId,planFile:i.planFile,changed:i.changed};Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:a?"bootstrap-apply":"bootstrap-plan",result:s})}
|
|
296
|
+
`:a?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
297
|
+
Plan\uFF1A${i.plan.planId}
|
|
297
298
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
298
299
|
Next\uFF1Adyyto context --project ${o}
|
|
299
|
-
`:`Bootstrap Plan\uFF1A${
|
|
300
|
-
\u6587\u4EF6\uFF1A${
|
|
301
|
-
\u53D8\u66F4\uFF1A${
|
|
300
|
+
`:`Bootstrap Plan\uFF1A${i.plan.planId}
|
|
301
|
+
\u6587\u4EF6\uFF1A${i.planFile}
|
|
302
|
+
\u53D8\u66F4\uFF1A${i.changed.join("\u3001")||"\u65E0"}
|
|
302
303
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
303
|
-
`,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)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
|
|
304
|
-
`:`${
|
|
304
|
+
`,stderr:""});return}if(e[0]==="context"){let n=e.indexOf("--project"),o=n<0?je.cwd():e[n+1];if(!o)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 sy(jt.resolve(o));Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context",result:i})}
|
|
305
|
+
`:`${i.intent}
|
|
305
306
|
|
|
306
307
|
\u7F16\u7801\u524D\uFF1A
|
|
307
|
-
${
|
|
308
|
+
${i.requiredBeforeCoding.map(a=>`- ${a}`).join(`
|
|
308
309
|
`)}
|
|
309
310
|
|
|
310
311
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
311
|
-
${
|
|
312
|
+
${i.prohibitions.map(a=>`- ${a}`).join(`
|
|
312
313
|
`)}
|
|
313
|
-
`,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),o=e[n+1],
|
|
314
|
-
`:
|
|
315
|
-
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${
|
|
316
|
-
\u72B6\u6001\uFF1A${
|
|
317
|
-
Next\uFF1Adyyto topology apply --project ${o} --approve ${
|
|
318
|
-
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],
|
|
314
|
+
`,stderr:""});return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),o=e[n+1],i=o?cy(o):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"});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:o,content:i}})}
|
|
315
|
+
`:i,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 ry();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 o=e.indexOf("--output");if(o<0||e[o+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"),a=i<0?new Date().toISOString():e[i+1];je.stdout.write(uh(await ph({generatedAt:a})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)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 ey({projectRoot:o});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:i})}
|
|
316
|
+
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${i.plan.planId}
|
|
317
|
+
\u72B6\u6001\uFF1A${i.plan.state}
|
|
318
|
+
Next\uFF1Adyyto topology apply --project ${o} --approve ${i.plan.planId}
|
|
319
|
+
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],i=e.indexOf("--approve"),a=e[i+1];if(n<0||!o||i<0||!a)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 ty({projectRoot:o,approvedPlanId:a});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
|
|
319
320
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
320
321
|
Next\uFF1Adyyto topology inspect --project ${o}
|
|
321
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)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
|
|
322
|
-
`:`Recovery Override Plan\uFF1A${
|
|
323
|
-
\u51B2\u7A81\uFF1A${
|
|
324
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],
|
|
322
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),o=e[n+1];if(n<0||!o)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 Wh({projectRoot:o});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:i}})}
|
|
323
|
+
`:`Recovery Override Plan\uFF1A${i.planId}
|
|
324
|
+
\u51B2\u7A81\uFF1A${i.conflicts.length}
|
|
325
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),o=e[n+1],i=e.indexOf("--approve"),a=e[i+1];if(n<0||!o||i<0||!a)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 Kh({projectRoot:o,approvedPlanId:a});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
|
|
325
326
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
326
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],
|
|
327
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],i=e.indexOf("--maximum-bytes"),a=Number(e[i+1]);if(n<0||o===void 0||i<0||!Number.isSafeInteger(a)||a<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 Bh({workspaceRoot:o,maximumBytes:a});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
|
|
327
328
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
328
329
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
329
330
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
330
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],
|
|
331
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],i=e.indexOf("--approve"),a=e[i+1];if(n<0||o===void 0||i<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new T({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Apply \u9700\u8981 --workspace \u548C\u7CBE\u786E --approve Plan ID\u3002",exitCode:2,nextStep:"\u68C0\u67E5\u4E0D\u53EF\u53D8 Build Plan\u3002"});let s=await zh({workspaceRoot:o,approvedPlanId:a,warmup:qh()});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
|
|
331
332
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
332
333
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
333
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],
|
|
334
|
-
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${
|
|
335
|
-
Bundle\uFF1A${
|
|
334
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),o=e[n+1],i=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||o===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 a=await $h({workspaceRoot:o,packageRoots:i});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:a}})}
|
|
335
|
+
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${a.planId}
|
|
336
|
+
Bundle\uFF1A${a.bundle.bundleId}
|
|
336
337
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
337
|
-
Next\uFF1Adyyto artifacts apply --workspace ${o} --approve ${
|
|
338
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],
|
|
338
|
+
Next\uFF1Adyyto artifacts apply --workspace ${o} --approve ${a.planId}
|
|
339
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),o=e[n+1],i=e.indexOf("--approve"),a=e[i+1];if(n<0||o===void 0||i<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))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 Ch({workspaceRoot:o,approvedPlanId:a});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
|
|
339
340
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
340
341
|
Channel\uFF1Adevelopment
|
|
341
342
|
Next\uFF1Adyyto artifacts serve --workspace ${o} --bundle ${s.bundleId} --port 4873
|
|
342
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1],
|
|
343
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1],i=e.indexOf("--bundle"),a=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||o===void 0||i<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a)||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 Oh({bundleRoot:jt.resolve(o,".dyyto","package-artifacts",a),fallbackBundleRoots:s.map(f=>jt.resolve(o,".dyyto","package-artifacts",f)),port:l});Me({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"}})}
|
|
343
344
|
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
|
|
344
345
|
\u4E3B Bundle\uFF1A${d.bundle.bundleId}
|
|
345
346
|
Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
|
|
346
347
|
Channel\uFF1Adevelopment
|
|
347
|
-
`,stderr:""});let p=async()=>{await d.close(),je.exit(0)};je.once("SIGINT",p),je.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1];if(n<0||o===void 0)throw new T({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let
|
|
348
|
+
`,stderr:""});let p=async()=>{await d.close(),je.exit(0)};je.once("SIGINT",p),je.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),o=e[n+1];if(n<0||o===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"),a=i<0?void 0:Number(e[i+1]);if(a!==void 0&&(!Number.isSafeInteger(a)||a<1||a>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 Ah({workspaceRoot:o,...a===void 0?{}:{port:a}});Me({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
|
|
348
349
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
349
|
-
`,stderr:""});let c=async()=>{await s.close(),je.exit(0)};je.once("SIGINT",c),je.once("SIGTERM",c),await new Promise(()=>{})}let r=await
|
|
350
|
+
`,stderr:""});let c=async()=>{await s.close(),je.exit(0)};je.once("SIGINT",c),je.once("SIGTERM",c),await new Promise(()=>{})}let r=await _h(e,await eN(e));Me(Yh(r.value,r.outputMode,r.human))}catch(r){if(je.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;je.stderr.write(`${r.stack??r.message}${s.map(l=>`
|
|
350
351
|
Cause: ${l}`).join("")}
|
|
351
|
-
`)}let n=r;if(r instanceof He)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
|
|
352
|
+
`)}let n=r;if(r instanceof He)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 j)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 xe)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 pr)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 Ke)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 _e)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 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 o=Od(n),i=n instanceof T?n:o===null?null:new T(o),a={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}}};Me(Hh(a,t)),je.exitCode=i?.exitCode??1}}export{$T as runCommand};
|