@aipt/cli 0.1.32 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/application-runner.js +211 -208
- package/dist/application.js +4 -3
- package/dist/chunk.js +3 -2
- package/dist/optional-runtime.js +7 -7
- package/dist/package-releases/aipt--cli/0.1.33/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.34/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.6/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.7/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.9/release.json +33 -0
- package/docs/bootstrap.md +1 -1
- package/docs/vibe-coding-guide.md +1 -1
- package/documentation-manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1,177 +1,177 @@
|
|
|
1
|
-
import{a as E,b as tn,c as Tn,d as Jp,e as j,f as Wp,g as Kp,h as Yp,i as Hp,j as Xp}from"./chunk.js";var Mn=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var xn=class{};Y._CodeOrName=xn;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var wr=class extends xn{constructor(t){if(super(),!Y.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Y.Name=wr;var ot=class extends xn{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 wr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=ot;Y.nil=new ot("");function Zp(e,...t){let r=[e[0]],n=0;for(;n<t.length;)cs(r,t[n]),r.push(e[++n]);return new ot(r)}Y._=Zp;var ss=new ot("+");function Qp(e,...t){let r=[Vn(e[0])],n=0;for(;n<t.length;)r.push(ss),cs(r,t[n]),r.push(ss,Vn(e[++n]));return $h(r),new ot(r)}Y.str=Qp;function cs(e,t){t instanceof ot?e.push(...t._items):t instanceof wr?e.push(t):e.push(xh(t))}Y.addCodeArg=cs;function $h(e){let t=1;for(;t<e.length-1;){if(e[t]===ss){let r=Lh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Lh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof wr||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 wr))return`"${e}${t.slice(1)}`}function Th(e,t){return t.emptyStr()?e:e.emptyStr()?t:Qp`${e}${t}`}Y.strConcat=Th;function xh(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Vn(Array.isArray(e)?e.join(","):e)}function Vh(e){return new ot(Vn(e))}Y.stringify=Vh;function Vn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=Vn;function Mh(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new ot(`.${e}`):Zp`[${e}]`}Y.getProperty=Mh;function Fh(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new ot(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=Fh;function Uh(e){return new ot(e.toString())}Y.regexpCode=Uh});var ds=E(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.ValueScope=Ye.ValueScopeName=Ye.Scope=Ye.varKinds=Ye.UsedValueState=void 0;var Ke=Mn(),ls=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},na;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(na||(Ye.UsedValueState=na={}));Ye.varKinds={const:new Ke.Name("const"),let:new Ke.Name("let"),var:new Ke.Name("var")};var ia=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Ke.Name?t:this.name(t)}name(t){return new Ke.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}}};Ye.Scope=ia;var aa=class extends Ke.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Ke._)`.${new Ke.Name(r)}[${n}]`}};Ye.ValueScopeName=aa;var qh=(0,Ke._)`\n`,ps=class extends ia{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?qh:Ke.nil}}get(){return this._scope}name(t){return new aa(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:a}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let p=s.get(o);if(p)return p}else s=this._values[a]=new Map;s.set(o,i);let c=this._scope[a]||(this._scope[a]=[]),l=c.length;return c[l]=r.ref,i.setValue(r,{property:a,itemIndex:l}),i}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Ke._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let a=Ke.nil;for(let o in t){let s=t[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(l=>{if(c.has(l))return;c.set(l,na.Started);let p=r(l);if(p){let d=this.opts.es5?Ye.varKinds.var:Ye.varKinds.const;a=(0,Ke._)`${a}${d} ${l} = ${p};${this.opts._n}`}else if(p=i?.(l))a=(0,Ke._)`${a}${p}${this.opts._n}`;else throw new ls(l);c.set(l,na.Completed)})}return a}};Ye.ValueScope=ps});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Mn(),wt=ds(),Xt=Mn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Xt.Name}});var la=ds();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return la.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return la.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return la.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return la.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var xt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},us=class extends xt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?wt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=nn(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},oa=class extends xt{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=nn(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return ca(t,this.rhs)}},fs=class extends oa{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ms=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},gs=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},ys=class extends xt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},hs=class extends xt{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=nn(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},Fn=class extends xt{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,i=n.length;for(;i--;){let a=n[i];a.optimizeNames(t,r)||(Bh(t,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>br(t,r.names),{})}},Vt=class extends Fn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},ws=class extends Fn{},rn=class extends Vt{};rn.kind="else";var Ir=class e extends Vt{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 rn(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(ed(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=nn(this.condition,t,r),this}get names(){let t=super.names;return ca(t,this.condition),this.else&&br(t,this.else.names),t}};Ir.kind="if";var vr=class extends Vt{};vr.kind="for";var Is=class extends vr{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=nn(this.iteration,t,r),this}get names(){return br(super.names,this.iteration.names)}},vs=class extends vr{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?wt.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=ca(super.names,this.from);return ca(t,this.to)}},sa=class extends vr{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=nn(this.iterable,t,r),this}get names(){return br(super.names,this.iterable.names)}},Un=class extends Vt{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)}};Un.kind="func";var qn=class extends Fn{render(t){return"return "+super.render(t)}};qn.kind="return";var bs=class extends Vt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&br(t,this.catch.names),this.finally&&br(t,this.finally.names),t}},Bn=class extends Vt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Bn.kind="catch";var zn=class extends Vt{render(t){return"finally"+super.render(t)}};zn.kind="finally";var ks=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=t,this._scope=new wt.Scope({parent:t}),this._nodes=[new ws]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,i){let a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new us(t,a,n)),a}const(t,r,n){return this._def(wt.varKinds.const,t,r,n)}let(t,r,n){return this._def(wt.varKinds.let,t,r,n)}var(t,r,n){return this._def(wt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new oa(t,r,n))}add(t,r){return this._leafNode(new fs(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new hs(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new Ir(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 Ir(t))}else(){return this._elseNode(new rn)}endIf(){return this._endBlockNode(Ir,rn)}_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,i,a=this.opts.es5?wt.varKinds.var:wt.varKinds.let){let o=this._scope.toName(t);return this._for(new vs(a,o,r,n),()=>i(o))}forOf(t,r,n,i=wt.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let o=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${o}.length`,s=>{this.var(a,(0,z._)`${o}[${s}]`),n(a)})}return this._for(new sa("of",i,a,r),()=>n(a))}forIn(t,r,n,i=this.opts.es5?wt.varKinds.var:wt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let a=this._scope.toName(t);return this._for(new sa("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(vr)}label(t){return this._leafNode(new ms(t))}break(t){return this._leafNode(new gs(t))}return(t){let r=new qn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(qn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new bs;if(this._blockNode(i),this.code(t),r){let a=this.name("e");this._currNode=i.catch=new Bn(a),r(a)}return n&&(this._currNode=i.finally=new zn,this.code(n)),this._endBlockNode(Bn,zn)}throw(t){return this._leafNode(new ys(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=z.nil,n,i){return this._blockNode(new Un(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Un)}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 Ir))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};F.CodeGen=ks;function br(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function ca(e,t){return t instanceof z._CodeOrName?br(e,t.names):e}function nn(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((a,o)=>(o instanceof z.Name&&(o=n(o)),o instanceof z._Code?a.push(...o._items):a.push(o),a),[]));function n(a){let o=r[a.str];return o===void 0||t[a.str]!==1?a:(delete t[a.str],o)}function i(a){return a instanceof z._Code&&a._items.some(o=>o instanceof z.Name&&t[o.str]===1&&r[o.str]!==void 0)}}function Bh(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function ed(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${_s(e)}`}F.not=ed;var zh=td(F.operators.AND);function Gh(...e){return e.reduce(zh)}F.and=Gh;var Jh=td(F.operators.OR);function Wh(...e){return e.reduce(Jh)}F.or=Wh;function td(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${_s(t)} ${e} ${_s(r)}`}function _s(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var ae=x(),Kh=Mn();function Yh(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=Yh;function Hh(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(id(e,t),!ad(t,e.self.RULES.all))}U.alwaysValidSchema=Hh;function id(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let a in t)i[a]||cd(e,`unknown keyword: "${a}"`)}U.checkUnknownRules=id;function ad(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=ad;function Xh(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}U.schemaHasRulesButRef=Xh;function Zh({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ae._)`${r}`}return(0,ae._)`${e}${t}${(0,ae.getProperty)(n)}`}U.schemaRefOrVal=Zh;function Qh(e){return od(decodeURIComponent(e))}U.unescapeFragment=Qh;function ew(e){return encodeURIComponent(Rs(e))}U.escapeFragment=ew;function Rs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Rs;function od(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=od;function tw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=tw;function rd({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,a,o,s)=>{let c=o===void 0?a:o instanceof ae.Name?(a instanceof ae.Name?e(i,a,o):t(i,a,o),o):a instanceof ae.Name?(t(i,o,a),a):r(a,o);return s===ae.Name&&!(c instanceof ae.Name)?n(i,c):c}}U.mergeEvaluated={props:rd({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ae._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ae._)`${r} || {}`).code((0,ae._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ae._)`${r} || {}`),Es(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:sd}),items:rd({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,ae._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,ae._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function sd(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&Es(e,r,t),r}U.evaluatedPropsToName=sd;function Es(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}U.setEvaluated=Es;var nd={};function rw(e,t){return e.scopeValue("func",{ref:t,code:nd[t.code]||(nd[t.code]=new Kh._Code(t.code))})}U.useFunc=rw;var As;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(As||(U.Type=As={}));function nw(e,t,r){if(e instanceof ae.Name){let n=t===As.Num;return r?n?(0,ae._)`"[" + ${e} + "]"`:(0,ae._)`"['" + ${e} + "']"`:n?(0,ae._)`"/" + ${e}`:(0,ae._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ae.getProperty)(e).toString():"/"+Rs(e)}U.getErrorPath=nw;function cd(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}U.checkStrictMode=cd});var st=E(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});var xe=x(),iw={data:new xe.Name("data"),valCxt:new xe.Name("valCxt"),instancePath:new xe.Name("instancePath"),parentData:new xe.Name("parentData"),parentDataProperty:new xe.Name("parentDataProperty"),rootData:new xe.Name("rootData"),dynamicAnchors:new xe.Name("dynamicAnchors"),vErrors:new xe.Name("vErrors"),errors:new xe.Name("errors"),this:new xe.Name("this"),self:new xe.Name("self"),scope:new xe.Name("scope"),json:new xe.Name("json"),jsonPos:new xe.Name("jsonPos"),jsonLen:new xe.Name("jsonLen"),jsonPart:new xe.Name("jsonPart")};Ps.default=iw});var Gn=E(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.extendErrors=Ve.resetErrorsCount=Ve.reportExtraError=Ve.reportError=Ve.keyword$DataError=Ve.keywordError=void 0;var J=x(),pa=q(),Be=st();Ve.keywordError={message:({keyword:e})=>(0,J.str)`must pass "${e}" keyword validation`};Ve.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,J.str)`"${e}" keyword must be ${t} ($data)`:(0,J.str)`"${e}" keyword is invalid ($data)`};function aw(e,t=Ve.keywordError,r,n){let{it:i}=e,{gen:a,compositeRule:o,allErrors:s}=i,c=dd(e,t,r);n??(o||s)?ld(a,c):pd(i,(0,J._)`[${c}]`)}Ve.reportError=aw;function ow(e,t=Ve.keywordError,r){let{it:n}=e,{gen:i,compositeRule:a,allErrors:o}=n,s=dd(e,t,r);ld(i,s),a||o||pd(n,Be.default.vErrors)}Ve.reportExtraError=ow;function sw(e,t){e.assign(Be.default.errors,t),e.if((0,J._)`${Be.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,J._)`${Be.default.vErrors}.length`,t),()=>e.assign(Be.default.vErrors,null)))}Ve.resetErrorsCount=sw;function cw({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,Be.default.errors,s=>{e.const(o,(0,J._)`${Be.default.vErrors}[${s}]`),e.if((0,J._)`${o}.instancePath === undefined`,()=>e.assign((0,J._)`${o}.instancePath`,(0,J.strConcat)(Be.default.instancePath,a.errorPath))),e.assign((0,J._)`${o}.schemaPath`,(0,J.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,J._)`${o}.schema`,r),e.assign((0,J._)`${o}.data`,n))})}Ve.extendErrors=cw;function ld(e,t){let r=e.const("err",t);e.if((0,J._)`${Be.default.vErrors} === null`,()=>e.assign(Be.default.vErrors,(0,J._)`[${r}]`),(0,J._)`${Be.default.vErrors}.push(${r})`),e.code((0,J._)`${Be.default.errors}++`)}function pd(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,J._)`new ${e.ValidationError}(${t})`):(r.assign((0,J._)`${n}.errors`,t),r.return(!1))}var kr={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function dd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,J._)`{}`:lw(e,t,r)}function lw(e,t,r={}){let{gen:n,it:i}=e,a=[pw(i,r),dw(e,r)];return uw(e,t,a),n.object(...a)}function pw({errorPath:e},{instancePath:t}){let r=t?(0,J.str)`${e}${(0,pa.getErrorPath)(t,pa.Type.Str)}`:e;return[Be.default.instancePath,(0,J.strConcat)(Be.default.instancePath,r)]}function dw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,J.str)`${t}/${e}`;return r&&(i=(0,J.str)`${i}${(0,pa.getErrorPath)(r,pa.Type.Str)}`),[kr.schemaPath,i]}function uw(e,{params:t,message:r},n){let{keyword:i,data:a,schemaValue:o,it:s}=e,{opts:c,propertyName:l,topSchemaRef:p,schemaPath:d}=s;n.push([kr.keyword,i],[kr.params,typeof t=="function"?t(e):t||(0,J._)`{}`]),c.messages&&n.push([kr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([kr.schema,o],[kr.parentSchema,(0,J._)`${p}${d}`],[Be.default.data,a]),l&&n.push([kr.propertyName,l])}});var fd=E(an=>{"use strict";Object.defineProperty(an,"__esModule",{value:!0});an.boolOrEmptySchema=an.topBoolOrEmptySchema=void 0;var fw=Gn(),mw=x(),gw=st(),yw={message:"boolean schema is false"};function hw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?ud(e,!1):typeof r=="object"&&r.$async===!0?t.return(gw.default.data):(t.assign((0,mw._)`${n}.errors`,null),t.return(!0))}an.topBoolOrEmptySchema=hw;function ww(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),ud(e)):r.var(t,!0)}an.boolOrEmptySchema=ww;function ud(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,fw.reportError)(i,yw,void 0,t)}});var Ns=E(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.getRules=on.isJSONType=void 0;var Iw=["string","number","integer","boolean","null","object","array"],vw=new Set(Iw);function bw(e){return typeof e=="string"&&vw.has(e)}on.isJSONType=bw;function kw(){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:{}}}on.getRules=kw});var Os=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.shouldUseRule=Zt.shouldUseGroup=Zt.schemaHasRulesForType=void 0;function _w({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&md(e,n)}Zt.schemaHasRulesForType=_w;function md(e,t){return t.rules.some(r=>gd(e,r))}Zt.shouldUseGroup=md;function gd(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))}Zt.shouldUseRule=gd});var Jn=E(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.reportTypeError=Me.checkDataTypes=Me.checkDataType=Me.coerceAndCheckDataType=Me.getJSONTypes=Me.getSchemaTypes=Me.DataType=void 0;var Aw=Ns(),Rw=Os(),Ew=Gn(),V=x(),yd=q(),sn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(sn||(Me.DataType=sn={}));function Pw(e){let t=hd(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}Me.getSchemaTypes=Pw;function hd(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Aw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Me.getJSONTypes=hd;function Nw(e,t){let{gen:r,data:n,opts:i}=e,a=Ow(t,i.coerceTypes),o=t.length>0&&!(a.length===0&&t.length===1&&(0,Rw.schemaHasRulesForType)(e,t[0]));if(o){let s=Ds(t,n,i.strictNumbers,sn.Wrong);r.if(s,()=>{a.length?Sw(e,t,a):js(e)})}return o}Me.coerceAndCheckDataType=Nw;var wd=new Set(["string","number","integer","boolean","null"]);function Ow(e,t){return t?e.filter(r=>wd.has(r)||t==="array"&&r==="array"):[]}function Sw(e,t,r){let{gen:n,data:i,opts:a}=e,o=n.let("dataType",(0,V._)`typeof ${i}`),s=n.let("coerced",(0,V._)`undefined`);a.coerceTypes==="array"&&n.if((0,V._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,V._)`${i}[0]`).assign(o,(0,V._)`typeof ${i}`).if(Ds(t,i,a.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(wd.has(l)||l==="array"&&a.coerceTypes==="array")&&c(l);n.else(),js(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),Dw(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,V._)`"" + ${i}`).elseIf((0,V._)`${i} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${o} == "boolean" || ${i} === null
|
|
3
|
-
|| (${
|
|
4
|
-
|| (${
|
|
5
|
-
|| ${o} === "boolean" || ${i} === null`).assign(s,(0,V._)`[${i}]`)}}}function Dw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function Ss(e,t,r,n=sn.Correct){let i=n===sn.Correct?V.operators.EQ:V.operators.NEQ,a;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":a=(0,V._)`Array.isArray(${t})`;break;case"object":a=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=o((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=o();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===sn.Correct?a:(0,V.not)(a);function o(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Me.checkDataType=Ss;function Ds(e,t,r,n){if(e.length===1)return Ss(e[0],t,r,n);let i,a=(0,yd.toHash)(e);if(a.array&&a.object){let o=(0,V._)`typeof ${t} != "object"`;i=a.null?o:(0,V._)`!${t} || ${o}`,delete a.null,delete a.array,delete a.object}else i=V.nil;a.number&&delete a.integer;for(let o in a)i=(0,V.and)(i,Ss(o,t,r,n));return i}Me.checkDataTypes=Ds;var jw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function js(e){let t=Cw(e);(0,Ew.reportError)(t,jw)}Me.reportTypeError=js;function Cw(e){let{gen:t,data:r,schema:n}=e,i=(0,yd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var vd=E(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.assignDefaults=void 0;var cn=x(),$w=q();function Lw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Id(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,a)=>Id(e,a,i.default))}da.assignDefaults=Lw;function Id(e,t,r){let{gen:n,compositeRule:i,data:a,opts:o}=e;if(r===void 0)return;let s=(0,cn._)`${a}${(0,cn.getProperty)(t)}`;if(i){(0,$w.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,cn._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,cn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,cn._)`${s} = ${(0,cn.stringify)(r)}`)}});var ct=E(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var fe=x(),Cs=q(),Qt=st(),Tw=q();function xw(e,t){let{gen:r,data:n,it:i}=e;r.if(Ls(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,fe._)`${t}`},!0),e.error()})}ne.checkReportMissingProp=xw;function Vw({gen:e,data:t,it:{opts:r}},n,i){return(0,fe.or)(...n.map(a=>(0,fe.and)(Ls(e,t,a,r.ownProperties),(0,fe._)`${i} = ${a}`)))}ne.checkMissingProp=Vw;function Mw(e,t){e.setParams({missingProperty:t},!0),e.error()}ne.reportMissingProp=Mw;function bd(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,fe._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=bd;function $s(e,t,r){return(0,fe._)`${bd(e)}.call(${t}, ${r})`}ne.isOwnProperty=$s;function Fw(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} !== undefined`;return n?(0,fe._)`${i} && ${$s(e,t,r)}`:i}ne.propertyInData=Fw;function Ls(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} === undefined`;return n?(0,fe.or)(i,(0,fe.not)($s(e,t,r))):i}ne.noPropertyInData=Ls;function kd(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ne.allSchemaProperties=kd;function Uw(e,t){return kd(t).filter(r=>!(0,Cs.alwaysValidSchema)(e,t[r]))}ne.schemaProperties=Uw;function qw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:o},s,c,l){let p=l?(0,fe._)`${e}, ${t}, ${n}${i}`:t,d=[[Qt.default.instancePath,(0,fe.strConcat)(Qt.default.instancePath,a)],[Qt.default.parentData,o.parentData],[Qt.default.parentDataProperty,o.parentDataProperty],[Qt.default.rootData,Qt.default.rootData]];o.opts.dynamicRef&&d.push([Qt.default.dynamicAnchors,Qt.default.dynamicAnchors]);let f=(0,fe._)`${p}, ${r.object(...d)}`;return c!==fe.nil?(0,fe._)`${s}.call(${c}, ${f})`:(0,fe._)`${s}(${f})`}ne.callValidateCode=qw;var Bw=(0,fe._)`new RegExp`;function zw({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,a=i(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,fe._)`${i.code==="new RegExp"?Bw:(0,Tw.useFunc)(e,i)}(${r}, ${n})`})}ne.usePattern=zw;function Gw(e){let{gen:t,data:r,keyword:n,it:i}=e,a=t.name("valid");if(i.allErrors){let s=t.let("valid",!0);return o(()=>t.assign(s,!1)),s}return t.var(a,!0),o(()=>t.break()),a;function o(s){let c=t.const("len",(0,fe._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Cs.Type.Num},a),t.if((0,fe.not)(a),s)})}}ne.validateArray=Gw;function Jw(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Cs.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let p=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(o,(0,fe._)`${o} || ${s}`),e.mergeValidEvaluated(p,s)||t.if((0,fe.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}ne.validateUnion=Jw});var Rd=E(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.validateKeywordUsage=St.validSchemaType=St.funcKeywordCode=St.macroKeywordCode=void 0;var ze=x(),_r=st(),Ww=ct(),Kw=Gn();function Yw(e,t){let{gen:r,keyword:n,schema:i,parentSchema:a,it:o}=e,s=t.macro.call(o.self,i,a,o),c=Ad(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:ze.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}St.macroKeywordCode=Yw;function Hw(e,t){var r;let{gen:n,keyword:i,schema:a,parentSchema:o,$data:s,it:c}=e;Zw(c,t);let l=!s&&t.compile?t.compile.call(c.self,a,o,c):t.validate,p=Ad(n,i,l),d=n.let("valid");e.block$data(d,f),e.ok((r=t.valid)!==null&&r!==void 0?r:d);function f(){if(t.errors===!1)g(),t.modifying&&_d(e),y(()=>e.error());else{let w=t.async?u():m();t.modifying&&_d(e),y(()=>Xw(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,ze._)`await `),A=>n.assign(d,!1).if((0,ze._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,ze._)`${A}.errors`),()=>n.throw(A))),w}function m(){let w=(0,ze._)`${p}.errors`;return n.assign(w,null),g(ze.nil),w}function g(w=t.async?(0,ze._)`await `:ze.nil){let A=c.opts.passContext?_r.default.this:_r.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(d,(0,ze._)`${w}${(0,Ww.callValidateCode)(e,p,A,b)}`,t.modifying)}function y(w){var A;n.if((0,ze.not)((A=t.valid)!==null&&A!==void 0?A:d),w)}}St.funcKeywordCode=Hw;function _d(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,ze._)`${n.parentData}[${n.parentDataProperty}]`))}function Xw(e,t){let{gen:r}=e;r.if((0,ze._)`Array.isArray(${t})`,()=>{r.assign(_r.default.vErrors,(0,ze._)`${_r.default.vErrors} === null ? ${t} : ${_r.default.vErrors}.concat(${t})`).assign(_r.default.errors,(0,ze._)`${_r.default.vErrors}.length`),(0,Kw.extendErrors)(e)},()=>e.error())}function Zw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Ad(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,ze.stringify)(r)})}function Qw(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}St.validSchemaType=Qw;function eI({schema:e,opts:t,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${a}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}St.validateKeywordUsage=eI});var Pd=E(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.extendSubschemaMode=er.extendSubschemaData=er.getSubschema=void 0;var Dt=x(),Ed=q();function tI(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,topSchemaRef:o}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}${(0,Dt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Ed.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}er.getSubschema=tI;function rI(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:o}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:p,opts:d}=t,f=s.let("data",(0,Dt._)`${t.data}${(0,Dt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Dt.str)`${l}${(0,Ed.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,Dt._)`${r}`,e.dataPathArr=[...p,e.parentDataProperty]}if(i!==void 0){let l=i instanceof Dt.Name?i:s.let("data",i,!0);c(l),o!==void 0&&(e.propertyName=o)}a&&(e.dataTypes=a);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}er.extendSubschemaData=rI;function nI(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}er.extendSubschemaMode=nI});var Ts=E((nO,Nd)=>{"use strict";Nd.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;i--!==0;){var o=a[i];if(!e(t[o],r[o]))return!1}return!0}return t!==t&&r!==r}});var Sd=E((iO,Od)=>{"use strict";var tr=Od.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};ua(t,n,i,e,"",e)};tr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};tr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};tr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};tr.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 ua(e,t,r,n,i,a,o,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,a,o,s,c,l);for(var p in n){var d=n[p];if(Array.isArray(d)){if(p in tr.arrayKeywords)for(var f=0;f<d.length;f++)ua(e,t,r,d[f],i+"/"+p+"/"+f,a,i,p,n,f)}else if(p in tr.propsKeywords){if(d&&typeof d=="object")for(var u in d)ua(e,t,r,d[u],i+"/"+p+"/"+iI(u),a,i,p,n,u)}else(p in tr.keywords||e.allKeys&&!(p in tr.skipKeywords))&&ua(e,t,r,d,i+"/"+p,a,i,p,n)}r(n,i,a,o,s,c,l)}}function iI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Wn=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.getSchemaRefs=He.resolveUrl=He.normalizeId=He._getFullPath=He.getFullPath=He.inlineRef=void 0;var aI=q(),oI=Ts(),sI=Sd(),cI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function lI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!xs(e):t?Dd(e)<=t:!1}He.inlineRef=lI;var pI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function xs(e){for(let t in e){if(pI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(xs)||typeof r=="object"&&xs(r))return!0}return!1}function Dd(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!cI.has(r)&&(typeof e[r]=="object"&&(0,aI.eachItem)(e[r],n=>t+=Dd(n)),t===1/0))return 1/0}return t}function jd(e,t="",r){r!==!1&&(t=ln(t));let n=e.parse(t);return Cd(e,n)}He.getFullPath=jd;function Cd(e,t){return e.serialize(t).split("#")[0]+"#"}He._getFullPath=Cd;var dI=/#\/?$/;function ln(e){return e?e.replace(dI,""):""}He.normalizeId=ln;function uI(e,t,r){return r=ln(r),e.resolve(t,r)}He.resolveUrl=uI;var fI=/^[a-z_][-a-z0-9._]*$/i;function mI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=ln(e[r]||t),a={"":i},o=jd(n,i,!1),s={},c=new Set;return sI(e,{allKeys:!0},(d,f,u,m)=>{if(m===void 0)return;let g=o+f,y=a[m];typeof d[r]=="string"&&(y=w.call(this,d[r])),A.call(this,d.$anchor),A.call(this,d.$dynamicAnchor),a[f]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=ln(y?R(y,b):b),c.has(b))throw p(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(d,I.schema,b):b!==ln(g)&&(b[0]==="#"?(l(d,s[b],b),s[b]=d):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!fI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(d,f,u){if(f!==void 0&&!oI(d,f))throw p(u)}function p(d){return new Error(`reference "${d}" resolves to more than one schema`)}}He.getSchemaRefs=mI});var Hn=E(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.getData=rr.KeywordCxt=rr.validateFunctionCode=void 0;var Vd=fd(),$d=Jn(),Ms=Os(),fa=Jn(),gI=vd(),Yn=Rd(),Vs=Pd(),O=x(),T=st(),yI=Wn(),Mt=q(),Kn=Gn();function hI(e){if(Ud(e)&&(qd(e),Fd(e))){vI(e);return}Md(e,()=>(0,Vd.topBoolOrEmptySchema)(e))}rr.validateFunctionCode=hI;function Md({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},a){i.code.es5?e.func(t,(0,O._)`${T.default.data}, ${T.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${Ld(r,i)}`),II(e,i),e.code(a)}):e.func(t,(0,O._)`${T.default.data}, ${wI(i)}`,n.$async,()=>e.code(Ld(r,i)).code(a))}function wI(e){return(0,O._)`{${T.default.instancePath}="", ${T.default.parentData}, ${T.default.parentDataProperty}, ${T.default.rootData}=${T.default.data}${e.dynamicRef?(0,O._)`, ${T.default.dynamicAnchors}={}`:O.nil}}={}`}function II(e,t){e.if(T.default.valCxt,()=>{e.var(T.default.instancePath,(0,O._)`${T.default.valCxt}.${T.default.instancePath}`),e.var(T.default.parentData,(0,O._)`${T.default.valCxt}.${T.default.parentData}`),e.var(T.default.parentDataProperty,(0,O._)`${T.default.valCxt}.${T.default.parentDataProperty}`),e.var(T.default.rootData,(0,O._)`${T.default.valCxt}.${T.default.rootData}`),t.dynamicRef&&e.var(T.default.dynamicAnchors,(0,O._)`${T.default.valCxt}.${T.default.dynamicAnchors}`)},()=>{e.var(T.default.instancePath,(0,O._)`""`),e.var(T.default.parentData,(0,O._)`undefined`),e.var(T.default.parentDataProperty,(0,O._)`undefined`),e.var(T.default.rootData,T.default.data),t.dynamicRef&&e.var(T.default.dynamicAnchors,(0,O._)`{}`)})}function vI(e){let{schema:t,opts:r,gen:n}=e;Md(e,()=>{r.$comment&&t.$comment&&zd(e),RI(e),n.let(T.default.vErrors,null),n.let(T.default.errors,0),r.unevaluated&&bI(e),Bd(e),NI(e)})}function bI(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 Ld(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 kI(e,t){if(Ud(e)&&(qd(e),Fd(e))){_I(e,t);return}(0,Vd.boolOrEmptySchema)(e,t)}function Fd({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 Ud(e){return typeof e.schema!="boolean"}function _I(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&zd(e),EI(e),PI(e);let a=n.const("_errs",T.default.errors);Bd(e,a),n.var(t,(0,O._)`${a} === ${T.default.errors}`)}function qd(e){(0,Mt.checkUnknownRules)(e),AI(e)}function Bd(e,t){if(e.opts.jtd)return Td(e,[],!1,t);let r=(0,$d.getSchemaTypes)(e.schema),n=(0,$d.coerceAndCheckDataType)(e,r);Td(e,r,!n,t)}function AI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Mt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function RI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Mt.checkStrictMode)(e,"default is ignored in the schema root")}function EI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,yI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function PI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function zd({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)e.code((0,O._)`${T.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let o=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${T.default.self}.opts.$comment(${a}, ${o}, ${s}.schema)`)}}function NI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=e;r.$async?t.if((0,O._)`${T.default.errors} === 0`,()=>t.return(T.default.data),()=>t.throw((0,O._)`new ${i}(${T.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,T.default.vErrors),a.unevaluated&&OI(e),t.return((0,O._)`${T.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 Td(e,t,r,n){let{gen:i,schema:a,data:o,allErrors:s,opts:c,self:l}=e,{RULES:p}=l;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,Mt.schemaHasRulesButRef)(a,p))){i.block(()=>Jd(e,"$ref",p.all.$ref.definition));return}c.jtd||SI(e,t),i.block(()=>{for(let f of p.rules)d(f);d(p.post)});function d(f){(0,Ms.shouldUseGroup)(a,f)&&(f.type?(i.if((0,fa.checkDataType)(f.type,o,c.strictNumbers)),xd(e,f),t.length===1&&t[0]===f.type&&r&&(i.else(),(0,fa.reportTypeError)(e)),i.endIf()):xd(e,f),s||i.if((0,O._)`${T.default.errors} === ${n||0}`))}}function xd(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,gI.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,Ms.shouldUseRule)(n,a)&&Jd(e,a.keyword,a.definition,t.type)})}function SI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(DI(e,t),e.opts.allowUnionTypes||jI(e,t),CI(e,e.dataTypes))}function DI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Gd(e.dataTypes,r)||Fs(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),LI(e,t)}}function jI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Fs(e,"use allowUnionTypes to allow union type keyword")}function CI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Ms.shouldUseRule)(e.schema,i)){let{type:a}=i.definition;a.length&&!a.some(o=>$I(t,o))&&Fs(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function $I(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Gd(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function LI(e,t){let r=[];for(let n of e.dataTypes)Gd(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Fs(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Mt.checkStrictMode)(e,t,e.opts.strictTypes)}var ma=class{constructor(t,r,n){if((0,Yn.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,Mt.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",Wd(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Yn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",T.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Kn.reportExtraError:Kn.reportError)(this,this.def.error,r)}$dataError(){(0,Kn.reportError)(this,this.def.$dataError||Kn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Kn.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:i,schemaType:a,def:o}=this;n.if((0,O.or)((0,O._)`${i} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(a.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,O.or)(o(),s());function o(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,fa.checkDataTypes)(c,r,a.opts.strictNumbers,fa.DataType.Wrong)}`}return O.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,Vs.getSubschema)(this.it,t);(0,Vs.extendSubschemaData)(n,this.it,t),(0,Vs.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return kI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Mt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Mt.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};rr.KeywordCxt=ma;function Jd(e,t,r,n){let i=new ma(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Yn.funcKeywordCode)(i,r):"macro"in r?(0,Yn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Yn.funcKeywordCode)(i,r)}var TI=/^\/(?:[^~]|~0|~1)*$/,xI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Wd(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,a;if(e==="")return T.default.rootData;if(e[0]==="/"){if(!TI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,a=T.default.rootData}else{let l=xI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let p=+l[1];if(i=l[2],i==="#"){if(p>=t)throw new Error(c("property/index",p));return n[t-p]}if(p>t)throw new Error(c("data",p));if(a=r[t-p],!i)return a}let o=a,s=i.split("/");for(let l of s)l&&(a=(0,O._)`${a}${(0,O.getProperty)((0,Mt.unescapeJsonPointer)(l))}`,o=(0,O._)`${o} && ${a}`);return o;function c(l,p){return`Cannot access ${l} ${p} levels up, current level is ${t}`}}rr.getData=Wd});var ga=E(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});var Us=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};qs.default=Us});var Xn=E(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});var Bs=Wn(),zs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Bs.resolveUrl)(t,r,n),this.missingSchema=(0,Bs.normalizeId)((0,Bs.getFullPath)(t,this.missingRef))}};Gs.default=zs});var Zn=E(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.resolveSchema=lt.getCompilingSchema=lt.resolveRef=lt.compileSchema=lt.SchemaEnv=void 0;var It=x(),VI=ga(),Ar=st(),vt=Wn(),Kd=q(),MI=Hn(),pn=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,vt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};lt.SchemaEnv=pn;function Ws(e){let t=Yd.call(this,e);if(t)return t;let r=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,o=new It.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),s;e.$async&&(s=o.scopeValue("Error",{ref:VI.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let l={gen:o,allErrors:this.opts.allErrors,data:Ar.default.data,parentData:Ar.default.parentData,parentDataProperty:Ar.default.parentDataProperty,dataNames:[Ar.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,It.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:It.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},p;try{this._compilations.add(e),(0,MI.validateFunctionCode)(l),o.optimize(this.opts.code.optimize);let d=o.toString();p=`${o.scopeRefs(Ar.default.scope)}return ${d}`,this.opts.code.process&&(p=this.opts.code.process(p,e));let u=new Function(`${Ar.default.self}`,`${Ar.default.scope}`,p)(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:d,scopeValues:o._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof It.Name?void 0:m,items:g instanceof It.Name?void 0:g,dynamicProps:m instanceof It.Name,dynamicItems:g instanceof It.Name},u.source&&(u.source.evaluated=(0,It.stringify)(u.evaluated))}return e.validate=u,e}catch(d){throw delete e.validate,delete e.validateName,p&&this.logger.error("Error compiling schema, function code:",p),d}finally{this._compilations.delete(e)}}lt.compileSchema=Ws;function FI(e,t,r){var n;r=(0,vt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let a=BI.call(this,e,r);if(a===void 0){let o=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(a=new pn({schema:o,schemaId:s,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=UI.call(this,a)}lt.resolveRef=FI;function UI(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Ws.call(this,e)}function Yd(e){for(let t of this._compilations)if(qI(t,e))return t}lt.getCompilingSchema=Yd;function qI(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function BI(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||ya.call(this,e,t)}function ya(e,t){let r=this.opts.uriResolver.parse(t),n=(0,vt._getFullPath)(this.opts.uriResolver,r),i=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return Js.call(this,r,e);let a=(0,vt.normalizeId)(n),o=this.refs[a]||this.schemas[a];if(typeof o=="string"){let s=ya.call(this,e,o);return typeof s?.schema!="object"?void 0:Js.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||Ws.call(this,o),a===(0,vt.normalizeId)(t)){let{schema:s}=o,{schemaId:c}=this.opts,l=s[c];return l&&(i=(0,vt.resolveUrl)(this.opts.uriResolver,i,l)),new pn({schema:s,schemaId:c,root:e,baseId:i})}return Js.call(this,r,o)}}lt.resolveSchema=ya;var zI=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Js(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Kd.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!zI.has(s)&&l&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,l))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,Kd.schemaHasRulesButRef)(r,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=ya.call(this,n,s)}let{schemaId:o}=this.opts;if(a=a||new pn({schema:r,schemaId:o,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var Hd=E((pO,GI)=>{GI.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 Hs=E((dO,ru)=>{"use strict";var JI=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Zd=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),Ks=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Qd=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),WI=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Ys(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 KI=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Xd(e){return e.length=0,!0}function YI(e,t,r){if(e.length){let n=Ys(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function HI(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],a=!1,o=!1,s=YI;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(a===!0&&(o=!0),!s(i,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(a=!0),n.push(":");continue}else if(l==="%"){if(!s(i,n,r))break;s=Xd}else{i.push(l);continue}}return i.length&&(s===Xd?r.zone=i.join(""):o?n.push(i.join("")):n.push(Ys(i))),r.address=n.join(""),r}function eu(e){if(XI(e,":")<2)return{host:e,isIPV6:!1};let t=HI(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 XI(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function ZI(e){let t=e,r=[],n=-1,i=0;for(;i=t.length;){if(i===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(i===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){r.push("/");break}}else if(i===3&&t==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var QI={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},ev=/[@/?#:]/g,tv=/[@/?#]/g;function tu(e,t){let r=t?tv:ev;return r.lastIndex=0,e.replace(r,n=>QI[n])}function rv(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let i=e.slice(n+1,n+3);if(Ks(i)){let a=i.toUpperCase(),o=String.fromCharCode(parseInt(a,16));t&&Qd(o)?r+=o:r+="%"+a,n+=2;continue}}r+=e[n]}return r}function nv(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(Ks(n)){let i=n.toUpperCase(),a=String.fromCharCode(parseInt(i,16));a!=="."&&Qd(a)?t+=a:t+="%"+i,r+=2;continue}}WI(e[r])?t+=e[r]:t+=escape(e[r])}return t}function iv(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(Ks(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function av(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!Zd(r)){let n=eu(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=tu(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}ru.exports={nonSimpleDomain:KI,recomposeAuthority:av,reescapeHostDelimiters:tu,normalizePercentEncoding:rv,normalizePathEncoding:nv,escapePreservingEscapes:iv,removeDotSegments:ZI,isIPv4:Zd,isUUID:JI,normalizeIPv6:eu,stringArrayToHexStripped:Ys}});var su=E((uO,ou)=>{"use strict";var{isUUID:ov}=Hs(),sv=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,cv=["http","https","ws","wss","urn","urn:uuid"];function lv(e){return cv.indexOf(e)!==-1}function Xs(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 nu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function iu(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 pv(e){return e.secure=Xs(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function dv(e){if((e.port===(Xs(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 uv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(sv);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,a=Zs(i);e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function fv(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),i=`${r}:${t.nid||n}`,a=Zs(i);a&&(e=a.serialize(e,t));let o=e,s=e.nss;return o.path=`${n||t.nid}:${s}`,t.skipEscape=!0,o}function mv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!ov(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function gv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var au={scheme:"http",domainHost:!0,parse:nu,serialize:iu},yv={scheme:"https",domainHost:au.domainHost,parse:nu,serialize:iu},ha={scheme:"ws",domainHost:!0,parse:pv,serialize:dv},hv={scheme:"wss",domainHost:ha.domainHost,parse:ha.parse,serialize:ha.serialize},wv={scheme:"urn",parse:uv,serialize:fv,skipNormalize:!0},Iv={scheme:"urn:uuid",parse:mv,serialize:gv,skipNormalize:!0},wa={http:au,https:yv,ws:ha,wss:hv,urn:wv,"urn:uuid":Iv};Object.setPrototypeOf(wa,null);function Zs(e){return e&&(wa[e]||wa[e.toLowerCase()])||void 0}ou.exports={wsIsSecure:Xs,SCHEMES:wa,isValidSchemeName:lv,getSchemeHandler:Zs}});var uu=E((fO,ba)=>{"use strict";var{normalizeIPv6:vv,removeDotSegments:Qn,recomposeAuthority:bv,normalizePercentEncoding:kv,normalizePathEncoding:_v,escapePreservingEscapes:Av,reescapeHostDelimiters:Rv,isIPv4:Ev,nonSimpleDomain:Pv}=Hs(),{SCHEMES:Nv,getSchemeHandler:lu}=su();function Ov(e,t){return typeof e=="string"?e=Tv(e,t):typeof e=="object"&&(e=va(Rr(e,t),t)),e}function Sv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:a}=Ia(e,n),{parsed:o,malformedAuthorityOrPort:s}=Ia(t,n);if(a||s)throw new Error(i.error||o.error||"URI is malformed.");let c=pu(i,o,n,!0);return n.skipEscape=!0,Rr(c,n)}function pu(e,t,r,n){let i={};return n||(e=va(Rr(e,r),r),t=va(Rr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=Qn(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=Qn(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=Qn(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=Qn(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Dv(e,t,r){let n=cu(e,r),i=cu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Rr(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),i=[],a=lu(n.scheme||r.scheme);a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=kv(r.path):(r.path=Av(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let o=bv(r);if(o!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(o),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Qn(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var jv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Cv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,$v=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Lv(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 Ia(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1,a=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let o=e.match(Cv);o!==null&&o[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match($v);if(s!==null){let l=s[1],p=l.replace(/[\t\n\r]/g,"");p.length>=2&&(p.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):l.length!==p.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(jv);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=Lv(n,c);if(l!==void 0&&(n.error=n.error||l,i=!0),n.host)if(Ev(n.host)===!1){let f=vv(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 p=lu(r.scheme||n.scheme);if(!r.unicodeSupport&&(!p||!p.unicodeSupport)&&n.host&&(r.domainHost||p&&p.domainHost)&&a===!1&&Pv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(d){n.error=n.error||"Host's domain name can not be converted to ASCII: "+d}if((!p||p&&!p.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Rv(unescape(n.host),a))),n.path&&(n.path=_v(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}p&&p.parse&&p.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:i}}function va(e,t){return Ia(e,t).parsed}function Tv(e,t){return du(e,t).normalized}function du(e,t){let{parsed:r,malformedAuthorityOrPort:n}=Ia(e,t);return{normalized:n?e:Rr(r,t),malformedAuthorityOrPort:n}}function cu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=du(e,t);return n?void 0:r}if(typeof e=="object")return Rr(e,t)}var Qs={SCHEMES:Nv,normalize:Ov,resolve:Sv,resolveComponent:pu,equal:Dv,serialize:Rr,parse:va};ba.exports=Qs;ba.exports.default=Qs;ba.exports.fastUri=Qs});var mu=E(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var fu=uu();fu.code='require("ajv/dist/runtime/uri").default';ec.default=fu});var ku=E(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var xv=Hn();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return xv.KeywordCxt}});var dn=x();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return dn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return dn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return dn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return dn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return dn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return dn.CodeGen}});var Vv=ga(),Iu=Xn(),Mv=Ns(),ei=Zn(),Fv=x(),ti=Wn(),ka=Jn(),rc=q(),gu=Hd(),Uv=mu(),vu=(e,t)=>new RegExp(e,t);vu.code="new RegExp";var qv=["removeAdditional","useDefaults","coerceTypes"],Bv=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),zv={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."},Gv={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},yu=200;function Jv(e){var t,r,n,i,a,o,s,c,l,p,d,f,u,m,g,y,w,A,b,R,I,_,S,L,ue;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Z=P===!0||P===void 0?1:P||0,se=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:vu,at=(i=e.uriResolver)!==null&&i!==void 0?i:Uv.default;return{strictSchema:(o=(a=e.strictSchema)!==null&&a!==void 0?a:$)!==null&&o!==void 0?o:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(p=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&p!==void 0?p:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:Z,regExp:se}:{optimize:Z,regExp:se},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:yu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:yu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(_=e.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(L=e.unicodeRegExp)!==null&&L!==void 0?L:!0,int32range:(ue=e.int32range)!==null&&ue!==void 0?ue:!0,uriResolver:at}}var ri=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,...Jv(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new Fv.ValueScope({scope:{},prefixes:Bv,es5:r,lines:n}),this.logger=Zv(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Mv.getRules)(),hu.call(this,zv,t,"NOT SUPPORTED"),hu.call(this,Gv,t,"DEPRECATED","warn"),this._metaOpts=Hv.call(this),t.formats&&Kv.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Yv.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Wv.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=gu;n==="id"&&(i={...gu},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,t,r);async function i(p,d){await a.call(this,p.$schema);let f=this._addSchema(p,d);return f.validate||o.call(this,f)}async function a(p){p&&!this.getSchema(p)&&await i.call(this,{$ref:p},!0)}async function o(p){try{return this._compileSchemaEnv(p)}catch(d){if(!(d instanceof Iu.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),o.call(this,p)}}function s({missingSchema:p,missingRef:d}){if(this.refs[p])throw new Error(`AnySchema ${p} is loaded but ${d} cannot be resolved`)}async function c(p){let d=await l.call(this,p);this.refs[p]||await a.call(this,d.$schema),this.refs[p]||this.addSchema(d,p,r)}async function l(p){let d=this._loading[p];if(d)return d;try{return await(this._loading[p]=n(p))}finally{delete this._loading[p]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,n,i);return this}let a;if(typeof t=="object"){let{schemaId:o}=this.opts;if(a=t[o],a!==void 0&&typeof a!="string")throw new Error(`schema ${o} must be string`)}return r=(0,ti.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,t);if(!i&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(t){let r;for(;typeof(r=wu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ei.SchemaEnv({schema:{},schemaId:n});if(r=ei.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=wu.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,ti.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(eb.call(this,n,r),!r)return(0,rc.eachItem)(n,a=>tc.call(this,a)),this;rb.call(this,r);let i={...r,type:(0,ka.getJSONTypes)(r.type),schemaType:(0,ka.getJSONTypes)(r.schemaType)};return(0,rc.eachItem)(n,i.type.length===0?a=>tc.call(this,a,i):a=>i.type.forEach(o=>tc.call(this,a,i,o))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let i=n.rules.findIndex(a=>a.keyword===t);i>=0&&n.rules.splice(i,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,a)=>i+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let a=i.split("/").slice(1),o=t;for(let s of a)o=o[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,p=o[s];l&&p&&(o[s]=bu(p))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let o,{schemaId:s}=this.opts;if(typeof t=="object")o=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,ti.normalizeId)(o||n);let l=ti.getSchemaRefs.call(this,t,n);return c=new ei.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):ei.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{ei.compileSchema.call(this,t)}finally{this.opts=r}}};ri.ValidationError=Vv.default;ri.MissingRefError=Iu.default;Se.default=ri;function hu(e,t,r,n="error"){for(let i in e){let a=i;a in t&&this.logger[n](`${r}: option ${i}. ${e[a]}`)}}function wu(e){return e=(0,ti.normalizeId)(e),this.schemas[e]||this.refs[e]}function Wv(){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 Kv(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Yv(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 Hv(){let e={...this.opts};for(let t of qv)delete e[t];return e}var Xv={log(){},warn(){},error(){}};function Zv(e){if(e===!1)return Xv;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Qv=/^[a-z_$][a-z0-9_$:-]*$/i;function eb(e,t){let{RULES:r}=this;if((0,rc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Qv.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function tc(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,o=i?a.post:a.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},a.rules.push(o)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,ka.getJSONTypes)(t.type),schemaType:(0,ka.getJSONTypes)(t.schemaType)}};t.before?tb.call(this,o,s,t.before):o.rules.push(s),a.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function tb(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function rb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=bu(t)),e.validateSchema=this.compile(t,!0))}var nb={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function bu(e){return{anyOf:[e,nb]}}});var _u=E(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var ib={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};nc.default=ib});var Ra=E(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.callRef=Er.getValidate=void 0;var ab=Xn(),Au=ct(),Xe=x(),un=st(),Ru=Zn(),_a=q(),ob={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:a,validateName:o,opts:s,self:c}=n,{root:l}=a;if((r==="#"||r==="#/")&&i===l.baseId)return d();let p=Ru.resolveRef.call(c,l,i,r);if(p===void 0)throw new ab.default(n.opts.uriResolver,i,r);if(p instanceof Ru.SchemaEnv)return f(p);return u(p);function d(){if(a===l)return Aa(e,o,a,a.$async);let m=t.scopeValue("root",{ref:l});return Aa(e,(0,Xe._)`${m}.validate`,l,l.$async)}function f(m){let g=Eu(e,m);Aa(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Xe.stringify)(m)}:{ref:m}),y=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Xe.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function Eu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Xe._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Er.getValidate=Eu;function Aa(e,t,r,n){let{gen:i,it:a}=e,{allErrors:o,schemaEnv:s,opts:c}=a,l=c.passContext?un.default.this:Xe.nil;n?p():d();function p(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,Xe._)`await ${(0,Au.callValidateCode)(e,t,l)}`),u(t),o||i.assign(m,!0)},g=>{i.if((0,Xe._)`!(${g} instanceof ${a.ValidationError})`,()=>i.throw(g)),f(g),o||i.assign(m,!1)}),e.ok(m)}function d(){e.result((0,Au.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Xe._)`${m}.errors`;i.assign(un.default.vErrors,(0,Xe._)`${un.default.vErrors} === null ? ${g} : ${un.default.vErrors}.concat(${g})`),i.assign(un.default.errors,(0,Xe._)`${un.default.vErrors}.length`)}function u(m){var g;if(!a.opts.unevaluated)return;let y=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(a.props=_a.mergeEvaluated.props(i,y.props,a.props));else{let w=i.var("props",(0,Xe._)`${m}.evaluated.props`);a.props=_a.mergeEvaluated.props(i,w,a.props,Xe.Name)}if(a.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(a.items=_a.mergeEvaluated.items(i,y.items,a.items));else{let w=i.var("items",(0,Xe._)`${m}.evaluated.items`);a.items=_a.mergeEvaluated.items(i,w,a.items,Xe.Name)}}}Er.callRef=Aa;Er.default=ob});var Pu=E(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var sb=_u(),cb=Ra(),lb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",sb.default,cb.default];ic.default=lb});var Nu=E(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var Ea=x(),nr=Ea.operators,Pa={maximum:{okStr:"<=",ok:nr.LTE,fail:nr.GT},minimum:{okStr:">=",ok:nr.GTE,fail:nr.LT},exclusiveMaximum:{okStr:"<",ok:nr.LT,fail:nr.GTE},exclusiveMinimum:{okStr:">",ok:nr.GT,fail:nr.LTE}},pb={message:({keyword:e,schemaCode:t})=>(0,Ea.str)`must be ${Pa[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Ea._)`{comparison: ${Pa[e].okStr}, limit: ${t}}`},db={keyword:Object.keys(Pa),type:"number",schemaType:"number",$data:!0,error:pb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,Ea._)`${r} ${Pa[t].fail} ${n} || isNaN(${r})`)}};ac.default=db});var Ou=E(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var ni=x(),ub={message:({schemaCode:e})=>(0,ni.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,ni._)`{multipleOf: ${e}}`},fb={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:ub,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,a=i.opts.multipleOfPrecision,o=t.let("res"),s=a?(0,ni._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${a}`:(0,ni._)`${o} !== parseInt(${o})`;e.fail$data((0,ni._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};oc.default=fb});var Du=E(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});function Su(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}sc.default=Su;Su.code='require("ajv/dist/runtime/ucs2length").default'});var ju=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Pr=x(),mb=q(),gb=Du(),yb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Pr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Pr._)`{limit: ${e}}`},hb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:yb,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,a=t==="maxLength"?Pr.operators.GT:Pr.operators.LT,o=i.opts.unicode===!1?(0,Pr._)`${r}.length`:(0,Pr._)`${(0,mb.useFunc)(e.gen,gb.default)}(${r})`;e.fail$data((0,Pr._)`${o} ${a} ${n}`)}};cc.default=hb});var Cu=E(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});var wb=ct(),Ib=q(),fn=x(),vb={message:({schemaCode:e})=>(0,fn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,fn._)`{pattern: ${e}}`},bb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:vb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:a,it:o}=e,s=o.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=o.opts.code,l=c.code==="new RegExp"?(0,fn._)`new RegExp`:(0,Ib.useFunc)(t,c),p=t.let("valid");t.try(()=>t.assign(p,(0,fn._)`${l}(${a}, ${s}).test(${r})`),()=>t.assign(p,!1)),e.fail$data((0,fn._)`!${p}`)}else{let c=(0,wb.usePattern)(e,i);e.fail$data((0,fn._)`!${c}.test(${r})`)}}};lc.default=bb});var $u=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var ii=x(),kb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ii.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ii._)`{limit: ${e}}`},_b={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:kb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ii.operators.GT:ii.operators.LT;e.fail$data((0,ii._)`Object.keys(${r}).length ${i} ${n}`)}};pc.default=_b});var Lu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var ai=ct(),oi=x(),Ab=q(),Rb={message:({params:{missingProperty:e}})=>(0,oi.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,oi._)`{missingProperty: ${e}}`},Eb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Rb,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:a,it:o}=e,{opts:s}=o;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(o.allErrors?l():p(),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 y=o.schemaEnv.baseId+o.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,Ab.checkStrictMode)(o,w,o.opts.strictRequired)}}function l(){if(c||a)e.block$data(oi.nil,d);else for(let u of r)(0,ai.checkReportMissingProp)(e,u)}function p(){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,ai.checkMissingProp)(e,r,u)),(0,ai.reportMissingProp)(e,u),t.else()}function d(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,ai.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,ai.propertyInData)(t,i,u,s.ownProperties)),t.if((0,oi.not)(m),()=>{e.error(),t.break()})},oi.nil)}}};dc.default=Eb});var Tu=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var si=x(),Pb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,si.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,si._)`{limit: ${e}}`},Nb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Pb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?si.operators.GT:si.operators.LT;e.fail$data((0,si._)`${r}.length ${i} ${n}`)}};uc.default=Nb});var Na=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var xu=Ts();xu.code='require("ajv/dist/runtime/equal").default';fc.default=xu});var Vu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var mc=Jn(),De=x(),Ob=q(),Sb=Na(),Db={message:({params:{i:e,j:t}})=>(0,De.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,De._)`{i: ${e}, j: ${t}}`},jb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Db,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:a,schemaCode:o,it:s}=e;if(!n&&!i)return;let c=t.let("valid"),l=a.items?(0,mc.getSchemaTypes)(a.items):[];e.block$data(c,p,(0,De._)`${o} === false`),e.ok(c);function p(){let m=t.let("i",(0,De._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,De._)`${m} > 1`,()=>(d()?f:u)(m,g))}function d(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let y=t.name("item"),w=(0,mc.checkDataTypes)(l,y,s.opts.strictNumbers,mc.DataType.Wrong),A=t.const("indices",(0,De._)`{}`);t.for((0,De._)`;${m}--;`,()=>{t.let(y,(0,De._)`${r}[${m}]`),t.if(w,(0,De._)`continue`),l.length>1&&t.if((0,De._)`typeof ${y} == "string"`,(0,De._)`${y} += "_"`),t.if((0,De._)`typeof ${A}[${y}] == "number"`,()=>{t.assign(g,(0,De._)`${A}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,De._)`${A}[${y}] = ${m}`)})}function u(m,g){let y=(0,Ob.useFunc)(t,Sb.default),w=t.name("outer");t.label(w).for((0,De._)`;${m}--;`,()=>t.for((0,De._)`${g} = ${m}; ${g}--;`,()=>t.if((0,De._)`${y}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};gc.default=jb});var Mu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var yc=x(),Cb=q(),$b=Na(),Lb={message:"must be equal to constant",params:({schemaCode:e})=>(0,yc._)`{allowedValue: ${e}}`},Tb={keyword:"const",$data:!0,error:Lb,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,yc._)`!${(0,Cb.useFunc)(t,$b.default)}(${r}, ${i})`):e.fail((0,yc._)`${a} !== ${r}`)}};hc.default=Tb});var Fu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var ci=x(),xb=q(),Vb=Na(),Mb={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ci._)`{allowedValues: ${e}}`},Fb={keyword:"enum",schemaType:"array",$data:!0,error:Mb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:a,it:o}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=o.opts.loopEnum,c,l=()=>c??(c=(0,xb.useFunc)(t,Vb.default)),p;if(s||n)p=t.let("valid"),e.block$data(p,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",a);p=(0,ci.or)(...i.map((m,g)=>f(u,g)))}e.pass(p);function d(){t.assign(p,!1),t.forOf("v",a,u=>t.if((0,ci._)`${l()}(${r}, ${u})`,()=>t.assign(p,!0).break()))}function f(u,m){let g=i[m];return typeof g=="object"&&g!==null?(0,ci._)`${l()}(${r}, ${u}[${m}])`:(0,ci._)`${r} === ${g}`}}};wc.default=Fb});var Uu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Ub=Nu(),qb=Ou(),Bb=ju(),zb=Cu(),Gb=$u(),Jb=Lu(),Wb=Tu(),Kb=Vu(),Yb=Mu(),Hb=Fu(),Xb=[Ub.default,qb.default,Bb.default,zb.default,Gb.default,Jb.default,Wb.default,Kb.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Yb.default,Hb.default];Ic.default=Xb});var bc=E(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.validateAdditionalItems=void 0;var Nr=x(),vc=q(),Zb={message:({params:{len:e}})=>(0,Nr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Nr._)`{limit: ${e}}`},Qb={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Zb,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,vc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}qu(e,n)}};function qu(e,t){let{gen:r,schema:n,data:i,keyword:a,it:o}=e;o.items=!0;let s=r.const("len",(0,Nr._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Nr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,vc.alwaysValidSchema)(o,n)){let l=r.var("valid",(0,Nr._)`${s} <= ${t.length}`);r.if((0,Nr.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,p=>{e.subschema({keyword:a,dataProp:p,dataPropType:vc.Type.Num},l),o.allErrors||r.if((0,Nr.not)(l),()=>r.break())})}}li.validateAdditionalItems=qu;li.default=Qb});var kc=E(pi=>{"use strict";Object.defineProperty(pi,"__esModule",{value:!0});pi.validateTuple=void 0;var Bu=x(),Oa=q(),ek=ct(),tk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return zu(e,"additionalItems",t);r.items=!0,!(0,Oa.alwaysValidSchema)(r,t)&&e.ok((0,ek.validateArray)(e))}};function zu(e,t,r=e.schema){let{gen:n,parentSchema:i,data:a,keyword:o,it:s}=e;p(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=Oa.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Bu._)`${a}.length`);r.forEach((d,f)=>{(0,Oa.alwaysValidSchema)(s,d)||(n.if((0,Bu._)`${l} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function p(d){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===d.minItems&&(m===d.maxItems||d[t]===!1);if(f.strictTuples&&!g){let y=`"${o}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,Oa.checkStrictMode)(s,y,f.strictTuples)}}}pi.validateTuple=zu;pi.default=tk});var Gu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var rk=kc(),nk={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,rk.validateTuple)(e,"items")};_c.default=nk});var Wu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var Ju=x(),ik=q(),ak=ct(),ok=bc(),sk={message:({params:{len:e}})=>(0,Ju.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ju._)`{limit: ${e}}`},ck={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:sk,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,ik.alwaysValidSchema)(n,t)&&(i?(0,ok.validateAdditionalItems)(e,i):e.ok((0,ak.validateArray)(e)))}};Ac.default=ck});var Ku=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var pt=x(),Sa=q(),lk={message:({params:{min:e,max:t}})=>t===void 0?(0,pt.str)`must contain at least ${e} valid item(s)`:(0,pt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,pt._)`{minContains: ${e}}`:(0,pt._)`{minContains: ${e}, maxContains: ${t}}`},pk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:lk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e,o,s,{minContains:c,maxContains:l}=n;a.opts.next?(o=c===void 0?1:c,s=l):o=1;let p=t.const("len",(0,pt._)`${i}.length`);if(e.setParams({min:o,max:s}),s===void 0&&o===0){(0,Sa.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,Sa.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Sa.alwaysValidSchema)(a,r)){let g=(0,pt._)`${p} >= ${o}`;s!==void 0&&(g=(0,pt._)`${g} && ${p} <= ${s}`),e.pass(g);return}a.items=!0;let d=t.name("valid");s===void 0&&o===1?u(d,()=>t.if(d,()=>t.break())):o===0?(t.let(d,!0),s!==void 0&&t.if((0,pt._)`${i}.length > 0`,f)):(t.let(d,!1),f()),e.result(d,()=>e.reset());function f(){let g=t.name("_valid"),y=t.let("count",0);u(g,()=>t.if(g,()=>m(y)))}function u(g,y){t.forRange("i",0,p,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Sa.Type.Num,compositeRule:!0},g),y()})}function m(g){t.code((0,pt._)`${g}++`),s===void 0?t.if((0,pt._)`${g} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,pt._)`${g} > ${s}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,pt._)`${g} >= ${o}`,()=>t.assign(d,!0)))}}};Rc.default=pk});var Da=E(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.validateSchemaDeps=jt.validatePropertyDeps=jt.error=void 0;var Ec=x(),dk=q(),di=ct();jt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Ec.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Ec._)`{property: ${e},
|
|
1
|
+
import{a as E,b as nn,c as Fn,d as rp,e as j,f as np,g as ip,h as op,i as ap,j as sp}from"./chunk.js";var Bn=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var Un=class{};Y._CodeOrName=Un;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ir=class extends Un{constructor(t){if(super(),!Y.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Y.Name=Ir;var at=class extends Un{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 Ir&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=at;Y.nil=new at("");function cp(e,...t){let r=[e[0]],n=0;for(;n<t.length;)gs(r,t[n]),r.push(e[++n]);return new at(r)}Y._=cp;var ms=new at("+");function lp(e,...t){let r=[qn(e[0])],n=0;for(;n<t.length;)r.push(ms),gs(r,t[n]),r.push(ms,qn(e[++n]));return Hh(r),new at(r)}Y.str=lp;function gs(e,t){t instanceof at?e.push(...t._items):t instanceof Ir?e.push(t):e.push(Qh(t))}Y.addCodeArg=gs;function Hh(e){let t=1;for(;t<e.length-1;){if(e[t]===ms){let r=Xh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Xh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof Ir||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 Ir))return`"${e}${t.slice(1)}`}function Zh(e,t){return t.emptyStr()?e:e.emptyStr()?t:lp`${e}${t}`}Y.strConcat=Zh;function Qh(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:qn(Array.isArray(e)?e.join(","):e)}function ew(e){return new at(qn(e))}Y.stringify=ew;function qn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=qn;function tw(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new at(`.${e}`):cp`[${e}]`}Y.getProperty=tw;function rw(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new at(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=rw;function nw(e){return new at(e.toString())}Y.regexpCode=nw});var ws=E(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.ValueScope=Ye.ValueScopeName=Ye.Scope=Ye.varKinds=Ye.UsedValueState=void 0;var Ke=Bn(),ys=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},co;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(co||(Ye.UsedValueState=co={}));Ye.varKinds={const:new Ke.Name("const"),let:new Ke.Name("let"),var:new Ke.Name("var")};var lo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Ke.Name?t:this.name(t)}name(t){return new Ke.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}}};Ye.Scope=lo;var po=class extends Ke.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Ke._)`.${new Ke.Name(r)}[${n}]`}};Ye.ValueScopeName=po;var iw=(0,Ke._)`\n`,hs=class extends lo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?iw:Ke.nil}}get(){return this._scope}name(t){return new po(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:o}=i,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[o];if(s){let d=s.get(a);if(d)return d}else s=this._values[o]=new Map;s.set(a,i);let c=this._scope[o]||(this._scope[o]=[]),l=c.length;return c[l]=r.ref,i.setValue(r,{property:o,itemIndex:l}),i}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Ke._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let o=Ke.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,co.Started);let d=r(l);if(d){let p=this.opts.es5?Ye.varKinds.var:Ye.varKinds.const;o=(0,Ke._)`${o}${p} ${l} = ${d};${this.opts._n}`}else if(d=i?.(l))o=(0,Ke._)`${o}${d}${this.opts._n}`;else throw new ys(l);c.set(l,co.Completed)})}return o}};Ye.ValueScope=hs});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Bn(),wt=ws(),Xt=Bn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Xt.Name}});var go=ws();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return go.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return go.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return go.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return go.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var xt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Is=class extends xt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?wt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=an(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},uo=class extends xt{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=an(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return mo(t,this.rhs)}},vs=class extends uo{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},bs=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},ks=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},_s=class extends xt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},As=class extends xt{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=an(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},zn=class extends xt{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,i=n.length;for(;i--;){let o=n[i];o.optimizeNames(t,r)||(ow(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>kr(t,r.names),{})}},Vt=class extends zn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Rs=class extends zn{},on=class extends Vt{};on.kind="else";var vr=class e extends Vt{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 on(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(dp(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=an(this.condition,t,r),this}get names(){let t=super.names;return mo(t,this.condition),this.else&&kr(t,this.else.names),t}};vr.kind="if";var br=class extends Vt{};br.kind="for";var Es=class extends br{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=an(this.iteration,t,r),this}get names(){return kr(super.names,this.iteration.names)}},Ps=class extends br{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?wt.varKinds.var:this.varKind,{name:n,from:i,to:o}=this;return`for(${r} ${n}=${i}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=mo(super.names,this.from);return mo(t,this.to)}},fo=class extends br{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=an(this.iterable,t,r),this}get names(){return kr(super.names,this.iterable.names)}},Gn=class extends Vt{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)}};Gn.kind="func";var Jn=class extends zn{render(t){return"return "+super.render(t)}};Jn.kind="return";var Ns=class extends Vt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&kr(t,this.catch.names),this.finally&&kr(t,this.finally.names),t}},Wn=class extends Vt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Wn.kind="catch";var Kn=class extends Vt{render(t){return"finally"+super.render(t)}};Kn.kind="finally";var Os=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
+
`:""},this._extScope=t,this._scope=new wt.Scope({parent:t}),this._nodes=[new Rs]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,i){let o=this._scope.toName(r);return n!==void 0&&i&&(this._constants[o.str]=n),this._leafNode(new Is(t,o,n)),o}const(t,r,n){return this._def(wt.varKinds.const,t,r,n)}let(t,r,n){return this._def(wt.varKinds.let,t,r,n)}var(t,r,n){return this._def(wt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new uo(t,r,n))}add(t,r){return this._leafNode(new vs(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new As(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new vr(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 vr(t))}else(){return this._elseNode(new on)}endIf(){return this._endBlockNode(vr,on)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Es(t),r)}forRange(t,r,n,i,o=this.opts.es5?wt.varKinds.var:wt.varKinds.let){let a=this._scope.toName(t);return this._for(new Ps(o,a,r,n),()=>i(a))}forOf(t,r,n,i=wt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${a}.length`,s=>{this.var(o,(0,z._)`${a}[${s}]`),n(o)})}return this._for(new fo("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?wt.varKinds.var:wt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new fo("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(br)}label(t){return this._leafNode(new bs(t))}break(t){return this._leafNode(new ks(t))}return(t){let r=new Jn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Jn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Ns;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Wn(o),r(o)}return n&&(this._currNode=i.finally=new Kn,this.code(n)),this._endBlockNode(Wn,Kn)}throw(t){return this._leafNode(new _s(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=z.nil,n,i){return this._blockNode(new Gn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Gn)}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 vr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};F.CodeGen=Os;function kr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function mo(e,t){return t instanceof z._CodeOrName?kr(e,t.names):e}function an(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((o,a)=>(a instanceof z.Name&&(a=n(a)),a instanceof z._Code?o.push(...a._items):o.push(a),o),[]));function n(o){let a=r[o.str];return a===void 0||t[o.str]!==1?o:(delete t[o.str],a)}function i(o){return o instanceof z._Code&&o._items.some(a=>a instanceof z.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function ow(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function dp(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${Ss(e)}`}F.not=dp;var aw=pp(F.operators.AND);function sw(...e){return e.reduce(aw)}F.and=sw;var cw=pp(F.operators.OR);function lw(...e){return e.reduce(cw)}F.or=lw;function pp(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${Ss(t)} ${e} ${Ss(r)}`}function Ss(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var oe=x(),dw=Bn();function pw(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=pw;function uw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(mp(e,t),!gp(t,e.self.RULES.all))}U.alwaysValidSchema=uw;function mp(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let o in t)i[o]||wp(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=mp;function gp(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=gp;function fw(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}U.schemaHasRulesButRef=fw;function mw({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,oe._)`${r}`}return(0,oe._)`${e}${t}${(0,oe.getProperty)(n)}`}U.schemaRefOrVal=mw;function gw(e){return yp(decodeURIComponent(e))}U.unescapeFragment=gw;function yw(e){return encodeURIComponent(js(e))}U.escapeFragment=yw;function js(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=js;function yp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=yp;function hw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=hw;function up({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,o,a,s)=>{let c=a===void 0?o:a instanceof oe.Name?(o instanceof oe.Name?e(i,o,a):t(i,o,a),a):o instanceof oe.Name?(t(i,a,o),o):r(o,a);return s===oe.Name&&!(c instanceof oe.Name)?n(i,c):c}}U.mergeEvaluated={props:up({mergeNames:(e,t,r)=>e.if((0,oe._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,oe._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,oe._)`${r} || {}`).code((0,oe._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,oe._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,oe._)`${r} || {}`),Cs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:hp}),items:up({mergeNames:(e,t,r)=>e.if((0,oe._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,oe._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,oe._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,oe._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function hp(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,oe._)`{}`);return t!==void 0&&Cs(e,r,t),r}U.evaluatedPropsToName=hp;function Cs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,oe._)`${t}${(0,oe.getProperty)(n)}`,!0))}U.setEvaluated=Cs;var fp={};function ww(e,t){return e.scopeValue("func",{ref:t,code:fp[t.code]||(fp[t.code]=new dw._Code(t.code))})}U.useFunc=ww;var Ds;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Ds||(U.Type=Ds={}));function Iw(e,t,r){if(e instanceof oe.Name){let n=t===Ds.Num;return r?n?(0,oe._)`"[" + ${e} + "]"`:(0,oe._)`"['" + ${e} + "']"`:n?(0,oe._)`"/" + ${e}`:(0,oe._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,oe.getProperty)(e).toString():"/"+js(e)}U.getErrorPath=Iw;function wp(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}U.checkStrictMode=wp});var st=E($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var xe=x(),vw={data:new xe.Name("data"),valCxt:new xe.Name("valCxt"),instancePath:new xe.Name("instancePath"),parentData:new xe.Name("parentData"),parentDataProperty:new xe.Name("parentDataProperty"),rootData:new xe.Name("rootData"),dynamicAnchors:new xe.Name("dynamicAnchors"),vErrors:new xe.Name("vErrors"),errors:new xe.Name("errors"),this:new xe.Name("this"),self:new xe.Name("self"),scope:new xe.Name("scope"),json:new xe.Name("json"),jsonPos:new xe.Name("jsonPos"),jsonLen:new xe.Name("jsonLen"),jsonPart:new xe.Name("jsonPart")};$s.default=vw});var Yn=E(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.extendErrors=Ve.resetErrorsCount=Ve.reportExtraError=Ve.reportError=Ve.keyword$DataError=Ve.keywordError=void 0;var J=x(),yo=q(),Be=st();Ve.keywordError={message:({keyword:e})=>(0,J.str)`must pass "${e}" keyword validation`};Ve.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,J.str)`"${e}" keyword must be ${t} ($data)`:(0,J.str)`"${e}" keyword is invalid ($data)`};function bw(e,t=Ve.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=bp(e,t,r);n??(a||s)?Ip(o,c):vp(i,(0,J._)`[${c}]`)}Ve.reportError=bw;function kw(e,t=Ve.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=bp(e,t,r);Ip(i,s),o||a||vp(n,Be.default.vErrors)}Ve.reportExtraError=kw;function _w(e,t){e.assign(Be.default.errors,t),e.if((0,J._)`${Be.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,J._)`${Be.default.vErrors}.length`,t),()=>e.assign(Be.default.vErrors,null)))}Ve.resetErrorsCount=_w;function Aw({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:o}){if(i===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",i,Be.default.errors,s=>{e.const(a,(0,J._)`${Be.default.vErrors}[${s}]`),e.if((0,J._)`${a}.instancePath === undefined`,()=>e.assign((0,J._)`${a}.instancePath`,(0,J.strConcat)(Be.default.instancePath,o.errorPath))),e.assign((0,J._)`${a}.schemaPath`,(0,J.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,J._)`${a}.schema`,r),e.assign((0,J._)`${a}.data`,n))})}Ve.extendErrors=Aw;function Ip(e,t){let r=e.const("err",t);e.if((0,J._)`${Be.default.vErrors} === null`,()=>e.assign(Be.default.vErrors,(0,J._)`[${r}]`),(0,J._)`${Be.default.vErrors}.push(${r})`),e.code((0,J._)`${Be.default.errors}++`)}function vp(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,J._)`new ${e.ValidationError}(${t})`):(r.assign((0,J._)`${n}.errors`,t),r.return(!1))}var _r={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function bp(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,J._)`{}`:Rw(e,t,r)}function Rw(e,t,r={}){let{gen:n,it:i}=e,o=[Ew(i,r),Pw(e,r)];return Nw(e,t,o),n.object(...o)}function Ew({errorPath:e},{instancePath:t}){let r=t?(0,J.str)`${e}${(0,yo.getErrorPath)(t,yo.Type.Str)}`:e;return[Be.default.instancePath,(0,J.strConcat)(Be.default.instancePath,r)]}function Pw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,J.str)`${t}/${e}`;return r&&(i=(0,J.str)`${i}${(0,yo.getErrorPath)(r,yo.Type.Str)}`),[_r.schemaPath,i]}function Nw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([_r.keyword,i],[_r.params,typeof t=="function"?t(e):t||(0,J._)`{}`]),c.messages&&n.push([_r.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([_r.schema,a],[_r.parentSchema,(0,J._)`${d}${p}`],[Be.default.data,o]),l&&n.push([_r.propertyName,l])}});var _p=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.boolOrEmptySchema=sn.topBoolOrEmptySchema=void 0;var Ow=Yn(),Sw=x(),Dw=st(),jw={message:"boolean schema is false"};function Cw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?kp(e,!1):typeof r=="object"&&r.$async===!0?t.return(Dw.default.data):(t.assign((0,Sw._)`${n}.errors`,null),t.return(!0))}sn.topBoolOrEmptySchema=Cw;function $w(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),kp(e)):r.var(t,!0)}sn.boolOrEmptySchema=$w;function kp(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Ow.reportError)(i,jw,void 0,t)}});var Ts=E(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getRules=cn.isJSONType=void 0;var Tw=["string","number","integer","boolean","null","object","array"],Lw=new Set(Tw);function xw(e){return typeof e=="string"&&Lw.has(e)}cn.isJSONType=xw;function Vw(){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:{}}}cn.getRules=Vw});var Ls=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.shouldUseRule=Zt.shouldUseGroup=Zt.schemaHasRulesForType=void 0;function Mw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ap(e,n)}Zt.schemaHasRulesForType=Mw;function Ap(e,t){return t.rules.some(r=>Rp(e,r))}Zt.shouldUseGroup=Ap;function Rp(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Zt.shouldUseRule=Rp});var Hn=E(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.reportTypeError=Me.checkDataTypes=Me.checkDataType=Me.coerceAndCheckDataType=Me.getJSONTypes=Me.getSchemaTypes=Me.DataType=void 0;var Fw=Ts(),Uw=Ls(),qw=Yn(),V=x(),Ep=q(),ln;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ln||(Me.DataType=ln={}));function Bw(e){let t=Pp(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}Me.getSchemaTypes=Bw;function Pp(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Fw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Me.getJSONTypes=Pp;function zw(e,t){let{gen:r,data:n,opts:i}=e,o=Gw(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Uw.schemaHasRulesForType)(e,t[0]));if(a){let s=Vs(t,n,i.strictNumbers,ln.Wrong);r.if(s,()=>{o.length?Jw(e,t,o):Ms(e)})}return a}Me.coerceAndCheckDataType=zw;var Np=new Set(["string","number","integer","boolean","null"]);function Gw(e,t){return t?e.filter(r=>Np.has(r)||t==="array"&&r==="array"):[]}function Jw(e,t,r){let{gen:n,data:i,opts:o}=e,a=n.let("dataType",(0,V._)`typeof ${i}`),s=n.let("coerced",(0,V._)`undefined`);o.coerceTypes==="array"&&n.if((0,V._)`${a} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,V._)`${i}[0]`).assign(a,(0,V._)`typeof ${i}`).if(Vs(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(Np.has(l)||l==="array"&&o.coerceTypes==="array")&&c(l);n.else(),Ms(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),Ww(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,V._)`"" + ${i}`).elseIf((0,V._)`${i} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${a} == "boolean" || ${i} === null
|
|
3
|
+
|| (${a} == "string" && ${i} && ${i} == +${i})`).assign(s,(0,V._)`+${i}`);return;case"integer":n.elseIf((0,V._)`${a} === "boolean" || ${i} === null
|
|
4
|
+
|| (${a} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(s,(0,V._)`+${i}`);return;case"boolean":n.elseIf((0,V._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(s,!1).elseIf((0,V._)`${i} === "true" || ${i} === 1`).assign(s,!0);return;case"null":n.elseIf((0,V._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(s,null);return;case"array":n.elseIf((0,V._)`${a} === "string" || ${a} === "number"
|
|
5
|
+
|| ${a} === "boolean" || ${i} === null`).assign(s,(0,V._)`[${i}]`)}}}function Ww({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function xs(e,t,r,n=ln.Correct){let i=n===ln.Correct?V.operators.EQ:V.operators.NEQ,o;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":o=(0,V._)`Array.isArray(${t})`;break;case"object":o=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===ln.Correct?o:(0,V.not)(o);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Me.checkDataType=xs;function Vs(e,t,r,n){if(e.length===1)return xs(e[0],t,r,n);let i,o=(0,Ep.toHash)(e);if(o.array&&o.object){let a=(0,V._)`typeof ${t} != "object"`;i=o.null?a:(0,V._)`!${t} || ${a}`,delete o.null,delete o.array,delete o.object}else i=V.nil;o.number&&delete o.integer;for(let a in o)i=(0,V.and)(i,xs(a,t,r,n));return i}Me.checkDataTypes=Vs;var Kw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Ms(e){let t=Yw(e);(0,qw.reportError)(t,Kw)}Me.reportTypeError=Ms;function Yw(e){let{gen:t,data:r,schema:n}=e,i=(0,Ep.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var Sp=E(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.assignDefaults=void 0;var dn=x(),Hw=q();function Xw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Op(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Op(e,o,i.default))}ho.assignDefaults=Xw;function Op(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,dn._)`${o}${(0,dn.getProperty)(t)}`;if(i){(0,Hw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,dn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,dn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,dn._)`${s} = ${(0,dn.stringify)(r)}`)}});var ct=E(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var fe=x(),Fs=q(),Qt=st(),Zw=q();function Qw(e,t){let{gen:r,data:n,it:i}=e;r.if(qs(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,fe._)`${t}`},!0),e.error()})}ne.checkReportMissingProp=Qw;function eI({gen:e,data:t,it:{opts:r}},n,i){return(0,fe.or)(...n.map(o=>(0,fe.and)(qs(e,t,o,r.ownProperties),(0,fe._)`${i} = ${o}`)))}ne.checkMissingProp=eI;function tI(e,t){e.setParams({missingProperty:t},!0),e.error()}ne.reportMissingProp=tI;function Dp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,fe._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=Dp;function Us(e,t,r){return(0,fe._)`${Dp(e)}.call(${t}, ${r})`}ne.isOwnProperty=Us;function rI(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} !== undefined`;return n?(0,fe._)`${i} && ${Us(e,t,r)}`:i}ne.propertyInData=rI;function qs(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} === undefined`;return n?(0,fe.or)(i,(0,fe.not)(Us(e,t,r))):i}ne.noPropertyInData=qs;function jp(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ne.allSchemaProperties=jp;function nI(e,t){return jp(t).filter(r=>!(0,Fs.alwaysValidSchema)(e,t[r]))}ne.schemaProperties=nI;function iI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,l){let d=l?(0,fe._)`${e}, ${t}, ${n}${i}`:t,p=[[Qt.default.instancePath,(0,fe.strConcat)(Qt.default.instancePath,o)],[Qt.default.parentData,a.parentData],[Qt.default.parentDataProperty,a.parentDataProperty],[Qt.default.rootData,Qt.default.rootData]];a.opts.dynamicRef&&p.push([Qt.default.dynamicAnchors,Qt.default.dynamicAnchors]);let f=(0,fe._)`${d}, ${r.object(...p)}`;return c!==fe.nil?(0,fe._)`${s}.call(${c}, ${f})`:(0,fe._)`${s}(${f})`}ne.callValidateCode=iI;var oI=(0,fe._)`new RegExp`;function aI({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,o=i(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,fe._)`${i.code==="new RegExp"?oI:(0,Zw.useFunc)(e,i)}(${r}, ${n})`})}ne.usePattern=aI;function sI(e){let{gen:t,data:r,keyword:n,it:i}=e,o=t.name("valid");if(i.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(o,!0),a(()=>t.break()),o;function a(s){let c=t.const("len",(0,fe._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Fs.Type.Num},o),t.if((0,fe.not)(o),s)})}}ne.validateArray=sI;function cI(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Fs.alwaysValidSchema)(i,c))&&!i.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,fe._)`${a} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,fe.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ne.validateUnion=cI});var Tp=E(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.validateKeywordUsage=St.validSchemaType=St.funcKeywordCode=St.macroKeywordCode=void 0;var ze=x(),Ar=st(),lI=ct(),dI=Yn();function pI(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=$p(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:ze.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}St.macroKeywordCode=pI;function uI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;mI(c,t);let l=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,d=$p(n,i,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&Cp(e),y(()=>e.error());else{let w=t.async?u():m();t.modifying&&Cp(e),y(()=>fI(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,ze._)`await `),A=>n.assign(p,!1).if((0,ze._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,ze._)`${A}.errors`),()=>n.throw(A))),w}function m(){let w=(0,ze._)`${d}.errors`;return n.assign(w,null),g(ze.nil),w}function g(w=t.async?(0,ze._)`await `:ze.nil){let A=c.opts.passContext?Ar.default.this:Ar.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,ze._)`${w}${(0,lI.callValidateCode)(e,d,A,b)}`,t.modifying)}function y(w){var A;n.if((0,ze.not)((A=t.valid)!==null&&A!==void 0?A:p),w)}}St.funcKeywordCode=uI;function Cp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,ze._)`${n.parentData}[${n.parentDataProperty}]`))}function fI(e,t){let{gen:r}=e;r.if((0,ze._)`Array.isArray(${t})`,()=>{r.assign(Ar.default.vErrors,(0,ze._)`${Ar.default.vErrors} === null ? ${t} : ${Ar.default.vErrors}.concat(${t})`).assign(Ar.default.errors,(0,ze._)`${Ar.default.vErrors}.length`),(0,dI.extendErrors)(e)},()=>e.error())}function mI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function $p(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,ze.stringify)(r)})}function gI(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")}St.validSchemaType=gI;function yI({schema:e,opts:t,self:r,errSchemaPath:n},i,o){if(Array.isArray(i.keyword)?!i.keyword.includes(o):i.keyword!==o)throw new Error("ajv implementation error");let a=i.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${o}: ${a.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[o])){let c=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}St.validateKeywordUsage=yI});var xp=E(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.extendSubschemaMode=er.extendSubschemaData=er.getSubschema=void 0;var Dt=x(),Lp=q();function hI(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:o,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,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}${(0,Dt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Lp.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||o===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:a,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}er.getSubschema=hI;function wI(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:o,propertyName:a}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Dt._)`${t.data}${(0,Dt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Dt.str)`${l}${(0,Lp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Dt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(i!==void 0){let l=i instanceof Dt.Name?i:s.let("data",i,!0);c(l),a!==void 0&&(e.propertyName=a)}o&&(e.dataTypes=o);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]}}er.extendSubschemaData=wI;function II(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:o}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}er.extendSubschemaMode=II});var Bs=E((NO,Vp)=>{"use strict";Vp.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;i--!==0;){var a=o[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var Fp=E((OO,Mp)=>{"use strict";var tr=Mp.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};wo(t,n,i,e,"",e)};tr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};tr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};tr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};tr.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 wo(e,t,r,n,i,o,a,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,o,a,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in tr.arrayKeywords)for(var f=0;f<p.length;f++)wo(e,t,r,p[f],i+"/"+d+"/"+f,o,i,d,n,f)}else if(d in tr.propsKeywords){if(p&&typeof p=="object")for(var u in p)wo(e,t,r,p[u],i+"/"+d+"/"+vI(u),o,i,d,n,u)}else(d in tr.keywords||e.allKeys&&!(d in tr.skipKeywords))&&wo(e,t,r,p,i+"/"+d,o,i,d,n)}r(n,i,o,a,s,c,l)}}function vI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Xn=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.getSchemaRefs=He.resolveUrl=He.normalizeId=He._getFullPath=He.getFullPath=He.inlineRef=void 0;var bI=q(),kI=Bs(),_I=Fp(),AI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!zs(e):t?Up(e)<=t:!1}He.inlineRef=RI;var EI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function zs(e){for(let t in e){if(EI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(zs)||typeof r=="object"&&zs(r))return!0}return!1}function Up(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!AI.has(r)&&(typeof e[r]=="object"&&(0,bI.eachItem)(e[r],n=>t+=Up(n)),t===1/0))return 1/0}return t}function qp(e,t="",r){r!==!1&&(t=pn(t));let n=e.parse(t);return Bp(e,n)}He.getFullPath=qp;function Bp(e,t){return e.serialize(t).split("#")[0]+"#"}He._getFullPath=Bp;var PI=/#\/?$/;function pn(e){return e?e.replace(PI,""):""}He.normalizeId=pn;function NI(e,t,r){return r=pn(r),e.resolve(t,r)}He.resolveUrl=NI;var OI=/^[a-z_][-a-z0-9._]*$/i;function SI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=pn(e[r]||t),o={"":i},a=qp(n,i,!1),s={},c=new Set;return _I(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=a+f,y=o[m];typeof p[r]=="string"&&(y=w.call(this,p[r])),A.call(this,p.$anchor),A.call(this,p.$dynamicAnchor),o[f]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=pn(y?R(y,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!==pn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!OI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!kI(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}He.getSchemaRefs=SI});var ei=E(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.getData=rr.KeywordCxt=rr.validateFunctionCode=void 0;var Kp=_p(),zp=Hn(),Js=Ls(),Io=Hn(),DI=Sp(),Qn=Tp(),Gs=xp(),O=x(),L=st(),jI=Xn(),Mt=q(),Zn=Yn();function CI(e){if(Xp(e)&&(Zp(e),Hp(e))){LI(e);return}Yp(e,()=>(0,Kp.topBoolOrEmptySchema)(e))}rr.validateFunctionCode=CI;function Yp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},o){i.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${Gp(r,i)}`),TI(e,i),e.code(o)}):e.func(t,(0,O._)`${L.default.data}, ${$I(i)}`,n.$async,()=>e.code(Gp(r,i)).code(o))}function $I(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 TI(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 LI(e){let{schema:t,opts:r,gen:n}=e;Yp(e,()=>{r.$comment&&t.$comment&&eu(e),UI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&xI(e),Qp(e),zI(e)})}function xI(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 Gp(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 VI(e,t){if(Xp(e)&&(Zp(e),Hp(e))){MI(e,t);return}(0,Kp.boolOrEmptySchema)(e,t)}function Hp({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 Xp(e){return typeof e.schema!="boolean"}function MI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&eu(e),qI(e),BI(e);let o=n.const("_errs",L.default.errors);Qp(e,o),n.var(t,(0,O._)`${o} === ${L.default.errors}`)}function Zp(e){(0,Mt.checkUnknownRules)(e),FI(e)}function Qp(e,t){if(e.opts.jtd)return Jp(e,[],!1,t);let r=(0,zp.getSchemaTypes)(e.schema),n=(0,zp.coerceAndCheckDataType)(e,r);Jp(e,r,!n,t)}function FI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Mt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function UI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Mt.checkStrictMode)(e,"default is ignored in the schema root")}function qI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,jI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function BI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function eu({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let o=r.$comment;if(i.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${o})`);else if(typeof i.$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(${o}, ${a}, ${s}.schema)`)}}function zI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:o}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),o.unevaluated&&GI(e),t.return((0,O._)`${L.default.errors} === 0`))}function GI({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 Jp(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,Mt.schemaHasRulesButRef)(o,d))){i.block(()=>ru(e,"$ref",d.all.$ref.definition));return}c.jtd||JI(e,t),i.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Js.shouldUseGroup)(o,f)&&(f.type?(i.if((0,Io.checkDataType)(f.type,a,c.strictNumbers)),Wp(e,f),t.length===1&&t[0]===f.type&&r&&(i.else(),(0,Io.reportTypeError)(e)),i.endIf()):Wp(e,f),s||i.if((0,O._)`${L.default.errors} === ${n||0}`))}}function Wp(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,DI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Js.shouldUseRule)(n,o)&&ru(e,o.keyword,o.definition,t.type)})}function JI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(WI(e,t),e.opts.allowUnionTypes||KI(e,t),YI(e,e.dataTypes))}function WI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{tu(e.dataTypes,r)||Ws(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),XI(e,t)}}function KI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ws(e,"use allowUnionTypes to allow union type keyword")}function YI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Js.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>HI(t,a))&&Ws(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function HI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function tu(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function XI(e,t){let r=[];for(let n of e.dataTypes)tu(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ws(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Mt.checkStrictMode)(e,t,e.opts.strictTypes)}var vo=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,Mt.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",nu(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?Zn.reportExtraError:Zn.reportError)(this,this.def.error,r)}$dataError(){(0,Zn.reportError)(this,this.def.$dataError||Zn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Zn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=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:i,schemaType:o,def:a}=this;n.if((0,O.or)((0,O._)`${i} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(o.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:i,it:o}=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,Io.checkDataTypes)(c,r,o.opts.strictNumbers,Io.DataType.Wrong)}`}return O.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,Gs.getSubschema)(this.it,t);(0,Gs.extendSubschemaData)(n,this.it,t),(0,Gs.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return VI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Mt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Mt.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};rr.KeywordCxt=vo;function ru(e,t,r,n){let i=new vo(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Qn.funcKeywordCode)(i,r):"macro"in r?(0,Qn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Qn.funcKeywordCode)(i,r)}var ZI=/^\/(?:[^~]|~0|~1)*$/,QI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function nu(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!ZI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let l=QI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(i=l[2],i==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(o=r[t-d],!i)return o}let a=o,s=i.split("/");for(let l of s)l&&(o=(0,O._)`${o}${(0,O.getProperty)((0,Mt.unescapeJsonPointer)(l))}`,a=(0,O._)`${a} && ${o}`);return a;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}rr.getData=nu});var bo=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Ks=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ys.default=Ks});var ti=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Hs=Xn(),Xs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Hs.resolveUrl)(t,r,n),this.missingSchema=(0,Hs.normalizeId)((0,Hs.getFullPath)(t,this.missingRef))}};Zs.default=Xs});var ri=E(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.resolveSchema=lt.getCompilingSchema=lt.resolveRef=lt.compileSchema=lt.SchemaEnv=void 0;var It=x(),ev=bo(),Rr=st(),vt=Xn(),iu=q(),tv=ei(),un=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,vt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};lt.SchemaEnv=un;function ec(e){let t=ou.call(this,e);if(t)return t;let r=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new It.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:ev.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:Rr.default.data,parentData:Rr.default.parentData,parentDataProperty:Rr.default.parentDataProperty,dataNames:[Rr.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,It.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:It.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,tv.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();d=`${a.scopeRefs(Rr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${Rr.default.self}`,`${Rr.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 It.Name?void 0:m,items:g instanceof It.Name?void 0:g,dynamicProps:m instanceof It.Name,dynamicItems:g instanceof It.Name},u.source&&(u.source.evaluated=(0,It.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)}}lt.compileSchema=ec;function rv(e,t,r){var n;r=(0,vt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=ov.call(this,e,r);if(o===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(o=new un({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=nv.call(this,o)}lt.resolveRef=rv;function nv(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ec.call(this,e)}function ou(e){for(let t of this._compilations)if(iv(t,e))return t}lt.getCompilingSchema=ou;function iv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function ov(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||ko.call(this,e,t)}function ko(e,t){let r=this.opts.uriResolver.parse(t),n=(0,vt._getFullPath)(this.opts.uriResolver,r),i=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return Qs.call(this,r,e);let o=(0,vt.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=ko.call(this,e,a);return typeof s?.schema!="object"?void 0:Qs.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||ec.call(this,a),o===(0,vt.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,l=s[c];return l&&(i=(0,vt.resolveUrl)(this.opts.uriResolver,i,l)),new un({schema:s,schemaId:c,root:e,baseId:i})}return Qs.call(this,r,a)}}lt.resolveSchema=ko;var av=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Qs(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,iu.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!av.has(s)&&l&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,l))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,iu.schemaHasRulesButRef)(r,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=ko.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new un({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var au=E((TO,sv)=>{sv.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 nc=E((LO,uu)=>{"use strict";var cv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),cu=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),tc=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),lu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),lv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function rc(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 dv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function su(e){return e.length=0,!0}function pv(e,t,r){if(e.length){let n=rc(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function uv(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=pv;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(o===!0&&(a=!0),!s(i,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(o=!0),n.push(":");continue}else if(l==="%"){if(!s(i,n,r))break;s=su}else{i.push(l);continue}}return i.length&&(s===su?r.zone=i.join(""):a?n.push(i.join("")):n.push(rc(i))),r.address=n.join(""),r}function du(e){if(fv(e,":")<2)return{host:e,isIPV6:!1};let t=uv(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 fv(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function mv(e){let t=e,r=[],n=-1,i=0;for(;i=t.length;){if(i===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(i===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){r.push("/");break}}else if(i===3&&t==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var gv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},yv=/[@/?#:]/g,hv=/[@/?#]/g;function pu(e,t){let r=t?hv:yv;return r.lastIndex=0,e.replace(r,n=>gv[n])}function wv(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let i=e.slice(n+1,n+3);if(tc(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&lu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function Iv(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(tc(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&lu(o)?t+=o:t+="%"+i,r+=2;continue}}lv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function vv(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(tc(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function bv(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!cu(r)){let n=du(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=pu(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}uu.exports={nonSimpleDomain:dv,recomposeAuthority:bv,reescapeHostDelimiters:pu,normalizePercentEncoding:wv,normalizePathEncoding:Iv,escapePreservingEscapes:vv,removeDotSegments:mv,isIPv4:cu,isUUID:cv,normalizeIPv6:du,stringArrayToHexStripped:rc}});var hu=E((xO,yu)=>{"use strict";var{isUUID:kv}=nc(),_v=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Av=["http","https","ws","wss","urn","urn:uuid"];function Rv(e){return Av.indexOf(e)!==-1}function ic(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 fu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function mu(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 Ev(e){return e.secure=ic(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Pv(e){if((e.port===(ic(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 Nv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(_v);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,o=oc(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Ov(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),i=`${r}:${t.nid||n}`,o=oc(i);o&&(e=o.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function Sv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!kv(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Dv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var gu={scheme:"http",domainHost:!0,parse:fu,serialize:mu},jv={scheme:"https",domainHost:gu.domainHost,parse:fu,serialize:mu},_o={scheme:"ws",domainHost:!0,parse:Ev,serialize:Pv},Cv={scheme:"wss",domainHost:_o.domainHost,parse:_o.parse,serialize:_o.serialize},$v={scheme:"urn",parse:Nv,serialize:Ov,skipNormalize:!0},Tv={scheme:"urn:uuid",parse:Sv,serialize:Dv,skipNormalize:!0},Ao={http:gu,https:jv,ws:_o,wss:Cv,urn:$v,"urn:uuid":Tv};Object.setPrototypeOf(Ao,null);function oc(e){return e&&(Ao[e]||Ao[e.toLowerCase()])||void 0}yu.exports={wsIsSecure:ic,SCHEMES:Ao,isValidSchemeName:Rv,getSchemeHandler:oc}});var ku=E((VO,Po)=>{"use strict";var{normalizeIPv6:Lv,removeDotSegments:ni,recomposeAuthority:xv,normalizePercentEncoding:Vv,normalizePathEncoding:Mv,escapePreservingEscapes:Fv,reescapeHostDelimiters:Uv,isIPv4:qv,nonSimpleDomain:Bv}=nc(),{SCHEMES:zv,getSchemeHandler:Iu}=hu();function Gv(e,t){return typeof e=="string"?e=Zv(e,t):typeof e=="object"&&(e=Eo(Er(e,t),t)),e}function Jv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=Ro(e,n),{parsed:a,malformedAuthorityOrPort:s}=Ro(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=vu(i,a,n,!0);return n.skipEscape=!0,Er(c,n)}function vu(e,t,r,n){let i={};return n||(e=Eo(Er(e,r),r),t=Eo(Er(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=ni(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=ni(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Wv(e,t,r){let n=wu(e,r),i=wu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Er(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),i=[],o=Iu(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Vv(r.path):(r.path=Fv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=xv(r);if(a!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(a),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(s=ni(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var Kv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Yv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Hv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Xv(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 Ro(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1,o=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let a=e.match(Yv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(Hv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(Kv);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=Xv(n,c);if(l!==void 0&&(n.error=n.error||l,i=!0),n.host)if(qv(n.host)===!1){let f=Lv(n.host);n.host=f.host.toLowerCase(),o=f.isIPV6}else o=!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=Iu(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&o===!1&&Bv(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=Uv(unescape(n.host),o))),n.path&&(n.path=Mv(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:i}}function Eo(e,t){return Ro(e,t).parsed}function Zv(e,t){return bu(e,t).normalized}function bu(e,t){let{parsed:r,malformedAuthorityOrPort:n}=Ro(e,t);return{normalized:n?e:Er(r,t),malformedAuthorityOrPort:n}}function wu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=bu(e,t);return n?void 0:r}if(typeof e=="object")return Er(e,t)}var ac={SCHEMES:zv,normalize:Gv,resolve:Jv,resolveComponent:vu,equal:Wv,serialize:Er,parse:Eo};Po.exports=ac;Po.exports.default=ac;Po.exports.fastUri=ac});var Au=E(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});var _u=ku();_u.code='require("ajv/dist/runtime/uri").default';sc.default=_u});var ju=E(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var Qv=ei();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return Qv.KeywordCxt}});var fn=x();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return fn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return fn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return fn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return fn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return fn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return fn.CodeGen}});var eb=bo(),Ou=ti(),tb=Ts(),ii=ri(),rb=x(),oi=Xn(),No=Hn(),lc=q(),Ru=au(),nb=Au(),Su=(e,t)=>new RegExp(e,t);Su.code="new RegExp";var ib=["removeAdditional","useDefaults","coerceTypes"],ob=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ab={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."},sb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Eu=200;function cb(e){var t,r,n,i,o,a,s,c,l,d,p,f,u,m,g,y,w,A,b,R,I,_,S,T,ue;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Z=P===!0||P===void 0?1:P||0,se=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Su,ot=(i=e.uriResolver)!==null&&i!==void 0?i:nb.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:$)!==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:Z,regExp:se}:{optimize:Z,regExp:se},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Eu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Eu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(_=e.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(T=e.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(ue=e.int32range)!==null&&ue!==void 0?ue:!0,uriResolver:ot}}var ai=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,...cb(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new rb.ValueScope({scope:{},prefixes:ob,es5:r,lines:n}),this.logger=mb(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,tb.getRules)(),Pu.call(this,ab,t,"NOT SUPPORTED"),Pu.call(this,sb,t,"DEPRECATED","warn"),this._metaOpts=ub.call(this),t.formats&&db.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&pb.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),lb.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Ru;n==="id"&&(i={...Ru},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,t,r);async function i(d,p){await o.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||a.call(this,f)}async function o(d){d&&!this.getSchema(d)&&await i.call(this,{$ref:d},!0)}async function a(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof Ou.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),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 o.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,i);return this}let o;if(typeof t=="object"){let{schemaId:a}=this.opts;if(o=t[a],o!==void 0&&typeof o!="string")throw new Error(`schema ${a} must be string`)}return r=(0,oi.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,t);if(!i&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return i}getSchema(t){let r;for(;typeof(r=Nu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ii.SchemaEnv({schema:{},schemaId:n});if(r=ii.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Nu.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,oi.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(yb.call(this,n,r),!r)return(0,lc.eachItem)(n,o=>cc.call(this,o)),this;wb.call(this,r);let i={...r,type:(0,No.getJSONTypes)(r.type),schemaType:(0,No.getJSONTypes)(r.schemaType)};return(0,lc.eachItem)(n,i.type.length===0?o=>cc.call(this,o,i):o=>i.type.forEach(a=>cc.call(this,o,i,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 i=n.rules.findIndex(o=>o.keyword===t);i>=0&&n.rules.splice(i,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,o)=>i+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let o=i.split("/").slice(1),a=t;for(let s of o)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]=Du(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,o=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,oi.normalizeId)(a||n);let l=oi.getSchemaRefs.call(this,t,n);return c=new ii.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):ii.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{ii.compileSchema.call(this,t)}finally{this.opts=r}}};ai.ValidationError=eb.default;ai.MissingRefError=Ou.default;Se.default=ai;function Pu(e,t,r,n="error"){for(let i in e){let o=i;o in t&&this.logger[n](`${r}: option ${i}. ${e[o]}`)}}function Nu(e){return e=(0,oi.normalizeId)(e),this.schemas[e]||this.refs[e]}function lb(){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 db(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function pb(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 ub(){let e={...this.opts};for(let t of ib)delete e[t];return e}var fb={log(){},warn(){},error(){}};function mb(e){if(e===!1)return fb;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 gb=/^[a-z_$][a-z0-9_$:-]*$/i;function yb(e,t){let{RULES:r}=this;if((0,lc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!gb.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 cc(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,a=i?o.post:o.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},o.rules.push(a)),o.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,No.getJSONTypes)(t.type),schemaType:(0,No.getJSONTypes)(t.schemaType)}};t.before?hb.call(this,a,s,t.before):a.rules.push(s),o.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function hb(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function wb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Du(t)),e.validateSchema=this.compile(t,!0))}var Ib={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Du(e){return{anyOf:[e,Ib]}}});var Cu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var vb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};dc.default=vb});var Do=E(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.callRef=Pr.getValidate=void 0;var bb=ti(),$u=ct(),Xe=x(),mn=st(),Tu=ri(),Oo=q(),kb={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:o,validateName:a,opts:s,self:c}=n,{root:l}=o;if((r==="#"||r==="#/")&&i===l.baseId)return p();let d=Tu.resolveRef.call(c,l,i,r);if(d===void 0)throw new bb.default(n.opts.uriResolver,i,r);if(d instanceof Tu.SchemaEnv)return f(d);return u(d);function p(){if(o===l)return So(e,a,o,o.$async);let m=t.scopeValue("root",{ref:l});return So(e,(0,Xe._)`${m}.validate`,l,l.$async)}function f(m){let g=Lu(e,m);So(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Xe.stringify)(m)}:{ref:m}),y=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Xe.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function Lu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Xe._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Pr.getValidate=Lu;function So(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,l=c.passContext?mn.default.this:Xe.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,Xe._)`await ${(0,$u.callValidateCode)(e,t,l)}`),u(t),a||i.assign(m,!0)},g=>{i.if((0,Xe._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),f(g),a||i.assign(m,!1)}),e.ok(m)}function p(){e.result((0,$u.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Xe._)`${m}.errors`;i.assign(mn.default.vErrors,(0,Xe._)`${mn.default.vErrors} === null ? ${g} : ${mn.default.vErrors}.concat(${g})`),i.assign(mn.default.errors,(0,Xe._)`${mn.default.vErrors}.length`)}function u(m){var g;if(!o.opts.unevaluated)return;let y=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(o.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(o.props=Oo.mergeEvaluated.props(i,y.props,o.props));else{let w=i.var("props",(0,Xe._)`${m}.evaluated.props`);o.props=Oo.mergeEvaluated.props(i,w,o.props,Xe.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Oo.mergeEvaluated.items(i,y.items,o.items));else{let w=i.var("items",(0,Xe._)`${m}.evaluated.items`);o.items=Oo.mergeEvaluated.items(i,w,o.items,Xe.Name)}}}Pr.callRef=So;Pr.default=kb});var xu=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var _b=Cu(),Ab=Do(),Rb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",_b.default,Ab.default];pc.default=Rb});var Vu=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var jo=x(),nr=jo.operators,Co={maximum:{okStr:"<=",ok:nr.LTE,fail:nr.GT},minimum:{okStr:">=",ok:nr.GTE,fail:nr.LT},exclusiveMaximum:{okStr:"<",ok:nr.LT,fail:nr.GTE},exclusiveMinimum:{okStr:">",ok:nr.GT,fail:nr.LTE}},Eb={message:({keyword:e,schemaCode:t})=>(0,jo.str)`must be ${Co[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,jo._)`{comparison: ${Co[e].okStr}, limit: ${t}}`},Pb={keyword:Object.keys(Co),type:"number",schemaType:"number",$data:!0,error:Eb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,jo._)`${r} ${Co[t].fail} ${n} || isNaN(${r})`)}};uc.default=Pb});var Mu=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var si=x(),Nb={message:({schemaCode:e})=>(0,si.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,si._)`{multipleOf: ${e}}`},Ob={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Nb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,si._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,si._)`${a} !== parseInt(${a})`;e.fail$data((0,si._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};fc.default=Ob});var Uu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});function Fu(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}mc.default=Fu;Fu.code='require("ajv/dist/runtime/ucs2length").default'});var qu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Nr=x(),Sb=q(),Db=Uu(),jb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Nr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Nr._)`{limit: ${e}}`},Cb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:jb,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Nr.operators.GT:Nr.operators.LT,a=i.opts.unicode===!1?(0,Nr._)`${r}.length`:(0,Nr._)`${(0,Sb.useFunc)(e.gen,Db.default)}(${r})`;e.fail$data((0,Nr._)`${a} ${o} ${n}`)}};gc.default=Cb});var Bu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var $b=ct(),Tb=q(),gn=x(),Lb={message:({schemaCode:e})=>(0,gn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,gn._)`{pattern: ${e}}`},xb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Lb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,gn._)`new RegExp`:(0,Tb.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,gn._)`${l}(${o}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,gn._)`!${d}`)}else{let c=(0,$b.usePattern)(e,i);e.fail$data((0,gn._)`!${c}.test(${r})`)}}};yc.default=xb});var zu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var ci=x(),Vb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ci.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ci._)`{limit: ${e}}`},Mb={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Vb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ci.operators.GT:ci.operators.LT;e.fail$data((0,ci._)`Object.keys(${r}).length ${i} ${n}`)}};hc.default=Mb});var Gu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var li=ct(),di=x(),Fb=q(),Ub={message:({params:{missingProperty:e}})=>(0,di.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,di._)`{missingProperty: ${e}}`},qb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Ub,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:o,it:a}=e,{opts:s}=a;if(!o&&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 y=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,Fb.checkStrictMode)(a,w,a.opts.strictRequired)}}function l(){if(c||o)e.block$data(di.nil,p);else for(let u of r)(0,li.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||o){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,li.checkMissingProp)(e,r,u)),(0,li.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,li.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,li.propertyInData)(t,i,u,s.ownProperties)),t.if((0,di.not)(m),()=>{e.error(),t.break()})},di.nil)}}};wc.default=qb});var Ju=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var pi=x(),Bb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,pi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,pi._)`{limit: ${e}}`},zb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Bb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?pi.operators.GT:pi.operators.LT;e.fail$data((0,pi._)`${r}.length ${i} ${n}`)}};Ic.default=zb});var $o=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Wu=Bs();Wu.code='require("ajv/dist/runtime/equal").default';vc.default=Wu});var Ku=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var bc=Hn(),De=x(),Gb=q(),Jb=$o(),Wb={message:({params:{i:e,j:t}})=>(0,De.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,De._)`{i: ${e}, j: ${t}}`},Kb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Wb,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:o,schemaCode:a,it:s}=e;if(!n&&!i)return;let c=t.let("valid"),l=o.items?(0,bc.getSchemaTypes)(o.items):[];e.block$data(c,d,(0,De._)`${a} === false`),e.ok(c);function d(){let m=t.let("i",(0,De._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,De._)`${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 y=t.name("item"),w=(0,bc.checkDataTypes)(l,y,s.opts.strictNumbers,bc.DataType.Wrong),A=t.const("indices",(0,De._)`{}`);t.for((0,De._)`;${m}--;`,()=>{t.let(y,(0,De._)`${r}[${m}]`),t.if(w,(0,De._)`continue`),l.length>1&&t.if((0,De._)`typeof ${y} == "string"`,(0,De._)`${y} += "_"`),t.if((0,De._)`typeof ${A}[${y}] == "number"`,()=>{t.assign(g,(0,De._)`${A}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,De._)`${A}[${y}] = ${m}`)})}function u(m,g){let y=(0,Gb.useFunc)(t,Jb.default),w=t.name("outer");t.label(w).for((0,De._)`;${m}--;`,()=>t.for((0,De._)`${g} = ${m}; ${g}--;`,()=>t.if((0,De._)`${y}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};kc.default=Kb});var Yu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var _c=x(),Yb=q(),Hb=$o(),Xb={message:"must be equal to constant",params:({schemaCode:e})=>(0,_c._)`{allowedValue: ${e}}`},Zb={keyword:"const",$data:!0,error:Xb,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,_c._)`!${(0,Yb.useFunc)(t,Hb.default)}(${r}, ${i})`):e.fail((0,_c._)`${o} !== ${r}`)}};Ac.default=Zb});var Hu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ui=x(),Qb=q(),ek=$o(),tk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ui._)`{allowedValues: ${e}}`},rk={keyword:"enum",schemaType:"array",$data:!0,error:tk,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,Qb.useFunc)(t,ek.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",o);d=(0,ui.or)(...i.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",o,u=>t.if((0,ui._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=i[m];return typeof g=="object"&&g!==null?(0,ui._)`${l()}(${r}, ${u}[${m}])`:(0,ui._)`${r} === ${g}`}}};Rc.default=rk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var nk=Vu(),ik=Mu(),ok=qu(),ak=Bu(),sk=zu(),ck=Gu(),lk=Ju(),dk=Ku(),pk=Yu(),uk=Hu(),fk=[nk.default,ik.default,ok.default,ak.default,sk.default,ck.default,lk.default,dk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},pk.default,uk.default];Ec.default=fk});var Nc=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.validateAdditionalItems=void 0;var Or=x(),Pc=q(),mk={message:({params:{len:e}})=>(0,Or.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Or._)`{limit: ${e}}`},gk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:mk,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Pc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Zu(e,n)}};function Zu(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,Or._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Or._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Pc.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,Or._)`${s} <= ${t.length}`);r.if((0,Or.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:o,dataProp:d,dataPropType:Pc.Type.Num},l),a.allErrors||r.if((0,Or.not)(l),()=>r.break())})}}fi.validateAdditionalItems=Zu;fi.default=gk});var Oc=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateTuple=void 0;var Qu=x(),To=q(),yk=ct(),hk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return ef(e,"additionalItems",t);r.items=!0,!(0,To.alwaysValidSchema)(r,t)&&e.ok((0,yk.validateArray)(e))}};function ef(e,t,r=e.schema){let{gen:n,parentSchema:i,data:o,keyword:a,it:s}=e;d(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=To.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Qu._)`${o}.length`);r.forEach((p,f)=>{(0,To.alwaysValidSchema)(s,p)||(n.if((0,Qu._)`${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 y=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,To.checkStrictMode)(s,y,f.strictTuples)}}}mi.validateTuple=ef;mi.default=hk});var tf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var wk=Oc(),Ik={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,wk.validateTuple)(e,"items")};Sc.default=Ik});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var rf=x(),vk=q(),bk=ct(),kk=Nc(),_k={message:({params:{len:e}})=>(0,rf.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,rf._)`{limit: ${e}}`},Ak={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:_k,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,vk.alwaysValidSchema)(n,t)&&(i?(0,kk.validateAdditionalItems)(e,i):e.ok((0,bk.validateArray)(e)))}};Dc.default=Ak});var of=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var dt=x(),Lo=q(),Rk={message:({params:{min:e,max:t}})=>t===void 0?(0,dt.str)`must contain at least ${e} valid item(s)`:(0,dt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,dt._)`{minContains: ${e}}`:(0,dt._)`{minContains: ${e}, maxContains: ${t}}`},Ek={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Rk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e,a,s,{minContains:c,maxContains:l}=n;o.opts.next?(a=c===void 0?1:c,s=l):a=1;let d=t.const("len",(0,dt._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Lo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Lo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Lo.alwaysValidSchema)(o,r)){let g=(0,dt._)`${d} >= ${a}`;s!==void 0&&(g=(0,dt._)`${g} && ${d} <= ${s}`),e.pass(g);return}o.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,dt._)`${i}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),y=t.let("count",0);u(g,()=>t.if(g,()=>m(y)))}function u(g,y){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Lo.Type.Num,compositeRule:!0},g),y()})}function m(g){t.code((0,dt._)`${g}++`),s===void 0?t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,dt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};jc.default=Ek});var xo=E(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.validateSchemaDeps=jt.validatePropertyDeps=jt.error=void 0;var Cc=x(),Pk=q(),gi=ct();jt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Cc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Cc._)`{property: ${e},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${t},
|
|
8
|
-
deps: ${r}}`};var uk={keyword:"dependencies",type:"object",schemaType:"object",error:jt.error,code(e){let[t,r]=fk(e);Yu(e,t),Hu(e,r)}};function fk({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function Yu(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let o in t){let s=t[o];if(s.length===0)continue;let c=(0,di.propertyInData)(r,n,o,i.opts.ownProperties);e.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let l of s)(0,di.checkReportMissingProp)(e,l)}):(r.if((0,Ec._)`${c} && (${(0,di.checkMissingProp)(e,s,a)})`),(0,di.reportMissingProp)(e,a),r.else())}}jt.validatePropertyDeps=Yu;function Hu(e,t=e.schema){let{gen:r,data:n,keyword:i,it:a}=e,o=r.name("valid");for(let s in t)(0,dk.alwaysValidSchema)(a,t[s])||(r.if((0,di.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},o);e.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),e.ok(o))}jt.validateSchemaDeps=Hu;jt.default=uk});var Zu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Xu=x(),mk=q(),gk={message:"property name must be valid",params:({params:e})=>(0,Xu._)`{propertyName: ${e.propertyName}}`},yk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:gk,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,mk.alwaysValidSchema)(i,r))return;let a=t.name("valid");t.forIn("key",n,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},a),t.if((0,Xu.not)(a),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(a)}};Pc.default=yk});var Oc=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var ja=ct(),bt=x(),hk=st(),Ca=q(),wk={message:"must NOT have additional properties",params:({params:e})=>(0,bt._)`{additionalProperty: ${e.additionalProperty}}`},Ik={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:wk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:a,it:o}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,Ca.alwaysValidSchema)(o,r))return;let l=(0,ja.allSchemaProperties)(n.properties),p=(0,ja.allSchemaProperties)(n.patternProperties);d(),e.ok((0,bt._)`${a} === ${hk.default.errors}`);function d(){t.forIn("key",i,y=>{!l.length&&!p.length?m(y):t.if(f(y),()=>m(y))})}function f(y){let w;if(l.length>8){let A=(0,Ca.schemaRefOrVal)(o,n.properties,"properties");w=(0,ja.isOwnProperty)(t,A,y)}else l.length?w=(0,bt.or)(...l.map(A=>(0,bt._)`${y} === ${A}`)):w=bt.nil;return p.length&&(w=(0,bt.or)(w,...p.map(A=>(0,bt._)`${(0,ja.usePattern)(e,A)}.test(${y})`))),(0,bt.not)(w)}function u(y){t.code((0,bt._)`delete ${i}[${y}]`)}function m(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(y);return}if(r===!1){e.setParams({additionalProperty:y}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Ca.alwaysValidSchema)(o,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,bt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,bt.not)(w),()=>t.break()))}}function g(y,w,A){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Ca.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Nc.default=Ik});var tf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var vk=Hn(),Qu=ct(),Sc=q(),ef=Oc(),bk={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&ef.default.code(new vk.KeywordCxt(a,ef.default,"additionalProperties"));let o=(0,Qu.allSchemaProperties)(r);for(let d of o)a.definedProperties.add(d);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=Sc.mergeEvaluated.props(t,(0,Sc.toHash)(o),a.props));let s=o.filter(d=>!(0,Sc.alwaysValidSchema)(a,r[d]));if(s.length===0)return;let c=t.name("valid");for(let d of s)l(d)?p(d):(t.if((0,Qu.propertyInData)(t,i,d,a.opts.ownProperties)),p(d),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function l(d){return a.opts.useDefaults&&!a.compositeRule&&r[d].default!==void 0}function p(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Dc.default=bk});var of=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var rf=ct(),$a=x(),nf=q(),af=q(),kk={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:a}=e,{opts:o}=a,s=(0,rf.allSchemaProperties)(r),c=s.filter(g=>(0,nf.alwaysValidSchema)(a,r[g]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let l=o.strictSchema&&!o.allowMatchingProperties&&i.properties,p=t.name("valid");a.props!==!0&&!(a.props instanceof $a.Name)&&(a.props=(0,af.evaluatedPropsToName)(t,a.props));let{props:d}=a;f();function f(){for(let g of s)l&&u(g),a.allErrors?m(g):(t.var(p,!0),m(g),t.if(p))}function u(g){for(let y in l)new RegExp(g).test(y)&&(0,nf.checkStrictMode)(a,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,y=>{t.if((0,$a._)`${(0,rf.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:af.Type.Str},p),a.opts.unevaluated&&d!==!0?t.assign((0,$a._)`${d}[${y}]`,!0):!w&&!a.allErrors&&t.if((0,$a.not)(p),()=>t.break())})})}}};jc.default=kk});var sf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var _k=q(),Ak={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,_k.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Cc.default=Ak});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var Rk=ct(),Ek={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Rk.validateUnion,error:{message:"must match a schema in anyOf"}};$c.default=Ek});var lf=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var La=x(),Pk=q(),Nk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,La._)`{passingSchemas: ${e.passing}}`},Ok={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Nk,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let a=r,o=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(o,()=>e.reset(),()=>e.error(!0));function l(){a.forEach((p,d)=>{let f;(0,Pk.alwaysValidSchema)(i,p)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,La._)`${c} && ${o}`).assign(o,!1).assign(s,(0,La._)`[${s}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(s,d),f&&e.mergeEvaluated(f,La.Name)})})}}};Lc.default=Ok});var pf=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Sk=q(),Dk={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=t.name("valid");r.forEach((a,o)=>{if((0,Sk.alwaysValidSchema)(n,a))return;let s=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(s)})}};Tc.default=Dk});var ff=E(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var Ta=x(),uf=q(),jk={message:({params:e})=>(0,Ta.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Ta._)`{failingKeyword: ${e.ifClause}}`},Ck={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:jk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,uf.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=df(n,"then"),a=df(n,"else");if(!i&&!a)return;let o=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&a){let p=t.let("ifClause");e.setParams({ifClause:p}),t.if(s,l("then",p),l("else",p))}else i?t.if(s,l("then")):t.if((0,Ta.not)(s),l("else"));e.pass(o,()=>e.error(!0));function c(){let p=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(p)}function l(p,d){return()=>{let f=e.subschema({keyword:p},s);t.assign(o,s),e.mergeValidEvaluated(f,o),d?t.assign(d,(0,Ta._)`${p}`):e.setParams({ifClause:p})}}}};function df(e,t){let r=e.schema[t];return r!==void 0&&!(0,uf.alwaysValidSchema)(e,r)}xc.default=Ck});var mf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var $k=q(),Lk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,$k.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Vc.default=Lk});var gf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var Tk=bc(),xk=Gu(),Vk=kc(),Mk=Wu(),Fk=Ku(),Uk=Da(),qk=Zu(),Bk=Oc(),zk=tf(),Gk=of(),Jk=sf(),Wk=cf(),Kk=lf(),Yk=pf(),Hk=ff(),Xk=mf();function Zk(e=!1){let t=[Jk.default,Wk.default,Kk.default,Yk.default,Hk.default,Xk.default,qk.default,Bk.default,Uk.default,zk.default,Gk.default];return e?t.push(xk.default,Mk.default):t.push(Tk.default,Vk.default),t.push(Fk.default),t}Mc.default=Zk});var Uc=E(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.dynamicAnchor=void 0;var Fc=x(),Qk=st(),yf=Zn(),e_=Ra(),t_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>hf(e,e.schema)};function hf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Fc._)`${Qk.default.dynamicAnchors}${(0,Fc.getProperty)(t)}`,a=n.errSchemaPath==="#"?n.validateName:r_(e);r.if((0,Fc._)`!${i}`,()=>r.assign(i,a))}ui.dynamicAnchor=hf;function r_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:a,localRefs:o,meta:s}=t.root,{schemaId:c}=n.opts,l=new yf.SchemaEnv({schema:r,schemaId:c,root:i,baseId:a,localRefs:o,meta:s});return yf.compileSchema.call(n,l),(0,e_.getValidate)(e,l)}ui.default=t_});var qc=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.dynamicRef=void 0;var wf=x(),n_=st(),If=Ra(),i_={keyword:"$dynamicRef",schemaType:"string",code:e=>vf(e,e.schema)};function vf(e,t){let{gen:r,keyword:n,it:i}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let a=t.slice(1);if(i.allErrors)o();else{let c=r.let("valid",!1);o(c),e.ok(c)}function o(c){if(i.schemaEnv.root.dynamicAnchors[a]){let l=r.let("_v",(0,wf._)`${n_.default.dynamicAnchors}${(0,wf.getProperty)(a)}`);r.if(l,s(l,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,If.callRef)(e,c),r.let(l,!0)}):()=>(0,If.callRef)(e,c)}}fi.dynamicRef=vf;fi.default=i_});var bf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var a_=Uc(),o_=q(),s_={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,a_.dynamicAnchor)(e,""):(0,o_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Bc.default=s_});var kf=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var c_=qc(),l_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,c_.dynamicRef)(e,e.schema)};zc.default=l_});var _f=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var p_=Uc(),d_=qc(),u_=bf(),f_=kf(),m_=[p_.default,d_.default,u_.default,f_.default];Gc.default=m_});var Rf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Af=Da(),g_={keyword:"dependentRequired",type:"object",schemaType:"object",error:Af.error,code:e=>(0,Af.validatePropertyDeps)(e)};Jc.default=g_});var Ef=E(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var y_=Da(),h_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,y_.validateSchemaDeps)(e)};Wc.default=h_});var Pf=E(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});var w_=q(),I_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,w_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};Kc.default=I_});var Nf=E(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});var v_=Rf(),b_=Ef(),k_=Pf(),__=[v_.default,b_.default,k_.default];Yc.default=__});var Sf=E(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var ir=x(),Of=q(),A_=st(),R_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,ir._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},E_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:R_,code(e){let{gen:t,schema:r,data:n,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:o,props:s}=a;s instanceof ir.Name?t.if((0,ir._)`${s} !== true`,()=>t.forIn("key",n,d=>t.if(l(s,d),()=>c(d)))):s!==!0&&t.forIn("key",n,d=>s===void 0?c(d):t.if(p(s,d),()=>c(d))),a.props=!0,e.ok((0,ir._)`${i} === ${A_.default.errors}`);function c(d){if(r===!1){e.setParams({unevaluatedProperty:d}),e.error(),o||t.break();return}if(!(0,Of.alwaysValidSchema)(a,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:d,dataPropType:Of.Type.Str},f),o||t.if((0,ir.not)(f),()=>t.break())}}function l(d,f){return(0,ir._)`!${d} || !${d}[${f}]`}function p(d,f){let u=[];for(let m in d)d[m]===!0&&u.push((0,ir._)`${f} !== ${m}`);return(0,ir.and)(...u)}}};Hc.default=E_});var jf=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var Or=x(),Df=q(),P_={message:({params:{len:e}})=>(0,Or.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Or._)`{limit: ${e}}`},N_={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:P_,code(e){let{gen:t,schema:r,data:n,it:i}=e,a=i.items||0;if(a===!0)return;let o=t.const("len",(0,Or._)`${n}.length`);if(r===!1)e.setParams({len:a}),e.fail((0,Or._)`${o} > ${a}`);else if(typeof r=="object"&&!(0,Df.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Or._)`${o} <= ${a}`);t.if((0,Or.not)(c),()=>s(c,a)),e.ok(c)}i.items=!0;function s(c,l){t.forRange("i",l,o,p=>{e.subschema({keyword:"unevaluatedItems",dataProp:p,dataPropType:Df.Type.Num},c),i.allErrors||t.if((0,Or.not)(c),()=>t.break())})}}};Xc.default=N_});var Cf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var O_=Sf(),S_=jf(),D_=[O_.default,S_.default];Zc.default=D_});var $f=E(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});var be=x(),j_={message:({schemaCode:e})=>(0,be.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,be._)`{format: ${e}}`},C_={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:j_,code(e,t){let{gen:r,data:n,$data:i,schema:a,schemaCode:o,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:p,self:d}=s;if(!c.validateFormats)return;i?f():u();function f(){let m=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),g=r.const("fDef",(0,be._)`${m}[${o}]`),y=r.let("fType"),w=r.let("format");r.if((0,be._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,be._)`${g}.type || "string"`).assign(w,(0,be._)`${g}.validate`),()=>r.assign(y,(0,be._)`"string"`).assign(w,g)),e.fail$data((0,be.or)(A(),b()));function A(){return c.strictSchema===!1?be.nil:(0,be._)`${o} && !${w}`}function b(){let R=p.$async?(0,be._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,be._)`${w}(${n})`,I=(0,be._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,be._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let m=d.formats[a];if(!m){A();return}if(m===!0)return;let[g,y,w]=b(m);g===t&&e.pass(R());function A(){if(c.strictSchema===!1){d.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${a}" ignored in schema at path "${l}"`}}function b(I){let _=I instanceof RegExp?(0,be.regexpCode)(I):c.code.formats?(0,be._)`${c.code.formats}${(0,be.getProperty)(a)}`:void 0,S=r.scopeValue("formats",{key:a,ref:I,code:_});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,be._)`${S}.validate`]:["string",I,S]}function R(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!p.$async)throw new Error("async format in sync schema");return(0,be._)`await ${w}(${n})`}return typeof y=="function"?(0,be._)`${w}(${n})`:(0,be._)`${w}.test(${n})`}}}};Qc.default=C_});var Lf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var $_=$f(),L_=[$_.default];el.default=L_});var Tf=E(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.contentVocabulary=mn.metadataVocabulary=void 0;mn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];mn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Vf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var T_=Pu(),x_=Uu(),V_=gf(),M_=_f(),F_=Nf(),U_=Cf(),q_=Lf(),xf=Tf(),B_=[M_.default,T_.default,x_.default,(0,V_.default)(!0),q_.default,xf.metadataVocabulary,xf.contentVocabulary,F_.default,U_.default];tl.default=B_});var Ff=E(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.DiscrError=void 0;var Mf;(function(e){e.Tag="tag",e.Mapping="mapping"})(Mf||(xa.DiscrError=Mf={}))});var qf=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var gn=x(),rl=Ff(),Uf=Zn(),z_=Xn(),G_=q(),J_={message:({params:{discrError:e,tagName:t}})=>e===rl.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,gn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},W_={keyword:"discriminator",type:"object",schemaType:"object",error:J_,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:a}=e,{oneOf:o}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,gn._)`${r}${(0,gn.getProperty)(s)}`);t.if((0,gn._)`typeof ${l} == "string"`,()=>p(),()=>e.error(!1,{discrError:rl.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function p(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,gn._)`${l} === ${m}`),t.assign(c,d(u[m]));t.else(),e.error(!1,{discrError:rl.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function d(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,gn.Name),m}function f(){var u;let m={},g=w(i),y=!0;for(let R=0;R<o.length;R++){let I=o[R];if(I?.$ref&&!(0,G_.schemaHasRulesButRef)(I,a.self.RULES)){let S=I.$ref;if(I=Uf.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,S),I instanceof Uf.SchemaEnv&&(I=I.schema),I===void 0)throw new z_.default(a.opts.uriResolver,a.baseId,S)}let _=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof _!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||w(I)),A(_,R)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:R}){return Array.isArray(R)&&R.includes(s)}function A(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let _ of R.enum)b(_,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(R,I){if(typeof R!="string"||R in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[R]=I}}}};nl.default=W_});var Bf=E((fS,K_)=>{K_.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 zf=E((mS,Y_)=>{Y_.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 Gf=E((gS,H_)=>{H_.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 Jf=E((yS,X_)=>{X_.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 Wf=E((hS,Z_)=>{Z_.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 Kf=E((wS,Q_)=>{Q_.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var Yf=E((IS,eA)=>{eA.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 Hf=E((vS,tA)=>{tA.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 Xf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var rA=Bf(),nA=zf(),iA=Gf(),aA=Jf(),oA=Wf(),sA=Kf(),cA=Yf(),lA=Hf(),pA=["/properties"];function dA(e){return[rA,nA,iA,aA,oA,t(this,sA),cA,t(this,lA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,pA):n}}il.default=dA});var Sr=E((me,ol)=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var uA=ku(),fA=Vf(),mA=qf(),gA=Xf(),al="https://json-schema.org/draft/2020-12/schema",yn=class extends uA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),fA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(mA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(gA.default.call(this,t),this.refs["http://json-schema.org/schema"]=al)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(al)?al:void 0)}};me.Ajv2020=yn;ol.exports=me=yn;ol.exports.Ajv2020=yn;Object.defineProperty(me,"__esModule",{value:!0});me.default=yn;var yA=Hn();Object.defineProperty(me,"KeywordCxt",{enumerable:!0,get:function(){return yA.KeywordCxt}});var hn=x();Object.defineProperty(me,"_",{enumerable:!0,get:function(){return hn._}});Object.defineProperty(me,"str",{enumerable:!0,get:function(){return hn.str}});Object.defineProperty(me,"stringify",{enumerable:!0,get:function(){return hn.stringify}});Object.defineProperty(me,"nil",{enumerable:!0,get:function(){return hn.nil}});Object.defineProperty(me,"Name",{enumerable:!0,get:function(){return hn.Name}});Object.defineProperty(me,"CodeGen",{enumerable:!0,get:function(){return hn.CodeGen}});var hA=ga();Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return hA.default}});var wA=Xn();Object.defineProperty(me,"MissingRefError",{enumerable:!0,get:function(){return wA.default}})});import _e from"node:process";import it from"node:path";import{spawnSync as MN}from"node:child_process";import{readFile as FN}from"node:fs/promises";var te="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Ot="^sha256:[a-f0-9]{64}$";import{constants as ro}from"node:fs";import{lstat as KA,mkdir as En,open as mm,readFile as bi,realpath as xr,rename as YA,unlink as _l}from"node:fs/promises";import{randomUUID as Al}from"node:crypto";import Pe from"node:path";var Zf=tn(Sr(),1);var je={type:"string",pattern:Ot},IA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},sl={type:"string",format:"date-time"},cl={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"]},Qf={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}}},ll={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,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:te}}}},compatibility:Qf,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:je,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:te},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:te}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:cl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},em={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:je,deliveryReceiptId:je,usage:{enum:["runtime","development"]}}},{$id:_S,...tm}=ll,vA={...tm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...ll.required,"availability","packageSources"],properties:{...ll.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:em}}},bA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[tm,(()=>{let{$id:e,...t}=vA;return t})()]},Va={$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:cl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:cl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:je,stderrDigest:je,startedAt:sl,completedAt:sl,projectStateDigest:je,runtime:Qf}},kA={...Va,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Va.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Va.properties,evidenceId:je,capabilityId:{type:"string",pattern:te},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:je}},_A={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:je,projectStateDigest:je,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:je,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:te}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:te}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:je},committedAt:sl,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:IA,revision:je}}},sources:{type:"array",minItems:1,maxItems:128,items:em},packageJsonDigest:je,lockfileDigest:je}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},mi=new Zf.Ajv2020({allErrors:!0,strict:!0});mi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Fa={capabilityBundleRelease:mi.compile(bA),verificationResult:mi.compile(Va),adoptionEvidence:mi.compile(kA),projectAdoptionLock:mi.compile(_A)},Ma=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Ua(e,t,r){if(!t(r))throw new Ma(e,t.errors??[]);return r}var rm=e=>{let t=Ua("capabilityBundleRelease",Fa.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Ma("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let i="",a=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(i)<=0||a.has(c))&&r(),i=c,a.add(c)}let o=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(o.length!==n.length||o.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},nm=e=>Ua("verificationResult",Fa.verificationResult,e),gi=e=>Ua("adoptionEvidence",Fa.adoptionEvidence,e),Ge=e=>Ua("projectAdoptionLock",Fa.projectAdoptionLock,e);import{lstat as jA,readFile as fl,realpath as ml}from"node:fs/promises";import In from"node:path";import{createHash as AA}from"node:crypto";function h(e){return`sha256:${AA("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 Ct=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function im(e){if(!new RegExp(te).test(e))throw new Ct("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function qa(e,t){if(e.includes("\r"))throw new Ct("Managed regions require LF newlines");let{begin:r,end:n}=im(t),i=e.split(r).length-1,a=e.split(n).length-1;if(i!==1||a!==1)throw new Ct("Managed region markers are unavailable or ambiguous");let o=e.indexOf(r)+r.length,s=e.indexOf(n,o),c=e.slice(o,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ct("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function
|
|
10
|
-
${
|
|
11
|
-
${r}`;if(n===0){let
|
|
8
|
+
deps: ${r}}`};var Nk={keyword:"dependencies",type:"object",schemaType:"object",error:jt.error,code(e){let[t,r]=Ok(e);af(e,t),sf(e,r)}};function Ok({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function af(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,gi.propertyInData)(r,n,a,i.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let l of s)(0,gi.checkReportMissingProp)(e,l)}):(r.if((0,Cc._)`${c} && (${(0,gi.checkMissingProp)(e,s,o)})`),(0,gi.reportMissingProp)(e,o),r.else())}}jt.validatePropertyDeps=af;function sf(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,Pk.alwaysValidSchema)(o,t[s])||(r.if((0,gi.propertyInData)(r,n,s,o.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}jt.validateSchemaDeps=sf;jt.default=Nk});var lf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var cf=x(),Sk=q(),Dk={message:"property name must be valid",params:({params:e})=>(0,cf._)`{propertyName: ${e.propertyName}}`},jk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Dk,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,Sk.alwaysValidSchema)(i,r))return;let o=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},o),t.if((0,cf.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};$c.default=jk});var Lc=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Vo=ct(),bt=x(),Ck=st(),Mo=q(),$k={message:"must NOT have additional properties",params:({params:e})=>(0,bt._)`{additionalProperty: ${e.additionalProperty}}`},Tk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:$k,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Mo.alwaysValidSchema)(a,r))return;let l=(0,Vo.allSchemaProperties)(n.properties),d=(0,Vo.allSchemaProperties)(n.patternProperties);p(),e.ok((0,bt._)`${o} === ${Ck.default.errors}`);function p(){t.forIn("key",i,y=>{!l.length&&!d.length?m(y):t.if(f(y),()=>m(y))})}function f(y){let w;if(l.length>8){let A=(0,Mo.schemaRefOrVal)(a,n.properties,"properties");w=(0,Vo.isOwnProperty)(t,A,y)}else l.length?w=(0,bt.or)(...l.map(A=>(0,bt._)`${y} === ${A}`)):w=bt.nil;return d.length&&(w=(0,bt.or)(w,...d.map(A=>(0,bt._)`${(0,Vo.usePattern)(e,A)}.test(${y})`))),(0,bt.not)(w)}function u(y){t.code((0,bt._)`delete ${i}[${y}]`)}function m(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(y);return}if(r===!1){e.setParams({additionalProperty:y}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Mo.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,bt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,bt.not)(w),()=>t.break()))}}function g(y,w,A){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Mo.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Tc.default=Tk});var uf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var Lk=ei(),df=ct(),xc=q(),pf=Lc(),xk={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&pf.default.code(new Lk.KeywordCxt(o,pf.default,"additionalProperties"));let a=(0,df.allSchemaProperties)(r);for(let p of a)o.definedProperties.add(p);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=xc.mergeEvaluated.props(t,(0,xc.toHash)(a),o.props));let s=a.filter(p=>!(0,xc.alwaysValidSchema)(o,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,df.propertyInData)(t,i,p,o.opts.ownProperties)),d(p),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return o.opts.useDefaults&&!o.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};Vc.default=xk});var yf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var ff=ct(),Fo=x(),mf=q(),gf=q(),Vk={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:o}=e,{opts:a}=o,s=(0,ff.allSchemaProperties)(r),c=s.filter(g=>(0,mf.alwaysValidSchema)(o,r[g]));if(s.length===0||c.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&i.properties,d=t.name("valid");o.props!==!0&&!(o.props instanceof Fo.Name)&&(o.props=(0,gf.evaluatedPropsToName)(t,o.props));let{props:p}=o;f();function f(){for(let g of s)l&&u(g),o.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let y in l)new RegExp(g).test(y)&&(0,mf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,y=>{t.if((0,Fo._)`${(0,ff.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:gf.Type.Str},d),o.opts.unevaluated&&p!==!0?t.assign((0,Fo._)`${p}[${y}]`,!0):!w&&!o.allErrors&&t.if((0,Fo.not)(d),()=>t.break())})})}}};Mc.default=Vk});var hf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var Mk=q(),Fk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Mk.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Fc.default=Fk});var wf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var Uk=ct(),qk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Uk.validateUnion,error:{message:"must match a schema in anyOf"}};Uc.default=qk});var If=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var Uo=x(),Bk=q(),zk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Uo._)`{passingSchemas: ${e.passing}}`},Gk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:zk,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let o=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(){o.forEach((d,p)=>{let f;(0,Bk.alwaysValidSchema)(i,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Uo._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Uo._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Uo.Name)})})}}};qc.default=Gk});var vf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var Jk=q(),Wk={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=t.name("valid");r.forEach((o,a)=>{if((0,Jk.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};Bc.default=Wk});var _f=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var qo=x(),kf=q(),Kk={message:({params:e})=>(0,qo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,qo._)`{failingKeyword: ${e.ifClause}}`},Yk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Kk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,kf.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=bf(n,"then"),o=bf(n,"else");if(!i&&!o)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&o){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else i?t.if(s,l("then")):t.if((0,qo.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,qo._)`${d}`):e.setParams({ifClause:d})}}}};function bf(e,t){let r=e.schema[t];return r!==void 0&&!(0,kf.alwaysValidSchema)(e,r)}zc.default=Yk});var Af=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var Hk=q(),Xk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Hk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Gc.default=Xk});var Rf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Zk=Nc(),Qk=tf(),e_=Oc(),t_=nf(),r_=of(),n_=xo(),i_=lf(),o_=Lc(),a_=uf(),s_=yf(),c_=hf(),l_=wf(),d_=If(),p_=vf(),u_=_f(),f_=Af();function m_(e=!1){let t=[c_.default,l_.default,d_.default,p_.default,u_.default,f_.default,i_.default,o_.default,n_.default,a_.default,s_.default];return e?t.push(Qk.default,t_.default):t.push(Zk.default,e_.default),t.push(r_.default),t}Jc.default=m_});var Kc=E(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.dynamicAnchor=void 0;var Wc=x(),g_=st(),Ef=ri(),y_=Do(),h_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Pf(e,e.schema)};function Pf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Wc._)`${g_.default.dynamicAnchors}${(0,Wc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:w_(e);r.if((0,Wc._)`!${i}`,()=>r.assign(i,o))}yi.dynamicAnchor=Pf;function w_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:o,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,l=new Ef.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return Ef.compileSchema.call(n,l),(0,y_.getValidate)(e,l)}yi.default=h_});var Yc=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.dynamicRef=void 0;var Nf=x(),I_=st(),Of=Do(),v_={keyword:"$dynamicRef",schemaType:"string",code:e=>Sf(e,e.schema)};function Sf(e,t){let{gen:r,keyword:n,it:i}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let o=t.slice(1);if(i.allErrors)a();else{let c=r.let("valid",!1);a(c),e.ok(c)}function a(c){if(i.schemaEnv.root.dynamicAnchors[o]){let l=r.let("_v",(0,Nf._)`${I_.default.dynamicAnchors}${(0,Nf.getProperty)(o)}`);r.if(l,s(l,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,Of.callRef)(e,c),r.let(l,!0)}):()=>(0,Of.callRef)(e,c)}}hi.dynamicRef=Sf;hi.default=v_});var Df=E(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var b_=Kc(),k_=q(),__={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,b_.dynamicAnchor)(e,""):(0,k_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Hc.default=__});var jf=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var A_=Yc(),R_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,A_.dynamicRef)(e,e.schema)};Xc.default=R_});var Cf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var E_=Kc(),P_=Yc(),N_=Df(),O_=jf(),S_=[E_.default,P_.default,N_.default,O_.default];Zc.default=S_});var Tf=E(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});var $f=xo(),D_={keyword:"dependentRequired",type:"object",schemaType:"object",error:$f.error,code:e=>(0,$f.validatePropertyDeps)(e)};Qc.default=D_});var Lf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var j_=xo(),C_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,j_.validateSchemaDeps)(e)};el.default=C_});var xf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var $_=q(),T_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,$_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};tl.default=T_});var Vf=E(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=Tf(),x_=Lf(),V_=xf(),M_=[L_.default,x_.default,V_.default];rl.default=M_});var Ff=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var ir=x(),Mf=q(),F_=st(),U_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,ir._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},q_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:U_,code(e){let{gen:t,schema:r,data:n,errsCount:i,it:o}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:a,props:s}=o;s instanceof ir.Name?t.if((0,ir._)`${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))),o.props=!0,e.ok((0,ir._)`${i} === ${F_.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,Mf.alwaysValidSchema)(o,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Mf.Type.Str},f),a||t.if((0,ir.not)(f),()=>t.break())}}function l(p,f){return(0,ir._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,ir._)`${f} !== ${m}`);return(0,ir.and)(...u)}}};nl.default=q_});var qf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var Sr=x(),Uf=q(),B_={message:({params:{len:e}})=>(0,Sr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Sr._)`{limit: ${e}}`},z_={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:B_,code(e){let{gen:t,schema:r,data:n,it:i}=e,o=i.items||0;if(o===!0)return;let a=t.const("len",(0,Sr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Sr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Uf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Sr._)`${a} <= ${o}`);t.if((0,Sr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,l){t.forRange("i",l,a,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:Uf.Type.Num},c),i.allErrors||t.if((0,Sr.not)(c),()=>t.break())})}}};il.default=z_});var Bf=E(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var G_=Ff(),J_=qf(),W_=[G_.default,J_.default];ol.default=W_});var zf=E(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var ke=x(),K_={message:({schemaCode:e})=>(0,ke.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ke._)`{format: ${e}}`},Y_={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:K_,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;i?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,ke._)`${m}[${a}]`),y=r.let("fType"),w=r.let("format");r.if((0,ke._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,ke._)`${g}.type || "string"`).assign(w,(0,ke._)`${g}.validate`),()=>r.assign(y,(0,ke._)`"string"`).assign(w,g)),e.fail$data((0,ke.or)(A(),b()));function A(){return c.strictSchema===!1?ke.nil:(0,ke._)`${a} && !${w}`}function b(){let R=d.$async?(0,ke._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ke._)`${w}(${n})`,I=(0,ke._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,ke._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let m=p.formats[o];if(!m){A();return}if(m===!0)return;let[g,y,w]=b(m);g===t&&e.pass(R());function A(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${l}"`}}function b(I){let _=I instanceof RegExp?(0,ke.regexpCode)(I):c.code.formats?(0,ke._)`${c.code.formats}${(0,ke.getProperty)(o)}`:void 0,S=r.scopeValue("formats",{key:o,ref:I,code:_});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,ke._)`${S}.validate`]:["string",I,S]}function R(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,ke._)`await ${w}(${n})`}return typeof y=="function"?(0,ke._)`${w}(${n})`:(0,ke._)`${w}.test(${n})`}}}};al.default=Y_});var Gf=E(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var H_=zf(),X_=[H_.default];sl.default=X_});var Jf=E(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.contentVocabulary=yn.metadataVocabulary=void 0;yn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Kf=E(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var Z_=xu(),Q_=Xu(),eA=Rf(),tA=Cf(),rA=Vf(),nA=Bf(),iA=Gf(),Wf=Jf(),oA=[tA.default,Z_.default,Q_.default,(0,eA.default)(!0),iA.default,Wf.metadataVocabulary,Wf.contentVocabulary,rA.default,nA.default];cl.default=oA});var Hf=E(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.DiscrError=void 0;var Yf;(function(e){e.Tag="tag",e.Mapping="mapping"})(Yf||(Bo.DiscrError=Yf={}))});var Zf=E(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var hn=x(),ll=Hf(),Xf=ri(),aA=ti(),sA=q(),cA={message:({params:{discrError:e,tagName:t}})=>e===ll.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,hn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},lA={keyword:"discriminator",type:"object",schemaType:"object",error:cA,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:o}=e,{oneOf:a}=i;if(!o.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,hn._)`${r}${(0,hn.getProperty)(s)}`);t.if((0,hn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:ll.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,hn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:ll.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,hn.Name),m}function f(){var u;let m={},g=w(i),y=!0;for(let R=0;R<a.length;R++){let I=a[R];if(I?.$ref&&!(0,sA.schemaHasRulesButRef)(I,o.self.RULES)){let S=I.$ref;if(I=Xf.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,S),I instanceof Xf.SchemaEnv&&(I=I.schema),I===void 0)throw new aA.default(o.opts.uriResolver,o.baseId,S)}let _=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof _!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||w(I)),A(_,R)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:R}){return Array.isArray(R)&&R.includes(s)}function A(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let _ of R.enum)b(_,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(R,I){if(typeof R!="string"||R in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[R]=I}}}};dl.default=lA});var Qf=E((VS,dA)=>{dA.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 em=E((MS,pA)=>{pA.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 tm=E((FS,uA)=>{uA.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 rm=E((US,fA)=>{fA.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 nm=E((qS,mA)=>{mA.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 im=E((BS,gA)=>{gA.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 om=E((zS,yA)=>{yA.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 am=E((GS,hA)=>{hA.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 sm=E(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var wA=Qf(),IA=em(),vA=tm(),bA=rm(),kA=nm(),_A=im(),AA=om(),RA=am(),EA=["/properties"];function PA(e){return[wA,IA,vA,bA,kA,t(this,_A),AA,t(this,RA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,EA):n}}pl.default=PA});var Dr=E((me,fl)=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var NA=ju(),OA=Kf(),SA=Zf(),DA=sm(),ul="https://json-schema.org/draft/2020-12/schema",wn=class extends NA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),OA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(SA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(DA.default.call(this,t),this.refs["http://json-schema.org/schema"]=ul)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ul)?ul:void 0)}};me.Ajv2020=wn;fl.exports=me=wn;fl.exports.Ajv2020=wn;Object.defineProperty(me,"__esModule",{value:!0});me.default=wn;var jA=ei();Object.defineProperty(me,"KeywordCxt",{enumerable:!0,get:function(){return jA.KeywordCxt}});var In=x();Object.defineProperty(me,"_",{enumerable:!0,get:function(){return In._}});Object.defineProperty(me,"str",{enumerable:!0,get:function(){return In.str}});Object.defineProperty(me,"stringify",{enumerable:!0,get:function(){return In.stringify}});Object.defineProperty(me,"nil",{enumerable:!0,get:function(){return In.nil}});Object.defineProperty(me,"Name",{enumerable:!0,get:function(){return In.Name}});Object.defineProperty(me,"CodeGen",{enumerable:!0,get:function(){return In.CodeGen}});var CA=bo();Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return CA.default}});var $A=ti();Object.defineProperty(me,"MissingRefError",{enumerable:!0,get:function(){return $A.default}})});import be from"node:process";import Qe from"node:path";import{spawnSync as dO}from"node:child_process";import{readFile as pO}from"node:fs/promises";var te="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Ot="^sha256:[a-f0-9]{64}$";import{constants as ca}from"node:fs";import{lstat as dR,mkdir as Nn,open as Am,readFile as Ri,realpath as Vr,rename as pR,unlink as Sl}from"node:fs/promises";import{randomUUID as Dl}from"node:crypto";import Ne from"node:path";var cm=nn(Dr(),1);var je={type:"string",pattern:Ot},TA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},ml={type:"string",format:"date-time"},gl={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"]},lm={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}}},yl={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,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:te}}}},compatibility:lm,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:je,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:te},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:te}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:gl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},dm={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:je,deliveryReceiptId:je,usage:{enum:["runtime","development"]}}},{$id:KS,...pm}=yl,LA={...pm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...yl.required,"availability","packageSources"],properties:{...yl.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:dm}}},xA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[pm,(()=>{let{$id:e,...t}=LA;return t})()]},zo={$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:gl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:gl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:je,stderrDigest:je,startedAt:ml,completedAt:ml,projectStateDigest:je,runtime:lm}},VA={...zo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...zo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...zo.properties,evidenceId:je,capabilityId:{type:"string",pattern:te},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:je}},MA={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:je,projectStateDigest:je,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:je,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:te}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:te}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:je},committedAt:ml,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:TA,revision:je}}},sources:{type:"array",minItems:1,maxItems:128,items:dm},packageJsonDigest:je,lockfileDigest:je}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},wi=new cm.Ajv2020({allErrors:!0,strict:!0});wi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Jo={capabilityBundleRelease:wi.compile(xA),verificationResult:wi.compile(zo),adoptionEvidence:wi.compile(VA),projectAdoptionLock:wi.compile(MA)},Go=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Wo(e,t,r){if(!t(r))throw new Go(e,t.errors??[]);return r}var um=e=>{let t=Wo("capabilityBundleRelease",Jo.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Go("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let i="",o=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(i)<=0||o.has(c))&&r(),i=c,o.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},fm=e=>Wo("verificationResult",Jo.verificationResult,e),Ii=e=>Wo("adoptionEvidence",Jo.adoptionEvidence,e),Ge=e=>Wo("projectAdoptionLock",Jo.projectAdoptionLock,e);import{lstat as KA,readFile as vl,realpath as bl}from"node:fs/promises";import bn from"node:path";import{createHash as FA}from"node:crypto";function h(e){return`sha256:${FA("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var Ct=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function mm(e){if(!new RegExp(te).test(e))throw new Ct("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ko(e,t){if(e.includes("\r"))throw new Ct("Managed regions require LF newlines");let{begin:r,end:n}=mm(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new Ct("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 Ct("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
+
`}function gm(e){let{begin:t,end:r}=mm(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new Ct("Managed regions require LF newlines");let n=e.source.split(t).length-1,i=e.source.split(r).length-1;if(n>1||i>1||n!==i)throw new Ct("Managed region markers are ambiguous");let o=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(o))throw new Ct("Managed regions cannot contain nested Dyyto markers");let a=`${t}
|
|
10
|
+
${o}
|
|
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 Ct("Managed regions cannot overlap");return`${e.source.slice(0,s)}${o}${e.source.slice(c)}`}import om from"node:path";var ar=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Ba(e){if(e.length===0||om.posix.isAbsolute(e)||om.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new ar("Asset path must be a normalized project-relative POSIX path",e)}function RA(e,t){Ba(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(te).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new ar("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Ee(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new ar("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new ar("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Ba(s.path),t.has(s.path))throw new ar("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 ar("Proposed change paths must be unique",s.path);return r.add(s.path),RA(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),i={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},a=h(k(i)),o={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:i.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:a,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...o,planId:h(k(o))}}function za(e){return h(k(e))}var sm=tn(Sr(),1);var re={type:"string",pattern:Ot},wn={type:"string",pattern:te},Cr={type:"string",minLength:1,maxLength:128},jr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},EA={$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:wn,version:Cr,integrity:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:jr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},PA={$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:wn,version:Cr}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:te},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:wn,version:Cr}}}}},NA={$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:wn,version:Cr,integrity:re,appliedPlanId:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:jr,digest:re}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},OA={$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:wn,capabilityVersion:Cr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},SA={$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:re,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:wn,version:Cr,integrity:re}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:re,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:re,desiredPackageJsonDigest:re,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:re}}]},desiredLockfileDigest:re,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:re}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:re,bindingDigest:re,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:Cr,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:re,deliveryReceiptId:re,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:jr,unitImporterId:jr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:re}},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:jr,preimageDigest:re,desiredDigest:re}}}},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:jr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re,baseDigest:re,regionId:{type:"string",pattern:te},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},DA={$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:re,approvedPlanId:re,projectRootDigest:re,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:jr,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:re,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:re}}]},desiredDigest:re,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:re}},Dr=new sm.Ajv2020({allErrors:!0,strict:!0});Dr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var dl={capabilityRelease:Dr.compile(EA),projectManifest:Dr.compile(PA),projectLock:Dr.compile(NA),evidence:Dr.compile(OA),changePlan:Dr.compile(SA),transactionJournal:Dr.compile(DA)},pl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ul(e,t,r){if(!t(r))throw new pl(e,t.errors??[]);return r}var W=e=>ul("projectManifest",dl.projectManifest,e);var or=e=>ul("changePlan",dl.changePlan,e),cm=e=>ul("transactionJournal",dl.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Ga(e){if(e.currentLock!==void 0){let a=await Ja({...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 ml(In.resolve(e.projectRoot)),r=[],n=0,i=0;for(let a of e.release.release.assets){let o=await gl(t,a.path);o.exists&&(n+=1),o.digest===a.digest&&(i+=1),r.push({path:a.path,kind:"create",ownership:a.ownership,desiredDigest:a.ownership==="seed-file"&&o.digest?o.digest:a.digest,disposition:o.exists?a.ownership==="seed-file"||o.digest===a.digest?"noop":"conflict":"ready",...o.exists&&o.digest!==a.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:i===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function gl(e,t){let r=In.join(e,...t.split("/"));try{let n=await jA(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:h(await fl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function $r(e){let t=await ml(In.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await gl(t,n.path),a=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{a=h(qa(await fl(In.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:h(k(r))}}async function Ja(e){let t=W(e.manifest);if(t.capabilities.filter(p=>p.capabilityId===e.release.release.capabilityId&&p.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let i=(e.currentLock===void 0?void 0:Ge(e.currentLock))?.capabilities.find(p=>p.capabilityId===e.release.release.capabilityId);if(i!==void 0&&(i.version!==e.release.release.version||i.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let a=await ml(In.resolve(e.projectRoot)),o=[],s=[],c=new Map(e.release.contents);for(let p of e.release.release.assets){let d=await gl(a,p.path);if(o.push(d),d.exists&&i===void 0&&p.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",p.path);let f=p.ownership==="seed-file"&&d.digest?d.digest:p.digest;p.ownership==="seed-file"&&d.exists&&c.set(p.path,await fl(In.join(a,...p.path.split("/")))),s.push({path:p.path,kind:"create",ownership:p.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(p=>({path:p.path,ownership:p.ownership,desiredDigest:p.digest})),verifiers:e.release.release.verifiers.map(p=>({id:p.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Ee({action:"adopt",capability:l,changes:s,observedAssets:o,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as $A,lstat as Za,mkdir as vn,open as dm,readFile as Qa,realpath as LA,rename as Ha,rm as yl,unlink as Lr}from"node:fs/promises";import{constants as Ka}from"node:fs";import{homedir as TA}from"node:os";import K from"node:path";import{randomUUID as _n}from"node:crypto";function CA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function dt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await lm(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await lm(e.context,e.operation,e.bytes??0,t,"failed",CA(r)),r}}async function lm(e,t,r,n,i,a){if(e?.sink===void 0)return;let o=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:o.toString(),result:i,...a===void 0?{}:{errorCategory:a}},c=Object.freeze({...s,eventId:h(k(s))});try{await e.sink(c)}catch{}}var um=Symbol("prepared-transaction"),sr=new Map,xA=5*1024*1024,VA=25*1024*1024,pm=8,Xa=class extends Error{};async function Wa(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new Xa("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function yi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function Ft(e){try{return await Za(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function An(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function kt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function ut(e,t){let r=await dm(e,Ka.O_RDONLY);try{await dt({context:An(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function hi(e,t,r=384,n){let i=await dm(e,Ka.O_CREAT|Ka.O_EXCL|Ka.O_WRONLY,r);try{await dt({context:An(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await dt({context:An(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function hl(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${_n()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await
|
|
16
|
-
`),384,r),await ut(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function Ya(e){try{let t=JSON.parse(await Qa(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function qA(e,t,r){return{[um]:!0,projectRoot:e,plan:t,transactionId:r}}async function BA(e,t){FA(e.plan,e.approvedPlanId,e.now);let r=await eo(e.projectRoot),n=UA(e.plan),i=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Rn(r,u.path),await bn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||h(m)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let a=yi(r,e.plan.planId);await vn(a.platformDirectory,{recursive:!0,mode:448}),await bn(r,".dyyto");let o=_n();await vl(a.lock,{schemaVersion:1,transactionId:o,planId:e.plan.planId,startedAt:e.now,nonce:_n()},kt(t?.durabilityTrace,"prepare","lock",`${o}:prepare-lock`));let s=e.limits?.maxFileBytes??xA,c=e.limits?.maxTransactionBytes??VA,l=0,p=[],d=[],f=!1;try{if(await Wa(t,"lock-created"),await Ft(a.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await vn(a.preimages,{recursive:!0,mode:448}),await vn(a.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let y=Rn(r,g.path);await bn(r,g.path);let w=await kn(y);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let A={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=K.join(a.preimages,`${m}.bin`);await hi(b,w.bytes,384,kt(t?.durabilityTrace,"prepare","preimage",`${o}:preimage:${m}`)),d.push(m),await Wa(t,"preimage-written-pending-directory-sync",m),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}p.push({index:m,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(d.length>0){await ut(a.preimages,kt(t?.durabilityTrace,"prepare","directory",`${o}:preimages-directory-batch`));for(let m of d)await Wa(t,"preimage-persisted",m)}let u=wl({schemaVersion:1,transactionId:o,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:h(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:p});return await hl(a.journal,u,kt(t?.durabilityTrace,"prepare","journal",`${o}:journal-prepared`)),sr.set(o,{desiredContents:e.desiredContents,journal:u}),await Wa(t,"journal-prepared"),qA(r,e.plan,o)}catch(u){if(u instanceof Xa)throw sr.delete(o),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await yl(a.transactionDirectory,{recursive:!0,force:!0}),await Lr(a.lock),await ut(a.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function lr(e){return BA(e)}async function zA(e,t,r,n){return cr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},kt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function GA(e,t,r,n,i,a){let o=Rn(e,n.path);await bn(e,n.path);let s=await kn(o);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let d=K.join(t.quarantine,`${n.index}.bin`),f=kt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await dt({context:An(f),operation:"rename",run:()=>Ha(o,d)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(o),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await vn(K.dirname(o),{recursive:!0}),await bn(e,n.path);let l=K.join(K.dirname(o),`.dyyto-${r}-${n.index}.tmp`),p=kt(a?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await hi(l,c,n.before.kind==="present"?n.before.mode&511:420,p),await a?.onCheckpoint?.("temporary-file-synced",n.index),await dt({context:An(p),operation:"rename",bytes:c.byteLength,run:()=>Ha(l,o)}),await a?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(o)]}async function JA(e,t){let r=sr.get(e.transactionId);if(r===void 0||e[um]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=yi(e.projectRoot,e.plan.planId),i=await cr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let a=new Map;for(let o=0;o<i.operations.length;o+=pm){let s=i.operations.slice(o,o+pm),c=await Promise.allSettled(s.map(p=>GA(e.projectRoot,n,e.transactionId,p,r.desiredContents,t))),l=c.find(p=>p.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let p of c)if(p.status==="fulfilled")for(let d of p.value)a.has(d)||a.set(d,kt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[o,s]of a)await ut(o,s);for(let o of i.operations)await t?.onCheckpoint?.("target-renamed",o.index),o.status="applied",await t?.onCheckpoint?.("operation-applied",o.index);i=await cr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let o of i.operations)await t?.onCheckpoint?.("operation-journaled",o.index);return i=await cr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Lr(n.lock),await ut(n.platformDirectory),sr.delete(e.transactionId),Tr(i)}catch(a){throw i=await zA(n,i,a instanceof C?a.operationIndex:void 0,t?.durabilityTrace),sr.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function pr(e){return JA(e)}function Tr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Ut(e){let t=await eo(e.projectRoot),r=yi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))return null;let n=await Ya(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Tr(await Il(r.journal))}async function WA(e,t,r){await vn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${_n()}.tmp`);await hi(n,t,r&511),await Ha(n,e),await $A(e,r&511),await ut(K.dirname(e))}async function fm(e){let t=await eo(e.projectRoot),r=yi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await Ya(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await yl(r.transactionDirectory,{recursive:!0,force:!0}),await vn(r.transactionDirectory,{recursive:!0,mode:448});let a=wl({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:h(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await hl(r.journal,a),await Lr(r.lock),await ut(r.platformDirectory),Tr(a)}let n=await Il(r.journal);if(n.state==="recovered")return Tr(n);if(n.state==="applied"){for(let i of n.operations){let a=await kn(Rn(t,i.path));if(!(i.kind==="remove"?a===void 0:a?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Ft(r.lock)){let i=await Ya(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Lr(r.lock),await ut(r.platformDirectory)}return sr.delete(n.transactionId),Tr(n)}if(n.projectRootDigest!==h(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Ft(r.lock)){let i=await Ya(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await vl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:_n()});n=await cr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let a=Rn(t,i.path);if(await bn(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(a),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Ft(s)){if((await kn(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Lr(s),await ut(K.dirname(s))}}let o=await kn(a);if(i.before.kind==="absent"){if(o!==void 0){if(o.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Lr(a),await ut(K.dirname(a))}}else if(o?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=o?.digest===i.desiredDigest,l=i.kind==="remove"&&o===void 0&&await Ft(s),p=e.approvedConflicts?.find(f=>f.path===i.path&&f.currentDigest===o?.digest);if(!c&&!l&&!p)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let d=await Qa(K.join(r.preimages,`${i.index}.bin`));if(h(d)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await WA(a,d,i.before.mode),l&&await yl(s,{force:!0})}i.status="restored",n=await cr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await cr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Lr(r.lock),await ut(r.platformDirectory),sr.delete(n.transactionId),Tr(n)}async function wi(e){return fm(e)}async function bl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return fm(e)}async function kl(e){let t=await eo(e.projectRoot),r=yi(t,e.planId),n=await Il(r.journal);if(n.state==="recovered")return Tr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let a of n.operations){let o=await kn(Rn(t,a.path)),s=a.kind==="remove"?o===void 0:o?.digest===a.desiredDigest,c=a.before.kind==="absent"?o===void 0:o?.digest===a.before.digest;if(!s&&!c){i=a;break}}if(await vl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:_n()}),n=await cr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return sr.set(n.transactionId,{desiredContents:new Map,journal:n}),wi({projectRoot:t,planId:e.planId,now:e.now})}var Ae=class extends Error{code;constructor(t,r){super(r),this.code=t}},Ii=class extends Error{};function ki(e,t){let r=Pe.join(e,".dyyto"),n=Pe.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Pe.join(r,"evidence"),lockFile:Pe.join(r,"project-lock.json"),transactionLock:Pe.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Pe.join(n,"journal.json")}}async function dr(e){try{return await KA(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function qt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function io(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function ao(e,t){let r=await mm(e,ro.O_RDONLY);try{await dt({context:io(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Rl(e,t,r){let n=await mm(e,ro.O_CREAT|ro.O_EXCL|ro.O_WRONLY,384);try{await dt({context:io(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await dt({context:io(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function vi(e,t,r){let n=Pe.dirname(e),i=Pe.join(n,`.tmp-${Al()}`),a=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await
|
|
18
|
-
`),r),await
|
|
19
|
-
`),r),await
|
|
20
|
-
`)}async function
|
|
21
|
-
`),i=r.capabilities[0],
|
|
22
|
-
`)}catch(i){throw i.code==="EEXIST"?new Ie("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function
|
|
23
|
-
`)}catch(a){if(a.code!=="EEXIST")throw a;let o=or(JSON.parse(await Cl(i,"utf8")));if(_i(o),k(o)!==k(r))throw new Ie("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function km(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Bt(e){let t=await Lt(ce.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Lt(ce.resolve(e.transactionRoot)),n=or(e.plan);_i(n);let i=ce.join(t,".dyyto","plans"),a=await oo(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),o=[];for(let s of a.filter(c=>c.endsWith(".json")).sort()){let c=or(JSON.parse(await Cl(ce.join(i,s),"utf8")));_i(c),!await $t(ce.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(p=>p.code==="ENOENT"?!1:Promise.reject(p))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&km(c)===km(n)&&o.push(c)}return o.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),o[0]!==void 0?o[0]:(await lR({projectRoot:t,plan:n}),n)}async function Vr(e){let t=await Lt(ce.resolve(e.projectRoot)),r=ce.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=or(JSON.parse(await Cl(r,"utf8")));if(_i(n),n.planId!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new Ie("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function co(e,t=[],r,n=[]){let i=await Lt(ce.resolve(e)),a=r===void 0?i:await Lt(ce.resolve(r)),o=ce.join(i,".dyyto","plans"),s=await oo(o).catch(p=>{if(p.code==="ENOENT")return[];throw p}),c=[];for(let p of s.filter(d=>d.endsWith(".json")).sort()){let d=p.slice(0,-5),f=await Vr({projectRoot:i,planId:d}),u=await Ut({projectRoot:a,planId:d}),m=await $t(ce.join(i,".dyyto","metadata-transactions",d)).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=pR(c);if(l===void 0)throw new Ie("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function pR(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function $l(e){let t=await Lt(ce.resolve(e)),r=ce.join(t,".dyyto","plans"),n=await oo(r).catch(a=>{if(a.code==="ENOENT")return[];throw a}),i=[];for(let a of n.filter(o=>o.endsWith(".json")).sort())i.push(await Vr({projectRoot:t,planId:a.slice(0,-5)}));return i}import{lstat as Nm,readFile as dR,readdir as uR,realpath as fR}from"node:fs/promises";import Ce from"node:path";import{homedir as Om}from"node:os";var ft=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Sm(e){let t=Ce.resolve(e),r=await Nm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ce.parse(t).root||t===Ce.resolve(Om()))throw new ft("WORKSPACE_PATH_UNSAFE");let n=await fR(t);if(n!==t)throw new ft("WORKSPACE_PATH_UNSAFE");return n}async function Mr(e){let t=await Nm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_PATH_UNSAFE");return dR(e)}}function Dm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let a=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(a){r.push(a[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new ft("WORKSPACE_MANIFEST_INVALID");return r}function mR(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 Pn(e){let t=await Sm(e),r=await Mr(Ce.join(t,"pnpm-workspace.yaml"));if(!r)throw new ft("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Dm(r.toString("utf8"))){let a=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let o=i.slice(0,-2),s=await uR(Ce.join(t,...o.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&a.push(`${o}/${c.name}`)}else if(!i.includes("*"))a.push(i);else throw new ft("WORKSPACE_MANIFEST_INVALID");for(let o of a){let s=await Mr(Ce.join(t,...o.split("/"),"package.json"));s&&n.set(o,s)}}return Object.freeze([...n].sort(([i],[a])=>i.localeCompare(a)).map(([i,a])=>Object.freeze({relativeRoot:i,bytes:a})))}async function zt(e){let t=await Sm(e);if(await Mr(Ce.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Mr(Ce.join(t,"pnpm-workspace.yaml")))throw new ft("WORKSPACE_NESTED_UNSUPPORTED");let r=Ce.dirname(t),n;for(;r!==Ce.parse(r).root&&r!==Ce.resolve(Om());){let a=await Mr(Ce.join(r,"pnpm-workspace.yaml"));if(a){if(n)throw new ft("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:a};break}r=Ce.dirname(r)}if(!n||!await Mr(Ce.join(n.root,"pnpm-lock.yaml"))||!await Mr(Ce.join(n.root,"project-capabilities.json")))throw new ft("WORKSPACE_OWNER_MISSING");let i=Ce.relative(n.root,t).split(Ce.sep).join("/");if(!i||i.startsWith("../")||Dm(n.manifest.toString("utf8")).filter(a=>mR(a,i)).length!==1)throw new ft("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:h(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var jm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Ll(e){let t=await $l(e);for(let r of t){let n=await Ut({projectRoot:e,planId:r.planId});if(n!==null&&jm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await jl({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 gR(e){let t=await Ll(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await wi({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Dl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Cm(e){let t=await gR(e);if(t.kind!=="none")return t;let r=await zt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await $l(e.projectRoot)).map(c=>c.planId)),i=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!i)return t;let a;try{let c=JSON.parse(i);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;a=c.planId}catch{return t}let o=await Ut({projectRoot:r.transactionRoot,planId:a});if(!o||!jm.has(o.state))return t;let s=await wi({projectRoot:r.transactionRoot,planId:a,now:e.now});return{kind:"filesystem",planId:a,state:s.state}}import{lstat as yR,readFile as Tl,realpath as $m}from"node:fs/promises";import Ai from"node:path";var hR=new Set(["MIT","Apache-2.0","UNLICENSED"]),wR=new Set(["public","restricted","private"]),IR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,vR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function bR(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 Fr(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 fr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),i=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,a=i==="1.1.0"||i==="1.2.0"||t==="react-component-library",o=a?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==o.length||n.some((f,u)=>f!==o[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:p,repository:d}=r;if(s===void 0||s.length>214||!IR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!vR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!hR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(p===void 0||!wR.has(p))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(p==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:p,...a?{repository:bR(d)}:{}}}function xl(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
-
`)}function
|
|
25
|
-
`)}function
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
28
|
-
`)}function
|
|
29
|
-
`)}async function
|
|
30
|
-
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:a,kind:"replace",ownership:"owned-file",baseDigest:h(o),desiredDigest:h(s)});let l=await Promise.all(c.map(u=>Lm(i,u.path))),p=Ee({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}),d=new Map([...n.desiredContents,[a,s]]),f=new Map;for(let u of p.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,d.get(u.path));return{...n,manifest:r,plan:p,desiredContents:f}}function Pi(e){return Ur(e,"workspace-npm-package")}function Ni(e){return Ur(e,"workspace-node-application")}function Oi(e){return Ur(e,"workspace-web-application")}function Si(e){return Ur(e,"workspace-expo-application")}async function Tm(e){if(e.currentLock!==void 0){let n=await Ri(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ri({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function xm(e){if(e.currentLock!==void 0){let n=await Ei(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ei({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Vm(e){if(e.currentLock!==void 0){let n=await Nn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Nn({...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 Mm(e){if(e.currentLock!==void 0){let n=await Pi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Pi({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Fm(e){if(e.currentLock!==void 0){let n=await Ni(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ni({...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 Um(e){if(e.currentLock!==void 0){let n=await Oi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Oi({...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 qm(e){if(e.currentLock!==void 0){let n=await Si(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Si({...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 KR,readFile as Eo,realpath as YR}from"node:fs/promises";import Ti from"node:path";var At=class extends Error{code;constructor(t,r){super(r),this.code=t}},qr=/^sha256:[a-f0-9]{64}$/,ER=/^sha512-[A-Za-z0-9+/]{86}==$/,PR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,zm=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,NR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Bm=/^[a-z][a-z0-9._:-]{2,127}$/;function Br(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function OR(e){if(!Br(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!zm.test(e.registryId)||!Bm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,i)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==i)||!Br(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Br(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&&!Bm.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 Fl(e){if(!OR(e))throw new At("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:h(k(t))})}function Di(e){let t=e;if(typeof t!="object"||t===null||!Br(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!qr.test(t.revision))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Fl(i).revision!==n)throw new At("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function SR(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 Ul(e,t){let r=Di(t);if(!Br(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!SR(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 At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function Gm(e,t){let r=e;if(typeof r!="object"||r===null||!Br(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!qr.test(r.bindingDigest))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...a}=r;if(Ul(a,t).bindingDigest!==i)throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function DR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Br(e,t)&&zm.test(e.registryId)&&qr.test(e.registryConfigRevision)&&NR.test(e.packageName)&&PR.test(e.version)&&ER.test(e.integrity)&&qr.test(e.tarballDigest)&&qr.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&&qr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function ql(e){if(!DR(e))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function Jm(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!qr.test(t.receiptId))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(ql(i).receiptId!==n)throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Ne=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function ji(e){return h(k(e))}var Bl=/^sha256:[a-f0-9]{64}$/u,jR=/^sha512-[A-Za-z0-9+/]{86}==$/u,CR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,lo=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,$R=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,LR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function po(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,a)=>i===n[a])}function Wm(e){return h(k(e))}function Km(e){let t=Buffer.from(e.desiredLockfile),r=h(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(o=>({...o})),packageFacts:e.packageFacts.map(o=>({...o})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},i={...n,jobId:Wm(n),desiredLockfile:t};Ym(i);let a={...i,importerFacts:Object.freeze(i.importerFacts.map(o=>Object.freeze({...o}))),packageFacts:Object.freeze(i.packageFacts.map(o=>Object.freeze({...o}))),cacheObservation:Object.freeze({...i.cacheObservation})};return Object.freeze(a)}function Ym(e){if(!po(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 Ne("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(i=>Bl.test(i)))throw new Ne("RESOLUTION_EVIDENCE_INVALID");if(!lo.test(e.workerReleaseId)||!lo.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||h(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 Ne("RESOLUTION_EVIDENCE_INVALID");if(!po(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Ne("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!po(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!lo.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(a=>Bl.test(a))))throw new Ne("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!po(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!LR.test(i.identity)||!$R.test(i.packageName)||!lo.test(i.registryId)||!CR.test(i.version)||!jR.test(i.integrity)||typeof i.managed!="boolean"||!Bl.test(i.edgesDigest)))throw new Ne("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Ne("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(Wm(n)!==e.jobId)throw new Ne("RESOLUTION_EVIDENCE_INVALID")}function zl(e,t){if(Ym(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Ne("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Ne("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Ne("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(a=>a.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Ne("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(a=>a.managed&&a.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Ne("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Ne("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 mo(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:a})=>({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:a})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var uo=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,Hm=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Gl(e){return Array.isArray(e)?`[${e.map(Gl).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)}:${Gl(r)}`).join(",")}}`:JSON.stringify(e)}function Gt(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 mt(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 fo(e){for(let t of[mt(e.dependencies),mt(e.devDependencies),mt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!uo.test(n)||Hm.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var TR=["dependencies","devDependencies","optionalDependencies"];function go(e,t){let r=[];for(let n of TR)for(let[i,a]of Object.entries(mt(e[n]))){if(t.has(i)){if(!uo.test(a))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(a))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:i,specifier:a})}return r.sort((n,i)=>`${n.section}:${n.packageName}`.localeCompare(`${i.section}:${i.packageName}`))}function Jl(e){let t=Gt(e.packageJson);fo(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="runtime").map(({packageName:a,version:o})=>[a,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:a})=>a==="development").map(({packageName:a,version:o})=>[a,o])),i={...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
31
|
-
`)}function
|
|
32
|
-
`)}function
|
|
33
|
-
`)}function
|
|
34
|
-
`)}function
|
|
35
|
-
`),c=e.endpointBindings.filter(
|
|
36
|
-
`),d=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(y=>y.registryId===g.registryId)),u=[{path:d("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(p)},{path:d("package.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:d(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:Ee({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:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:o,preservedDependencies:go(Gt(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[d("project-capabilities.json"),p],[d("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function yo(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",i=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!i)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let a=Gt(e.packageJson),o=e.desiredBasePackageJson??e.packageJson,s=Gt(o),c="topology"in e,l=c?go(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||fo(a),c||fo(s);let p=new Map(e.registryConfigs.map(I=>{let _=Di(I);return[_.registryId,_]})),d=new Map(e.endpointBindings.map(I=>{let _=p.get(I.registryId);if(_===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let S=Gm(I,_);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let _=Jm(I);return[_.receiptId,_]})),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?zl(e.resolutionEvidence,{requestDigest:ji({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(Ci({release:e.release,packageJson:o})),sources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:L})=>({registryId:I,packageName:_,version:S,integrity:L})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(Ci({release:e.release,packageJson:o})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_})),managedSources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:L})=>({registryId:I,packageName:_,version:S,integrity:L})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:_,version:S,integrity:L})=>({registryId:I,packageName:_,version:S,integrity:L}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${y.packages.length}/${e.release.packageSources.length}`)});let w=new Map(y.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let _=p.get(I.registryId),S=d.get(I.registryId),L=f.get(I.deliveryReceiptId),ue=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(L!==void 0&&(t==="production"&&L.provenance==="development-readback-verified"||t==="development"&&L.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!_||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||_.status!=="enabled"||!_.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!L||!ue||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(L.registryId!==I.registryId||L.registryConfigRevision!==_.revision||L.packageName!==I.packageName||L.version!==I.version||L.integrity!==I.integrity||L.tarballDigest!==I.tarballDigest||ue.integrity!==I.integrity||ue.tarballDigest!==I.tarballDigest||ue.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!uo.test(I.version)||ue.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Z]of Object.entries(ue.dependencies)){let se=m.get(P);if(P.startsWith("@aipt/")&&(!se||se.version!==Z||!uo.test(Z)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Z}`)});if(Hm.test(Z))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?Ci({release:e.release,packageJson:o}):Jl({release:e.release,packageJson:o}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,revision:_})=>Object.freeze({registryId:I,revision:_})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),endpointBindings:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:L})=>Object.freeze({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:L})).sort((I,_)=>I.registryId.localeCompare(_.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})))}:{}},R=h(Gl(b));return Object.freeze({...b,planId:R,desiredPackageJson:A,desiredLockfile:y.lockfile})}function ho(e){return yo(e,"production")}function wo(e){return yo(e,"development")}function Io(e){return yo(e,"production")}function vo(e){return yo(e,"development")}function xR(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",i=e.operations.filter(({path:p})=>p===r),a=e.operations.filter(({path:p})=>p===n);if(i.length!==1||a.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let o=i[0],s=a[0],c=o.kind==="replace"&&o.baseDigest===t.packageJsonPreimageDigest&&o.desiredDigest===t.desiredPackageJsonDigest&&o.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function Qm(e){xR(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await lr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await pr(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 kl({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 ng=tn(Sr(),1);var ig=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],ag="^[a-z0-9][a-z0-9._-]{0,127}$",Yl="^[A-Z][A-Z0-9_]{0,127}$",eg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",VR={$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:ag},profile:{enum:ig}}},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:Yl},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:Yl},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:eg}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:Yl},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:eg}}}]}}}},tg=new ng.Ajv2020({allErrors:!0,strict:!0}).compile(VR),rg=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,MR=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Qe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function og(e){let t=W(e),r=t.profile?.id;if(!ig.includes(r))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(ag,"u").test(i))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function bo(e,t){if(!tg(e))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",tg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set;for(let a of r.bindings){if(n.has(a.name))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${a.name}`);if(n.add(a.name),a.kind==="value"){if(rg.test(a.name))throw new Qe("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 Qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${a.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let o=a.kind==="secret-file"?"secrets/":"certs/";if(a.kind==="certificate-file"&&(rg.test(a.name)||MR.test(a.name)))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5305\u542B\u79C1\u5BC6\u6750\u6599\u8BED\u4E49\uFF0C\u5FC5\u987B\u4F7F\u7528 secret-file \u5E76\u653E\u5165 secrets/\uFF1Bcertificate-file \u53EA\u5141\u8BB8\u516C\u5F00\u8BC1\u4E66\u3002`);let s=a.file.split("/");if(!a.file.startsWith(o)||s.some(c=>c===""||c==="."||c===".."))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${a.name} \u5FC5\u987B\u4F4D\u4E8E ${o} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(i.has(a.file))throw new Qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${a.file}`);i.add(a.file)}if(t!==void 0){let a=og(t);if(r.application.id!==a.id||r.application.profile!==a.profile)throw new Qe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function ko(e){let t=og(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 bo(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
-
`)}import{createHash as
|
|
38
|
-
`)}function lg(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=cg(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function qR(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(!i||i.startsWith("#"))continue;let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i),o=a?.[1],s=a?.[2];if(!o||s===void 0||o in t)throw new he("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[o]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Ao(e){return`sha256:${FR("sha256").update(e).digest("hex")}`}function BR(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function sg(e,t,r){let n=await $i(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new he("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}var zR=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),GR=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function Hl({projectRoot:e,environment:t=process.env}){let r=await _o(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await $i(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[a,o]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(n)]),s=JSON.parse(a.toString("utf8")),c=bo(JSON.parse(o.toString("utf8")),s),l=await gt(X.join(r,".dyyto/application-config-binding.json")).catch(d=>{if(d.code==="ENOENT")return null;throw d});if(!l)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Ao(o),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let p=lg(JSON.parse(l.toString("utf8")),s);try{let d=await Li({projectRoot:r,environment:t}),f=d.entries.filter(m=>m.required&&!m.configured).map(m=>m.name),u=f.length?"incomplete":"ready";return{schemaVersion:1,...d,state:u,needsConfigInit:u==="incomplete",missingBindings:f}}catch(d){let f=d instanceof he?d.code:d.code??"APPLICATION_CONFIG_UNKNOWN",u=GR.has(f)?"missing":zR.has(f)?"incomplete":"invalid",m=await dg(r,p.application.id,t).catch(()=>{});return{schemaVersion:1,application:p.application.id,environment:"local",configDirectory:m??null,contractDigest:Ao(o),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:f,entries:[]}}}catch(a){let o=a instanceof he||a instanceof Error&&"code"in a?String(a.code):"APPLICATION_CONFIG_INVALID";return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:o,entries:[]}}}var JR=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function pg({workspaceRoot:e,environment:t=process.env}){let r=await _o(X.resolve(e));if(W(JSON.parse(await gt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new he("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await Pn(r),a=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),l=X.join(c,"project-capabilities.json"),p=await gt(l,"utf8").catch(()=>null),d=await $i(X.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),f="";if(p!==null)try{f=W(JSON.parse(p)).profile?.id??""}catch{d&&(f="invalid-application")}if(!JR.has(f)&&!d)continue;let u=await Hl({projectRoot:c,environment:t}).catch(m=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:m instanceof Error&&"code"in m?String(m.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));a.push({unit:s.relativeRoot,readiness:u})}let o=s=>a.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:a.length,ready:o("ready"),missing:o("missing"),incomplete:o("incomplete"),invalid:o("invalid"),notDeclared:o("not-declared"),needsConfigInit:a.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(a.map(s=>Object.freeze(s)))})}async function WR(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await gt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let a=X.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(a))throw new he("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),a,r)}}catch(i){if(i instanceof he)throw i}n=X.dirname(n)}return X.join(t,r)}async function dg(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let a=await $i(n).catch(()=>null);if(!a?.isFile()||a.isSymbolicLink()||a.nlink!==1||(a.mode&511&-385)!==0)throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let o=JSON.parse(await gt(n,"utf8"));if(o.schemaVersion!==1||!Array.isArray(o.projects))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=o.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${X.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let i=r.APP_CONFIG_DIR;if(i){if(!X.isAbsolute(i))throw new he("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await WR(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Li({projectRoot:e,environment:t=process.env}){let r=await _o(X.resolve(e)),[n,i,a]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(X.join(r,".dyyto/application-config-binding.json")),gt(X.join(r,"config/application-config.json"))]),o=JSON.parse(n.toString("utf8")),s=lg(JSON.parse(i.toString("utf8")),o),c=bo(JSON.parse(a.toString("utf8")),o),l=await dg(r,s.application.id,t);if(!l||!X.isAbsolute(l))throw new he("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let p=await _o(l),d=await $i(p);if(!d.isDirectory()||d.isSymbolicLink()||(d.mode&511&-449)!==0)throw new he("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=X.relative(r,p);if(f===""||!f.startsWith("..")&&!X.isAbsolute(f))throw new he("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(p,".env");await sg(u,"\u5E94\u7528.env",c.bindings.length===0);let m=qR(await gt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let L=m[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:L.length>0,source:"APP_CONFIG_DIR",display:BR(L)});continue}if(m[y.name]!==y.file)throw new he("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(p,y.file),b=X.relative(p,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new he("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await sg(A,y.name,!y.required),I=await gt(A),_=I.length>0,S;if(_&&y.kind==="certificate-file")try{let L=new UR(I);S={subject:L.subject,issuer:L.issuer,validFrom:L.validFrom,validTo:L.validTo}}catch{throw new he("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,kind:y.kind,required:y.required,configured:_,source:"APP_CONFIG_DIR",display:_?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",..._?{fingerprint:Ao(I),updatedAt:R.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:p,contractDigest:Ao(a),entries:g}}var zr="project-capabilities.json",ug=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function HR(e,t){if(!ug.test(e)||!ug.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let i=0;i<3;i+=1)if(r[i]!==n[i])return r[i]-n[i];return 0}async function XR(e,t){let r=Ti.join(e,...t.split("/"));try{let n=await KR(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:h(await Eo(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function Po(e,t){let r=W(e),n=t.release,i=n.assets.find(o=>o.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return xl(fr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Vl(fr(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 Xl(e){let t=W(e.manifest),r=Ge(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,a=t.capabilities.find(P=>P.capabilityId===n.capabilityId),o=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=i.capabilityId!==n.capabilityId&&i.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(a===void 0||o===void 0||a.capabilityId!==o.capabilityId||a.version!==o.version||n.capabilityId!==o.capabilityId||n.version!==o.version||n.integrity!==o.integrity||!s&&i.capabilityId!==o.capabilityId||i.consumerProfile!==o.consumerProfile||n.consumerProfile!==i.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&HR(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await YR(Ti.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},p=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&p.set("package.json",Po(l,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&p.set(P.path,ko(l)),P.renderer==="application-config-binding-v1"&&p.set(P.path,Ro(l));let d,f=c,u="package.json",m;if(i.schemaVersion===2&&i.availability.maturity!=="withdrawn"&&(i.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=p.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let Z=await Eo(Ti.join(c,"package.json")),se=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=se.transactionRoot,u=se.mode==="pnpm-shared-lockfile"?`${se.unitRelativeRoot}/package.json`:"package.json",m=se.lockfilePath;let at={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Z,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ht=se.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?vo:Io)({...at,topology:{mode:se.mode,unitRelativeRoot:se.unitRelativeRoot,unitImporterId:se.unitImporterId,lockfilePath:se.lockfilePath,workspaceManifestPath:se.workspaceManifestPath,workspaceManifestDigest:se.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?wo:ho)({...at,lockResolution:e.packageSource.lockResolution});d=mo(ht),p.set("package.json",ht.desiredPackageJson),p.set(m,ht.desiredLockfile)}catch(ht){throw ht instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ht.code):ht}}let g=new Map(o.assets.filter(P=>P.path!==zr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==zr).map(P=>{let Z=p.get(P.path);if(Z===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(Z)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),A=[],b=[];for(let P of w){let Z=await XR(c,P);A.push(Z);let se=g.get(P),at=y.get(P),ht=i.assets.find(Ch=>Ch.path===P);if(ht?.ownership==="seed-file"&&Z.exists&&Z.digest!==void 0){y.set(P,Z.digest),p.set(P,await Eo(Ti.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Z.digest,desiredDigest:Z.digest});continue}if(se===void 0){if(at===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ht?.ownership??"owned-file",desiredDigest:at})}else at===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:se}):b.push({path:P,kind:"replace",ownership:ht?.ownership??"owned-file",baseDigest:se,desiredDigest:at})}if(d!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let Z=p.get(m);A.push({path:m,exists:!0,digest:h(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(Z)})}let R=await Eo(Ti.join(c,zr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
-
`);A.push({path:
|
|
40
|
-
`,"utf8"),await i.sync()}finally{await i.close()}try{await ZR(n,e),await rE(n),await nE(r)}catch(a){throw await tE(n,{force:!0}),a}}async function wg(e){let t=await Et(ge.resolve(e.projectRoot)),r=Zl(e.plan),n=ge.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await xi(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(Zl(JSON.parse(await Rt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Jt(e){if(!$e(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=Zl(JSON.parse(await Rt(ge.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 np(e){let t=await Et(ge.resolve(e.projectRoot)),r=tp(e.receipt),n=await Jt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let a=await Sn({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 D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let i=ge.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await xi(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=tp(JSON.parse(await Rt(i,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return o}return r}async function On(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=tp(JSON.parse(await Rt(ge.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Ig(e){let t=await Et(ge.resolve(e.projectRoot)),r=No(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let i=ge.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await xi(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=No(JSON.parse(await Rt(i,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return o}return r}async function vg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=No(JSON.parse(await Rt(ge.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 bg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ge.join(t,".dyyto","delivery","attempts"),n;try{n=await eE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let a=No(JSON.parse(await Rt(ge.join(r,i),"utf8")));if((await Jt({projectRoot:t,planId:a.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([Sn({projectRoot:t,planId:a.planId}),On({projectRoot:t,planId:a.planId})]);if(s===null&&c===null)return a}return null}async function kg(e){let t=await Et(ge.resolve(e.projectRoot)),r=Ql(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let i=ge.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await xi(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=Ql(JSON.parse(await Rt(i,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return o}return r}async function Sn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=Ql(JSON.parse(await Rt(ge.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 _g(e){let t=await Et(ge.resolve(e.projectRoot)),r=ep(e.record),n=await Sn({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 i=ge.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await xi(i,r)}catch(a){if(a.code!=="EEXIST")throw a;let o=ep(JSON.parse(await Rt(i,"utf8")));if(k(o)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return o}return r}async function Ag(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=ep(JSON.parse(await Rt(ge.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 qg,readdir as qE}from"node:fs/promises";import sp from"node:path";import{mkdir as ip,open as Co,readFile as Mi,readdir as ap,rename as $o,rm as Mg}from"node:fs/promises";import ve from"node:path";var iE=44;var Rg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",aE=new Uint8Array(64),Pg=new Uint8Array(128);for(let e=0;e<Rg.length;e++){let t=Rg.charCodeAt(e);aE[e]=t,Pg[t]=e}function Vi(e,t){let r=0,n=0,i=0;do{let o=e.next();i=Pg[o],r|=(i&31)<<n,n+=5}while(i&32);let a=r&1;return r>>>=1,a&&(r=-2147483648|-r),t+r}function Eg(e,t){return e.pos>=t?!1:e.peek()!==iE}var Oj=1024*16;var oE=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 Ng(e){let{length:t}=e,r=new oE(e),n=[],i=0,a=0,o=0,s=0,c=0;do{let l=r.indexOf(";"),p=[],d=!0,f=0;for(i=0;r.pos<l;){let u;i=Vi(r,i),i<f&&(d=!1),f=i,Eg(r,l)?(a=Vi(r,a),o=Vi(r,o),s=Vi(r,s),Eg(r,l)?(c=Vi(r,c),u=[i,a,o,s,c]):u=[i,a,o,s]):u=[i],p.push(u),r.pos++}d||sE(p),n.push(p),r.pos=l+1}while(r.pos<=t);return n}function sE(e){e.sort(cE)}function cE(e,t){return e[0]-t[0]}var lE=/^[\w+.-]+:\/\//,pE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,dE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function uE(e){return lE.test(e)}function fE(e){return e.startsWith("//")}function Dg(e){return e.startsWith("/")}function mE(e){return e.startsWith("file:")}function Og(e){return/^[.?#]/.test(e)}function So(e){let t=pE.exec(e);return jg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function gE(e){let t=dE.exec(e),r=t[2];return jg("file:","",t[1]||"","",Dg(r)?r:"/"+r,t[3]||"",t[4]||"")}function jg(e,t,r,n,i,a,o){return{scheme:e,user:t,host:r,port:n,path:i,query:a,hash:o,type:7}}function Sg(e){if(fE(e)){let r=So("http:"+e);return r.scheme="",r.type=6,r}if(Dg(e)){let r=So("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(mE(e))return gE(e);if(uE(e))return So(e);let t=So("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function yE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function hE(e,t){Cg(t,t.type),e.path==="/"?e.path=t.path:e.path=yE(t.path)+e.path}function Cg(e,t){let r=t<=4,n=e.path.split("/"),i=1,a=0,o=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){o=!0;continue}if(o=!1,l!=="."){if(l===".."){a?(o=!0,a--,i--):r&&(n[i++]=l);continue}n[i++]=l,a++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||o&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function $g(e,t){if(!e&&!t)return"";let r=Sg(e),n=r.type;if(t&&n!==7){let a=Sg(t),o=a.type;switch(n){case 1:r.hash=a.hash;case 2:r.query=a.query;case 3:case 4:hE(r,a);case 5:r.user=a.user,r.host=a.host,r.port=a.port;case 6:r.scheme=a.scheme}o>n&&(n=o)}Cg(r,n);let i=r.query+r.hash;switch(n){case 2:case 3:return i;case 4:{let a=r.path.slice(1);return a?Og(t||e)&&!Og(a)?"./"+a+i:a+i:i||"."}case 5:return r.path+i;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+i}}function wE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function IE(e,t){let r=wE(e),n=t?t+"/":"";return i=>$g(n+(i||""),r)}var mr=0,vE=1,bE=2,kE=3,_E=4;function AE(e,t){let r=Lg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Lg(e,n+1))e[n]=EE(e[n],t);return e}function Lg(e,t){for(let r=t;r<e.length;r++)if(!RE(e[r]))return r;return e.length}function RE(e){for(let t=1;t<e.length;t++)if(e[t][mr]<e[t-1][mr])return!1;return!0}function EE(e,t){return t||(e=e.slice()),e.sort(PE)}function PE(e,t){return e[mr]-t[mr]}var jo=!1;function NE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),a=e[i][mr]-t;if(a===0)return jo=!0,i;a<0?r=i+1:n=i-1}return jo=!1,r-1}function OE(e,t,r){for(let n=r+1;n<e.length&&e[n][mr]===t;r=n++);return r}function SE(e,t,r){for(let n=r-1;n>=0&&e[n][mr]===t;r=n--);return r}function DE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function jE(e,t,r,n){let{lastKey:i,lastNeedle:a,lastIndex:o}=r,s=0,c=e.length-1;if(n===i){if(t===a)return jo=o!==-1&&e[o][mr]===t,o;t>=a?s=o===-1?0:o:c=o}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 $E="`line` must be greater than 0 (lines start at line 1)",LE="`column` must be greater than or equal to 0 (columns start at column 0)",Tg=-1,TE=1,xg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=CE(e),{version:i,file:a,names:o,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=i,this.file=a,this.names=o||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let p=IE(t,s);this.resolvedSources=c.map(p);let{mappings:d}=n;if(typeof d=="string")this._encoded=d,this._decoded=void 0;else if(Array.isArray(d))this._encoded=void 0,this._decoded=AE(d,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=DE(),this._bySources=void 0,this._bySourceMemos=void 0}};function xE(e){var t;return(t=e)._decoded||(t._decoded=Ng(e._encoded))}function Vg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error($E);if(n<0)throw new Error(LE);let a=xE(e);if(r>=a.length)return Do(null,null,null,null);let o=a[r],s=VE(o,e._decodedMemo,r,n,i||TE);if(s===-1)return Do(null,null,null,null);let c=o[s];if(c.length===1)return Do(null,null,null,null);let{names:l,resolvedSources:p}=e;return Do(p[c[vE]],c[bE]+1,c[kE],c.length===5?l[c[_E]]:null)}function Do(e,t,r,n){return{source:e,line:t,column:r,name:n}}function VE(e,t,r,n,i){let a=jE(e,n,t,r);return jo?a=(i===Tg?OE:SE)(e,n,a):i===Tg&&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"}},op=/^sha256:[a-f0-9]{64}$/,Fg=/^[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}$/,Lo=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Fi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Dn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Ug(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=ve.join(ve.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Jt({projectRoot:r,planId:t.deploymentId}),i=await On({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new oe("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await ap(ve.join(ve.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(!Fi(e)||!Lo(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Fi(e.error)||!Fi(e.page)||!Lo(e.error,["type","message","frames"])||!Lo(e.page,["origin","path"]))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Fg.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"||!op.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(!Fi(n)||!Lo(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let i of[n.line,n.column])if(i!==void 0&&(!Number.isSafeInteger(i)||Number(i)<1))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new oe("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function UE(e,t,r="unknown"){let n=e.error.frames.map(o=>({file:Dn(o.file,2048),...o.line===void 0?{}:{line:o.line},...o.column===void 0?{}:{column:o.column},...o.function===void 0?{}:{function:Dn(o.function,256)}})),i={type:Dn(e.error.type,256),message:Dn(e.error.message,4096),frames:n},a=h(k({type:i.type,message:i.message,frames:n.slice(0,5).map(({file:o,line:s,column:c})=>({file:o,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Dn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:Dn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:a,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Wt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ve.join(ve.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 i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),a=UE(n,r.receivedAt,i);return this.#t(async()=>{let o=this.directory();await ip(o,{recursive:!0,mode:448});let s=ve.join(o,`${a.eventId}.json`);try{let f=JSON.parse(await Mi(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:a.receivedAt})!==k(a))throw new oe("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:a.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await Co(c,"wx",384);try{await l.writeFile(`${k(a)}
|
|
41
|
-
`,"utf8"),await l.sync()}finally{await l.close()}await
|
|
42
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
43
|
-
`),await l.sync()}finally{await l.close()}await
|
|
44
|
-
`),s=await
|
|
45
|
-
`),g=await Bi(a,u);if(!g.exists||g.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:h(m)}],w=new Map([[u,m]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let _;try{_=await qi(Gr.join(t,"package.json"))}catch{throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let S=e.packageSource.currentLockfile??await qi(Gr.join(t,"pnpm-lock.yaml")).catch(se=>se.code==="ENOENT"?void 0:Promise.reject(se)),L=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ue=L.mode==="pnpm-shared-lockfile",$={mode:L.mode,unitRelativeRoot:L.unitRelativeRoot,unitImporterId:L.unitImporterId,lockfilePath:L.lockfilePath,...L.workspaceManifestPath?{workspaceManifestPath:L.workspaceManifestPath,workspaceManifestDigest:L.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ue&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let Z=ue?(e.packageChannel==="development"?vo:Io)({release:n,...P,consumerProfile:c,packageJson:_,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?wo:ho)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:_,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=mo(Z),y.push({path:o("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Z.packageJsonPreimageDigest,desiredDigest:Z.desiredPackageJsonDigest}),w.set(o("package.json"),Z.desiredPackageJson),y.push({path:L.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:h(S)},desiredDigest:Z.desiredLockfileDigest}),w.set(L.lockfilePath,Z.desiredLockfile)}catch(S){throw S instanceof H?new le("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let _ of n.assets){let S=e.release.contents.get(_.path);if(S===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let L=_.renderer==="application-config-contract-v1"?ko(r):_.renderer==="application-config-binding-v1"?Ro(r):S;if(_.ownership==="managed-region"){if(_.regionId===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ue;try{ue=await qi(Gr.join(t,..._.path.split("/")))}catch{throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(am({source:ue.toString("utf8"),regionId:_.regionId,content:Buffer.from(L).toString("utf8")}));y.push({path:o(_.path),kind:"merge",ownership:"managed-region",regionId:_.regionId,baseDigest:h(ue),desiredDigest:h($)}),w.set(o(_.path),$)}else{let ue=await Bi(t,_.path);if(_.ownership==="seed-file"&&ue.exists){let $=await qi(Gr.join(t,..._.path.split("/")));y.push({path:o(_.path),kind:"create",ownership:"seed-file",desiredDigest:h($)}),w.set(o(_.path),$)}else y.push({path:o(_.path),kind:"create",ownership:_.ownership,desiredDigest:h(L)}),w.set(o(_.path),L)}}let b=await Promise.all(y.map(_=>Bi(a,_.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(_=>_.path!==u&&_.path!==i?.lockfilePath).map(_=>({path:i?.mode==="pnpm-shared-lockfile"?_.path.slice(i.unitRelativeRoot.length+1):_.path,ownership:_.ownership,desiredDigest:_.desiredDigest})),verifiers:n.verifiers.map(_=>({id:_.id,kind:"file-digest"}))};return{plan:Ee({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:f,desiredContents:w,transactionRoot:a,dependency:{profile:c,satisfied:!0}}}var Wg=tn(Sr(),1);var BE={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},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:te},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}}}}},sC=new Wg.Ajv2020({allErrors:!0,strict:!0}).compile(BE);var Zg=tn(Sr(),1);import{readFile as zE,realpath as GE}from"node:fs/promises";import Kg from"node:path";var Yg="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",Hg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",JE={$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:Yg},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:te},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:te},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:Hg,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:Yg}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:Hg,maxLength:240}}}}}},Xg=new Zg.Ajv2020({allErrors:!0,strict:!0}).compile(JE),Jr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function WE(e){return h(k(e))}function KE(e){if(!Xg(e))throw new Jr("EXAMPLE_RECIPE_INVALID",Xg.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new Jr("EXAMPLE_RECIPE_INVALID");return t}async function Qg(e){let t=await GE(Kg.resolve(e)),r;try{r=KE(JSON.parse(await zE(Kg.join(t,"recipe.json"),"utf8")))}catch(a){throw a instanceof Jr?a:new Jr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(WE(i)!==n)throw new Jr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var ry=tn(Sr(),1);import{readFile as YE,realpath as HE}from"node:fs/promises";import ey from"node:path";var XE={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},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:te},capability:{type:"string",pattern:`${te.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:te},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:te},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"]}}}},ty=new ry.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(XE),Kt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function ZE(e){return h(k(e))}function QE(e){if(!ty(e))throw new Kt("TEMPLATE_INVALID",ty.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 Kt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Kt("TEMPLATE_INVALID");return t}async function zi(e,t=new Date){let r=await HE(ey.resolve(e)),n;try{n=QE(JSON.parse(await YE(ey.join(r,"template.json"),"utf8")))}catch(o){throw o instanceof Kt?o:new Kt("TEMPLATE_INVALID")}let{integrity:i,...a}=n;if(ZE(a)!==i)throw new Kt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Kt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as ny}from"node:fs/promises";import iy from"node:path";var eP=/^[A-Z][A-Z0-9_]*$/u,tP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function rP(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||!eP.test(n[1]))continue;let i=n[1],a=n[2].trim();t.set(i,{name:i,requirement:a.length===0?"conditional":"optional",secret:tP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function ay(e){let t=await ny(iy.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await ny(iy.join(e.projectRoot,t),"utf8"):"",n=await Li({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}:{}})):rP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var oy={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"])},sy=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function cy(e,t){if(!oy[t.plane]||t.state&&!sy.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=oy[t.plane],n=t.from?Date.parse(t.from):null,i=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||i!==null&&Number.isNaN(i)||n!==null&&i!==null&&n>i)throw new Error("OPERATION_FILTER_INVALID");let a=e.filter(l=>r.has(l.operation)),o=[...new Map(a.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,p)=>l.name.localeCompare(p.name)),s=a.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(i===null||Date.parse(l.createdAt)<=i)).sort((l,p)=>p.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(o),states:Object.freeze([...sy]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var tt=class extends Error{code;constructor(t){super(t),this.code=t}},nP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,ly=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,iP=/^sha512-[A-Za-z0-9+/]{86}==$/u,To=/^sha256:[a-f0-9]{64}$/u,aP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,oP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,sP=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Wr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,a)=>i===n[a])}function cP(e){if(!Wr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!nP.test(e.packageName)||!ly.test(e.version)||!aP.test(e.assetName)||!iP.test(e.integrity)||!To.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)||!ly.test(n)||oP.test(n))?!1:e.lifecycleScripts.every(r=>sP.has(r))}function pp(e){if(!Wr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new tt("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=>!cP(a)))throw new tt("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(a=>a.packageName+"@"+a.version);if(new Set(r).size!==r.length||r.some((a,o)=>o>0&&a.localeCompare(r[o-1])<=0))throw new tt("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(a=>a.packageName));for(let a of t)for(let[o,s]of Object.entries(a.dependencies))if(o.startsWith("@aipt/")&&(!n.has(o)||!t.some(c=>c.packageName===o&&c.version===s)))throw new tt("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function Kr(e){let t=e;if(typeof t!="object"||t===null||!Wr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!To.test(t.bundleId)||!Array.isArray(t.artifacts))throw new tt("LOCAL_ARTIFACT_BUNDLE_INVALID");if(pp({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new tt("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function dp(e){if(!Wr(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 tt("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Wr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!To.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new tt("LOCAL_ARTIFACT_PLAN_INVALID");let r=Kr(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:h(k(n))})}function py(e){let t=e;if(typeof t!="object"||t===null||!Wr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!To.test(t.planId)||!Wr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new tt("LOCAL_ARTIFACT_PLAN_INVALID");if(dp({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new tt("LOCAL_ARTIFACT_PLAN_INVALID");return t}function dy(e){let t=Kr(e.bundle),r=Di(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new tt("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>ql({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ze=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},uy=/^sha256:[a-f0-9]{64}$/u,xo=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function up(e){if(!xo.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>uy.test(r))||!xo.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function fy(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let r=up({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");return r}function fp(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>uy.test(r))||!xo.test(e.workerReleaseId)||!xo.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function Vo(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let r=fp({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");return r}var Gi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},mp=/^sha256:[a-f0-9]{64}$/u,lP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function gp(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>mp.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!lP.test(r.path)||!mp.test(r.currentDigest)||!mp.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Gi("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:h(k(t))})}function my(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Gi("RECOVERY_OVERRIDE_INVALID");let r=gp({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 Gi("RECOVERY_OVERRIDE_INVALID");return r}var Ji=class extends Error{code;constructor(t,r){super(r),this.code=t}},hp=/^sha256:[a-f0-9]{64}$/u,pP=/^sha512-[A-Za-z0-9+/]{86}==$/u,dP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,uP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,fP=/[\u0000-\u001f\u007f]/u;function jn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Cn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,a)=>i===n[a])}function Yt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!fP.test(e)}function yp(e){return Yt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function gy(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Yt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function mP(e){return e===null?!0:!jn(e)||!Cn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:yp(e.fileName)&&hp.test(String(e.digest))&&pP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function gP(e){if(!jn(e)||!Cn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!dP.test(e.packageName)||!uP.test(e.version)||!Yt(e.title,120)||!Yt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!jn(e.source)||!Cn(e.source,["repository","path","revision","treeDigest"])||!Yt(e.source.repository)||!yp(e.source.path)||!Yt(e.source.revision,200)||!hp.test(String(e.source.treeDigest))||!mP(e.artifact)||!jn(e.compatibility)||!Cn(e.compatibility,["node","packageManager"])||!Yt(e.compatibility.node,100)||!Yt(e.compatibility.packageManager,100)||!gy(e.exports)||!gy(e.consumerEvidence)||!jn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Cn(e.documentation,t)||!yp(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Yt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function yP(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(!gP(t))throw new Ji("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function yy(e){if(!jn(e)||!Cn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!hp.test(String(e.releaseDigest)))throw new Ji("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,a=yP(i);if(a.releaseDigest!==t)throw new Ji("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return a}import{lstat as hP,readFile as wP,realpath as IP}from"node:fs/promises";import hy from"node:path";async function wy(e){let t=await IP(hy.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,i=[...e.lock.capabilities].sort((o,s)=>o.committedAt.localeCompare(s.committedAt)||o.capabilityId.localeCompare(s.capabilityId));for(let o of i)if(!r.has(o.capabilityId))for(let s of o.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let d of n.keys())d.startsWith(l)&&n.delete(d);let p=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(p,{capabilityId:o.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let a=[];for(let o of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=hy.join(t,...o.path.split("/")),l=await hP(s).then(async p=>{if(!p.isFile()||p.isSymbolicLink())return;let d=await wP(s);if(o.ownership!=="managed-region")return h(d);if(o.regionId!==void 0)try{return h(qa(d.toString("utf8"),o.regionId))}catch{return}}).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p))===o.digest;a.push({capabilityId:o.capabilityId,path:o.path,kind:"create",ownership:o.ownership,...o.regionId===void 0?{}:{regionId:o.regionId},desiredDigest:o.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return a}import{readFile as ie,readdir as Cy,realpath as Pt}from"node:fs/promises";import{execFile as $P,spawn as LP}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as TP}from"node:util";import{lstat as Iy,mkdir as Ip,readFile as vy,realpath as wp,rm as vP,writeFile as by}from"node:fs/promises";import rt from"node:path";var nt=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},bP=e=>k(e),ky=e=>h(bP(e));async function _y(e,t){let r=await wp(rt.resolve(e)),n=rt.join(r,".examples");await Ip(n,{recursive:!0});let i=await wp(n),a=rt.resolve(r,t);if(rt.dirname(a)!==i||rt.basename(a).startsWith(".")||rt.basename(a).length<1)throw new nt("SCAFFOLD_ARGUMENT_INVALID");if(await Iy(a).then(()=>!0).catch(o=>o.code==="ENOENT"?!1:Promise.reject(o)))throw new nt("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:a,outputRelativePath:rt.relative(r,a)}}async function Ay(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 nt("SCAFFOLD_ARGUMENT_INVALID");let r=await _y(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),i={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},a={...i,planId:ky(i)},o=rt.join(r.workspaceRoot,".dyyto","scaffold-plans");await Ip(o,{recursive:!0});let s=rt.join(o,`${a.planId}.json`);return await by(s,`${k(a)}
|
|
46
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
47
|
-
`)throw new
|
|
48
|
-
`,{flag:"wx",mode:384}),{evidenceId:a,output:r.output,receipts:n}}import{lstat as Wi,readFile as vp,readdir as _P,realpath as bp}from"node:fs/promises";import ye from"node:path";var Ey={capabilities:ye.resolve(import.meta.dirname,"catalog"),packages:ye.resolve(import.meta.dirname,"package-releases")};function Ny(e,t){return e<t?-1:e>t?1:0}function Fo(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Fo).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Ny(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Fo(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function AP(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(i===""||i.startsWith("#"))continue;if(i.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let a=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i);if(!a)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(a[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${a[1]}`);let o=a[2].trim();if((o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),/[`$][({]?/u.test(o))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(a[1],o)}return t}async function Py(e,t){let r=await Wi(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 Mo(e,t){let r=await Wi(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 bp(e)}async function RP(e){let t=e;for(;;){if(await Wi(ye.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=ye.dirname(t);if(r===t)return;t=r}}async function EP(e){if(!ye.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Mo(e,"IDP_CONFIG_DIR");await RP(t);let r=await Mo(ye.join(t,"components"),"components"),n=await Mo(ye.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=ye.relative(t,n);if(i.startsWith("..")||ye.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let a=ye.join(n,".env");await Py(a,"Dyyto \u7EC4\u4EF6 .env");let o=AP(await vp(a,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(o===void 0||o==="")return[];if(ye.isAbsolute(o)||o.includes("\0")||/[*?{}[\]]/u.test(o))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=ye.resolve(n,o),c=ye.relative(n,s);if(c===""||c.startsWith("..")||ye.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(ye.sep).slice(0,-1))l=await Mo(ye.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let p=await bp(ye.dirname(s)),d=ye.relative(n,p);if(d.startsWith("..")||ye.isAbsolute(d))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Py(s,"Package Catalog Binding");let f=[];for(let u of(await vp(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!ye.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Wi(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await bp(m),w=await Wi(y);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(y)||f.push(y)}return f.sort()}async function PP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await EP(e);return{capabilities:Ey.capabilities,packages:[Ey.packages,...t]}}async function Uo(e){return(await _P(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function NP(e,t){let r=a=>a.split("-",1)[0].split(".").map(Number),n=r(e),i=r(t);for(let a=0;a<3;a+=1){let o=(n[a]??0)-(i[a]??0);if(o!==0)return o}return e.localeCompare(t)}function 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 SP(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 DP(e){let t=[];for(let r of await Uo(e))for(let n of await Uo(ye.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(ye.join(e,r,n)).then(a=>({entry:{item:OP(a.release),release:a.release}})).catch(()=>({diagnostic:{ref:i,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function jP(e){let t=[];for(let r of await Uo(e))for(let n of await Uo(ye.join(e,r))){let i=ye.join(e,r,n,"release.json"),a=`package:${r}@${n}`;t.push(vp(i,"utf8").then(o=>{let s=yy(JSON.parse(o));return{entry:{item:SP(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 kp(e){let t=e??await PP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([DP(t.capabilities),...r.map(jP)]),a=[...n.entries,...i.flatMap(l=>l.entries)].sort((l,p)=>l.item.ref.localeCompare(p.item.ref)),o=[],s=new Set,c=[];for(let l of a)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),o.push(l));return{entries:o,diagnostics:[...n.diagnostics,...i.flatMap(l=>l.diagnostics),...c].sort((l,p)=>l.ref.localeCompare(p.ref))}}async function qo(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await kp(e.roots),n=new Map;for(let{item:o}of r.entries){if(e.kind!==void 0&&o.kind!==e.kind)continue;let s=[o.id,o.version,o.title,o.summary,o.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${o.kind}:${o.id}`,l=n.get(c);(l===void 0||NP(l.version,o.version)<0)&&n.set(c,o)}let i=[...n.values()].sort((o,s)=>o.ref.localeCompare(s.ref)),a=e.limit??50;return{query:t,total:i.length,items:i.slice(0,a),diagnostics:r.diagnostics}}async function Bo(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await kp(e.roots),n=r.entries.find(({item:a})=>a.ref===t),i=r.diagnostics.find(a=>a.ref===t);if(i?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&i!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function 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 i=n;if(typeof i.capabilityId!="string"||typeof i.version!="string"||!Array.isArray(i.integration?.packages))continue;let a=`capability:${i.capabilityId}@${i.version}`;for(let o of i.integration.packages){if(typeof o!="object"||o===null)continue;let s=o;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(a),t.set(c,l)}}return t}async function Oy(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 kp(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),i=r.entries.filter(({item:o})=>o.kind==="package").map(({release:o})=>{let s=o;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((o,s)=>Ny(o.ref,s.ref)),a={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...a,sourceDigest:h(Fo(a))})}function Sy(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Fo(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
-
`}var Ki={"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"},$y=TP($P),xP=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"]),Ly=(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,zo={"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 Ty(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Go(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await ie(N.join(e,"package.json")),a=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:o}=await import("./optional-runtime.js"),s=await zt(e),c=await ie(N.join(s.transactionRoot,s.lockfilePath)).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let d=Ci({release:t.release,packageJson:n??i}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:d,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:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=Jl({release:t.release,packageJson:n??i}),p=await o({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:a.registryConfigs,endpointBindings:a.endpointBindings});return{...a,lockResolution:p,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function xy(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return Jg({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:R.toISOString(),expiresAt:new Date(R.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let a=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),o=await ie(N.join(e,"package.json")),s=await ie(N.join(e,"project-capabilities.json")),c=await zt(e),l=await ie(N.join(c.transactionRoot,c.lockfilePath)),p=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(R=>R.packageName)??[])),d=i.packageAdoption.sources.filter(b=>!p.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?Kl({packageJson:o,remove:d}):Wl({packageJson:o,remove:d}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),R=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(_=>`${c.unitRelativeRoot}/${_.path}`)],I=await Promise.all(R.map(async _=>ie(N.join(c.transactionRoot,..._.split("/"))).then(S=>({path:_,exists:!0,digest:h(S)})).catch(S=>S.code==="ENOENT"?{path:_,exists:!1}:Promise.reject(S))));return{...Zm({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:l,endpointBindings:a.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),w=await y({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:a.registryConfigs,endpointBindings:a.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>ie(N.join(e,...b.split("/"))).then(R=>({path:b,exists:!0,digest:h(R)})).catch(R=>R.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(R))));return{...Xm({release:t.release,currentLock:r,projectManifest:s,packageJson:o,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:a.endpointBindings,observedAssets:A,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:a.registryConfigs,endpointBindings:a.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Le(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 Jo(e,t){return xP.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function VP(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 Wo(e){let t=JSON.parse(await ie(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 Re(Le(r.capabilityId,r.version)),i=await Fe(e).catch(()=>null),a=new Date,s=await(t.profile?.id==="standalone-npm-package"?Ri:t.profile?.id==="react-component-library"?Ei:t.profile?.id==="nextjs-full-stack-application"?Nn:t.profile?.id==="workspace-npm-package"?Pi:t.profile?.id==="workspace-node-application"?Ni:t.profile?.id==="workspace-web-application"?Oi:t.profile?.id==="workspace-expo-application"?Si:Ja)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+1800*1e3).toISOString()});return Bt({projectRoot:e,plan:s.plan,now:a.toISOString()})}async function Vy(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 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,y]=r.split("@");n=await zi(Jo(g,y))}let i=n?.profile.id??t.values.profile;if(i!=="typescript-library"&&i!=="standalone-npm-package"&&i!=="react-component-library"&&i!=="nextjs-full-stack-application"&&i!=="workspace-root")return v("Create requires a supported --profile.");let a=t.values.capability,o=i==="workspace-root"&&a==="foundation.workspace-root@1.0.0"||i==="standalone-npm-package"&&a==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(o?a:Ki[i]);if(n!==void 0&&s.split("@")[0]!==Ki[i].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&a!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&a!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),p={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,y=t.values.version,w=t.values.license,A=t.values["publish-access"],b=t.values.repository;if([g,y,w,A].some(R=>typeof R!="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":""}.`);p={name:String(g),version:String(y),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");p={name:t.values.name}}let d={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:p},capabilities:[{capabilityId:c,version:l}]};(i==="standalone-npm-package"||i==="react-component-library")&&fr(W(d),i),i==="nextjs-full-stack-application"&&Fr(W(d));let f=await so({projectRoot:t.positionals[0],manifest:d}),u=await Wo(f.projectRoot),m=ee(f.projectRoot);return{outputMode:B(e),human:`Project '${m}' initialized.
|
|
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 Ct("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import ym from"node:path";var or=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Yo(e){if(e.length===0||ym.posix.isAbsolute(e)||ym.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new or("Asset path must be a normalized project-relative POSIX path",e)}function UA(e,t){Yo(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(te).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new or("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new or("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new or("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Yo(s.path),t.has(s.path))throw new or("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 or("Proposed change paths must be unique",s.path);return r.add(s.path),UA(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),i={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},o=h(k(i)),a={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:i.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:o,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...a,planId:h(k(a))}}function Ho(e){return h(k(e))}var hm=nn(Dr(),1);var re={type:"string",pattern:Ot},vn={type:"string",pattern:te},$r={type:"string",minLength:1,maxLength:128},Cr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},qA={$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:vn,version:$r,integrity:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Cr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},BA={$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:vn,version:$r}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:te},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:vn,version:$r}}}}},zA={$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:vn,version:$r,integrity:re,appliedPlanId:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Cr,digest:re}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},GA={$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:vn,capabilityVersion:$r,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},JA={$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:re,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:vn,version:$r,integrity:re}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:re,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:re,desiredPackageJsonDigest:re,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:re}}]},desiredLockfileDigest:re,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:re}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:re,bindingDigest:re,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:$r,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:re,deliveryReceiptId:re,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:Cr,unitImporterId:Cr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:re}},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:Cr,preimageDigest:re,desiredDigest:re}}}},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:Cr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re,baseDigest:re,regionId:{type:"string",pattern:te},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},WA={$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:re,approvedPlanId:re,projectRootDigest:re,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:Cr,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:re,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:re}}]},desiredDigest:re,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:re}},jr=new hm.Ajv2020({allErrors:!0,strict:!0});jr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var wl={capabilityRelease:jr.compile(qA),projectManifest:jr.compile(BA),projectLock:jr.compile(zA),evidence:jr.compile(GA),changePlan:jr.compile(JA),transactionJournal:jr.compile(WA)},hl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Il(e,t,r){if(!t(r))throw new hl(e,t.errors??[]);return r}var W=e=>Il("projectManifest",wl.projectManifest,e);var ar=e=>Il("changePlan",wl.changePlan,e),wm=e=>Il("transactionJournal",wl.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Xo(e){if(e.currentLock!==void 0){let o=await Zo({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:o.plan.state==="conflicted"?"drifted":"adopted",operations:o.plan.operations}}let t=await bl(bn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await kl(t,o.path);a.exists&&(n+=1),a.digest===o.digest&&(i+=1),r.push({path:o.path,kind:"create",ownership:o.ownership,desiredDigest:o.ownership==="seed-file"&&a.digest?a.digest:o.digest,disposition:a.exists?o.ownership==="seed-file"||a.digest===o.digest?"noop":"conflict":"ready",...a.exists&&a.digest!==o.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:i===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function kl(e,t){let r=bn.join(e,...t.split("/"));try{let n=await KA(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:h(await vl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Tr(e){let t=await bl(bn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await kl(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=h(Ko(await vl(bn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{o=!1}if(!o)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:h(k(r))}}async function Zo(e){let t=W(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let i=(e.currentLock===void 0?void 0:Ge(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(i!==void 0&&(i.version!==e.release.release.version||i.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let o=await bl(bn.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await kl(o,d.path);if(a.push(p),p.exists&&i===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await vl(bn.join(o,...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:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as HA,lstat as ia,mkdir as kn,open as bm,readFile as oa,realpath as XA,rename as ra,rm as _l,unlink as Lr}from"node:fs/promises";import{constants as ea}from"node:fs";import{homedir as ZA}from"node:os";import K from"node:path";import{randomUUID as Rn}from"node:crypto";function YA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function pt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Im(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Im(e.context,e.operation,e.bytes??0,t,"failed",YA(r)),r}}async function Im(e,t,r,n,i,o){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:i,...o===void 0?{}:{errorCategory:o}},c=Object.freeze({...s,eventId:h(k(s))});try{await e.sink(c)}catch{}}var km=Symbol("prepared-transaction"),sr=new Map,QA=5*1024*1024,eR=25*1024*1024,vm=8,na=class extends Error{};async function Qo(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new na("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function vi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function Ft(e){try{return await ia(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function En(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function kt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function ut(e,t){let r=await bm(e,ea.O_RDONLY);try{await pt({context:En(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function bi(e,t,r=384,n){let i=await bm(e,ea.O_CREAT|ea.O_EXCL|ea.O_WRONLY,r);try{await pt({context:En(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await pt({context:En(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Al(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${Rn()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
+
`);await bi(i,o,384,r),await pt({context:En(r),operation:"rename",bytes:o.byteLength,run:()=>ra(i,e)}),await ut(n,r)}function Rl(e){return{...e,journalDigest:h(k(e))}}function tR(e){let t;try{t=wm(e)}catch{throw new C("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==h(k(n)))throw new C("JOURNAL_CORRUPTED","Transaction journal digest or shape is invalid");let i=new Set;for(let[o,a]of t.operations.entries()){if(a.index!==o||i.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 C("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");i.add(a.path)}return t}async function El(e){try{return tR(JSON.parse(await oa(e,"utf8")))}catch(t){throw t instanceof C?t:new C("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function cr(e,t,r){let{journalDigest:n,...i}=t,o=Rl(i);return await Al(e,o,r),o}async function aa(e){let t=K.resolve(e),r=K.parse(t);if(t===r.root||t===K.resolve(ZA()))throw new C("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await ia(t);if(!n.isDirectory()||n.isSymbolicLink())throw new C("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let i=await XA(t);if(i!==t)throw new C("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return i}function Pn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||K.posix.isAbsolute(t)||K.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new C("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=K.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${K.sep}`))throw new C("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function _n(e,t){let r=t.split("/"),n=e;for(let i of r){n=K.join(n,i);try{if((await ia(n)).isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(o){if(o.code==="ENOENT")return;throw o}}}async function An(e){try{let t=await ia(e);if(!t.isFile()||t.isSymbolicLink())throw new C("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await oa(e);return{bytes:r,digest:h(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function rR(e,t,r){ar(e);let{planId:n,...i}=e;if(Ho(i)!==e.planId)throw new C("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new C("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new C("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new C("PLAN_EXPIRED","Plan has expired")}function nR(e){let t=e.operations.filter(r=>r.disposition==="ready");for(let r of t)if(!((r.ownership==="owned-file"||r.ownership==="seed-file")&&["create","replace","remove"].includes(r.kind)||r.ownership==="managed-region"&&r.kind==="merge"&&r.regionId!==void 0))throw new C("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function Pl(e,t,r){try{await bi(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
16
|
+
`),384,r),await ut(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ta(e){try{let t=JSON.parse(await oa(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function iR(e,t,r){return{[km]:!0,projectRoot:e,plan:t,transactionId:r}}async function oR(e,t){rR(e.plan,e.approvedPlanId,e.now);let r=await aa(e.projectRoot),n=nR(e.plan),i=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Pn(r,u.path),await _n(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||h(m)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let o=vi(r,e.plan.planId);await kn(o.platformDirectory,{recursive:!0,mode:448}),await _n(r,".dyyto");let a=Rn();await Pl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:Rn()},kt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??QA,c=e.limits?.maxTransactionBytes??eR,l=0,d=[],p=[],f=!1;try{if(await Qo(t,"lock-created"),await Ft(o.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await kn(o.preimages,{recursive:!0,mode:448}),await kn(o.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let y=Pn(r,g.path);await _n(r,g.path);let w=await An(y);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let A={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=K.join(o.preimages,`${m}.bin`);await bi(b,w.bytes,384,kt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),p.push(m),await Qo(t,"preimage-written-pending-directory-sync",m),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await ut(o.preimages,kt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of p)await Qo(t,"preimage-persisted",m)}let u=Rl({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:h(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await Al(o.journal,u,kt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),sr.set(a,{desiredContents:e.desiredContents,journal:u}),await Qo(t,"journal-prepared"),iR(r,e.plan,a)}catch(u){if(u instanceof na)throw sr.delete(a),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await _l(o.transactionDirectory,{recursive:!0,force:!0}),await Lr(o.lock),await ut(o.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function lr(e){return oR(e)}async function aR(e,t,r,n){return cr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},kt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function sR(e,t,r,n,i,o){let a=Pn(e,n.path);await _n(e,n.path);let s=await An(a);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=K.join(t.quarantine,`${n.index}.bin`),f=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await pt({context:En(f),operation:"rename",run:()=>ra(a,p)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await kn(K.dirname(a),{recursive:!0}),await _n(e,n.path);let l=K.join(K.dirname(a),`.dyyto-${r}-${n.index}.tmp`),d=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await bi(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await o?.onCheckpoint?.("temporary-file-synced",n.index),await pt({context:En(d),operation:"rename",bytes:c.byteLength,run:()=>ra(l,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a)]}async function cR(e,t){let r=sr.get(e.transactionId);if(r===void 0||e[km]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=vi(e.projectRoot,e.plan.planId),i=await cr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let o=new Map;for(let a=0;a<i.operations.length;a+=vm){let s=i.operations.slice(a,a+vm),c=await Promise.allSettled(s.map(d=>sR(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)o.has(p)||o.set(p,kt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await ut(a,s);for(let a of i.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);i=await cr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await cr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Lr(n.lock),await ut(n.platformDirectory),sr.delete(e.transactionId),xr(i)}catch(o){throw i=await aR(n,i,o instanceof C?o.operationIndex:void 0,t?.durabilityTrace),sr.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function dr(e){return cR(e)}function xr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Ut(e){let t=await aa(e.projectRoot),r=vi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))return null;let n=await ta(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return xr(await El(r.journal))}async function lR(e,t,r){await kn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${Rn()}.tmp`);await bi(n,t,r&511),await ra(n,e),await HA(e,r&511),await ut(K.dirname(e))}async function _m(e){let t=await aa(e.projectRoot),r=vi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await ta(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await _l(r.transactionDirectory,{recursive:!0,force:!0}),await kn(r.transactionDirectory,{recursive:!0,mode:448});let o=Rl({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:h(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await Al(r.journal,o),await Lr(r.lock),await ut(r.platformDirectory),xr(o)}let n=await El(r.journal);if(n.state==="recovered")return xr(n);if(n.state==="applied"){for(let i of n.operations){let o=await An(Pn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Ft(r.lock)){let i=await ta(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Lr(r.lock),await ut(r.platformDirectory)}return sr.delete(n.transactionId),xr(n)}if(n.projectRootDigest!==h(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Ft(r.lock)){let i=await ta(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Pl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()});n=await cr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Pn(t,i.path);if(await _n(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Ft(s)){if((await An(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Lr(s),await ut(K.dirname(s))}}let a=await An(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Lr(o),await ut(K.dirname(o))}}else if(a?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,l=i.kind==="remove"&&a===void 0&&await Ft(s),d=e.approvedConflicts?.find(f=>f.path===i.path&&f.currentDigest===a?.digest);if(!c&&!l&&!d)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let p=await oa(K.join(r.preimages,`${i.index}.bin`));if(h(p)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await lR(o,p,i.before.mode),l&&await _l(s,{force:!0})}i.status="restored",n=await cr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await cr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Lr(r.lock),await ut(r.platformDirectory),sr.delete(n.transactionId),xr(n)}async function ki(e){return _m(e)}async function Nl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return _m(e)}async function Ol(e){let t=await aa(e.projectRoot),r=vi(t,e.planId),n=await El(r.journal);if(n.state==="recovered")return xr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await An(Pn(t,o.path)),s=o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest,c=o.before.kind==="absent"?a===void 0:a?.digest===o.before.digest;if(!s&&!c){i=o;break}}if(await Pl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()}),n=await cr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return sr.set(n.transactionId,{desiredContents:new Map,journal:n}),ki({projectRoot:t,planId:e.planId,now:e.now})}var Ae=class extends Error{code;constructor(t,r){super(r),this.code=t}},_i=class extends Error{};function Ei(e,t){let r=Ne.join(e,".dyyto"),n=Ne.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Ne.join(r,"evidence"),lockFile:Ne.join(r,"project-lock.json"),transactionLock:Ne.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Ne.join(n,"journal.json")}}async function pr(e){try{return await dR(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function qt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function da(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function pa(e,t){let r=await Am(e,ca.O_RDONLY);try{await pt({context:da(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function jl(e,t,r){let n=await Am(e,ca.O_CREAT|ca.O_EXCL|ca.O_WRONLY,384);try{await pt({context:da(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await pt({context:da(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ai(e,t,r){let n=Ne.dirname(e),i=Ne.join(n,`.tmp-${Dl()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
+
`);await jl(i,o,r),await pt({context:da(r),operation:"rename",bytes:o.byteLength,run:()=>pR(i,e)}),await pa(n,r)}function Cl(e){return{...e,journalDigest:h(k(e))}}async function sa(e,t,r){let{journalDigest:n,...i}=t,o=Cl(i);return await Ai(e,o,r),o}async function Rm(e){try{let t=JSON.parse(await Ri(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==h(k(n)))throw new Error("invalid journal");return t.evidence.forEach(Ii),Ge(t.lock),t}catch{throw new Ae("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function $l(e,t,r){try{await jl(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
18
|
+
`),r),await pa(Ne.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Ae("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Em(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:h(k(r))}}function Pm(e,t,r){let n=t.map(fm),i=e.verifiers.map(a=>a.id).sort(),o=n.map(a=>a.verifierId).sort();if(i.length!==o.length||i.some((a,s)=>a!==o[s]))throw new Ae("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 Ae("VERIFICATION_FAILED",`Verifier ${a.verifierId} did not pass`);if(a.projectStateDigest!==r)throw new Ae("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function uR(e,t,r){let n=Ne.join(e,`${t.evidenceId}.json`);if(await pr(n)){let i=Ii(JSON.parse(await Ri(n,"utf8")));if(k(i)!==k(t))throw new Ae("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await jl(n,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
19
|
+
`),r),await pa(e,r)}async function fR(e,t,r,n){if(await pr(e)){let i=Ge(JSON.parse(await Ri(e,"utf8")));if(k(i)===k(t))return;if(r===void 0||h(k(i))!==r)throw new Ae("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await Ai(e,t,n);return}await Ai(e,t,n)}async function la(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new _i("Simulated metadata crash",{cause:r})}}async function Tl(e,t,r){let n=Ei(e,t.planId),i=t;try{for(let o of i.evidence)await uR(n.evidenceDirectory,o,qt(r?.durabilityTrace,"evidence",`${i.transactionId}:evidence`));return i=await sa(n.journal,{...i,state:"evidence-written",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:evidence-written`)),await la(r,"evidence-written"),await fR(n.lockFile,i.lock,i.previousLockDigest,qt(r?.durabilityTrace,"lock",`${i.transactionId}:project-lock`)),i=await sa(n.journal,{...i,state:"lock-written",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:lock-written`)),await la(r,"lock-written"),i=await sa(n.journal,{...i,state:"committed",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:committed`)),await la(r,"committed"),await Sl(n.transactionLock),await pa(n.platformDirectory,qt(r?.durabilityTrace,"directory",`${i.transactionId}:unlock`)),i.lock}catch(o){if(o instanceof _i)throw new Ae("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await sa(n.journal,{...i,state:"recovery-required",updatedAt:new Date().toISOString()},qt(r?.durabilityTrace,"journal",`${i.transactionId}:recovery-required`))}catch{}throw o}}async function mR(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Vr(Ne.resolve(e.transactionRoot));if((await Ut({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ae("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i;try{i=await Tr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new Ae("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let a=Pm(e.release,e.verificationResults,i.projectStateDigest).map(m=>Em(e.release,m)),s={capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,consumerProfile:e.release.consumerProfile,appliedPlanId:e.plan.planId,projectStateDigest:i.projectStateDigest,assets:i.assets,evidenceIds: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};Ge(d);let p=Ei(t,e.plan.planId);if(await Nn(p.platformDirectory,{recursive:!0,mode:448}),await Nn(p.evidenceDirectory,{recursive:!0,mode:448}),await pr(p.lockFile)&&e.previousLock===void 0){let m=Ge(JSON.parse(await Ri(p.lockFile,"utf8")));if(k(m)===k(d))return m;throw new Ae("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=Dl();if(await $l(p.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},qt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await pr(p.transactionDirectory))throw await Sl(p.transactionLock),new Ae("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await Nn(p.transactionDirectory,{recursive:!0,mode:448});let u=Cl({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:h(k(Ge(e.previousLock)))}});await Ai(p.journal,u,qt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await la(e.hooks,"journal-prepared")}catch(m){throw m instanceof _i?new Ae("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return Tl(t,u,e.hooks)}async function Ll(e){return mR(e)}async function xl(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Vr(Ne.resolve(e.transactionRoot));if((await Ut({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ae("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i=e.previousLock.capabilities.find(y=>y.capabilityId===e.release.capabilityId&&y.version===e.release.version);if(i===void 0)throw new Ae("PROJECT_STATE_CHANGED","The removed capability is not present in the project lock");let o=e.previousLock.capabilities.filter(y=>y!==i),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(y=>y.desiredDigest===void 0||!y.path.startsWith(a)?[]:[[y.path.slice(a.length),y.desiredDigest]])),c=e.expectedAssets??o.flatMap(y=>y.assets).map(y=>({...y,digest:s.get(y.path)??y.digest})),l=await Tr({projectRoot:t,expectedAssets:c}),p=Pm(e.release,e.verificationResults,l.projectStateDigest).map(y=>Em(e.release,y)),f={schemaVersion:o.some(y=>y.packageAdoption!==void 0)?2:1,capabilities:o};Ge(f);let u=Ei(t,e.plan.planId);await Nn(u.platformDirectory,{recursive:!0,mode:448}),await Nn(u.evidenceDirectory,{recursive:!0,mode:448});let m=Dl();await $l(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await Nn(u.transactionDirectory,{recursive:!1,mode:448});let g=Cl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:p,lock:f,previousLockDigest:h(k(Ge(e.previousLock)))});return await Ai(u.journal,g),Tl(t,g)}async function Vl(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=Ei(t,e.planId),n=await Rm(r.journal);return n.state==="committed"?(await pr(r.transactionLock)&&await Sl(r.transactionLock),n.lock):(await pr(r.transactionLock)||await $l(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),Tl(t,n))}async function Ml(e){let t=await Vr(Ne.resolve(e.projectRoot)),r=Ei(t,e.planId);if(!await pr(r.journal))return null;let n=await Rm(r.journal);return{planId:n.planId,state:n.state}}async function Fe(e){let t=await Vr(Ne.resolve(e)),r=Ne.join(t,".dyyto","project-lock.json");return await pr(r)?Ge(JSON.parse(await Ri(r,"utf8"))):null}import{lstat as Sm,readFile as Nm,realpath as Om}from"node:fs/promises";import ur from"node:path";var _t=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Dm(e){return h(k(e))}async function gR(e,t){let r=ur.join(e,"assets",...t.split("/"));try{return await Sm(r),r}catch(n){if(n.code!=="ENOENT"||ur.posix.basename(t)!==".gitignore")throw n}return ur.join(e,"assets",...ur.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Re(e){let t=await Om(ur.resolve(e)),r;try{r=um(JSON.parse(await Nm(ur.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof _t?c:new _t("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...i}=r;if(Dm(i)!==n)throw new _t("RELEASE_INTEGRITY_MISMATCH","Capability release integrity does not match metadata");let o=new Map,a=new Set,s="";for(let c of r.assets){try{Yo(c.path)}catch{throw new _t("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 _t("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 gR(t,c.path),d=await Om(l),p=ur.join(t,"assets");if(!d.startsWith(`${p}${ur.sep}`))throw new _t("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await Sm(l);if(!f.isFile()||f.isSymbolicLink())throw new _t("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await Nm(l);if(h(u)!==c.digest)throw new _t("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);o.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 _t("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:o}}import{link as yR,open as Cm,lstat as $t,mkdir as $m,readFile as Fl,readdir as ua,realpath as Tt,rm as hR,unlink as wR}from"node:fs/promises";import ce from"node:path";var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},IR={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function vR(){return new TextEncoder().encode(`${JSON.stringify(IR,null,2)}
|
|
20
|
+
`)}async function bR(e,t=!1){let r=ce.resolve(e),n=await $t(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new Ie("TARGET_INVALID","Workspace target must be a real existing directory");let i=await Tt(r);for(let o of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let a=await $t(ce.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new Ie("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${o}`)}if(await $t(ce.join(i,"project-capabilities.json")).catch(()=>null))throw new Ie("MANIFEST_EXISTS","Project manifest already exists");return i}async function kR(e,t){let r=ce.resolve(e),n=await $t(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target must be a real existing directory");let i=await Tt(r);for(let o of t){let a=await $t(ce.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new Ie("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${o}`)}if(await $t(ce.join(i,"project-capabilities.json")).catch(()=>null))throw new Ie("MANIFEST_EXISTS","Project manifest already exists");return i}async function Tm(e){let t=await kR(e.projectRoot,e.requiredMarkers??["package.json"]),r=W(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
|
|
21
|
+
`),i=r.capabilities[0],o=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:h(n)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:o,desiredContents:new Map([["project-capabilities.json",n]])}}async function Lm(e){let t=await bR(e.projectRoot,e.documentationOnly===!0),r=vR(),n=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:"foundation.workspace-root",version:"1.2.0",integrity:e.capabilityIntegrity,assets:[],verifiers:[]},changes:[{path:"project-capabilities.json",kind:"create",ownership:"owned-file",desiredDigest:h(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 _R(e){let t=await Cm(e,"r");try{await t.sync()}finally{await t.close()}}async function xm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await Cm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await yR(r,e),await wR(r),await _R(ce.dirname(e))}catch(i){throw await hR(r,{force:!0}),i}}async function AR(e){let t=ce.resolve(e);try{let r=await $t(t);if(!r.isDirectory()||r.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target must be a real directory");if((await ua(t)).length!==0)throw new Ie("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=ce.dirname(t),i=await $t(n).catch(()=>null);if(i===null||!i.isDirectory()||i.isSymbolicLink())throw new Ie("TARGET_INVALID","Project target parent must be a real directory");await $m(t)}return Tt(t)}async function fa(e){let t=W(e.manifest),r=await AR(e.projectRoot),n=ce.join(r,"project-capabilities.json");try{await xm(n,`${JSON.stringify(t,null,2)}
|
|
22
|
+
`)}catch(i){throw i.code==="EEXIST"?new Ie("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function Pi(e){let{planId:t,...r}=e;if(Ho(r)!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function RR(e){let t=await Tt(ce.resolve(e.projectRoot)),r=ar(e.plan);Pi(r);let n=ce.join(t,".dyyto","plans");await $m(n,{recursive:!0,mode:448});let i=ce.join(n,`${r.planId}.json`);try{await xm(i,`${k(r)}
|
|
23
|
+
`)}catch(o){if(o.code!=="EEXIST")throw o;let a=ar(JSON.parse(await Fl(i,"utf8")));if(Pi(a),k(a)!==k(r))throw new Ie("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function jm(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Bt(e){let t=await Tt(ce.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Tt(ce.resolve(e.transactionRoot)),n=ar(e.plan);Pi(n);let i=ce.join(t,".dyyto","plans"),o=await ua(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=ar(JSON.parse(await Fl(ce.join(i,s),"utf8")));Pi(c),!await $t(ce.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&jm(c)===jm(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await RR({projectRoot:t,plan:n}),n)}async function Mr(e){let t=await Tt(ce.resolve(e.projectRoot)),r=ce.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=ar(JSON.parse(await Fl(r,"utf8")));if(Pi(n),n.planId!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new Ie("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ma(e,t=[],r,n=[]){let i=await Tt(ce.resolve(e)),o=r===void 0?i:await Tt(ce.resolve(r)),a=ce.join(i,".dyyto","plans"),s=await ua(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 Mr({projectRoot:i,planId:p}),u=await Ut({projectRoot:o,planId:p}),m=await $t(ce.join(i,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=ER(c);if(l===void 0)throw new Ie("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function ER(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 Ul(e){let t=await Tt(ce.resolve(e)),r=ce.join(t,".dyyto","plans"),n=await ua(r).catch(o=>{if(o.code==="ENOENT")return[];throw o}),i=[];for(let o of n.filter(a=>a.endsWith(".json")).sort())i.push(await Mr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as Vm,readFile as PR,readdir as NR,realpath as OR}from"node:fs/promises";import Ce from"node:path";import{homedir as Mm}from"node:os";var ft=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Fm(e){let t=Ce.resolve(e),r=await Vm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ce.parse(t).root||t===Ce.resolve(Mm()))throw new ft("WORKSPACE_PATH_UNSAFE");let n=await OR(t);if(n!==t)throw new ft("WORKSPACE_PATH_UNSAFE");return n}async function Fr(e){let t=await Vm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_PATH_UNSAFE");return PR(e)}}function Um(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let o=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(o){r.push(o[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new ft("WORKSPACE_MANIFEST_INVALID");return r}function SR(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 On(e){let t=await Fm(e),r=await Fr(Ce.join(t,"pnpm-workspace.yaml"));if(!r)throw new ft("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Um(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await NR(Ce.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&o.push(`${a}/${c.name}`)}else if(!i.includes("*"))o.push(i);else throw new ft("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Fr(Ce.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>Object.freeze({relativeRoot:i,bytes:o})))}async function zt(e){let t=await Fm(e);if(await Fr(Ce.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Fr(Ce.join(t,"pnpm-workspace.yaml")))throw new ft("WORKSPACE_NESTED_UNSUPPORTED");let r=Ce.dirname(t),n;for(;r!==Ce.parse(r).root&&r!==Ce.resolve(Mm());){let o=await Fr(Ce.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new ft("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Ce.dirname(r)}if(!n||!await Fr(Ce.join(n.root,"pnpm-lock.yaml"))||!await Fr(Ce.join(n.root,"project-capabilities.json")))throw new ft("WORKSPACE_OWNER_MISSING");let i=Ce.relative(n.root,t).split(Ce.sep).join("/");if(!i||i.startsWith("../")||Um(n.manifest.toString("utf8")).filter(o=>SR(o,i)).length!==1)throw new ft("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:h(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var qm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function ql(e){let t=await Ul(e);for(let r of t){let n=await Ut({projectRoot:e,planId:r.planId});if(n!==null&&qm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Ml({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 DR(e){let t=await ql(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ki({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Vl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Bm(e){let t=await DR(e);if(t.kind!=="none")return t;let r=await zt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Ul(e.projectRoot)).map(c=>c.planId)),i=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!i)return t;let o;try{let c=JSON.parse(i);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;o=c.planId}catch{return t}let a=await Ut({projectRoot:r.transactionRoot,planId:o});if(!a||!qm.has(a.state))return t;let s=await ki({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as jR,readFile as Bl,realpath as zm}from"node:fs/promises";import Ni from"node:path";var CR=new Set(["MIT","Apache-2.0","UNLICENSED"]),$R=new Set(["public","restricted","private"]),TR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,LR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function xR(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 Ur(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 fr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),i=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,o=i==="1.1.0"||i==="1.2.0"||t==="react-component-library",a=o?["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||!TR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!LR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!CR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!$R.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,...o?{repository:xR(p)}:{}}}function zl(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
+
`)}function Gl(e){return Buffer.from(`${JSON.stringify({name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,repository:{type:"git",url:e.repository},type:"module",sideEffects:["**/*.css"],files:["dist"],main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./style.css":"./dist/style.css"},engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"vite build && tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run","verify:bundle":"vite build && tsc -p tsconfig.build.json && node tooling/verify-bundle.mjs",check:"corepack pnpm typecheck && corepack pnpm test && corepack pnpm verify:bundle",prepack:"corepack pnpm check"},peerDependencies:{react:">=19.0.0 <20","react-dom":">=19.0.0 <20"},devDependencies:{"@testing-library/dom":"10.4.1","@testing-library/jest-dom":"6.9.1","@testing-library/react":"16.3.2","@types/node":"24.10.13","@types/react":"19.2.18","@types/react-dom":"19.2.4","@vitejs/plugin-react":"6.0.5",jsdom:"30.0.1",react:"19.2.8","react-dom":"19.2.8",typescript:"6.0.3",vite:"8.2.1",vitest:"4.1.10"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}}},null,2)}
|
|
25
|
+
`)}function VR(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 MR(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 FR(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 UR(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 Gm(e,t){let r=Ni.join(e,...t.split("/"));try{let n=await jR(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:h(await Bl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function qr(e,t){let r=W(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?MR(Ur(r).name):t==="workspace-expo-application"?UR(Ur(r).name):t==="nextjs-full-stack-application"?FR(Ur(r).name):VR(Ur(r).name):t==="react-component-library"?Gl(fr(r,t)):zl(fr(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:Ge(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 zm(Ni.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 Gm(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 Bl(Ni.join(c,...u.path.split("/"))));let y=h(s.get(u.path));l.push(g),d.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:y})}let p={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:d.map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},f=Pe({action:"adopt",capability:p,changes:d,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:f,desiredContents:s}}function Oi(e){return qr(e,"standalone-npm-package")}function Si(e){return qr(e,"react-component-library")}function Sn(e){return qr(e,"nextjs-full-stack-application")}async function Jl(e){let t=W(e.manifest);if(t.profile?.id!=="nextjs-full-stack-application"||e.release.release.consumerProfile!=="nextjs-full-stack-application"||e.release.release.assets.some(u=>u.ownership!=="seed-file"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Historical adoption requires a seed-only Next.js Profile Release");let r=W({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await Sn({...e,manifest:r}),i=await zm(Ni.resolve(e.projectRoot)),o="project-capabilities.json",a=await Bl(Ni.join(i,o)),s=Buffer.from(`${JSON.stringify(r,null,2)}
|
|
30
|
+
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let l=await Promise.all(c.map(u=>Gm(i,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!==o).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,[o,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 Di(e){return qr(e,"workspace-npm-package")}function ji(e){return qr(e,"workspace-node-application")}function Ci(e){return qr(e,"workspace-web-application")}function $i(e){return qr(e,"workspace-expo-application")}async function Jm(e){if(e.currentLock!==void 0){let n=await Oi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Oi({...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 Wm(e){if(e.currentLock!==void 0){let n=await Si(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Si({...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 Sn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Sn({...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 Ym(e){if(e.currentLock!==void 0){let n=await Di(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Di({...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 Hm(e){if(e.currentLock!==void 0){let n=await ji(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ji({...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 Xm(e){if(e.currentLock!==void 0){let n=await Ci(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ci({...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 Zm(e){if(e.currentLock!==void 0){let n=await $i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $i({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as dE,readFile as Da,realpath as pE}from"node:fs/promises";import Fi from"node:path";var At=class extends Error{code;constructor(t,r){super(r),this.code=t}},Br=/^sha256:[a-f0-9]{64}$/,qR=/^sha512-[A-Za-z0-9+/]{86}==$/,BR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,eg=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,zR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Qm=/^[a-z][a-z0-9._:-]{2,127}$/;function zr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function GR(e){if(!zr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!eg.test(e.registryId)||!Qm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,i)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==i)||!zr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!zr(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&&!Qm.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 Wl(e){if(!GR(e))throw new At("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:h(k(t))})}function Ti(e){let t=e;if(typeof t!="object"||t===null||!zr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Br.test(t.revision))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Wl(i).revision!==n)throw new At("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function JR(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 Kl(e,t){let r=Ti(t);if(!zr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!JR(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 At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function tg(e,t){let r=e;if(typeof r!="object"||r===null||!zr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Br.test(r.bindingDigest))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Kl(o,t).bindingDigest!==i)throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function WR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return zr(e,t)&&eg.test(e.registryId)&&Br.test(e.registryConfigRevision)&&zR.test(e.packageName)&&BR.test(e.version)&&qR.test(e.integrity)&&Br.test(e.tarballDigest)&&Br.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&&Br.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Yl(e){if(!WR(e))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function rg(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Br.test(t.receiptId))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Yl(i).receiptId!==n)throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Oe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Li(e){return h(k(e))}var Hl=/^sha256:[a-f0-9]{64}$/u,KR=/^sha512-[A-Za-z0-9+/]{86}==$/u,YR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ga=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,HR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,XR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ya(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function ng(e){return h(k(e))}function ig(e){let t=Buffer.from(e.desiredLockfile),r=h(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},i={...n,jobId:ng(n),desiredLockfile:t};og(i);let o={...i,importerFacts:Object.freeze(i.importerFacts.map(a=>Object.freeze({...a}))),packageFacts:Object.freeze(i.packageFacts.map(a=>Object.freeze({...a}))),cacheObservation:Object.freeze({...i.cacheObservation})};return Object.freeze(o)}function og(e){if(!ya(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 Oe("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(i=>Hl.test(i)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!ga.test(e.workerReleaseId)||!ga.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||h(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 Oe("RESOLUTION_EVIDENCE_INVALID");if(!ya(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!ya(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ga.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>Hl.test(o))))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!ya(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!XR.test(i.identity)||!HR.test(i.packageName)||!ga.test(i.registryId)||!YR.test(i.version)||!KR.test(i.integrity)||typeof i.managed!="boolean"||!Hl.test(i.edgesDigest)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(ng(n)!==e.jobId)throw new Oe("RESOLUTION_EVIDENCE_INVALID")}function Xl(e,t){if(og(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Oe("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(o=>o.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(o=>o.managed&&o.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Oe("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:i,expiresAt:o})=>({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:o})),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 ha=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,ag=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Zl(e){return Array.isArray(e)?`[${e.map(Zl).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)}:${Zl(r)}`).join(",")}}`:JSON.stringify(e)}function Gt(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 mt(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 wa(e){for(let t of[mt(e.dependencies),mt(e.devDependencies),mt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!ha.test(n)||ag.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var ZR=["dependencies","devDependencies","optionalDependencies"];function va(e,t){let r=[];for(let n of ZR)for(let[i,o]of Object.entries(mt(e[n]))){if(t.has(i)){if(!ha.test(o))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(o))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:i,specifier:o})}return r.sort((n,i)=>`${n.section}:${n.packageName}`.localeCompare(`${i.section}:${i.packageName}`))}function Ql(e){let t=Gt(e.packageJson);wa(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="runtime").map(({packageName:o,version:a})=>[o,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="development").map(({packageName:o,version:a})=>[o,a])),i={...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
31
|
+
`)}function xi(e){let t=Gt(e.packageJson);va(t,new Set(e.release.packageSources.map(i=>i.packageName)));let r=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="runtime").map(({packageName:i,version:o})=>[i,o])),n=Object.fromEntries(e.release.packageSources.filter(({usage:i})=>i==="development").map(({packageName:i,version:o})=>[i,o]));return Buffer.from(`${JSON.stringify({...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}},null,2)}
|
|
32
|
+
`)}function ed(e){let t=Gt(e.packageJson);wa(t);let r=mt(t.dependencies),n=mt(t.devDependencies);for(let o of e.remove)delete(o.usage==="runtime"?r:n)[o.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
|
|
33
|
+
`)}function td(e){let t=Gt(e.packageJson);va(t,new Set(e.remove.map(o=>o.packageName)));let r=mt(t.dependencies),n=mt(t.devDependencies);for(let o of e.remove)delete(o.usage==="runtime"?r:n)[o.packageName];let i={...t};return Object.keys(r).length===0?delete i.dependencies:i.dependencies=r,Object.keys(n).length===0?delete i.devDependencies:i.devDependencies=n,Buffer.from(`${JSON.stringify(i,null,2)}
|
|
34
|
+
`)}function sg(e){let t=e.currentLock.capabilities.find(p=>p.capabilityId===e.release.capabilityId&&p.version===e.release.version);if(!t?.packageAdoption)throw new H("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(p=>p!==t).flatMap(p=>p.packageAdoption?.sources.map(f=>f.packageName)??[])),n=t.packageAdoption.sources.filter(p=>!r.has(p.packageName)),i=ed({packageJson:e.packageJson,remove:n}),o=Gt(e.projectManifest),a=Array.isArray(o.capabilities)?o.capabilities:[],s=Buffer.from(`${JSON.stringify({...o,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:h(e.projectManifest),desiredDigest:h(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:h(e.desiredLockfile)},...t.assets.map(p=>({path:p.path,kind:"remove",ownership:p.ownership??"owned-file",baseDigest:p.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(p=>({path:p.path,ownership:p.ownership??"owned-file",desiredDigest:p.digest})),verifiers:e.release.verifiers.map(p=>({id:p.id,kind:"file-digest"}))},changes:l,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:h(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(p=>({...p})),endpointBindings:c.map(({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})=>({registryId:p,registryConfigRevision:f,bindingDigest:u,expiresAt:m})),sources:n.map(p=>({...p})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}}}),desiredContents:new Map([["project-capabilities.json",s],["package.json",i],["pnpm-lock.yaml",e.desiredLockfile]]),removedSources:n}}function cg(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(y=>y.packageName)??[])),n=t.packageAdoption.sources.filter(g=>!r.has(g.packageName)),i=td({packageJson:e.packageJson,remove:n}),o=e.remainingSources.map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A})),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=Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(e.currentLockfile),desiredPackageJsonDigest:h(i),sources:o,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(i),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y})),managedSources:o,now:e.generatedAt}),c=Gt(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(y=>y.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:h(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:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:va(Gt(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function ba(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",i=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!i)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let o=Gt(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Gt(a),c="topology"in e,l=c?va(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||wa(o),c||wa(s);let d=new Map(e.registryConfigs.map(I=>{let _=Ti(I);return[_.registryId,_]})),p=new Map(e.endpointBindings.map(I=>{let _=d.get(I.registryId);if(_===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let S=tg(I,_);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let _=rg(I);return[_.receiptId,_]})),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?Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(xi({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(xi({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_})),managedSources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${y.packages.length}/${e.release.packageSources.length}`)});let w=new Map(y.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let _=d.get(I.registryId),S=p.get(I.registryId),T=f.get(I.deliveryReceiptId),ue=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(T!==void 0&&(t==="production"&&T.provenance==="development-readback-verified"||t==="development"&&T.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!_||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||_.status!=="enabled"||!_.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!T||!ue||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(T.registryId!==I.registryId||T.registryConfigRevision!==_.revision||T.packageName!==I.packageName||T.version!==I.version||T.integrity!==I.integrity||T.tarballDigest!==I.tarballDigest||ue.integrity!==I.integrity||ue.tarballDigest!==I.tarballDigest||ue.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!ha.test(I.version)||ue.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Z]of Object.entries(ue.dependencies)){let se=m.get(P);if(P.startsWith("@aipt/")&&(!se||se.version!==Z||!ha.test(Z)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Z}`)});if(ag.test(Z))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?xi({release:e.release,packageJson:a}):Ql({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:h(e.packageJson),desiredPackageJsonDigest:h(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,revision:_})=>Object.freeze({registryId:I,revision:_})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:T})=>Object.freeze({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:T})).sort((I,_)=>I.registryId.localeCompare(_.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})))}:{}},R=h(Zl(b));return Object.freeze({...b,planId:R,desiredPackageJson:A,desiredLockfile:y.lockfile})}function ka(e){return ba(e,"production")}function _a(e){return ba(e,"development")}function Aa(e){return ba(e,"production")}function Ra(e){return ba(e,"development")}function QR(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",i=e.operations.filter(({path:d})=>d===r),o=e.operations.filter(({path:d})=>d===n);if(i.length!==1||o.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let a=i[0],s=o[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 lg(e){QR(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await lr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await dr(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 Ol({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 fg=nn(Dr(),1);var mg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],gg="^[a-z0-9][a-z0-9._-]{0,127}$",rd="^[A-Z][A-Z0-9_]{0,127}$",dg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",eE={$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:gg},profile:{enum:mg}}},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:rd},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:rd},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:dg}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:rd},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:dg}}}]}}}},pg=new fg.Ajv2020({allErrors:!0,strict:!0}).compile(eE),ug=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,tE=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,et=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function yg(e){let t=W(e),r=t.profile?.id;if(!mg.includes(r))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(gg,"u").test(i))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function Ea(e,t){if(!pg(e))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",pg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new et("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set;for(let o of r.bindings){if(n.has(o.name))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${o.name}`);if(n.add(o.name),o.kind==="value"){if(ug.test(o.name))throw new et("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${o.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!o.name.endsWith("_FILE"))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${o.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let a=o.kind==="secret-file"?"secrets/":"certs/";if(o.kind==="certificate-file"&&(ug.test(o.name)||tE.test(o.name)))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`${o.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=o.file.split("/");if(!o.file.startsWith(a)||s.some(c=>c===""||c==="."||c===".."))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`${o.name} \u5FC5\u987B\u4F4D\u4E8E ${a} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(i.has(o.file))throw new et("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${o.file}`);i.add(o.file)}if(t!==void 0){let o=yg(t);if(r.application.id!==o.id||r.application.profile!==o.profile)throw new et("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Pa(e){let t=yg(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 Ea(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
+
`)}import{createHash as rE,X509Certificate as nE}from"node:crypto";import{lstat as Vi,readFile as gt,realpath as Na}from"node:fs/promises";import X from"node:path";var he=class extends Error{code;constructor(t,r){super(r),this.code=t}};function wg(e){let t=W(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function Sa(e){let t=wg(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 Ig(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=wg(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function iE(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(!i||i.startsWith("#"))continue;let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i),a=o?.[1],s=o?.[2];if(!a||s===void 0||a in t)throw new he("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 Oa(e){return`sha256:${rE("sha256").update(e).digest("hex")}`}function oE(e){return e?e.length<=4?"\u2022\u2022\u2022\u2022":`${e.slice(0,2)}\u2022\u2022\u2022\u2022${e.slice(-2)}`:""}async function hg(e,t,r){let n=await Vi(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new he("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}var aE=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),sE=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function nd({projectRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await Vi(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[o,a]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(n)]),s=JSON.parse(o.toString("utf8")),c=Ea(JSON.parse(a.toString("utf8")),s),l=await gt(X.join(r,".dyyto/application-config-binding.json")).catch(p=>{if(p.code==="ENOENT")return null;throw p});if(!l)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Oa(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let d=Ig(JSON.parse(l.toString("utf8")),s);try{let p=await Mi({projectRoot:r,environment:t}),f=p.entries.filter(m=>m.required&&!m.configured).map(m=>m.name),u=f.length?"incomplete":"ready";return{schemaVersion:1,...p,state:u,needsConfigInit:u==="incomplete",missingBindings:f}}catch(p){let f=p instanceof he?p.code:p.code??"APPLICATION_CONFIG_UNKNOWN",u=sE.has(f)?"missing":aE.has(f)?"incomplete":"invalid",m=await bg(r,d.application.id,t).catch(()=>{});return{schemaVersion:1,application:d.application.id,environment:"local",configDirectory:m??null,contractDigest:Oa(a),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:f,entries:[]}}}catch(o){let a=o instanceof he||o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_INVALID";return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:a,entries:[]}}}var cE=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function vg({workspaceRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e));if(W(JSON.parse(await gt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new he("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await On(r),o=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),l=X.join(c,"project-capabilities.json"),d=await gt(l,"utf8").catch(()=>null),p=await Vi(X.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),f="";if(d!==null)try{f=W(JSON.parse(d)).profile?.id??""}catch{p&&(f="invalid-application")}if(!cE.has(f)&&!p)continue;let u=await nd({projectRoot:c,environment:t}).catch(m=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:m instanceof Error&&"code"in m?String(m.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));o.push({unit:s.relativeRoot,readiness:u})}let a=s=>o.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:o.length,ready:a("ready"),missing:a("missing"),incomplete:a("incomplete"),invalid:a("invalid"),notDeclared:a("not-declared"),needsConfigInit:o.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(o.map(s=>Object.freeze(s)))})}async function lE(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await gt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let o=X.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(o))throw new he("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),o,r)}}catch(i){if(i instanceof he)throw i}n=X.dirname(n)}return X.join(t,r)}async function bg(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let o=await Vi(n).catch(()=>null);if(!o?.isFile()||o.isSymbolicLink()||o.nlink!==1||(o.mode&511&-385)!==0)throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await gt(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new he("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}${X.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let i=r.APP_CONFIG_DIR;if(i){if(!X.isAbsolute(i))throw new he("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await lE(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Mi({projectRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e)),[n,i,o]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(X.join(r,".dyyto/application-config-binding.json")),gt(X.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=Ig(JSON.parse(i.toString("utf8")),a),c=Ea(JSON.parse(o.toString("utf8")),a),l=await bg(r,s.application.id,t);if(!l||!X.isAbsolute(l))throw new he("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Na(l),p=await Vi(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new he("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=X.relative(r,d);if(f===""||!f.startsWith("..")&&!X.isAbsolute(f))throw new he("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(d,".env");await hg(u,"\u5E94\u7528.env",c.bindings.length===0);let m=iE(await gt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let T=m[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:T.length>0,source:"APP_CONFIG_DIR",display:oE(T)});continue}if(m[y.name]!==y.file)throw new he("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(d,y.file),b=X.relative(d,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new he("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await hg(A,y.name,!y.required),I=await gt(A),_=I.length>0,S;if(_&&y.kind==="certificate-file")try{let T=new nE(I);S={subject:T.subject,issuer:T.issuer,validFrom:T.validFrom,validTo:T.validTo}}catch{throw new he("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,kind:y.kind,required:y.required,configured:_,source:"APP_CONFIG_DIR",display:_?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",..._?{fingerprint:Oa(I),updatedAt:R.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Oa(o),entries:g}}var Gr="project-capabilities.json",kg=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function uE(e,t){if(!kg.test(e)||!kg.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let i=0;i<3;i+=1)if(r[i]!==n[i])return r[i]-n[i];return 0}async function fE(e,t){let r=Fi.join(e,...t.split("/"));try{let n=await dE(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:h(await Da(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function ja(e,t){let r=W(e),n=t.release,i=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return zl(fr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Gl(fr(r,n.consumerProfile));let o=t.contents.get("package.json");if(o===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return o}async function id(e){let t=W(e.manifest),r=Ge(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,o=t.capabilities.find(P=>P.capabilityId===n.capabilityId),a=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=i.capabilityId!==n.capabilityId&&i.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(o===void 0||a===void 0||o.capabilityId!==a.capabilityId||o.version!==a.version||n.capabilityId!==a.capabilityId||n.version!==a.version||n.integrity!==a.integrity||!s&&i.capabilityId!==a.capabilityId||i.consumerProfile!==a.consumerProfile||n.consumerProfile!==i.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&uE(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await pE(Fi.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},d=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&d.set("package.json",ja(l,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,Pa(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,Sa(l));let p,f=c,u="package.json",m;if(i.schemaVersion===2&&i.availability.maturity!=="withdrawn"&&(i.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let Z=await Da(Fi.join(c,"package.json")),se=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=se.transactionRoot,u=se.mode==="pnpm-shared-lockfile"?`${se.unitRelativeRoot}/package.json`:"package.json",m=se.lockfilePath;let ot={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Z,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ht=se.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?Ra:Aa)({...ot,topology:{mode:se.mode,unitRelativeRoot:se.unitRelativeRoot,unitImporterId:se.unitImporterId,lockfilePath:se.lockfilePath,workspaceManifestPath:se.workspaceManifestPath,workspaceManifestDigest:se.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?_a:ka)({...ot,lockResolution:e.packageSource.lockResolution});p=Ia(ht),d.set("package.json",ht.desiredPackageJson),d.set(m,ht.desiredLockfile)}catch(ht){throw ht instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ht.code):ht}}let g=new Map(a.assets.filter(P=>P.path!==Gr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==Gr).map(P=>{let Z=d.get(P.path);if(Z===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(Z)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),A=[],b=[];for(let P of w){let Z=await fE(c,P);A.push(Z);let se=g.get(P),ot=y.get(P),ht=i.assets.find(Yh=>Yh.path===P);if(ht?.ownership==="seed-file"&&Z.exists&&Z.digest!==void 0){y.set(P,Z.digest),d.set(P,await Da(Fi.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Z.digest,desiredDigest:Z.digest});continue}if(se===void 0){if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ht?.ownership??"owned-file",desiredDigest:ot})}else ot===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:se}):b.push({path:P,kind:"replace",ownership:ht?.ownership??"owned-file",baseDigest:se,desiredDigest:ot})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let Z=d.get(m);A.push({path:m,exists:!0,digest:h(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(Z)})}let R=await Da(Fi.join(c,Gr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
+
`);A.push({path:Gr,exists:!0,digest:h(R)}),b.push({path:Gr,kind:"replace",ownership:"owned-file",baseDigest:h(R),desiredDigest:h(I)});let _={schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:i.integrity,assets:i.assets.filter(P=>P.path!==Gr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:y.get(P.path)})),verifiers:i.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}`}),T=f===c?A:A.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),ue=Pe({action:"upgrade",capability:_,changes:S,observedAssets:T,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...p===void 0?{}:{packageAdoption:p}});d.set(Gr,I);let $=new Map;for(let P of ue.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let Z=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,se=P.path===m?P.path:P.path.startsWith(Z)?P.path.slice(Z.length):P.path,ot=d.get(se);if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);$.set(P.path,ot)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:ue,desiredContents:$,transactionRoot:f}}import{link as mE,mkdir as gE,open as _g,readFile as Rt,readdir as yE,realpath as Et,rm as hE,unlink as wE}from"node:fs/promises";import ge from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function $e(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Ag(e){return h(k(e))}function ld(e){if(!$e(e.project.lockDigest)||!$e(e.project.appliedPlanId)||!$e(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(i=>typeof i!="string"||i.length>512||/[\u0000-\u001f\u007f]/.test(i)))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:Ag(t)}}function od(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(Ag(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return ld({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 Rg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function Eg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function Ca(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function ad(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function Pg(e){if(!$e(e.planId)||!$e(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:h(k(t))}}function sd(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function $a(e){if(!$e(e.planId)||!$e(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"||!$e(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:h(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:h(k(t))}}function cd(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:i,schemaVersion:o,status:a,...s}=t;return $a(s)}async function IE(e){let t=await _g(e,"r");try{await t.sync()}finally{await t.close()}}async function Ui(e,t){let r=ge.dirname(e);await gE(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,i=await _g(n,"wx",384);try{await i.writeFile(`${k(t)}
|
|
40
|
+
`,"utf8"),await i.sync()}finally{await i.close()}try{await mE(n,e),await wE(n),await IE(r)}catch(o){throw await hE(n,{force:!0}),o}}async function Ng(e){let t=await Et(ge.resolve(e.projectRoot)),r=od(e.plan),n=ge.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Ui(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(od(JSON.parse(await Rt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Jt(e){if(!$e(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=od(JSON.parse(await Rt(ge.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 dd(e){let t=await Et(ge.resolve(e.projectRoot)),r=cd(e.receipt),n=await Jt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let o=await jn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||o===null||r.npm.stageId!==o.stageId||r.npm.tarballDigest!==o.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 i=ge.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=cd(JSON.parse(await Rt(i,"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 Dn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=cd(JSON.parse(await Rt(ge.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 Og(e){let t=await Et(ge.resolve(e.projectRoot)),r=Ca(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let i=ge.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=Ca(JSON.parse(await Rt(i,"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 Sg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=Ca(JSON.parse(await Rt(ge.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 Dg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ge.join(t,".dyyto","delivery","attempts"),n;try{n=await yE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=Ca(JSON.parse(await Rt(ge.join(r,i),"utf8")));if((await Jt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([jn({projectRoot:t,planId:o.planId}),Dn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function jg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ad(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let i=ge.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=ad(JSON.parse(await Rt(i,"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 jn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=ad(JSON.parse(await Rt(ge.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 Cg(e){let t=await Et(ge.resolve(e.projectRoot)),r=sd(e.record),n=await jn({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 i=ge.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=sd(JSON.parse(await Rt(i,"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 $g(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=sd(JSON.parse(await Rt(ge.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 Zg,readdir as iP}from"node:fs/promises";import md from"node:path";import{mkdir as pd,open as Va,readFile as Bi,readdir as ud,rename as Ma,rm as Yg}from"node:fs/promises";import ve from"node:path";var vE=44;var Tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bE=new Uint8Array(64),xg=new Uint8Array(128);for(let e=0;e<Tg.length;e++){let t=Tg.charCodeAt(e);bE[e]=t,xg[t]=e}function qi(e,t){let r=0,n=0,i=0;do{let a=e.next();i=xg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Lg(e,t){return e.pos>=t?!1:e.peek()!==vE}var eC=1024*16;var kE=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 Vg(e){let{length:t}=e,r=new kE(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(i=0;r.pos<l;){let u;i=qi(r,i),i<f&&(p=!1),f=i,Lg(r,l)?(o=qi(r,o),a=qi(r,a),s=qi(r,s),Lg(r,l)?(c=qi(r,c),u=[i,o,a,s,c]):u=[i,o,a,s]):u=[i],d.push(u),r.pos++}p||_E(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function _E(e){e.sort(AE)}function AE(e,t){return e[0]-t[0]}var RE=/^[\w+.-]+:\/\//,EE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,PE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function NE(e){return RE.test(e)}function OE(e){return e.startsWith("//")}function Ug(e){return e.startsWith("/")}function SE(e){return e.startsWith("file:")}function Mg(e){return/^[.?#]/.test(e)}function Ta(e){let t=EE.exec(e);return qg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function DE(e){let t=PE.exec(e),r=t[2];return qg("file:","",t[1]||"","",Ug(r)?r:"/"+r,t[3]||"",t[4]||"")}function qg(e,t,r,n,i,o,a){return{scheme:e,user:t,host:r,port:n,path:i,query:o,hash:a,type:7}}function Fg(e){if(OE(e)){let r=Ta("http:"+e);return r.scheme="",r.type=6,r}if(Ug(e)){let r=Ta("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(SE(e))return DE(e);if(NE(e))return Ta(e);let t=Ta("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function jE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function CE(e,t){Bg(t,t.type),e.path==="/"?e.path=t.path:e.path=jE(t.path)+e.path}function Bg(e,t){let r=t<=4,n=e.path.split("/"),i=1,o=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===".."){o?(a=!0,o--,i--):r&&(n[i++]=l);continue}n[i++]=l,o++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function zg(e,t){if(!e&&!t)return"";let r=Fg(e),n=r.type;if(t&&n!==7){let o=Fg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:CE(r,o);case 5:r.user=o.user,r.host=o.host,r.port=o.port;case 6:r.scheme=o.scheme}a>n&&(n=a)}Bg(r,n);let i=r.query+r.hash;switch(n){case 2:case 3:return i;case 4:{let o=r.path.slice(1);return o?Mg(t||e)&&!Mg(o)?"./"+o+i:o+i:i||"."}case 5:return r.path+i;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+i}}function $E(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function TE(e,t){let r=$E(e),n=t?t+"/":"";return i=>zg(n+(i||""),r)}var mr=0,LE=1,xE=2,VE=3,ME=4;function FE(e,t){let r=Gg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Gg(e,n+1))e[n]=qE(e[n],t);return e}function Gg(e,t){for(let r=t;r<e.length;r++)if(!UE(e[r]))return r;return e.length}function UE(e){for(let t=1;t<e.length;t++)if(e[t][mr]<e[t-1][mr])return!1;return!0}function qE(e,t){return t||(e=e.slice()),e.sort(BE)}function BE(e,t){return e[mr]-t[mr]}var xa=!1;function zE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][mr]-t;if(o===0)return xa=!0,i;o<0?r=i+1:n=i-1}return xa=!1,r-1}function GE(e,t,r){for(let n=r+1;n<e.length&&e[n][mr]===t;r=n++);return r}function JE(e,t,r){for(let n=r-1;n>=0&&e[n][mr]===t;r=n--);return r}function WE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function KE(e,t,r,n){let{lastKey:i,lastNeedle:o,lastIndex:a}=r,s=0,c=e.length-1;if(n===i){if(t===o)return xa=a!==-1&&e[a][mr]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=zE(e,t,s,c)}function YE(e){return typeof e=="string"?JSON.parse(e):e}var HE="`line` must be greater than 0 (lines start at line 1)",XE="`column` must be greater than or equal to 0 (columns start at column 0)",Jg=-1,ZE=1,Wg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=YE(e),{version:i,file:o,names:a,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=i,this.file=o,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=TE(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=FE(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=WE(),this._bySources=void 0,this._bySourceMemos=void 0}};function QE(e){var t;return(t=e)._decoded||(t._decoded=Vg(e._encoded))}function Kg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(HE);if(n<0)throw new Error(XE);let o=QE(e);if(r>=o.length)return La(null,null,null,null);let a=o[r],s=eP(a,e._decodedMemo,r,n,i||ZE);if(s===-1)return La(null,null,null,null);let c=a[s];if(c.length===1)return La(null,null,null,null);let{names:l,resolvedSources:d}=e;return La(d[c[LE]],c[xE]+1,c[VE],c.length===5?l[c[ME]]:null)}function La(e,t,r,n){return{source:e,line:t,column:r,name:n}}function eP(e,t,r,n,i){let o=KE(e,n,t,r);return xa?o=(i===Jg?GE:JE)(e,n,o):i===Jg&&o++,o===-1||o===e.length?-1:o}var ae=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},fd=/^sha256:[a-f0-9]{64}$/,Hg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,tP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Fa=(e,t)=>Object.keys(e).every(r=>t.includes(r)),zi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Cn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Xg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ve.join(ve.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Jt({projectRoot:r,planId:t.deploymentId}),i=await Dn({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await ud(ve.join(ve.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function rP(e){if(!zi(e)||!Fa(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!zi(e.error)||!zi(e.page)||!Fa(e.error,["type","message","frames"])||!Fa(e.page,["origin","path"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Hg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!fd.test(n)))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!tP.test(e.traceparent)))throw new ae("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new ae("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!zi(n)||!Fa(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let i of[n.line,n.column])if(i!==void 0&&(!Number.isSafeInteger(i)||Number(i)<1))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new ae("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function nP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Cn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Cn(a.function,256)}})),i={type:Cn(e.error.type,256),message:Cn(e.error.message,4096),frames:n},o=h(k({type:i.type,message:i.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:Cn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:Cn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Wt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=rP(t);if(!r.allowedOrigins.includes(n.page.origin))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),o=nP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await pd(a,{recursive:!0,mode:448});let s=ve.join(a,`${o.eventId}.json`);try{let f=JSON.parse(await Bi(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:o.receivedAt})!==k(o))throw new ae("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:o.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await Va(c,"wx",384);try{await l.writeFile(`${k(o)}
|
|
41
|
+
`,"utf8"),await l.sync()}finally{await l.close()}await Ma(c,s);let d=await Va(a,"r");try{await d.sync()}finally{await d.close()}await this.rotate(),o.releaseId!==void 0&&await this.resymbolicate(o.releaseId);let p=JSON.parse(await Bi(s,"utf8"));return{eventId:o.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=ve.join(this.directory(),t),n=ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await pd(n,{recursive:!0,mode:448}),await Ma(r,ve.join(n,`${Date.now()}-${t}`))}async all(){let t=await ud(this.directory()).catch(()=>[]),r=[];for(let n of t){if(!n.endsWith(".json")){n.includes(".tmp-")&&await this.quarantine(n).catch(()=>{});continue}try{let i=JSON.parse(await Bi(ve.join(this.directory(),n),"utf8"));if(i.eventId!==n.slice(0,-5))throw new Error("identity mismatch");r.push({...i,correlation:i.correlation??"unknown"})}catch{await this.quarantine(n).catch(()=>{})}}return r.sort((n,i)=>i.occurredAt.localeCompare(n.occurredAt)||n.eventId.localeCompare(i.eventId))}selected(t,r){return t.filter(n=>(!r.applicationId||n.applicationId===r.applicationId)&&(!r.releaseId||n.releaseId===r.releaseId)&&(!r.deploymentId||n.deploymentId===r.deploymentId))}cursor(t,r){let n=k({v:1,offset:t,snapshot:r});return Buffer.from(k({content:n,digest:h(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==h(n.content))throw new Error("tampered");let i=JSON.parse(n.content);if(i.v!==1||!Number.isSafeInteger(i.offset)||i.offset<0||i.snapshot!==r)throw new Error("expired");return i.offset}catch{throw new ae("OBSERVABILITY_CURSOR_EXPIRED","Runtime Error query cursor is invalid or expired")}}async list(t){let r=Math.max(1,Math.min(t.limit??100,100)),n=this.selected(await this.all(),t),i=h(k(n.map(s=>s.eventId))),o=t.cursor===void 0?0:this.parseCursor(t.cursor,i),a=n.slice(o,o+r);return{events:a,...o+a.length<n.length?{nextCursor:this.cursor(o+a.length,i)}:{}}}async get(t){if(!Hg.test(t))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Bi(ve.join(this.directory(),r),"utf8"));if(n.eventId!==t)throw new Error("identity mismatch");return{...n,correlation:n.correlation??"unknown"}}catch(n){if(n.code==="ENOENT")return null;throw await this.quarantine(r).catch(()=>{}),new ae("OBSERVABILITY_STORE_DAMAGED","Runtime Error record is damaged and has been quarantined")}}async summary(t){let r=this.selected(await this.all(),t),n=new Map;for(let i of r){let o=n.get(i.fingerprint);o?o.count+=1:n.set(i.fingerprint,{count:1,latestAt:i.occurredAt,event:i})}return{total:r.length,groups:[...n.entries()].map(([i,o])=>({fingerprint:i,...o}))}}async rotate(){let t=await this.all(),n=t.reduce((i,o)=>Math.max(i,Date.parse(o.receivedAt)),0)-10080*60*1e3;for(let i of t.slice(1e4))await Yg(ve.join(this.directory(),`${i.eventId}.json`),{force:!0});for(let i of t.slice(0,1e4))Date.parse(i.receivedAt)<n&&await Yg(ve.join(this.directory(),`${i.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!fd.test(t.releaseId)||!fd.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!zi(t.map)||"sourcesContent"in t.map)throw new ae("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(k(t.map)),n=h(r),i=ve.join(this.releases(),t.releaseId);await pd(i,{recursive:!0,mode:448});let o=h(t.asset),a=ve.join(i,`${o}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await Va(`${a}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
|
|
42
|
+
`),await c.sync()}finally{await c.close()}return await Ma(`${a}.tmp`,a),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await ud(ve.join(this.releases(),t)).catch(()=>[]),n=[];for(let i of r)try{n.push(JSON.parse(await Bi(ve.join(this.releases(),t,i),"utf8")))}catch{}for(let i of(await this.all()).filter(o=>o.releaseId===t&&o.state==="map-missing")){let o=!1,a=i.error.frames.map(d=>{let p=n.find(f=>new URL(d.file,"http://local").pathname.endsWith(`/${f.registration.asset}`));if(!p||d.line===void 0||d.column===void 0)return d;try{let f=Kg(new Wg(p.map),{line:d.line,column:Math.max(0,d.column-1)});return f.source===null||f.line===null||f.column===null?d:(o=!0,{...d,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return d}});if(!o)continue;let s={...i,error:{...i.error,frames:a},state:"symbolicated"},c=ve.join(this.directory(),`${i.eventId}.json`),l=await Va(`${c}.tmp`,"w",384);try{await l.writeFile(`${k(s)}
|
|
43
|
+
`),await l.sync()}finally{await l.close()}await Ma(`${c}.tmp`,c)}}};var tt=(e,t,r,n,i)=>({code:e,severity:t,fact:r,message:n,...i===void 0?{}:{action:i}});async function Gi(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[tt("EVIDENCE_INVALID","critical","evidence","\u5DF2\u9A8C\u8BC1\u9501\u7F3A\u5C11\u5B8C\u6574\u8BC1\u636E\u5F15\u7528\u3002","\u91CD\u65B0\u8FD0\u884C\u9A8C\u8BC1\uFF1B\u82E5\u4E8B\u52A1\u672A\u5B8C\u6210\uFF0C\u5148\u6267\u884C\u5B89\u5168\u6062\u590D\u3002")];for(let r of e.lock.capabilities)for(let n of r.evidenceIds)try{let i=Ii(JSON.parse(await Zg(md.join(e.projectRoot,".dyyto","evidence",`${n}.json`),"utf8")));if(i.evidenceId!==n||i.capabilityId!==r.capabilityId||i.capabilityVersion!==r.version||i.capabilityIntegrity!==r.integrity||i.projectStateDigest!==r.projectStateDigest||i.result!=="passed")return[tt("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[tt("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[tt("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function gd(e){return e==="adopted"?[]:e==="planned"?[tt("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"?[tt("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"?[tt("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"?[tt("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")]:[tt("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 Qg(e){try{let r=JSON.parse(await Zg(md.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[tt("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[tt("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 Wt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await iP(md.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[tt("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")]:[tt("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function ey(e){let t=e.units.map(n=>{let i=n.findings.some(o=>o.severity==="critical")?"blocked":n.findings.some(o=>o.severity==="warning")?"attention":"healthy";return{...n,status:i}}),r={total:t.length,healthy:t.filter(n=>n.status==="healthy").length,attention:t.filter(n=>n.status==="attention").length,blocked:t.filter(n=>n.status==="blocked").length};return{schemaVersion:1,workspace:e.workspace,generatedAt:e.generatedAt,status:r.blocked>0?"blocked":r.attention>0?"attention":"healthy",summary:r,units:t}}import{readFile as Ji,realpath as ty}from"node:fs/promises";import Jr from"node:path";var le=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function ry(e){let t=await ty(Jr.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!i||i.packageAdoption!==void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let o=W({...r,capabilities:r.capabilities.filter(f=>f.capabilityId!==n.capabilityId)}),a=Buffer.from(`${JSON.stringify(o,null,2)}
|
|
44
|
+
`),s=await Wi(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:h(a)},...i.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],l=await Promise.all(c.map(f=>Wi(t,f.path))),d={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:i.assets.map(f=>({path:f.path,ownership:f.ownership??"owned-file",desiredDigest:f.digest})),verifiers:n.verifiers.map(f=>({id:f.id,kind:"file-digest"}))};return{plan:Pe({action:"remove",capability:d,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:o,desiredContents:new Map([["project-capabilities.json",a]]),transactionRoot:t,removedSources:[]}}async function Wi(e,t){try{let r=await Ji(Jr.join(e,...t.split("/")));return{path:t,exists:!0,digest:h(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function yd(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await ty(Jr.resolve(e.projectRoot)),r=W(e.manifest),n=e.release.release,i=e.packageSource?.topology,o=i?.transactionRoot??t,a=_=>i?.mode==="pnpm-shared-lockfile"?`${i.unitRelativeRoot}/${_}`:_;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new le("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(_=>_.capabilityId===n.capabilityId))throw new le("CAPABILITY_ALREADY_SELECTED","The capability is already selected by this project");let s=r.profile?.id,c=s==="typescript-library"?"blank-typescript-library":s,l=n.dependencies?.profiles??[],d=e.currentLock.capabilities.find(_=>_.consumerProfile===c);if(c===void 0||!l.includes(c)||d===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(_=>!r.capabilities.some(S=>S.capabilityId===_)||!e.currentLock.capabilities.some(S=>S.capabilityId===_)))throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let f=W({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=a("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
|
|
45
|
+
`),g=await Wi(o,u);if(!g.exists||g.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:h(m)}],w=new Map([[u,m]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let _;try{_=await Ji(Jr.join(t,"package.json"))}catch{throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let S=e.packageSource.currentLockfile??await Ji(Jr.join(t,"pnpm-lock.yaml")).catch(se=>se.code==="ENOENT"?void 0:Promise.reject(se)),T=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ue=T.mode==="pnpm-shared-lockfile",$={mode:T.mode,unitRelativeRoot:T.unitRelativeRoot,unitImporterId:T.unitImporterId,lockfilePath:T.lockfilePath,...T.workspaceManifestPath?{workspaceManifestPath:T.workspaceManifestPath,workspaceManifestDigest:T.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ue&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let Z=ue?(e.packageChannel==="development"?Ra:Aa)({release:n,...P,consumerProfile:c,packageJson:_,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?_a:ka)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:_,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=Ia(Z),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Z.packageJsonPreimageDigest,desiredDigest:Z.desiredPackageJsonDigest}),w.set(a("package.json"),Z.desiredPackageJson),y.push({path:T.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:h(S)},desiredDigest:Z.desiredLockfileDigest}),w.set(T.lockfilePath,Z.desiredLockfile)}catch(S){throw S instanceof H?new le("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let _ of n.assets){let S=e.release.contents.get(_.path);if(S===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let T=_.renderer==="application-config-contract-v1"?Pa(r):_.renderer==="application-config-binding-v1"?Sa(r):S;if(_.ownership==="managed-region"){if(_.regionId===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ue;try{ue=await Ji(Jr.join(t,..._.path.split("/")))}catch{throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(gm({source:ue.toString("utf8"),regionId:_.regionId,content:Buffer.from(T).toString("utf8")}));y.push({path:a(_.path),kind:"merge",ownership:"managed-region",regionId:_.regionId,baseDigest:h(ue),desiredDigest:h($)}),w.set(a(_.path),$)}else{let ue=await Wi(t,_.path);if(_.ownership==="seed-file"&&ue.exists){let $=await Ji(Jr.join(t,..._.path.split("/")));y.push({path:a(_.path),kind:"create",ownership:"seed-file",desiredDigest:h($)}),w.set(a(_.path),$)}else y.push({path:a(_.path),kind:"create",ownership:_.ownership,desiredDigest:h(T)}),w.set(a(_.path),T)}}let b=await Promise.all(y.map(_=>Wi(o,_.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(_=>_.path!==u&&_.path!==i?.lockfilePath).map(_=>({path:i?.mode==="pnpm-shared-lockfile"?_.path.slice(i.unitRelativeRoot.length+1):_.path,ownership:_.ownership,desiredDigest:_.desiredDigest})),verifiers:n.verifiers.map(_=>({id:_.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:f,desiredContents:w,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var ny=nn(Dr(),1);var oP={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},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:te},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}}}}},jC=new ny.Ajv2020({allErrors:!0,strict:!0}).compile(oP);var cy=nn(Dr(),1);import{readFile as aP,realpath as sP}from"node:fs/promises";import iy from"node:path";var oy="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",ay="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",cP={$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:oy},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:te},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:te},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:ay,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:oy}},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:ay,maxLength:240}}}}}},sy=new cy.Ajv2020({allErrors:!0,strict:!0}).compile(cP),Wr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function lP(e){return h(k(e))}function dP(e){if(!sy(e))throw new Wr("EXAMPLE_RECIPE_INVALID",sy.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 Wr("EXAMPLE_RECIPE_INVALID");return t}async function ly(e){let t=await sP(iy.resolve(e)),r;try{r=dP(JSON.parse(await aP(iy.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Wr?o:new Wr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(lP(i)!==n)throw new Wr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var uy=nn(Dr(),1);import{readFile as pP,realpath as uP}from"node:fs/promises";import dy from"node:path";var fP={$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:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},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:te},capability:{type:"string",pattern:`${te.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:te},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:te},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"]}}}},py=new uy.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(fP),Kt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function mP(e){return h(k(e))}function gP(e){if(!py(e))throw new Kt("TEMPLATE_INVALID",py.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 Kt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Kt("TEMPLATE_INVALID");return t}async function Ki(e,t=new Date){let r=await uP(dy.resolve(e)),n;try{n=gP(JSON.parse(await pP(dy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Kt?a:new Kt("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(mP(o)!==i)throw new Kt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Kt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as fy}from"node:fs/promises";import my from"node:path";var yP=/^[A-Z][A-Z0-9_]*$/u,hP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function wP(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||!yP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:hP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function gy(e){let t=await fy(my.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await fy(my.join(e.projectRoot,t),"utf8"):"",n=await Mi({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(o=>e.commands[o]?[{id:o,script:e.commands[o],mode:o==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(o=>({name:o.name,requirement:o.required?"conditional":"optional",secret:o.kind!=="value",configured:o.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:o.display,...o.fingerprint?{fingerprint:o.fingerprint}:{}})):wP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var yy={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"])},hy=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function wy(e,t){if(!yy[t.plane]||t.state&&!hy.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=yy[t.plane],n=t.from?Date.parse(t.from):null,i=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||i!==null&&Number.isNaN(i)||n!==null&&i!==null&&n>i)throw new Error("OPERATION_FILTER_INVALID");let o=e.filter(l=>r.has(l.operation)),a=[...new Map(o.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=o.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(i===null||Date.parse(l.createdAt)<=i)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(a),states:Object.freeze([...hy]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var rt=class extends Error{code;constructor(t){super(t),this.code=t}},IP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Iy=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,vP=/^sha512-[A-Za-z0-9+/]{86}==$/u,Ua=/^sha256:[a-f0-9]{64}$/u,bP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,kP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,_P=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Kr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function AP(e){if(!Kr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!IP.test(e.packageName)||!Iy.test(e.version)||!bP.test(e.assetName)||!vP.test(e.integrity)||!Ua.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)||!Iy.test(n)||kP.test(n))?!1:e.lifecycleScripts.every(r=>_P.has(r))}function hd(e){if(!Kr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(o=>Object.freeze({...o,dependencies:Object.freeze({...o.dependencies}),lifecycleScripts:Object.freeze([...o.lifecycleScripts])}));if(t.some(o=>!AP(o)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(o=>o.packageName+"@"+o.version);if(new Set(r).size!==r.length||r.some((o,a)=>a>0&&o.localeCompare(r[a-1])<=0))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(o=>o.packageName));for(let o of t)for(let[a,s]of Object.entries(o.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function Yr(e){let t=e;if(typeof t!="object"||t===null||!Kr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Ua.test(t.bundleId)||!Array.isArray(t.artifacts))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");if(hd({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function wd(e){if(!Kr(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 rt("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Kr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!Ua.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let r=Yr(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:h(k(n))})}function vy(e){let t=e;if(typeof t!="object"||t===null||!Kr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Ua.test(t.planId)||!Kr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");if(wd({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");return t}function by(e){let t=Yr(e.bundle),r=Ti(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Yl({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Ze=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},ky=/^sha256:[a-f0-9]{64}$/u,qa=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function Id(e){if(!qa.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>ky.test(r))||!qa.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function _y(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let r=Id({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");return r}function vd(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>ky.test(r))||!qa.test(e.workerReleaseId)||!qa.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function Ba(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");let r=vd({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Ze("RESOLUTION_WORKER_BUILD_INVALID");return r}var Yi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},bd=/^sha256:[a-f0-9]{64}$/u,RP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function kd(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>bd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!RP.test(r.path)||!bd.test(r.currentDigest)||!bd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Yi("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:h(k(t))})}function Ay(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Yi("RECOVERY_OVERRIDE_INVALID");let r=kd({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 Yi("RECOVERY_OVERRIDE_INVALID");return r}var Hi=class extends Error{code;constructor(t,r){super(r),this.code=t}},Ad=/^sha256:[a-f0-9]{64}$/u,EP=/^sha512-[A-Za-z0-9+/]{86}==$/u,PP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,NP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,OP=/[\u0000-\u001f\u007f]/u;function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Tn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function Yt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!OP.test(e)}function _d(e){return Yt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Ry(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Yt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function SP(e){return e===null?!0:!$n(e)||!Tn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:_d(e.fileName)&&Ad.test(String(e.digest))&&EP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function DP(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!PP.test(e.packageName)||!NP.test(e.version)||!Yt(e.title,120)||!Yt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!$n(e.source)||!Tn(e.source,["repository","path","revision","treeDigest"])||!Yt(e.source.repository)||!_d(e.source.path)||!Yt(e.source.revision,200)||!Ad.test(String(e.source.treeDigest))||!SP(e.artifact)||!$n(e.compatibility)||!Tn(e.compatibility,["node","packageManager"])||!Yt(e.compatibility.node,100)||!Yt(e.compatibility.packageManager,100)||!Ry(e.exports)||!Ry(e.consumerEvidence)||!$n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Tn(e.documentation,t)||!_d(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Yt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function jP(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(!DP(t))throw new Hi("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function Ey(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Ad.test(String(e.releaseDigest)))throw new Hi("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,o=jP(i);if(o.releaseDigest!==t)throw new Hi("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as CP,readFile as $P,realpath as TP}from"node:fs/promises";import Py from"node:path";async function Ny(e){let t=await TP(Py.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,i=[...e.lock.capabilities].sort((a,s)=>a.committedAt.localeCompare(s.committedAt)||a.capabilityId.localeCompare(s.capabilityId));for(let a of i)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 o=[];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=Py.join(t,...a.path.split("/")),l=await CP(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await $P(s);if(a.ownership!=="managed-region")return h(p);if(a.regionId!==void 0)try{return h(Ko(p.toString("utf8"),a.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===a.digest;o.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 o}import{createHash as LP}from"node:crypto";var xP=/[\u0000-\u001f\u007f]/u,za=e=>`sha256:${LP("sha256").update(Rd(e)).digest("hex")}`,Rd=e=>Array.isArray(e)?`[${e.map(Rd).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)}:${Rd(r)}`).join(",")}}`:JSON.stringify(e),gr=(e,t)=>{if(!e.trim()||e.length>500||xP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},VP=e=>Object.freeze({repository:gr(e.repository,"repository"),branch:gr(e.branch,"branch"),commit:gr(e.commit,"commit")});function Oy(e){if(e.source==="requirement-task"&&(!e.requirementId||!e.taskId))throw new Error("DEVELOPMENT_REQUIREMENT_TASK_REQUIRED");if(e.source==="direct"&&(e.requirementId!==null||e.taskId!==null))throw new Error("DEVELOPMENT_DIRECT_LINK_INVALID");let t={schemaVersion:1,kind:"DevelopmentIntent",source:e.source,intentId:gr(e.intentId,"intent_id"),title:gr(e.title,"title"),summary:gr(e.summary,"summary"),repository:VP(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>gr(r,"acceptance")))};return Object.freeze({...t,intentDigest:za(t)})}function Sy(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:gr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:za(t),revision:1,state:"active",intent:e.intent,worktree:Object.freeze({path:t.worktreePath,writable:!0}),engineeringContextDigest:e.engineeringContextDigest,knowledgeContextDigest:e.knowledgeContextDigest??null,startedAt:e.startedAt,finishedAt:null};return Object.freeze({...r,sessionDigest:za(r)})}function Dy(e,t){if(e.state!=="active")throw new Error("DEVELOPMENT_SESSION_NOT_ACTIVE");let r={...e,revision:e.revision+1,state:"finished",worktree:Object.freeze({...e.worktree,writable:!1}),finishedAt:t},{sessionDigest:n,...i}=r;return Object.freeze({...i,sessionDigest:za(i)})}import{readFile as ie,readdir as Jy,realpath as Pt}from"node:fs/promises";import{execFile as QP,spawn as eN}from"node:child_process";import N from"node:path";import{parseArgs as de,promisify as tN}from"node:util";import{lstat as jy,mkdir as Pd,readFile as Cy,realpath as Ed,rm as MP,writeFile as $y}from"node:fs/promises";import nt from"node:path";var it=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},FP=e=>k(e),Ty=e=>h(FP(e));async function Ly(e,t){let r=await Ed(nt.resolve(e)),n=nt.join(r,".examples");await Pd(n,{recursive:!0});let i=await Ed(n),o=nt.resolve(r,t);if(nt.dirname(o)!==i||nt.basename(o).startsWith(".")||nt.basename(o).length<1)throw new it("SCAFFOLD_ARGUMENT_INVALID");if(await jy(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new it("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:nt.relative(r,o)}}async function xy(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 it("SCAFFOLD_ARGUMENT_INVALID");let r=await Ly(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),i={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},o={...i,planId:Ty(i)},a=nt.join(r.workspaceRoot,".dyyto","scaffold-plans");await Pd(a,{recursive:!0});let s=nt.join(a,`${o.planId}.json`);return await $y(s,`${k(o)}
|
|
46
|
+
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await Cy(s,"utf8")!==`${k(o)}
|
|
47
|
+
`)throw new it("SCAFFOLD_PLAN_INVALID")}),o}async function UP(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new it("SCAFFOLD_PLAN_INVALID");let r=await Ed(nt.resolve(e)),n;try{n=JSON.parse(await Cy(nt.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new it("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:i,...o}=n;if(i!==t||Ty(o)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new it("SCAFFOLD_PLAN_INVALID");return n}async function Vy(e){let t=await UP(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new it("SCAFFOLD_PLAN_INVALID");let r=await Ly(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await jy(r.output).then(()=>!0).catch(()=>!1)&&await MP(r.output,{recursive:!0,force:!0}),new it("SCAFFOLD_APPLY_FAILED",s)}let i={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},o=h(k(i)),a=nt.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await Pd(a,{recursive:!0}),await $y(nt.join(a,`${o}.json`),`${k({...i,evidenceId:o})}
|
|
48
|
+
`,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as Xi,readFile as Nd,readdir as qP,realpath as Od}from"node:fs/promises";import ye from"node:path";var My={capabilities:ye.resolve(import.meta.dirname,"catalog"),packages:ye.resolve(import.meta.dirname,"package-releases")};function Uy(e,t){return e<t?-1:e>t?1:0}function Ja(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Ja).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Uy(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Ja(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function BP(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(i===""||i.startsWith("#"))continue;if(i.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i);if(!o)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(o[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${o[1]}`);let a=o[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(o[1],a)}return t}async function Fy(e,t){let r=await Xi(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 Ga(e,t){let r=await Xi(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 Od(e)}async function zP(e){let t=e;for(;;){if(await Xi(ye.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=ye.dirname(t);if(r===t)return;t=r}}async function GP(e){if(!ye.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ga(e,"IDP_CONFIG_DIR");await zP(t);let r=await Ga(ye.join(t,"components"),"components"),n=await Ga(ye.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=ye.relative(t,n);if(i.startsWith("..")||ye.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=ye.join(n,".env");await Fy(o,"Dyyto \u7EC4\u4EF6 .env");let a=BP(await Nd(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(ye.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=ye.resolve(n,a),c=ye.relative(n,s);if(c===""||c.startsWith("..")||ye.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(ye.sep).slice(0,-1))l=await Ga(ye.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await Od(ye.dirname(s)),p=ye.relative(n,d);if(p.startsWith("..")||ye.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Fy(s,"Package Catalog Binding");let f=[];for(let u of(await Nd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!ye.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Xi(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Od(m),w=await Xi(y);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(y)||f.push(y)}return f.sort()}async function JP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await GP(e);return{capabilities:My.capabilities,packages:[My.packages,...t]}}async function Wa(e){return(await qP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function WP(e,t){let r=o=>o.split("-",1)[0].split(".").map(Number),n=r(e),i=r(t);for(let o=0;o<3;o+=1){let a=(n[o]??0)-(i[o]??0);if(a!==0)return a}return e.localeCompare(t)}function KP(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 YP(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 HP(e){let t=[];for(let r of await Wa(e))for(let n of await Wa(ye.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(ye.join(e,r,n)).then(o=>({entry:{item:KP(o.release),release:o.release}})).catch(()=>({diagnostic:{ref:i,code:"CATALOG_RELEASE_INVALID",message:"Capability \u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function XP(e){let t=[];for(let r of await Wa(e))for(let n of await Wa(ye.join(e,r))){let i=ye.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push(Nd(i,"utf8").then(a=>{let s=Ey(JSON.parse(a));return{entry:{item:YP(s),release:s}}}).catch(()=>({diagnostic:{ref:o,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 Sd(e){let t=e??await JP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([HP(t.capabilities),...r.map(XP)]),o=[...n.entries,...i.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),a=[],s=new Set,c=[];for(let l of o)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,...i.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Ka(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await Sd(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||WP(l.version,a.version)<0)&&n.set(c,a)}let i=[...n.values()].sort((a,s)=>a.ref.localeCompare(s.ref)),o=e.limit??50;return{query:t,total:i.length,items:i.slice(0,o),diagnostics:r.diagnostics}}async function Ya(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await Sd(e.roots),n=r.entries.find(({item:o})=>o.ref===t),i=r.diagnostics.find(o=>o.ref===t);if(i?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&i!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function ZP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let i=n;if(typeof i.capabilityId!="string"||typeof i.version!="string"||!Array.isArray(i.integration?.packages))continue;let o=`capability:${i.capabilityId}@${i.version}`;for(let a of i.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(o),t.set(c,l)}}return t}async function qy(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 Sd(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=ZP(r.entries),i=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)=>Uy(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:h(Ja(o))})}function By(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Ja(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
+
`}var Zi={"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"},Wy=tN(QP),rN=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"]),Ky=(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,Ha={"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 Yy(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Xa(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await ie(N.join(e,"package.json")),o=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await zt(e),c=await ie(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 le("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=xi({release:t.release,packageJson:n??i}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...o,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=Ql({release:t.release,packageJson:n??i}),d=await a({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:o.registryConfigs,endpointBindings:o.endpointBindings});return{...o,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Hy(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return ry({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:R.toISOString(),expiresAt:new Date(R.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let o=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await ie(N.join(e,"package.json")),s=await ie(N.join(e,"project-capabilities.json")),c=await zt(e),l=await ie(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(R=>R.packageName)??[])),p=i.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?td({packageJson:a,remove:p}):ed({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),R=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(_=>`${c.unitRelativeRoot}/${_.path}`)],I=await Promise.all(R.map(async _=>ie(N.join(c.transactionRoot,..._.split("/"))).then(S=>({path:_,exists:!0,digest:h(S)})).catch(S=>S.code==="ENOENT"?{path:_,exists:!1}:Promise.reject(S))));return{...cg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,endpointBindings:o.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:o.registryConfigs,endpointBindings:o.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),w=await y({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>ie(N.join(e,...b.split("/"))).then(R=>({path:b,exists:!0,digest:h(R)})).catch(R=>R.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(R))));return{...sg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:o.endpointBindings,observedAssets:A,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Te(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 Za(e,t){return rN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function nN(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 Qa(e){let t=JSON.parse(await ie(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 Re(Te(r.capabilityId,r.version)),i=await Fe(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Oi:t.profile?.id==="react-component-library"?Si:t.profile?.id==="nextjs-full-stack-application"?Sn:t.profile?.id==="workspace-npm-package"?Di:t.profile?.id==="workspace-node-application"?ji:t.profile?.id==="workspace-web-application"?Ci:t.profile?.id==="workspace-expo-application"?$i:Zo)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Bt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function Xy(e){let t;try{t=de({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,y]=r.split("@");n=await Ki(Za(g,y))}let i=n?.profile.id??t.values.profile;if(i!=="typescript-library"&&i!=="standalone-npm-package"&&i!=="react-component-library"&&i!=="nextjs-full-stack-application"&&i!=="workspace-root")return v("Create requires a supported --profile.");let o=t.values.capability,a=i==="workspace-root"&&o==="foundation.workspace-root@1.0.0"||i==="standalone-npm-package"&&o==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(a?o:Zi[i]);if(n!==void 0&&s.split("@")[0]!==Zi[i].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&o!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&o!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,y=t.values.version,w=t.values.license,A=t.values["publish-access"],b=t.values.repository;if([g,y,w,A].some(R=>typeof R!="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(y),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:d},capabilities:[{capabilityId:c,version:l}]};(i==="standalone-npm-package"||i==="react-component-library")&&fr(W(p),i),i==="nextjs-full-stack-application"&&Ur(W(p));let f=await fa({projectRoot:t.positionals[0],manifest:p}),u=await Qa(f.projectRoot),m=ee(f.projectRoot);return{outputMode:B(e),human:`Project '${m}' initialized.
|
|
50
50
|
Plan: ${u.planId}
|
|
51
51
|
State: ${u.state}
|
|
52
|
-
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function iN(e){let[t,...r]=e,n;try{n=de({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},profile:{type:"string"},capability:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return v("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return v("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return v("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return v("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return v("Retrofit --profile is invalid.");let i=n.values.capability??"foundation.workspace-root@1.2.0",o=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(i);if(!o)return v("Retrofit --capability is invalid.");let a=await Re(Te(o[1],o[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 Tm({projectRoot:n.values.project,manifest:{schemaVersion:1,profile:{id:s,parameters:{}},capabilities:[{capabilityId:o[1],version:o[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 Bt({projectRoot:l.projectRoot,plan:l.plan,now:c.toISOString()});return{outputMode:B(e),human:`Project: ${d}
|
|
53
53
|
Plan: ${m.planId}
|
|
54
54
|
State: ${m.state}
|
|
55
55
|
Files: project-capabilities.json
|
|
56
|
-
Next: dyyto retrofit apply --project ${
|
|
57
|
-
Plan: ${
|
|
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 Mr({projectRoot:l.projectRoot,planId:n.values.approve}),f=await lr({projectRoot:l.projectRoot,plan:p,approvedPlanId:n.values.approve,desiredContents:l.desiredContents,now:c.toISOString()}),u=await dr(f);return{outputMode:B(e),human:`Project: ${d}
|
|
57
|
+
Plan: ${p.planId}
|
|
58
58
|
State: ${u.state}
|
|
59
|
-
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:
|
|
59
|
+
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:d,planId:p.planId,transaction:u}}}}async function oN(e,t){let r;try{r=de({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return v(`${e} requires --project.`);let n=await Pt(N.resolve(r.values.project)),i=W(JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")));if(i.template===void 0)return v("The project does not declare an engineering template.");let o=await Ki(Za(i.template.id,i.template.version)),a=o.commands[e];if(a===void 0)return v(`Template ${o.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=eN("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),y=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",y),process.once("SIGTERM",w),g.once("error",m),g.once("close",A=>{process.off("SIGINT",y),process.off("SIGTERM",w),u(A??1)})})!==0)throw new j({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:""};return{outputMode:B(t),human:`dev completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let l=await Wy("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),d={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:B(t),human:`${e} completed for '${ee(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:d}}}async function aN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"},capability:{type:"string"},kind:{type:"string"},profile:{type:"string"}}})}catch{return v("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(A=>typeof A!="string"))return v("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return v("Add package requires a supported --profile.");let i=n==="react-component-library"?Zi["workspace-react-component-library"]:Zi["workspace-npm-package"];if(t.values.capability!==i)return v(`Add package requires --capability ${i}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return v("Add package --kind only accepts fixture.");let o=t.values.kind==="fixture"?"fixture":"package",a=String(t.values.path),s=ip(a,o);if(s!==void 0)return v(s);let c=await Pt(N.resolve(String(t.values.workspace))),l=JSON.parse(await ie(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 Fe(c);if(p===null){let A=await Re(Te(d.capabilityId,d.version)),b=new Date;if((await Xo({projectRoot:c,release:A,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding a package.")}if(p!==null){try{await Tr({projectRoot:c,expectedAssets:Yy(p)})}catch{return v("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Gi({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 ap(c,o==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[f,u]=i.split("@"),m={schemaVersion:1,...Ha[n]===void 0?{}:{template:Ha[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}]};fr(W(m),n);let g=await fa({projectRoot:N.join(c,...a.split("/")),manifest:m}),y=await Qa(g.projectRoot),w=ee(g.projectRoot);return{outputMode:B(e),human:`Workspace package '${a}' initialized.
|
|
60
60
|
Plan: ${y.planId}
|
|
61
61
|
State: ${y.state}
|
|
62
|
-
Next: dyyto apply --project ${w} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:
|
|
62
|
+
Next: dyyto apply --project ${w} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:ee(c),path:a,plan:y}}}}async function sN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},profile:{type:"string"},capability:{type:"string"}}})}catch{return v("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return v("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return v("Add application requires a supported --profile.");let n=r,i=Zi[n],o=String(t.values.path),a=op(o,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(a!==void 0)return v(a);let s=await Pt(N.resolve(String(t.values.workspace))),c=JSON.parse(await ie(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(o.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 Fe(s);if(d===null){let w=await Re(Te(l.capabilityId,l.version)),A=new Date;if((await Xo({projectRoot:s,release:w,generatedAt:A.toISOString(),expiresAt:new Date(A.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding an application.")}if(d!==null){try{await Tr({projectRoot:s,expectedAssets:Yy(d)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Gi({projectRoot:s,lock:d})).some(A=>A.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await sp(s,String(t.values.name)))return v("A workspace application already uses this name.");let[p,f]=i.split("@"),u={schemaVersion:1,...Ha[n]===void 0?{}:{template:Ha[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:p,version:f}]};Ur(W(u));let m=await fa({projectRoot:N.join(s,...o.split("/")),manifest:u}),g=await Qa(m.projectRoot),y=ee(m.projectRoot);return{outputMode:B(e),human:`Workspace application '${o}' initialized.
|
|
63
63
|
Plan: ${g.planId}
|
|
64
64
|
State: ${g.state}
|
|
65
|
-
Next: dyyto apply --project ${y} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:y,workspace:ee(s),path:
|
|
66
|
-
Feature: ${
|
|
67
|
-
Dependency: ${
|
|
68
|
-
Plan: ${
|
|
69
|
-
State: ${
|
|
70
|
-
Next: dyyto apply --project ${f} --approve ${
|
|
71
|
-
\u79FB\u9664\u80FD\u529B\uFF1A${
|
|
72
|
-
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(
|
|
65
|
+
Next: dyyto apply --project ${y} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:y,workspace:ee(s),path:o,plan:g}}}}async function Zy(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=await Pt(N.resolve(r.values.project)),i=JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")),o=await Fe(n);if(o===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[a,s]=es(r.values.capability),c=await Re(Te(a,s)),l=new Date,d;try{let u=await Xa(n,c,t);d=await yd({projectRoot:n,manifest:i,release:c,currentLock:o,generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof le?new j({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let p=await Bt({projectRoot:n,plan:d.plan,now:l.toISOString(),transactionRoot:d.transactionRoot}),f=ee(n);return{outputMode:B(e),human:`Project: ${f}
|
|
66
|
+
Feature: ${a}@${s}
|
|
67
|
+
Dependency: ${d.dependency.profile} satisfied
|
|
68
|
+
Plan: ${p.planId}
|
|
69
|
+
State: ${p.state}
|
|
70
|
+
Next: dyyto apply --project ${f} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:d.dependency,plan:p}}}}async function cN(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await Pt(N.resolve(r.values.project)),i=await Fe(n);if(i===null)return v("Remove feature requires a verified Lock.");let[o,a]=es(r.values.capability),s=await Re(Te(o,a)),c=await Hy(n,s,i,t),l=await Bt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),d=ee(n);return{outputMode:B(e),human:`Project: ${d}
|
|
71
|
+
\u79FB\u9664\u80FD\u529B\uFF1A${o}@${a}
|
|
72
|
+
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
|
|
73
73
|
Plan: ${l.planId}
|
|
74
74
|
State: ${l.state}
|
|
75
|
-
Next: dyyto apply --project ${
|
|
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 lN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Qa(r),i=ee(r),o=n.state==="reviewable"?`Next: dyyto apply --project ${i} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${i}
|
|
76
76
|
Plan: ${n.planId}
|
|
77
77
|
State: ${n.state}
|
|
78
|
-
${
|
|
78
|
+
${o}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:i,plan:n}}}}function es(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 dN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return v("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return v("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Fe(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,i]=es(t.values.capability),o=await Re(Te(n,i)),a=JSON.parse(await ie(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await Jl({projectRoot:r,manifest:a,release:o,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Bt({projectRoot:r,plan:c.plan,now:s.toISOString()}),d=ee(r);return{outputMode:B(e),human:`Project: ${d}
|
|
79
79
|
Baseline: ${n}@${i}
|
|
80
80
|
Plan: ${l.planId}
|
|
81
81
|
State: ${l.state}
|
|
82
|
-
Preserved seed files: ${l.operations.filter(
|
|
83
|
-
Next: dyyto apply --project ${
|
|
84
|
-
Upgrade: ${s.version} -> ${
|
|
82
|
+
Preserved seed files: ${l.operations.filter(p=>p.ownership==="seed-file"&&p.disposition==="noop").length}
|
|
83
|
+
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:d,plan:l}}}}async function pN(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},to:{type:"string"},repository:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return v("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),i=JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")),[o,a]=es(r.values.to),s=i.capabilities?.find(_=>_.capabilityId===o);if(s===void 0)return v(`Upgrade requires ${o} to be adopted by the project.`);let c=await Fe(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let l=(i.profile.id==="standalone-npm-package"||i.profile.id==="workspace-npm-package")&&a==="1.1.0";if(l){if(typeof r.values.repository!="string")return v("npm package upgrade to 1.1.0 requires --repository.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is only valid for an npm package upgrade to 1.1.0.");let d=await Re(Te(s.capabilityId,s.version)),p=await Re(Te(o,a)),f={...i,capabilities:i.capabilities.map(_=>_.capabilityId===o?{capabilityId:o,version:a}:_)},u=p.release.schemaVersion===2&&p.release.availability.maturity!=="withdrawn"&&p.release.packageSources.length>0,m=u?ja(f,p):void 0,g=u?await Xa(n,p,t,m):void 0,y=Ky(o,a),w=new Date,A=await id({projectRoot:n,manifest:i,currentLock:c,sourceRelease:d,targetRelease:p,...y===void 0?{}:{targetTemplate:y},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),b=await Bt({projectRoot:n,plan:A.plan,now:w.toISOString(),transactionRoot:A.transactionRoot}),R=ee(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${R} --approve ${b.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${R}
|
|
84
|
+
Upgrade: ${s.version} -> ${a}
|
|
85
85
|
Plan: ${b.planId}
|
|
86
86
|
State: ${b.state}
|
|
87
|
-
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:R,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function
|
|
88
|
-
Plan: ${
|
|
89
|
-
State: ${
|
|
90
|
-
Files applied: ${
|
|
91
|
-
`+(
|
|
87
|
+
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:R,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function Dd(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},repository:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Apply arguments are invalid.")}if(typeof r.values.project!="string")return v("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return v("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),i=JSON.parse(await ie(N.join(n,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return v("Project manifest must select one capability.");let a=await Mr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,d;if(a.action==="remove"){let u=await Fe(n);if(u===null)return v("Remove apply requires the verified Lock.");let m=await Hy(n,await Re(Te(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 Fe(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.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is not valid for this apply operation.");let g=await Re(Te(a.capability.capabilityId,a.capability.version)),y={...i,capabilities:i.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,A=w?ja(y,g):void 0,b=w?await Xa(n,g,t,A):void 0;l=b?.registryConfigs,d=b?.endpointBindings;let R=Ky(a.capability.capabilityId,a.capability.version);c=await id({projectRoot:n,manifest:i,currentLock:u,sourceRelease:await Re(Te(m.capabilityId,m.version)),targetRelease:g,...R===void 0?{}:{targetTemplate:R},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"&&i.profile?.id==="nextjs-full-stack-application"&&i.capabilities?.[0]?.capabilityId===a.capability.capabilityId&&i.capabilities?.[0]?.version!==a.capability.version)c=await Jl({projectRoot:n,manifest:i,release:await Re(Te(a.capability.capabilityId,a.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(i.capabilities?.some(u=>u.capabilityId===a.capability.capabilityId&&u.version===a.capability.version)){let u=await Re(Te(o.capabilityId,o.version)),m=await Fe(n).catch(()=>null);c=await(i.profile?.id==="standalone-npm-package"?Oi:i.profile?.id==="react-component-library"?Si:i.profile?.id==="nextjs-full-stack-application"?Sn:i.profile?.id==="workspace-npm-package"?Di:i.profile?.id==="workspace-node-application"?ji:i.profile?.id==="workspace-web-application"?Ci:i.profile?.id==="workspace-expo-application"?$i:Zo)({projectRoot:n,manifest:i,release:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Fe(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let m=await Re(Te(a.capability.capabilityId,a.capability.version)),g=await Xa(n,m,t);l=g?.registryConfigs,d=g?.endpointBindings,c=await yd({projectRoot:n,manifest:i,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 le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(d===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");p=await lg({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 lr({projectRoot:n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});p=await dr(u)}let f=ee(n);return{outputMode:B(e),human:`Project: ${f}
|
|
88
|
+
Plan: ${a.planId}
|
|
89
|
+
State: ${p.state}
|
|
90
|
+
Files applied: ${p.operations.length}
|
|
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 uN(e,t){let r;try{r=de({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},output:{type:"string"},locale:{type:"string"},channel:{type:"string"},approve:{type:"string"},"recipe-version":{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return v("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return v("Scaffold example recipe identifier is invalid.");let i=await ly(nN(n,r.values["recipe-version"])),o=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 xy({workspaceRoot:a,output:r.values.output,recipe:i,artifactBundle:s,artifactFallbackBundles:l,artifactPort:o});return{outputMode:B(e),human:`\u793A\u4F8B\uFF1A${i.title}
|
|
92
92
|
Plan\uFF1A${u.planId}
|
|
93
93
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
|
|
94
|
-
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof
|
|
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(o)],f;try{f=await Vy({workspaceRoot:a,approvedPlanId:d,recipe:i,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==o)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await Xy([u,"--profile","nextjs-full-stack-application","--capability",`${i.rootProfile.capabilityId}@${i.rootProfile.version}`,"--name",i.recipeId])).value.result.plan.planId;await Dd(["--project",u,"--approve",w],t),g.push(w),await Wy("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 jd(["--project",u]);for(let A of i.capabilities){let b=`${A.capabilityId}@${A.version}`;try{let I=(await Zy(["--project",u,"--capability",b,"--channel",A.channel,...p],t)).value.result.plan.planId;await Dd(["--project",u,"--approve",I,...p],t),await jd(["--project",u]),g.push(I)}catch(R){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${R instanceof Error?R.message:"UNKNOWN"}`,{cause:R})}}return g}})}catch(u){let m=u instanceof it&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new j({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${m}`,exitCode:1,nextStep:"\u68C0\u67E5\u5931\u8D25\u7684 Capability \u4E0E\u4E8B\u52A1 Evidence\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}return{outputMode:B(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
|
|
95
95
|
Evidence\uFF1A${f.evidenceId}
|
|
96
|
-
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function Qi(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:B(e)}}async function jd(e){let{projectRoot:t,outputMode:r}=Qi(e,"Verify"),n=JSON.parse(await ie(N.join(t,"project-capabilities.json"),"utf8")),i=await Fe(t),o=await zt(t).catch(()=>{}),a;try{let y=i?.capabilities.map(A=>A.appliedPlanId)??[],w=i?.capabilities.map(A=>A.capabilityId)??[];try{a=await ma(t,y,t,w)}catch(A){if(!(A instanceof Ie)||A.code!=="PLAN_NOT_FOUND"||o===void 0)throw A;a=await ma(t,y,o.transactionRoot,w)}}catch(y){if(!(y instanceof Ie)||y.code!=="PLAN_NOT_FOUND"||i===null)throw y;let A=(await Cd(["--project",t,"--json"])).value.result,b=await Gi({projectRoot:t,lock:i});if(A.state!=="adopted"||b.some(I=>I.code!=="EVIDENCE_VALID"))throw new j({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 R=ee(t);return{outputMode:r,human:`Project: ${R}
|
|
97
97
|
State: adopted
|
|
98
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:R,state:"adopted",reused:!0,lock:i}}}}let s=await Re(
|
|
98
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:R,state:"adopted",reused:!0,lock:i}}}}let s=await Re(Te(a.capability.capabilityId,a.capability.version)),c=a.packageAdoption===void 0?void 0:o?.transactionRoot;if(i?.capabilities.some(y=>y.appliedPlanId===a.planId)){let y=ee(t);return{outputMode:r,human:`Project: ${y}
|
|
99
99
|
State: adopted
|
|
100
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:y,state:"adopted",reused:!0}}}}if(
|
|
100
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:y,state:"adopted",reused:!0}}}}if(a.action==="remove"){if(i===null)return v("Remove verification requires the previous verified Lock.");let y=i.capabilities.find($=>$.capabilityId===a.capability.capabilityId&&$.version===a.capability.version);if(y===void 0){let $=ee(t);return{outputMode:r,human:`Project: ${$}
|
|
101
101
|
State: removed
|
|
102
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:i}}}}let w=
|
|
102
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:$,state:"removed",reused:!0,lock:i}}}}let w=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",A=new Map(a.operations.flatMap($=>$.desiredDigest===void 0||!$.path.startsWith(w)?[]:[[$.path.slice(w.length),$.desiredDigest]])),b=i.capabilities.filter($=>$!==y),R=[...b].filter($=>$.packageAdoption!==void 0).sort(($,P)=>$.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=b.flatMap($=>$.assets).map($=>({...$,digest:A.get($.path)??($.path==="package.json"?R?.packageJsonDigest:void 0)??$.digest})),{executeRemovalVerification:_}=await import("./optional-runtime.js"),S=await _({projectRoot:t,release:s,remainingAssets:I,removedPaths:y.assets.map($=>$.path)}),T=await xl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:S.results,committedAt:new Date().toISOString(),previousLock:i,expectedAssets:I}),ue=ee(t);return{outputMode:r,human:`Project: ${ue}
|
|
103
103
|
State: removed
|
|
104
104
|
${S.summaries.map($=>`${$.verifierId}: ${$.result}`).join(`
|
|
105
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ue,state:"removed",verifiers:S.summaries,lock:
|
|
105
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:ue,state:"removed",verifiers:S.summaries,lock:T}}}}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(y=>({path:y.path,desiredDigest:y.ownership==="managed-region"?y.digest:a.operations.find(w=>w.path===`${l}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.action==="upgrade"?s.release.assets.map(y=>({path:y.path,desiredDigest:a.operations.find(w=>w.path===`${l}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.operations).map(({path:y,desiredDigest:w,ownership:A,regionId:b})=>w===void 0?v("Applied plan is missing a desired asset digest."):{path:y,digest:w,ownership:A==="managed-region"?"managed-region":A==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:p}=await import("./optional-runtime.js"),f=await p({projectRoot:t,release:s,expectedAssets:d}),u=a.action==="adopt"&&a.operations.every(y=>y.disposition==="noop")&&i?.capabilities.some(y=>y.capabilityId===a.capability.capabilityId)===!0,m=await Ll({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)&&i!==null?{previousLock:i}:{}}),g=ee(t);return{outputMode:r,human:`Project: ${g}
|
|
106
106
|
State: adopted
|
|
107
107
|
`+f.summaries.map(y=>`${y.verifierId}: ${y.result}`).join(`
|
|
108
|
-
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function
|
|
108
|
+
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function Cd(e){let{projectRoot:t,outputMode:r}=Qi(e,"Inspect"),n=await ql(t),i=ee(t);if(n.required)return{outputMode:r,human:`Project: ${i}
|
|
109
109
|
State: recovery-required
|
|
110
110
|
Transaction: ${n.kind}
|
|
111
|
-
Next: dyyto recover --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"recovery-required",recovery:n}}};let
|
|
111
|
+
Next: dyyto recover --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"recovery-required",recovery:n}}};let o=JSON.parse(await ie(N.join(t,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let s=await Re(Te(a.capabilityId,a.version)),c=await Fe(t);try{let R=await ma(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(R.action==="upgrade"||R.action==="adopt")return{outputMode:r,human:`Project: ${i}
|
|
112
112
|
State: applied-unverified
|
|
113
113
|
Plan: ${R.planId}
|
|
114
|
-
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:R.operations,lock:c}}}}catch{}let l=new Date,
|
|
114
|
+
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:R.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=o.profile?.id==="standalone-npm-package"?await Jm({...d,manifest:o}):o.profile?.id==="react-component-library"?await Wm({...d,manifest:o}):o.profile?.id==="nextjs-full-stack-application"?await Km({...d,manifest:o}):o.profile?.id==="workspace-npm-package"?await Ym({...d,manifest:o}):o.profile?.id==="workspace-node-application"?await Hm({...d,manifest:o}):o.profile?.id==="workspace-web-application"?await Xm({...d,manifest:o}):o.profile?.id==="workspace-expo-application"?await Zm({...d,manifest:o}):await Xo(d),f=c===null?void 0:[...c.capabilities].filter(R=>R.packageAdoption!==void 0).sort((R,I)=>R.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await ie(N.join(t,"package.json")).then(h).catch(()=>{}),m=p.operations.map(R=>R.path==="package.json"&&u===f?{...R,desiredDigest:f,disposition:"noop",conflictCode:void 0}:R),g=c===null?[]:await Ny({projectRoot:t,lock:c,excludeCapabilityIds:[a.capabilityId]}),y=g.some(R=>R.disposition==="conflict"),w=f!==void 0&&m.every(R=>R.disposition==="noop")?{...p,state:"adopted"}:p,A={...w,state:y?"drifted":w.state,operations:[...m,...g]},b=c?.capabilities.flatMap(R=>R.packageAdoption?.sources.map(I=>({capabilityId:R.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${i}
|
|
115
115
|
State: ${A.state}
|
|
116
116
|
`+A.operations.map(R=>`${R.path}: ${R.disposition}`).join(`
|
|
117
117
|
`)+(b.length===0?"":`
|
|
118
118
|
\u5305\u6765\u6E90\uFF1A
|
|
119
119
|
${b.map(R=>`- ${R.packageName}@${R.version}\uFF08Registry: ${R.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
|
|
120
|
-
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...A,lock:c,packageSources:b}}}}async function
|
|
120
|
+
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...A,lock:c,packageSources:b}}}}async function fN(e){let{projectRoot:t,outputMode:r}=Qi(e,"Recover"),n=await Bm({projectRoot:t,now:new Date().toISOString()}),i=ee(t);return{outputMode:r,human:n.kind==="none"?`Project: ${i}
|
|
121
121
|
Recovery: not-required`:`Project: ${i}
|
|
122
122
|
Recovery: ${n.kind}
|
|
123
|
-
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:i,recovery:n}}}}function
|
|
123
|
+
State: ${n.state}`,value:{schemaVersion:1,ok:!0,command:"recover",result:{project:i,recovery:n}}}}function Qy(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:B(e)}}async function mN(e,t){let{parsed:r,projectRoot:n,outputMode:i}=Qy(t,"Lifecycle"),o=r.values.command;if((e==="start"||e==="restart")&&o!=="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 zy(n,"dev"),d=await c(n,"dev");else if(e==="stop")d=await l(n);else if(e==="restart")await zy(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:i,human:`Project: ${p}
|
|
124
124
|
Lifecycle: ${e}
|
|
125
|
-
State: ${"state"in
|
|
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 j({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 zy(e,t){let r=W(JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")));if(r.template===void 0)throw new j({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 Ki(Za(r.template.id,r.template.version))).commands[t]!==t)throw new j({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 gN(e){let{projectRoot:t,outputMode:r}=Qy(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),i=await n(t),o=ee(t),a=i.details.flatMap(l=>[`${l.title} (${l.capabilityId}@${l.version}) [${l.status}]`,` ${l.purpose}`,...l.packages.map(d=>` package ${d.packageName}@${d.version} [${d.state}]`),...l.packages.flatMap(d=>d.imports.map(p=>` import { ${p.symbol} } from '${p.importFrom}'${p.referencePath?` -> ${p.referencePath}`:""}`)),...l.codeAssets.map(d=>` asset ${d.sourcePath} -> ${d.targetPath} (${d.ownership})`)]),s=l=>i.platformDependencies.filter(d=>d.source===l).length,c=i.platformDependencies.map(l=>` platform ${l.packageName} ${l.version} [${l.source}]`);return{outputMode:r,human:`Project: ${o}
|
|
126
126
|
Declared: ${i.declared.length}
|
|
127
127
|
Locked: ${i.locked.length}
|
|
128
128
|
Verified: ${i.verified.length}
|
|
129
129
|
Findings: ${i.findings.length}
|
|
130
130
|
Unmanaged platform dependencies: ${i.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
|
|
131
131
|
|
|
132
|
-
${[...
|
|
133
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:
|
|
134
|
-
\u6765\u6E90\uFF1A${
|
|
135
|
-
Registry\uFF1A${
|
|
136
|
-
\u72B6\u6001\uFF1A${
|
|
137
|
-
Plan\uFF1A${
|
|
138
|
-
Packages\uFF1A${
|
|
139
|
-
\u53D8\u66F4\uFF1A${
|
|
140
|
-
\u5DF2\u5199\u5165\uFF1A${
|
|
132
|
+
${[...a,...c].join(`
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function yN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},source:{type:"string"},registry:{type:"string"},approve:{type:"string"},verify:{type:"string"},install:{type:"boolean"}}})}catch{return v("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return v("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return v("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:i,switchProjectPackageSources:o,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}):i({projectRoot:l,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?a({projectRoot:l,planId:t.values.verify}):o({projectRoot:l,scope:"@aipt/",source:c,...typeof t.values.registry=="string"?{registry:t.values.registry}:{}})).catch(m=>{throw m instanceof s?new j({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:B(e),human:`\u9879\u76EE\uFF1A${p}
|
|
134
|
+
\u6765\u6E90\uFF1A${d.source}
|
|
135
|
+
Registry\uFF1A${d.registry??"workspace protocol"}
|
|
136
|
+
\u72B6\u6001\uFF1A${d.state}
|
|
137
|
+
Plan\uFF1A${d.planId}
|
|
138
|
+
Packages\uFF1A${d.packages.length}
|
|
139
|
+
\u53D8\u66F4\uFF1A${d.changes.length}
|
|
140
|
+
\u5DF2\u5199\u5165\uFF1A${d.written?"\u662F":"\u5426"}
|
|
141
141
|
|
|
142
142
|
${f.join(`
|
|
143
143
|
`)}${f.length>0?`
|
|
144
144
|
|
|
145
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:
|
|
146
|
-
Commands: ${
|
|
147
|
-
Environment: ${
|
|
145
|
+
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:p,source:d.source,registry:d.registry,state:d.state,planId:d.planId,packages:d.packages,changes:d.changes,written:d.written,...d.installVerified===void 0?{}:{installVerified:d.installVerified},...d.lockfileDigest===void 0?{}:{lockfileDigest:d.lockfileDigest}}}}}async function hN(e){let{projectRoot:t,outputMode:r}=Qi(e,"Inspect"),n=W(JSON.parse(await ie(N.join(t,"project-capabilities.json"),"utf8")));if(n.template===void 0)throw new j({code:"PROJECT_MAINTENANCE_UNAVAILABLE",message:"Project maintenance requires a formal Template Release.",exitCode:4,nextStep:"Adopt a supported engineering template."});let i=await Ki(Za(n.template.id,n.template.version)),o=await gy({projectRoot:t,commands:i.commands}),a=ee(t);return{outputMode:r,human:`Project: ${a}
|
|
146
|
+
Commands: ${o.commands.map(s=>s.id).join(", ")}
|
|
147
|
+
Environment: ${o.environment.filter(s=>s.configured).length}/${o.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:a,template:`${i.templateId}@${i.version}`,...o}}}}async function wN(e){let{projectRoot:t,outputMode:r}=Qi(e,"Inspect"),n=await Mi({projectRoot:t}).catch(i=>{throw new j({code:i instanceof Error&&"code"in i?String(i.code):"APPLICATION_CONFIG_UNAVAILABLE",message:i instanceof Error?i.message:"\u5E94\u7528\u914D\u7F6E\u4E0D\u53EF\u7528\u3002",exitCode:4,nextStep:"\u8BBE\u7F6E\u8BE5\u9879\u76EE\u72EC\u4EAB\u7684\u7EDD\u5BF9APP_CONFIG_DIR\uFF0C\u5E76\u7531\u90E8\u7F72\u63A7\u5236\u9762\u5B8C\u6210config init\u3002"})});return{outputMode:r,human:`\u5E94\u7528\uFF1A${n.application}
|
|
148
148
|
\u73AF\u5883\uFF1A${n.environment}
|
|
149
149
|
Config Dir\uFF1A${n.configDirectory}
|
|
150
150
|
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(i=>i.configured).length}/${n.entries.length}
|
|
151
151
|
${n.entries.map(i=>`${i.name}: ${i.display}`).join(`
|
|
152
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function
|
|
152
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function IN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{project:{type:"string"},workspace:{type:"string"},check:{type:"boolean"},json:{type:"boolean"}}})}catch{return v("Config readiness arguments are invalid.")}let r=t.values.project,n=t.values.workspace;if(typeof r=="string"==(typeof n=="string"))return v("Config readiness requires exactly one of --project or --workspace.");let i=B(e);if(typeof n=="string"){let c=await vg({workspaceRoot:N.resolve(n)}),l=c.applications.map(p=>`${p.unit}: ${p.readiness.state}${p.readiness.issueCode?` (${p.readiness.issueCode})`:""}`),d=t.values.check===!0?c.summary.invalid>0?4:c.summary.ready===c.summary.total?0:3:0;return{outputMode:i,human:`\u5DE5\u4F5C\u533A\uFF1A${ee(c.workspaceRoot)}
|
|
153
153
|
\u5E94\u7528\uFF1A${c.summary.total}
|
|
154
154
|
\u5C31\u7EEA\uFF1A${c.summary.ready}
|
|
155
155
|
\u5F85\u521D\u59CB\u5316\uFF1A${c.summary.needsConfigInit}
|
|
156
156
|
\u65E0\u6548\uFF1A${c.summary.invalid}
|
|
157
157
|
|
|
158
158
|
${l.join(`
|
|
159
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...
|
|
160
|
-
\u7F3A\u5931\uFF1A${
|
|
161
|
-
\u73AF\u5883\uFF1A${
|
|
162
|
-
\u72B6\u6001\uFF1A${
|
|
163
|
-
Config Dir\uFF1A${
|
|
164
|
-
\u95EE\u9898\uFF1A${
|
|
165
|
-
Operations: ${
|
|
166
|
-
Total: ${
|
|
167
|
-
Attention: ${
|
|
168
|
-
Status: ${
|
|
169
|
-
Units: ${
|
|
170
|
-
Healthy: ${
|
|
171
|
-
Attention: ${
|
|
172
|
-
Blocked: ${
|
|
173
|
-
`+
|
|
174
|
-
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:
|
|
159
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...d?{exitCode:d}:{}}}if(typeof r!="string")return v("Config readiness requires --project or --workspace.");let o=await nd({projectRoot:N.resolve(r)}),a=o.missingBindings.length?`
|
|
160
|
+
\u7F3A\u5931\uFF1A${o.missingBindings.join(", ")}`:"",s=t.values.check===!0?o.state==="invalid"?4:o.state==="ready"?0:3:0;return{outputMode:i,human:`\u5E94\u7528\uFF1A${o.application??"\u672A\u58F0\u660E"}
|
|
161
|
+
\u73AF\u5883\uFF1A${o.environment}
|
|
162
|
+
\u72B6\u6001\uFF1A${o.state}
|
|
163
|
+
Config Dir\uFF1A${o.configDirectory??"\u672A\u7269\u5316"}${a}${o.issueCode?`
|
|
164
|
+
\u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function vN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plane:{type:"string"},state:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return v("Operations requires --project and --plane change|quality|delivery.");let r=await Pt(N.resolve(t.values.project)),n=ee(r),i=[];for(let a of await Jy(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(a.endsWith(".json"))try{let s=JSON.parse(await ie(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"&&i.push({id:s.taskId,projectId:".",projectName:n,operation:s.operation,state:s.state,createdAt:s.createdAt,updatedAt:s.updatedAt,...s.correlationId?{correlationId:s.correlationId}:{}})}catch{}let o=wy(i,{plane:t.values.plane,...typeof t.values.state=="string"?{state:t.values.state}:{},...typeof t.values.kind=="string"?{kind:t.values.kind}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{}});return{outputMode:B(e),human:`Project: ${n}
|
|
165
|
+
Operations: ${o.plane}
|
|
166
|
+
Total: ${o.summary.total}
|
|
167
|
+
Attention: ${o.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...o}}}}async function bN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return v("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Doctor requires --workspace.");let r=await Pt(N.resolve(t.values.workspace));if(W(JSON.parse(await ie(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let i=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await Jy(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await ie(N.join(l,"project-capabilities.json"))}catch{continue}i.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:l})}let o=[];for(let s of i){let c="invalid",l;try{let p=(await Cd(["--project",s.projectRoot,"--json"])).value.result;c=p.state??"invalid",l=gd(c),c==="adopted"&&p.lock!==null&&typeof p.lock=="object"?l.push(...await Gi({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=gd("invalid")}try{let d=W(JSON.parse(await ie(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));d.profile?.id==="workspace-web-application"&&l.push(...await Qg({workspaceRoot:r,applicationId:String(d.profile.parameters.name)}))}catch{}o.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let a=ey({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:o});return{outputMode:B(e),human:`Workspace: ${a.workspace}
|
|
168
|
+
Status: ${a.status}
|
|
169
|
+
Units: ${a.summary.total}
|
|
170
|
+
Healthy: ${a.summary.healthy}
|
|
171
|
+
Attention: ${a.summary.attention}
|
|
172
|
+
Blocked: ${a.summary.blocked}
|
|
173
|
+
`+a.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
|
|
174
|
+
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function $d(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 Gy(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function eh(e){let t=W(JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8"))),r=await Fe(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return v("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return v("Manifest and verified Lock must identify the same adopted capability.");let i=n.assets.filter(o=>!o.path.startsWith("src/"));return await Tr({projectRoot:e,expectedAssets:i}),{manifest:t,lock:r,locked:n,lockDigest:h(k(r))}}async function kN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},kind:{type:"string"},provider:{type:"string"},repository:{type:"string"},workflow:{type:"string"},ref:{type:"string"},environment:{type:"string"}}})}catch{return v("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return v("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await eh(r),o=await(await $d(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Dg({projectRoot:r,artifactIdentity:o.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 ie(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=ld({kind:t.values.kind,project:{profile:n.manifest.profile.id,lockDigest:n.lockDigest,appliedPlanId:n.locked.appliedPlanId},artifact:o.artifact,target:o.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 Ng({projectRoot:r,plan:c});let l=ee(r);return{outputMode:B(e),human:`Project: ${l}
|
|
175
175
|
Delivery: ${c.kind}
|
|
176
176
|
Artifact: ${c.artifact.identity}
|
|
177
177
|
Target: ${c.target.location}
|
|
@@ -183,73 +183,73 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
|
|
|
183
183
|
Approval: maintainer 2FA required outside Dyyto`}
|
|
184
184
|
Plan: ${c.planId}
|
|
185
185
|
State: reviewable
|
|
186
|
-
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function
|
|
186
|
+
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function _N(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return v("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return v("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Jt({projectRoot:r,planId:t.values.approve}),i=await Dn({projectRoot:r,planId:n.planId}),o=ee(r);if(i!==null)return{outputMode:B(e),human:`Project: ${o}
|
|
187
187
|
Delivery: verified
|
|
188
|
-
Receipt: ${i.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
188
|
+
Receipt: ${i.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,receipt:i}}};let a=n.kind==="npm-publish"?await jn({projectRoot:r,planId:n.planId}):null;if(a!==null)return{outputMode:B(e),human:`Project: ${o}
|
|
189
189
|
Delivery: staged
|
|
190
|
-
Stage: ${
|
|
191
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
190
|
+
Stage: ${Gy(a.stageId)}
|
|
191
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,state:"staged",record:a}}};if((n.kind==="npm-publish"?await Sg({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 eh(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 $d(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 Og({projectRoot:r,record:Eg({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Rg({planId:n.planId,stageId:p.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await jg({projectRoot:r,record:u}),{outputMode:B(e),human:`Project: ${o}
|
|
192
192
|
Delivery: staged
|
|
193
|
-
Stage: ${
|
|
194
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
193
|
+
Stage: ${Gy(u.stageId)}
|
|
194
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,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=$a({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 dd({projectRoot:r,receipt:f}),{outputMode:B(e),human:`Project: ${o}
|
|
195
195
|
Delivery: verified
|
|
196
196
|
Receipt: ${f.receiptId}
|
|
197
|
-
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:
|
|
197
|
+
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,receipt:f}}}}async function AN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return v("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return v("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Jt({projectRoot:r,planId:t.values.plan}),i=await Dn({projectRoot:r,planId:n.planId}),o=ee(r);if(i!==null)return{outputMode:B(e),human:`Project: ${o}
|
|
198
198
|
Delivery: verified
|
|
199
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
199
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,receipt:i}}};let a=n.kind==="npm-publish"?await jn({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await $g({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=h(await ie(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=Pg({planId:n.planId,stageId:a.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await Cg({projectRoot:r,record:s})}let c=await(await $d(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=$a({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 dd({projectRoot:r,receipt:l}),{outputMode:B(e),human:`Project: ${o}
|
|
200
200
|
Delivery: verified
|
|
201
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
201
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,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:B(e),human:`Project: ${o}
|
|
202
202
|
Delivery: staged
|
|
203
203
|
Plan: ${n.planId}
|
|
204
204
|
Artifact review: ${s===null?"pending":"verified"}
|
|
205
|
-
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
205
|
+
State: ${l}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,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:B(e),human:`Project: ${o}
|
|
206
206
|
Delivery: ${c.state}
|
|
207
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:
|
|
208
|
-
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...
|
|
207
|
+
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:c.state,plan:n,receipt:null,adapter:c}}}}async function RN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return v("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Observe errors requires --workspace.");let r=await Pt(N.resolve(t.values.workspace)),n=new Wt(r),i={...typeof t.values.application=="string"?{applicationId:t.values.application}:{},...typeof t.values.limit=="string"?{limit:Number(t.values.limit)}:{},...typeof t.values.cursor=="string"?{cursor:t.values.cursor}:{}},[o,a]=await Promise.all([n.list(i),n.summary(i)]);return{outputMode:B(e),human:o.events.length===0?"\u672A\u53D1\u73B0\u8FD0\u884C\u65F6\u9519\u8BEF\u3002":o.events.map(s=>`${s.occurredAt} ${s.applicationId} ${s.error.type}: ${s.error.message} (${s.state}, ${s.correlation})`).join(`
|
|
208
|
+
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...o,summary:a}}}}async function EN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return v("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return v("Observe error requires --workspace and --id.");let r=await new Wt(await Pt(N.resolve(t.values.workspace))).get(t.values.id);if(r===null)throw new j({code:"RUNTIME_ERROR_NOT_FOUND",message:"Runtime Error Event was not found.",exitCode:4,nextStep:"List recent errors and verify the event ID."});return{outputMode:B(e),human:`${r.error.type}: ${r.error.message}
|
|
209
209
|
State: ${r.state}
|
|
210
210
|
Correlation: ${r.correlation}
|
|
211
211
|
Release: ${r.releaseId??"unknown"}
|
|
212
|
-
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function
|
|
213
|
-
Source Maps: ${
|
|
214
|
-
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:
|
|
215
|
-
${
|
|
216
|
-
\u6210\u719F\u5EA6\uFF1A${
|
|
217
|
-
`);return{outputMode:B(e),human:
|
|
212
|
+
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function PN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return v("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return v("Observe release register requires --project.");let r=await Pt(N.resolve(t.values.project)),n=await Pt(N.resolve(typeof t.values.workspace=="string"?t.values.workspace:N.join(r,"../.."))),{registerWebRelease:i}=await import("./optional-runtime.js"),o=await i({workspaceRoot:n,projectRoot:r});return{outputMode:B(e),human:`Release: ${o.releaseId}
|
|
213
|
+
Source Maps: ${o.registrations.length}
|
|
214
|
+
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:o}}}async function NN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return v("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return v("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let i=await Ka({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),o=i.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":i.items.map(a=>`${a.ref}
|
|
215
|
+
${a.summary}
|
|
216
|
+
\u6210\u719F\u5EA6\uFF1A${a.maturity}`).join(`
|
|
217
|
+
`);return{outputMode:B(e),human:o,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function ON(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return v("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return v("Catalog show \u9700\u8981 --ref\u3002");let r=await Ya({ref:t.values.ref});return{outputMode:B(e),human:`${r.item.ref}
|
|
218
218
|
${r.item.summary}
|
|
219
219
|
\u6210\u719F\u5EA6\uFF1A${r.item.maturity}
|
|
220
|
-
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function Yo(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(o=>o==="--version"||o==="--json"))return{outputMode:n,human:Tn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Tn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:Wp,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...a]=r;return i==="catalog"&&a[0]==="search"?l0(a.slice(1)):i==="catalog"&&a[0]==="show"?p0(a.slice(1)):i==="create"?Vy(a):i==="scaffold"&&a[0]==="example"?WP(a.slice(1),t):i==="retrofit"?MP(a):i==="dev"||i==="build"||i==="test"||i==="package"?FP(i,a):i==="add"&&a[0]==="package"?UP(a.slice(1)):i==="add"&&a[0]==="application"?qP(a.slice(1)):i==="add"&&a[0]==="feature"?My(a.slice(1),t):i==="remove"&&a[0]==="feature"?BP(a.slice(1),t):i==="plan"?zP(a):i==="upgrade"?JP(a,t):i==="apply"?_p(a,t):i==="verify"?Ap(a):i==="inspect"?Rp(a):i==="doctor"?r0(a):i==="recover"?KP(a):i==="lifecycle"&&typeof a[0]=="string"?YP(a[0],a.slice(1)):i==="packages"&&a[0]==="switch"?XP(a.slice(1)):i==="integrations"?HP(a):i==="maintenance"?ZP(a):i==="config"&&a[0]==="inspect"?QP(a.slice(1)):i==="config"&&a[0]==="readiness"?e0(a.slice(1)):i==="operations"?t0(a):i==="baseline"?GP(a):i==="delivery"&&a[0]==="plan"?n0(a.slice(1)):i==="delivery"&&a[0]==="apply"?i0(a.slice(1)):i==="delivery"&&a[0]==="inspect"?a0(a.slice(1)):i==="observe"&&a[0]==="errors"?o0(a.slice(1)):i==="observe"&&a[0]==="error"?s0(a.slice(1)):i==="observe"&&a[0]==="release"&&a[1]==="register"?c0(a.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as d0}from"node:http";import{readFile as u0,readdir as rL,rm as nL}from"node:fs/promises";import{execFile as f0}from"node:child_process";import{promisify as m0}from"node:util";import g0 from"node:path";var cL=m0(f0),Pp=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 y0(e){try{let t=JSON.parse(await u0(g0.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 qy(e){let t=new Wt(e.workspaceRoot),r=[...e.allowedOrigins??await y0(e.workspaceRoot)],n=new Pp,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},a=d0(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let p=n.take(l);if(!p.allowed){i.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(p.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let d=[],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");d.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(d).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>Ug(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof oe?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{a.once("error",c),a.listen(e.port??4318,"127.0.0.1",()=>{a.off("error",c),s()})});let o=a.address();if(o===null||typeof o=="string")throw new Error("Collector did not expose a TCP address");return{server:a,origin:`http://127.0.0.1:${o.port}`,snapshot:()=>({...i}),close:()=>new Promise((s,c)=>a.close(l=>l?c(l):s()))}}import{createHash as h0}from"node:crypto";import{createServer as w0}from"node:http";import{readFile as By,realpath as zy}from"node:fs/promises";import Ho from"node:path";var Ue=class extends Error{constructor(r){super(r);this.code=r}code};function I0(e){return"sha512-"+h0("sha512").update(e).digest("base64")}async function Hi(e){let t=await zy(e).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await By(Ho.join(t,"index.json"),"utf8").catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Kr(JSON.parse(r))}catch{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let a of n.artifacts){let o=Ho.join(t,a.assetName),s=Ho.relative(t,await zy(o).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||Ho.isAbsolute(s))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await By(o);if(h(c)!==a.tarballDigest||I0(c)!==a.integrity)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(a.assetName,c)}return{root:t,bundle:n,assets:i}}function v0(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function Gy(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 b0(e,t){let r=a=>a.split(/[.-]/u).map(o=>/^\d+$/u.test(o)?Number(o):o),n=r(e),i=r(t);for(let a=0;a<Math.max(n.length,i.length);a+=1){let o=n[a]??0,s=i[a]??0;if(o!==s)return typeof o=="number"&&typeof s=="number"?o-s:String(o).localeCompare(String(s))}return 0}function k0(e,t){let r=new Map,n=new Map;for(let i of[e,...t])for(let a of i.bundle.artifacts){let o=`${a.packageName}@${a.version}`,s=r.get(o);if(s!==void 0&&Gy(s)!==Gy(a))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(a.assetName);if(c===void 0)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(a.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(o,a),n.set(a.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function Jy(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID");let t=await Hi(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(Hi)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=k0(t,r),a=e.hostname??"127.0.0.1",o=w0((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let p=new URL(s.url??"/","http://127.0.0.1").pathname,d=decodeURIComponent(p.slice(1)),f=i.artifacts.filter(u=>u.packageName===d).sort((u,m)=>b0(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),y=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(y.byteLength)),c.end(l==="HEAD"?void 0:y);return}if(p.startsWith("/tarballs/")){let u=p.slice(10),m=i.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{o.once("error",c),o.listen(e.port,a,s)}).catch(()=>{throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+a+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>v0(o)})}import{createHash as _0}from"node:crypto";import{execFile as A0}from"node:child_process";import{cp as R0,mkdir as Wy,mkdtemp as Np,readFile as Qo,realpath as Xi,rename as E0,rm as Ky,stat as P0,writeFile as Zo}from"node:fs/promises";import{tmpdir as N0}from"node:os";import Te from"node:path";import{promisify as O0}from"node:util";import{gunzipSync as S0}from"node:zlib";var D0=O0(A0),j0=["preinstall","install","postinstall","prepublish","prepare"],G=class extends Error{constructor(r){super(r);this.code=r}code};function C0(e){return"sha512-"+_0("sha512").update(e).digest("base64")}async function $0(e,t){let r=await Xi(e).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let a=await Xi(Te.join(r,i)).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),o=Te.relative(r,a);if(o!==i||o.startsWith("..")||Te.isAbsolute(o))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=await Qo(Te.join(a,"package.json")).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:a,manifestBytes:s,manifest:c})}return n}function L0(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 G("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[a,o]of Object.entries(n)){if(typeof o!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=o.startsWith("workspace:")?r.get(a):o;if(s===void 0)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");i[a]=s}return Object.fromEntries(Object.entries(i).sort(([a],[o])=>a.localeCompare(o)))}function T0(e,t){for(let r=0;r+512<=e.length;){let n=e.subarray(r,r+512);if(n.every(o=>o===0))return;let i=n.toString("utf8",0,100).replace(/\0.*$/su,""),a=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(a)||a<0)return;if(i===t)return e.subarray(r+512,r+512+a);r+=512+Math.ceil(a/512)*512}}function x0(e,t,r){let n;try{n=S0(e)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let i=T0(n,"package/package.json");if(i===void 0)throw new G("LOCAL_ARTIFACT_PACK_FAILED");let a;try{a=JSON.parse(i.toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let o=a.dependencies===void 0?{}:a.dependencies;if(typeof o!="object"||o===null||Array.isArray(o))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(o).sort(([c],[l])=>c.localeCompare(l)));if(a.name!==t.name||a.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new G("LOCAL_ARTIFACT_PACK_FAILED")}function V0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function M0(e,t,r){let n=Te.join(await Np(Te.join(r,"stage-")),"package");await R0(e.root,n,{recursive:!0,filter:a=>Te.basename(a)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await Zo(Te.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
221
|
-
`),n}async function
|
|
222
|
-
`,{flag:"wx",mode:384}).catch(async
|
|
223
|
-
`)throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function
|
|
224
|
-
`,{mode:292}),await
|
|
220
|
+
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function ts(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:Fn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Fn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:np,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?NN(o.slice(1)):i==="catalog"&&o[0]==="show"?ON(o.slice(1)):i==="create"?Xy(o):i==="scaffold"&&o[0]==="example"?uN(o.slice(1),t):i==="retrofit"?iN(o):i==="dev"||i==="build"||i==="test"||i==="package"?oN(i,o):i==="add"&&o[0]==="package"?aN(o.slice(1)):i==="add"&&o[0]==="application"?sN(o.slice(1)):i==="add"&&o[0]==="feature"?Zy(o.slice(1),t):i==="remove"&&o[0]==="feature"?cN(o.slice(1),t):i==="plan"?lN(o):i==="upgrade"?pN(o,t):i==="apply"?Dd(o,t):i==="verify"?jd(o):i==="inspect"?Cd(o):i==="doctor"?bN(o):i==="recover"?fN(o):i==="lifecycle"&&typeof o[0]=="string"?mN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?yN(o.slice(1)):i==="integrations"?gN(o):i==="maintenance"?hN(o):i==="config"&&o[0]==="inspect"?wN(o.slice(1)):i==="config"&&o[0]==="readiness"?IN(o.slice(1)):i==="operations"?vN(o):i==="baseline"?dN(o):i==="delivery"&&o[0]==="plan"?kN(o.slice(1)):i==="delivery"&&o[0]==="apply"?_N(o.slice(1)):i==="delivery"&&o[0]==="inspect"?AN(o.slice(1)):i==="observe"&&o[0]==="errors"?RN(o.slice(1)):i==="observe"&&o[0]==="error"?EN(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?PN(o.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as SN}from"node:http";import{readFile as DN,readdir as ST,rm as DT}from"node:fs/promises";import{execFile as jN}from"node:child_process";import{promisify as CN}from"node:util";import $N from"node:path";var LT=CN(jN),Td=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 TN(e){try{let t=JSON.parse(await DN($N.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 th(e){let t=new Wt(e.workspaceRoot),r=[...e.allowedOrigins??await TN(e.workspaceRoot)],n=new Td,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=SN(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){i.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>Xg(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof ae?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{o.once("error",c),o.listen(e.port??4318,"127.0.0.1",()=>{o.off("error",c),s()})});let a=o.address();if(a===null||typeof a=="string")throw new Error("Collector did not expose a TCP address");return{server:o,origin:`http://127.0.0.1:${a.port}`,snapshot:()=>({...i}),close:()=>new Promise((s,c)=>o.close(l=>l?c(l):s()))}}import{createHash as LN}from"node:crypto";import{createServer as xN}from"node:http";import{readFile as rh,realpath as nh}from"node:fs/promises";import rs from"node:path";var Ue=class extends Error{constructor(r){super(r);this.code=r}code};function VN(e){return"sha512-"+LN("sha512").update(e).digest("base64")}async function eo(e){let t=await nh(e).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await rh(rs.join(t,"index.json"),"utf8").catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Yr(JSON.parse(r))}catch{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=rs.join(t,o.assetName),s=rs.relative(t,await nh(a).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||rs.isAbsolute(s))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await rh(a);if(h(c)!==o.tarballDigest||VN(c)!==o.integrity)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(o.assetName,c)}return{root:t,bundle:n,assets:i}}function MN(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function ih(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 FN(e,t){let r=o=>o.split(/[.-]/u).map(a=>/^\d+$/u.test(a)?Number(a):a),n=r(e),i=r(t);for(let o=0;o<Math.max(n.length,i.length);o+=1){let a=n[o]??0,s=i[o]??0;if(a!==s)return typeof a=="number"&&typeof s=="number"?a-s:String(a).localeCompare(String(s))}return 0}function UN(e,t){let r=new Map,n=new Map;for(let i of[e,...t])for(let o of i.bundle.artifacts){let a=`${o.packageName}@${o.version}`,s=r.get(a);if(s!==void 0&&ih(s)!==ih(o))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(o.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.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 Ue("LOCAL_ARTIFACT_SERVER_INVALID");let t=await eo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(eo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=UN(t,r),o=e.hostname??"127.0.0.1",a=xN((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=i.artifacts.filter(u=>u.packageName===p).sort((u,m)=>FN(u.version,m.version));if(f.length>0){let u="http://"+o+":"+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),y=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(y.byteLength)),c.end(l==="HEAD"?void 0:y);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=i.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{a.once("error",c),a.listen(e.port,o,s)}).catch(()=>{throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+o+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>MN(a)})}import{createHash as qN}from"node:crypto";import{execFile as BN}from"node:child_process";import{cp as zN,mkdir as ah,mkdtemp as Ld,readFile as os,realpath as to,rename as GN,rm as sh,stat as JN,writeFile as is}from"node:fs/promises";import{tmpdir as WN}from"node:os";import Le from"node:path";import{promisify as KN}from"node:util";import{gunzipSync as YN}from"node:zlib";var HN=KN(BN),XN=["preinstall","install","postinstall","prepublish","prepare"],G=class extends Error{constructor(r){super(r);this.code=r}code};function ZN(e){return"sha512-"+qN("sha512").update(e).digest("base64")}async function QN(e,t){let r=await to(e).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let o=await to(Le.join(r,i)).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Le.relative(r,o);if(a!==i||a.startsWith("..")||Le.isAbsolute(a))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=await os(Le.join(o,"package.json")).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function e0(e,t){let r=new Map(e.map(o=>[String(o.manifest.name),String(o.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(o):a;if(s===void 0)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");i[o]=s}return Object.fromEntries(Object.entries(i).sort(([o],[a])=>o.localeCompare(a)))}function t0(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 i=n.toString("utf8",0,100).replace(/\0.*$/su,""),o=Number.parseInt(n.toString("utf8",124,136).replace(/\0.*$/su,"").trim(),8);if(!Number.isSafeInteger(o)||o<0)return;if(i===t)return e.subarray(r+512,r+512+o);r+=512+Math.ceil(o/512)*512}}function r0(e,t,r){let n;try{n=YN(e)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let i=t0(n,"package/package.json");if(i===void 0)throw new G("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[l])=>c.localeCompare(l)));if(o.name!==t.name||o.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new G("LOCAL_ARTIFACT_PACK_FAILED")}function n0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function i0(e,t,r){let n=Le.join(await Ld(Le.join(r,"stage-")),"package");await zN(e.root,n,{recursive:!0,filter:o=>Le.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await is(Le.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
221
|
+
`),n}async function o0(e,t,r){let n=e0(e,t.manifest),i=n0(t.manifest,n)?await i0(t,n,r):t.root,o;try{({stdout:o}=await HN("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:i,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a;try{a=JSON.parse(o)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let s=a[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let c=await os(Le.join(r,s)).catch(()=>{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let d=XN.filter(p=>Object.hasOwn(l??{},p));return r0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:ZN(c),tarballDigest:h(c),dependencies:n,lifecycleScripts:d},bytes:c}}async function ch(e,t){let r=await QN(e,t),n=await Ld(Le.join(await to(WN()),"dyyto-local-artifact-pack-"));try{let i=await Promise.all(r.map(a=>o0(r,a,n)));i.sort((a,s)=>(a.artifact.packageName+"@"+a.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let o=hd({artifacts:i.map(a=>a.artifact)});return{packages:r,bundle:o,bytes:new Map(i.map(a=>[a.artifact.assetName,a.bytes]))}}finally{await sh(n,{recursive:!0,force:!0})}}function ns(e,t){return Le.join(e,".dyyto","artifact-plans",t+".json")}function a0(e,t){return Le.join(e,".dyyto","package-artifacts",t)}async function lh(e){let t=await to(e.workspaceRoot).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await ch(t,e.packageRoots),n=e.now??new Date,i=wd({packageInputs:r.packages.map(o=>({relativeRoot:o.relativeRoot,manifestDigest:h(o.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await ah(Le.dirname(ns(t,i.planId)),{recursive:!0}),await is(ns(t,i.planId),JSON.stringify(i,null,2)+`
|
|
222
|
+
`,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await os(ns(t,i.planId),"utf8")!==JSON.stringify(i,null,2)+`
|
|
223
|
+
`)throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function dh(e){let t=await to(e.workspaceRoot).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await os(ns(t,e.approvedPlanId),"utf8").catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=vy(JSON.parse(r))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new G("LOCAL_ARTIFACT_PLAN_EXPIRED");let i=a0(t,n.bundle.bundleId);if(await JN(i).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=await ch(t,n.packageInputs.map(c=>c.relativeRoot));if(o.bundle.bundleId!==n.bundle.bundleId||o.packages.some((c,l)=>h(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=Le.dirname(i);await ah(a,{recursive:!0});let s=await Ld(Le.join(a,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>is(Le.join(s,c.assetName),o.bytes.get(c.assetName),{mode:292}))),await is(Le.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
|
|
224
|
+
`,{mode:292}),await GN(s,i)}catch(c){throw await sh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new G("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:i}}var yr=class extends Error{constructor(r){super(r);this.code=r}code};function ph(e){let t=[Yr(e.bundle),...(e.fallbackBundles??[]).map(Yr)],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 yr("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Wl({registryId:"registry.local.development",tenantId:"tenant.platform.maintainers",origin:"http://127.0.0.1/",scopes:["@aipt"],authentication:{kind:"anonymous-test"},capabilities:{read:!0,write:!1,provenance:!1,staging:!1},status:"enabled"}),i=Kl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),o=t.flatMap(c=>by({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(o.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 yr("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 yr("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let l=Object.freeze(c.packageSources.map(d=>s.get(`${d.packageName}@${d.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([i]),receipts:l,inspections:Object.freeze(c.packageSources.map(d=>{let p=a.get(`${d.packageName}@${d.version}`);return Object.freeze({...d,dependencies:p.dependencies,lifecycleScripts:p.lifecycleScripts})}))})}})}import{mkdir as s0,open as c0,readFile as Md,rename as l0,rm as d0,writeFile as p0}from"node:fs/promises";import Ln from"node:path";import{resolvePnpmWorkspaceLock as u0}from"./optional-runtime.js";var f0=h(k({schemaVersion:1,completedRequests:[]}));function uh(e){return h(k({schemaVersion:1,completedRequests:[...e].sort()}))}function Fd(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function xd(e){let t=Buffer.from(e).toString("utf8").split(/\r?\n/u),r=new Map,n=t.findIndex(i=>i==="importers:");if(n<0)throw new Error("RESOLUTION_WORKER_LOCK_INVALID");for(let i=n+1;i<t.length;){let o=/^ ([^\s][^:]*):(?:\s*\{\})?\s*$/u.exec(t[i]);if(!o){if(/^\S/u.test(t[i])&&t[i].trim())break;i+=1;continue}let a=[t[i]],s=i+1;for(;s<t.length&&(/^ /u.test(t[s])||!t[s].trim());)a.push(t[s]),s+=1;r.set(Fd(o[1]),h(Buffer.from(`${a.join(`
|
|
225
225
|
`)}
|
|
226
|
-
`))),i=s}return r}function
|
|
226
|
+
`))),i=s}return r}function Vd(e,t){let r=Buffer.from(e).toString("utf8").split(/\r?\n/u),n=r.findIndex(o=>o===`${t}:`),i=[];if(n<0)return i;for(let o=n+1;o<r.length&&!(/^\S/u.test(r[o])&&r[o].trim());){let a=/^ (.+):\s*$/u.exec(r[o]);if(!a){o+=1;continue}let s=[r[o]],c=o+1;for(;c<r.length&&(/^ /u.test(r[c])||!r[c].trim());)s.push(r[c]),c+=1;i.push({key:Fd(a[1]),bytes:Buffer.from(`${s.join(`
|
|
227
227
|
`)}
|
|
228
|
-
`)}),
|
|
229
|
-
`,{mode:384}),await
|
|
228
|
+
`)}),o=c}return i}function m0(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 g0(e,t,r){let n=new Map(Vd(e,"snapshots").map(i=>[i.key,i.bytes]));return Vd(e,"packages").map(i=>{let o=m0(i.key),a=/\bintegrity:\s*([^,}\s]+)/u.exec(Buffer.from(i.bytes).toString("utf8"));if(!o||!a)throw new Error("RESOLUTION_WORKER_LOCK_FACTS_INCOMPLETE");let s=Fd(a[1]),c=t.find(p=>p.packageName===o.packageName&&p.version===o.version),l=c?.registryId??r.find(p=>p.scopes.some(f=>o.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",d=n.get(i.key);return{identity:i.key,packageName:o.packageName,version:o.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:h(d??k({dependencies:[]}))}}).sort((i,o)=>i.identity.localeCompare(o.identity))}function fh(e={}){return async t=>{let r=await u0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:Ln.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=xd(t.currentLockfile),i=xd(r.lockfile),o=await On(t.topology.transactionRoot),a=new Map(o.map(p=>[p.relativeRoot,p.bytes])),s=await Md(Ln.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=[...i].map(([p,f])=>{let u=a.get(p);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:p,manifestDigest:h(u),preimageDigest:n.get(p)??h(k({absent:!0})),desiredDigest:f}}).sort((p,f)=>p.importerId.localeCompare(f.importerId)),l=g0(r.lockfile,t.sources,t.registryConfigs),d=Vd(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:h(k(d.map(p=>({identity:p.key,digest:h(p.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:h(k({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:h(k({desiredLockDigest:h(r.lockfile),packageFacts:l.map(({identity:p,integrity:f})=>({identity:p,integrity:f}))}))}}}async function y0(e){try{let t=JSON.parse(await Md(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==uh(t.completedRequests))throw new Error("RESOLUTION_WORKER_STATE_INVALID");return{schemaVersion:1,revision:t.revision,completedRequests:Object.freeze([...t.completedRequests])}}catch(t){if(t.code==="ENOENT")return{schemaVersion:1,revision:f0,completedRequests:Object.freeze([])};throw t}}function mh(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=Ba(JSON.parse(await Md(Ln.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 o=[...xd(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=Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(r.currentLockfile),desiredPackageJsonDigest:h(r.desiredPackageJson),sources:r.sources.map(({registryId:f,packageName:u,version:m,integrity:g})=>({registryId:f,packageName:u,version:m,integrity:g})),preservedImporterDigests:o.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),l=`pnpm11-node24-${h(k({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:f,revision:u})=>({registryId:f,revision:u})).sort((f,u)=>f.registryId.localeCompare(u.registryId))})).slice(7)}`;await s0(e.stateRoot,{recursive:!0});let d=Ln.join(e.stateRoot,`${l.slice(7)}.lease`),p;try{p=await c0(d,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=Ln.join(e.stateRoot,"state.json"),u=await y0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...u.completedRequests,s])].sort(),y=uh(g),w=ig({workerReleaseId:t,workerStateRevision:y,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:y,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),A=Ln.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await p0(A,`${JSON.stringify({schemaVersion:1,revision:y,completedRequests:g},null,2)}
|
|
229
|
+
`,{mode:384}),await l0(A,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:o}}finally{await p.close(),await d0(d,{force:!0})}}}}import{execFile as h0}from"node:child_process";import{mkdir as xn,mkdtemp as w0,readFile as Nt,readdir as I0,readlink as v0,realpath as qd,rename as b0,rm as gh,stat as k0,writeFile as Hr}from"node:fs/promises";import{tmpdir as _0}from"node:os";import pe from"node:path";import{promisify as A0}from"node:util";var R0=A0(h0);function yh(e,t){return pe.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function hh(e){return pe.join(e,".dyyto","resolution-worker")}function Ud(e){return pe.join(hh(e),"build-receipt.json")}async function E0(e){let t=[];async function r(n){for(let i of await I0(n,{withFileTypes:!0}).catch(o=>o.code==="ENOENT"?[]:Promise.reject(o))){let o=pe.join(n,i.name);if(i.isSymbolicLink()){let a=await v0(o);t.push({path:pe.relative(e,o),digest:h(k({symlink:a})),bytes:0})}else if(i.isDirectory())await r(o);else if(i.isFile()){let a=await Nt(o);t.push({path:pe.relative(e,o),digest:h(a),bytes:a.byteLength})}}}return await r(e),t.sort((n,i)=>n.path.localeCompare(i.path)),{cacheDigest:h(k(t)),cacheBytes:t.reduce((n,i)=>n+i.bytes,0)}}function wh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await w0(pe.join(await qd(_0()),"dyyto-resolution-warmup-")),n=pe.join(r,".home");await xn(n);try{await Hr(pe.join(r,"pnpm-workspace.yaml"),await Nt(pe.join(e,"pnpm-workspace.yaml"))),await Hr(pe.join(r,"pnpm-lock.yaml"),await Nt(pe.join(e,"pnpm-lock.yaml")));let i=await Nt(pe.join(e,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));i&&await Hr(pe.join(r,"package.json"),i);for(let d of await On(e)){let p=pe.join(r,...d.relativeRoot.split("/"));await xn(p,{recursive:!0}),await Hr(pe.join(p,"package.json"),d.bytes)}let o=pe.join(n,"userconfig.npmrc");await Hr(o,`ignore-scripts=true
|
|
230
230
|
strict-peer-dependencies=true
|
|
231
231
|
manage-package-manager-versions=false
|
|
232
|
-
`,{mode:384});let
|
|
233
|
-
`;return await
|
|
234
|
-
`,{mode:384}),await
|
|
235
|
-
`;return await
|
|
232
|
+
`,{mode:384});let a=pe.join(t,"store","shared"),s=pe.join(t,"cache");await xn(a,{recursive:!0}),await xn(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await R0("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:o,pnpm_config_store_dir:a},timeout:9e5,maxBuffer:8*1024*1024});return{...await E0(t),commandDigest:h(k({executable:"corepack",args:c,stdoutDigest:h(l.stdout),stderrDigest:h(l.stderr)}))}}finally{await gh(r,{recursive:!0,force:!0})}}}async function Ih(e){let t=await qd(e.workspaceRoot),r=e.now??new Date,[n,i]=await Promise.all([Nt(pe.join(t,"pnpm-workspace.yaml")),Nt(pe.join(t,"pnpm-lock.yaml"))]),o=h(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n)})),a=Id({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n),rootLockDigest:h(i),cacheNamespace:`pnpm11-node24-${o.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=yh(t,a.planId);await xn(pe.dirname(s),{recursive:!0});let c=`${JSON.stringify(a,null,2)}
|
|
233
|
+
`;return await Hr(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await Nt(s,"utf8")!==c)throw l}),a}async function vh(e){let t=await qd(e.workspaceRoot),r=_y(JSON.parse(await Nt(yh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new Ze("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,i]=await Promise.all([Nt(pe.join(t,"pnpm-workspace.yaml")),Nt(pe.join(t,"pnpm-lock.yaml"))]);if(h(n)!==r.workspaceManifestDigest||h(i)!==r.rootLockDigest)throw new Ze("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let o=hh(t),a=await Nt(Ud(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(a)return Ba(JSON.parse(a));await xn(o,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:o,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new Ze("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=vd({planId:r.planId,workerReleaseId:r.workerReleaseId,pnpmVersion:r.pnpmVersion,cacheNamespace:r.cacheNamespace,cacheDigest:s.cacheDigest,cacheBytes:s.cacheBytes,commandDigest:s.commandDigest,completedAt:(e.now??new Date).toISOString()}),l=pe.join(o,`build-receipt.${r.planId.slice(7)}.tmp`);return await Hr(l,`${JSON.stringify(c,null,2)}
|
|
234
|
+
`,{mode:384}),await b0(l,Ud(t)),c}catch(s){throw await k0(Ud(t)).then(()=>!0).catch(()=>!1)||await gh(pe.join(o,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as P0,readFile as Xr,realpath as bh,writeFile as N0}from"node:fs/promises";import Zr from"node:path";function kh(e,t){return Zr.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function _h(e){let t=await bh(e.projectRoot),r=await zt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await Xr(Zr.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await Xr(Zr.join(t,".dyyto","plans",`${n.planId}.json`));let i=JSON.parse(await Xr(Zr.join(r.transactionRoot,".dyyto","transactions",n.planId,"journal.json"),"utf8"));if(i.state!=="recovery-required"&&i.state!=="recovering"||!Array.isArray(i.operations))throw new Error("RECOVERY_OVERRIDE_INVALID");let o=[];for(let d of i.operations){if(d.before.kind!=="present"||!d.before.preimageDigest)continue;let p=await Xr(Zr.join(r.transactionRoot,...d.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!p)continue;let f=h(p);f!==d.before.digest&&f!==d.desiredDigest&&o.push({path:d.path,currentDigest:f,preimageDigest:d.before.preimageDigest})}let a=e.now??new Date,s=kd({transactionPlanId:n.planId,transactionRootDigest:h(r.transactionRoot),conflicts:o,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+30*6e4).toISOString()}),c=kh(t,s.planId);await P0(Zr.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
|
|
235
|
+
`;return await N0(c,l,{flag:"wx",mode:384}).catch(async d=>{if(d.code!=="EEXIST"||await Xr(c,"utf8")!==l)throw d}),s}async function Ah(e){let t=await bh(e.projectRoot),r=await zt(t),n=Ay(JSON.parse(await Xr(kh(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||h(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let i of n.conflicts){let o=await Xr(Zr.join(r.transactionRoot,...i.path.split("/")));if(h(o)!==i.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return Nl({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:i,currentDigest:o})=>({path:i,currentDigest:o}))})}function as(e){return e.endsWith(`
|
|
236
236
|
`)?e:`${e}
|
|
237
|
-
`}function
|
|
238
|
-
Next: ${e.error.nextStep}`;return{stdout:"",stderr:
|
|
237
|
+
`}function Rh(e,t,r){return t==="json"?{stdout:as(JSON.stringify(e)),stderr:""}:{stdout:as(r),stderr:""}}function Eh(e,t){if(t==="json")return{stdout:"",stderr:as(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
|
|
238
|
+
Next: ${e.error.nextStep}`;return{stdout:"",stderr:as(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as O0,readFile as no,realpath as Ph}from"node:fs/promises";import qe from"node:path";var yt=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function ro(e){let t=await O0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return no(e)}}async function Nh(e){let t=qe.dirname(e);for(;t!==qe.parse(t).root;){if(await ro(qe.join(t,"pnpm-workspace.yaml"))&&await ro(qe.join(t,"pnpm-lock.yaml"))&&await ro(qe.join(t,"project-capabilities.json")))return t;t=qe.dirname(t)}throw new yt("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function S0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Oh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),i=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();i&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
|
|
239
239
|
`)?"":`
|
|
240
240
|
`}verifyDepsBeforeRun: ${i}
|
|
241
|
-
`);let
|
|
241
|
+
`);let o=n.split(/\r?\n/u),a=[],s=!1;for(let l of o){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(`
|
|
242
242
|
`)?"":`
|
|
243
243
|
`}allowBuilds:
|
|
244
244
|
${c.map(l=>` ${l}`).join(`
|
|
245
245
|
`)}
|
|
246
|
-
`;else{let l=r.split(/\r?\n/u),
|
|
246
|
+
`;else{let l=r.split(/\r?\n/u),p=l.findIndex(f=>/^allowBuilds:\s*$/u.test(f))+1;for(;p<l.length&&(!l[p].trim()||/^\s/u.test(l[p]));)p+=1;l.splice(p,0,...c.map(f=>` ${f}`)),r=l.join(`
|
|
247
247
|
`)}return Buffer.from(r.endsWith(`
|
|
248
248
|
`)?r:`${r}
|
|
249
|
-
`)}async function
|
|
250
|
-
`);continue}r=i}catch{
|
|
251
|
-
`);continue}let n=await
|
|
252
|
-
`)}}import{createHash as
|
|
249
|
+
`)}async function Sh(e){let t=await Ph(qe.resolve(e.projectRoot)),r=await Nh(t),n=qe.relative(r,t).split(qe.sep).join("/");if(!n||n.startsWith("../"))throw new yt("WORKSPACE_TOPOLOGY_OWNER_MISSING");let i=await ro(qe.join(t,"pnpm-lock.yaml")),o=await ro(qe.join(t,"pnpm-workspace.yaml"));if(!i&&!o)throw new yt("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let a=await no(qe.join(r,"pnpm-lock.yaml")),s=await no(qe.join(r,"pnpm-workspace.yaml"));if(!S0(a.toString("utf8"),n))throw new yt("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(o&&!/^packages:\s*\[\]/mu.test(o.toString("utf8")))throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=o?Oh(s,o):s,l=[...h(c)!==h(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(s),desiredDigest:h(c)}]:[],...i?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(i)}]:[],...o?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(o)}]:[]],d=e.generatedAt??new Date().toISOString(),p=e.expiresAt??new Date(Date.parse(d)+30*6e4).toISOString(),f=Pe({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:h("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 Bt({projectRoot:t,transactionRoot:r,plan:f,now:d}),transactionRoot:r}}async function Dh(e){let t=await Ph(qe.resolve(e.projectRoot)),r=await Nh(t),n=await Mr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let i=new Map,o=n.operations.find(c=>c.path==="pnpm-workspace.yaml"&&c.kind==="replace");if(o){let c=await no(qe.join(t,"pnpm-workspace.yaml")),l=await no(qe.join(r,"pnpm-workspace.yaml")),d=Oh(l,c);if(h(d)!==o.desiredDigest)throw new yt("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");i.set("pnpm-workspace.yaml",d)}let a=await lr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:i,now:e.now??new Date().toISOString()}),s=await dr(a);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as D0}from"node:readline";import ss from"node:process";var j0=[{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 Bd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cs(e,t){return{jsonrpc:"2.0",id:e,result:t}}function io(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function C0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return cs(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:Fn},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 cs(r,{tools:j0});if(e.method!=="tools/call")return io(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Bd(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Bd(e.params.arguments))return io(r,-32602,"tools/call \u53C2\u6570\u65E0\u6548");let n=e.params.arguments??{};try{let i;if(e.params.name==="dyyto_catalog_search"){if(n.query!==void 0&&typeof n.query!="string")throw new Error("query \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(n.kind!==void 0&&n.kind!=="package"&&n.kind!=="capability")throw new Error("kind \u53EA\u63A5\u53D7 package \u6216 capability");if(n.limit!==void 0&&(!Number.isSafeInteger(n.limit)||Number(n.limit)<1||Number(n.limit)>200))throw new Error("limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570");i=await Ka({...typeof n.query=="string"?{query:n.query}:{},...n.kind==="package"||n.kind==="capability"?{kind:n.kind}:{},...typeof n.limit=="number"?{limit:n.limit}:{},...t===void 0?{}:{roots:t}})}else if(e.params.name==="dyyto_catalog_show"){if(typeof n.ref!="string"||n.ref.trim()==="")throw new Error("ref \u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32");i=await Ya({ref:n.ref,...t===void 0?{}:{roots:t}})}else return io(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return cs(r,{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i})}catch(i){let o=i instanceof Error?i.message:"Catalog \u5DE5\u5177\u6267\u884C\u5931\u8D25";return cs(r,{isError:!0,content:[{type:"text",text:o}]})}}async function jh(){let e=D0({input:ss.stdin,crlfDelay:1/0,terminal:!1});for await(let t of e){if(t.trim()==="")continue;let r;try{let i=JSON.parse(t);if(!Bd(i)||i.jsonrpc!=="2.0"||typeof i.method!="string"){ss.stdout.write(`${JSON.stringify(io(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
|
|
250
|
+
`);continue}r=i}catch{ss.stdout.write(`${JSON.stringify(io(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
|
|
251
|
+
`);continue}let n=await C0(r);n!==null&&ss.stdout.write(`${JSON.stringify(n)}
|
|
252
|
+
`)}}import{createHash as $0}from"node:crypto";import{spawnSync as T0}from"node:child_process";import{chmod as L0,lstat as x0,mkdir as V0,readdir as M0,readFile as Ht,realpath as Ch,rename as F0,unlink as U0,writeFile as q0}from"node:fs/promises";import _e from"node:path";var oo="1.1.0",Lt=Object.freeze({"@aipt/cli":"0.1.34","@aipt/idp-cli":"0.1.6","@aipt/idp-deploy":"0.1.10"}),$h=Object.entries(Lt).map(([e,t])=>`${e}@${t}`),Gd="<!-- dyyto:agent-policy:start -->",ao="<!-- dyyto:agent-policy:end -->",We=class extends Error{constructor(r,n){super(n);this.code=r}code},Je=e=>`sha256:${$0("sha256").update(e).digest("hex")}`,en=e=>Array.isArray(e)?`[${e.map(en).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)}:${en(r)}`).join(",")}}`:JSON.stringify(e),ls=`${Gd}
|
|
253
253
|
## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
|
|
254
254
|
|
|
255
255
|
\u672C\u9879\u76EE\u7531 Dyyto \u7EB3\u7BA1\u3002\u5F00\u59CB\u7F16\u7801\u524D\u6267\u884C \`dyyto ready --project .\`\uFF1B\u53EA\u6709\u72B6\u6001\u4E3A \`ready\` \u624D\u80FD\u58F0\u660E\u5F00\u53D1\u73AF\u5883\u5DF2\u5C31\u7EEA\u3002
|
|
@@ -259,16 +259,16 @@ ${c.map(l=>` ${l}`).join(`
|
|
|
259
259
|
- \u914D\u7F6E\u3001\u5BC6\u94A5\u548C\u8BC1\u4E66\u53EA\u4ECE\u4ED3\u5E93\u5916\u7ED1\u5B9A\u7684 Config Dir \u8BFB\u53D6\uFF0C\u7981\u6B62\u5199\u5165\u9879\u76EE\u73AF\u5883\u6587\u4EF6\u3002
|
|
260
260
|
- \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
|
|
261
261
|
- \u8BE6\u7EC6\u89C4\u8303\u4F7F\u7528 \`dyyto docs show --id engineering-workflow\` \u8BFB\u53D6\uFF0C\u7981\u6B62\u5728\u4E1A\u52A1\u4ED3\u5E93\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u3002
|
|
262
|
-
${
|
|
262
|
+
${ao}`;function B0(e,t){let r=`${t}
|
|
263
263
|
|
|
264
|
-
${
|
|
265
|
-
`,n=e.indexOf(
|
|
264
|
+
${ls}
|
|
265
|
+
`,n=e.indexOf(Gd),i=e.indexOf(ao);if(n<0&&i<0)return e.length===0?r:`${e.trimEnd()}
|
|
266
266
|
|
|
267
|
-
${
|
|
268
|
-
`;if(n<0||i<n)throw new We("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${
|
|
267
|
+
${ls}
|
|
268
|
+
`;if(n<0||i<n)throw new We("AGENT_POLICY_REGION_INVALID",`${t}\u4E2D\u7684Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002`);return`${e.slice(0,n)}${ls}${e.slice(i+ao.length)}`}function z0(e){let t=e.indexOf(Gd),r=e.indexOf(ao);if(t<0&&r<0)return e;if(t<0||r<t)throw new We("AGENT_POLICY_REGION_INVALID","Dyyto\u53D7\u7BA1\u533A\u57DF\u635F\u574F\u3002");let n=`${e.slice(0,t)}${e.slice(r+ao.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
|
|
269
269
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
|
|
270
270
|
name: dyyto-engineering`)?null:`${n}
|
|
271
|
-
`}var
|
|
271
|
+
`}var zd=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
|
|
272
272
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
|
|
273
273
|
alwaysApply: true
|
|
274
274
|
---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
|
|
@@ -277,12 +277,12 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
277
277
|
---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
|
|
278
278
|
name: dyyto-engineering
|
|
279
279
|
description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
|
|
280
|
-
---`]];async function
|
|
281
|
-
`,i=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:
|
|
282
|
-
`,
|
|
283
|
-
`;for(let[
|
|
284
|
-
`;if(l&&l!==
|
|
285
|
-
`),{plan:
|
|
280
|
+
---`]];async function Jd(e){if(!_e.isAbsolute(e))throw new We("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await Ch(e),r=await x0(t);if(!r.isDirectory()||r.isSymbolicLink())throw new We("BOOTSTRAP_PROJECT_INVALID","\u9879\u76EE\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u3002");return t}async function Qr(e){return Ht(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function ds(e,t){await V0(_e.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await q0(r,t,{mode:384,flag:"wx"}),await F0(r,e),await L0(e,e.endsWith(".json")?384:420)}function Th(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Lt["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:2f3072966d33b97b69c528b9db8ecb0dee0b6d1a36e2841f15b535ec2c802abb"},{id:"vibe-coding-guide",package:"@aipt/cli",version:Lt["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:668f49e7213af970624704a86c0366f47b137f6a1992e0d5f312eb066b752908"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:Lt["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:2040de770d2c2bd81eea709185e913afd6d6cf4c78f1e30c82e6bcb42b066de9"},{id:"idp-integration",package:"@aipt/idp-cli",version:Lt["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:5a69f99fd3dc6eee0c8d7af9663b1f1e0984aced240bf008c65418b478e2a65a"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Lt["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:d6aec46bb077edf239a9708ae7852c6679d6b6ae5f1f810ba7fed5aadb8cf90e"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:Lt["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:848663f2528d1f7de5cdffa6c2d86c3f272642a4e5257b450534b12c83b66bef"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:Lt["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:Je(en(e))}))}async function Lh(e){let t=await Jd(e),r=[];for(let[p,f]of zd){let u=await Qr(_e.join(t,p)),m=B0(u,f);r.push({path:p,preimageDigest:Je(u),desired:m,desiredDigest:Je(m)})}let n=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Lt},null,2)}
|
|
281
|
+
`,i=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:oo,digest:Je(ls)},adapters:zd.map(([p])=>p)},null,2)}
|
|
282
|
+
`,o=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:Th()},null,2)}
|
|
283
|
+
`;for(let[p,f]of[[".dyyto/toolchain.lock.json",n],[".dyyto/agent-policy.lock.json",i],[".dyyto/documentation.lock.json",o]]){let u=await Qr(_e.join(t,p));r.push({path:p,preimageDigest:Je(u),desired:f,desiredDigest:Je(f)})}let a={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:oo,files:r,createdAt:new Date().toISOString()},s={...a,planId:Je(en(a))},c=_e.join(t,".dyyto/plans/bootstrap",`${s.planId.slice(7)}.json`),l=await Qr(c),d=`${JSON.stringify(s,null,2)}
|
|
284
|
+
`;if(l&&l!==d)throw new We("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return l||await ds(c,d),{plan:s,planFile:c,changed:r.filter(p=>p.preimageDigest!==p.desiredDigest).map(p=>p.path)}}async function xh(e){let t=await Jd(e),r=[];for(let[c]of zd){let l=await Qr(_e.join(t,c)),d=z0(l);r.push({path:c,preimageDigest:Je(l),desired:d,desiredDigest:Je(d??"")})}let n=".dyyto/agent-policy.lock.json",i=await Qr(_e.join(t,n));r.push({path:n,preimageDigest:Je(i),desired:null,desiredDigest:Je("")});let o={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:oo,files:r,createdAt:new Date().toISOString()},a={...o,planId:Je(en(o))},s=_e.join(t,".dyyto/plans/bootstrap",`${a.planId.slice(7)}.json`);return await ds(s,`${JSON.stringify(a,null,2)}
|
|
285
|
+
`),{plan:a,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function Wd(e,t){if(!_e.isAbsolute(e))throw new We("BOOTSTRAP_PLAN_NOT_ABSOLUTE","Bootstrap Plan\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let r=JSON.parse(await Ht(await Ch(e),"utf8")),{planId:n,...i}=r;if(n!==t||Je(en(i))!==n)throw new We("BOOTSTRAP_PLAN_NOT_APPROVED","\u5FC5\u987B\u6279\u51C6\u6458\u8981\u6709\u6548\u7684\u7CBE\u786EBootstrap Plan\u3002 ");for(let a of r.files)if(Je(await Qr(_e.join(r.projectRoot,a.path)))!==a.preimageDigest)throw new We("BOOTSTRAP_PREIMAGE_CHANGED",`${a.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let o=_e.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let a of r.files){let s=_e.join(r.projectRoot,a.path),c=await Qr(s);c&&c!==a.desired&&await ds(_e.join(o,a.path),c),a.desired===null?c&&await U0(s):c!==a.desired&&await ds(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:o}}async function G0(e){let t=[],r=["packages","apps","services"];for(let n of r){let i=_e.join(e,n);try{let o=await M0(i,{withFileTypes:!0});for(let a of o){if(!a.isDirectory())continue;let s=_e.join(i,a.name,"package.json");try{let c=JSON.parse(await Ht(s,"utf8"));if(!c.name)continue;let l="incubating";c.dyyto?.tier?l=c.dyyto.tier:c.name.startsWith("@aipt/")||c.name.startsWith("@dyyto/")?l="platform-mirror":(a.name==="domain"||a.name==="persistence"||a.name==="application"||a.name==="api-contracts"||c.private===!0)&&(l="proprietary"),t.push({name:c.name,version:c.version||"0.0.0",relativePath:`${n}/${a.name}`,tier:l})}catch{}}}catch{}}return t}async function so(e){let t=await Jd(e),r={tools:Lt};try{r=JSON.parse(await Ht(_e.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:Th()};try{n=JSON.parse(await Ht(_e.join(t,".dyyto/documentation.lock.json"),"utf8"))}catch{}let i;try{i=JSON.parse(await Ht(_e.join(t,"project-capabilities.json"),"utf8"))}catch{try{i=JSON.parse(await Ht(_e.join(t,".dyyto/project-capabilities.json"),"utf8"))}catch{}}let o=await G0(t),a=m=>{let g=T0("git",["-C",t,...m],{encoding:"utf8",shell:!1});return g.status===0?g.stdout.trim():null},s=a(["branch","--show-current"]),c=a(["rev-parse","HEAD"]),l=a(["rev-parse","--show-toplevel"]),d=await Ht(_e.join(t,".dyyto/agent-policy.lock.json"),"utf8").then(m=>JSON.parse(m)).catch(()=>null),p=await Ht(_e.join(t,".dyyto/documentation.lock.json"),"utf8").then(m=>JSON.parse(m)).catch(()=>null),f=d?.policy?.version===oo&&Array.isArray(p?.documents)?"current":d===null&&p===null?"not-bootstrapped":"drifted",u={schemaVersion:1,kind:"DyytoContextBundle",projectRoot:t,repository:{root:l,branch:s,commit:c},bootstrap:{status:f,policyVersion:d?.policy?.version??null,expectedPolicyVersion:oo},intent:"\u4F18\u5148\u590D\u7528Dyyto Catalog\u80FD\u529B\uFF0C\u901A\u8FC7Plan/Apply/Verify\u5B89\u5168\u6F14\u8FDB\uFF1B\u914D\u7F6E\u4E0E\u5BC6\u94A5\u4F4D\u4E8E\u4ED3\u5E93\u5916Config Dir\u3002",requiredBeforeCoding:["dyyto doctor --project .","dyyto catalog search"],toolchain:r.tools,documents:n.documents,prohibitions:["\u4E0D\u5F97\u5728\u4ED3\u5E93\u5185\u4FDD\u5B58Secret","\u4E0D\u5F97\u7ED5\u8FC7\u4E0D\u53EF\u53D8Plan\u5199\u5165\u5DE5\u7A0B\u8D44\u4EA7","\u4E0D\u5F97\u590D\u5236\u5E73\u53F0\u957F\u6587\u6863\u5230\u4E1A\u52A1\u4ED3\u5E93","\u4E0D\u5F97\u5C06\u4E1A\u52A1\u4E13\u5C5ESchema\u6216\u79C1\u6709\u72B6\u6001\u6CC4\u9732\u5230\u901A\u7528\u5305\u4E2D"],assetPerception:{localPackages:o,declaredCapabilities:i||null,proprietaryCount:o.filter(m=>m.tier==="proprietary").length,incubatingCount:o.filter(m=>m.tier==="incubating").length},vibeCodingDecisionGuide:{rulePrioritizeCatalog:"\u65B0\u589E\u529F\u80FD\u6216\u901A\u7528\u4F9D\u8D56\u524D\uFF0C\u5FC5\u987B\u5148\u6267\u884C dyyto catalog search \u68C0\u7D22\u5E76\u590D\u7528\u5DF2\u53D1\u884C\u7684\u901A\u7528\u80FD\u529B\u5305\u3002",ruleLocalIncubation:"\u82E5 Catalog \u5C1A\u65E0\u73B0\u6210\u80FD\u529B\uFF0C\u5E94\u5728 packages/ \u5EFA\u7ACB\u72EC\u7ACB\u5B50\u5305\u8FDB\u884C\u5B75\u5316\uFF1B\u4E25\u7981\u5F15\u7528\u4E1A\u52A1\u4E13\u7528\u6301\u4E45\u5C42\u6216\u679A\u4E3E\uFF0C\u5E76\u9644\u5E26 100% \u8986\u76D6\u7387\u7684 Vitest \u5355\u6D4B\u3002",rulePublishPromotion:"\u672C\u5730\u901A\u7528\u5305\u6210\u719F\u4E14\u901A\u8FC7 Golden Set \u9A8C\u6536\u540E\uFF0C\u4F7F\u7528 dyyto package publish \u53D1\u5E03\u5230\u79C1\u6709/\u516C\u5F00\u955C\u50CF\uFF0C\u4E1A\u52A1\u4ED3\u5E93\u968F\u540E\u5207\u56DE\u8BED\u4E49\u7248\u672C\u4F9D\u8D56\u3002"}};return{...u,contextDigest:Je(en(u))}}var Vh=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
|
|
286
286
|
|
|
287
287
|
\u672C\u5730 Sources \u5148\u8FD0\u884C idp-setup init \u5E76\u52A0\u8F7D\u751F\u6210\u7684\u73AF\u5883\u6587\u4EF6\u3002Workspace\u3001\u72EC\u7ACB\u9879\u76EE\u3001Package \u4E0E Application \u5747\u5148\u6267\u884C context \u4E0E doctor\uFF0C\u518D\u67E5\u8BE2 Catalog\u3001\u751F\u6210\u5E76\u5BA1\u6838 Plan\u3001Apply \u540E\u8FD0\u884C Verify\u3002\u914D\u7F6E\u548C\u5BC6\u94A5\u59CB\u7EC8\u4F4D\u4E8E\u4ED3\u5E93\u5916 Config Dir\uFF1B\u90E8\u7F72\u53EA\u4F7F\u7528 idp \u4E0E idpctl bin\u3002
|
|
288
288
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
@@ -290,7 +290,7 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
290
290
|
\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
|
|
291
291
|
`,"local-deployment":`# \u672C\u5730\u90E8\u7F72
|
|
292
292
|
|
|
293
|
-
\u4F7F\u7528 idpctl app config-
|
|
293
|
+
\u4F7F\u7528 idpctl app config-prepare \u81EA\u52A8\u51C6\u5907\u672C\u5730\u914D\u7F6E\uFF0C\u5916\u90E8\u51ED\u636E\u901A\u8FC7 config-set-secret/import-secret \u63D0\u4F9B\uFF0C\u65E5\u5E38\u4EE5 local app up \u590D\u7528 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
|
|
294
294
|
`,"vibe-coding-guide":`# Vibe Coding \u63A5\u5165
|
|
295
295
|
|
|
296
296
|
\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 dyyto ready\uFF1B\u5B83\u7EDF\u4E00\u89E3\u6790 context\u3001\u914D\u7F6E readiness \u4E0E doctor\uFF0C\u518D\u67E5\u8BE2 Catalog\u3002Agent \u89C4\u5219\u53EA\u4FDD\u7559\u77ED\u5165\u53E3\uFF0C\u5B8C\u6574\u89C4\u8303\u7531\u7248\u672C\u5316 npm \u5305\u63D0\u4F9B\u3002
|
|
@@ -303,80 +303,83 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
303
303
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
304
304
|
|
|
305
305
|
\u672A\u77E5\u53C2\u6570\u65F6\u5148\u8FD0\u884C type -a idpctl \u4E0E idpctl --version --json\uFF0C\u786E\u8BA4 PATH \u547D\u4E2D\u9879\u76EE\u9501\u5B9A\u7248\u672C\u3002
|
|
306
|
-
`})[e];import{createHash as
|
|
307
|
-
`)),u}async function
|
|
308
|
-
`)),s}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
Plan\uFF1A${
|
|
306
|
+
`})[e];import{createHash as Mh}from"node:crypto";import{execFile as J0}from"node:child_process";import{chmod as W0,mkdir as Fh,open as K0,readFile as hr,realpath as us,rename as Y0,rm as H0,stat as X0}from"node:fs/promises";import we from"node:path";import{promisify as Z0}from"node:util";var Hd=Z0(J0),tn=e=>`sha256:${Mh("sha256").update(e).digest("hex")}`,Uh=e=>`sha512-${Mh("sha512").update(e).digest("base64")}`,Q0=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,wr=class extends Error{constructor(r,n,i){super(n);this.code=r;this.nextStep=i;this.name="PackagePublishError"}code;nextStep},Q=(e,t,r)=>{throw new wr(e,t,r)};function eO(e){let t=new Map;for(let r of e.split(/\r?\n/u)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");i<1&&Q("PACKAGE_PUBLISH_CONFIG_INVALID","Dyyto\u7EC4\u4EF6.env\u5305\u542B\u975E\u6CD5\u884C\u3002");let o=n.slice(0,i).trim();t.has(o)&&Q("PACKAGE_PUBLISH_CONFIG_INVALID",`Dyyto\u7EC4\u4EF6.env\u91CD\u590D\u58F0\u660E${o}\u3002`),t.set(o,n.slice(i+1).trim())}return t}function tO(e,t){let r=new Map;for(let i of e.split(/\r?\n/u)){let o=i.trim(),a=o.indexOf("=");!o||o.startsWith("#")||a<1||r.set(o.slice(0,a).trim(),o.slice(a+1).trim())}let n=t.startsWith("@")?t.slice(0,t.indexOf("/")):void 0;return(n?r.get(`${n}:registry`):void 0)??r.get("registry")}async function Kd(e,t){we.isAbsolute(e)||Q("PACKAGE_PUBLISH_CONFIG_INVALID",`${t}\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002`);let r=await us(e).catch(()=>Q("PACKAGE_PUBLISH_CONFIG_MISSING",`${t}\u4E0D\u5B58\u5728\u3002`)),n=await X0(r);return(!n.isFile()||(n.mode&63)!==0)&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE",`${t}\u5FC5\u987B\u662F\u6743\u9650600\u7684\u666E\u901A\u6587\u4EF6\u3002`),r}async function Xd(e,t){let r=process.env.IDP_CONFIG_DIR;(!r||!we.isAbsolute(r))&&Q("PACKAGE_PUBLISH_CONFIG_MISSING","\u7F3A\u5C11\u7EDD\u5BF9IDP_CONFIG_DIR\uFF1B\u5148\u8FD0\u884Cidp-setup init\u5E76source generated/sources.env\u3002");let n=await us(r).catch(()=>Q("PACKAGE_PUBLISH_CONFIG_MISSING","IDP_CONFIG_DIR\u4E0D\u5B58\u5728\u3002"));if(e==="public"){let p=await Kd(we.join(n,"secrets/npm-public/npmrc"),"\u516C\u5171npmrc");return{target:e,registry:"https://registry.npmjs.org/",userConfig:p}}let i=we.join(n,"components/dyyto"),o=await Kd(we.join(i,".env"),"Dyyto\u7EC4\u4EF6.env"),a=eO(await hr(o,"utf8")).get("DYYTO_NPMRC_FILE");(!a||we.isAbsolute(a))&&Q("PACKAGE_PUBLISH_CONFIG_INVALID","DYYTO_NPMRC_FILE\u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u76F8\u5BF9\u8DEF\u5F84\u3002");let s=await Kd(we.resolve(i,a),"\u79C1\u6709npmrc");we.relative(i,s).startsWith("..")&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u79C1\u6709npmrc\u8D8A\u8FC7Dyyto\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u3002");let c=tO(await hr(s,"utf8"),t);c||Q("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709npmrc\u7F3A\u5C11\u5F53\u524D\u5305scope\u7684Registry Binding\u3002");let l=new URL(c),d=new Set(["localhost","127.0.0.1","::1"]).has(l.hostname);return l.protocol!=="https:"&&!(l.protocol==="http:"&&d)&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u975E\u56DE\u73AF\u79C1\u6709Registry\u5FC5\u987B\u4F7F\u7528HTTPS\u3002"),l.hostname.endsWith("npmjs.org")&&Q("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709Registry\u4E0D\u80FD\u6307\u5411npmjs.org\u3002"),{target:e,registry:l.toString(),userConfig:s}}function qh(e){let t={...process.env,NPM_CONFIG_USERCONFIG:e,npm_config_userconfig:e};return delete t.NPM_TOKEN,delete t.npm_token,delete t.NPM_CONFIG_REGISTRY,delete t.npm_config_registry,t}async function Yd(e,t){await Fh(we.dirname(e),{recursive:!0,mode:448}),await W0(we.dirname(e),448);let r=await hr(e).catch(o=>o.code==="ENOENT"?null:Promise.reject(o));if(r){Buffer.from(r).equals(Buffer.from(t))||Q("PACKAGE_PUBLISH_IMMUTABLE_CONFLICT",`\u4E0D\u53EF\u53D8\u6587\u4EF6\u51B2\u7A81\uFF1A${e}`);return}let n=`${e}.${process.pid}.tmp`,i=await K0(n,"wx",384);try{await i.writeFile(t),await i.sync()}finally{await i.close()}await Y0(n,e)}function rO(e){return!e||e==="all"?["private","public"]:e==="private"||e==="public"?[e]:Q("PACKAGE_PUBLISH_ARGUMENT_INVALID","--target\u53EA\u652F\u6301private\u3001public\u6216all\u3002")}async function Bh(e){let t=await us(we.resolve(e.packageRoot)).catch(()=>Q("PACKAGE_MANIFEST_NOT_FOUND","Package\u76EE\u5F55\u4E0D\u5B58\u5728\u3002")),r=await hr(we.join(t,"package.json"),"utf8").catch(()=>Q("PACKAGE_MANIFEST_NOT_FOUND",`\u627E\u4E0D\u5230package.json\uFF1A${t}`)),n;try{n=JSON.parse(r)}catch{return Q("PACKAGE_MANIFEST_INVALID","package.json\u4E0D\u662F\u5408\u6CD5JSON\u3002")}(typeof n.name!="string"||!n.name)&&Q("PACKAGE_NAME_INVALID","package.json\u7F3A\u5C11\u5408\u6CD5name\u3002"),(typeof n.version!="string"||!Q0.test(n.version))&&Q("PACKAGE_VERSION_INVALID","package.json version\u4E0D\u7B26\u5408SemVer\u3002");for(let m of[n.dependencies,n.optionalDependencies])for(let[g,y]of Object.entries(m??{}))typeof y=="string"&&y.startsWith("workspace:")&&Q("PACKAGE_DEPENDENCY_UNPUBLISHABLE",`\u8FD0\u884C\u65F6\u4F9D\u8D56${g}\u4ECD\u4F7F\u7528${y}\u3002`);let i=rO(e.target);await Promise.all(i.map(m=>Xd(m,n.name)));let o=we.join(t,".dyyto/package-publish-artifacts");await Fh(o,{recursive:!0,mode:448});let a;try{a=JSON.parse((await Hd("npm",["pack","--pack-destination",o,"--json"],{cwd:t})).stdout)[0]}catch(m){return Q("PACKAGE_PACK_FAILED",`npm pack\u5931\u8D25\uFF1A${String(m?.stderr??m?.message).slice(0,300)}`)}(!a||typeof a.filename!="string")&&Q("PACKAGE_PACK_FAILED","npm pack\u6CA1\u6709\u8FD4\u56DE\u5236\u54C1\u6587\u4EF6\u540D\u3002");let s=we.join(o,a.filename),c=await hr(s),l=tn(c),d=we.posix.join(".dyyto/package-publish-artifacts",`${l}.tgz`),p=we.join(t,d);s!==p&&(await Yd(p,c),await H0(s,{force:!0}));let f={schemaVersion:2,kind:"PackagePublishPlan",packageName:n.name,version:n.version,packageRoot:t,manifestDigest:tn(r),targets:i,access:e.access??n.publishConfig?.access??"public",tag:e.tag??n.publishConfig?.tag??"latest",tarballDigest:l,integrity:Uh(c),artifactFile:d,filesCount:a.entryCount??a.files?.length??0,unpackedBytes:a.unpackedSize??c.byteLength},u=Object.freeze({...f,planId:tn(JSON.stringify(f))});return await Yd(we.join(t,".dyyto/package-publish-plans",`${u.planId}.json`),Buffer.from(`${JSON.stringify(u,null,2)}
|
|
307
|
+
`)),u}async function Zd(e,t){/^sha256:[a-f0-9]{64}$/u.test(t)||Q("PACKAGE_PUBLISH_APPROVAL_INVALID","--approve/--plan\u5FC5\u987B\u662F\u5B8C\u6574Plan ID\u3002");let r=await us(we.resolve(e)),n=JSON.parse(await hr(we.join(r,".dyyto/package-publish-plans",`${t}.json`),"utf8"));(n.schemaVersion!==2||n.kind!=="PackagePublishPlan"||n.planId!==t||n.packageRoot!==r)&&Q("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u65E0\u6548\u6216\u4E0D\u5C5E\u4E8E\u5F53\u524DPackage\u3002");let{planId:i,...o}=n;return tn(JSON.stringify(o))!==t&&Q("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u6458\u8981\u4E0D\u5339\u914D\u3002"),n}async function ps(e,t){try{let r=JSON.parse((await Hd("npm",["view",`${t.packageName}@${t.version}`,"version","dist.integrity","bin","--json","--registry",e.registry],{env:qh(e.userConfig)})).stdout);return{exists:!0,integrity:r["dist.integrity"],bin:r.bin}}catch(r){if(/E404|404 Not Found|No match found/u.test(String(r?.stderr??r?.message)))return{exists:!1};throw r}}async function nO(e,t){for(let r=0;r<8;r+=1){let n=await ps(e,t);if(n.exists&&n.integrity===t.integrity)return n;await new Promise(i=>setTimeout(i,500*(r+1)))}return ps(e,t)}async function zh(e,t){let r=await Zd(e,t);return{planId:t,packageName:r.packageName,version:r.version,expectedIntegrity:r.integrity,results:await Promise.all(r.targets.map(async n=>{let i=await Xd(n,r.packageName);return{target:n,registry:i.registry,...await ps(i,r)}}))}}async function Gh(e){let t=await hr(we.join(e.packageRoot,"package.json"),"utf8");tn(t)!==e.manifestDigest&&Q("PACKAGE_PUBLISH_PREIMAGE_CHANGED","package.json\u5728Plan\u540E\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0Plan\u3002");let r=we.resolve(e.packageRoot,e.artifactFile);we.relative(e.packageRoot,r).startsWith("..")&&Q("PACKAGE_PUBLISH_ARTIFACT_INVALID","\u5236\u54C1\u8D8A\u8FC7Package\u76EE\u5F55\u3002");let n=await hr(r);(tn(n)!==e.tarballDigest||Uh(n)!==e.integrity)&&Q("PACKAGE_PUBLISH_ARTIFACT_CHANGED","\u5236\u54C1\u4E0E\u6279\u51C6Plan\u4E0D\u4E00\u81F4\u3002");let i=[];for(let c of e.targets){let l=await Xd(c,e.packageName),d=await ps(l,e);if(d.exists){d.integrity!==e.integrity&&Q("PACKAGE_PUBLISH_CONFLICT",`${l.registry}\u5DF2\u6709\u540C\u7248\u672C\u4E0D\u540C\u5236\u54C1\u3002`),i.push({target:c,registry:l.registry,status:"already-published",integrity:d.integrity});continue}try{await Hd("npm",["publish",r,"--registry",l.registry,"--tag",e.tag,"--access",e.access],{cwd:e.packageRoot,env:qh(l.userConfig)})}catch(f){return Q("PACKAGE_PUBLISH_FAILED",`${c}\u53D1\u5E03\u5931\u8D25\uFF1A${String(f?.stderr??f?.message).slice(0,300)}`)}let p=await nO(l,e);(!p.exists||p.integrity!==e.integrity)&&Q("PACKAGE_PUBLISH_VERIFY_FAILED",`${c}\u53D1\u5E03\u540Eintegrity\u590D\u9A8C\u5931\u8D25\uFF1B\u53EF\u4F7F\u7528\u540C\u4E00Plan\u5B89\u5168\u91CD\u8BD5\u3002`),i.push({target:c,registry:l.registry,status:"published",integrity:p.integrity})}let o=new Date().toISOString(),a={schemaVersion:2,kind:"PackagePublishReceipt",planId:e.planId,packageName:e.packageName,version:e.version,tarballDigest:e.tarballDigest,results:i,publishedAt:o},s=Object.freeze({...a,receiptId:tn(JSON.stringify(a))});return await Yd(we.join(e.packageRoot,".dyyto/package-publish-receipts",`${s.receiptId}.json`),Buffer.from(`${JSON.stringify(s,null,2)}
|
|
308
|
+
`)),s}import{createHash as iO}from"node:crypto";import{mkdir as oO,readFile as aO,realpath as tp,rename as sO,writeFile as cO}from"node:fs/promises";import Mn from"node:path";import{spawnSync as lO}from"node:child_process";var ep=e=>Array.isArray(e)?`[${e.map(ep).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${ep(r)}`).join(",")}}`:JSON.stringify(e),Vn=e=>`sha256:${iO("sha256").update(ep(e)).digest("hex")}`,rn=async e=>aO(e,"utf8").catch(t=>t.code==="ENOENT"?null:Promise.reject(t));async function fs(e,t){await oO(Mn.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await cO(r,`${JSON.stringify(t,null,2)}
|
|
309
|
+
`,{flag:"wx",mode:384}),await sO(r,e)}var Qd=(e,t)=>{let r=lO("git",["-C",e,...t],{encoding:"utf8",shell:!1});if(r.status!==0||!r.stdout.trim())throw new Error("DEVELOPMENT_GIT_REVISION_UNAVAILABLE");return r.stdout.trim()};async function Jh(e){let t=await tp(e.projectRoot),r=await so(t);if(r.bootstrap.status!=="current")throw new Error("DEVELOPMENT_BOOTSTRAP_NOT_CURRENT");let n=e.source??"direct",i={repository:Qd(t,["config","--get","remote.origin.url"]),branch:Qd(t,["branch","--show-current"]),commit:Qd(t,["rev-parse","HEAD"])},o=Oy({source:n,intentId:n==="direct"?`direct:${i.branch}:${i.commit.slice(0,12)}`:`${e.requirementId}:${e.taskId}`,title:e.title,summary:e.summary,repository:i,requirementId:e.requirementId??null,taskId:e.taskId??null,acceptance:e.acceptance??[]}),a=Sy({intent:o,worktreePath:t,engineeringContextDigest:r.contextDigest,startedAt:new Date().toISOString()}),s=Mn.join(t,".dyyto/sessions/current.json"),c=await rn(s);if(c){let f=JSON.parse(c);if(f.state==="active"&&f.sessionId!==a.sessionId)throw new Error("DEVELOPMENT_SESSION_CONFLICT")}let l={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"start",projectRoot:t,preimageDigest:Vn(c??""),session:a},d={...l,planId:Vn(l)},p=Mn.join(t,".dyyto/plans/development",`${d.planId.slice(7)}.json`);if(await rn(p)||await fs(p,d),e.apply){if(Vn(await rn(s)??"")!==d.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await fs(s,a)}return{status:e.apply?"active":"planned",planId:d.planId,planFile:p,session:a}}async function Wh(e){let t=Mn.join(await tp(e),".dyyto/sessions/current.json"),r=await rn(t);if(!r)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");return JSON.parse(r)}async function Kh(e,t){let r=await tp(e),n=Mn.join(r,".dyyto/sessions/current.json"),i=await rn(n);if(!i)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");let o=Dy(JSON.parse(i),new Date().toISOString()),a={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"finish",projectRoot:r,preimageDigest:Vn(i),session:o},s={...a,planId:Vn(a)},c=Mn.join(r,".dyyto/plans/development",`${s.planId.slice(7)}.json`);if(await rn(c)||await fs(c,s),t){if(Vn(await rn(n)??"")!==s.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await fs(n,o)}return{status:t?"finished":"planned",planId:s.planId,planFile:c,session:o}}function Ee(e){e.stdout.length>0&&be.stdout.write(e.stdout),e.stderr.length>0&&be.stderr.write(e.stderr)}async function uO(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),i=e[n+1],o=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||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||o.some(p=>!/^sha256:[a-f0-9]{64}$/u.test(p))||!Number.isSafeInteger(s)||s<1||s>65535)throw new j({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 eo(Qe.resolve(r,".dyyto","package-artifacts",i)),d=await Promise.all(o.map(p=>eo(Qe.resolve(r,".dyyto","package-artifacts",p))));if(l.bundle.bundleId!==i)throw new yr("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:ph({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:mh({stateRoot:Qe.resolve(r,".dyyto","resolution-worker"),engine:fh()}),packageStoreRoot:Qe.resolve(r,".dyyto","resolution-worker","store")}}async function ux(e){let t=e.includes("--json")?"json":"human";try{if(e[0]==="dev"&&e[1]==="session"){let n=e[2],i=e.indexOf("--project"),o=Qe.resolve(i<0?be.cwd():e[i+1]??""),a;if(n==="show")a=await Wh(o);else if(n==="finish")a=await Kh(o,e.includes("--apply"));else if(n==="start"){let s=u=>{let m=e.indexOf(u);return m<0?void 0:e[m+1]},c=s("--title"),l=s("--summary"),d=s("--source"),p=s("--requirement"),f=s("--task");if(!c||!l)throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session start \u9700\u8981 --title \u4E0E --summary\u3002",exitCode:2});a=await Jh({projectRoot:o,title:c,summary:l,...d?{source:d}:{},...p?{requirementId:p}:{},...f?{taskId:f}:{},acceptance:e.flatMap((u,m)=>u==="--accept"&&e[m+1]?[e[m+1]]:[]),apply:e.includes("--apply")})}else throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session \u53EA\u652F\u6301 start\u3001show\u3001finish\u3002",exitCode:2});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`dev-session-${n}`,result:a})}
|
|
310
|
+
`:`${JSON.stringify(a,null,2)}
|
|
311
|
+
`,stderr:""});return}if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new We("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let o=await xh(Qe.resolve(i)),a=e.includes("--apply")?await Wd(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:a})}
|
|
312
|
+
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${o.plan.planId}
|
|
313
|
+
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new j({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 o=await Lh(Qe.resolve(i)),a=e.includes("--apply");if(a&&!e.includes("--skip-tool-install")){let c=be.env.PNPM_HOME;if(!c||!Qe.isAbsolute(c))throw new We("BOOTSTRAP_PNPM_HOME_REQUIRED","\u7F3A\u5C11\u7EDD\u5BF9PNPM_HOME\uFF1B\u5148\u8FD0\u884Cidp-setup init\uFF0C\u6216\u4F7F\u7528idp-setup bootstrap\u4F5C\u4E3A\u9879\u76EE\u9996\u6B21\u5165\u53E3\u3002");let l=dO("corepack",["pnpm","add","--global","--global-bin-dir",c,...$h],{encoding:"utf8",shell:!1,env:be.env});if(l.error||l.status!==0)throw new We("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 Wd(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:a?"bootstrap-apply":"bootstrap-plan",result:s})}
|
|
314
|
+
`:a?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
315
|
+
Plan\uFF1A${o.plan.planId}
|
|
313
316
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
314
317
|
Next\uFF1Adyyto context --project ${i}
|
|
315
|
-
`:`Bootstrap Plan\uFF1A${
|
|
316
|
-
\u6587\u4EF6\uFF1A${
|
|
317
|
-
\u53D8\u66F4\uFF1A${
|
|
318
|
+
`:`Bootstrap Plan\uFF1A${o.plan.planId}
|
|
319
|
+
\u6587\u4EF6\uFF1A${o.planFile}
|
|
320
|
+
\u53D8\u66F4\uFF1A${o.changed.join("\u3001")||"\u65E0"}
|
|
318
321
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
319
|
-
`,stderr:""});return}if(e[0]==="context"){if(e[1]!==void 0&&e[1]!=="resolve"&&!e[1].startsWith("--"))throw new j({code:"CLI_ARGUMENT_INVALID",message:"context \u53EA\u652F\u6301 resolve \u5B50\u547D\u4EE4\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto context resolve --project <\u7EDD\u5BF9\u8DEF\u5F84>\u3002"});let n=e.indexOf("--project"),i=n<0?
|
|
320
|
-
`:`\u4E0A\u4E0B\u6587\uFF1A${
|
|
321
|
-
\u5206\u652F\uFF1A${
|
|
322
|
-
\u63D0\u4EA4\uFF1A${
|
|
323
|
-
Bootstrap\uFF1A${
|
|
322
|
+
`,stderr:""});return}if(e[0]==="context"){if(e[1]!==void 0&&e[1]!=="resolve"&&!e[1].startsWith("--"))throw new j({code:"CLI_ARGUMENT_INVALID",message:"context \u53EA\u652F\u6301 resolve \u5B50\u547D\u4EE4\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto context resolve --project <\u7EDD\u5BF9\u8DEF\u5F84>\u3002"});let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"context --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let o=await so(Qe.resolve(i));Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context-resolve",result:o})}
|
|
323
|
+
`:`\u4E0A\u4E0B\u6587\uFF1A${o.contextDigest}
|
|
324
|
+
\u5206\u652F\uFF1A${o.repository.branch??"\u672A\u8BC6\u522B"}
|
|
325
|
+
\u63D0\u4EA4\uFF1A${o.repository.commit??"\u672A\u8BC6\u522B"}
|
|
326
|
+
Bootstrap\uFF1A${o.bootstrap.status}
|
|
324
327
|
|
|
325
|
-
${
|
|
328
|
+
${o.intent}
|
|
326
329
|
|
|
327
330
|
\u7F16\u7801\u524D\uFF1A
|
|
328
|
-
${
|
|
331
|
+
${o.requiredBeforeCoding.map(a=>`- ${a}`).join(`
|
|
329
332
|
`)}
|
|
330
333
|
|
|
331
334
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
332
|
-
${
|
|
335
|
+
${o.prohibitions.map(a=>`- ${a}`).join(`
|
|
333
336
|
`)}
|
|
334
|
-
`,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?
|
|
337
|
+
`,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?be.cwd():e[n+1];if(!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"ready --project\u7F3A\u5C11\u76EE\u5F55\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u5DF2Bootstrap\u9879\u76EE\u3002"});let o=Qe.resolve(i),a=await so(o),c=(await pO(Qe.join(o,"project-capabilities.json"),"utf8").then(b=>JSON.parse(b)).catch(()=>null))?.profile?.id??null,l=c==="workspace-root",d=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]).has(c),f=(await ts(["config","readiness",l?"--workspace":"--project",o,"--check","--json"])).value.result,u=null,m=0;l&&(u=(await ts(["doctor","--workspace",o,"--json"])).value.result,m=u.status==="healthy"?0:4);let g=l?f.summary.total===f.summary.ready:f.state==="ready"||!d&&f.state==="not-declared",y=a.bootstrap.status!=="current"||!g||m!==0?"blocked":c===null?"attention":"ready",w={schemaVersion:1,kind:"DevelopmentReadinessReport",projectRoot:o,status:y,context:a,config:f,doctor:u},A=y==="ready"?0:y==="attention"?3:4;Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"ready",result:w})}
|
|
335
338
|
`:`${y==="ready"?"\u2713":y==="attention"?"!":"\u2717"} \u5F00\u53D1\u5C31\u7EEA\u72B6\u6001\uFF1A${y}
|
|
336
|
-
\u4E0A\u4E0B\u6587\uFF1A${
|
|
337
|
-
Bootstrap\uFF1A${
|
|
339
|
+
\u4E0A\u4E0B\u6587\uFF1A${a.contextDigest}
|
|
340
|
+
Bootstrap\uFF1A${a.bootstrap.status}
|
|
338
341
|
\u914D\u7F6E\uFF1A${g?"ready":"blocked"}
|
|
339
342
|
\u5DE5\u7A0B\u68C0\u67E5\uFF1A${m===0?"\u901A\u8FC7":"\u963B\u585E"}
|
|
340
343
|
${y==="ready"?"\u5F53\u524D\u9879\u76EE\u53EF\u4EE5\u5F00\u59CB Vibe Coding\u3002":"\u8BF7\u5148\u5904\u7406\u4E0A\u8FF0\u95EE\u9898\uFF0C\u518D\u5F00\u59CB Vibe Coding\u3002"}
|
|
341
|
-
`,stderr:""}),
|
|
342
|
-
`:
|
|
343
|
-
`:`${
|
|
344
|
+
`,stderr:""}),be.exitCode=A;return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),i=e[n+1],o=i?Vh(i):void 0;if(!o)throw new j({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"});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:i,content:o}})}
|
|
345
|
+
`:o,stderr:""});return}if(e[0]==="package"&&e[1]==="publish"||e[0]==="publish"){let n=e[0]==="publish"?1:2,i=e.slice(n),o=i[0];if(!new Set(["plan","apply","inspect"]).has(o??""))throw new wr("PACKAGE_PUBLISH_ACTION_REQUIRED","\u53D1\u5E03\u5FC5\u987B\u663E\u5F0F\u4F7F\u7528plan\u3001apply\u6216inspect\u3002","\u5148\u8FD0\u884Cdyyto package publish plan\u3002 ");let a=i.indexOf("--package-dir"),s=a>=0&&i[a+1]?Qe.resolve(i[a+1]):be.cwd(),c=i.indexOf("--access"),l=c>=0?i[c+1]:void 0,d=i.indexOf("--tag"),p=d>=0?i[d+1]:void 0;if(i.includes("--registry")||i.some(u=>u.startsWith("--registry=")))throw new wr("PACKAGE_PUBLISH_REGISTRY_FORBIDDEN","Registry\u53EA\u80FD\u6765\u81EAIDP_CONFIG_DIR\uFF0C\u7981\u6B62\u547D\u4EE4\u884C\u8986\u76D6\u3002");let f;if(o==="plan"){let u=i.indexOf("--target"),m=u>=0?i[u+1]:"all";f=await Bh({packageRoot:s,target:m,...l?{access:l}:{},...p?{tag:p}:{}})}else{let u=o==="apply"?"--approve":"--plan",m=i.indexOf(u),g=i[m+1];if(!g)throw new wr("PACKAGE_PUBLISH_APPROVAL_INVALID",`${o}\u7F3A\u5C11${u}\u3002`);f=o==="apply"?await Gh(await Zd(s,g)):await zh(s,g)}Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`package-publish-${o}`,result:f})}
|
|
346
|
+
`:`${o==="plan"?"\u53D1\u5E03Plan\u5DF2\u751F\u6210":o==="apply"?"\u53D1\u5E03Apply\u5DF2\u5B8C\u6210":"\u53D1\u5E03\u72B6\u6001\u5DF2\u68C0\u67E5"}\u3002
|
|
344
347
|
${JSON.stringify(f,null,2)}
|
|
345
|
-
`,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new j({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
|
|
346
|
-
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${
|
|
347
|
-
\u72B6\u6001\uFF1A${
|
|
348
|
-
Next\uFF1Adyyto topology apply --project ${i} --approve ${
|
|
349
|
-
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],
|
|
348
|
+
`,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new j({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 jh();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 j({code:"CLI_ARGUMENT_INVALID",message:"catalog export \u53EA\u63A5\u53D7 --output - \u548C\u53EF\u9009 --generated-at <ISO UTC>\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto catalog export --output -\u3002"})}let i=e.indexOf("--output");if(i<0||e[i+1]!=="-")throw new j({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 o=e.indexOf("--generated-at"),a=o<0?new Date().toISOString():e[o+1];be.stdout.write(By(await qy({generatedAt:a})));return}if(e[0]==="topology"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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 o=await Sh({projectRoot:i});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:o})}
|
|
349
|
+
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${o.plan.planId}
|
|
350
|
+
\u72B6\u6001\uFF1A${o.plan.state}
|
|
351
|
+
Next\uFF1Adyyto topology apply --project ${i} --approve ${o.plan.planId}
|
|
352
|
+
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({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 Dh({projectRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
|
|
350
353
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
351
354
|
Next\uFF1Adyyto topology inspect --project ${i}
|
|
352
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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
|
|
353
|
-
`:`Recovery Override Plan\uFF1A${
|
|
354
|
-
\u51B2\u7A81\uFF1A${
|
|
355
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],
|
|
355
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({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 o=await _h({projectRoot:i});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:o}})}
|
|
356
|
+
`:`Recovery Override Plan\uFF1A${o.planId}
|
|
357
|
+
\u51B2\u7A81\uFF1A${o.conflicts.length}
|
|
358
|
+
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({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 Ah({projectRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
|
|
356
359
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
357
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],
|
|
360
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--maximum-bytes"),a=Number(e[o+1]);if(n<0||i===void 0||o<0||!Number.isSafeInteger(a)||a<1)throw new j({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 Ih({workspaceRoot:i,maximumBytes:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
|
|
358
361
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
359
362
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
360
363
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
361
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],
|
|
364
|
+
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({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 vh({workspaceRoot:i,approvedPlanId:a,warmup:wh()});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
|
|
362
365
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
363
366
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
364
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],
|
|
365
|
-
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${
|
|
366
|
-
Bundle\uFF1A${
|
|
367
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||i===void 0||o.length===0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let a=await lh({workspaceRoot:i,packageRoots:o});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:a}})}
|
|
368
|
+
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${a.planId}
|
|
369
|
+
Bundle\uFF1A${a.bundle.bundleId}
|
|
367
370
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
368
|
-
Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${
|
|
369
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],
|
|
371
|
+
Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${a.planId}
|
|
372
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({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 dh({workspaceRoot:i,approvedPlanId:a});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
|
|
370
373
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
371
374
|
Channel\uFF1Adevelopment
|
|
372
375
|
Next\uFF1Adyyto artifacts serve --workspace ${i} --bundle ${s.bundleId} --port 4873
|
|
373
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],
|
|
374
|
-
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${
|
|
375
|
-
\u4E3B Bundle\uFF1A${
|
|
376
|
-
Fallback Bundles\uFF1A${
|
|
376
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--bundle"),a=e[o+1],s=e.flatMap((f,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),l=Number(e[c+1]);if(n<0||i===void 0||o<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 j({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:Qe.resolve(i,".dyyto","package-artifacts",a),fallbackBundleRoots:s.map(f=>Qe.resolve(i,".dyyto","package-artifacts",f)),port:l});Ee({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"}})}
|
|
377
|
+
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${d.origin}
|
|
378
|
+
\u4E3B Bundle\uFF1A${d.bundle.bundleId}
|
|
379
|
+
Fallback Bundles\uFF1A${d.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
|
|
377
380
|
Channel\uFF1Adevelopment
|
|
378
|
-
`,stderr:""});let
|
|
381
|
+
`,stderr:""});let p=async()=>{await d.close(),be.exit(0)};be.once("SIGINT",p),be.once("SIGTERM",p),await new Promise(()=>{})}if(e[0]==="observe"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1];if(n<0||i===void 0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Observe serve requires --workspace.",exitCode:2,nextStep:"Run dyyto --help."});let o=e.indexOf("--port"),a=o<0?void 0:Number(e[o+1]);if(a!==void 0&&(!Number.isSafeInteger(a)||a<1||a>65535))throw new j({code:"CLI_ARGUMENT_INVALID",message:"Observe serve --port is invalid.",exitCode:2,nextStep:"Choose an available TCP port."});let s=await th({workspaceRoot:i,...a===void 0?{}:{port:a}});Ee({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
|
|
379
382
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
380
|
-
`,stderr:""});let c=async()=>{await s.close(),
|
|
383
|
+
`,stderr:""});let c=async()=>{await s.close(),be.exit(0)};be.once("SIGINT",c),be.once("SIGTERM",c),await new Promise(()=>{})}let r=await ts(e,await uO(e));Ee(Rh(r.value,r.outputMode,r.human)),r.exitCode!==void 0&&(be.exitCode=r.exitCode)}catch(r){if(be.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;be.stderr.write(`${r.stack??r.message}${s.map(l=>`
|
|
381
384
|
Cause: ${l}`).join("")}
|
|
382
|
-
`)}let n=r;if(r instanceof We)n=new j({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 Ie)n=new j({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof C)n=new j({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 j({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof Ae)n=new j({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 j({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 Ue)n=new j({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 G)n=new j({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
|
|
385
|
+
`)}let n=r;if(r instanceof We)n=new j({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 Ie)n=new j({code:r.code,message:r.message,exitCode:3,nextStep:"Run dyyto plan and review the current project state."});else if(r instanceof C)n=new j({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 j({code:r.code,message:r.message,exitCode:3,nextStep:"Inspect the project profile and resolve conflicts before continuing."});else if(r instanceof Ae)n=new j({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 j({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 Ue)n=new j({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 G)n=new j({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 yr)n=new j({code:r.code,message:r.code,exitCode:4,nextStep:"\u6838\u5BF9\u6279\u51C6\u7684 Bundle\u3001candidate Release \u4E0E loopback Registry \u53C2\u6570\u3002"});else if(r instanceof Ze)n=new j({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 Oe)n=new j({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 yt)n=new j({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 j({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 wr)n=new j({code:r.code,message:r.message,exitCode:4,nextStep:r.nextStep??"\u68C0\u67E5 package.json \u89C4\u8303\u4E0E Registry \u6743\u9650\u540E\u91CD\u8BD5\u3002"});else if(r instanceof D){let s={NPM_AUTHENTICATION_REQUIRED:"\u8BF7\u5728 Plan \u7ED1\u5B9A\u7684\u53D7\u4FE1 CI \u4E2D\u68C0\u67E5 Trusted Publishing \u914D\u7F6E\uFF1B\u4E0D\u8981\u5411 Dyyto \u63D0\u4F9B token\u3002",NPM_AUTHORIZATION_DENIED:"\u8BF7\u7531 npm \u5305\u7EF4\u62A4\u8005\u68C0\u67E5\u5305\u6743\u9650\u4E0E\u53D1\u5E03\u7B56\u7565\uFF0C\u7136\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002",NPM_2FA_REQUIRED:"\u8BF7\u7531\u7EF4\u62A4\u8005\u5728 npmjs.com \u6216\u72EC\u7ACB\u4EA4\u4E92\u5F0F npm CLI \u5B8C\u6210\u53CC\u91CD\u9A8C\u8BC1\u3002",NPM_TRUSTED_PUBLISHER_MISMATCH:"\u8BF7\u6838\u5BF9 npm Trusted Publisher \u7684\u4ED3\u5E93\u3001\u5DE5\u4F5C\u6D41\u3001\u73AF\u5883\u4E0E stage-only action\u3002",NPM_TOKEN_POLICY_UNVERIFIED:"\u8BF7\u6539\u7528\u53D7\u652F\u6301\u7684 OIDC Trusted Publishing \u73AF\u5883\uFF1BProduction apply \u4E0D\u63A5\u53D7\u4F20\u7EDF token \u8DEF\u5F84\u3002",NPM_STAGE_UNSUPPORTED:"\u8BF7\u786E\u8BA4\u5305\u5DF2\u5B58\u5728\u3001\u8D26\u6237\u542F\u7528\u53CC\u91CD\u9A8C\u8BC1\uFF0C\u5E76\u4F7F\u7528 Node 24.18.0 \u4E0E npm 11.16.0\u3002",NPM_STAGE_CONFLICT:"\u8BF7\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7CBE\u786E\u7248\u672C\uFF1B\u4E0D\u8981\u8986\u76D6\u6216\u91CD\u590D\u6682\u5B58\u3002",NPM_PROVENANCE_REQUIRED:"\u8BF7\u6062\u590D Trusted Publishing provenance\uFF0C\u5E76\u518D\u6B21\u8FD0\u884C\u53EA\u8BFB inspect\u3002",NPM_REGISTRY_PROPAGATION_PENDING:"\u8BF7\u7A0D\u540E\u518D\u6B21\u8FD0\u884C delivery inspect\uFF1B\u4E0D\u8981\u91CD\u590D\u6682\u5B58\u3002",NPM_REGISTRY_OUTCOME_UNKNOWN:"\u8BF7\u5148\u5728 npmjs.com \u68C0\u67E5\u8BE5\u7248\u672C\u4E0E stage \u72B6\u6001\uFF1B\u7ED3\u679C\u786E\u8BA4\u524D\u4E0D\u8981\u91CD\u8BD5\u5199\u64CD\u4F5C\u3002"},c=r.code==="DELIVERY_EXECUTION_UNKNOWN"||r.code==="NPM_REGISTRY_OUTCOME_UNKNOWN";n=new j({code:r.code,message:r.message,exitCode:c?5:4,nextStep:s[r.code]??(c?"Inspect the delivery target before retrying.":"Review the Delivery Plan and current project state.")})}let i=rp(n),o=n instanceof j?n:i===null?null:new j(i),a={schemaVersion:1,ok:!1,error:{code:o?.code??"CLI_INTERNAL_ERROR",message:o?.message??"The CLI could not complete the command.",...o?.nextStep===void 0?{}:{nextStep:o.nextStep}}};Ee(Eh(a,t)),be.exitCode=o?.exitCode??1}}export{ux as runCommand};
|