@aipt/cli 0.1.44 → 0.1.48
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 +178 -178
- package/dist/application.js +98 -98
- package/dist/chunk.js +1 -1
- package/dist/optional-runtime.js +28 -28
- package/dist/package-releases/aipt--cli/0.1.43/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.44/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.45/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.46/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.47/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.48/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.16/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.17/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.18/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.19/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.14/release.json +33 -0
- package/docs/bootstrap.md +1 -1
- package/docs/vibe-coding-guide.md +1 -1
- package/documentation-manifest.json +3 -3
- package/package.json +23 -21
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
import{a as E,b as cn,c as zn,d as cd,e as j,f as ld,g as pd,h as dd,i as ud,j as fd}from"./chunk.js";var Wn=E(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.regexpCode=H.getEsmExportName=H.getProperty=H.safeStringify=H.stringify=H.strConcat=H.addCodeArg=H.str=H._=H.nil=H._Code=H.Name=H.IDENTIFIER=H._CodeOrName=void 0;var Gn=class{};H._CodeOrName=Gn;H.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ar=class extends Gn{constructor(t){if(super(),!H.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}}};H.Name=Ar;var lt=class extends Gn{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 Ar&&(r[n.str]=(r[n.str]||0)+1),r),{})}};H._Code=lt;H.nil=new lt("");function md(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Is(r,t[n]),r.push(e[++n]);return new lt(r)}H._=md;var ws=new lt("+");function gd(e,...t){let r=[Jn(e[0])],n=0;for(;n<t.length;)r.push(ws),Is(r,t[n]),r.push(ws,Jn(e[++n]));return aw(r),new lt(r)}H.str=gd;function Is(e,t){t instanceof lt?e.push(...t._items):t instanceof Ar?e.push(t):e.push(lw(t))}H.addCodeArg=Is;function aw(e){let t=1;for(;t<e.length-1;){if(e[t]===ws){let r=sw(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function sw(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof Ar||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 Ar))return`"${e}${t.slice(1)}`}function cw(e,t){return t.emptyStr()?e:e.emptyStr()?t:gd`${e}${t}`}H.strConcat=cw;function lw(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Jn(Array.isArray(e)?e.join(","):e)}function pw(e){return new lt(Jn(e))}H.stringify=pw;function Jn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}H.safeStringify=Jn;function dw(e){return typeof e=="string"&&H.IDENTIFIER.test(e)?new lt(`.${e}`):md`[${e}]`}H.getProperty=dw;function uw(e){if(typeof e=="string"&&H.IDENTIFIER.test(e))return new lt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}H.getEsmExportName=uw;function fw(e){return new lt(e.toString())}H.regexpCode=fw});var ks=E(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.ValueScope=Qe.ValueScopeName=Qe.Scope=Qe.varKinds=Qe.UsedValueState=void 0;var Xe=Wn(),vs=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},yo;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(yo||(Qe.UsedValueState=yo={}));Qe.varKinds={const:new Xe.Name("const"),let:new Xe.Name("let"),var:new Xe.Name("var")};var ho=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Xe.Name?t:this.name(t)}name(t){return new Xe.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Qe.Scope=ho;var wo=class extends Xe.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Xe._)`.${new Xe.Name(r)}[${n}]`}};Qe.ValueScopeName=wo;var mw=(0,Xe._)`\n`,bs=class extends ho{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?mw:Xe.nil}}get(){return this._scope}name(t){return new wo(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 l=s.get(a);if(l)return l}else s=this._values[o]=new Map;s.set(a,i);let c=this._scope[o]||(this._scope[o]=[]),p=c.length;return c[p]=r.ref,i.setValue(r,{property:o,itemIndex:p}),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,Xe._)`${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=Xe.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(p=>{if(c.has(p))return;c.set(p,yo.Started);let l=r(p);if(l){let d=this.opts.es5?Qe.varKinds.var:Qe.varKinds.const;o=(0,Xe._)`${o}${d} ${p} = ${l};${this.opts._n}`}else if(l=i?.(p))o=(0,Xe._)`${o}${l}${this.opts._n}`;else throw new vs(p);c.set(p,yo.Completed)})}return o}};Qe.ValueScope=bs});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 G=Wn(),kt=ks(),rr=Wn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return rr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return rr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return rr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return rr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return rr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return rr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return rr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return rr.Name}});var ko=ks();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return ko.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return ko.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return ko.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return ko.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var qt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},_s=class extends qt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?kt.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=pn(this.rhs,t,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},Io=class extends qt{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 G.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=pn(this.rhs,t,r),this}get names(){let t=this.lhs instanceof G.Name?{}:{...this.lhs.names};return bo(t,this.rhs)}},As=class extends Io{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Rs=class extends qt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Es=class extends qt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Ps=class extends qt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Ns=class extends qt{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=pn(this.code,t,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},Kn=class extends qt{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)||(gw(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>Pr(t,r.names),{})}},Bt=class extends Kn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Os=class extends Kn{},ln=class extends Bt{};ln.kind="else";var Rr=class e extends Bt{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 ln(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(yd(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=pn(this.condition,t,r),this}get names(){let t=super.names;return bo(t,this.condition),this.else&&Pr(t,this.else.names),t}};Rr.kind="if";var Er=class extends Bt{};Er.kind="for";var Ss=class extends Er{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=pn(this.iteration,t,r),this}get names(){return Pr(super.names,this.iteration.names)}},Ds=class extends Er{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?kt.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=bo(super.names,this.from);return bo(t,this.to)}},vo=class extends Er{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=pn(this.iterable,t,r),this}get names(){return Pr(super.names,this.iterable.names)}},Yn=class extends Bt{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)}};Yn.kind="func";var Hn=class extends Kn{render(t){return"return "+super.render(t)}};Hn.kind="return";var js=class extends Bt{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&&Pr(t,this.catch.names),this.finally&&Pr(t,this.finally.names),t}},Zn=class extends Bt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Zn.kind="catch";var Xn=class extends Bt{render(t){return"finally"+super.render(t)}};Xn.kind="finally";var Cs=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=t,this._scope=new kt.Scope({parent:t}),this._nodes=[new Os]}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 _s(t,o,n)),o}const(t,r,n){return this._def(kt.varKinds.const,t,r,n)}let(t,r,n){return this._def(kt.varKinds.let,t,r,n)}var(t,r,n){return this._def(kt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Io(t,r,n))}add(t,r){return this._leafNode(new As(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==G.nil&&this._leafNode(new Ns(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,G.addCodeArg)(r,i));return r.push("}"),new G._Code(r)}if(t,r,n){if(this._blockNode(new Rr(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 Rr(t))}else(){return this._elseNode(new ln)}endIf(){return this._endBlockNode(Rr,ln)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ss(t),r)}forRange(t,r,n,i,o=this.opts.es5?kt.varKinds.var:kt.varKinds.let){let a=this._scope.toName(t);return this._for(new Ds(o,a,r,n),()=>i(a))}forOf(t,r,n,i=kt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof G.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,G._)`${a}.length`,s=>{this.var(o,(0,G._)`${a}[${s}]`),n(o)})}return this._for(new vo("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?kt.varKinds.var:kt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,G._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new vo("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(Er)}label(t){return this._leafNode(new Rs(t))}break(t){return this._leafNode(new Es(t))}return(t){let r=new Hn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Hn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new js;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Zn(o),r(o)}return n&&(this._currNode=i.finally=new Xn,this.code(n)),this._endBlockNode(Zn,Xn)}throw(t){return this._leafNode(new Ps(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=G.nil,n,i){return this._blockNode(new Yn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Yn)}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 Rr))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=Cs;function Pr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function bo(e,t){return t instanceof G._CodeOrName?Pr(e,t.names):e}function pn(e,t,r){if(e instanceof G.Name)return n(e);if(!i(e))return e;return new G._Code(e._items.reduce((o,a)=>(a instanceof G.Name&&(a=n(a)),a instanceof G._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 G._Code&&o._items.some(a=>a instanceof G.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function gw(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function yd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,G._)`!${$s(e)}`}F.not=yd;var yw=hd(F.operators.AND);function hw(...e){return e.reduce(yw)}F.and=hw;var ww=hd(F.operators.OR);function Iw(...e){return e.reduce(ww)}F.or=Iw;function hd(e){return(t,r)=>t===G.nil?r:r===G.nil?t:(0,G._)`${$s(t)} ${e} ${$s(r)}`}function $s(e){return e instanceof G.Name?e:(0,G._)`(${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(),vw=Wn();function bw(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=bw;function kw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(vd(e,t),!bd(t,e.self.RULES.all))}U.alwaysValidSchema=kw;function vd(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]||Ad(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=vd;function bd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=bd;function _w(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=_w;function Aw({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=Aw;function Rw(e){return kd(decodeURIComponent(e))}U.unescapeFragment=Rw;function Ew(e){return encodeURIComponent(Ls(e))}U.escapeFragment=Ew;function Ls(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Ls;function kd(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=kd;function Pw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=Pw;function wd({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,o,a,s)=>{let c=a===void 0?o:a instanceof ae.Name?(o instanceof ae.Name?e(i,o,a):t(i,o,a),a):o instanceof ae.Name?(t(i,a,o),o):r(o,a);return s===ae.Name&&!(c instanceof ae.Name)?n(i,c):c}}U.mergeEvaluated={props:wd({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} || {}`),xs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:_d}),items:wd({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 _d(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&xs(e,r,t),r}U.evaluatedPropsToName=_d;function xs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}U.setEvaluated=xs;var Id={};function Nw(e,t){return e.scopeValue("func",{ref:t,code:Id[t.code]||(Id[t.code]=new vw._Code(t.code))})}U.useFunc=Nw;var Ts;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Ts||(U.Type=Ts={}));function Ow(e,t,r){if(e instanceof ae.Name){let n=t===Ts.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():"/"+Ls(e)}U.getErrorPath=Ow;function Ad(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=Ad});var pt=E(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});var Fe=x(),Sw={data:new Fe.Name("data"),valCxt:new Fe.Name("valCxt"),instancePath:new Fe.Name("instancePath"),parentData:new Fe.Name("parentData"),parentDataProperty:new Fe.Name("parentDataProperty"),rootData:new Fe.Name("rootData"),dynamicAnchors:new Fe.Name("dynamicAnchors"),vErrors:new Fe.Name("vErrors"),errors:new Fe.Name("errors"),this:new Fe.Name("this"),self:new Fe.Name("self"),scope:new Fe.Name("scope"),json:new Fe.Name("json"),jsonPos:new Fe.Name("jsonPos"),jsonLen:new Fe.Name("jsonLen"),jsonPart:new Fe.Name("jsonPart")};Vs.default=Sw});var Qn=E(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.extendErrors=Ue.resetErrorsCount=Ue.reportExtraError=Ue.reportError=Ue.keyword$DataError=Ue.keywordError=void 0;var W=x(),_o=q(),Ye=pt();Ue.keywordError={message:({keyword:e})=>(0,W.str)`must pass "${e}" keyword validation`};Ue.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,W.str)`"${e}" keyword must be ${t} ($data)`:(0,W.str)`"${e}" keyword is invalid ($data)`};function Dw(e,t=Ue.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=Pd(e,t,r);n??(a||s)?Rd(o,c):Ed(i,(0,W._)`[${c}]`)}Ue.reportError=Dw;function jw(e,t=Ue.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=Pd(e,t,r);Rd(i,s),o||a||Ed(n,Ye.default.vErrors)}Ue.reportExtraError=jw;function Cw(e,t){e.assign(Ye.default.errors,t),e.if((0,W._)`${Ye.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,W._)`${Ye.default.vErrors}.length`,t),()=>e.assign(Ye.default.vErrors,null)))}Ue.resetErrorsCount=Cw;function $w({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,Ye.default.errors,s=>{e.const(a,(0,W._)`${Ye.default.vErrors}[${s}]`),e.if((0,W._)`${a}.instancePath === undefined`,()=>e.assign((0,W._)`${a}.instancePath`,(0,W.strConcat)(Ye.default.instancePath,o.errorPath))),e.assign((0,W._)`${a}.schemaPath`,(0,W.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,W._)`${a}.schema`,r),e.assign((0,W._)`${a}.data`,n))})}Ue.extendErrors=$w;function Rd(e,t){let r=e.const("err",t);e.if((0,W._)`${Ye.default.vErrors} === null`,()=>e.assign(Ye.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${Ye.default.vErrors}.push(${r})`),e.code((0,W._)`${Ye.default.errors}++`)}function Ed(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,W._)`new ${e.ValidationError}(${t})`):(r.assign((0,W._)`${n}.errors`,t),r.return(!1))}var Nr={keyword:new W.Name("keyword"),schemaPath:new W.Name("schemaPath"),params:new W.Name("params"),propertyName:new W.Name("propertyName"),message:new W.Name("message"),schema:new W.Name("schema"),parentSchema:new W.Name("parentSchema")};function Pd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,W._)`{}`:Tw(e,t,r)}function Tw(e,t,r={}){let{gen:n,it:i}=e,o=[Lw(i,r),xw(e,r)];return Vw(e,t,o),n.object(...o)}function Lw({errorPath:e},{instancePath:t}){let r=t?(0,W.str)`${e}${(0,_o.getErrorPath)(t,_o.Type.Str)}`:e;return[Ye.default.instancePath,(0,W.strConcat)(Ye.default.instancePath,r)]}function xw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,W.str)`${t}/${e}`;return r&&(i=(0,W.str)`${i}${(0,_o.getErrorPath)(r,_o.Type.Str)}`),[Nr.schemaPath,i]}function Vw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:p,topSchemaRef:l,schemaPath:d}=s;n.push([Nr.keyword,i],[Nr.params,typeof t=="function"?t(e):t||(0,W._)`{}`]),c.messages&&n.push([Nr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([Nr.schema,a],[Nr.parentSchema,(0,W._)`${l}${d}`],[Ye.default.data,o]),p&&n.push([Nr.propertyName,p])}});var Od=E(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.boolOrEmptySchema=dn.topBoolOrEmptySchema=void 0;var Mw=Qn(),Fw=x(),Uw=pt(),qw={message:"boolean schema is false"};function Bw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Nd(e,!1):typeof r=="object"&&r.$async===!0?t.return(Uw.default.data):(t.assign((0,Fw._)`${n}.errors`,null),t.return(!0))}dn.topBoolOrEmptySchema=Bw;function zw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Nd(e)):r.var(t,!0)}dn.boolOrEmptySchema=zw;function Nd(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,Mw.reportError)(i,qw,void 0,t)}});var Ms=E(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getRules=un.isJSONType=void 0;var Gw=["string","number","integer","boolean","null","object","array"],Jw=new Set(Gw);function Ww(e){return typeof e=="string"&&Jw.has(e)}un.isJSONType=Ww;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:{}}}un.getRules=Kw});var Fs=E(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.shouldUseRule=nr.shouldUseGroup=nr.schemaHasRulesForType=void 0;function Yw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Sd(e,n)}nr.schemaHasRulesForType=Yw;function Sd(e,t){return t.rules.some(r=>Dd(e,r))}nr.shouldUseGroup=Sd;function Dd(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))}nr.shouldUseRule=Dd});var ei=E(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.reportTypeError=qe.checkDataTypes=qe.checkDataType=qe.coerceAndCheckDataType=qe.getJSONTypes=qe.getSchemaTypes=qe.DataType=void 0;var Hw=Ms(),Zw=Fs(),Xw=Qn(),V=x(),jd=q(),fn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(fn||(qe.DataType=fn={}));function Qw(e){let t=Cd(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}qe.getSchemaTypes=Qw;function Cd(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Hw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}qe.getJSONTypes=Cd;function eI(e,t){let{gen:r,data:n,opts:i}=e,o=tI(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Zw.schemaHasRulesForType)(e,t[0]));if(a){let s=qs(t,n,i.strictNumbers,fn.Wrong);r.if(s,()=>{o.length?rI(e,t,o):Bs(e)})}return a}qe.coerceAndCheckDataType=eI;var $d=new Set(["string","number","integer","boolean","null"]);function tI(e,t){return t?e.filter(r=>$d.has(r)||t==="array"&&r==="array"):[]}function rI(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(qs(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let p of r)($d.has(p)||p==="array"&&o.coerceTypes==="array")&&c(p);n.else(),Bs(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),nI(e,s)});function c(p){switch(p){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
|
|
1
|
+
import{a as P,b as cn,c as zn,d as ld,e as j,f as pd,g as dd,h as ud,i as fd,j as md}from"./chunk.js";var Wn=P(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.regexpCode=H.getEsmExportName=H.getProperty=H.safeStringify=H.stringify=H.strConcat=H.addCodeArg=H.str=H._=H.nil=H._Code=H.Name=H.IDENTIFIER=H._CodeOrName=void 0;var Gn=class{};H._CodeOrName=Gn;H.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ar=class extends Gn{constructor(t){if(super(),!H.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}}};H.Name=Ar;var lt=class extends Gn{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 Ar&&(r[n.str]=(r[n.str]||0)+1),r),{})}};H._Code=lt;H.nil=new lt("");function gd(e,...t){let r=[e[0]],n=0;for(;n<t.length;)vs(r,t[n]),r.push(e[++n]);return new lt(r)}H._=gd;var Is=new lt("+");function yd(e,...t){let r=[Jn(e[0])],n=0;for(;n<t.length;)r.push(Is),vs(r,t[n]),r.push(Is,Jn(e[++n]));return cw(r),new lt(r)}H.str=yd;function vs(e,t){t instanceof lt?e.push(...t._items):t instanceof Ar?e.push(t):e.push(dw(t))}H.addCodeArg=vs;function cw(e){let t=1;for(;t<e.length-1;){if(e[t]===Is){let r=lw(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function lw(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof Ar||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 Ar))return`"${e}${t.slice(1)}`}function pw(e,t){return t.emptyStr()?e:e.emptyStr()?t:yd`${e}${t}`}H.strConcat=pw;function dw(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Jn(Array.isArray(e)?e.join(","):e)}function uw(e){return new lt(Jn(e))}H.stringify=uw;function Jn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}H.safeStringify=Jn;function fw(e){return typeof e=="string"&&H.IDENTIFIER.test(e)?new lt(`.${e}`):gd`[${e}]`}H.getProperty=fw;function mw(e){if(typeof e=="string"&&H.IDENTIFIER.test(e))return new lt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}H.getEsmExportName=mw;function gw(e){return new lt(e.toString())}H.regexpCode=gw});var _s=P(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.ValueScope=Qe.ValueScopeName=Qe.Scope=Qe.varKinds=Qe.UsedValueState=void 0;var Xe=Wn(),bs=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},yo;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(yo||(Qe.UsedValueState=yo={}));Qe.varKinds={const:new Xe.Name("const"),let:new Xe.Name("let"),var:new Xe.Name("var")};var ho=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Xe.Name?t:this.name(t)}name(t){return new Xe.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Qe.Scope=ho;var wo=class extends Xe.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Xe._)`.${new Xe.Name(r)}[${n}]`}};Qe.ValueScopeName=wo;var yw=(0,Xe._)`\n`,ks=class extends ho{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?yw:Xe.nil}}get(){return this._scope}name(t){return new wo(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 p=s.get(a);if(p)return p}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,Xe._)`${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=Xe.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,yo.Started);let p=r(l);if(p){let d=this.opts.es5?Qe.varKinds.var:Qe.varKinds.const;o=(0,Xe._)`${o}${d} ${l} = ${p};${this.opts._n}`}else if(p=i?.(l))o=(0,Xe._)`${o}${p}${this.opts._n}`;else throw new bs(l);c.set(l,yo.Completed)})}return o}};Qe.ValueScope=ks});var x=P(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 G=Wn(),kt=_s(),rr=Wn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return rr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return rr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return rr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return rr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return rr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return rr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return rr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return rr.Name}});var ko=_s();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return ko.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return ko.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return ko.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return ko.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var qt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},As=class extends qt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?kt.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=pn(this.rhs,t,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},Io=class extends qt{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 G.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=pn(this.rhs,t,r),this}get names(){let t=this.lhs instanceof G.Name?{}:{...this.lhs.names};return bo(t,this.rhs)}},Es=class extends Io{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Rs=class extends qt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Ps=class extends qt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Ns=class extends qt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Os=class extends qt{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=pn(this.code,t,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},Kn=class extends qt{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)||(hw(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>Pr(t,r.names),{})}},Bt=class extends Kn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Ss=class extends Kn{},ln=class extends Bt{};ln.kind="else";var Er=class e extends Bt{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 ln(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(hd(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=pn(this.condition,t,r),this}get names(){let t=super.names;return bo(t,this.condition),this.else&&Pr(t,this.else.names),t}};Er.kind="if";var Rr=class extends Bt{};Rr.kind="for";var Ds=class extends Rr{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=pn(this.iteration,t,r),this}get names(){return Pr(super.names,this.iteration.names)}},js=class extends Rr{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?kt.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=bo(super.names,this.from);return bo(t,this.to)}},vo=class extends Rr{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=pn(this.iterable,t,r),this}get names(){return Pr(super.names,this.iterable.names)}},Yn=class extends Bt{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)}};Yn.kind="func";var Hn=class extends Kn{render(t){return"return "+super.render(t)}};Hn.kind="return";var Cs=class extends Bt{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&&Pr(t,this.catch.names),this.finally&&Pr(t,this.finally.names),t}},Zn=class extends Bt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Zn.kind="catch";var Xn=class extends Bt{render(t){return"finally"+super.render(t)}};Xn.kind="finally";var $s=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
+
`:""},this._extScope=t,this._scope=new kt.Scope({parent:t}),this._nodes=[new Ss]}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 As(t,o,n)),o}const(t,r,n){return this._def(kt.varKinds.const,t,r,n)}let(t,r,n){return this._def(kt.varKinds.let,t,r,n)}var(t,r,n){return this._def(kt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Io(t,r,n))}add(t,r){return this._leafNode(new Es(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==G.nil&&this._leafNode(new Os(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,G.addCodeArg)(r,i));return r.push("}"),new G._Code(r)}if(t,r,n){if(this._blockNode(new Er(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 Er(t))}else(){return this._elseNode(new ln)}endIf(){return this._endBlockNode(Er,ln)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ds(t),r)}forRange(t,r,n,i,o=this.opts.es5?kt.varKinds.var:kt.varKinds.let){let a=this._scope.toName(t);return this._for(new js(o,a,r,n),()=>i(a))}forOf(t,r,n,i=kt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof G.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,G._)`${a}.length`,s=>{this.var(o,(0,G._)`${a}[${s}]`),n(o)})}return this._for(new vo("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?kt.varKinds.var:kt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,G._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new vo("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(Rr)}label(t){return this._leafNode(new Rs(t))}break(t){return this._leafNode(new Ps(t))}return(t){let r=new Hn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Hn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Cs;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Zn(o),r(o)}return n&&(this._currNode=i.finally=new Xn,this.code(n)),this._endBlockNode(Zn,Xn)}throw(t){return this._leafNode(new Ns(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=G.nil,n,i){return this._blockNode(new Yn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Yn)}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 Er))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=$s;function Pr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function bo(e,t){return t instanceof G._CodeOrName?Pr(e,t.names):e}function pn(e,t,r){if(e instanceof G.Name)return n(e);if(!i(e))return e;return new G._Code(e._items.reduce((o,a)=>(a instanceof G.Name&&(a=n(a)),a instanceof G._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 G._Code&&o._items.some(a=>a instanceof G.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function hw(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function hd(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,G._)`!${Ts(e)}`}F.not=hd;var ww=wd(F.operators.AND);function Iw(...e){return e.reduce(ww)}F.and=Iw;var vw=wd(F.operators.OR);function bw(...e){return e.reduce(vw)}F.or=bw;function wd(e){return(t,r)=>t===G.nil?r:r===G.nil?t:(0,G._)`${Ts(t)} ${e} ${Ts(r)}`}function Ts(e){return e instanceof G.Name?e:(0,G._)`(${e})`}});var q=P(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(),kw=Wn();function _w(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=_w;function Aw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(bd(e,t),!kd(t,e.self.RULES.all))}U.alwaysValidSchema=Aw;function bd(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]||Ed(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=bd;function kd(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=kd;function Ew(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=Ew;function Rw({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=Rw;function Pw(e){return _d(decodeURIComponent(e))}U.unescapeFragment=Pw;function Nw(e){return encodeURIComponent(xs(e))}U.escapeFragment=Nw;function xs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=xs;function _d(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=_d;function Ow(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=Ow;function Id({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,o,a,s)=>{let c=a===void 0?o:a instanceof ae.Name?(o instanceof ae.Name?e(i,o,a):t(i,o,a),a):o instanceof ae.Name?(t(i,a,o),o):r(o,a);return s===ae.Name&&!(c instanceof ae.Name)?n(i,c):c}}U.mergeEvaluated={props:Id({mergeNames:(e,t,r)=>e.if((0,ae._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,ae._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,ae._)`${r} || {}`).code((0,ae._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,ae._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,ae._)`${r} || {}`),Vs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Ad}),items:Id({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 Ad(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&Vs(e,r,t),r}U.evaluatedPropsToName=Ad;function Vs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}U.setEvaluated=Vs;var vd={};function Sw(e,t){return e.scopeValue("func",{ref:t,code:vd[t.code]||(vd[t.code]=new kw._Code(t.code))})}U.useFunc=Sw;var Ls;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Ls||(U.Type=Ls={}));function Dw(e,t,r){if(e instanceof ae.Name){let n=t===Ls.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():"/"+xs(e)}U.getErrorPath=Dw;function Ed(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=Ed});var pt=P(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var Ue=x(),jw={data:new Ue.Name("data"),valCxt:new Ue.Name("valCxt"),instancePath:new Ue.Name("instancePath"),parentData:new Ue.Name("parentData"),parentDataProperty:new Ue.Name("parentDataProperty"),rootData:new Ue.Name("rootData"),dynamicAnchors:new Ue.Name("dynamicAnchors"),vErrors:new Ue.Name("vErrors"),errors:new Ue.Name("errors"),this:new Ue.Name("this"),self:new Ue.Name("self"),scope:new Ue.Name("scope"),json:new Ue.Name("json"),jsonPos:new Ue.Name("jsonPos"),jsonLen:new Ue.Name("jsonLen"),jsonPart:new Ue.Name("jsonPart")};Ms.default=jw});var Qn=P(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.extendErrors=qe.resetErrorsCount=qe.reportExtraError=qe.reportError=qe.keyword$DataError=qe.keywordError=void 0;var K=x(),_o=q(),Ye=pt();qe.keywordError={message:({keyword:e})=>(0,K.str)`must pass "${e}" keyword validation`};qe.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,K.str)`"${e}" keyword must be ${t} ($data)`:(0,K.str)`"${e}" keyword is invalid ($data)`};function Cw(e,t=qe.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=Nd(e,t,r);n??(a||s)?Rd(o,c):Pd(i,(0,K._)`[${c}]`)}qe.reportError=Cw;function $w(e,t=qe.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=Nd(e,t,r);Rd(i,s),o||a||Pd(n,Ye.default.vErrors)}qe.reportExtraError=$w;function Tw(e,t){e.assign(Ye.default.errors,t),e.if((0,K._)`${Ye.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,K._)`${Ye.default.vErrors}.length`,t),()=>e.assign(Ye.default.vErrors,null)))}qe.resetErrorsCount=Tw;function Lw({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,Ye.default.errors,s=>{e.const(a,(0,K._)`${Ye.default.vErrors}[${s}]`),e.if((0,K._)`${a}.instancePath === undefined`,()=>e.assign((0,K._)`${a}.instancePath`,(0,K.strConcat)(Ye.default.instancePath,o.errorPath))),e.assign((0,K._)`${a}.schemaPath`,(0,K.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,K._)`${a}.schema`,r),e.assign((0,K._)`${a}.data`,n))})}qe.extendErrors=Lw;function Rd(e,t){let r=e.const("err",t);e.if((0,K._)`${Ye.default.vErrors} === null`,()=>e.assign(Ye.default.vErrors,(0,K._)`[${r}]`),(0,K._)`${Ye.default.vErrors}.push(${r})`),e.code((0,K._)`${Ye.default.errors}++`)}function Pd(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,K._)`new ${e.ValidationError}(${t})`):(r.assign((0,K._)`${n}.errors`,t),r.return(!1))}var Nr={keyword:new K.Name("keyword"),schemaPath:new K.Name("schemaPath"),params:new K.Name("params"),propertyName:new K.Name("propertyName"),message:new K.Name("message"),schema:new K.Name("schema"),parentSchema:new K.Name("parentSchema")};function Nd(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,K._)`{}`:xw(e,t,r)}function xw(e,t,r={}){let{gen:n,it:i}=e,o=[Vw(i,r),Mw(e,r)];return Fw(e,t,o),n.object(...o)}function Vw({errorPath:e},{instancePath:t}){let r=t?(0,K.str)`${e}${(0,_o.getErrorPath)(t,_o.Type.Str)}`:e;return[Ye.default.instancePath,(0,K.strConcat)(Ye.default.instancePath,r)]}function Mw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,K.str)`${t}/${e}`;return r&&(i=(0,K.str)`${i}${(0,_o.getErrorPath)(r,_o.Type.Str)}`),[Nr.schemaPath,i]}function Fw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:l,topSchemaRef:p,schemaPath:d}=s;n.push([Nr.keyword,i],[Nr.params,typeof t=="function"?t(e):t||(0,K._)`{}`]),c.messages&&n.push([Nr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([Nr.schema,a],[Nr.parentSchema,(0,K._)`${p}${d}`],[Ye.default.data,o]),l&&n.push([Nr.propertyName,l])}});var Sd=P(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.boolOrEmptySchema=dn.topBoolOrEmptySchema=void 0;var Uw=Qn(),qw=x(),Bw=pt(),zw={message:"boolean schema is false"};function Gw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Od(e,!1):typeof r=="object"&&r.$async===!0?t.return(Bw.default.data):(t.assign((0,qw._)`${n}.errors`,null),t.return(!0))}dn.topBoolOrEmptySchema=Gw;function Jw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Od(e)):r.var(t,!0)}dn.boolOrEmptySchema=Jw;function Od(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,Uw.reportError)(i,zw,void 0,t)}});var Fs=P(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getRules=un.isJSONType=void 0;var Ww=["string","number","integer","boolean","null","object","array"],Kw=new Set(Ww);function Yw(e){return typeof e=="string"&&Kw.has(e)}un.isJSONType=Yw;function Hw(){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:{}}}un.getRules=Hw});var Us=P(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.shouldUseRule=nr.shouldUseGroup=nr.schemaHasRulesForType=void 0;function Zw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Dd(e,n)}nr.schemaHasRulesForType=Zw;function Dd(e,t){return t.rules.some(r=>jd(e,r))}nr.shouldUseGroup=Dd;function jd(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))}nr.shouldUseRule=jd});var ei=P(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.reportTypeError=Be.checkDataTypes=Be.checkDataType=Be.coerceAndCheckDataType=Be.getJSONTypes=Be.getSchemaTypes=Be.DataType=void 0;var Xw=Fs(),Qw=Us(),eI=Qn(),V=x(),Cd=q(),fn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(fn||(Be.DataType=fn={}));function tI(e){let t=$d(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}Be.getSchemaTypes=tI;function $d(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Xw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Be.getJSONTypes=$d;function rI(e,t){let{gen:r,data:n,opts:i}=e,o=nI(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Qw.schemaHasRulesForType)(e,t[0]));if(a){let s=Bs(t,n,i.strictNumbers,fn.Wrong);r.if(s,()=>{o.length?iI(e,t,o):zs(e)})}return a}Be.coerceAndCheckDataType=rI;var Td=new Set(["string","number","integer","boolean","null"]);function nI(e,t){return t?e.filter(r=>Td.has(r)||t==="array"&&r==="array"):[]}function iI(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(Bs(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(Td.has(l)||l==="array"&&o.coerceTypes==="array")&&c(l);n.else(),zs(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),oI(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
3
|
|| (${a} == "string" && ${i} && ${i} == +${i})`).assign(s,(0,V._)`+${i}`);return;case"integer":n.elseIf((0,V._)`${a} === "boolean" || ${i} === null
|
|
4
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 nI({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function Us(e,t,r,n=fn.Correct){let i=n===fn.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===fn.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)}}qe.checkDataType=Us;function qs(e,t,r,n){if(e.length===1)return Us(e[0],t,r,n);let i,o=(0,jd.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,Us(a,t,r,n));return i}qe.checkDataTypes=qs;var iI={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Bs(e){let t=oI(e);(0,Xw.reportError)(t,iI)}qe.reportTypeError=Bs;function oI(e){let{gen:t,data:r,schema:n}=e,i=(0,jd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var Ld=E(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.assignDefaults=void 0;var mn=x(),aI=q();function sI(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Td(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Td(e,o,i.default))}Ao.assignDefaults=sI;function Td(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,mn._)`${o}${(0,mn.getProperty)(t)}`;if(i){(0,aI.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,mn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,mn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,mn._)`${s} = ${(0,mn.stringify)(r)}`)}});var dt=E(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.validateUnion=ie.validateArray=ie.usePattern=ie.callValidateCode=ie.schemaProperties=ie.allSchemaProperties=ie.noPropertyInData=ie.propertyInData=ie.isOwnProperty=ie.hasPropFunc=ie.reportMissingProp=ie.checkMissingProp=ie.checkReportMissingProp=void 0;var me=x(),zs=q(),ir=pt(),cI=q();function lI(e,t){let{gen:r,data:n,it:i}=e;r.if(Js(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,me._)`${t}`},!0),e.error()})}ie.checkReportMissingProp=lI;function pI({gen:e,data:t,it:{opts:r}},n,i){return(0,me.or)(...n.map(o=>(0,me.and)(Js(e,t,o,r.ownProperties),(0,me._)`${i} = ${o}`)))}ie.checkMissingProp=pI;function dI(e,t){e.setParams({missingProperty:t},!0),e.error()}ie.reportMissingProp=dI;function xd(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,me._)`Object.prototype.hasOwnProperty`})}ie.hasPropFunc=xd;function Gs(e,t,r){return(0,me._)`${xd(e)}.call(${t}, ${r})`}ie.isOwnProperty=Gs;function uI(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} !== undefined`;return n?(0,me._)`${i} && ${Gs(e,t,r)}`:i}ie.propertyInData=uI;function Js(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} === undefined`;return n?(0,me.or)(i,(0,me.not)(Gs(e,t,r))):i}ie.noPropertyInData=Js;function Vd(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ie.allSchemaProperties=Vd;function fI(e,t){return Vd(t).filter(r=>!(0,zs.alwaysValidSchema)(e,t[r]))}ie.schemaProperties=fI;function mI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,p){let l=p?(0,me._)`${e}, ${t}, ${n}${i}`:t,d=[[ir.default.instancePath,(0,me.strConcat)(ir.default.instancePath,o)],[ir.default.parentData,a.parentData],[ir.default.parentDataProperty,a.parentDataProperty],[ir.default.rootData,ir.default.rootData]];a.opts.dynamicRef&&d.push([ir.default.dynamicAnchors,ir.default.dynamicAnchors]);let f=(0,me._)`${l}, ${r.object(...d)}`;return c!==me.nil?(0,me._)`${s}.call(${c}, ${f})`:(0,me._)`${s}(${f})`}ie.callValidateCode=mI;var gI=(0,me._)`new RegExp`;function yI({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,me._)`${i.code==="new RegExp"?gI:(0,cI.useFunc)(e,i)}(${r}, ${n})`})}ie.usePattern=yI;function hI(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,me._)`${r}.length`);t.forRange("i",0,c,p=>{e.subschema({keyword:n,dataProp:p,dataPropType:zs.Type.Num},o),t.if((0,me.not)(o),s)})}}ie.validateArray=hI;function wI(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,zs.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,p)=>{let l=e.subschema({keyword:n,schemaProp:p,compositeRule:!0},s);t.assign(a,(0,me._)`${a} || ${s}`),e.mergeValidEvaluated(l,s)||t.if((0,me.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ie.validateUnion=wI});var Ud=E($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.validateKeywordUsage=$t.validSchemaType=$t.funcKeywordCode=$t.macroKeywordCode=void 0;var He=x(),Or=pt(),II=dt(),vI=Qn();function bI(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=Fd(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let p=r.name("valid");e.subschema({schema:s,schemaPath:He.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},p),e.pass(p,()=>e.error(!0))}$t.macroKeywordCode=bI;function kI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;AI(c,t);let p=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,l=Fd(n,i,p),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&&Md(e),y(()=>e.error());else{let w=t.async?u():m();t.modifying&&Md(e),y(()=>_I(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,He._)`await `),_=>n.assign(d,!1).if((0,He._)`${_} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,He._)`${_}.errors`),()=>n.throw(_))),w}function m(){let w=(0,He._)`${l}.errors`;return n.assign(w,null),g(He.nil),w}function g(w=t.async?(0,He._)`await `:He.nil){let _=c.opts.passContext?Or.default.this:Or.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(d,(0,He._)`${w}${(0,II.callValidateCode)(e,l,_,b)}`,t.modifying)}function y(w){var _;n.if((0,He.not)((_=t.valid)!==null&&_!==void 0?_:d),w)}}$t.funcKeywordCode=kI;function Md(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,He._)`${n.parentData}[${n.parentDataProperty}]`))}function _I(e,t){let{gen:r}=e;r.if((0,He._)`Array.isArray(${t})`,()=>{r.assign(Or.default.vErrors,(0,He._)`${Or.default.vErrors} === null ? ${t} : ${Or.default.vErrors}.concat(${t})`).assign(Or.default.errors,(0,He._)`${Or.default.vErrors}.length`),(0,vI.extendErrors)(e)},()=>e.error())}function AI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Fd(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,He.stringify)(r)})}function RI(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")}$t.validSchemaType=RI;function EI({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)}}$t.validateKeywordUsage=EI});var Bd=E(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});or.extendSubschemaMode=or.extendSubschemaData=or.getSubschema=void 0;var Tt=x(),qd=q();function PI(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,Tt._)`${e.schemaPath}${(0,Tt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Tt._)`${e.schemaPath}${(0,Tt.getProperty)(t)}${(0,Tt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,qd.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')}or.getSubschema=PI;function NI(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:p,dataPathArr:l,opts:d}=t,f=s.let("data",(0,Tt._)`${t.data}${(0,Tt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Tt.str)`${p}${(0,qd.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,Tt._)`${r}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let p=i instanceof Tt.Name?i:s.let("data",i,!0);c(p),a!==void 0&&(e.propertyName=a)}o&&(e.dataTypes=o);function c(p){e.data=p,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,p]}}or.extendSubschemaData=NI;function OI(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}or.extendSubschemaMode=OI});var Ws=E((FO,zd)=>{"use strict";zd.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 Jd=E((UO,Gd)=>{"use strict";var ar=Gd.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(){};Ro(t,n,i,e,"",e)};ar.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ar.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ar.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ar.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 Ro(e,t,r,n,i,o,a,s,c,p){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,o,a,s,c,p);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in ar.arrayKeywords)for(var f=0;f<d.length;f++)Ro(e,t,r,d[f],i+"/"+l+"/"+f,o,i,l,n,f)}else if(l in ar.propsKeywords){if(d&&typeof d=="object")for(var u in d)Ro(e,t,r,d[u],i+"/"+l+"/"+SI(u),o,i,l,n,u)}else(l in ar.keywords||e.allKeys&&!(l in ar.skipKeywords))&&Ro(e,t,r,d,i+"/"+l,o,i,l,n)}r(n,i,o,a,s,c,p)}}function SI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var ti=E(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.getSchemaRefs=et.resolveUrl=et.normalizeId=et._getFullPath=et.getFullPath=et.inlineRef=void 0;var DI=q(),jI=Ws(),CI=Jd(),$I=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function TI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Ks(e):t?Wd(e)<=t:!1}et.inlineRef=TI;var LI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Ks(e){for(let t in e){if(LI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Ks)||typeof r=="object"&&Ks(r))return!0}return!1}function Wd(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!$I.has(r)&&(typeof e[r]=="object"&&(0,DI.eachItem)(e[r],n=>t+=Wd(n)),t===1/0))return 1/0}return t}function Kd(e,t="",r){r!==!1&&(t=gn(t));let n=e.parse(t);return Yd(e,n)}et.getFullPath=Kd;function Yd(e,t){return e.serialize(t).split("#")[0]+"#"}et._getFullPath=Yd;var xI=/#\/?$/;function gn(e){return e?e.replace(xI,""):""}et.normalizeId=gn;function VI(e,t,r){return r=gn(r),e.resolve(t,r)}et.resolveUrl=VI;var MI=/^[a-z_][-a-z0-9._]*$/i;function FI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=gn(e[r]||t),o={"":i},a=Kd(n,i,!1),s={},c=new Set;return CI(e,{allKeys:!0},(d,f,u,m)=>{if(m===void 0)return;let g=a+f,y=o[m];typeof d[r]=="string"&&(y=w.call(this,d[r])),_.call(this,d.$anchor),_.call(this,d.$dynamicAnchor),o[f]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=gn(y?R(y,b):b),c.has(b))throw l(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?p(d,I.schema,b):b!==gn(g)&&(b[0]==="#"?(p(d,s[b],b),s[b]=d):this.refs[b]=g),b}function _(b){if(typeof b=="string"){if(!MI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function p(d,f,u){if(f!==void 0&&!jI(d,f))throw l(u)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}et.getSchemaRefs=FI});var ii=E(sr=>{"use strict";Object.defineProperty(sr,"__esModule",{value:!0});sr.getData=sr.KeywordCxt=sr.validateFunctionCode=void 0;var eu=Od(),Hd=ei(),Hs=Fs(),Eo=ei(),UI=Ld(),ni=Ud(),Ys=Bd(),S=x(),L=pt(),qI=ti(),zt=q(),ri=Qn();function BI(e){if(nu(e)&&(iu(e),ru(e))){JI(e);return}tu(e,()=>(0,eu.topBoolOrEmptySchema)(e))}sr.validateFunctionCode=BI;function tu({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},o){i.code.es5?e.func(t,(0,S._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,S._)`"use strict"; ${Zd(r,i)}`),GI(e,i),e.code(o)}):e.func(t,(0,S._)`${L.default.data}, ${zI(i)}`,n.$async,()=>e.code(Zd(r,i)).code(o))}function zI(e){return(0,S._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,S._)`, ${L.default.dynamicAnchors}={}`:S.nil}}={}`}function GI(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,S._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,S._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,S._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,S._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,S._)`""`),e.var(L.default.parentData,(0,S._)`undefined`),e.var(L.default.parentDataProperty,(0,S._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`{}`)})}function JI(e){let{schema:t,opts:r,gen:n}=e;tu(e,()=>{r.$comment&&t.$comment&&au(e),ZI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&WI(e),ou(e),ev(e)})}function WI(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,S._)`${r}.evaluated`),t.if((0,S._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,S._)`${e.evaluated}.props`,(0,S._)`undefined`)),t.if((0,S._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,S._)`${e.evaluated}.items`,(0,S._)`undefined`))}function Zd(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,S._)`/*# sourceURL=${r} */`:S.nil}function KI(e,t){if(nu(e)&&(iu(e),ru(e))){YI(e,t);return}(0,eu.boolOrEmptySchema)(e,t)}function ru({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 nu(e){return typeof e.schema!="boolean"}function YI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&au(e),XI(e),QI(e);let o=n.const("_errs",L.default.errors);ou(e,o),n.var(t,(0,S._)`${o} === ${L.default.errors}`)}function iu(e){(0,zt.checkUnknownRules)(e),HI(e)}function ou(e,t){if(e.opts.jtd)return Xd(e,[],!1,t);let r=(0,Hd.getSchemaTypes)(e.schema),n=(0,Hd.coerceAndCheckDataType)(e,r);Xd(e,r,!n,t)}function HI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,zt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function ZI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,zt.checkStrictMode)(e,"default is ignored in the schema root")}function XI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,qI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function QI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function au({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let o=r.$comment;if(i.$comment===!0)e.code((0,S._)`${L.default.self}.logger.log(${o})`);else if(typeof i.$comment=="function"){let a=(0,S.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,S._)`${L.default.self}.opts.$comment(${o}, ${a}, ${s}.schema)`)}}function ev(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:o}=e;r.$async?t.if((0,S._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,S._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,S._)`${n}.errors`,L.default.vErrors),o.unevaluated&&tv(e),t.return((0,S._)`${L.default.errors} === 0`))}function tv({gen:e,evaluated:t,props:r,items:n}){r instanceof S.Name&&e.assign((0,S._)`${t}.props`,r),n instanceof S.Name&&e.assign((0,S._)`${t}.items`,n)}function Xd(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:p}=e,{RULES:l}=p;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,zt.schemaHasRulesButRef)(o,l))){i.block(()=>cu(e,"$ref",l.all.$ref.definition));return}c.jtd||rv(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Hs.shouldUseGroup)(o,f)&&(f.type?(i.if((0,Eo.checkDataType)(f.type,a,c.strictNumbers)),Qd(e,f),t.length===1&&t[0]===f.type&&r&&(i.else(),(0,Eo.reportTypeError)(e)),i.endIf()):Qd(e,f),s||i.if((0,S._)`${L.default.errors} === ${n||0}`))}}function Qd(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,UI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Hs.shouldUseRule)(n,o)&&cu(e,o.keyword,o.definition,t.type)})}function rv(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(nv(e,t),e.opts.allowUnionTypes||iv(e,t),ov(e,e.dataTypes))}function nv(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{su(e.dataTypes,r)||Zs(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),sv(e,t)}}function iv(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Zs(e,"use allowUnionTypes to allow union type keyword")}function ov(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Hs.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>av(t,a))&&Zs(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function av(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function su(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function sv(e,t){let r=[];for(let n of e.dataTypes)su(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Zs(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,zt.checkStrictMode)(e,t,e.opts.strictTypes)}var Po=class{constructor(t,r,n){if((0,ni.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,zt.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",lu(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,ni.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,S.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,S.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,S._)`${r} !== undefined && (${(0,S.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?ri.reportExtraError:ri.reportError)(this,this.def.error,r)}$dataError(){(0,ri.reportError)(this,this.def.$dataError||ri.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ri.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=S.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=S.nil,r=S.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:o,def:a}=this;n.if((0,S.or)((0,S._)`${i} === undefined`,r)),t!==S.nil&&n.assign(t,!0),(o.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==S.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:o}=this;return(0,S.or)(a(),s());function a(){if(n.length){if(!(r instanceof S.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,S._)`${(0,Eo.checkDataTypes)(c,r,o.opts.strictNumbers,Eo.DataType.Wrong)}`}return S.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,S._)`!${c}(${r})`}return S.nil}}subschema(t,r){let n=(0,Ys.getSubschema)(this.it,t);(0,Ys.extendSubschemaData)(n,this.it,t),(0,Ys.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=zt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=zt.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,S.Name)),!0}};sr.KeywordCxt=Po;function cu(e,t,r,n){let i=new Po(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,ni.funcKeywordCode)(i,r):"macro"in r?(0,ni.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,ni.funcKeywordCode)(i,r)}var cv=/^\/(?:[^~]|~0|~1)*$/,lv=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function lu(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!cv.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let p=lv.exec(e);if(!p)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+p[1];if(i=p[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return n[t-l]}if(l>t)throw new Error(c("data",l));if(o=r[t-l],!i)return o}let a=o,s=i.split("/");for(let p of s)p&&(o=(0,S._)`${o}${(0,S.getProperty)((0,zt.unescapeJsonPointer)(p))}`,a=(0,S._)`${a} && ${o}`);return a;function c(p,l){return`Cannot access ${p} ${l} levels up, current level is ${t}`}}sr.getData=lu});var No=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var Xs=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Qs.default=Xs});var oi=E(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var ec=ti(),tc=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,ec.resolveUrl)(t,r,n),this.missingSchema=(0,ec.normalizeId)((0,ec.getFullPath)(t,this.missingRef))}};rc.default=tc});var ai=E(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.resolveSchema=ut.getCompilingSchema=ut.resolveRef=ut.compileSchema=ut.SchemaEnv=void 0;var _t=x(),pv=No(),Sr=pt(),At=ti(),pu=q(),dv=ii(),yn=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,At.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};ut.SchemaEnv=yn;function ic(e){let t=du.call(this,e);if(t)return t;let r=(0,At.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new _t.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:pv.default,code:(0,_t._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let p={gen:a,allErrors:this.opts.allErrors,data:Sr.default.data,parentData:Sr.default.parentData,parentDataProperty:Sr.default.parentDataProperty,dataNames:[Sr.default.data],dataPathArr:[_t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,_t.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:_t.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,_t._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,dv.validateFunctionCode)(p),a.optimize(this.opts.code.optimize);let d=a.toString();l=`${a.scopeRefs(Sr.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let u=new Function(`${Sr.default.self}`,`${Sr.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:d,scopeValues:a._values}),this.opts.unevaluated){let{props:m,items:g}=p;u.evaluated={props:m instanceof _t.Name?void 0:m,items:g instanceof _t.Name?void 0:g,dynamicProps:m instanceof _t.Name,dynamicItems:g instanceof _t.Name},u.source&&(u.source.evaluated=(0,_t.stringify)(u.evaluated))}return e.validate=u,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}ut.compileSchema=ic;function uv(e,t,r){var n;r=(0,At.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=gv.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 yn({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=fv.call(this,o)}ut.resolveRef=uv;function fv(e){return(0,At.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ic.call(this,e)}function du(e){for(let t of this._compilations)if(mv(t,e))return t}ut.getCompilingSchema=du;function mv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function gv(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Oo.call(this,e,t)}function Oo(e,t){let r=this.opts.uriResolver.parse(t),n=(0,At._getFullPath)(this.opts.uriResolver,r),i=(0,At.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return nc.call(this,r,e);let o=(0,At.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=Oo.call(this,e,a);return typeof s?.schema!="object"?void 0:nc.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||ic.call(this,a),o===(0,At.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,p=s[c];return p&&(i=(0,At.resolveUrl)(this.opts.uriResolver,i,p)),new yn({schema:s,schemaId:c,root:e,baseId:i})}return nc.call(this,r,a)}}ut.resolveSchema=Oo;var yv=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function nc(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,pu.unescapeFragment)(s)];if(c===void 0)return;r=c;let p=typeof r=="object"&&r[this.opts.schemaId];!yv.has(s)&&p&&(t=(0,At.resolveUrl)(this.opts.uriResolver,t,p))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,pu.schemaHasRulesButRef)(r,this.RULES)){let s=(0,At.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=Oo.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new yn({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var uu=E((WO,hv)=>{hv.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 sc=E((KO,wu)=>{"use strict";var wv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),mu=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),oc=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),gu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Iv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function ac(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 vv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function fu(e){return e.length=0,!0}function bv(e,t,r){if(e.length){let n=ac(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function kv(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=bv;for(let c=0;c<e.length;c++){let p=e[c];if(!(p==="["||p==="]"))if(p===":"){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(p==="%"){if(!s(i,n,r))break;s=fu}else{i.push(p);continue}}return i.length&&(s===fu?r.zone=i.join(""):a?n.push(i.join("")):n.push(ac(i))),r.address=n.join(""),r}function yu(e){if(_v(e,":")<2)return{host:e,isIPV6:!1};let t=kv(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 _v(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function Av(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 Rv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},Ev=/[@/?#:]/g,Pv=/[@/?#]/g;function hu(e,t){let r=t?Pv:Ev;return r.lastIndex=0,e.replace(r,n=>Rv[n])}function Nv(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(oc(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&gu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function Ov(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(oc(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&gu(o)?t+=o:t+="%"+i,r+=2;continue}}Iv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function Sv(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(oc(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function Dv(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!mu(r)){let n=yu(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=hu(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}wu.exports={nonSimpleDomain:vv,recomposeAuthority:Dv,reescapeHostDelimiters:hu,normalizePercentEncoding:Nv,normalizePathEncoding:Ov,escapePreservingEscapes:Sv,removeDotSegments:Av,isIPv4:mu,isUUID:wv,normalizeIPv6:yu,stringArrayToHexStripped:ac}});var _u=E((YO,ku)=>{"use strict";var{isUUID:jv}=sc(),Cv=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,$v=["http","https","ws","wss","urn","urn:uuid"];function Tv(e){return $v.indexOf(e)!==-1}function cc(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 Iu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function vu(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 Lv(e){return e.secure=cc(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function xv(e){if((e.port===(cc(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 Vv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(Cv);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=lc(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Mv(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=lc(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 Fv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!jv(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Uv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var bu={scheme:"http",domainHost:!0,parse:Iu,serialize:vu},qv={scheme:"https",domainHost:bu.domainHost,parse:Iu,serialize:vu},So={scheme:"ws",domainHost:!0,parse:Lv,serialize:xv},Bv={scheme:"wss",domainHost:So.domainHost,parse:So.parse,serialize:So.serialize},zv={scheme:"urn",parse:Vv,serialize:Mv,skipNormalize:!0},Gv={scheme:"urn:uuid",parse:Fv,serialize:Uv,skipNormalize:!0},Do={http:bu,https:qv,ws:So,wss:Bv,urn:zv,"urn:uuid":Gv};Object.setPrototypeOf(Do,null);function lc(e){return e&&(Do[e]||Do[e.toLowerCase()])||void 0}ku.exports={wsIsSecure:cc,SCHEMES:Do,isValidSchemeName:Tv,getSchemeHandler:lc}});var Nu=E((HO,$o)=>{"use strict";var{normalizeIPv6:Jv,removeDotSegments:si,recomposeAuthority:Wv,normalizePercentEncoding:Kv,normalizePathEncoding:Yv,escapePreservingEscapes:Hv,reescapeHostDelimiters:Zv,isIPv4:Xv,nonSimpleDomain:Qv}=sc(),{SCHEMES:eb,getSchemeHandler:Ru}=_u();function tb(e,t){return typeof e=="string"?e=cb(e,t):typeof e=="object"&&(e=Co(Dr(e,t),t)),e}function rb(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=jo(e,n),{parsed:a,malformedAuthorityOrPort:s}=jo(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=Eu(i,a,n,!0);return n.skipEscape=!0,Dr(c,n)}function Eu(e,t,r,n){let i={};return n||(e=Co(Dr(e,r),r),t=Co(Dr(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=si(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=si(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=si(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=si(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 nb(e,t,r){let n=Au(e,r),i=Au(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Dr(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=Ru(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Kv(r.path):(r.path=Hv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=Wv(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=si(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 ib=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,ob=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,ab=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function sb(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 jo(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(ob);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(ab);if(s!==null){let p=s[1],l=p.replace(/[\t\n\r]/g,"");l.length>=2&&(l.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):p.length!==l.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(ib);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 p=sb(n,c);if(p!==void 0&&(n.error=n.error||p,i=!0),n.host)if(Xv(n.host)===!1){let f=Jv(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 l=Ru(r.scheme||n.scheme);if(!r.unicodeSupport&&(!l||!l.unicodeSupport)&&n.host&&(r.domainHost||l&&l.domainHost)&&o===!1&&Qv(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((!l||l&&!l.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Zv(unescape(n.host),o))),n.path&&(n.path=Yv(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}l&&l.parse&&l.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:i}}function Co(e,t){return jo(e,t).parsed}function cb(e,t){return Pu(e,t).normalized}function Pu(e,t){let{parsed:r,malformedAuthorityOrPort:n}=jo(e,t);return{normalized:n?e:Dr(r,t),malformedAuthorityOrPort:n}}function Au(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Pu(e,t);return n?void 0:r}if(typeof e=="object")return Dr(e,t)}var pc={SCHEMES:eb,normalize:tb,resolve:rb,resolveComponent:Eu,equal:nb,serialize:Dr,parse:Co};$o.exports=pc;$o.exports.default=pc;$o.exports.fastUri=pc});var Su=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var Ou=Nu();Ou.code='require("ajv/dist/runtime/uri").default';dc.default=Ou});var Vu=E(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.CodeGen=je.Name=je.nil=je.stringify=je.str=je._=je.KeywordCxt=void 0;var lb=ii();Object.defineProperty(je,"KeywordCxt",{enumerable:!0,get:function(){return lb.KeywordCxt}});var hn=x();Object.defineProperty(je,"_",{enumerable:!0,get:function(){return hn._}});Object.defineProperty(je,"str",{enumerable:!0,get:function(){return hn.str}});Object.defineProperty(je,"stringify",{enumerable:!0,get:function(){return hn.stringify}});Object.defineProperty(je,"nil",{enumerable:!0,get:function(){return hn.nil}});Object.defineProperty(je,"Name",{enumerable:!0,get:function(){return hn.Name}});Object.defineProperty(je,"CodeGen",{enumerable:!0,get:function(){return hn.CodeGen}});var pb=No(),Tu=oi(),db=Ms(),ci=ai(),ub=x(),li=ti(),To=ei(),fc=q(),Du=uu(),fb=Su(),Lu=(e,t)=>new RegExp(e,t);Lu.code="new RegExp";var mb=["removeAdditional","useDefaults","coerceTypes"],gb=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),yb={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."},hb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},ju=200;function wb(e){var t,r,n,i,o,a,s,c,p,l,d,f,u,m,g,y,w,_,b,R,I,A,O,C,fe;let T=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,ee=P===!0||P===void 0?1:P||0,ce=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Lu,ct=(i=e.uriResolver)!==null&&i!==void 0?i:fb.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:T)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:T)!==null&&c!==void 0?c:!0,strictTypes:(l=(p=e.strictTypes)!==null&&p!==void 0?p:T)!==null&&l!==void 0?l:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:T)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:T)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:ee,regExp:ce}:{optimize:ee,regExp:ce},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:ju,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:ju,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(_=e.messages)!==null&&_!==void 0?_:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(A=e.validateSchema)!==null&&A!==void 0?A:!0,validateFormats:(O=e.validateFormats)!==null&&O!==void 0?O:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(fe=e.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ct}}var pi=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,...wb(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new ub.ValueScope({scope:{},prefixes:gb,es5:r,lines:n}),this.logger=Ab(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,db.getRules)(),Cu.call(this,yb,t,"NOT SUPPORTED"),Cu.call(this,hb,t,"DEPRECATED","warn"),this._metaOpts=kb.call(this),t.formats&&vb.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&bb.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Ib.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Du;n==="id"&&(i={...Du},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(l,d){await o.call(this,l.$schema);let f=this._addSchema(l,d);return f.validate||a.call(this,f)}async function o(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function a(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof Tu.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),a.call(this,l)}}function s({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await p.call(this,l);this.refs[l]||await o.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function p(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}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,li.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=$u.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ci.SchemaEnv({schema:{},schemaId:n});if(r=ci.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=$u.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,li.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,fc.eachItem)(n,o=>uc.call(this,o)),this;Nb.call(this,r);let i={...r,type:(0,To.getJSONTypes)(r.type),schemaType:(0,To.getJSONTypes)(r.schemaType)};return(0,fc.eachItem)(n,i.type.length===0?o=>uc.call(this,o,i):o=>i.type.forEach(a=>uc.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:p}=c.definition,l=a[s];p&&l&&(a[s]=xu(l))}}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,li.normalizeId)(a||n);let p=li.getSchemaRefs.call(this,t,n);return c=new ci.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:p}),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):ci.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{ci.compileSchema.call(this,t)}finally{this.opts=r}}};pi.ValidationError=pb.default;pi.MissingRefError=Tu.default;je.default=pi;function Cu(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 $u(e){return e=(0,li.normalizeId)(e),this.schemas[e]||this.refs[e]}function Ib(){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 vb(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function bb(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 kb(){let e={...this.opts};for(let t of mb)delete e[t];return e}var _b={log(){},warn(){},error(){}};function Ab(e){if(e===!1)return _b;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 Rb=/^[a-z_$][a-z0-9_$:-]*$/i;function Eb(e,t){let{RULES:r}=this;if((0,fc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Rb.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 uc(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,To.getJSONTypes)(t.type),schemaType:(0,To.getJSONTypes)(t.schemaType)}};t.before?Pb.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 Pb(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 Nb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=xu(t)),e.validateSchema=this.compile(t,!0))}var Ob={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function xu(e){return{anyOf:[e,Ob]}}});var Mu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Sb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};mc.default=Sb});var Vo=E(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.callRef=jr.getValidate=void 0;var Db=oi(),Fu=dt(),tt=x(),wn=pt(),Uu=ai(),Lo=q(),jb={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:p}=o;if((r==="#"||r==="#/")&&i===p.baseId)return d();let l=Uu.resolveRef.call(c,p,i,r);if(l===void 0)throw new Db.default(n.opts.uriResolver,i,r);if(l instanceof Uu.SchemaEnv)return f(l);return u(l);function d(){if(o===p)return xo(e,a,o,o.$async);let m=t.scopeValue("root",{ref:p});return xo(e,(0,tt._)`${m}.validate`,p,p.$async)}function f(m){let g=qu(e,m);xo(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,tt.stringify)(m)}:{ref:m}),y=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:tt.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function qu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,tt._)`${r.scopeValue("wrapper",{ref:t})}.validate`}jr.getValidate=qu;function xo(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,p=c.passContext?wn.default.this:tt.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,tt._)`await ${(0,Fu.callValidateCode)(e,t,p)}`),u(t),a||i.assign(m,!0)},g=>{i.if((0,tt._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),f(g),a||i.assign(m,!1)}),e.ok(m)}function d(){e.result((0,Fu.callValidateCode)(e,t,p),()=>u(t),()=>f(t))}function f(m){let g=(0,tt._)`${m}.errors`;i.assign(wn.default.vErrors,(0,tt._)`${wn.default.vErrors} === null ? ${g} : ${wn.default.vErrors}.concat(${g})`),i.assign(wn.default.errors,(0,tt._)`${wn.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=Lo.mergeEvaluated.props(i,y.props,o.props));else{let w=i.var("props",(0,tt._)`${m}.evaluated.props`);o.props=Lo.mergeEvaluated.props(i,w,o.props,tt.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Lo.mergeEvaluated.items(i,y.items,o.items));else{let w=i.var("items",(0,tt._)`${m}.evaluated.items`);o.items=Lo.mergeEvaluated.items(i,w,o.items,tt.Name)}}}jr.callRef=xo;jr.default=jb});var Bu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Cb=Mu(),$b=Vo(),Tb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Cb.default,$b.default];gc.default=Tb});var zu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Mo=x(),cr=Mo.operators,Fo={maximum:{okStr:"<=",ok:cr.LTE,fail:cr.GT},minimum:{okStr:">=",ok:cr.GTE,fail:cr.LT},exclusiveMaximum:{okStr:"<",ok:cr.LT,fail:cr.GTE},exclusiveMinimum:{okStr:">",ok:cr.GT,fail:cr.LTE}},Lb={message:({keyword:e,schemaCode:t})=>(0,Mo.str)`must be ${Fo[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Mo._)`{comparison: ${Fo[e].okStr}, limit: ${t}}`},xb={keyword:Object.keys(Fo),type:"number",schemaType:"number",$data:!0,error:Lb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,Mo._)`${r} ${Fo[t].fail} ${n} || isNaN(${r})`)}};yc.default=xb});var Gu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var di=x(),Vb={message:({schemaCode:e})=>(0,di.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,di._)`{multipleOf: ${e}}`},Mb={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Vb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,di._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,di._)`${a} !== parseInt(${a})`;e.fail$data((0,di._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};hc.default=Mb});var Wu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});function Ju(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}wc.default=Ju;Ju.code='require("ajv/dist/runtime/ucs2length").default'});var Ku=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Cr=x(),Fb=q(),Ub=Wu(),qb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Cr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Cr._)`{limit: ${e}}`},Bb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:qb,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Cr.operators.GT:Cr.operators.LT,a=i.opts.unicode===!1?(0,Cr._)`${r}.length`:(0,Cr._)`${(0,Fb.useFunc)(e.gen,Ub.default)}(${r})`;e.fail$data((0,Cr._)`${a} ${o} ${n}`)}};Ic.default=Bb});var Yu=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var zb=dt(),Gb=q(),In=x(),Jb={message:({schemaCode:e})=>(0,In.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,In._)`{pattern: ${e}}`},Wb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Jb,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,p=c.code==="new RegExp"?(0,In._)`new RegExp`:(0,Gb.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,In._)`${p}(${o}, ${s}).test(${r})`),()=>t.assign(l,!1)),e.fail$data((0,In._)`!${l}`)}else{let c=(0,zb.usePattern)(e,i);e.fail$data((0,In._)`!${c}.test(${r})`)}}};vc.default=Wb});var Hu=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var ui=x(),Kb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ui.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ui._)`{limit: ${e}}`},Yb={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Kb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ui.operators.GT:ui.operators.LT;e.fail$data((0,ui._)`Object.keys(${r}).length ${i} ${n}`)}};bc.default=Yb});var Zu=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var fi=dt(),mi=x(),Hb=q(),Zb={message:({params:{missingProperty:e}})=>(0,mi.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,mi._)`{missingProperty: ${e}}`},Xb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Zb,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?p():l(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let y=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,Hb.checkStrictMode)(a,w,a.opts.strictRequired)}}function p(){if(c||o)e.block$data(mi.nil,d);else for(let u of r)(0,fi.checkReportMissingProp)(e,u)}function l(){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,fi.checkMissingProp)(e,r,u)),(0,fi.reportMissingProp)(e,u),t.else()}function d(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,fi.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,fi.propertyInData)(t,i,u,s.ownProperties)),t.if((0,mi.not)(m),()=>{e.error(),t.break()})},mi.nil)}}};kc.default=Xb});var Xu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var gi=x(),Qb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,gi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,gi._)`{limit: ${e}}`},ek={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Qb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?gi.operators.GT:gi.operators.LT;e.fail$data((0,gi._)`${r}.length ${i} ${n}`)}};_c.default=ek});var Uo=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var Qu=Ws();Qu.code='require("ajv/dist/runtime/equal").default';Ac.default=Qu});var ef=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var Rc=ei(),Ce=x(),tk=q(),rk=Uo(),nk={message:({params:{i:e,j:t}})=>(0,Ce.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ce._)`{i: ${e}, j: ${t}}`},ik={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:nk,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"),p=o.items?(0,Rc.getSchemaTypes)(o.items):[];e.block$data(c,l,(0,Ce._)`${a} === false`),e.ok(c);function l(){let m=t.let("i",(0,Ce._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ce._)`${m} > 1`,()=>(d()?f:u)(m,g))}function d(){return p.length>0&&!p.some(m=>m==="object"||m==="array")}function f(m,g){let y=t.name("item"),w=(0,Rc.checkDataTypes)(p,y,s.opts.strictNumbers,Rc.DataType.Wrong),_=t.const("indices",(0,Ce._)`{}`);t.for((0,Ce._)`;${m}--;`,()=>{t.let(y,(0,Ce._)`${r}[${m}]`),t.if(w,(0,Ce._)`continue`),p.length>1&&t.if((0,Ce._)`typeof ${y} == "string"`,(0,Ce._)`${y} += "_"`),t.if((0,Ce._)`typeof ${_}[${y}] == "number"`,()=>{t.assign(g,(0,Ce._)`${_}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,Ce._)`${_}[${y}] = ${m}`)})}function u(m,g){let y=(0,tk.useFunc)(t,rk.default),w=t.name("outer");t.label(w).for((0,Ce._)`;${m}--;`,()=>t.for((0,Ce._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ce._)`${y}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};Ec.default=ik});var tf=E(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});var Pc=x(),ok=q(),ak=Uo(),sk={message:"must be equal to constant",params:({schemaCode:e})=>(0,Pc._)`{allowedValue: ${e}}`},ck={keyword:"const",$data:!0,error:sk,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,Pc._)`!${(0,ok.useFunc)(t,ak.default)}(${r}, ${i})`):e.fail((0,Pc._)`${o} !== ${r}`)}};Nc.default=ck});var rf=E(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var yi=x(),lk=q(),pk=Uo(),dk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,yi._)`{allowedValues: ${e}}`},uk={keyword:"enum",schemaType:"array",$data:!0,error:dk,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,p=()=>c??(c=(0,lk.useFunc)(t,pk.default)),l;if(s||n)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",o);l=(0,yi.or)(...i.map((m,g)=>f(u,g)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",o,u=>t.if((0,yi._)`${p()}(${r}, ${u})`,()=>t.assign(l,!0).break()))}function f(u,m){let g=i[m];return typeof g=="object"&&g!==null?(0,yi._)`${p()}(${r}, ${u}[${m}])`:(0,yi._)`${r} === ${g}`}}};Oc.default=uk});var nf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var fk=zu(),mk=Gu(),gk=Ku(),yk=Yu(),hk=Hu(),wk=Zu(),Ik=Xu(),vk=ef(),bk=tf(),kk=rf(),_k=[fk.default,mk.default,gk.default,yk.default,hk.default,wk.default,Ik.default,vk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},bk.default,kk.default];Sc.default=_k});var jc=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.validateAdditionalItems=void 0;var $r=x(),Dc=q(),Ak={message:({params:{len:e}})=>(0,$r.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,$r._)`{limit: ${e}}`},Rk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Ak,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Dc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}of(e,n)}};function of(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,$r._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,$r._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Dc.alwaysValidSchema)(a,n)){let p=r.var("valid",(0,$r._)`${s} <= ${t.length}`);r.if((0,$r.not)(p),()=>c(p)),e.ok(p)}function c(p){r.forRange("i",t.length,s,l=>{e.subschema({keyword:o,dataProp:l,dataPropType:Dc.Type.Num},p),a.allErrors||r.if((0,$r.not)(p),()=>r.break())})}}hi.validateAdditionalItems=of;hi.default=Rk});var Cc=E(wi=>{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});wi.validateTuple=void 0;var af=x(),qo=q(),Ek=dt(),Pk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return sf(e,"additionalItems",t);r.items=!0,!(0,qo.alwaysValidSchema)(r,t)&&e.ok((0,Ek.validateArray)(e))}};function sf(e,t,r=e.schema){let{gen:n,parentSchema:i,data:o,keyword:a,it:s}=e;l(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=qo.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),p=n.const("len",(0,af._)`${o}.length`);r.forEach((d,f)=>{(0,qo.alwaysValidSchema)(s,d)||(n.if((0,af._)`${p} > ${f}`,()=>e.subschema({keyword:a,schemaProp:f,dataProp:f},c)),e.ok(c))});function l(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=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,qo.checkStrictMode)(s,y,f.strictTuples)}}}wi.validateTuple=sf;wi.default=Pk});var cf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var Nk=Cc(),Ok={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Nk.validateTuple)(e,"items")};$c.default=Ok});var pf=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var lf=x(),Sk=q(),Dk=dt(),jk=jc(),Ck={message:({params:{len:e}})=>(0,lf.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,lf._)`{limit: ${e}}`},$k={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Ck,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,Sk.alwaysValidSchema)(n,t)&&(i?(0,jk.validateAdditionalItems)(e,i):e.ok((0,Dk.validateArray)(e)))}};Tc.default=$k});var df=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var ft=x(),Bo=q(),Tk={message:({params:{min:e,max:t}})=>t===void 0?(0,ft.str)`must contain at least ${e} valid item(s)`:(0,ft.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,ft._)`{minContains: ${e}}`:(0,ft._)`{minContains: ${e}, maxContains: ${t}}`},Lk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Tk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e,a,s,{minContains:c,maxContains:p}=n;o.opts.next?(a=c===void 0?1:c,s=p):a=1;let l=t.const("len",(0,ft._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Bo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Bo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Bo.alwaysValidSchema)(o,r)){let g=(0,ft._)`${l} >= ${a}`;s!==void 0&&(g=(0,ft._)`${g} && ${l} <= ${s}`),e.pass(g);return}o.items=!0;let d=t.name("valid");s===void 0&&a===1?u(d,()=>t.if(d,()=>t.break())):a===0?(t.let(d,!0),s!==void 0&&t.if((0,ft._)`${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,l,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Bo.Type.Num,compositeRule:!0},g),y()})}function m(g){t.code((0,ft._)`${g}++`),s===void 0?t.if((0,ft._)`${g} >= ${a}`,()=>t.assign(d,!0).break()):(t.if((0,ft._)`${g} > ${s}`,()=>t.assign(d,!1).break()),a===1?t.assign(d,!0):t.if((0,ft._)`${g} >= ${a}`,()=>t.assign(d,!0)))}}};Lc.default=Lk});var zo=E(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.validateSchemaDeps=Lt.validatePropertyDeps=Lt.error=void 0;var xc=x(),xk=q(),Ii=dt();Lt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,xc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,xc._)`{property: ${e},
|
|
5
|
+
|| ${a} === "boolean" || ${i} === null`).assign(s,(0,V._)`[${i}]`)}}}function oI({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function qs(e,t,r,n=fn.Correct){let i=n===fn.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===fn.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)}}Be.checkDataType=qs;function Bs(e,t,r,n){if(e.length===1)return qs(e[0],t,r,n);let i,o=(0,Cd.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,qs(a,t,r,n));return i}Be.checkDataTypes=Bs;var aI={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function zs(e){let t=sI(e);(0,eI.reportError)(t,aI)}Be.reportTypeError=zs;function sI(e){let{gen:t,data:r,schema:n}=e,i=(0,Cd.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var xd=P(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.assignDefaults=void 0;var mn=x(),cI=q();function lI(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Ld(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Ld(e,o,i.default))}Ao.assignDefaults=lI;function Ld(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,mn._)`${o}${(0,mn.getProperty)(t)}`;if(i){(0,cI.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,mn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,mn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,mn._)`${s} = ${(0,mn.stringify)(r)}`)}});var dt=P(oe=>{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});oe.validateUnion=oe.validateArray=oe.usePattern=oe.callValidateCode=oe.schemaProperties=oe.allSchemaProperties=oe.noPropertyInData=oe.propertyInData=oe.isOwnProperty=oe.hasPropFunc=oe.reportMissingProp=oe.checkMissingProp=oe.checkReportMissingProp=void 0;var me=x(),Gs=q(),ir=pt(),pI=q();function dI(e,t){let{gen:r,data:n,it:i}=e;r.if(Ws(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,me._)`${t}`},!0),e.error()})}oe.checkReportMissingProp=dI;function uI({gen:e,data:t,it:{opts:r}},n,i){return(0,me.or)(...n.map(o=>(0,me.and)(Ws(e,t,o,r.ownProperties),(0,me._)`${i} = ${o}`)))}oe.checkMissingProp=uI;function fI(e,t){e.setParams({missingProperty:t},!0),e.error()}oe.reportMissingProp=fI;function Vd(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,me._)`Object.prototype.hasOwnProperty`})}oe.hasPropFunc=Vd;function Js(e,t,r){return(0,me._)`${Vd(e)}.call(${t}, ${r})`}oe.isOwnProperty=Js;function mI(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} !== undefined`;return n?(0,me._)`${i} && ${Js(e,t,r)}`:i}oe.propertyInData=mI;function Ws(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} === undefined`;return n?(0,me.or)(i,(0,me.not)(Js(e,t,r))):i}oe.noPropertyInData=Ws;function Md(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}oe.allSchemaProperties=Md;function gI(e,t){return Md(t).filter(r=>!(0,Gs.alwaysValidSchema)(e,t[r]))}oe.schemaProperties=gI;function yI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,l){let p=l?(0,me._)`${e}, ${t}, ${n}${i}`:t,d=[[ir.default.instancePath,(0,me.strConcat)(ir.default.instancePath,o)],[ir.default.parentData,a.parentData],[ir.default.parentDataProperty,a.parentDataProperty],[ir.default.rootData,ir.default.rootData]];a.opts.dynamicRef&&d.push([ir.default.dynamicAnchors,ir.default.dynamicAnchors]);let u=(0,me._)`${p}, ${r.object(...d)}`;return c!==me.nil?(0,me._)`${s}.call(${c}, ${u})`:(0,me._)`${s}(${u})`}oe.callValidateCode=yI;var hI=(0,me._)`new RegExp`;function wI({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,me._)`${i.code==="new RegExp"?hI:(0,pI.useFunc)(e,i)}(${r}, ${n})`})}oe.usePattern=wI;function II(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,me._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Gs.Type.Num},o),t.if((0,me.not)(o),s)})}}oe.validateArray=II;function vI(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,Gs.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let a=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(a,(0,me._)`${a} || ${s}`),e.mergeValidEvaluated(p,s)||t.if((0,me.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}oe.validateUnion=vI});var qd=P($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.validateKeywordUsage=$t.validSchemaType=$t.funcKeywordCode=$t.macroKeywordCode=void 0;var He=x(),Or=pt(),bI=dt(),kI=Qn();function _I(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=Ud(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:He.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}$t.macroKeywordCode=_I;function AI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;RI(c,t);let l=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,p=Ud(n,i,l),d=n.let("valid");e.block$data(d,u),e.ok((r=t.valid)!==null&&r!==void 0?r:d);function u(){if(t.errors===!1)g(),t.modifying&&Fd(e),y(()=>e.error());else{let h=t.async?f():m();t.modifying&&Fd(e),y(()=>EI(e,h))}}function f(){let h=n.let("ruleErrs",null);return n.try(()=>g((0,He._)`await `),v=>n.assign(d,!1).if((0,He._)`${v} instanceof ${c.ValidationError}`,()=>n.assign(h,(0,He._)`${v}.errors`),()=>n.throw(v))),h}function m(){let h=(0,He._)`${p}.errors`;return n.assign(h,null),g(He.nil),h}function g(h=t.async?(0,He._)`await `:He.nil){let v=c.opts.passContext?Or.default.this:Or.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(d,(0,He._)`${h}${(0,bI.callValidateCode)(e,p,v,b)}`,t.modifying)}function y(h){var v;n.if((0,He.not)((v=t.valid)!==null&&v!==void 0?v:d),h)}}$t.funcKeywordCode=AI;function Fd(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,He._)`${n.parentData}[${n.parentDataProperty}]`))}function EI(e,t){let{gen:r}=e;r.if((0,He._)`Array.isArray(${t})`,()=>{r.assign(Or.default.vErrors,(0,He._)`${Or.default.vErrors} === null ? ${t} : ${Or.default.vErrors}.concat(${t})`).assign(Or.default.errors,(0,He._)`${Or.default.vErrors}.length`),(0,kI.extendErrors)(e)},()=>e.error())}function RI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Ud(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,He.stringify)(r)})}function PI(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")}$t.validSchemaType=PI;function NI({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)}}$t.validateKeywordUsage=NI});var zd=P(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});or.extendSubschemaMode=or.extendSubschemaData=or.getSubschema=void 0;var Tt=x(),Bd=q();function OI(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,Tt._)`${e.schemaPath}${(0,Tt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Tt._)`${e.schemaPath}${(0,Tt.getProperty)(t)}${(0,Tt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Bd.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')}or.getSubschema=OI;function SI(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:p,opts:d}=t,u=s.let("data",(0,Tt._)`${t.data}${(0,Tt.getProperty)(r)}`,!0);c(u),e.errorPath=(0,Tt.str)`${l}${(0,Bd.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,Tt._)`${r}`,e.dataPathArr=[...p,e.parentDataProperty]}if(i!==void 0){let l=i instanceof Tt.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]}}or.extendSubschemaData=SI;function DI(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}or.extendSubschemaMode=DI});var Ks=P((BO,Gd)=>{"use strict";Gd.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 Wd=P((zO,Jd)=>{"use strict";var ar=Jd.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(){};Eo(t,n,i,e,"",e)};ar.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ar.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ar.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ar.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 Eo(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 p in n){var d=n[p];if(Array.isArray(d)){if(p in ar.arrayKeywords)for(var u=0;u<d.length;u++)Eo(e,t,r,d[u],i+"/"+p+"/"+u,o,i,p,n,u)}else if(p in ar.propsKeywords){if(d&&typeof d=="object")for(var f in d)Eo(e,t,r,d[f],i+"/"+p+"/"+jI(f),o,i,p,n,f)}else(p in ar.keywords||e.allKeys&&!(p in ar.skipKeywords))&&Eo(e,t,r,d,i+"/"+p,o,i,p,n)}r(n,i,o,a,s,c,l)}}function jI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var ti=P(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.getSchemaRefs=et.resolveUrl=et.normalizeId=et._getFullPath=et.getFullPath=et.inlineRef=void 0;var CI=q(),$I=Ks(),TI=Wd(),LI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function xI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Ys(e):t?Kd(e)<=t:!1}et.inlineRef=xI;var VI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Ys(e){for(let t in e){if(VI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Ys)||typeof r=="object"&&Ys(r))return!0}return!1}function Kd(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!LI.has(r)&&(typeof e[r]=="object"&&(0,CI.eachItem)(e[r],n=>t+=Kd(n)),t===1/0))return 1/0}return t}function Yd(e,t="",r){r!==!1&&(t=gn(t));let n=e.parse(t);return Hd(e,n)}et.getFullPath=Yd;function Hd(e,t){return e.serialize(t).split("#")[0]+"#"}et._getFullPath=Hd;var MI=/#\/?$/;function gn(e){return e?e.replace(MI,""):""}et.normalizeId=gn;function FI(e,t,r){return r=gn(r),e.resolve(t,r)}et.resolveUrl=FI;var UI=/^[a-z_][-a-z0-9._]*$/i;function qI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=gn(e[r]||t),o={"":i},a=Yd(n,i,!1),s={},c=new Set;return TI(e,{allKeys:!0},(d,u,f,m)=>{if(m===void 0)return;let g=a+u,y=o[m];typeof d[r]=="string"&&(y=h.call(this,d[r])),v.call(this,d.$anchor),v.call(this,d.$dynamicAnchor),o[u]=y;function h(b){let E=this.opts.uriResolver.resolve;if(b=gn(y?E(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!==gn(g)&&(b[0]==="#"?(l(d,s[b],b),s[b]=d):this.refs[b]=g),b}function v(b){if(typeof b=="string"){if(!UI.test(b))throw new Error(`invalid anchor "${b}"`);h.call(this,`#${b}`)}}}),s;function l(d,u,f){if(u!==void 0&&!$I(d,u))throw p(f)}function p(d){return new Error(`reference "${d}" resolves to more than one schema`)}}et.getSchemaRefs=qI});var ii=P(sr=>{"use strict";Object.defineProperty(sr,"__esModule",{value:!0});sr.getData=sr.KeywordCxt=sr.validateFunctionCode=void 0;var tu=Sd(),Zd=ei(),Zs=Us(),Ro=ei(),BI=xd(),ni=qd(),Hs=zd(),S=x(),L=pt(),zI=ti(),zt=q(),ri=Qn();function GI(e){if(iu(e)&&(ou(e),nu(e))){KI(e);return}ru(e,()=>(0,tu.topBoolOrEmptySchema)(e))}sr.validateFunctionCode=GI;function ru({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},o){i.code.es5?e.func(t,(0,S._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,S._)`"use strict"; ${Xd(r,i)}`),WI(e,i),e.code(o)}):e.func(t,(0,S._)`${L.default.data}, ${JI(i)}`,n.$async,()=>e.code(Xd(r,i)).code(o))}function JI(e){return(0,S._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,S._)`, ${L.default.dynamicAnchors}={}`:S.nil}}={}`}function WI(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,S._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,S._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,S._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,S._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,S._)`""`),e.var(L.default.parentData,(0,S._)`undefined`),e.var(L.default.parentDataProperty,(0,S._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,S._)`{}`)})}function KI(e){let{schema:t,opts:r,gen:n}=e;ru(e,()=>{r.$comment&&t.$comment&&su(e),QI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&YI(e),au(e),rv(e)})}function YI(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,S._)`${r}.evaluated`),t.if((0,S._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,S._)`${e.evaluated}.props`,(0,S._)`undefined`)),t.if((0,S._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,S._)`${e.evaluated}.items`,(0,S._)`undefined`))}function Xd(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,S._)`/*# sourceURL=${r} */`:S.nil}function HI(e,t){if(iu(e)&&(ou(e),nu(e))){ZI(e,t);return}(0,tu.boolOrEmptySchema)(e,t)}function nu({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 iu(e){return typeof e.schema!="boolean"}function ZI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&su(e),ev(e),tv(e);let o=n.const("_errs",L.default.errors);au(e,o),n.var(t,(0,S._)`${o} === ${L.default.errors}`)}function ou(e){(0,zt.checkUnknownRules)(e),XI(e)}function au(e,t){if(e.opts.jtd)return Qd(e,[],!1,t);let r=(0,Zd.getSchemaTypes)(e.schema),n=(0,Zd.coerceAndCheckDataType)(e,r);Qd(e,r,!n,t)}function XI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,zt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function QI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,zt.checkStrictMode)(e,"default is ignored in the schema root")}function ev(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,zI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function tv(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function su({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let o=r.$comment;if(i.$comment===!0)e.code((0,S._)`${L.default.self}.logger.log(${o})`);else if(typeof i.$comment=="function"){let a=(0,S.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,S._)`${L.default.self}.opts.$comment(${o}, ${a}, ${s}.schema)`)}}function rv(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:o}=e;r.$async?t.if((0,S._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,S._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,S._)`${n}.errors`,L.default.vErrors),o.unevaluated&&nv(e),t.return((0,S._)`${L.default.errors} === 0`))}function nv({gen:e,evaluated:t,props:r,items:n}){r instanceof S.Name&&e.assign((0,S._)`${t}.props`,r),n instanceof S.Name&&e.assign((0,S._)`${t}.items`,n)}function Qd(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:l}=e,{RULES:p}=l;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,zt.schemaHasRulesButRef)(o,p))){i.block(()=>lu(e,"$ref",p.all.$ref.definition));return}c.jtd||iv(e,t),i.block(()=>{for(let u of p.rules)d(u);d(p.post)});function d(u){(0,Zs.shouldUseGroup)(o,u)&&(u.type?(i.if((0,Ro.checkDataType)(u.type,a,c.strictNumbers)),eu(e,u),t.length===1&&t[0]===u.type&&r&&(i.else(),(0,Ro.reportTypeError)(e)),i.endIf()):eu(e,u),s||i.if((0,S._)`${L.default.errors} === ${n||0}`))}}function eu(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,BI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Zs.shouldUseRule)(n,o)&&lu(e,o.keyword,o.definition,t.type)})}function iv(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(ov(e,t),e.opts.allowUnionTypes||av(e,t),sv(e,e.dataTypes))}function ov(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{cu(e.dataTypes,r)||Xs(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),lv(e,t)}}function av(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Xs(e,"use allowUnionTypes to allow union type keyword")}function sv(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Zs.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>cv(t,a))&&Xs(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function cv(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function cu(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function lv(e,t){let r=[];for(let n of e.dataTypes)cu(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Xs(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,zt.checkStrictMode)(e,t,e.opts.strictTypes)}var Po=class{constructor(t,r,n){if((0,ni.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,zt.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",pu(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,ni.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,S.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,S.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,S._)`${r} !== undefined && (${(0,S.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?ri.reportExtraError:ri.reportError)(this,this.def.error,r)}$dataError(){(0,ri.reportError)(this,this.def.$dataError||ri.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ri.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=S.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=S.nil,r=S.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:o,def:a}=this;n.if((0,S.or)((0,S._)`${i} === undefined`,r)),t!==S.nil&&n.assign(t,!0),(o.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==S.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:o}=this;return(0,S.or)(a(),s());function a(){if(n.length){if(!(r instanceof S.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,S._)`${(0,Ro.checkDataTypes)(c,r,o.opts.strictNumbers,Ro.DataType.Wrong)}`}return S.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,S._)`!${c}(${r})`}return S.nil}}subschema(t,r){let n=(0,Hs.getSubschema)(this.it,t);(0,Hs.extendSubschemaData)(n,this.it,t),(0,Hs.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return HI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=zt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=zt.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,S.Name)),!0}};sr.KeywordCxt=Po;function lu(e,t,r,n){let i=new Po(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,ni.funcKeywordCode)(i,r):"macro"in r?(0,ni.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,ni.funcKeywordCode)(i,r)}var pv=/^\/(?:[^~]|~0|~1)*$/,dv=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function pu(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!pv.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let l=dv.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(o=r[t-p],!i)return o}let a=o,s=i.split("/");for(let l of s)l&&(o=(0,S._)`${o}${(0,S.getProperty)((0,zt.unescapeJsonPointer)(l))}`,a=(0,S._)`${a} && ${o}`);return a;function c(l,p){return`Cannot access ${l} ${p} levels up, current level is ${t}`}}sr.getData=pu});var No=P(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var Qs=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};ec.default=Qs});var oi=P(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var tc=ti(),rc=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,tc.resolveUrl)(t,r,n),this.missingSchema=(0,tc.normalizeId)((0,tc.getFullPath)(t,this.missingRef))}};nc.default=rc});var ai=P(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.resolveSchema=ut.getCompilingSchema=ut.resolveRef=ut.compileSchema=ut.SchemaEnv=void 0;var _t=x(),uv=No(),Sr=pt(),At=ti(),du=q(),fv=ii(),yn=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,At.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};ut.SchemaEnv=yn;function oc(e){let t=uu.call(this,e);if(t)return t;let r=(0,At.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new _t.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:uv.default,code:(0,_t._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:Sr.default.data,parentData:Sr.default.parentData,parentDataProperty:Sr.default.parentDataProperty,dataNames:[Sr.default.data],dataPathArr:[_t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,_t.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:_t.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,_t._)`""`,opts:this.opts,self:this},p;try{this._compilations.add(e),(0,fv.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let d=a.toString();p=`${a.scopeRefs(Sr.default.scope)}return ${d}`,this.opts.code.process&&(p=this.opts.code.process(p,e));let f=new Function(`${Sr.default.self}`,`${Sr.default.scope}`,p)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=e.schema,f.schemaEnv=e,e.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:a._values}),this.opts.unevaluated){let{props:m,items:g}=l;f.evaluated={props:m instanceof _t.Name?void 0:m,items:g instanceof _t.Name?void 0:g,dynamicProps:m instanceof _t.Name,dynamicItems:g instanceof _t.Name},f.source&&(f.source.evaluated=(0,_t.stringify)(f.evaluated))}return e.validate=f,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)}}ut.compileSchema=oc;function mv(e,t,r){var n;r=(0,At.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=hv.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 yn({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=gv.call(this,o)}ut.resolveRef=mv;function gv(e){return(0,At.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:oc.call(this,e)}function uu(e){for(let t of this._compilations)if(yv(t,e))return t}ut.getCompilingSchema=uu;function yv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function hv(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Oo.call(this,e,t)}function Oo(e,t){let r=this.opts.uriResolver.parse(t),n=(0,At._getFullPath)(this.opts.uriResolver,r),i=(0,At.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return ic.call(this,r,e);let o=(0,At.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=Oo.call(this,e,a);return typeof s?.schema!="object"?void 0:ic.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||oc.call(this,a),o===(0,At.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,l=s[c];return l&&(i=(0,At.resolveUrl)(this.opts.uriResolver,i,l)),new yn({schema:s,schemaId:c,root:e,baseId:i})}return ic.call(this,r,a)}}ut.resolveSchema=Oo;var wv=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ic(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,du.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!wv.has(s)&&l&&(t=(0,At.resolveUrl)(this.opts.uriResolver,t,l))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,du.schemaHasRulesButRef)(r,this.RULES)){let s=(0,At.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=Oo.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new yn({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var fu=P((HO,Iv)=>{Iv.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 cc=P((ZO,Iu)=>{"use strict";var vv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),gu=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),ac=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),yu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),bv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function sc(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 kv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function mu(e){return e.length=0,!0}function _v(e,t,r){if(e.length){let n=sc(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function Av(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=_v;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=mu}else{i.push(l);continue}}return i.length&&(s===mu?r.zone=i.join(""):a?n.push(i.join("")):n.push(sc(i))),r.address=n.join(""),r}function hu(e){if(Ev(e,":")<2)return{host:e,isIPV6:!1};let t=Av(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 Ev(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function Rv(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 Pv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},Nv=/[@/?#:]/g,Ov=/[@/?#]/g;function wu(e,t){let r=t?Ov:Nv;return r.lastIndex=0,e.replace(r,n=>Pv[n])}function Sv(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(ac(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&yu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function Dv(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(ac(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&yu(o)?t+=o:t+="%"+i,r+=2;continue}}bv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function jv(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(ac(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function Cv(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!gu(r)){let n=hu(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=wu(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}Iu.exports={nonSimpleDomain:kv,recomposeAuthority:Cv,reescapeHostDelimiters:wu,normalizePercentEncoding:Sv,normalizePathEncoding:Dv,escapePreservingEscapes:jv,removeDotSegments:Rv,isIPv4:gu,isUUID:vv,normalizeIPv6:hu,stringArrayToHexStripped:sc}});var Au=P((XO,_u)=>{"use strict";var{isUUID:$v}=cc(),Tv=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Lv=["http","https","ws","wss","urn","urn:uuid"];function xv(e){return Lv.indexOf(e)!==-1}function lc(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 vu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function bu(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 Vv(e){return e.secure=lc(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Mv(e){if((e.port===(lc(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 Fv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(Tv);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=pc(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Uv(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=pc(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 qv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!$v(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Bv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var ku={scheme:"http",domainHost:!0,parse:vu,serialize:bu},zv={scheme:"https",domainHost:ku.domainHost,parse:vu,serialize:bu},So={scheme:"ws",domainHost:!0,parse:Vv,serialize:Mv},Gv={scheme:"wss",domainHost:So.domainHost,parse:So.parse,serialize:So.serialize},Jv={scheme:"urn",parse:Fv,serialize:Uv,skipNormalize:!0},Wv={scheme:"urn:uuid",parse:qv,serialize:Bv,skipNormalize:!0},Do={http:ku,https:zv,ws:So,wss:Gv,urn:Jv,"urn:uuid":Wv};Object.setPrototypeOf(Do,null);function pc(e){return e&&(Do[e]||Do[e.toLowerCase()])||void 0}_u.exports={wsIsSecure:lc,SCHEMES:Do,isValidSchemeName:xv,getSchemeHandler:pc}});var Ou=P((QO,$o)=>{"use strict";var{normalizeIPv6:Kv,removeDotSegments:si,recomposeAuthority:Yv,normalizePercentEncoding:Hv,normalizePathEncoding:Zv,escapePreservingEscapes:Xv,reescapeHostDelimiters:Qv,isIPv4:eb,nonSimpleDomain:tb}=cc(),{SCHEMES:rb,getSchemeHandler:Ru}=Au();function nb(e,t){return typeof e=="string"?e=pb(e,t):typeof e=="object"&&(e=Co(Dr(e,t),t)),e}function ib(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=jo(e,n),{parsed:a,malformedAuthorityOrPort:s}=jo(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=Pu(i,a,n,!0);return n.skipEscape=!0,Dr(c,n)}function Pu(e,t,r,n){let i={};return n||(e=Co(Dr(e,r),r),t=Co(Dr(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=si(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=si(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=si(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=si(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 ob(e,t,r){let n=Eu(e,r),i=Eu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Dr(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=Ru(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Hv(r.path):(r.path=Xv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=Yv(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=si(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 ab=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,sb=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,cb=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function lb(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 jo(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(sb);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(cb);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(ab);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=lb(n,c);if(l!==void 0&&(n.error=n.error||l,i=!0),n.host)if(eb(n.host)===!1){let u=Kv(n.host);n.host=u.host.toLowerCase(),o=u.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 p=Ru(r.scheme||n.scheme);if(!r.unicodeSupport&&(!p||!p.unicodeSupport)&&n.host&&(r.domainHost||p&&p.domainHost)&&o===!1&&tb(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=Qv(unescape(n.host),o))),n.path&&(n.path=Zv(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 Co(e,t){return jo(e,t).parsed}function pb(e,t){return Nu(e,t).normalized}function Nu(e,t){let{parsed:r,malformedAuthorityOrPort:n}=jo(e,t);return{normalized:n?e:Dr(r,t),malformedAuthorityOrPort:n}}function Eu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Nu(e,t);return n?void 0:r}if(typeof e=="object")return Dr(e,t)}var dc={SCHEMES:rb,normalize:nb,resolve:ib,resolveComponent:Pu,equal:ob,serialize:Dr,parse:Co};$o.exports=dc;$o.exports.default=dc;$o.exports.fastUri=dc});var Du=P(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Su=Ou();Su.code='require("ajv/dist/runtime/uri").default';uc.default=Su});var Mu=P(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.CodeGen=je.Name=je.nil=je.stringify=je.str=je._=je.KeywordCxt=void 0;var db=ii();Object.defineProperty(je,"KeywordCxt",{enumerable:!0,get:function(){return db.KeywordCxt}});var hn=x();Object.defineProperty(je,"_",{enumerable:!0,get:function(){return hn._}});Object.defineProperty(je,"str",{enumerable:!0,get:function(){return hn.str}});Object.defineProperty(je,"stringify",{enumerable:!0,get:function(){return hn.stringify}});Object.defineProperty(je,"nil",{enumerable:!0,get:function(){return hn.nil}});Object.defineProperty(je,"Name",{enumerable:!0,get:function(){return hn.Name}});Object.defineProperty(je,"CodeGen",{enumerable:!0,get:function(){return hn.CodeGen}});var ub=No(),Lu=oi(),fb=Fs(),ci=ai(),mb=x(),li=ti(),To=ei(),mc=q(),ju=fu(),gb=Du(),xu=(e,t)=>new RegExp(e,t);xu.code="new RegExp";var yb=["removeAdditional","useDefaults","coerceTypes"],hb=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),wb={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."},Ib={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Cu=200;function vb(e){var t,r,n,i,o,a,s,c,l,p,d,u,f,m,g,y,h,v,b,E,I,A,O,C,fe;let T=e.strict,R=(t=e.code)===null||t===void 0?void 0:t.optimize,ee=R===!0||R===void 0?1:R||0,ce=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:xu,ct=(i=e.uriResolver)!==null&&i!==void 0?i:gb.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:T)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:T)!==null&&c!==void 0?c:!0,strictTypes:(p=(l=e.strictTypes)!==null&&l!==void 0?l:T)!==null&&p!==void 0?p:"log",strictTuples:(u=(d=e.strictTuples)!==null&&d!==void 0?d:T)!==null&&u!==void 0?u:"log",strictRequired:(m=(f=e.strictRequired)!==null&&f!==void 0?f:T)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:ee,regExp:ce}:{optimize:ee,regExp:ce},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Cu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Cu,meta:(h=e.meta)!==null&&h!==void 0?h:!0,messages:(v=e.messages)!==null&&v!==void 0?v:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(E=e.schemaId)!==null&&E!==void 0?E:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(A=e.validateSchema)!==null&&A!==void 0?A:!0,validateFormats:(O=e.validateFormats)!==null&&O!==void 0?O:!0,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:!0,int32range:(fe=e.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ct}}var pi=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,...vb(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new mb.ValueScope({scope:{},prefixes:hb,es5:r,lines:n}),this.logger=Rb(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,fb.getRules)(),$u.call(this,wb,t,"NOT SUPPORTED"),$u.call(this,Ib,t,"DEPRECATED","warn"),this._metaOpts=Ab.call(this),t.formats&&kb.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&_b.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),bb.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=ju;n==="id"&&(i={...ju},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 o.call(this,p.$schema);let u=this._addSchema(p,d);return u.validate||a.call(this,u)}async function o(p){p&&!this.getSchema(p)&&await i.call(this,{$ref:p},!0)}async function a(p){try{return this._compileSchemaEnv(p)}catch(d){if(!(d instanceof Lu.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),a.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 o.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 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,li.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=Tu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ci.SchemaEnv({schema:{},schemaId:n});if(r=ci.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=Tu.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,li.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(Nb.call(this,n,r),!r)return(0,mc.eachItem)(n,o=>fc.call(this,o)),this;Sb.call(this,r);let i={...r,type:(0,To.getJSONTypes)(r.type),schemaType:(0,To.getJSONTypes)(r.schemaType)};return(0,mc.eachItem)(n,i.type.length===0?o=>fc.call(this,o,i):o=>i.type.forEach(a=>fc.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,p=a[s];l&&p&&(a[s]=Vu(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,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,li.normalizeId)(a||n);let l=li.getSchemaRefs.call(this,t,n);return c=new ci.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):ci.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{ci.compileSchema.call(this,t)}finally{this.opts=r}}};pi.ValidationError=ub.default;pi.MissingRefError=Lu.default;je.default=pi;function $u(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 Tu(e){return e=(0,li.normalizeId)(e),this.schemas[e]||this.refs[e]}function bb(){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 kb(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function _b(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 Ab(){let e={...this.opts};for(let t of yb)delete e[t];return e}var Eb={log(){},warn(){},error(){}};function Rb(e){if(e===!1)return Eb;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 Pb=/^[a-z_$][a-z0-9_$:-]*$/i;function Nb(e,t){let{RULES:r}=this;if((0,mc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Pb.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 fc(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,To.getJSONTypes)(t.type),schemaType:(0,To.getJSONTypes)(t.schemaType)}};t.before?Ob.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 Ob(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 Sb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Vu(t)),e.validateSchema=this.compile(t,!0))}var Db={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Vu(e){return{anyOf:[e,Db]}}});var Fu=P(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var jb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};gc.default=jb});var Vo=P(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.callRef=jr.getValidate=void 0;var Cb=oi(),Uu=dt(),tt=x(),wn=pt(),qu=ai(),Lo=q(),$b={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 d();let p=qu.resolveRef.call(c,l,i,r);if(p===void 0)throw new Cb.default(n.opts.uriResolver,i,r);if(p instanceof qu.SchemaEnv)return u(p);return f(p);function d(){if(o===l)return xo(e,a,o,o.$async);let m=t.scopeValue("root",{ref:l});return xo(e,(0,tt._)`${m}.validate`,l,l.$async)}function u(m){let g=Bu(e,m);xo(e,g,m,m.$async)}function f(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,tt.stringify)(m)}:{ref:m}),y=t.name("valid"),h=e.subschema({schema:m,dataTypes:[],schemaPath:tt.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(h),e.ok(y)}}};function Bu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,tt._)`${r.scopeValue("wrapper",{ref:t})}.validate`}jr.getValidate=Bu;function xo(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,l=c.passContext?wn.default.this:tt.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,tt._)`await ${(0,Uu.callValidateCode)(e,t,l)}`),f(t),a||i.assign(m,!0)},g=>{i.if((0,tt._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),u(g),a||i.assign(m,!1)}),e.ok(m)}function d(){e.result((0,Uu.callValidateCode)(e,t,l),()=>f(t),()=>u(t))}function u(m){let g=(0,tt._)`${m}.errors`;i.assign(wn.default.vErrors,(0,tt._)`${wn.default.vErrors} === null ? ${g} : ${wn.default.vErrors}.concat(${g})`),i.assign(wn.default.errors,(0,tt._)`${wn.default.vErrors}.length`)}function f(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=Lo.mergeEvaluated.props(i,y.props,o.props));else{let h=i.var("props",(0,tt._)`${m}.evaluated.props`);o.props=Lo.mergeEvaluated.props(i,h,o.props,tt.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Lo.mergeEvaluated.items(i,y.items,o.items));else{let h=i.var("items",(0,tt._)`${m}.evaluated.items`);o.items=Lo.mergeEvaluated.items(i,h,o.items,tt.Name)}}}jr.callRef=xo;jr.default=$b});var zu=P(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Tb=Fu(),Lb=Vo(),xb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Tb.default,Lb.default];yc.default=xb});var Gu=P(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Mo=x(),cr=Mo.operators,Fo={maximum:{okStr:"<=",ok:cr.LTE,fail:cr.GT},minimum:{okStr:">=",ok:cr.GTE,fail:cr.LT},exclusiveMaximum:{okStr:"<",ok:cr.LT,fail:cr.GTE},exclusiveMinimum:{okStr:">",ok:cr.GT,fail:cr.LTE}},Vb={message:({keyword:e,schemaCode:t})=>(0,Mo.str)`must be ${Fo[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Mo._)`{comparison: ${Fo[e].okStr}, limit: ${t}}`},Mb={keyword:Object.keys(Fo),type:"number",schemaType:"number",$data:!0,error:Vb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,Mo._)`${r} ${Fo[t].fail} ${n} || isNaN(${r})`)}};hc.default=Mb});var Ju=P(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var di=x(),Fb={message:({schemaCode:e})=>(0,di.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,di._)`{multipleOf: ${e}}`},Ub={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Fb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,di._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,di._)`${a} !== parseInt(${a})`;e.fail$data((0,di._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};wc.default=Ub});var Ku=P(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});function Wu(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}Ic.default=Wu;Wu.code='require("ajv/dist/runtime/ucs2length").default'});var Yu=P(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Cr=x(),qb=q(),Bb=Ku(),zb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Cr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Cr._)`{limit: ${e}}`},Gb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:zb,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Cr.operators.GT:Cr.operators.LT,a=i.opts.unicode===!1?(0,Cr._)`${r}.length`:(0,Cr._)`${(0,qb.useFunc)(e.gen,Bb.default)}(${r})`;e.fail$data((0,Cr._)`${a} ${o} ${n}`)}};vc.default=Gb});var Hu=P(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var Jb=dt(),Wb=q(),In=x(),Kb={message:({schemaCode:e})=>(0,In.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,In._)`{pattern: ${e}}`},Yb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Kb,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,In._)`new RegExp`:(0,Wb.useFunc)(t,c),p=t.let("valid");t.try(()=>t.assign(p,(0,In._)`${l}(${o}, ${s}).test(${r})`),()=>t.assign(p,!1)),e.fail$data((0,In._)`!${p}`)}else{let c=(0,Jb.usePattern)(e,i);e.fail$data((0,In._)`!${c}.test(${r})`)}}};bc.default=Yb});var Zu=P(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var ui=x(),Hb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ui.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ui._)`{limit: ${e}}`},Zb={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Hb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ui.operators.GT:ui.operators.LT;e.fail$data((0,ui._)`Object.keys(${r}).length ${i} ${n}`)}};kc.default=Zb});var Xu=P(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var fi=dt(),mi=x(),Xb=q(),Qb={message:({params:{missingProperty:e}})=>(0,mi.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,mi._)`{missingProperty: ${e}}`},ek={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Qb,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():p(),s.strictRequired){let f=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(f?.[g]===void 0&&!m.has(g)){let y=a.schemaEnv.baseId+a.errSchemaPath,h=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,Xb.checkStrictMode)(a,h,a.opts.strictRequired)}}function l(){if(c||o)e.block$data(mi.nil,d);else for(let f of r)(0,fi.checkReportMissingProp)(e,f)}function p(){let f=t.let("missing");if(c||o){let m=t.let("valid",!0);e.block$data(m,()=>u(f,m)),e.ok(m)}else t.if((0,fi.checkMissingProp)(e,r,f)),(0,fi.reportMissingProp)(e,f),t.else()}function d(){t.forOf("prop",n,f=>{e.setParams({missingProperty:f}),t.if((0,fi.noPropertyInData)(t,i,f,s.ownProperties),()=>e.error())})}function u(f,m){e.setParams({missingProperty:f}),t.forOf(f,n,()=>{t.assign(m,(0,fi.propertyInData)(t,i,f,s.ownProperties)),t.if((0,mi.not)(m),()=>{e.error(),t.break()})},mi.nil)}}};_c.default=ek});var Qu=P(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var gi=x(),tk={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,gi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,gi._)`{limit: ${e}}`},rk={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:tk,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?gi.operators.GT:gi.operators.LT;e.fail$data((0,gi._)`${r}.length ${i} ${n}`)}};Ac.default=rk});var Uo=P(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var ef=Ks();ef.code='require("ajv/dist/runtime/equal").default';Ec.default=ef});var tf=P(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var Rc=ei(),Ce=x(),nk=q(),ik=Uo(),ok={message:({params:{i:e,j:t}})=>(0,Ce.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ce._)`{i: ${e}, j: ${t}}`},ak={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ok,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,Rc.getSchemaTypes)(o.items):[];e.block$data(c,p,(0,Ce._)`${a} === false`),e.ok(c);function p(){let m=t.let("i",(0,Ce._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,Ce._)`${m} > 1`,()=>(d()?u:f)(m,g))}function d(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function u(m,g){let y=t.name("item"),h=(0,Rc.checkDataTypes)(l,y,s.opts.strictNumbers,Rc.DataType.Wrong),v=t.const("indices",(0,Ce._)`{}`);t.for((0,Ce._)`;${m}--;`,()=>{t.let(y,(0,Ce._)`${r}[${m}]`),t.if(h,(0,Ce._)`continue`),l.length>1&&t.if((0,Ce._)`typeof ${y} == "string"`,(0,Ce._)`${y} += "_"`),t.if((0,Ce._)`typeof ${v}[${y}] == "number"`,()=>{t.assign(g,(0,Ce._)`${v}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,Ce._)`${v}[${y}] = ${m}`)})}function f(m,g){let y=(0,nk.useFunc)(t,ik.default),h=t.name("outer");t.label(h).for((0,Ce._)`;${m}--;`,()=>t.for((0,Ce._)`${g} = ${m}; ${g}--;`,()=>t.if((0,Ce._)`${y}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(h)})))}}};Pc.default=ak});var rf=P(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var Nc=x(),sk=q(),ck=Uo(),lk={message:"must be equal to constant",params:({schemaCode:e})=>(0,Nc._)`{allowedValue: ${e}}`},pk={keyword:"const",$data:!0,error:lk,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,Nc._)`!${(0,sk.useFunc)(t,ck.default)}(${r}, ${i})`):e.fail((0,Nc._)`${o} !== ${r}`)}};Oc.default=pk});var nf=P(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var yi=x(),dk=q(),uk=Uo(),fk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,yi._)`{allowedValues: ${e}}`},mk={keyword:"enum",schemaType:"array",$data:!0,error:fk,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,dk.useFunc)(t,uk.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 f=t.const("vSchema",o);p=(0,yi.or)(...i.map((m,g)=>u(f,g)))}e.pass(p);function d(){t.assign(p,!1),t.forOf("v",o,f=>t.if((0,yi._)`${l()}(${r}, ${f})`,()=>t.assign(p,!0).break()))}function u(f,m){let g=i[m];return typeof g=="object"&&g!==null?(0,yi._)`${l()}(${r}, ${f}[${m}])`:(0,yi._)`${r} === ${g}`}}};Sc.default=mk});var of=P(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var gk=Gu(),yk=Ju(),hk=Yu(),wk=Hu(),Ik=Zu(),vk=Xu(),bk=Qu(),kk=tf(),_k=rf(),Ak=nf(),Ek=[gk.default,yk.default,hk.default,wk.default,Ik.default,vk.default,bk.default,kk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},_k.default,Ak.default];Dc.default=Ek});var Cc=P(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.validateAdditionalItems=void 0;var $r=x(),jc=q(),Rk={message:({params:{len:e}})=>(0,$r.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,$r._)`{limit: ${e}}`},Pk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Rk,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,jc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}af(e,n)}};function af(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,$r._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,$r._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,jc.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,$r._)`${s} <= ${t.length}`);r.if((0,$r.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,p=>{e.subschema({keyword:o,dataProp:p,dataPropType:jc.Type.Num},l),a.allErrors||r.if((0,$r.not)(l),()=>r.break())})}}hi.validateAdditionalItems=af;hi.default=Pk});var $c=P(wi=>{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});wi.validateTuple=void 0;var sf=x(),qo=q(),Nk=dt(),Ok={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return cf(e,"additionalItems",t);r.items=!0,!(0,qo.alwaysValidSchema)(r,t)&&e.ok((0,Nk.validateArray)(e))}};function cf(e,t,r=e.schema){let{gen:n,parentSchema:i,data:o,keyword:a,it:s}=e;p(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=qo.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,sf._)`${o}.length`);r.forEach((d,u)=>{(0,qo.alwaysValidSchema)(s,d)||(n.if((0,sf._)`${l} > ${u}`,()=>e.subschema({keyword:a,schemaProp:u,dataProp:u},c)),e.ok(c))});function p(d){let{opts:u,errSchemaPath:f}=s,m=r.length,g=m===d.minItems&&(m===d.maxItems||d[t]===!1);if(u.strictTuples&&!g){let y=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${f}"`;(0,qo.checkStrictMode)(s,y,u.strictTuples)}}}wi.validateTuple=cf;wi.default=Ok});var lf=P(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Sk=$c(),Dk={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Sk.validateTuple)(e,"items")};Tc.default=Dk});var df=P(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var pf=x(),jk=q(),Ck=dt(),$k=Cc(),Tk={message:({params:{len:e}})=>(0,pf.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,pf._)`{limit: ${e}}`},Lk={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Tk,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,jk.alwaysValidSchema)(n,t)&&(i?(0,$k.validateAdditionalItems)(e,i):e.ok((0,Ck.validateArray)(e)))}};Lc.default=Lk});var uf=P(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var ft=x(),Bo=q(),xk={message:({params:{min:e,max:t}})=>t===void 0?(0,ft.str)`must contain at least ${e} valid item(s)`:(0,ft.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,ft._)`{minContains: ${e}}`:(0,ft._)`{minContains: ${e}, maxContains: ${t}}`},Vk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:xk,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 p=t.const("len",(0,ft._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Bo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Bo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Bo.alwaysValidSchema)(o,r)){let g=(0,ft._)`${p} >= ${a}`;s!==void 0&&(g=(0,ft._)`${g} && ${p} <= ${s}`),e.pass(g);return}o.items=!0;let d=t.name("valid");s===void 0&&a===1?f(d,()=>t.if(d,()=>t.break())):a===0?(t.let(d,!0),s!==void 0&&t.if((0,ft._)`${i}.length > 0`,u)):(t.let(d,!1),u()),e.result(d,()=>e.reset());function u(){let g=t.name("_valid"),y=t.let("count",0);f(g,()=>t.if(g,()=>m(y)))}function f(g,y){t.forRange("i",0,p,h=>{e.subschema({keyword:"contains",dataProp:h,dataPropType:Bo.Type.Num,compositeRule:!0},g),y()})}function m(g){t.code((0,ft._)`${g}++`),s===void 0?t.if((0,ft._)`${g} >= ${a}`,()=>t.assign(d,!0).break()):(t.if((0,ft._)`${g} > ${s}`,()=>t.assign(d,!1).break()),a===1?t.assign(d,!0):t.if((0,ft._)`${g} >= ${a}`,()=>t.assign(d,!0)))}}};xc.default=Vk});var zo=P(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.validateSchemaDeps=Lt.validatePropertyDeps=Lt.error=void 0;var Vc=x(),Mk=q(),Ii=dt();Lt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Vc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Vc._)`{property: ${e},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${t},
|
|
8
|
-
deps: ${r}}`};var Vk={keyword:"dependencies",type:"object",schemaType:"object",error:Lt.error,code(e){let[t,r]=Mk(e);uf(e,t),ff(e,r)}};function Mk({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 uf(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,Ii.propertyInData)(r,n,a,i.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let p of s)(0,Ii.checkReportMissingProp)(e,p)}):(r.if((0,xc._)`${c} && (${(0,Ii.checkMissingProp)(e,s,o)})`),(0,Ii.reportMissingProp)(e,o),r.else())}}Lt.validatePropertyDeps=uf;function ff(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,xk.alwaysValidSchema)(o,t[s])||(r.if((0,Ii.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))}Lt.validateSchemaDeps=ff;Lt.default=Vk});var gf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var mf=x(),Fk=q(),Uk={message:"property name must be valid",params:({params:e})=>(0,mf._)`{propertyName: ${e.propertyName}}`},qk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Uk,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,Fk.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,mf.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};Vc.default=qk});var Fc=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var Go=dt(),Rt=x(),Bk=pt(),Jo=q(),zk={message:"must NOT have additional properties",params:({params:e})=>(0,Rt._)`{additionalProperty: ${e.additionalProperty}}`},Gk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:zk,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,Jo.alwaysValidSchema)(a,r))return;let p=(0,Go.allSchemaProperties)(n.properties),l=(0,Go.allSchemaProperties)(n.patternProperties);d(),e.ok((0,Rt._)`${o} === ${Bk.default.errors}`);function d(){t.forIn("key",i,y=>{!p.length&&!l.length?m(y):t.if(f(y),()=>m(y))})}function f(y){let w;if(p.length>8){let _=(0,Jo.schemaRefOrVal)(a,n.properties,"properties");w=(0,Go.isOwnProperty)(t,_,y)}else p.length?w=(0,Rt.or)(...p.map(_=>(0,Rt._)`${y} === ${_}`)):w=Rt.nil;return l.length&&(w=(0,Rt.or)(w,...l.map(_=>(0,Rt._)`${(0,Go.usePattern)(e,_)}.test(${y})`))),(0,Rt.not)(w)}function u(y){t.code((0,Rt._)`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,Jo.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,Rt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,Rt.not)(w),()=>t.break()))}}function g(y,w,_){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Jo.Type.Str};_===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Mc.default=Gk});var wf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var Jk=ii(),yf=dt(),Uc=q(),hf=Fc(),Wk={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&&hf.default.code(new Jk.KeywordCxt(o,hf.default,"additionalProperties"));let a=(0,yf.allSchemaProperties)(r);for(let d of a)o.definedProperties.add(d);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=Uc.mergeEvaluated.props(t,(0,Uc.toHash)(a),o.props));let s=a.filter(d=>!(0,Uc.alwaysValidSchema)(o,r[d]));if(s.length===0)return;let c=t.name("valid");for(let d of s)p(d)?l(d):(t.if((0,yf.propertyInData)(t,i,d,o.opts.ownProperties)),l(d),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function p(d){return o.opts.useDefaults&&!o.compositeRule&&r[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};qc.default=Wk});var kf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var If=dt(),Wo=x(),vf=q(),bf=q(),Kk={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,If.allSchemaProperties)(r),c=s.filter(g=>(0,vf.alwaysValidSchema)(o,r[g]));if(s.length===0||c.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let p=a.strictSchema&&!a.allowMatchingProperties&&i.properties,l=t.name("valid");o.props!==!0&&!(o.props instanceof Wo.Name)&&(o.props=(0,bf.evaluatedPropsToName)(t,o.props));let{props:d}=o;f();function f(){for(let g of s)p&&u(g),o.allErrors?m(g):(t.var(l,!0),m(g),t.if(l))}function u(g){for(let y in p)new RegExp(g).test(y)&&(0,vf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,y=>{t.if((0,Wo._)`${(0,If.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:bf.Type.Str},l),o.opts.unevaluated&&d!==!0?t.assign((0,Wo._)`${d}[${y}]`,!0):!w&&!o.allErrors&&t.if((0,Wo.not)(l),()=>t.break())})})}}};Bc.default=Kk});var _f=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var Yk=q(),Hk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Yk.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"}};zc.default=Hk});var Af=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var Zk=dt(),Xk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Zk.validateUnion,error:{message:"must match a schema in anyOf"}};Gc.default=Xk});var Rf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Ko=x(),Qk=q(),e_={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ko._)`{passingSchemas: ${e.passing}}`},t_={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:e_,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(p),e.result(a,()=>e.reset(),()=>e.error(!0));function p(){o.forEach((l,d)=>{let f;(0,Qk.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,Ko._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Ko._)`[${s}, ${d}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,d),f&&e.mergeEvaluated(f,Ko.Name)})})}}};Jc.default=t_});var Ef=E(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var r_=q(),n_={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,r_.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};Wc.default=n_});var Of=E(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});var Yo=x(),Nf=q(),i_={message:({params:e})=>(0,Yo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Yo._)`{failingKeyword: ${e.ifClause}}`},o_={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:i_,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Nf.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=Pf(n,"then"),o=Pf(n,"else");if(!i&&!o)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&o){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(s,p("then",l),p("else",l))}else i?t.if(s,p("then")):t.if((0,Yo.not)(s),p("else"));e.pass(a,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(l)}function p(l,d){return()=>{let f=e.subschema({keyword:l},s);t.assign(a,s),e.mergeValidEvaluated(f,a),d?t.assign(d,(0,Yo._)`${l}`):e.setParams({ifClause:l})}}}};function Pf(e,t){let r=e.schema[t];return r!==void 0&&!(0,Nf.alwaysValidSchema)(e,r)}Kc.default=o_});var Sf=E(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});var a_=q(),s_={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,a_.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Yc.default=s_});var Df=E(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var c_=jc(),l_=cf(),p_=Cc(),d_=pf(),u_=df(),f_=zo(),m_=gf(),g_=Fc(),y_=wf(),h_=kf(),w_=_f(),I_=Af(),v_=Rf(),b_=Ef(),k_=Of(),__=Sf();function A_(e=!1){let t=[w_.default,I_.default,v_.default,b_.default,k_.default,__.default,m_.default,g_.default,f_.default,y_.default,h_.default];return e?t.push(l_.default,d_.default):t.push(c_.default,p_.default),t.push(u_.default),t}Hc.default=A_});var Xc=E(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.dynamicAnchor=void 0;var Zc=x(),R_=pt(),jf=ai(),E_=Vo(),P_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Cf(e,e.schema)};function Cf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Zc._)`${R_.default.dynamicAnchors}${(0,Zc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:N_(e);r.if((0,Zc._)`!${i}`,()=>r.assign(i,o))}vi.dynamicAnchor=Cf;function N_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:o,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,p=new jf.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return jf.compileSchema.call(n,p),(0,E_.getValidate)(e,p)}vi.default=P_});var Qc=E(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.dynamicRef=void 0;var $f=x(),O_=pt(),Tf=Vo(),S_={keyword:"$dynamicRef",schemaType:"string",code:e=>Lf(e,e.schema)};function Lf(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 p=r.let("_v",(0,$f._)`${O_.default.dynamicAnchors}${(0,$f.getProperty)(o)}`);r.if(p,s(p,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,p){return p?()=>r.block(()=>{(0,Tf.callRef)(e,c),r.let(p,!0)}):()=>(0,Tf.callRef)(e,c)}}bi.dynamicRef=Lf;bi.default=S_});var xf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var D_=Xc(),j_=q(),C_={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,D_.dynamicAnchor)(e,""):(0,j_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};el.default=C_});var Vf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var $_=Qc(),T_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,$_.dynamicRef)(e,e.schema)};tl.default=T_});var Mf=E(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=Xc(),x_=Qc(),V_=xf(),M_=Vf(),F_=[L_.default,x_.default,V_.default,M_.default];rl.default=F_});var Uf=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var Ff=zo(),U_={keyword:"dependentRequired",type:"object",schemaType:"object",error:Ff.error,code:e=>(0,Ff.validatePropertyDeps)(e)};nl.default=U_});var qf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var q_=zo(),B_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,q_.validateSchemaDeps)(e)};il.default=B_});var Bf=E(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var z_=q(),G_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,z_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};ol.default=G_});var zf=E(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var J_=Uf(),W_=qf(),K_=Bf(),Y_=[J_.default,W_.default,K_.default];al.default=Y_});var Jf=E(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var lr=x(),Gf=q(),H_=pt(),Z_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,lr._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},X_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:Z_,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 lr.Name?t.if((0,lr._)`${s} !== true`,()=>t.forIn("key",n,d=>t.if(p(s,d),()=>c(d)))):s!==!0&&t.forIn("key",n,d=>s===void 0?c(d):t.if(l(s,d),()=>c(d))),o.props=!0,e.ok((0,lr._)`${i} === ${H_.default.errors}`);function c(d){if(r===!1){e.setParams({unevaluatedProperty:d}),e.error(),a||t.break();return}if(!(0,Gf.alwaysValidSchema)(o,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:d,dataPropType:Gf.Type.Str},f),a||t.if((0,lr.not)(f),()=>t.break())}}function p(d,f){return(0,lr._)`!${d} || !${d}[${f}]`}function l(d,f){let u=[];for(let m in d)d[m]===!0&&u.push((0,lr._)`${f} !== ${m}`);return(0,lr.and)(...u)}}};sl.default=X_});var Kf=E(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var Tr=x(),Wf=q(),Q_={message:({params:{len:e}})=>(0,Tr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Tr._)`{limit: ${e}}`},eA={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:Q_,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,Tr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Tr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Wf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Tr._)`${a} <= ${o}`);t.if((0,Tr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,p){t.forRange("i",p,a,l=>{e.subschema({keyword:"unevaluatedItems",dataProp:l,dataPropType:Wf.Type.Num},c),i.allErrors||t.if((0,Tr.not)(c),()=>t.break())})}}};cl.default=eA});var Yf=E(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});var tA=Jf(),rA=Kf(),nA=[tA.default,rA.default];ll.default=nA});var Hf=E(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var Ae=x(),iA={message:({schemaCode:e})=>(0,Ae.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Ae._)`{format: ${e}}`},oA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:iA,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:p,schemaEnv:l,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,Ae._)`${m}[${a}]`),y=r.let("fType"),w=r.let("format");r.if((0,Ae._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,Ae._)`${g}.type || "string"`).assign(w,(0,Ae._)`${g}.validate`),()=>r.assign(y,(0,Ae._)`"string"`).assign(w,g)),e.fail$data((0,Ae.or)(_(),b()));function _(){return c.strictSchema===!1?Ae.nil:(0,Ae._)`${a} && !${w}`}function b(){let R=l.$async?(0,Ae._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,Ae._)`${w}(${n})`,I=(0,Ae._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,Ae._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let m=d.formats[o];if(!m){_();return}if(m===!0)return;let[g,y,w]=b(m);g===t&&e.pass(R());function _(){if(c.strictSchema===!1){d.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${p}"`}}function b(I){let A=I instanceof RegExp?(0,Ae.regexpCode)(I):c.code.formats?(0,Ae._)`${c.code.formats}${(0,Ae.getProperty)(o)}`:void 0,O=r.scopeValue("formats",{key:o,ref:I,code:A});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,Ae._)`${O}.validate`]:["string",I,O]}function R(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Ae._)`await ${w}(${n})`}return typeof y=="function"?(0,Ae._)`${w}(${n})`:(0,Ae._)`${w}.test(${n})`}}}};pl.default=oA});var Zf=E(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var aA=Hf(),sA=[aA.default];dl.default=sA});var Xf=E(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.contentVocabulary=vn.metadataVocabulary=void 0;vn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];vn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var em=E(ul=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});var cA=Bu(),lA=nf(),pA=Df(),dA=Mf(),uA=zf(),fA=Yf(),mA=Zf(),Qf=Xf(),gA=[dA.default,cA.default,lA.default,(0,pA.default)(!0),mA.default,Qf.metadataVocabulary,Qf.contentVocabulary,uA.default,fA.default];ul.default=gA});var rm=E(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.DiscrError=void 0;var tm;(function(e){e.Tag="tag",e.Mapping="mapping"})(tm||(Ho.DiscrError=tm={}))});var im=E(ml=>{"use strict";Object.defineProperty(ml,"__esModule",{value:!0});var bn=x(),fl=rm(),nm=ai(),yA=oi(),hA=q(),wA={message:({params:{discrError:e,tagName:t}})=>e===fl.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,bn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},IA={keyword:"discriminator",type:"object",schemaType:"object",error:wA,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),p=t.const("tag",(0,bn._)`${r}${(0,bn.getProperty)(s)}`);t.if((0,bn._)`typeof ${p} == "string"`,()=>l(),()=>e.error(!1,{discrError:fl.DiscrError.Tag,tag:p,tagName:s})),e.ok(c);function l(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,bn._)`${p} === ${m}`),t.assign(c,d(u[m]));t.else(),e.error(!1,{discrError:fl.DiscrError.Mapping,tag:p,tagName:s}),t.endIf()}function d(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,bn.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,hA.schemaHasRulesButRef)(I,o.self.RULES)){let O=I.$ref;if(I=nm.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,O),I instanceof nm.SchemaEnv&&(I=I.schema),I===void 0)throw new yA.default(o.opts.uriResolver,o.baseId,O)}let A=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof A!="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 _(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let A of R.enum)b(A,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}}}};ml.default=IA});var om=E((HS,vA)=>{vA.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 am=E((ZS,bA)=>{bA.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 sm=E((XS,kA)=>{kA.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 cm=E((QS,_A)=>{_A.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 lm=E((eD,AA)=>{AA.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 pm=E((tD,RA)=>{RA.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 dm=E((rD,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 um=E((nD,PA)=>{PA.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 fm=E(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});var NA=om(),OA=am(),SA=sm(),DA=cm(),jA=lm(),CA=pm(),$A=dm(),TA=um(),LA=["/properties"];function xA(e){return[NA,OA,SA,DA,jA,t(this,CA),$A,t(this,TA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,LA):n}}gl.default=xA});var Lr=E((ge,hl)=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.MissingRefError=ge.ValidationError=ge.CodeGen=ge.Name=ge.nil=ge.stringify=ge.str=ge._=ge.KeywordCxt=ge.Ajv2020=void 0;var VA=Vu(),MA=em(),FA=im(),UA=fm(),yl="https://json-schema.org/draft/2020-12/schema",kn=class extends VA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),MA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(FA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(UA.default.call(this,t),this.refs["http://json-schema.org/schema"]=yl)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(yl)?yl:void 0)}};ge.Ajv2020=kn;hl.exports=ge=kn;hl.exports.Ajv2020=kn;Object.defineProperty(ge,"__esModule",{value:!0});ge.default=kn;var qA=ii();Object.defineProperty(ge,"KeywordCxt",{enumerable:!0,get:function(){return qA.KeywordCxt}});var _n=x();Object.defineProperty(ge,"_",{enumerable:!0,get:function(){return _n._}});Object.defineProperty(ge,"str",{enumerable:!0,get:function(){return _n.str}});Object.defineProperty(ge,"stringify",{enumerable:!0,get:function(){return _n.stringify}});Object.defineProperty(ge,"nil",{enumerable:!0,get:function(){return _n.nil}});Object.defineProperty(ge,"Name",{enumerable:!0,get:function(){return _n.Name}});Object.defineProperty(ge,"CodeGen",{enumerable:!0,get:function(){return _n.CodeGen}});var BA=No();Object.defineProperty(ge,"ValidationError",{enumerable:!0,get:function(){return BA.default}});var zA=oi();Object.defineProperty(ge,"MissingRefError",{enumerable:!0,get:function(){return zA.default}})});import ye from"node:process";import Me from"node:path";import{spawnSync as kO}from"node:child_process";import{readFile as _O}from"node:fs/promises";var re="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Ct="^sha256:[a-f0-9]{64}$";import{constants as ga}from"node:fs";import{lstat as vR,mkdir as jn,open as Sm,readFile as Oi,realpath as Br,rename as bR,unlink as $l}from"node:fs/promises";import{randomUUID as Tl}from"node:crypto";import Oe from"node:path";var mm=cn(Lr(),1);var $e={type:"string",pattern:Ct},GA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},wl={type:"string",format:"date-time"},Il={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"]},gm={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}}},vl={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:$e,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:re}}}},compatibility:gm,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:$e,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:re},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:re}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:Il}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},ym={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:$e,deliveryReceiptId:$e,usage:{enum:["runtime","development"]}}},{$id:aD,...hm}=vl,JA={...hm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...vl.required,"availability","packageSources"],properties:{...vl.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:ym}}},WA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[hm,(()=>{let{$id:e,...t}=JA;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:Il,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:Il,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:$e,stderrDigest:$e,startedAt:wl,completedAt:wl,projectStateDigest:$e,runtime:gm}},KA={...Zo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Zo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Zo.properties,evidenceId:$e,capabilityId:{type:"string",pattern:re},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:$e}},YA={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:$e,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:$e,projectStateDigest:$e,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:$e,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:re}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:re}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:$e},committedAt:wl,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:GA,revision:$e}}},sources:{type:"array",minItems:1,maxItems:128,items:ym},packageJsonDigest:$e,lockfileDigest:$e}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},ki=new mm.Ajv2020({allErrors:!0,strict:!0});ki.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Qo={capabilityBundleRelease:ki.compile(WA),verificationResult:ki.compile(Zo),adoptionEvidence:ki.compile(KA),projectAdoptionLock:ki.compile(YA)},Xo=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ea(e,t,r){if(!t(r))throw new Xo(e,t.errors??[]);return r}var wm=e=>{let t=ea("capabilityBundleRelease",Qo.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Xo("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},Im=e=>ea("verificationResult",Qo.verificationResult,e),_i=e=>ea("adoptionEvidence",Qo.adoptionEvidence,e),Ze=e=>ea("projectAdoptionLock",Qo.projectAdoptionLock,e);import{lstat as iR,readFile as Al,realpath as Rl}from"node:fs/promises";import Rn from"node:path";import{createHash as HA}from"node:crypto";function h(e){return`sha256:${HA("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 xt=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function vm(e){if(!new RegExp(re).test(e))throw new xt("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function ta(e,t){if(e.includes("\r"))throw new xt("Managed regions require LF newlines");let{begin:r,end:n}=vm(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new xt("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 xt("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function
|
|
8
|
+
deps: ${r}}`};var Fk={keyword:"dependencies",type:"object",schemaType:"object",error:Lt.error,code(e){let[t,r]=Uk(e);ff(e,t),mf(e,r)}};function Uk({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 ff(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,Ii.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,Ii.checkReportMissingProp)(e,l)}):(r.if((0,Vc._)`${c} && (${(0,Ii.checkMissingProp)(e,s,o)})`),(0,Ii.reportMissingProp)(e,o),r.else())}}Lt.validatePropertyDeps=ff;function mf(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,Mk.alwaysValidSchema)(o,t[s])||(r.if((0,Ii.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))}Lt.validateSchemaDeps=mf;Lt.default=Fk});var yf=P(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var gf=x(),qk=q(),Bk={message:"property name must be valid",params:({params:e})=>(0,gf._)`{propertyName: ${e.propertyName}}`},zk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Bk,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,qk.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,gf.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};Mc.default=zk});var Uc=P(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var Go=dt(),Et=x(),Gk=pt(),Jo=q(),Jk={message:"must NOT have additional properties",params:({params:e})=>(0,Et._)`{additionalProperty: ${e.additionalProperty}}`},Wk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Jk,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,Jo.alwaysValidSchema)(a,r))return;let l=(0,Go.allSchemaProperties)(n.properties),p=(0,Go.allSchemaProperties)(n.patternProperties);d(),e.ok((0,Et._)`${o} === ${Gk.default.errors}`);function d(){t.forIn("key",i,y=>{!l.length&&!p.length?m(y):t.if(u(y),()=>m(y))})}function u(y){let h;if(l.length>8){let v=(0,Jo.schemaRefOrVal)(a,n.properties,"properties");h=(0,Go.isOwnProperty)(t,v,y)}else l.length?h=(0,Et.or)(...l.map(v=>(0,Et._)`${y} === ${v}`)):h=Et.nil;return p.length&&(h=(0,Et.or)(h,...p.map(v=>(0,Et._)`${(0,Go.usePattern)(e,v)}.test(${y})`))),(0,Et.not)(h)}function f(y){t.code((0,Et._)`delete ${i}[${y}]`)}function m(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(y);return}if(r===!1){e.setParams({additionalProperty:y}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Jo.alwaysValidSchema)(a,r)){let h=t.name("valid");c.removeAdditional==="failing"?(g(y,h,!1),t.if((0,Et.not)(h),()=>{e.reset(),f(y)})):(g(y,h),s||t.if((0,Et.not)(h),()=>t.break()))}}function g(y,h,v){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Jo.Type.Str};v===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,h)}}};Fc.default=Wk});var If=P(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var Kk=ii(),hf=dt(),qc=q(),wf=Uc(),Yk={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&&wf.default.code(new Kk.KeywordCxt(o,wf.default,"additionalProperties"));let a=(0,hf.allSchemaProperties)(r);for(let d of a)o.definedProperties.add(d);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=qc.mergeEvaluated.props(t,(0,qc.toHash)(a),o.props));let s=a.filter(d=>!(0,qc.alwaysValidSchema)(o,r[d]));if(s.length===0)return;let c=t.name("valid");for(let d of s)l(d)?p(d):(t.if((0,hf.propertyInData)(t,i,d,o.opts.ownProperties)),p(d),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function l(d){return o.opts.useDefaults&&!o.compositeRule&&r[d].default!==void 0}function p(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Bc.default=Yk});var _f=P(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var vf=dt(),Wo=x(),bf=q(),kf=q(),Hk={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,vf.allSchemaProperties)(r),c=s.filter(g=>(0,bf.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,p=t.name("valid");o.props!==!0&&!(o.props instanceof Wo.Name)&&(o.props=(0,kf.evaluatedPropsToName)(t,o.props));let{props:d}=o;u();function u(){for(let g of s)l&&f(g),o.allErrors?m(g):(t.var(p,!0),m(g),t.if(p))}function f(g){for(let y in l)new RegExp(g).test(y)&&(0,bf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,y=>{t.if((0,Wo._)`${(0,vf.usePattern)(e,g)}.test(${y})`,()=>{let h=c.includes(g);h||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:kf.Type.Str},p),o.opts.unevaluated&&d!==!0?t.assign((0,Wo._)`${d}[${y}]`,!0):!h&&!o.allErrors&&t.if((0,Wo.not)(p),()=>t.break())})})}}};zc.default=Hk});var Af=P(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var Zk=q(),Xk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Zk.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"}};Gc.default=Xk});var Ef=P(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Qk=dt(),e_={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Qk.validateUnion,error:{message:"must match a schema in anyOf"}};Jc.default=e_});var Rf=P(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var Ko=x(),t_=q(),r_={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Ko._)`{passingSchemas: ${e.passing}}`},n_={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:r_,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((p,d)=>{let u;(0,t_.alwaysValidSchema)(i,p)?t.var(c,!0):u=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,Ko._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Ko._)`[${s}, ${d}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,d),u&&e.mergeEvaluated(u,Ko.Name)})})}}};Wc.default=n_});var Pf=P(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});var i_=q(),o_={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,i_.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};Kc.default=o_});var Sf=P(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});var Yo=x(),Of=q(),a_={message:({params:e})=>(0,Yo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,Yo._)`{failingKeyword: ${e.ifClause}}`},s_={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:a_,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Of.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=Nf(n,"then"),o=Nf(n,"else");if(!i&&!o)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&o){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,Yo.not)(s),l("else"));e.pass(a,()=>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 u=e.subschema({keyword:p},s);t.assign(a,s),e.mergeValidEvaluated(u,a),d?t.assign(d,(0,Yo._)`${p}`):e.setParams({ifClause:p})}}}};function Nf(e,t){let r=e.schema[t];return r!==void 0&&!(0,Of.alwaysValidSchema)(e,r)}Yc.default=s_});var Df=P(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var c_=q(),l_={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,c_.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Hc.default=l_});var jf=P(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var p_=Cc(),d_=lf(),u_=$c(),f_=df(),m_=uf(),g_=zo(),y_=yf(),h_=Uc(),w_=If(),I_=_f(),v_=Af(),b_=Ef(),k_=Rf(),__=Pf(),A_=Sf(),E_=Df();function R_(e=!1){let t=[v_.default,b_.default,k_.default,__.default,A_.default,E_.default,y_.default,h_.default,g_.default,w_.default,I_.default];return e?t.push(d_.default,f_.default):t.push(p_.default,u_.default),t.push(m_.default),t}Zc.default=R_});var Qc=P(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.dynamicAnchor=void 0;var Xc=x(),P_=pt(),Cf=ai(),N_=Vo(),O_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>$f(e,e.schema)};function $f(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Xc._)`${P_.default.dynamicAnchors}${(0,Xc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:S_(e);r.if((0,Xc._)`!${i}`,()=>r.assign(i,o))}vi.dynamicAnchor=$f;function S_(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 Cf.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return Cf.compileSchema.call(n,l),(0,N_.getValidate)(e,l)}vi.default=O_});var el=P(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.dynamicRef=void 0;var Tf=x(),D_=pt(),Lf=Vo(),j_={keyword:"$dynamicRef",schemaType:"string",code:e=>xf(e,e.schema)};function xf(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,Tf._)`${D_.default.dynamicAnchors}${(0,Tf.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,Lf.callRef)(e,c),r.let(l,!0)}):()=>(0,Lf.callRef)(e,c)}}bi.dynamicRef=xf;bi.default=j_});var Vf=P(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var C_=Qc(),$_=q(),T_={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,C_.dynamicAnchor)(e,""):(0,$_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};tl.default=T_});var Mf=P(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=el(),x_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,L_.dynamicRef)(e,e.schema)};rl.default=x_});var Ff=P(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var V_=Qc(),M_=el(),F_=Vf(),U_=Mf(),q_=[V_.default,M_.default,F_.default,U_.default];nl.default=q_});var qf=P(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var Uf=zo(),B_={keyword:"dependentRequired",type:"object",schemaType:"object",error:Uf.error,code:e=>(0,Uf.validatePropertyDeps)(e)};il.default=B_});var Bf=P(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var z_=zo(),G_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,z_.validateSchemaDeps)(e)};ol.default=G_});var zf=P(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var J_=q(),W_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,J_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};al.default=W_});var Gf=P(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var K_=qf(),Y_=Bf(),H_=zf(),Z_=[K_.default,Y_.default,H_.default];sl.default=Z_});var Wf=P(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var lr=x(),Jf=q(),X_=pt(),Q_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,lr._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},eA={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:Q_,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 lr.Name?t.if((0,lr._)`${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))),o.props=!0,e.ok((0,lr._)`${i} === ${X_.default.errors}`);function c(d){if(r===!1){e.setParams({unevaluatedProperty:d}),e.error(),a||t.break();return}if(!(0,Jf.alwaysValidSchema)(o,r)){let u=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:d,dataPropType:Jf.Type.Str},u),a||t.if((0,lr.not)(u),()=>t.break())}}function l(d,u){return(0,lr._)`!${d} || !${d}[${u}]`}function p(d,u){let f=[];for(let m in d)d[m]===!0&&f.push((0,lr._)`${u} !== ${m}`);return(0,lr.and)(...f)}}};cl.default=eA});var Yf=P(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});var Tr=x(),Kf=q(),tA={message:({params:{len:e}})=>(0,Tr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Tr._)`{limit: ${e}}`},rA={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:tA,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,Tr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Tr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Kf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Tr._)`${a} <= ${o}`);t.if((0,Tr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,l){t.forRange("i",l,a,p=>{e.subschema({keyword:"unevaluatedItems",dataProp:p,dataPropType:Kf.Type.Num},c),i.allErrors||t.if((0,Tr.not)(c),()=>t.break())})}}};ll.default=rA});var Hf=P(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var nA=Wf(),iA=Yf(),oA=[nA.default,iA.default];pl.default=oA});var Zf=P(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var Ae=x(),aA={message:({schemaCode:e})=>(0,Ae.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Ae._)`{format: ${e}}`},sA={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:aA,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:p,self:d}=s;if(!c.validateFormats)return;i?u():f();function u(){let m=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),g=r.const("fDef",(0,Ae._)`${m}[${a}]`),y=r.let("fType"),h=r.let("format");r.if((0,Ae._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,Ae._)`${g}.type || "string"`).assign(h,(0,Ae._)`${g}.validate`),()=>r.assign(y,(0,Ae._)`"string"`).assign(h,g)),e.fail$data((0,Ae.or)(v(),b()));function v(){return c.strictSchema===!1?Ae.nil:(0,Ae._)`${a} && !${h}`}function b(){let E=p.$async?(0,Ae._)`(${g}.async ? await ${h}(${n}) : ${h}(${n}))`:(0,Ae._)`${h}(${n})`,I=(0,Ae._)`(typeof ${h} == "function" ? ${E} : ${h}.test(${n}))`;return(0,Ae._)`${h} && ${h} !== true && ${y} === ${t} && !${I}`}}function f(){let m=d.formats[o];if(!m){v();return}if(m===!0)return;let[g,y,h]=b(m);g===t&&e.pass(E());function v(){if(c.strictSchema===!1){d.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${l}"`}}function b(I){let A=I instanceof RegExp?(0,Ae.regexpCode)(I):c.code.formats?(0,Ae._)`${c.code.formats}${(0,Ae.getProperty)(o)}`:void 0,O=r.scopeValue("formats",{key:o,ref:I,code:A});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,Ae._)`${O}.validate`]:["string",I,O]}function E(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!p.$async)throw new Error("async format in sync schema");return(0,Ae._)`await ${h}(${n})`}return typeof y=="function"?(0,Ae._)`${h}(${n})`:(0,Ae._)`${h}.test(${n})`}}}};dl.default=sA});var Xf=P(ul=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});var cA=Zf(),lA=[cA.default];ul.default=lA});var Qf=P(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.contentVocabulary=vn.metadataVocabulary=void 0;vn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];vn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var tm=P(fl=>{"use strict";Object.defineProperty(fl,"__esModule",{value:!0});var pA=zu(),dA=of(),uA=jf(),fA=Ff(),mA=Gf(),gA=Hf(),yA=Xf(),em=Qf(),hA=[fA.default,pA.default,dA.default,(0,uA.default)(!0),yA.default,em.metadataVocabulary,em.contentVocabulary,mA.default,gA.default];fl.default=hA});var nm=P(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.DiscrError=void 0;var rm;(function(e){e.Tag="tag",e.Mapping="mapping"})(rm||(Ho.DiscrError=rm={}))});var om=P(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});var bn=x(),ml=nm(),im=ai(),wA=oi(),IA=q(),vA={message:({params:{discrError:e,tagName:t}})=>e===ml.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,bn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},bA={keyword:"discriminator",type:"object",schemaType:"object",error:vA,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,bn._)`${r}${(0,bn.getProperty)(s)}`);t.if((0,bn._)`typeof ${l} == "string"`,()=>p(),()=>e.error(!1,{discrError:ml.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function p(){let f=u();t.if(!1);for(let m in f)t.elseIf((0,bn._)`${l} === ${m}`),t.assign(c,d(f[m]));t.else(),e.error(!1,{discrError:ml.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function d(f){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:f},m);return e.mergeEvaluated(g,bn.Name),m}function u(){var f;let m={},g=h(i),y=!0;for(let E=0;E<a.length;E++){let I=a[E];if(I?.$ref&&!(0,IA.schemaHasRulesButRef)(I,o.self.RULES)){let O=I.$ref;if(I=im.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,O),I instanceof im.SchemaEnv&&(I=I.schema),I===void 0)throw new wA.default(o.opts.uriResolver,o.baseId,O)}let A=(f=I?.properties)===null||f===void 0?void 0:f[s];if(typeof A!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||h(I)),v(A,E)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return m;function h({required:E}){return Array.isArray(E)&&E.includes(s)}function v(E,I){if(E.const)b(E.const,I);else if(E.enum)for(let A of E.enum)b(A,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(E,I){if(typeof E!="string"||E in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[E]=I}}}};gl.default=bA});var am=P((QS,kA)=>{kA.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 sm=P((eD,_A)=>{_A.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 cm=P((tD,AA)=>{AA.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 lm=P((rD,EA)=>{EA.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 pm=P((nD,RA)=>{RA.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 dm=P((iD,PA)=>{PA.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 um=P((oD,NA)=>{NA.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 fm=P((aD,OA)=>{OA.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 mm=P(yl=>{"use strict";Object.defineProperty(yl,"__esModule",{value:!0});var SA=am(),DA=sm(),jA=cm(),CA=lm(),$A=pm(),TA=dm(),LA=um(),xA=fm(),VA=["/properties"];function MA(e){return[SA,DA,jA,CA,$A,t(this,TA),LA,t(this,xA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,VA):n}}yl.default=MA});var Lr=P((ge,wl)=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.MissingRefError=ge.ValidationError=ge.CodeGen=ge.Name=ge.nil=ge.stringify=ge.str=ge._=ge.KeywordCxt=ge.Ajv2020=void 0;var FA=Mu(),UA=tm(),qA=om(),BA=mm(),hl="https://json-schema.org/draft/2020-12/schema",kn=class extends FA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),UA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(qA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(BA.default.call(this,t),this.refs["http://json-schema.org/schema"]=hl)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(hl)?hl:void 0)}};ge.Ajv2020=kn;wl.exports=ge=kn;wl.exports.Ajv2020=kn;Object.defineProperty(ge,"__esModule",{value:!0});ge.default=kn;var zA=ii();Object.defineProperty(ge,"KeywordCxt",{enumerable:!0,get:function(){return zA.KeywordCxt}});var _n=x();Object.defineProperty(ge,"_",{enumerable:!0,get:function(){return _n._}});Object.defineProperty(ge,"str",{enumerable:!0,get:function(){return _n.str}});Object.defineProperty(ge,"stringify",{enumerable:!0,get:function(){return _n.stringify}});Object.defineProperty(ge,"nil",{enumerable:!0,get:function(){return _n.nil}});Object.defineProperty(ge,"Name",{enumerable:!0,get:function(){return _n.Name}});Object.defineProperty(ge,"CodeGen",{enumerable:!0,get:function(){return _n.CodeGen}});var GA=No();Object.defineProperty(ge,"ValidationError",{enumerable:!0,get:function(){return GA.default}});var JA=oi();Object.defineProperty(ge,"MissingRefError",{enumerable:!0,get:function(){return JA.default}})});import ye from"node:process";import Fe from"node:path";import{spawnSync as EO}from"node:child_process";import{readFile as RO}from"node:fs/promises";var ne="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Ct="^sha256:[a-f0-9]{64}$";import{constants as ga}from"node:fs";import{lstat as kE,mkdir as jn,open as Dm,readFile as Oi,realpath as Br,rename as _E,unlink as Tl}from"node:fs/promises";import{randomUUID as Ll}from"node:crypto";import Oe from"node:path";var gm=cn(Lr(),1);var $e={type:"string",pattern:Ct},WA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},Il={type:"string",format:"date-time"},vl={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"]},ym={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}}},bl={$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:ne},version:{type:"string",minLength:1,maxLength:128},integrity:$e,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:ne}}}},compatibility:ym,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:$e,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:ne},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-contract-v2","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:ne}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:vl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},hm={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:$e,deliveryReceiptId:$e,usage:{enum:["runtime","development"]}}},{$id:lD,...wm}=bl,KA={...wm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...bl.required,"availability","packageSources"],properties:{...bl.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:hm}}},YA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[wm,(()=>{let{$id:e,...t}=KA;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:vl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:vl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:$e,stderrDigest:$e,startedAt:Il,completedAt:Il,projectStateDigest:$e,runtime:ym}},HA={...Zo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Zo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Zo.properties,evidenceId:$e,capabilityId:{type:"string",pattern:ne},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:$e}},ZA={$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:ne},version:{type:"string",minLength:1,maxLength:128},integrity:$e,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:$e,projectStateDigest:$e,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:$e,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:ne}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:ne}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:$e},committedAt:Il,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:WA,revision:$e}}},sources:{type:"array",minItems:1,maxItems:128,items:hm},packageJsonDigest:$e,lockfileDigest:$e}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},ki=new gm.Ajv2020({allErrors:!0,strict:!0});ki.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Qo={capabilityBundleRelease:ki.compile(YA),verificationResult:ki.compile(Zo),adoptionEvidence:ki.compile(HA),projectAdoptionLock:ki.compile(ZA)},Xo=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function ea(e,t,r){if(!t(r))throw new Xo(e,t.errors??[]);return r}var Im=e=>{let t=ea("capabilityBundleRelease",Qo.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Xo("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},vm=e=>ea("verificationResult",Qo.verificationResult,e),_i=e=>ea("adoptionEvidence",Qo.adoptionEvidence,e),Ze=e=>ea("projectAdoptionLock",Qo.projectAdoptionLock,e);import{lstat as aE,readFile as El,realpath as Rl}from"node:fs/promises";import En from"node:path";import{createHash as XA}from"node:crypto";function w(e){return`sha256:${XA("sha256").update(e).digest("hex")}`}function _(e){return Array.isArray(e)?`[${e.map(_).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)}:${_(n)}`).join(",")}}`:JSON.stringify(e)}var xt=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function bm(e){if(!new RegExp(ne).test(e))throw new xt("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function ta(e,t){if(e.includes("\r"))throw new xt("Managed regions require LF newlines");let{begin:r,end:n}=bm(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new xt("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 xt("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
+
`}function km(e){let{begin:t,end:r}=bm(e.regionId);if(e.source.includes("\r")||e.content.includes("\r"))throw new xt("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 xt("Managed region markers are ambiguous");let o=e.content.replace(/^\n+|\n+$/g,"");if(/<!-- dyyto:(?:begin|end) /.test(o))throw new xt("Managed regions cannot contain nested Dyyto markers");let a=`${t}
|
|
10
10
|
${o}
|
|
11
|
-
${r}`;if(n===0){let
|
|
11
|
+
${r}`;if(n===0){let p=e.source.replace(/\n*$/g,"");return`${p}${p.length===0?"":`
|
|
12
12
|
|
|
13
13
|
`}${a}
|
|
14
|
-
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,p=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(p))throw new xt("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import km from"node:path";var pr=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function ra(e){if(e.length===0||km.posix.isAbsolute(e)||km.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new pr("Asset path must be a normalized project-relative POSIX path",e)}function ZA(e,t){ra(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(re).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new pr("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 Ne(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new pr("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new pr("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(ra(s.path),t.has(s.path))throw new pr("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 pr("Proposed change paths must be unique",s.path);return r.add(s.path),ZA(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 na(e){return h(k(e))}var _m=cn(Lr(),1);var ne={type:"string",pattern:Ct},An={type:"string",pattern:re},Mr={type:"string",minLength:1,maxLength:128},Vr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},XA={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:An,version:Mr,integrity:ne,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Vr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:ne}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},QA={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:An,version:Mr}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:re},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:An,version:Mr}}}}},eR={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:An,version:Mr,integrity:ne,appliedPlanId:ne,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Vr,digest:ne}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},tR={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:An,capabilityVersion:Mr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},rR={$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:ne,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:An,version:Mr,integrity:ne}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:ne,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:ne,desiredPackageJsonDigest:ne,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:ne}}]},desiredLockfileDigest:ne,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:ne}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:ne,bindingDigest:ne,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:Mr,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:ne,deliveryReceiptId:ne,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:Vr,unitImporterId:Vr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:ne}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:Vr,preimageDigest:ne,desiredDigest:ne}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:Vr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:ne,baseDigest:ne,regionId:{type:"string",pattern:re},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},nR={$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:ne,approvedPlanId:ne,projectRootDigest:ne,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:Vr,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:ne,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:ne}}]},desiredDigest:ne,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:ne}},xr=new _m.Ajv2020({allErrors:!0,strict:!0});xr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var kl={capabilityRelease:xr.compile(XA),projectManifest:xr.compile(QA),projectLock:xr.compile(eR),evidence:xr.compile(tR),changePlan:xr.compile(rR),transactionJournal:xr.compile(nR)},bl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function _l(e,t,r){if(!t(r))throw new bl(e,t.errors??[]);return r}var K=e=>_l("projectManifest",kl.projectManifest,e);var dr=e=>_l("changePlan",kl.changePlan,e),Am=e=>_l("transactionJournal",kl.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function ia(e){if(e.currentLock!==void 0){let o=await oa({...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 Rl(Rn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await El(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 El(e,t){let r=Rn.join(e,...t.split("/"));try{let n=await iR(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 Al(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Fr(e){let t=await Rl(Rn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await El(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=h(ta(await Al(Rn.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 oa(e){let t=K(e.manifest);if(t.capabilities.filter(l=>l.capabilityId===e.release.release.capabilityId&&l.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let i=(e.currentLock===void 0?void 0:Ze(e.currentLock))?.capabilities.find(l=>l.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 Rl(Rn.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let l of e.release.release.assets){let d=await El(o,l.path);if(a.push(d),d.exists&&i===void 0&&l.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",l.path);let f=l.ownership==="seed-file"&&d.digest?d.digest:l.digest;l.ownership==="seed-file"&&d.exists&&c.set(l.path,await Al(Rn.join(o,...l.path.split("/")))),s.push({path:l.path,kind:"create",ownership:l.ownership,desiredDigest:f})}let p={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(l=>({path:l.path,ownership:l.ownership,desiredDigest:l.digest})),verifiers:e.release.release.verifiers.map(l=>({id:l.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Ne({action:"adopt",capability:p,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as aR,lstat as da,mkdir as En,open as Pm,readFile as ua,realpath as sR,rename as la,rm as Pl,unlink as Ur}from"node:fs/promises";import{constants as sa}from"node:fs";import{homedir as cR}from"node:os";import Y from"node:path";import{randomUUID as On}from"node:crypto";function oR(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function mt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Rm(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Rm(e.context,e.operation,e.bytes??0,t,"failed",oR(r)),r}}async function Rm(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 Nm=Symbol("prepared-transaction"),ur=new Map,lR=5*1024*1024,pR=25*1024*1024,Em=8,pa=class extends Error{};async function aa(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new pa("Simulated prepare crash",{cause:n})}}var $=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function Ai(e,t){let r=Y.join(e,".dyyto"),n=Y.join(r,"transactions",t);return{platformDirectory:r,lock:Y.join(r,"transaction-lock.json"),transactionDirectory:n,journal:Y.join(n,"journal.json"),preimages:Y.join(n,"preimages"),quarantine:Y.join(n,"quarantine")}}async function Gt(e){try{return await da(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Sn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function Et(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function gt(e,t){let r=await Pm(e,sa.O_RDONLY);try{await mt({context:Sn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Ri(e,t,r=384,n){let i=await Pm(e,sa.O_CREAT|sa.O_EXCL|sa.O_WRONLY,r);try{await mt({context:Sn(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await mt({context:Sn(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Nl(e,t,r){let n=Y.dirname(e),i=Y.join(n,`.tmp-${On()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await
|
|
16
|
-
`),384,r),await gt(Y.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new $("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ca(e){try{let t=JSON.parse(await ua(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 $("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function mR(e,t,r){return{[Nm]:!0,projectRoot:e,plan:t,transactionId:r}}async function gR(e,t){uR(e.plan,e.approvedPlanId,e.now);let r=await fa(e.projectRoot),n=fR(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 $("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Dn(r,u.path),await Pn(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||h(m)!==u.desiredDigest)throw new $("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let o=Ai(r,e.plan.planId);await En(o.platformDirectory,{recursive:!0,mode:448}),await Pn(r,".dyyto");let a=On();await Dl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:On()},Et(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??lR,c=e.limits?.maxTransactionBytes??pR,p=0,l=[],d=[],f=!1;try{if(await aa(t,"lock-created"),await Gt(o.transactionDirectory))throw new $("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await En(o.preimages,{recursive:!0,mode:448}),await En(o.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let y=Dn(r,g.path);await Pn(r,g.path);let w=await Nn(y);if(g.kind==="create"){if(w!==void 0)throw new $("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new $("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let _={kind:"absent"};if(w!==void 0){if(p+=w.bytes.byteLength,w.bytes.byteLength>s||p>c)throw new $("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=Y.join(o.preimages,`${m}.bin`);await Ri(b,w.bytes,384,Et(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),d.push(m),await aa(t,"preimage-written-pending-directory-sync",m),_={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}l.push({index:m,path:g.path,kind:g.kind,before:_,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(d.length>0){await gt(o.preimages,Et(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of d)await aa(t,"preimage-persisted",m)}let u=Ol({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:h(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:l});return await Nl(o.journal,u,Et(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),ur.set(a,{desiredContents:e.desiredContents,journal:u}),await aa(t,"journal-prepared"),mR(r,e.plan,a)}catch(u){if(u instanceof pa)throw ur.delete(a),new $("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await Pl(o.transactionDirectory,{recursive:!0,force:!0}),await Ur(o.lock),await gt(o.platformDirectory)}catch{throw new $("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function mr(e){return gR(e)}async function yR(e,t,r,n){return fr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},Et(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function hR(e,t,r,n,i,o){let a=Dn(e,n.path);await Pn(e,n.path);let s=await Nn(a);if(n.before.kind==="absent"){if(s!==void 0)throw new $("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new $("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let d=Y.join(t.quarantine,`${n.index}.bin`),f=Et(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await mt({context:Sn(f),operation:"rename",run:()=>la(a,d)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[Y.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new $("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await En(Y.dirname(a),{recursive:!0}),await Pn(e,n.path);let p=Y.join(Y.dirname(a),`.dyyto-${r}-${n.index}.tmp`),l=Et(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await Ri(p,c,n.before.kind==="present"?n.before.mode&511:420,l),await o?.onCheckpoint?.("temporary-file-synced",n.index),await mt({context:Sn(l),operation:"rename",bytes:c.byteLength,run:()=>la(p,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[Y.dirname(a)]}async function wR(e,t){let r=ur.get(e.transactionId);if(r===void 0||e[Nm]!==!0)throw new $("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=Ai(e.projectRoot,e.plan.planId),i=await fr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},Et(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+=Em){let s=i.operations.slice(a,a+Em),c=await Promise.allSettled(s.map(l=>hR(e.projectRoot,n,e.transactionId,l,r.desiredContents,t))),p=c.find(l=>l.status==="rejected");if(p?.status==="rejected")throw p.reason;for(let l of c)if(l.status==="fulfilled")for(let d of l.value)o.has(d)||o.set(d,Et(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await gt(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 fr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},Et(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await fr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},Et(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Ur(n.lock),await gt(n.platformDirectory),ur.delete(e.transactionId),qr(i)}catch(o){throw i=await yR(n,i,o instanceof $?o.operationIndex:void 0,t?.durabilityTrace),ur.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new $("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function gr(e){return wR(e)}function qr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Jt(e){let t=await fa(e.projectRoot),r=Ai(t,e.planId);if(!await Gt(r.journal)){if(!await Gt(r.lock))return null;let n=await ca(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return qr(await Sl(r.journal))}async function IR(e,t,r){await En(Y.dirname(e),{recursive:!0});let n=Y.join(Y.dirname(e),`.dyyto-recover-${On()}.tmp`);await Ri(n,t,r&511),await la(n,e),await aR(e,r&511),await gt(Y.dirname(e))}async function Om(e){let t=await fa(e.projectRoot),r=Ai(t,e.planId);if(!await Gt(r.journal)){if(!await Gt(r.lock))throw new $("JOURNAL_CORRUPTED","No transaction record exists");let i=await ca(r.lock);if(i.planId!==e.planId)throw new $("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await Pl(r.transactionDirectory,{recursive:!0,force:!0}),await En(r.transactionDirectory,{recursive:!0,mode:448});let o=Ol({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 Nl(r.journal,o),await Ur(r.lock),await gt(r.platformDirectory),qr(o)}let n=await Sl(r.journal);if(n.state==="recovered")return qr(n);if(n.state==="applied"){for(let i of n.operations){let o=await Nn(Dn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new $("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Gt(r.lock)){let i=await ca(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new $("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Ur(r.lock),await gt(r.platformDirectory)}return ur.delete(n.transactionId),qr(n)}if(n.projectRootDigest!==h(t))throw new $("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Gt(r.lock)){let i=await ca(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new $("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Dl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:On()});n=await fr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Dn(t,i.path);if(await Pn(t,i.path),i.kind!=="remove"){let s=Y.join(Y.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Gt(s)){if((await Nn(s))?.digest!==i.desiredDigest)throw new $("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Ur(s),await gt(Y.dirname(s))}}let a=await Nn(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new $("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Ur(o),await gt(Y.dirname(o))}}else if(a?.digest!==i.before.digest){let s=Y.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,p=i.kind==="remove"&&a===void 0&&await Gt(s),l=e.approvedConflicts?.find(f=>f.path===i.path&&f.currentDigest===a?.digest);if(!c&&!p&&!l)throw new $("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let d=await ua(Y.join(r.preimages,`${i.index}.bin`));if(h(d)!==i.before.preimageDigest)throw new $("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await IR(o,d,i.before.mode),p&&await Pl(s,{force:!0})}i.status="restored",n=await fr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await fr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Ur(r.lock),await gt(r.platformDirectory),ur.delete(n.transactionId),qr(n)}async function Ei(e){return Om(e)}async function jl(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 $("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Om(e)}async function Cl(e){let t=await fa(e.projectRoot),r=Ai(t,e.planId),n=await Sl(r.journal);if(n.state==="recovered")return qr(n);if(n.state!=="applied")throw new $("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await Nn(Dn(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 Dl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:On()}),n=await fr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new $("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return ur.set(n.transactionId,{desiredContents:new Map,journal:n}),Ei({projectRoot:t,planId:e.planId,now:e.now})}var Re=class extends Error{code;constructor(t,r){super(r),this.code=t}},Pi=class extends Error{};function Si(e,t){let r=Oe.join(e,".dyyto"),n=Oe.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Oe.join(r,"evidence"),lockFile:Oe.join(r,"project-lock.json"),transactionLock:Oe.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Oe.join(n,"journal.json")}}async function yr(e){try{return await vR(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Wt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function ha(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function wa(e,t){let r=await Sm(e,ga.O_RDONLY);try{await mt({context:ha(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Ll(e,t,r){let n=await Sm(e,ga.O_CREAT|ga.O_EXCL|ga.O_WRONLY,384);try{await mt({context:ha(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await mt({context:ha(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ni(e,t,r){let n=Oe.dirname(e),i=Oe.join(n,`.tmp-${Tl()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await
|
|
18
|
-
`),r),await wa(Oe.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new
|
|
19
|
-
`),r),await wa(e,r)}async function
|
|
20
|
-
`)}async function
|
|
21
|
-
`),i=r.capabilities[0],o=Ne({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:
|
|
22
|
-
`)}catch(i){throw i.code==="EEXIST"?new be("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function Di(e){let{planId:t,...r}=e;if(na(r)!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function
|
|
23
|
-
`)}catch(o){if(o.code!=="EEXIST")throw o;let a=dr(JSON.parse(await zl(i,"utf8")));if(Di(a),k(a)!==k(r))throw new be("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function Vm(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Kt(e){let t=await Mt(le.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Mt(le.resolve(e.transactionRoot)),n=dr(e.plan);Di(n);let i=le.join(t,".dyyto","plans"),o=await Ia(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=dr(JSON.parse(await zl(le.join(i,s),"utf8")));Di(c),!await Vt(le.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(l=>l.code==="ENOENT"?!1:Promise.reject(l))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&Vm(c)===Vm(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await TR({projectRoot:t,plan:n}),n)}async function zr(e){let t=await Mt(le.resolve(e.projectRoot)),r=le.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=dr(JSON.parse(await zl(r,"utf8")));if(Di(n),n.planId!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new be("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ba(e,t=[],r,n=[]){let i=await Mt(le.resolve(e)),o=r===void 0?i:await Mt(le.resolve(r)),a=le.join(i,".dyyto","plans"),s=await Ia(a).catch(l=>{if(l.code==="ENOENT")return[];throw l}),c=[];for(let l of s.filter(d=>d.endsWith(".json")).sort()){let d=l.slice(0,-5),f=await zr({projectRoot:i,planId:d}),u=await Jt({projectRoot:o,planId:d}),m=await Vt(le.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 p=LR(c);if(p===void 0)throw new be("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return p}function LR(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 Gl(e){let t=await Mt(le.resolve(e)),r=le.join(t,".dyyto","plans"),n=await Ia(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 zr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as zm,readFile as xR,readdir as VR,realpath as MR}from"node:fs/promises";import Te from"node:path";import{homedir as Gm}from"node:os";var yt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Jm(e){let t=Te.resolve(e),r=await zm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Te.parse(t).root||t===Te.resolve(Gm()))throw new yt("WORKSPACE_PATH_UNSAFE");let n=await MR(t);if(n!==t)throw new yt("WORKSPACE_PATH_UNSAFE");return n}async function Gr(e){let t=await zm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new yt("WORKSPACE_PATH_UNSAFE");return xR(e)}}function Wm(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 yt("WORKSPACE_MANIFEST_INVALID");return r}function FR(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 Cn(e){let t=await Jm(e),r=await Gr(Te.join(t,"pnpm-workspace.yaml"));if(!r)throw new yt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Wm(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await VR(Te.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 yt("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Gr(Te.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 Yt(e){let t=await Jm(e);if(await Gr(Te.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Gr(Te.join(t,"pnpm-workspace.yaml")))throw new yt("WORKSPACE_NESTED_UNSUPPORTED");let r=Te.dirname(t),n;for(;r!==Te.parse(r).root&&r!==Te.resolve(Gm());){let o=await Gr(Te.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new yt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Te.dirname(r)}if(!n||!await Gr(Te.join(n.root,"pnpm-lock.yaml"))||!await Gr(Te.join(n.root,"project-capabilities.json")))throw new yt("WORKSPACE_OWNER_MISSING");let i=Te.relative(n.root,t).split(Te.sep).join("/");if(!i||i.startsWith("../")||Wm(n.manifest.toString("utf8")).filter(o=>FR(o,i)).length!==1)throw new yt("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 Km=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Jl(e){let t=await Gl(e);for(let r of t){let n=await Jt({projectRoot:e,planId:r.planId});if(n!==null&&Km.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Bl({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 UR(e){let t=await Jl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await Ei({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await ql({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Ym(e){let t=await UR(e);if(t.kind!=="none")return t;let r=await Yt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Gl(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 Jt({projectRoot:r.transactionRoot,planId:o});if(!a||!Km.has(a.state))return t;let s=await Ei({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as qR,readFile as Wl,realpath as Hm}from"node:fs/promises";import ji from"node:path";var BR=new Set(["MIT","Apache-2.0","UNLICENSED"]),zR=new Set(["public","restricted","private"]),GR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,JR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function WR(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 Jr(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 wr(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:p,publishAccess:l,repository:d}=r;if(s===void 0||s.length>214||!GR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!JR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(p===void 0||!BR.has(p))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(l===void 0||!zR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(l==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:p,publishAccess:l,...o?{repository:WR(d)}:{}}}function Kl(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:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let p=await Promise.all(c.map(u=>Zm(i,u.path))),l=Ne({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:p,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),d=new Map([...n.desiredContents,[o,s]]),f=new Map;for(let u of l.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,d.get(u.path));return{...n,manifest:r,plan:l,desiredContents:f}}function Ti(e){return Wr(e,"workspace-npm-package")}function Li(e){return Wr(e,"workspace-node-application")}function xi(e){return Wr(e,"workspace-web-application")}function Vi(e){return Wr(e,"workspace-expo-application")}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 Qm(e){if(e.currentLock!==void 0){let n=await $i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $i({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function eg(e){if(e.currentLock!==void 0){let n=await $n(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $n({...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 tg(e){if(e.currentLock!==void 0){let n=await Ti(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ti({...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 rg(e){if(e.currentLock!==void 0){let n=await Li(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Li({...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 ng(e){if(e.currentLock!==void 0){let n=await xi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await xi({...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 ig(e){if(e.currentLock!==void 0){let n=await Vi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Vi({...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 kE,readFile as xa,realpath as _E}from"node:fs/promises";import Ji from"node:path";var Nt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Kr=/^sha256:[a-f0-9]{64}$/,XR=/^sha512-[A-Za-z0-9+/]{86}==$/,QR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,ag=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,eE=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,og=/^[a-z][a-z0-9._:-]{2,127}$/;function Yr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function tE(e){if(!Yr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!ag.test(e.registryId)||!og.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)||!Yr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Yr(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&&!og.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 Zl(e){if(!tE(e))throw new Nt("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 Mi(e){let t=e;if(typeof t!="object"||t===null||!Yr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Kr.test(t.revision))throw new Nt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Zl(i).revision!==n)throw new Nt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function rE(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 Xl(e,t){let r=Mi(t);if(!Yr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!rE(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 Nt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function sg(e,t){let r=e;if(typeof r!="object"||r===null||!Yr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Kr.test(r.bindingDigest))throw new Nt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Xl(o,t).bindingDigest!==i)throw new Nt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function nE(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Yr(e,t)&&ag.test(e.registryId)&&Kr.test(e.registryConfigRevision)&&eE.test(e.packageName)&&QR.test(e.version)&&XR.test(e.integrity)&&Kr.test(e.tarballDigest)&&Kr.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&&Kr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Ql(e){if(!nE(e))throw new Nt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function cg(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Kr.test(t.receiptId))throw new Nt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Ql(i).receiptId!==n)throw new Nt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Se=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Fi(e){return h(k(e))}var ep=/^sha256:[a-f0-9]{64}$/u,iE=/^sha512-[A-Za-z0-9+/]{86}==$/u,oE=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ka=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,aE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,sE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function _a(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function lg(e){return h(k(e))}function pg(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:lg(n),desiredLockfile:t};dg(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 dg(e){if(!_a(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 Se("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=>ep.test(i)))throw new Se("RESOLUTION_EVIDENCE_INVALID");if(!ka.test(e.workerReleaseId)||!ka.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 Se("RESOLUTION_EVIDENCE_INVALID");if(!_a(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Se("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!_a(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ka.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>ep.test(o))))throw new Se("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!_a(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!sE.test(i.identity)||!aE.test(i.packageName)||!ka.test(i.registryId)||!oE.test(i.version)||!iE.test(i.integrity)||typeof i.managed!="boolean"||!ep.test(i.edgesDigest)))throw new Se("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 Se("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(lg(n)!==e.jobId)throw new Se("RESOLUTION_EVIDENCE_INVALID")}function tp(e,t){if(dg(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Se("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Se("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Se("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 Se("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 Se("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Se("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Z=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function Ea(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 Z("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var Aa=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,ug=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function rp(e){return Array.isArray(e)?`[${e.map(rp).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)}:${rp(r)}`).join(",")}}`:JSON.stringify(e)}function Ht(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function ht(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function Ra(e){for(let t of[ht(e.dependencies),ht(e.devDependencies),ht(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!Aa.test(n)||ug.test(n)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}var cE=["dependencies","devDependencies","optionalDependencies"];function Pa(e,t){let r=[];for(let n of cE)for(let[i,o]of Object.entries(ht(e[n]))){if(t.has(i)){if(!Aa.test(o))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(o))throw new Z("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 np(e){let t=Ht(e.packageJson);Ra(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:{...ht(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ht(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
14
|
+
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new xt("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import _m from"node:path";var pr=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function ra(e){if(e.length===0||_m.posix.isAbsolute(e)||_m.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new pr("Asset path must be a normalized project-relative POSIX path",e)}function QA(e,t){ra(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(ne).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new pr("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 Ne(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new pr("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new pr("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(ra(s.path),t.has(s.path))throw new pr("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 pr("Proposed change paths must be unique",s.path);return r.add(s.path),QA(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=w(_(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:w(_(a))}}function na(e){return w(_(e))}var Am=cn(Lr(),1);var ie={type:"string",pattern:Ct},An={type:"string",pattern:ne},Mr={type:"string",minLength:1,maxLength:128},Vr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},eE={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:An,version:Mr,integrity:ie,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Vr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:ie}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},tE={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:An,version:Mr}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:ne},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:An,version:Mr}}}}},rE={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:An,version:Mr,integrity:ie,appliedPlanId:ie,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Vr,digest:ie}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},nE={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:An,capabilityVersion:Mr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},iE={$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:ie,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:An,version:Mr,integrity:ie}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:ie,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:ie,desiredPackageJsonDigest:ie,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:ie}}]},desiredLockfileDigest:ie,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:ie}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:ie,bindingDigest:ie,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:Mr,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:ie,deliveryReceiptId:ie,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:Vr,unitImporterId:Vr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:ie}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:Vr,preimageDigest:ie,desiredDigest:ie}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:Vr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:ie,baseDigest:ie,regionId:{type:"string",pattern:ne},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},oE={$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:ie,approvedPlanId:ie,projectRootDigest:ie,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:Vr,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:ie,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:ie}}]},desiredDigest:ie,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:ie}},xr=new Am.Ajv2020({allErrors:!0,strict:!0});xr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var _l={capabilityRelease:xr.compile(eE),projectManifest:xr.compile(tE),projectLock:xr.compile(rE),evidence:xr.compile(nE),changePlan:xr.compile(iE),transactionJournal:xr.compile(oE)},kl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Al(e,t,r){if(!t(r))throw new kl(e,t.errors??[]);return r}var J=e=>Al("projectManifest",_l.projectManifest,e);var dr=e=>Al("changePlan",_l.changePlan,e),Em=e=>Al("transactionJournal",_l.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function ia(e){if(e.currentLock!==void 0){let o=await oa({...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 Rl(En.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await Pl(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 Pl(e,t){let r=En.join(e,...t.split("/"));try{let n=await aE(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:w(await El(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Fr(e){let t=await Rl(En.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await Pl(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=w(ta(await El(En.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:w(_(r))}}async function oa(e){let t=J(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:Ze(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 o=await Rl(En.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let p of e.release.release.assets){let d=await Pl(o,p.path);if(a.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 u=p.ownership==="seed-file"&&d.digest?d.digest:p.digest;p.ownership==="seed-file"&&d.exists&&c.set(p.path,await El(En.join(o,...p.path.split("/")))),s.push({path:p.path,kind:"create",ownership:p.ownership,desiredDigest:u})}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:Ne({action:"adopt",capability:l,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as cE,lstat as da,mkdir as Rn,open as Nm,readFile as ua,realpath as lE,rename as la,rm as Nl,unlink as Ur}from"node:fs/promises";import{constants as sa}from"node:fs";import{homedir as pE}from"node:os";import Y from"node:path";import{randomUUID as On}from"node:crypto";function sE(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function mt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Rm(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Rm(e.context,e.operation,e.bytes??0,t,"failed",sE(r)),r}}async function Rm(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:w(_(s))});try{await e.sink(c)}catch{}}var Om=Symbol("prepared-transaction"),ur=new Map,dE=5*1024*1024,uE=25*1024*1024,Pm=8,pa=class extends Error{};async function aa(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new pa("Simulated prepare crash",{cause:n})}}var $=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function Ai(e,t){let r=Y.join(e,".dyyto"),n=Y.join(r,"transactions",t);return{platformDirectory:r,lock:Y.join(r,"transaction-lock.json"),transactionDirectory:n,journal:Y.join(n,"journal.json"),preimages:Y.join(n,"preimages"),quarantine:Y.join(n,"quarantine")}}async function Gt(e){try{return await da(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Sn(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function Rt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function gt(e,t){let r=await Nm(e,sa.O_RDONLY);try{await mt({context:Sn(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Ei(e,t,r=384,n){let i=await Nm(e,sa.O_CREAT|sa.O_EXCL|sa.O_WRONLY,r);try{await mt({context:Sn(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await mt({context:Sn(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Ol(e,t,r){let n=Y.dirname(e),i=Y.join(n,`.tmp-${On()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
+
`);await Ei(i,o,384,r),await mt({context:Sn(r),operation:"rename",bytes:o.byteLength,run:()=>la(i,e)}),await gt(n,r)}function Sl(e){return{...e,journalDigest:w(_(e))}}function fE(e){let t;try{t=Em(e)}catch{throw new $("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==w(_(n)))throw new $("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 $("JOURNAL_CORRUPTED","Transaction journal operation is inconsistent");i.add(a.path)}return t}async function Dl(e){try{return fE(JSON.parse(await ua(e,"utf8")))}catch(t){throw t instanceof $?t:new $("JOURNAL_CORRUPTED","Transaction journal cannot be read")}}async function fr(e,t,r){let{journalDigest:n,...i}=t,o=Sl(i);return await Ol(e,o,r),o}async function fa(e){let t=Y.resolve(e),r=Y.parse(t);if(t===r.root||t===Y.resolve(pE()))throw new $("PROJECT_ROOT_UNSAFE","Project root cannot be the filesystem root or user home");let n=await da(t);if(!n.isDirectory()||n.isSymbolicLink())throw new $("PROJECT_ROOT_UNSAFE","Project root must be a real directory");let i=await lE(t);if(i!==t)throw new $("PROJECT_ROOT_UNSAFE","Project root cannot resolve through a symbolic link");return i}function Dn(e,t){if((t===".dyyto"||t.startsWith(".dyyto/"))&&t!==".dyyto/application-config-binding.json"||t.length===0||Y.posix.isAbsolute(t)||Y.win32.isAbsolute(t)||t.includes("\\")||t.split("/").some(n=>n==="."||n===".."))throw new $("PROJECT_ROOT_UNSAFE","Target path is unsafe",t);let r=Y.resolve(e,...t.split("/"));if(!r.startsWith(`${e}${Y.sep}`))throw new $("PROJECT_ROOT_UNSAFE","Target escapes project root",t);return r}async function Pn(e,t){let r=t.split("/"),n=e;for(let i of r){n=Y.join(n,i);try{if((await da(n)).isSymbolicLink())throw new $("PATH_SYMLINK_UNSAFE","Symbolic links are not valid transaction targets",t)}catch(o){if(o.code==="ENOENT")return;throw o}}}async function Nn(e){try{let t=await da(e);if(!t.isFile()||t.isSymbolicLink())throw new $("PATH_SYMLINK_UNSAFE","Transaction target must be a regular file");let r=await ua(e);return{bytes:r,digest:w(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function mE(e,t,r){dr(e);let{planId:n,...i}=e;if(na(i)!==e.planId)throw new $("PLAN_CONTENT_MISMATCH","Plan content does not match planId");if(e.planId!==t)throw new $("PLAN_APPROVAL_MISMATCH","Approval does not match planId");if(e.state!=="reviewable")throw new $("PLAN_PRECONDITION_FAILED","Only reviewable plans can be applied");if(Date.parse(e.expiresAt)<=Date.parse(r))throw new $("PLAN_EXPIRED","Plan has expired")}function gE(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 $("OPERATION_UNSUPPORTED","Operation ownership is not supported",r.path);return t}async function jl(e,t,r){try{await Ei(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
16
|
+
`),384,r),await gt(Y.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new $("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ca(e){try{let t=JSON.parse(await ua(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 $("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function yE(e,t,r){return{[Om]:!0,projectRoot:e,plan:t,transactionId:r}}async function hE(e,t){mE(e.plan,e.approvedPlanId,e.now);let r=await fa(e.projectRoot),n=gE(e.plan),i=new Set(e.plan.operations.filter(f=>f.kind!=="remove"&&f.disposition!=="conflict").map(f=>f.path));for(let f of e.desiredContents.keys())if(!i.has(f))throw new $("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",f);for(let f of n)if(Dn(r,f.path),await Pn(r,f.path),f.kind!=="remove"){let m=e.desiredContents.get(f.path);if(m===void 0||w(m)!==f.desiredDigest)throw new $("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",f.path)}let o=Ai(r,e.plan.planId);await Rn(o.platformDirectory,{recursive:!0,mode:448}),await Pn(r,".dyyto");let a=On();await jl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:On()},Rt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??dE,c=e.limits?.maxTransactionBytes??uE,l=0,p=[],d=[],u=!1;try{if(await aa(t,"lock-created"),await Gt(o.transactionDirectory))throw new $("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await Rn(o.preimages,{recursive:!0,mode:448}),await Rn(o.quarantine,{recursive:!0,mode:448}),u=!0;for(let[m,g]of n.entries()){let y=Dn(r,g.path);await Pn(r,g.path);let h=await Nn(y);if(g.kind==="create"){if(h!==void 0)throw new $("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(h===void 0||h.digest!==g.baseDigest)throw new $("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let v={kind:"absent"};if(h!==void 0){if(l+=h.bytes.byteLength,h.bytes.byteLength>s||l>c)throw new $("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=Y.join(o.preimages,`${m}.bin`);await Ei(b,h.bytes,384,Rt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),d.push(m),await aa(t,"preimage-written-pending-directory-sync",m),v={kind:"present",digest:h.digest,mode:h.mode,preimageDigest:w(h.bytes)}}p.push({index:m,path:g.path,kind:g.kind,before:v,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(d.length>0){await gt(o.preimages,Rt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of d)await aa(t,"preimage-persisted",m)}let f=Sl({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:w(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:p});return await Ol(o.journal,f,Rt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),ur.set(a,{desiredContents:e.desiredContents,journal:f}),await aa(t,"journal-prepared"),yE(r,e.plan,a)}catch(f){if(f instanceof pa)throw ur.delete(a),new $("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{u&&await Nl(o.transactionDirectory,{recursive:!0,force:!0}),await Ur(o.lock),await gt(o.platformDirectory)}catch{throw new $("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw f}}async function mr(e){return hE(e)}async function wE(e,t,r,n){return fr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},Rt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function IE(e,t,r,n,i,o){let a=Dn(e,n.path);await Pn(e,n.path);let s=await Nn(a);if(n.before.kind==="absent"){if(s!==void 0)throw new $("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new $("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let d=Y.join(t.quarantine,`${n.index}.bin`),u=Rt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await mt({context:Sn(u),operation:"rename",run:()=>la(a,d)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[Y.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||w(c)!==n.desiredDigest)throw new $("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await Rn(Y.dirname(a),{recursive:!0}),await Pn(e,n.path);let l=Y.join(Y.dirname(a),`.dyyto-${r}-${n.index}.tmp`),p=Rt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await Ei(l,c,n.before.kind==="present"?n.before.mode&511:420,p),await o?.onCheckpoint?.("temporary-file-synced",n.index),await mt({context:Sn(p),operation:"rename",bytes:c.byteLength,run:()=>la(l,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[Y.dirname(a)]}async function vE(e,t){let r=ur.get(e.transactionId);if(r===void 0||e[Om]!==!0)throw new $("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=Ai(e.projectRoot,e.plan.planId),i=await fr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},Rt(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+=Pm){let s=i.operations.slice(a,a+Pm),c=await Promise.allSettled(s.map(p=>IE(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)o.has(d)||o.set(d,Rt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await gt(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 fr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},Rt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await fr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},Rt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Ur(n.lock),await gt(n.platformDirectory),ur.delete(e.transactionId),qr(i)}catch(o){throw i=await wE(n,i,o instanceof $?o.operationIndex:void 0,t?.durabilityTrace),ur.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new $("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function gr(e){return vE(e)}function qr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Jt(e){let t=await fa(e.projectRoot),r=Ai(t,e.planId);if(!await Gt(r.journal)){if(!await Gt(r.lock))return null;let n=await ca(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return qr(await Dl(r.journal))}async function bE(e,t,r){await Rn(Y.dirname(e),{recursive:!0});let n=Y.join(Y.dirname(e),`.dyyto-recover-${On()}.tmp`);await Ei(n,t,r&511),await la(n,e),await cE(e,r&511),await gt(Y.dirname(e))}async function Sm(e){let t=await fa(e.projectRoot),r=Ai(t,e.planId);if(!await Gt(r.journal)){if(!await Gt(r.lock))throw new $("JOURNAL_CORRUPTED","No transaction record exists");let i=await ca(r.lock);if(i.planId!==e.planId)throw new $("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await Nl(r.transactionDirectory,{recursive:!0,force:!0}),await Rn(r.transactionDirectory,{recursive:!0,mode:448});let o=Sl({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:w(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await Ol(r.journal,o),await Ur(r.lock),await gt(r.platformDirectory),qr(o)}let n=await Dl(r.journal);if(n.state==="recovered")return qr(n);if(n.state==="applied"){for(let i of n.operations){let o=await Nn(Dn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new $("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Gt(r.lock)){let i=await ca(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new $("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Ur(r.lock),await gt(r.platformDirectory)}return ur.delete(n.transactionId),qr(n)}if(n.projectRootDigest!==w(t))throw new $("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Gt(r.lock)){let i=await ca(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new $("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await jl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:On()});n=await fr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Dn(t,i.path);if(await Pn(t,i.path),i.kind!=="remove"){let s=Y.join(Y.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Gt(s)){if((await Nn(s))?.digest!==i.desiredDigest)throw new $("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Ur(s),await gt(Y.dirname(s))}}let a=await Nn(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new $("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Ur(o),await gt(Y.dirname(o))}}else if(a?.digest!==i.before.digest){let s=Y.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,l=i.kind==="remove"&&a===void 0&&await Gt(s),p=e.approvedConflicts?.find(u=>u.path===i.path&&u.currentDigest===a?.digest);if(!c&&!l&&!p)throw new $("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let d=await ua(Y.join(r.preimages,`${i.index}.bin`));if(w(d)!==i.before.preimageDigest)throw new $("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await bE(o,d,i.before.mode),l&&await Nl(s,{force:!0})}i.status="restored",n=await fr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await fr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Ur(r.lock),await gt(r.platformDirectory),ur.delete(n.transactionId),qr(n)}async function Ri(e){return Sm(e)}async function Cl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new $("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Sm(e)}async function $l(e){let t=await fa(e.projectRoot),r=Ai(t,e.planId),n=await Dl(r.journal);if(n.state==="recovered")return qr(n);if(n.state!=="applied")throw new $("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await Nn(Dn(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 jl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:On()}),n=await fr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new $("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return ur.set(n.transactionId,{desiredContents:new Map,journal:n}),Ri({projectRoot:t,planId:e.planId,now:e.now})}var Ee=class extends Error{code;constructor(t,r){super(r),this.code=t}},Pi=class extends Error{};function Si(e,t){let r=Oe.join(e,".dyyto"),n=Oe.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Oe.join(r,"evidence"),lockFile:Oe.join(r,"project-lock.json"),transactionLock:Oe.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Oe.join(n,"journal.json")}}async function yr(e){try{return await kE(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function Wt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function ha(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function wa(e,t){let r=await Dm(e,ga.O_RDONLY);try{await mt({context:ha(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function xl(e,t,r){let n=await Dm(e,ga.O_CREAT|ga.O_EXCL|ga.O_WRONLY,384);try{await mt({context:ha(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await mt({context:ha(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ni(e,t,r){let n=Oe.dirname(e),i=Oe.join(n,`.tmp-${Ll()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
+
`);await xl(i,o,r),await mt({context:ha(r),operation:"rename",bytes:o.byteLength,run:()=>_E(i,e)}),await wa(n,r)}function Vl(e){return{...e,journalDigest:w(_(e))}}async function ma(e,t,r){let{journalDigest:n,...i}=t,o=Vl(i);return await Ni(e,o,r),o}async function jm(e){try{let t=JSON.parse(await Oi(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==w(_(n)))throw new Error("invalid journal");return t.evidence.forEach(_i),Ze(t.lock),t}catch{throw new Ee("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function Ml(e,t,r){try{await xl(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
18
|
+
`),r),await wa(Oe.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Ee("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function Cm(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:w(_(r))}}function $m(e,t,r){let n=t.map(vm),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 Ee("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 Ee("VERIFICATION_FAILED",`Verifier ${a.verifierId} did not pass`);if(a.projectStateDigest!==r)throw new Ee("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function AE(e,t,r){let n=Oe.join(e,`${t.evidenceId}.json`);if(await yr(n)){let i=_i(JSON.parse(await Oi(n,"utf8")));if(_(i)!==_(t))throw new Ee("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await xl(n,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
19
|
+
`),r),await wa(e,r)}async function EE(e,t,r,n){if(await yr(e)){let i=Ze(JSON.parse(await Oi(e,"utf8")));if(_(i)===_(t))return;if(r===void 0||w(_(i))!==r)throw new Ee("PROJECT_STATE_CHANGED","The project lock changed before metadata commit");await Ni(e,t,n);return}await Ni(e,t,n)}async function ya(e,t){try{await e?.onCheckpoint?.(t)}catch(r){throw new Pi("Simulated metadata crash",{cause:r})}}async function Fl(e,t,r){let n=Si(e,t.planId),i=t;try{for(let o of i.evidence)await AE(n.evidenceDirectory,o,Wt(r?.durabilityTrace,"evidence",`${i.transactionId}:evidence`));return i=await ma(n.journal,{...i,state:"evidence-written",updatedAt:new Date().toISOString()},Wt(r?.durabilityTrace,"journal",`${i.transactionId}:evidence-written`)),await ya(r,"evidence-written"),await EE(n.lockFile,i.lock,i.previousLockDigest,Wt(r?.durabilityTrace,"lock",`${i.transactionId}:project-lock`)),i=await ma(n.journal,{...i,state:"lock-written",updatedAt:new Date().toISOString()},Wt(r?.durabilityTrace,"journal",`${i.transactionId}:lock-written`)),await ya(r,"lock-written"),i=await ma(n.journal,{...i,state:"committed",updatedAt:new Date().toISOString()},Wt(r?.durabilityTrace,"journal",`${i.transactionId}:committed`)),await ya(r,"committed"),await Tl(n.transactionLock),await wa(n.platformDirectory,Wt(r?.durabilityTrace,"directory",`${i.transactionId}:unlock`)),i.lock}catch(o){if(o instanceof Pi)throw new Ee("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted");try{await ma(n.journal,{...i,state:"recovery-required",updatedAt:new Date().toISOString()},Wt(r?.durabilityTrace,"journal",`${i.transactionId}:recovery-required`))}catch{}throw o}}async function RE(e){let t=await Br(Oe.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Br(Oe.resolve(e.transactionRoot));if((await Jt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ee("APPLY_NOT_COMPLETED","The filesystem transaction is not applied");let i;try{i=await Fr({projectRoot:t,expectedAssets:e.expectedAssets??e.release.assets.map(m=>({path:m.path,digest:m.digest}))})}catch{throw new Ee("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let a=$m(e.release,e.verificationResults,i.projectStateDigest).map(m=>Cm(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],p={schemaVersion:l.some(m=>m.packageAdoption!==void 0)?2:1,capabilities:l};Ze(p);let d=Si(t,e.plan.planId);if(await jn(d.platformDirectory,{recursive:!0,mode:448}),await jn(d.evidenceDirectory,{recursive:!0,mode:448}),await yr(d.lockFile)&&e.previousLock===void 0){let m=Ze(JSON.parse(await Oi(d.lockFile,"utf8")));if(_(m)===_(p))return m;throw new Ee("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let u=Ll();if(await Ml(d.transactionLock,{planId:e.plan.planId,transactionId:u,createdAt:e.committedAt},Wt(e.hooks?.durabilityTrace,"lock",`${u}:metadata-lock`)),await yr(d.transactionDirectory))throw await Tl(d.transactionLock),new Ee("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await jn(d.transactionDirectory,{recursive:!0,mode:448});let f=Vl({schemaVersion:1,planId:e.plan.planId,transactionId:u,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:a,lock:p,...e.previousLock===void 0?{}:{previousLockDigest:w(_(Ze(e.previousLock)))}});await Ni(d.journal,f,Wt(e.hooks?.durabilityTrace,"journal",`${u}:prepared`));try{await ya(e.hooks,"journal-prepared")}catch(m){throw m instanceof Pi?new Ee("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return Fl(t,f,e.hooks)}async function Ul(e){return RE(e)}async function ql(e){let t=await Br(Oe.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Br(Oe.resolve(e.transactionRoot));if((await Jt({projectRoot:r,planId:e.plan.planId}))?.state!=="applied")throw new Ee("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 Ee("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 Fr({projectRoot:t,expectedAssets:c}),d=$m(e.release,e.verificationResults,l.projectStateDigest).map(y=>Cm(e.release,y)),u={schemaVersion:o.some(y=>y.packageAdoption!==void 0)?2:1,capabilities:o};Ze(u);let f=Si(t,e.plan.planId);await jn(f.platformDirectory,{recursive:!0,mode:448}),await jn(f.evidenceDirectory,{recursive:!0,mode:448});let m=Ll();await Ml(f.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await jn(f.transactionDirectory,{recursive:!1,mode:448});let g=Vl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:d,lock:u,previousLockDigest:w(_(Ze(e.previousLock)))});return await Ni(f.journal,g),Fl(t,g)}async function Bl(e){let t=await Br(Oe.resolve(e.projectRoot)),r=Si(t,e.planId),n=await jm(r.journal);return n.state==="committed"?(await yr(r.transactionLock)&&await Tl(r.transactionLock),n.lock):(await yr(r.transactionLock)||await Ml(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),Fl(t,n))}async function zl(e){let t=await Br(Oe.resolve(e.projectRoot)),r=Si(t,e.planId);if(!await yr(r.journal))return null;let n=await jm(r.journal);return{planId:n.planId,state:n.state}}async function ze(e){let t=await Br(Oe.resolve(e)),r=Oe.join(t,".dyyto","project-lock.json");return await yr(r)?Ze(JSON.parse(await Oi(r,"utf8"))):null}import{lstat as xm,readFile as Tm,realpath as Lm}from"node:fs/promises";import hr from"node:path";var Pt=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};function Vm(e){return w(_(e))}async function PE(e,t){let r=hr.join(e,"assets",...t.split("/"));try{return await xm(r),r}catch(n){if(n.code!=="ENOENT"||hr.posix.basename(t)!==".gitignore")throw n}return hr.join(e,"assets",...hr.posix.dirname(t).split("/").filter(n=>n!=="."),"__dyyto_dotfiles__","gitignore")}async function Re(e){let t=await Lm(hr.resolve(e)),r;try{r=Im(JSON.parse(await Tm(hr.join(t,"release.json"),"utf8")))}catch(c){throw c instanceof Pt?c:new Pt("RELEASE_INVALID","Capability release metadata is invalid")}let{integrity:n,...i}=r;if(Vm(i)!==n)throw new Pt("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{ra(c.path)}catch{throw new Pt("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 Pt("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 PE(t,c.path),p=await Lm(l),d=hr.join(t,"assets");if(!p.startsWith(`${d}${hr.sep}`))throw new Pt("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let u=await xm(l);if(!u.isFile()||u.isSymbolicLink())throw new Pt("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let f=await Tm(l);if(w(f)!==c.digest)throw new Pt("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);o.set(c.path,f)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,l)=>c!==r.assets[l]?.path))throw new Pt("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:o}}import{link as NE,open as Fm,lstat as Vt,mkdir as Um,readFile as Gl,readdir as Ia,realpath as Mt,rm as OE,unlink as SE}from"node:fs/promises";import le from"node:path";var be=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="ProjectBootstrapError"}},DE={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function jE(){return new TextEncoder().encode(`${JSON.stringify(DE,null,2)}
|
|
20
|
+
`)}async function CE(e,t=!1){let r=le.resolve(e),n=await Vt(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new be("TARGET_INVALID","Workspace target must be a real existing directory");let i=await Mt(r);for(let o of t?["AGENTS.md","README.md"]:["package.json","pnpm-workspace.yaml"]){let a=await Vt(le.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new be("WORKSPACE_MARKER_MISSING",`Existing workspace must contain a real ${o}`)}if(await Vt(le.join(i,"project-capabilities.json")).catch(()=>null))throw new be("MANIFEST_EXISTS","Project manifest already exists");return i}async function $E(e,t){let r=le.resolve(e),n=await Vt(r).catch(()=>null);if(n===null||!n.isDirectory()||n.isSymbolicLink())throw new be("TARGET_INVALID","Project target must be a real existing directory");let i=await Mt(r);for(let o of t){let a=await Vt(le.join(i,o)).catch(()=>null);if(a===null||!a.isFile()||a.isSymbolicLink())throw new be("WORKSPACE_MARKER_MISSING",`Existing project must contain a real ${o}`)}if(await Vt(le.join(i,"project-capabilities.json")).catch(()=>null))throw new be("MANIFEST_EXISTS","Project manifest already exists");return i}async function qm(e){let t=await $E(e.projectRoot,e.requiredMarkers??["package.json"]),r=J(e.manifest),n=new TextEncoder().encode(`${JSON.stringify(r,null,2)}
|
|
21
|
+
`),i=r.capabilities[0],o=Ne({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:w(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 Bm(e){let t=await CE(e.projectRoot,e.documentationOnly===!0),r=jE(),n=Ne({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:w(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 TE(e){let t=await Fm(e,"r");try{await t.sync()}finally{await t.close()}}async function zm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await Fm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await NE(r,e),await SE(r),await TE(le.dirname(e))}catch(i){throw await OE(r,{force:!0}),i}}async function LE(e){let t=le.resolve(e);try{let r=await Vt(t);if(!r.isDirectory()||r.isSymbolicLink())throw new be("TARGET_INVALID","Project target must be a real directory");if((await Ia(t)).length!==0)throw new be("TARGET_NOT_EMPTY","Project target must be empty")}catch(r){if(r.code!=="ENOENT")throw r;let n=le.dirname(t),i=await Vt(n).catch(()=>null);if(i===null||!i.isDirectory()||i.isSymbolicLink())throw new be("TARGET_INVALID","Project target parent must be a real directory");await Um(t)}return Mt(t)}async function va(e){let t=J(e.manifest),r=await LE(e.projectRoot),n=le.join(r,"project-capabilities.json");try{await zm(n,`${JSON.stringify(t,null,2)}
|
|
22
|
+
`)}catch(i){throw i.code==="EEXIST"?new be("MANIFEST_EXISTS","Project manifest already exists"):i}return{projectRoot:r,manifest:t}}function Di(e){let{planId:t,...r}=e;if(na(r)!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan integrity is invalid")}async function xE(e){let t=await Mt(le.resolve(e.projectRoot)),r=dr(e.plan);Di(r);let n=le.join(t,".dyyto","plans");await Um(n,{recursive:!0,mode:448});let i=le.join(n,`${r.planId}.json`);try{await zm(i,`${_(r)}
|
|
23
|
+
`)}catch(o){if(o.code!=="EEXIST")throw o;let a=dr(JSON.parse(await Gl(i,"utf8")));if(Di(a),_(a)!==_(r))throw new be("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function Mm(e){return _({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Kt(e){let t=await Mt(le.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Mt(le.resolve(e.transactionRoot)),n=dr(e.plan);Di(n);let i=le.join(t,".dyyto","plans"),o=await Ia(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=dr(JSON.parse(await Gl(le.join(i,s),"utf8")));Di(c),!await Vt(le.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)&&Mm(c)===Mm(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await xE({projectRoot:t,plan:n}),n)}async function zr(e){let t=await Mt(le.resolve(e.projectRoot)),r=le.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=dr(JSON.parse(await Gl(r,"utf8")));if(Di(n),n.planId!==e.planId)throw new be("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new be("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ba(e,t=[],r,n=[]){let i=await Mt(le.resolve(e)),o=r===void 0?i:await Mt(le.resolve(r)),a=le.join(i,".dyyto","plans"),s=await Ia(a).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),u=await zr({projectRoot:i,planId:d}),f=await Jt({projectRoot:o,planId:d}),m=await Vt(le.join(i,".dyyto","metadata-transactions",d)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));f?.state==="applied"&&!m&&!t.includes(u.planId)&&(!n.includes(u.capability.capabilityId)||u.action==="upgrade"||u.action==="remove"||u.action==="adopt"&&u.operations.every(g=>g.disposition==="noop"))&&c.push(u)}let l=VE(c);if(l===void 0)throw new be("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function VE(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 Jl(e){let t=await Mt(le.resolve(e)),r=le.join(t,".dyyto","plans"),n=await Ia(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 zr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as Gm,readFile as ME,readdir as FE,realpath as UE}from"node:fs/promises";import Te from"node:path";import{homedir as Jm}from"node:os";var yt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Wm(e){let t=Te.resolve(e),r=await Gm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Te.parse(t).root||t===Te.resolve(Jm()))throw new yt("WORKSPACE_PATH_UNSAFE");let n=await UE(t);if(n!==t)throw new yt("WORKSPACE_PATH_UNSAFE");return n}async function Gr(e){let t=await Gm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new yt("WORKSPACE_PATH_UNSAFE");return ME(e)}}function Km(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 yt("WORKSPACE_MANIFEST_INVALID");return r}function qE(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 Cn(e){let t=await Wm(e),r=await Gr(Te.join(t,"pnpm-workspace.yaml"));if(!r)throw new yt("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Km(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await FE(Te.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 yt("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Gr(Te.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 Yt(e){let t=await Wm(e);if(await Gr(Te.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Gr(Te.join(t,"pnpm-workspace.yaml")))throw new yt("WORKSPACE_NESTED_UNSUPPORTED");let r=Te.dirname(t),n;for(;r!==Te.parse(r).root&&r!==Te.resolve(Jm());){let o=await Gr(Te.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new yt("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Te.dirname(r)}if(!n||!await Gr(Te.join(n.root,"pnpm-lock.yaml"))||!await Gr(Te.join(n.root,"project-capabilities.json")))throw new yt("WORKSPACE_OWNER_MISSING");let i=Te.relative(n.root,t).split(Te.sep).join("/");if(!i||i.startsWith("../")||Km(n.manifest.toString("utf8")).filter(o=>qE(o,i)).length!==1)throw new yt("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:w(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var Ym=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Wl(e){let t=await Jl(e);for(let r of t){let n=await Jt({projectRoot:e,planId:r.planId});if(n!==null&&Ym.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await zl({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 BE(e){let t=await Wl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await Ri({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Bl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Hm(e){let t=await BE(e);if(t.kind!=="none")return t;let r=await Yt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Jl(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 Jt({projectRoot:r.transactionRoot,planId:o});if(!a||!Ym.has(a.state))return t;let s=await Ri({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as zE,readFile as Kl,realpath as Zm}from"node:fs/promises";import ji from"node:path";var GE=new Set(["MIT","Apache-2.0","UNLICENSED"]),JE=new Set(["public","restricted","private"]),WE=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,KE=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function YE(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 Jr(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 wr(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(u=>u.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((u,f)=>u!==a[f]))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||!WE.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!KE.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!GE.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(p===void 0||!JE.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,...o?{repository:YE(d)}:{}}}function Yl(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 Hl(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 HE(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 ZE(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 XE(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 QE(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 Xm(e,t){let r=ji.join(e,...t.split("/"));try{let n=await zE(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:w(await Kl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Wr(e,t){let r=J(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?ZE(Jr(r).name):t==="workspace-expo-application"?QE(Jr(r).name):t==="nextjs-full-stack-application"?XE(Jr(r).name):HE(Jr(r).name):t==="react-component-library"?Hl(wr(r,t)):Yl(wr(r,t));if(r.capabilities.filter(f=>f.capabilityId===e.release.release.capabilityId&&f.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:Ze(e.currentLock))?.capabilities.find(f=>f.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(ji.resolve(e.projectRoot)),l=[],p=[];for(let f of e.release.release.assets){if(s.get(f.path)===void 0)throw new M("RELEASE_NOT_FOUND","Release asset content is unavailable",f.path);let g=await Xm(c,f.path);if(g.exists&&a===void 0&&e.allowExistingWithoutLock!==!0&&f.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile cannot adopt over an existing owned file without a lock",f.path);f.ownership==="seed-file"&&g.exists&&s.set(f.path,await Kl(ji.join(c,...f.path.split("/"))));let y=w(s.get(f.path));l.push(g),p.push({path:f.path,kind:"create",ownership:f.ownership,desiredDigest:y})}let d={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:p.map(f=>({path:f.path,ownership:f.ownership,desiredDigest:f.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:f})=>({id:f,kind:"command"}))},u=Ne({action:"adopt",capability:d,changes:p,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:u,desiredContents:s}}function Ci(e){return Wr(e,"standalone-npm-package")}function $i(e){return Wr(e,"react-component-library")}function $n(e){return Wr(e,"nextjs-full-stack-application")}async function Zl(e){let t=J(e.manifest);if(t.profile?.id!=="nextjs-full-stack-application"||e.release.release.consumerProfile!=="nextjs-full-stack-application"||e.release.release.assets.some(f=>f.ownership!=="seed-file"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Historical adoption requires a seed-only Next.js Profile Release");let r=J({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await $n({...e,manifest:r}),i=await Zm(ji.resolve(e.projectRoot)),o="project-capabilities.json",a=await Kl(ji.join(i,o)),s=Buffer.from(`${JSON.stringify(r,null,2)}
|
|
30
|
+
`),c=n.plan.operations.map(({disposition:f,conflictCode:m,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:w(a),desiredDigest:w(s)});let l=await Promise.all(c.map(f=>Xm(i,f.path))),p=Ne({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(f=>f.path!==o).map(f=>({path:f.path,ownership:f.ownership,desiredDigest:f.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:f})=>({id:f,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),d=new Map([...n.desiredContents,[o,s]]),u=new Map;for(let f of p.operations)f.disposition==="ready"&&f.kind!=="remove"&&u.set(f.path,d.get(f.path));return{...n,manifest:r,plan:p,desiredContents:u}}function Ti(e){return Wr(e,"workspace-npm-package")}function Li(e){return Wr(e,"workspace-node-application")}function xi(e){return Wr(e,"workspace-web-application")}function Vi(e){return Wr(e,"workspace-expo-application")}async function Qm(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 eg(e){if(e.currentLock!==void 0){let n=await $i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $i({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function tg(e){if(e.currentLock!==void 0){let n=await $n(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $n({...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 rg(e){if(e.currentLock!==void 0){let n=await Ti(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ti({...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 ng(e){if(e.currentLock!==void 0){let n=await Li(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Li({...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 ig(e){if(e.currentLock!==void 0){let n=await xi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await xi({...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 og(e){if(e.currentLock!==void 0){let n=await Vi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Vi({...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 AR,readFile as Va,realpath as ER}from"node:fs/promises";import Ji from"node:path";var Nt=class extends Error{code;constructor(t,r){super(r),this.code=t}},Kr=/^sha256:[a-f0-9]{64}$/,eR=/^sha512-[A-Za-z0-9+/]{86}==$/,tR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,sg=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,rR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,ag=/^[a-z][a-z0-9._:-]{2,127}$/;function Yr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function nR(e){if(!Yr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!sg.test(e.registryId)||!ag.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)||!Yr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Yr(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&&!ag.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 Xl(e){if(!nR(e))throw new Nt("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:w(_(t))})}function Mi(e){let t=e;if(typeof t!="object"||t===null||!Yr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Kr.test(t.revision))throw new Nt("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Xl(i).revision!==n)throw new Nt("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function iR(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 Ql(e,t){let r=Mi(t);if(!Yr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!iR(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 Nt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:w(_(n))})}function cg(e,t){let r=e;if(typeof r!="object"||r===null||!Yr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Kr.test(r.bindingDigest))throw new Nt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Ql(o,t).bindingDigest!==i)throw new Nt("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function oR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Yr(e,t)&&sg.test(e.registryId)&&Kr.test(e.registryConfigRevision)&&rR.test(e.packageName)&&tR.test(e.version)&&eR.test(e.integrity)&&Kr.test(e.tarballDigest)&&Kr.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&&Kr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function ep(e){if(!oR(e))throw new Nt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:w(_(t))})}function lg(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Kr.test(t.receiptId))throw new Nt("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(ep(i).receiptId!==n)throw new Nt("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Se=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Fi(e){return w(_(e))}var tp=/^sha256:[a-f0-9]{64}$/u,aR=/^sha512-[A-Za-z0-9+/]{86}==$/u,sR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ka=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,cR=/^(?:@[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 _a(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function pg(e){return w(_(e))}function dg(e){let t=Buffer.from(e.desiredLockfile),r=w(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:pg(n),desiredLockfile:t};ug(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 ug(e){if(!_a(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 Se("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=>tp.test(i)))throw new Se("RESOLUTION_EVIDENCE_INVALID");if(!ka.test(e.workerReleaseId)||!ka.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||w(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 Se("RESOLUTION_EVIDENCE_INVALID");if(!_a(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Se("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!_a(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ka.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>tp.test(o))))throw new Se("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!_a(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!lR.test(i.identity)||!cR.test(i.packageName)||!ka.test(i.registryId)||!sR.test(i.version)||!aR.test(i.integrity)||typeof i.managed!="boolean"||!tp.test(i.edgesDigest)))throw new Se("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 Se("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(pg(n)!==e.jobId)throw new Se("RESOLUTION_EVIDENCE_INVALID")}function rp(e,t){if(ug(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Se("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Se("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Se("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 Se("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 Se("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Se("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Z=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function Ra(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 Z("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var Aa=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,fg=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function np(e){return Array.isArray(e)?`[${e.map(np).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)}:${np(r)}`).join(",")}}`:JSON.stringify(e)}function Ht(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function ht(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function Ea(e){for(let t of[ht(e.dependencies),ht(e.devDependencies),ht(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!Aa.test(n)||fg.test(n)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}var pR=["dependencies","devDependencies","optionalDependencies"];function Pa(e,t){let r=[];for(let n of pR)for(let[i,o]of Object.entries(ht(e[n]))){if(t.has(i)){if(!Aa.test(o))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(o))throw new Z("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 ip(e){let t=Ht(e.packageJson);Ea(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:{...ht(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ht(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
31
31
|
`)}function Ui(e){let t=Ht(e.packageJson);Pa(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:{...ht(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...ht(t.devDependencies),...n}}:{}},null,2)}
|
|
32
|
-
`)}function
|
|
33
|
-
`)}function
|
|
34
|
-
`)}function
|
|
35
|
-
`),c=e.endpointBindings.filter(d=>n.some(
|
|
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(l)},{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:Ne({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:_})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:_})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:Pa(Ht(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[d("project-capabilities.json"),l],[d("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function Na(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 Z("PACKAGE_SOURCE_NOT_FOUND");let o=Ht(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Ht(a),c="topology"in e,p=c?Pa(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||Ra(o),c||Ra(s);let l=new Map(e.registryConfigs.map(I=>{let A=Mi(I);return[A.registryId,A]})),d=new Map(e.endpointBindings.map(I=>{let A=l.get(I.registryId);if(A===void 0)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let O=sg(I,A);return[O.registryId,O]})),f=new Map(e.receipts.map(I=>{let A=cg(I);return[A.receiptId,A]})),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?tp(e.resolutionEvidence,{requestDigest:Fi({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(Ui({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:A,version:O,integrity:C})=>({registryId:I,packageName:A,version:O,integrity:C})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:A})=>({importerId:I,preimageDigest:A}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(Ui({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:A})=>({importerId:I,preimageDigest:A})),managedSources:e.release.packageSources.map(({registryId:I,packageName:A,version:O,integrity:C})=>({registryId:I,packageName:A,version:O,integrity:C})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:A,version:O,integrity:C})=>({registryId:I,packageName:A,version:O,integrity:C}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new Z("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 A=l.get(I.registryId),O=d.get(I.registryId),C=f.get(I.deliveryReceiptId),fe=u.get(`${I.registryId}:${I.packageName}@${I.version}`),T=w.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");if(!A||!O||Date.parse(O.expiresAt)<=Date.parse(e.expiresAt)||A.status!=="enabled"||!A.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!C||!fe||!T)throw new Z("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==A.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||fe.integrity!==I.integrity||fe.tarballDigest!==I.tarballDigest||fe.deliveryReceiptId!==I.deliveryReceiptId||T.registryId!==I.registryId||T.version!==I.version||T.integrity!==I.integrity)throw new Z("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!Aa.test(I.version)||fe.lifecycleScripts.length>0)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,ee]of Object.entries(fe.dependencies)){let ce=m.get(P);if(P.startsWith("@aipt/")&&(!ce||ce.version!==ee||!Aa.test(ee)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${ee}`)});if(ug.test(ee))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}}let _=c?Ui({release:e.release,packageJson:a}):np({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(_),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...l.values()].filter(I=>e.release.packageSources.some(A=>A.registryId===I.registryId)).map(({registryId:I,revision:A})=>Object.freeze({registryId:I,revision:A})).sort((I,A)=>I.registryId.localeCompare(A.registryId))),endpointBindings:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(A=>A.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:A,bindingDigest:O,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:A,bindingDigest:O,expiresAt:C})).sort((I,A)=>I.registryId.localeCompare(A.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(p.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},R=h(rp(b));return Object.freeze({...b,planId:R,desiredPackageJson:_,desiredLockfile:y.lockfile})}function Oa(e){return Na(e,"production")}function Sa(e){return Na(e,"development")}function Da(e){return Na(e,"production")}function ja(e){return Na(e,"development")}function lE(e){let t=e.packageAdoption;if(t===void 0)throw new Z("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:l})=>l===r),o=e.operations.filter(({path:l})=>l===n);if(i.length!==1||o.length!==1)throw new Z("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",p=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||!p)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}async function gg(e){lE(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await mr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await gr(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 Cl({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 Z("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var Ig=cn(Lr(),1);var vg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],bg="^[a-z0-9][a-z0-9._-]{0,127}$",qi="^[A-Z][A-Z0-9_]{0,127}$",yg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",pE={$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:bg},profile:{enum:vg}}},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:qi},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:qi},runtimeEnvironmentVariable:{type:"string",pattern:qi},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:yg},provisioning:{oneOf:[{type:"object",additionalProperties:!1,required:["strategy"],properties:{strategy:{const:"external"}}},{type:"object",additionalProperties:!1,required:["strategy"],properties:{strategy:{const:"generated"},bytes:{type:"integer",minimum:16,maximum:128}}},{type:"object",additionalProperties:!1,required:["strategy","template"],properties:{strategy:{const:"derived"},template:{type:"string",minLength:1,maxLength:2048}}}]}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:qi},runtimeEnvironmentVariable:{type:"string",pattern:qi},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:yg}}}]}}}},hg=new Ig.Ajv2020({allErrors:!0,strict:!0}).compile(pE),wg=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,dE=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,ze=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function ap(e){let t=K(e),r=t.profile?.id;if(!vg.includes(r))throw new ze("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(bg,"u").test(i))throw new ze("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 Bi(e,t){if(!hg(e))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",hg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new ze("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,o=new Set;for(let l of r.bindings){if(n.has(l.name))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${l.name}`);if(n.add(l.name),l.kind==="value"){if(wg.test(l.name))throw new ze("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${l.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!l.name.endsWith("_FILE"))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${l.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let d=l.runtimeEnvironmentVariable??l.name;if(i.has(d))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`\u8FD0\u884C\u65F6\u73AF\u5883\u53D8\u91CF\u540D\u79F0\u91CD\u590D\uFF1A${d}`);i.add(d);let f=l.kind==="secret-file"?"secrets/":"certs/";if(l.kind==="certificate-file"&&(wg.test(l.name)||dE.test(l.name)))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`${l.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 u=l.file.split("/");if(!l.file.startsWith(f)||u.some(m=>m===""||m==="."||m===".."))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`${l.name} \u5FC5\u987B\u4F4D\u4E8E ${f} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(l.file))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${l.file}`);o.add(l.file)}let a=new Map(r.bindings.map(l=>[l.name,l])),s=new Set,c=new Set,p=l=>{if(c.has(l))return;if(s.has(l))throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6D3E\u751F\u914D\u7F6E\u5B58\u5728\u5FAA\u73AF\u5F15\u7528\uFF1A${l}`);s.add(l);let d=a.get(l);if(d?.kind==="secret-file"&&d.provisioning?.strategy==="derived")for(let f of d.provisioning.template.matchAll(/\$\{([A-Z][A-Z0-9_]{0,127})\}/gu)){let u=f[1],m=a.get(u);if(!m||m.kind==="certificate-file")throw new ze("APPLICATION_CONFIG_CONTRACT_INVALID",`${l}\u5F15\u7528\u672A\u77E5\u6216\u4E0D\u5141\u8BB8\u7684\u914D\u7F6E\uFF1A${u}`);p(u)}s.delete(l),c.add(l)};for(let l of a.keys())p(l);if(t!==void 0){let l=ap(t);if(r.application.id!==l.id||r.application.profile!==l.profile)throw new ze("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Ca(e){let t=ap(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 Bi(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
-
`)}var
|
|
38
|
-
`)}function Rg(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 Ie("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 Ie("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=Ag(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new Ie("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function yE(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 Ie("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 Ta(e){return`sha256:${mE("sha256").update(e).digest("hex")}`}async function _g(e,t,r){let n=await zi(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new Ie("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}function hE(e){let t=new Map;for(let r of e)for(let n of r.readiness.entries){let i=n.runtimeEnvironmentVariable??n.name.replace(/_FILE$/u,""),o=t.get(i)??[];o.push({unit:r.unit,entry:n}),t.set(i,o)}return Object.freeze([...t.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let i=n[0].entry,o=new Set(n.map(({entry:l})=>`${l.name}\0${l.kind}`)),a=n.filter(({entry:l})=>l.configured),s=new Set(a.map(({entry:l})=>l.kind==="value"?l.display:l.fingerprint??"")),c=o.size!==1,p=!c&&s.size<=1;return Object.freeze({name:i.name,...i.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:i.runtimeEnvironmentVariable}:r!==i.name.replace(/_FILE$/u,"")?{runtimeEnvironmentVariable:r}:{},kind:i.kind,required:n.some(({entry:l})=>l.required),configured:!c&&p&&a.length===n.length,consistent:p,conflict:c,consumers:Object.freeze(n.map(({unit:l})=>l).sort()),configuredConsumers:Object.freeze(a.map(({unit:l})=>l).sort()),display:i.kind==="value"&&p&&a.length?i.display:c?"\u5408\u540C\u51B2\u7A81":p?a.length===n.length?"\u5DF2\u914D\u7F6E":"\u90E8\u5206\u914D\u7F6E":"\u503C\u4E0D\u4E00\u81F4"})}))}var wE=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),IE=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function sp({projectRoot:e,environment:t=process.env}){let r=await $a(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await zi(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([wt(X.join(r,"project-capabilities.json")),wt(n)]),s=JSON.parse(o.toString("utf8")),c=Bi(JSON.parse(a.toString("utf8")),s),p=await wt(X.join(r,".dyyto/application-config-binding.json")).catch(d=>{if(d.code==="ENOENT")return null;throw d});if(!p)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Ta(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let l=Rg(JSON.parse(p.toString("utf8")),s);try{let d=await Gi({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 Ie?d.code:d.code??"APPLICATION_CONFIG_UNKNOWN",u=IE.has(f)?"missing":wE.has(f)?"incomplete":"invalid",m=await Eg(r,l.application.id,t).catch(()=>{});return{schemaVersion:1,application:l.application.id,environment:"local",configDirectory:m??null,contractDigest:Ta(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 Ie||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 vE=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function cp({workspaceRoot:e,environment:t=process.env}){let r=await $a(X.resolve(e));if(K(JSON.parse(await wt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new Ie("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await Cn(r),o=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),p=X.join(c,"project-capabilities.json"),l=await wt(p,"utf8").catch(()=>null),d=await zi(X.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),f="";if(l!==null)try{f=K(JSON.parse(l)).profile?.id??""}catch{d&&(f="invalid-application")}if(!vE.has(f)&&!d)continue;let u=await sp({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))),environment:hE(o)})}async function bE(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await wt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let o=X.relative(n,e);if(!/^(?:apps|services|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(o))throw new Ie("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u3001services/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),o,r)}}catch(i){if(i instanceof Ie)throw i}n=X.dirname(n)}return X.join(t,r)}async function Eg(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new Ie("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let o=await zi(n).catch(()=>null);if(!o?.isFile()||o.isSymbolicLink()||o.nlink!==1||(o.mode&511&-385)!==0)throw new Ie("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await wt(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new Ie("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,p)=>p.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 Ie("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await bE(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Gi({projectRoot:e,environment:t=process.env}){let r=await $a(X.resolve(e)),[n,i,o]=await Promise.all([wt(X.join(r,"project-capabilities.json")),wt(X.join(r,".dyyto/application-config-binding.json")),wt(X.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=Rg(JSON.parse(i.toString("utf8")),a),c=Bi(JSON.parse(o.toString("utf8")),a),p=await Eg(r,s.application.id,t);if(!p||!X.isAbsolute(p))throw new Ie("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let l=await $a(p),d=await zi(l);if(!d.isDirectory()||d.isSymbolicLink()||(d.mode&511&-449)!==0)throw new Ie("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,l);if(f===""||!f.startsWith("..")&&!X.isAbsolute(f))throw new Ie("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(l,".env");await _g(u,"\u5E94\u7528.env",c.bindings.length===0);let m=yE(await wt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let C=m[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:C.length>0,source:"APP_CONFIG_DIR",display:C});continue}if(m[y.name]!==y.file)throw new Ie("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let _=X.resolve(l,y.file),b=X.relative(l,_);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new Ie("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await _g(_,y.name,!0),I=await wt(_),A=I.length>0,O;if(A&&y.kind==="certificate-file")try{let C=new gE(I);O={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new Ie("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,...y.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:y.runtimeEnvironmentVariable}:{},kind:y.kind,required:y.required,configured:A,source:"APP_CONFIG_DIR",display:A?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...A?{fingerprint:Ta(I),updatedAt:R.mtime.toISOString()}:{},...O?{certificate:O}:{}})}return{application:s.application.id,environment:"local",configDirectory:l,contractDigest:Ta(o),entries:g}}var Hr="project-capabilities.json",Pg=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function AE(e,t){if(!Pg.test(e)||!Pg.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 RE(e,t){let r=Ji.join(e,...t.split("/"));try{let n=await kE(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 xa(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function Va(e,t){let r=K(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 Kl(wr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Yl(wr(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 lp(e){let t=K(e.manifest),r=Ze(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&&AE(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await _E(Ji.resolve(e.projectRoot)),p={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},l=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&l.set("package.json",Va(p,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&l.set(P.path,Ca(p)),P.renderer==="application-config-binding-v1"&&l.set(P.path,La(p));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=l.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let ee=await xa(Ji.join(c,"package.json")),ce=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=ce.transactionRoot,u=ce.mode==="pnpm-shared-lockfile"?`${ce.unitRelativeRoot}/package.json`:"package.json",m=ce.lockfilePath;let ct={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:ee,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let bt=ce.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?ja:Da)({...ct,topology:{mode:ce.mode,unitRelativeRoot:ce.unitRelativeRoot,unitImporterId:ce.unitImporterId,lockfilePath:ce.lockfilePath,workspaceManifestPath:ce.workspaceManifestPath,workspaceManifestDigest:ce.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Sa:Oa)({...ct,lockResolution:e.packageSource.lockResolution});d=Ea(bt),l.set("package.json",bt.desiredPackageJson),l.set(m,bt.desiredLockfile)}catch(bt){throw bt instanceof Z?new M("CONSUMER_PROFILE_UNSUPPORTED",bt.code):bt}}let g=new Map(a.assets.filter(P=>P.path!==Hr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==Hr).map(P=>{let ee=l.get(P.path);if(ee===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(ee)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),_=[],b=[];for(let P of w){let ee=await RE(c,P);_.push(ee);let ce=g.get(P),ct=y.get(P),bt=i.assets.find(ow=>ow.path===P);if(bt?.ownership==="seed-file"&&ee.exists&&ee.digest!==void 0){y.set(P,ee.digest),l.set(P,await xa(Ji.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:ee.digest,desiredDigest:ee.digest});continue}if(ce===void 0){if(ct===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:bt?.ownership??"owned-file",desiredDigest:ct})}else ct===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ce}):b.push({path:P,kind:"replace",ownership:bt?.ownership??"owned-file",baseDigest:ce,desiredDigest:ct})}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 ee=l.get(m);_.push({path:m,exists:!0,digest:h(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(ee)})}let R=await xa(Ji.join(c,Hr)),I=Buffer.from(`${JSON.stringify(p,null,2)}
|
|
39
|
-
`);
|
|
40
|
-
`,"utf8"),await i.sync()}finally{await i.close()}try{await EE(n,e),await SE(n),await DE(r)}catch(o){throw await OE(n,{force:!0}),o}}async function Cg(e){let t=await St(he.resolve(e.projectRoot)),r=pp(e.plan),n=he.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Wi(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(pp(JSON.parse(await Ot(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Zt(e){if(!Le(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await St(he.resolve(e.projectRoot));try{let r=pp(JSON.parse(await Ot(he.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 gp(e){let t=await St(he.resolve(e.projectRoot)),r=fp(e.receipt),n=await Zt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let o=await Ln({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=he.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=fp(JSON.parse(await Ot(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 Tn(e){if(!Le(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await St(he.resolve(e.projectRoot));try{let r=fp(JSON.parse(await Ot(he.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 $g(e){let t=await St(he.resolve(e.projectRoot)),r=Ma(e.record),n=await Zt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let i=he.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=Ma(JSON.parse(await Ot(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 Tg(e){if(!Le(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await St(he.resolve(e.projectRoot));try{let r=Ma(JSON.parse(await Ot(he.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 Lg(e){let t=await St(he.resolve(e.projectRoot)),r=he.join(t,".dyyto","delivery","attempts"),n;try{n=await NE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=Ma(JSON.parse(await Ot(he.join(r,i),"utf8")));if((await Zt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([Ln({projectRoot:t,planId:o.planId}),Tn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function xg(e){let t=await St(he.resolve(e.projectRoot)),r=dp(e.record),n=await Zt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let i=he.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=dp(JSON.parse(await Ot(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 Ln(e){if(!Le(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await St(he.resolve(e.projectRoot));try{let r=dp(JSON.parse(await Ot(he.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 Vg(e){let t=await St(he.resolve(e.projectRoot)),r=up(e.record),n=await Ln({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=he.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=up(JSON.parse(await Ot(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 Mg(e){if(!Le(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await St(he.resolve(e.projectRoot));try{let r=up(JSON.parse(await Ot(he.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 ny,readdir as yP}from"node:fs/promises";import Ip from"node:path";import{mkdir as yp,open as za,readFile as Yi,readdir as hp,rename as Ga,rm as ey}from"node:fs/promises";import ke from"node:path";var jE=44;var Fg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",CE=new Uint8Array(64),qg=new Uint8Array(128);for(let e=0;e<Fg.length;e++){let t=Fg.charCodeAt(e);CE[e]=t,qg[t]=e}function Ki(e,t){let r=0,n=0,i=0;do{let a=e.next();i=qg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Ug(e,t){return e.pos>=t?!1:e.peek()!==jE}var uC=1024*16;var $E=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 Bg(e){let{length:t}=e,r=new $E(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let p=r.indexOf(";"),l=[],d=!0,f=0;for(i=0;r.pos<p;){let u;i=Ki(r,i),i<f&&(d=!1),f=i,Ug(r,p)?(o=Ki(r,o),a=Ki(r,a),s=Ki(r,s),Ug(r,p)?(c=Ki(r,c),u=[i,o,a,s,c]):u=[i,o,a,s]):u=[i],l.push(u),r.pos++}d||TE(l),n.push(l),r.pos=p+1}while(r.pos<=t);return n}function TE(e){e.sort(LE)}function LE(e,t){return e[0]-t[0]}var xE=/^[\w+.-]+:\/\//,VE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,ME=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function FE(e){return xE.test(e)}function UE(e){return e.startsWith("//")}function Jg(e){return e.startsWith("/")}function qE(e){return e.startsWith("file:")}function zg(e){return/^[.?#]/.test(e)}function Ua(e){let t=VE.exec(e);return Wg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function BE(e){let t=ME.exec(e),r=t[2];return Wg("file:","",t[1]||"","",Jg(r)?r:"/"+r,t[3]||"",t[4]||"")}function Wg(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 Gg(e){if(UE(e)){let r=Ua("http:"+e);return r.scheme="",r.type=6,r}if(Jg(e)){let r=Ua("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(qE(e))return BE(e);if(FE(e))return Ua(e);let t=Ua("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function zE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function GE(e,t){Kg(t,t.type),e.path==="/"?e.path=t.path:e.path=zE(t.path)+e.path}function Kg(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 p=n[c];if(!p){a=!0;continue}if(a=!1,p!=="."){if(p===".."){o?(a=!0,o--,i--):r&&(n[i++]=p);continue}n[i++]=p,o++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function Yg(e,t){if(!e&&!t)return"";let r=Gg(e),n=r.type;if(t&&n!==7){let o=Gg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:GE(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)}Kg(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?zg(t||e)&&!zg(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 JE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function WE(e,t){let r=JE(e),n=t?t+"/":"";return i=>Yg(n+(i||""),r)}var Ir=0,KE=1,YE=2,HE=3,ZE=4;function XE(e,t){let r=Hg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Hg(e,n+1))e[n]=eP(e[n],t);return e}function Hg(e,t){for(let r=t;r<e.length;r++)if(!QE(e[r]))return r;return e.length}function QE(e){for(let t=1;t<e.length;t++)if(e[t][Ir]<e[t-1][Ir])return!1;return!0}function eP(e,t){return t||(e=e.slice()),e.sort(tP)}function tP(e,t){return e[Ir]-t[Ir]}var Ba=!1;function rP(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][Ir]-t;if(o===0)return Ba=!0,i;o<0?r=i+1:n=i-1}return Ba=!1,r-1}function nP(e,t,r){for(let n=r+1;n<e.length&&e[n][Ir]===t;r=n++);return r}function iP(e,t,r){for(let n=r-1;n>=0&&e[n][Ir]===t;r=n--);return r}function oP(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function aP(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 Ba=a!==-1&&e[a][Ir]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=rP(e,t,s,c)}function sP(e){return typeof e=="string"?JSON.parse(e):e}var cP="`line` must be greater than 0 (lines start at line 1)",lP="`column` must be greater than or equal to 0 (columns start at column 0)",Zg=-1,pP=1,Xg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=sP(e),{version:i,file:o,names:a,sourceRoot:s,sources:c,sourcesContent:p}=n;this.version=i,this.file=o,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=p,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let l=WE(t,s);this.resolvedSources=c.map(l);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=XE(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=oP(),this._bySources=void 0,this._bySourceMemos=void 0}};function dP(e){var t;return(t=e)._decoded||(t._decoded=Bg(e._encoded))}function Qg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(cP);if(n<0)throw new Error(lP);let o=dP(e);if(r>=o.length)return qa(null,null,null,null);let a=o[r],s=uP(a,e._decodedMemo,r,n,i||pP);if(s===-1)return qa(null,null,null,null);let c=a[s];if(c.length===1)return qa(null,null,null,null);let{names:p,resolvedSources:l}=e;return qa(l[c[KE]],c[YE]+1,c[HE],c.length===5?p[c[ZE]]:null)}function qa(e,t,r,n){return{source:e,line:t,column:r,name:n}}function uP(e,t,r,n,i){let o=aP(e,n,t,r);return Ba?o=(i===Zg?nP:iP)(e,n,o):i===Zg&&o++,o===-1||o===e.length?-1:o}var se=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},wp=/^sha256:[a-f0-9]{64}$/,ty=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,fP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Ja=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Hi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),xn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function ry(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 se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ke.join(ke.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Zt({projectRoot:r,planId:t.deploymentId}),i=await Tn({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 se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await hp(ke.join(ke.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function mP(e){if(!Hi(e)||!Ja(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Hi(e.error)||!Hi(e.page)||!Ja(e.error,["type","message","frames"])||!Ja(e.page,["origin","path"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!ty.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 se("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new se("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!wp.test(n)))throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!fP.test(e.traceparent)))throw new se("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 se("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 se("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Hi(n)||!Ja(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new se("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 se("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new se("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new se("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 se("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function gP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:xn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:xn(a.function,256)}})),i={type:xn(e.error.type,256),message:xn(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:xn(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:xn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Xt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ke.join(ke.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ke.join(ke.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=mP(t);if(!r.allowedOrigins.includes(n.page.origin))throw new se("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),o=gP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await yp(a,{recursive:!0,mode:448});let s=ke.join(a,`${o.eventId}.json`);try{let f=JSON.parse(await Yi(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:o.receivedAt})!==k(o))throw new se("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()}`,p=await za(c,"wx",384);try{await p.writeFile(`${k(o)}
|
|
41
|
-
`,"utf8"),await
|
|
42
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
43
|
-
`),await
|
|
44
|
-
`),s=await Qi(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:
|
|
45
|
-
`),g=await Qi(o,u);if(!g.exists||g.digest===void 0)throw new pe("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]]),_;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let A;try{A=await Xi(Zr.join(t,"package.json"))}catch{throw new pe("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let O=e.packageSource.currentLockfile??await Xi(Zr.join(t,"pnpm-lock.yaml")).catch(ce=>ce.code==="ENOENT"?void 0:Promise.reject(ce)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},fe=C.mode==="pnpm-shared-lockfile",T={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(fe&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let ee=fe?(e.packageChannel==="development"?ja:Da)({release:n,...P,consumerProfile:c,packageJson:A,currentLockfile:O,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:T,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Sa:Oa)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:A,...O===void 0?{}:{currentLockfile:O},generatedAt:e.generatedAt,expiresAt:e.expiresAt});_=Ea(ee),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:ee.packageJsonPreimageDigest,desiredDigest:ee.desiredPackageJsonDigest}),w.set(a("package.json"),ee.desiredPackageJson),y.push({path:C.lockfilePath,kind:O===void 0?"create":"replace",ownership:"owned-file",...O===void 0?{}:{baseDigest:h(O)},desiredDigest:ee.desiredLockfileDigest}),w.set(C.lockfilePath,ee.desiredLockfile)}catch(O){throw O instanceof Z?new pe("CAPABILITY_PACKAGE_SOURCE_INVALID",O.code):O}}for(let A of n.assets){let O=e.release.contents.get(A.path);if(O===void 0)throw new pe("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=A.renderer==="application-config-contract-v1"?Ca(r):A.renderer==="application-config-binding-v1"?La(r):O;if(A.ownership==="managed-region"){if(A.regionId===void 0)throw new pe("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let fe;try{fe=await Xi(Zr.join(t,...A.path.split("/")))}catch{throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let T=Buffer.from(bm({source:fe.toString("utf8"),regionId:A.regionId,content:Buffer.from(C).toString("utf8")}));y.push({path:a(A.path),kind:"merge",ownership:"managed-region",regionId:A.regionId,baseDigest:h(fe),desiredDigest:h(T)}),w.set(a(A.path),T)}else{let fe=await Qi(t,A.path);if(A.ownership==="seed-file"&&fe.exists){let T=await Xi(Zr.join(t,...A.path.split("/")));y.push({path:a(A.path),kind:"create",ownership:"seed-file",desiredDigest:h(T)}),w.set(a(A.path),T)}else y.push({path:a(A.path),kind:"create",ownership:A.ownership,desiredDigest:h(C)}),w.set(a(A.path),C)}}let b=await Promise.all(y.map(A=>Qi(o,A.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(A=>A.path!==u&&A.path!==i?.lockfilePath).map(A=>({path:i?.mode==="pnpm-shared-lockfile"?A.path.slice(i.unitRelativeRoot.length+1):A.path,ownership:A.ownership,desiredDigest:A.desiredDigest})),verifiers:n.verifiers.map(A=>({id:A.id,kind:"file-digest"}))};return{plan:Ne({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,..._===void 0?{}:{packageAdoption:_}}),manifest:f,desiredContents:w,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var cy=cn(Lr(),1);var hP={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ct},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:re},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}}}}},zC=new cy.Ajv2020({allErrors:!0,strict:!0}).compile(hP);var fy=cn(Lr(),1);import{readFile as wP,realpath as IP}from"node:fs/promises";import ly from"node:path";var py="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",dy="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",vP={$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:py},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ct},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:re},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:re},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:dy,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:py}},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:dy,maxLength:240}}}}}},uy=new fy.Ajv2020({allErrors:!0,strict:!0}).compile(vP),Xr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function bP(e){return h(k(e))}function kP(e){if(!uy(e))throw new Xr("EXAMPLE_RECIPE_INVALID",uy.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 Xr("EXAMPLE_RECIPE_INVALID");return t}async function my(e){let t=await IP(ly.resolve(e)),r;try{r=kP(JSON.parse(await wP(ly.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Xr?o:new Xr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(bP(i)!==n)throw new Xr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var hy=cn(Lr(),1);import{readFile as _P,realpath as AP}from"node:fs/promises";import gy from"node:path";var RP={$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:re},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ct},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:re},capability:{type:"string",pattern:`${re.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:re},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:re},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"]}}}},yy=new hy.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(RP),Qt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function EP(e){return h(k(e))}function PP(e){if(!yy(e))throw new Qt("TEMPLATE_INVALID",yy.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 Qt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Qt("TEMPLATE_INVALID");return t}async function eo(e,t=new Date){let r=await AP(gy.resolve(e)),n;try{n=PP(JSON.parse(await _P(gy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Qt?a:new Qt("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(EP(o)!==i)throw new Qt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Qt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as wy}from"node:fs/promises";import Iy from"node:path";var NP=/^[A-Z][A-Z0-9_]*$/u,OP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function SP(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||!NP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:OP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function vy(e){let t=await wy(Iy.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await wy(Iy.join(e.projectRoot,t),"utf8"):"",n=await Gi({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,...o.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:o.runtimeEnvironmentVariable}:{},requirement:o.required?"conditional":"optional",kind:o.kind,secret:o.kind!=="value",configured:o.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:o.display,...o.fingerprint?{fingerprint:o.fingerprint}:{}})):SP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var by={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"])},ky=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function _y(e,t){if(!by[t.plane]||t.state&&!ky.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=by[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(p=>r.has(p.operation)),a=[...new Map(o.map(p=>[p.projectId,{id:p.projectId,name:p.projectName}])).values()].sort((p,l)=>p.name.localeCompare(l.name)),s=o.filter(p=>(!t.projectId||p.projectId===t.projectId)&&(!t.state||p.state===t.state)&&(!t.kind||p.operation===t.kind)&&(n===null||Date.parse(p.createdAt)>=n)&&(i===null||Date.parse(p.createdAt)<=i)).sort((p,l)=>l.updatedAt.localeCompare(p.updatedAt)),c={total:s.length,running:s.filter(p=>p.state==="running"||p.state==="queued").length,succeeded:s.filter(p=>p.state==="succeeded").length,attention:s.filter(p=>p.state==="failed"||p.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([...ky]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var it=class extends Error{code;constructor(t){super(t),this.code=t}},DP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Ay=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,jP=/^sha512-[A-Za-z0-9+/]{86}==$/u,Wa=/^sha256:[a-f0-9]{64}$/u,CP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,$P=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,TP=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Qr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function LP(e){if(!Qr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!DP.test(e.packageName)||!Ay.test(e.version)||!CP.test(e.assetName)||!jP.test(e.integrity)||!Wa.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)||!Ay.test(n)||$P.test(n))?!1:e.lifecycleScripts.every(r=>TP.has(r))}function kp(e){if(!Qr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new it("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=>!LP(o)))throw new it("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 it("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 it("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function en(e){let t=e;if(typeof t!="object"||t===null||!Qr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Wa.test(t.bundleId)||!Array.isArray(t.artifacts))throw new it("LOCAL_ARTIFACT_BUNDLE_INVALID");if(kp({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new it("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function _p(e){if(!Qr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new it("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Qr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!Wa.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new it("LOCAL_ARTIFACT_PLAN_INVALID");let r=en(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 Ry(e){let t=e;if(typeof t!="object"||t===null||!Qr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Wa.test(t.planId)||!Qr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new it("LOCAL_ARTIFACT_PLAN_INVALID");if(_p({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new it("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Ey(e){let t=en(e.bundle),r=Mi(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new it("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 rt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Py=/^sha256:[a-f0-9]{64}$/u,Ka=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function Ap(e){if(!Ka.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Py.test(r))||!Ka.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 rt("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function Ny(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new rt("RESOLUTION_WORKER_BUILD_INVALID");let r=Ap({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 rt("RESOLUTION_WORKER_BUILD_INVALID");return r}function Rp(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Py.test(r))||!Ka.test(e.workerReleaseId)||!Ka.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new rt("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function Ya(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new rt("RESOLUTION_WORKER_BUILD_INVALID");let r=Rp({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 rt("RESOLUTION_WORKER_BUILD_INVALID");return r}var to=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},Ep=/^sha256:[a-f0-9]{64}$/u,xP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function Pp(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>Ep.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!xP.test(r.path)||!Ep.test(r.currentDigest)||!Ep.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new to("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 Oy(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new to("RECOVERY_OVERRIDE_INVALID");let r=Pp({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 to("RECOVERY_OVERRIDE_INVALID");return r}var ro=class extends Error{code;constructor(t,r){super(r),this.code=t}},Op=/^sha256:[a-f0-9]{64}$/u,VP=/^sha512-[A-Za-z0-9+/]{86}==$/u,MP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,FP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,UP=/[\u0000-\u001f\u007f]/u;function Vn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Mn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function er(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!UP.test(e)}function Np(e){return er(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Sy(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>er(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function qP(e){return e===null?!0:!Vn(e)||!Mn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:Np(e.fileName)&&Op.test(String(e.digest))&&VP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function BP(e){if(!Vn(e)||!Mn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!MP.test(e.packageName)||!FP.test(e.version)||!er(e.title,120)||!er(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!Vn(e.source)||!Mn(e.source,["repository","path","revision","treeDigest"])||!er(e.source.repository)||!Np(e.source.path)||!er(e.source.revision,200)||!Op.test(String(e.source.treeDigest))||!qP(e.artifact)||!Vn(e.compatibility)||!Mn(e.compatibility,["node","packageManager"])||!er(e.compatibility.node,100)||!er(e.compatibility.packageManager,100)||!Sy(e.exports)||!Sy(e.consumerEvidence)||!Vn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Mn(e.documentation,t)||!Np(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!er(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function zP(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(!BP(t))throw new ro("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function Dy(e){if(!Vn(e)||!Mn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Op.test(String(e.releaseDigest)))throw new ro("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,o=zP(i);if(o.releaseDigest!==t)throw new ro("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as GP,readFile as JP,realpath as WP}from"node:fs/promises";import jy from"node:path";async function Cy(e){let t=await WP(jy.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",p=`${s.path}\0`;if(c==="managed-region")n.delete(p);else for(let d of n.keys())d.startsWith(p)&&n.delete(d);let l=c==="managed-region"?`${p}${s.regionId??""}`:p;n.set(l,{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=jy.join(t,...a.path.split("/")),p=await GP(s).then(async l=>{if(!l.isFile()||l.isSymbolicLink())return;let d=await JP(s);if(a.ownership!=="managed-region")return h(d);if(a.regionId!==void 0)try{return h(ta(d.toString("utf8"),a.regionId))}catch{return}}).catch(l=>l.code==="ENOENT"?void 0:Promise.reject(l))===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:p?"noop":"conflict",...p?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return o}import{createHash as KP}from"node:crypto";var YP=/[\u0000-\u001f\u007f]/u,tn=e=>`sha256:${KP("sha256").update(Sp(e)).digest("hex")}`,Sp=e=>Array.isArray(e)?`[${e.map(Sp).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)}:${Sp(r)}`).join(",")}}`:JSON.stringify(e),vr=(e,t)=>{if(!e.trim()||e.length>500||YP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},Dp=e=>Object.freeze({repository:vr(e.repository,"repository"),branch:vr(e.branch,"branch"),commit:vr(e.commit,"commit")});function $y(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:vr(e.intentId,"intent_id"),title:vr(e.title,"title"),summary:vr(e.summary,"summary"),repository:Dp(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>vr(r,"acceptance")))};return Object.freeze({...t,intentDigest:tn(t)})}function Ty(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:vr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:tn(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:tn(r)})}function Ly(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:tn(i)})}function xy(e){let t=new Set(e.tasks.map(n=>n.taskId));if(t.size!==e.tasks.length||e.tasks.some(n=>n.dependsOn.some(i=>!t.has(i)||i===n.taskId)))throw new Error("DEVELOPMENT_TASK_GRAPH_INVALID");let r={schemaVersion:1,kind:"SpecificationSet",...e,sourceRevision:Dp(e.sourceRevision)};return Object.freeze({...r,specificationDigest:tn(r)})}function Vy(e){let t=[],r=[];for(let a of e.documents){let s=a.status==="withdrawn"?"withdrawn":a.status==="superseded"?"superseded":!a.appliesTo.branches.includes(e.repository.branch)&&!a.appliesTo.branches.includes("*")?"branch-mismatch":e.currentSourceDigests[a.path]!==a.sourceDigest?"source-changed":null;s?r.push({id:a.id,reason:s}):t.push(a.id)}let n=[...new Set((e.changedScopes??[]).filter(a=>!e.documents.some(s=>s.kind===a&&t.includes(s.id))))],i=e.documents.length===0?"unavailable":r.some(a=>a.reason==="source-changed")||n.length?"stale":"current",o={schemaVersion:1,kind:"KnowledgeFreshnessInspection",repository:Dp(e.repository),state:i,included:Object.freeze(t.sort()),excluded:Object.freeze(r.sort((a,s)=>a.id.localeCompare(s.id))),requiredUpdates:Object.freeze(n.sort())};return Object.freeze({...o,inspectionDigest:tn(o)})}function My(e){if(e.session.sessionId!==e.specification.sessionId)throw new Error("DEVELOPMENT_SESSION_SPECIFICATION_MISMATCH");if(e.knowledge.repository.commit!==e.session.intent.repository.commit||e.knowledge.repository.branch!==e.session.intent.repository.branch)throw new Error("DEVELOPMENT_KNOWLEDGE_REVISION_MISMATCH");if(e.knowledge.state!=="current")throw new Error("DEVELOPMENT_KNOWLEDGE_NOT_CURRENT");let t={schemaVersion:1,kind:"AgentContextBundle",sessionId:e.session.sessionId,repository:e.session.intent.repository,engineeringContextDigest:e.session.engineeringContextDigest,knowledgeContextDigest:e.knowledgeContextDigest??e.session.knowledgeContextDigest,specificationDigest:e.specification.specificationDigest,knowledgeInspectionDigest:e.knowledge.inspectionDigest,documentIds:e.knowledge.included};return Object.freeze({...t,contextDigest:tn(t)})}import{readFile as oe,readdir as eh,realpath as Dt}from"node:fs/promises";import{execFile as pN,spawn as dN}from"node:child_process";import N from"node:path";import{parseArgs as de,promisify as uN}from"node:util";import{lstat as Fy,mkdir as Cp,readFile as Uy,realpath as jp,rm as HP,writeFile as qy}from"node:fs/promises";import ot from"node:path";var at=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},ZP=e=>k(e),By=e=>h(ZP(e));async function zy(e,t){let r=await jp(ot.resolve(e)),n=ot.join(r,".examples");await Cp(n,{recursive:!0});let i=await jp(n),o=ot.resolve(r,t);if(ot.dirname(o)!==i||ot.basename(o).startsWith(".")||ot.basename(o).length<1)throw new at("SCAFFOLD_ARGUMENT_INVALID");if(await Fy(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new at("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:ot.relative(r,o)}}async function Gy(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 at("SCAFFOLD_ARGUMENT_INVALID");let r=await zy(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:By(i)},a=ot.join(r.workspaceRoot,".dyyto","scaffold-plans");await Cp(a,{recursive:!0});let s=ot.join(a,`${o.planId}.json`);return await qy(s,`${k(o)}
|
|
46
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
47
|
-
`)throw new at("SCAFFOLD_PLAN_INVALID")}),o}async function
|
|
48
|
-
`,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as no,readFile as $p,readdir as QP,realpath as Tp}from"node:fs/promises";import we from"node:path";var Wy={capabilities:we.resolve(import.meta.dirname,"catalog"),packages:we.resolve(import.meta.dirname,"package-releases")};function Yy(e,t){return e<t?-1:e>t?1:0}function Za(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Za).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Yy(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Za(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function eN(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 Ky(e,t){let r=await no(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 Ha(e,t){let r=await no(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 Tp(e)}async function tN(e){let t=e;for(;;){if(await no(we.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=we.dirname(t);if(r===t)return;t=r}}async function rN(e){if(!we.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ha(e,"IDP_CONFIG_DIR");await tN(t);let r=await Ha(we.join(t,"components"),"components"),n=await Ha(we.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=we.relative(t,n);if(i.startsWith("..")||we.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=we.join(n,".env");await Ky(o,"Dyyto \u7EC4\u4EF6 .env");let a=eN(await $p(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(we.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=we.resolve(n,a),c=we.relative(n,s);if(c===""||c.startsWith("..")||we.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let p=n;for(let u of c.split(we.sep).slice(0,-1))p=await Ha(we.join(p,u),"Package Catalog Binding \u7236\u76EE\u5F55");let l=await Tp(we.dirname(s)),d=we.relative(n,l);if(d.startsWith("..")||we.isAbsolute(d))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Ky(s,"Package Catalog Binding");let f=[];for(let u of(await $p(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!we.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await no(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Tp(m),w=await no(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 nN(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await rN(e);return{capabilities:Wy.capabilities,packages:[Wy.packages,...t]}}async function Xa(e){return(await QP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function iN(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 oN(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 aN(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 sN(e){let t=[];for(let r of await Xa(e))for(let n of await Xa(we.join(e,r))){let i=`capability:${r}@${n}`;t.push(Ee(we.join(e,r,n)).then(o=>({entry:{item:oN(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 cN(e){let t=[];for(let r of await Xa(e))for(let n of await Xa(we.join(e,r))){let i=we.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push($p(i,"utf8").then(a=>{let s=Dy(JSON.parse(a));return{entry:{item:aN(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 Lp(e){let t=e??await nN(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([sN(t.capabilities),...r.map(cN)]),o=[...n.entries,...i.flatMap(p=>p.entries)].sort((p,l)=>p.item.ref.localeCompare(l.item.ref)),a=[],s=new Set,c=[];for(let p of o)s.has(p.item.ref)?c.push({ref:p.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(p.item.ref),a.push(p));return{entries:a,diagnostics:[...n.diagnostics,...i.flatMap(p=>p.diagnostics),...c].sort((p,l)=>p.ref.localeCompare(l.ref))}}async function Qa(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await Lp(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}`,p=n.get(c);(p===void 0||iN(p.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 es(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await Lp(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 lN(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}`,p=t.get(c)??new Set;p.add(o),t.set(c,p)}}return t}async function Hy(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 Lp(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=lN(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)=>Yy(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:h(Za(o))})}function Zy(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Za(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
-
`}var io={"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"},th=uN(pN),fN=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"]),rh=(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,ts={"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 nh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function rs(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await oe(N.join(e,"package.json")),o=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await Yt(e),c=await oe(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 pe("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new pe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let d=Ui({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: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:_})=>({registryId:g,packageName:y,version:w,integrity:_}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let p=np({release:t.release,packageJson:n??i}),l=await a({desiredPackageJson:p,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:o.registryConfigs,endpointBindings:o.endpointBindings});return{...o,lockResolution:l,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function ih(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 oe(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return sy({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 pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let o=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await oe(N.join(e,"package.json")),s=await oe(N.join(e,"project-capabilities.json")),c=await Yt(e),p=await oe(N.join(c.transactionRoot,c.lockfilePath)),l=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(R=>R.packageName)??[])),d=i.packageAdoption.sources.filter(b=>!l.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?op({packageJson:a,remove:d}):ip({packageJson:a,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 pe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:p,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(A=>`${c.unitRelativeRoot}/${A.path}`)],I=await Promise.all(R.map(async A=>oe(N.join(c.transactionRoot,...A.split("/"))).then(O=>({path:A,exists:!0,digest:h(O)})).catch(O=>O.code==="ENOENT"?{path:A,exists:!1}:Promise.reject(O))));return{...mg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:p,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:p,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),_=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>oe(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{...fg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:p,desiredLockfile:w.lockfile,endpointBindings:o.endpointBindings,observedAssets:_,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function z(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 xe(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 ns(e,t){return fN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function mN(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 Q(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function is(e){let t=JSON.parse(await oe(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 Ee(xe(r.capabilityId,r.version)),i=await Be(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Ci:t.profile?.id==="react-component-library"?$i:t.profile?.id==="nextjs-full-stack-application"?$n:t.profile?.id==="workspace-npm-package"?Ti:t.profile?.id==="workspace-node-application"?Li:t.profile?.id==="workspace-web-application"?xi:t.profile?.id==="workspace-expo-application"?Vi:oa)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Kt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function oh(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 eo(ns(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:io[i]);if(n!==void 0&&s.split("@")[0]!==io[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,p]=s.split("@"),l={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,y=t.values.version,w=t.values.license,_=t.values["publish-access"],b=t.values.repository;if([g,y,w,_].some(R=>typeof R!="string")||p==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${p==="1.1.0"?", and --repository":""}.`);l={name:String(g),version:String(y),license:String(w),publishAccess:String(_),...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.");l={name:t.values.name}}let d={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:l},capabilities:[{capabilityId:c,version:p}]};(i==="standalone-npm-package"||i==="react-component-library")&&wr(K(d),i),i==="nextjs-full-stack-application"&&Jr(K(d));let f=await va({projectRoot:t.positionals[0],manifest:d}),u=await is(f.projectRoot),m=Q(f.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
|
|
50
|
-
Plan: ${
|
|
51
|
-
State: ${
|
|
52
|
-
Next: dyyto apply --project ${m} --approve ${
|
|
32
|
+
`)}function op(e){let t=Ht(e.packageJson);Ea(t);let r=ht(t.dependencies),n=ht(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 ap(e){let t=Ht(e.packageJson);Pa(t,new Set(e.remove.map(o=>o.packageName)));let r=ht(t.dependencies),n=ht(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 mg(e){let t=e.currentLock.capabilities.find(d=>d.capabilityId===e.release.capabilityId&&d.version===e.release.version);if(!t?.packageAdoption)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let r=new Set(e.currentLock.capabilities.filter(d=>d!==t).flatMap(d=>d.packageAdoption?.sources.map(u=>u.packageName)??[])),n=t.packageAdoption.sources.filter(d=>!r.has(d.packageName)),i=op({packageJson:e.packageJson,remove:n}),o=Ht(e.projectManifest),a=Array.isArray(o.capabilities)?o.capabilities:[],s=Buffer.from(`${JSON.stringify({...o,capabilities:a.filter(d=>d.capabilityId!==e.release.capabilityId||d.version!==e.release.version)},null,2)}
|
|
35
|
+
`),c=e.endpointBindings.filter(d=>n.some(u=>u.registryId===d.registryId)),l=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:w(e.projectManifest),desiredDigest:w(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:w(e.packageJson),desiredDigest:w(i)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:w(e.currentLockfile),desiredDigest:w(e.desiredLockfile)},...t.assets.map(d=>({path:d.path,kind:"remove",ownership:d.ownership??"owned-file",baseDigest:d.digest}))];return{plan:Ne({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(d=>({path:d.path,ownership:d.ownership??"owned-file",desiredDigest:d.digest})),verifiers:e.release.verifiers.map(d=>({id:d.id,kind:"file-digest"}))},changes:l,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:w(e.packageJson),desiredPackageJsonDigest:w(i),lockfilePreimage:{kind:"present",digest:w(e.currentLockfile)},desiredLockfileDigest:w(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(d=>({...d})),endpointBindings:c.map(({registryId:d,registryConfigRevision:u,bindingDigest:f,expiresAt:m})=>({registryId:d,registryConfigRevision:u,bindingDigest:f,expiresAt:m})),sources:n.map(d=>({...d})),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 gg(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 Z("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=ap({packageJson:e.packageJson,remove:n}),o=e.remainingSources.map(({registryId:g,packageName:y,version:h,integrity:v})=>({registryId:g,packageName:y,version:h,integrity:v})),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=rp(e.resolutionEvidence,{requestDigest:Fi({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:w(e.currentLockfile),desiredPackageJsonDigest:w(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:w(i),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y})),managedSources:o,now:e.generatedAt}),c=Ht(e.projectManifest),l=Array.isArray(c.capabilities)?c.capabilities:[],p=Buffer.from(`${JSON.stringify({...c,capabilities:l.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
|
|
36
|
+
`),d=g=>`${e.topology.unitRelativeRoot}/${g}`,u=e.endpointBindings.filter(g=>n.some(y=>y.registryId===g.registryId)),f=[{path:d("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:w(e.projectManifest),desiredDigest:w(p)},{path:d("package.json"),kind:"replace",ownership:"owned-file",baseDigest:w(e.packageJson),desiredDigest:w(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:w(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:Ne({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:f,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:w(e.packageJson),desiredPackageJsonDigest:w(i),lockfilePreimage:{kind:"present",digest:w(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:u.map(({registryId:g,registryConfigRevision:y,bindingDigest:h,expiresAt:v})=>({registryId:g,registryConfigRevision:y,bindingDigest:h,expiresAt:v})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:Pa(Ht(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 Na(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 Z("PACKAGE_SOURCE_NOT_FOUND");let o=Ht(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Ht(a),c="topology"in e,l=c?Pa(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||Ea(o),c||Ea(s);let p=new Map(e.registryConfigs.map(I=>{let A=Mi(I);return[A.registryId,A]})),d=new Map(e.endpointBindings.map(I=>{let A=p.get(I.registryId);if(A===void 0)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let O=cg(I,A);return[O.registryId,O]})),u=new Map(e.receipts.map(I=>{let A=lg(I);return[A.receiptId,A]})),f=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?rp(e.resolutionEvidence,{requestDigest:Fi({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:w(e.currentLockfile),desiredPackageJsonDigest:w(Ui({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:A,version:O,integrity:C})=>({registryId:I,packageName:A,version:O,integrity:C})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:A})=>({importerId:I,preimageDigest:A}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:w(Ui({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:A})=>({importerId:I,preimageDigest:A})),managedSources:e.release.packageSources.map(({registryId:I,packageName:A,version:O,integrity:C})=>({registryId:I,packageName:A,version:O,integrity:C})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:A,version:O,integrity:C})=>({registryId:I,packageName:A,version:O,integrity:C}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${y.packages.length}/${e.release.packageSources.length}`)});let h=new Map(y.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let A=p.get(I.registryId),O=d.get(I.registryId),C=u.get(I.deliveryReceiptId),fe=f.get(`${I.registryId}:${I.packageName}@${I.version}`),T=h.get(I.packageName);if(C!==void 0&&(t==="production"&&C.provenance==="development-readback-verified"||t==="development"&&C.provenance!=="development-readback-verified"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");if(!A||!O||Date.parse(O.expiresAt)<=Date.parse(e.expiresAt)||A.status!=="enabled"||!A.scopes.some(R=>I.packageName.startsWith(`${R}/`))||!C||!fe||!T)throw new Z("PACKAGE_SOURCE_NOT_FOUND");if(C.registryId!==I.registryId||C.registryConfigRevision!==A.revision||C.packageName!==I.packageName||C.version!==I.version||C.integrity!==I.integrity||C.tarballDigest!==I.tarballDigest||fe.integrity!==I.integrity||fe.tarballDigest!==I.tarballDigest||fe.deliveryReceiptId!==I.deliveryReceiptId||T.registryId!==I.registryId||T.version!==I.version||T.integrity!==I.integrity)throw new Z("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!Aa.test(I.version)||fe.lifecycleScripts.length>0)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[R,ee]of Object.entries(fe.dependencies)){let ce=m.get(R);if(R.startsWith("@aipt/")&&(!ce||ce.version!==ee||!Aa.test(ee)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${R}@${ee}`)});if(fg.test(ee))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}}let v=c?Ui({release:e.release,packageJson:a}):ip({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:w(e.packageJson),desiredPackageJsonDigest:w(v),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:w(e.currentLockfile)}),desiredLockfileDigest:w(y.lockfile),registryRevisions:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(A=>A.registryId===I.registryId)).map(({registryId:I,revision:A})=>Object.freeze({registryId:I,revision:A})).sort((I,A)=>I.registryId.localeCompare(A.registryId))),endpointBindings:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(A=>A.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:A,bindingDigest:O,expiresAt:C})=>Object.freeze({registryId:I,registryConfigRevision:A,bindingDigest:O,expiresAt:C})).sort((I,A)=>I.registryId.localeCompare(A.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})))}:{}},E=w(np(b));return Object.freeze({...b,planId:E,desiredPackageJson:v,desiredLockfile:y.lockfile})}function Oa(e){return Na(e,"production")}function Sa(e){return Na(e,"development")}function Da(e){return Na(e,"production")}function ja(e){return Na(e,"development")}function dR(e){let t=e.packageAdoption;if(t===void 0)throw new Z("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),o=e.operations.filter(({path:p})=>p===n);if(i.length!==1||o.length!==1)throw new Z("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 Z("PACKAGE_SOURCE_POLICY_VIOLATION")}async function yg(e){dR(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await mr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await gr(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 $l({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 Z("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var vg=cn(Lr(),1);var bg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],kg="^[a-z0-9][a-z0-9._-]{0,127}$",qi="^[A-Z][A-Z0-9_]{0,127}$",hg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",uR={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{enum:["https://schemas.dyyto.dev/platform/application-config-contract-v1.json","https://schemas.dyyto.dev/platform/application-config-contract-v2.json"]},schemaVersion:{enum:[1,2]},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:kg},profile:{enum:bg}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{enum:["IDP_CONFIG_DIR","APP_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:qi},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:qi},runtimeEnvironmentVariable:{type:"string",pattern:qi},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:hg},provisioning:{oneOf:[{type:"object",additionalProperties:!1,required:["strategy"],properties:{strategy:{const:"external"}}},{type:"object",additionalProperties:!1,required:["strategy"],properties:{strategy:{const:"generated"},bytes:{type:"integer",minimum:16,maximum:128}}},{type:"object",additionalProperties:!1,required:["strategy","template"],properties:{strategy:{const:"derived"},template:{type:"string",minLength:1,maxLength:2048}}}]}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:qi},runtimeEnvironmentVariable:{type:"string",pattern:qi},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:hg}}}]}}}},wg=new vg.Ajv2020({allErrors:!0,strict:!0}).compile(uR),Ig=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,fR=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Le=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function sp(e){let t=J(e),r=t.profile?.id;if(!bg.includes(r))throw new Le("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(kg,"u").test(i))throw new Le("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 Bi(e,t){if(!wg(e))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",wg.errors??[]);let r=e,n=`https://schemas.dyyto.dev/platform/application-config-contract-v${r.schemaVersion}.json`,i=r.schemaVersion===2?"APP_CONFIG_DIR":"IDP_CONFIG_DIR";if(r.$schema!==n||r.configDirectory.rootEnvironmentVariable!==i)throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u7684Schema\u7248\u672C\u4E0E\u914D\u7F6E\u6839\u4E0D\u4E00\u81F4\u3002");if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let o=new Set,a=new Set,s=new Set;for(let u of r.bindings){if(o.has(u.name))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${u.name}`);if(o.add(u.name),u.kind==="value"){if(Ig.test(u.name))throw new Le("APPLICATION_CONFIG_SECRET_LITERAL_FORBIDDEN",`\u654F\u611F\u914D\u7F6E ${u.name} \u5FC5\u987B\u4F7F\u7528\u6587\u4EF6 Binding\uFF0C\u7981\u6B62\u5728\u4ED3\u5E93\u4E2D\u58F0\u660E\u503C\u3002`);continue}if(!u.name.endsWith("_FILE"))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${u.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let f=u.runtimeEnvironmentVariable??u.name;if(a.has(f))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`\u8FD0\u884C\u65F6\u73AF\u5883\u53D8\u91CF\u540D\u79F0\u91CD\u590D\uFF1A${f}`);a.add(f);let m=u.kind==="secret-file"?"secrets/":"certs/";if(u.kind==="certificate-file"&&(Ig.test(u.name)||fR.test(u.name)))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`${u.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 g=u.file.split("/");if(!u.file.startsWith(m)||g.some(y=>y===""||y==="."||y===".."))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`${u.name} \u5FC5\u987B\u4F4D\u4E8E ${m} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(s.has(u.file))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${u.file}`);s.add(u.file)}let c=new Map(r.bindings.map(u=>[u.name,u])),l=new Set,p=new Set,d=u=>{if(p.has(u))return;if(l.has(u))throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6D3E\u751F\u914D\u7F6E\u5B58\u5728\u5FAA\u73AF\u5F15\u7528\uFF1A${u}`);l.add(u);let f=c.get(u);if(f?.kind==="secret-file"&&f.provisioning?.strategy==="derived")for(let m of f.provisioning.template.matchAll(/\$\{([A-Z][A-Z0-9_]{0,127})\}/gu)){let g=m[1],y=c.get(g);if(!y||y.kind==="certificate-file")throw new Le("APPLICATION_CONFIG_CONTRACT_INVALID",`${u}\u5F15\u7528\u672A\u77E5\u6216\u4E0D\u5141\u8BB8\u7684\u914D\u7F6E\uFF1A${g}`);d(g)}l.delete(u),p.add(u)};for(let u of c.keys())d(u);if(t!==void 0){let u=sp(t);if(r.application.id!==u.id||r.application.profile!==u.profile)throw new Le("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function _g(e,t){let r=sp(e),n=r.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],i={$schema:t===2?"https://schemas.dyyto.dev/platform/application-config-contract-v2.json":"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:t,kind:"ApplicationConfigContract",application:r,configDirectory:{rootEnvironmentVariable:t===2?"APP_CONFIG_DIR":"IDP_CONFIG_DIR",relativeDirectory:`applications/${r.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:n};return Bi(i,e),Buffer.from(`${JSON.stringify(i,null,2)}
|
|
37
|
+
`)}function Ca(e){return _g(e,2)}function $a(e){return _g(e,1)}var mR=/(?:^|_)(?:CERT|CERTIFICATE|CA)(?:_|$)/u,gR=/(?:^|_)(?:PRIVATE|SECRET|TOKEN|PASSWORD|PASSWD|KEY|API_KEY|ACCESS_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u;function Ag(e){let t=sp(e.manifest),r=[],n=new Set,i=[];for(let a of e.environmentExample.split(/\r?\n/u)){let s=a.trim();if(s.startsWith("#")){i.push(s.slice(1).trim());continue}let c=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(s);if(!c){s===""&&(i=[]);continue}let l=c[1];if(n.has(l)){i=[];continue}n.add(l);let p=c[2].trim(),d=p.length>=2&&(p.startsWith('"')&&p.endsWith('"')||p.startsWith("'")&&p.endsWith("'"))?p.slice(1,-1):p,u=i.join(" ");i=[];let f=/必填/u.test(u)||!/可选/u.test(u)&&d==="",m=gR.test(l),g=!m&&mR.test(l);if(m||g){let y=l.endsWith("_FILE")?l:`${l}_FILE`,h=l.toLowerCase().replace(/_file$/u,"").replaceAll("_","-");r.push(g?{name:y,...y===l?{}:{runtimeEnvironmentVariable:l},kind:"certificate-file",required:f,file:`certs/${h}.pem`}:{name:y,...y===l?{}:{runtimeEnvironmentVariable:l},kind:"secret-file",required:f,file:`secrets/${h}`,provisioning:{strategy:"external"}})}else r.push({name:l,kind:"value",required:f,...d===""?{}:{default:d}})}let o={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v2.json",schemaVersion:2,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"APP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return Bi(o,e.manifest)}import{createHash as yR,X509Certificate as hR}from"node:crypto";import{lstat as zi,readFile as wt,realpath as Ta}from"node:fs/promises";import te from"node:path";var he=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Rg(e){let t=J(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 xa(e){let t=Rg(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 Pg(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=Rg(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 wR(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 La(e){return`sha256:${yR("sha256").update(e).digest("hex")}`}async function Eg(e,t,r){let n=await zi(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}function IR(e){let t=new Map;for(let r of e)for(let n of r.readiness.entries){let i=n.runtimeEnvironmentVariable??n.name.replace(/_FILE$/u,""),o=t.get(i)??[];o.push({unit:r.unit,entry:n}),t.set(i,o)}return Object.freeze([...t.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let i=n[0].entry,o=new Set(n.map(({entry:p})=>`${p.name}\0${p.kind}`)),a=n.filter(({entry:p})=>p.configured),s=new Set(a.map(({entry:p})=>p.kind==="value"?p.display:p.fingerprint??"")),c=o.size!==1,l=!c&&s.size<=1;return Object.freeze({name:i.name,...i.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:i.runtimeEnvironmentVariable}:r!==i.name.replace(/_FILE$/u,"")?{runtimeEnvironmentVariable:r}:{},kind:i.kind,required:n.some(({entry:p})=>p.required),configured:!c&&l&&a.length===n.length,consistent:l,conflict:c,consumers:Object.freeze(n.map(({unit:p})=>p).sort()),configuredConsumers:Object.freeze(a.map(({unit:p})=>p).sort()),display:i.kind==="value"&&l&&a.length?i.display:c?"\u5408\u540C\u51B2\u7A81":l?a.length===n.length?"\u5DF2\u914D\u7F6E":"\u90E8\u5206\u914D\u7F6E":"\u503C\u4E0D\u4E00\u81F4"})}))}var vR=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),bR=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function cp({projectRoot:e,environment:t=process.env}){let r=await Ta(te.resolve(e)),n=te.join(r,"config/application-config.json");if(!await zi(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([wt(te.join(r,"project-capabilities.json")),wt(n)]),s=JSON.parse(o.toString("utf8")),c=Bi(JSON.parse(a.toString("utf8")),s),l=await wt(te.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:La(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let p=Pg(JSON.parse(l.toString("utf8")),s);try{let d=await Gi({projectRoot:r,environment:t}),u=d.entries.filter(m=>m.required&&!m.configured).map(m=>m.name),f=u.length?"incomplete":"ready";return{schemaVersion:1,...d,state:f,needsConfigInit:f==="incomplete",missingBindings:u}}catch(d){let u=d instanceof he?d.code:d.code??"APPLICATION_CONFIG_UNKNOWN",f=bR.has(u)?"missing":vR.has(u)?"incomplete":"invalid",m=await Ng(r,p.application.id,t).catch(()=>{});return{schemaVersion:1,application:p.application.id,environment:"local",configDirectory:m??null,contractDigest:La(a),state:f,needsConfigInit:f==="missing"||f==="incomplete",missingBindings:f==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:u,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 kR=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function lp({workspaceRoot:e,environment:t=process.env}){let r=await Ta(te.resolve(e));if(J(JSON.parse(await wt(te.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 Cn(r),o=[];for(let s of i){let c=te.join(r,...s.relativeRoot.split("/")),l=te.join(c,"project-capabilities.json"),p=await wt(l,"utf8").catch(()=>null),d=await zi(te.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),u="";if(p!==null)try{u=J(JSON.parse(p)).profile?.id??""}catch{d&&(u="invalid-application")}if(!kR.has(u)&&!d)continue;let f=await cp({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:f})}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))),environment:IR(o)})}async function _R(e,t,r){let n=te.dirname(e);for(;n!==te.dirname(n);){try{let i=JSON.parse(await wt(te.join(n,"project-capabilities.json"),"utf8"));if(i.profile?.id==="workspace-root"){let o=i.profile.parameters?.name;if(typeof o!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(o))throw new he("APPLICATION_CONFIG_WORKSPACE_IDENTITY_REQUIRED","Workspace Manifest\u5FC5\u987B\u58F0\u660E\u7A33\u5B9Aprofile.parameters.name\uFF0C\u7981\u6B62\u6309\u76EE\u5F55\u540D\u63A8\u65AD\u3002");let a=te.relative(n,e);if(!/^(?:apps|services|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>\u3001services/<name>\u6216packages/<name>\u3002");return te.join(o,a,r)}}catch(i){if(i instanceof he)throw i}n=te.dirname(n)}return te.join(t,r)}async function Ng(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!te.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 zi(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 wt(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}${te.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(!te.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 te.join(i,await _R(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Gi({projectRoot:e,environment:t=process.env}){let r=await Ta(te.resolve(e)),[n,i,o]=await Promise.all([wt(te.join(r,"project-capabilities.json")),wt(te.join(r,".dyyto/application-config-binding.json")),wt(te.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=Pg(JSON.parse(i.toString("utf8")),a),c=Bi(JSON.parse(o.toString("utf8")),a),l=await Ng(r,s.application.id,t);if(!l||!te.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 Ta(l),d=await zi(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 u=te.relative(r,p);if(u===""||!u.startsWith("..")&&!te.isAbsolute(u))throw new he("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let f=te.join(p,".env");await Eg(f,"\u5E94\u7528.env",c.bindings.length===0);let m=wR(await wt(f,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let C=m[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:C.length>0,source:"APP_CONFIG_DIR",display:C});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 v=te.resolve(p,y.file),b=te.relative(p,v);if(!b||b.startsWith("..")||te.isAbsolute(b))throw new he("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let E=await Eg(v,y.name,!0),I=await wt(v),A=I.length>0,O;if(A&&y.kind==="certificate-file")try{let C=new hR(I);O={subject:C.subject,issuer:C.issuer,validFrom:C.validFrom,validTo:C.validTo}}catch{throw new he("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,...y.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:y.runtimeEnvironmentVariable}:{},kind:y.kind,required:y.required,configured:A,source:"APP_CONFIG_DIR",display:A?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",...A?{fingerprint:La(I),updatedAt:E.mtime.toISOString()}:{},...O?{certificate:O}:{}})}return{application:s.application.id,environment:"local",configDirectory:p,contractDigest:La(o),entries:g}}var Hr="project-capabilities.json",Og=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function RR(e,t){if(!Og.test(e)||!Og.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 PR(e,t){let r=Ji.join(e,...t.split("/"));try{let n=await AR(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:w(await Va(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function Ma(e,t){let r=J(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 Yl(wr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Hl(wr(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 pp(e){let t=J(e.manifest),r=Ze(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,o=t.capabilities.find(R=>R.capabilityId===n.capabilityId),a=r.capabilities.find(R=>R.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&&RR(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await ER(Ji.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(R=>R.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:R)},p=new Map(e.targetRelease.contents);i.assets.some(R=>R.path==="package.json")&&p.set("package.json",Ma(l,e.targetRelease));for(let R of i.assets)R.renderer==="application-config-contract-v1"&&p.set(R.path,$a(l)),R.renderer==="application-config-contract-v2"&&p.set(R.path,Ca(l)),R.renderer==="application-config-binding-v1"&&p.set(R.path,xa(l));let d,u=c,f="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 R=p.get("package.json");if(R===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let ee=await Va(Ji.join(c,"package.json")),ce=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};u=ce.transactionRoot,f=ce.mode==="pnpm-shared-lockfile"?`${ce.unitRelativeRoot}/package.json`:"package.json",m=ce.lockfilePath;let ct={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:ee,desiredBasePackageJson:R,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let bt=ce.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?ja:Da)({...ct,topology:{mode:ce.mode,unitRelativeRoot:ce.unitRelativeRoot,unitImporterId:ce.unitImporterId,lockfilePath:ce.lockfilePath,workspaceManifestPath:ce.workspaceManifestPath,workspaceManifestDigest:ce.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Sa:Oa)({...ct,lockResolution:e.packageSource.lockResolution});d=Ra(bt),p.set("package.json",bt.desiredPackageJson),p.set(m,bt.desiredLockfile)}catch(bt){throw bt instanceof Z?new M("CONSUMER_PROFILE_UNSUPPORTED",bt.code):bt}}let g=new Map(a.assets.filter(R=>R.path!==Hr).map(R=>[R.path,R.digest])),y=new Map(i.assets.filter(R=>R.path!==Hr).map(R=>{let ee=p.get(R.path);if(ee===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",R.path);return[R.path,w(ee)]})),h=[...new Set([...g.keys(),...y.keys()])].sort(),v=[],b=[];for(let R of h){let ee=await PR(c,R);v.push(ee);let ce=g.get(R),ct=y.get(R),bt=i.assets.find(sw=>sw.path===R);if(bt?.ownership==="seed-file"&&ee.exists&&ee.digest!==void 0){y.set(R,ee.digest),p.set(R,await Va(Ji.join(c,...R.split("/")))),b.push({path:R,kind:"replace",ownership:"seed-file",baseDigest:ee.digest,desiredDigest:ee.digest});continue}if(ce===void 0){if(ct===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",R);b.push({path:R,kind:"create",ownership:bt?.ownership??"owned-file",desiredDigest:ct})}else ct===void 0?b.push({path:R,kind:"remove",ownership:"owned-file",baseDigest:ce}):b.push({path:R,kind:"replace",ownership:bt?.ownership??"owned-file",baseDigest:ce,desiredDigest:ct})}if(d!==void 0&&m!==void 0){let R=e.packageSource?.currentLockfile;if(R===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let ee=p.get(m);v.push({path:m,exists:!0,digest:w(R)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:w(R),desiredDigest:w(ee)})}let E=await Va(Ji.join(c,Hr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
+
`);v.push({path:Hr,exists:!0,digest:w(E)}),b.push({path:Hr,kind:"replace",ownership:"owned-file",baseDigest:w(E),desiredDigest:w(I)});let A={schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:i.integrity,assets:i.assets.filter(R=>R.path!==Hr).map(R=>({path:R.path,ownership:R.ownership,desiredDigest:y.get(R.path)})),verifiers:i.verifiers.map(({id:R})=>({id:R,kind:"command"}))},O=u===c?b:b.map(R=>R.path===m?R:{...R,path:`${e.packageSource.topology.unitRelativeRoot}/${R.path}`}),C=u===c?v:v.map(R=>R.path===m?R:{...R,path:`${e.packageSource.topology.unitRelativeRoot}/${R.path}`}),fe=Ne({action:"upgrade",capability:A,changes:O,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...d===void 0?{}:{packageAdoption:d}});p.set(Hr,I);let T=new Map;for(let R of fe.operations){if(R.disposition!=="ready"||R.kind==="remove")continue;let ee=u===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ce=R.path===m?R.path:R.path.startsWith(ee)?R.path.slice(ee.length):R.path,ct=p.get(ce);if(ct===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",R.path);T.set(R.path,ct)}return{sourceLock:r,targetManifest:l,release:e.targetRelease,plan:fe,desiredContents:T,transactionRoot:u}}import{link as NR,mkdir as OR,open as Sg,readFile as Ot,readdir as SR,realpath as St,rm as DR,unlink as jR}from"node:fs/promises";import we from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function xe(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Dg(e){return w(_(e))}function gp(e){if(!xe(e.project.lockDigest)||!xe(e.project.appliedPlanId)||!xe(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:Dg(t)}}function dp(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(Dg(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return gp({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 jg(e){if(!xe(e.planId)||!xe(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:w(_(t))}}function Cg(e){if(!xe(e.planId)||!xe(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:w(_(t))}}function Fa(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==w(_(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function up(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==w(_(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function $g(e){if(!xe(e.planId)||!xe(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:w(_(t))}}function fp(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==w(_(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function Ua(e){if(!xe(e.planId)||!xe(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"||!xe(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:w(_(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:w(_(t))}}function mp(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==w(_(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 Ua(s)}async function CR(e){let t=await Sg(e,"r");try{await t.sync()}finally{await t.close()}}async function Wi(e,t){let r=we.dirname(e);await OR(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,i=await Sg(n,"wx",384);try{await i.writeFile(`${_(t)}
|
|
40
|
+
`,"utf8"),await i.sync()}finally{await i.close()}try{await NR(n,e),await jR(n),await CR(r)}catch(o){throw await DR(n,{force:!0}),o}}async function Tg(e){let t=await St(we.resolve(e.projectRoot)),r=dp(e.plan),n=we.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Wi(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(_(dp(JSON.parse(await Ot(n,"utf8"))))!==_(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Zt(e){if(!xe(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await St(we.resolve(e.projectRoot));try{let r=dp(JSON.parse(await Ot(we.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 yp(e){let t=await St(we.resolve(e.projectRoot)),r=mp(e.receipt),n=await Zt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let o=await Ln({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=we.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=mp(JSON.parse(await Ot(i,"utf8")));if(_(a)!==_(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function Tn(e){if(!xe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await St(we.resolve(e.projectRoot));try{let r=mp(JSON.parse(await Ot(we.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 Lg(e){let t=await St(we.resolve(e.projectRoot)),r=Fa(e.record),n=await Zt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let i=we.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=Fa(JSON.parse(await Ot(i,"utf8")));if(_(a)!==_(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function xg(e){if(!xe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await St(we.resolve(e.projectRoot));try{let r=Fa(JSON.parse(await Ot(we.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 Vg(e){let t=await St(we.resolve(e.projectRoot)),r=we.join(t,".dyyto","delivery","attempts"),n;try{n=await SR(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=Fa(JSON.parse(await Ot(we.join(r,i),"utf8")));if((await Zt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([Ln({projectRoot:t,planId:o.planId}),Tn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function Mg(e){let t=await St(we.resolve(e.projectRoot)),r=up(e.record),n=await Zt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let i=we.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=up(JSON.parse(await Ot(i,"utf8")));if(_(a)!==_(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function Ln(e){if(!xe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await St(we.resolve(e.projectRoot));try{let r=up(JSON.parse(await Ot(we.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 Fg(e){let t=await St(we.resolve(e.projectRoot)),r=fp(e.record),n=await Ln({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=we.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Wi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=fp(JSON.parse(await Ot(i,"utf8")));if(_(a)!==_(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function Ug(e){if(!xe(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await St(we.resolve(e.projectRoot));try{let r=fp(JSON.parse(await Ot(we.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 oy,readdir as wP}from"node:fs/promises";import vp from"node:path";import{mkdir as hp,open as Ga,readFile as Yi,readdir as wp,rename as Ja,rm as ry}from"node:fs/promises";import ke from"node:path";var $R=44;var qg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",TR=new Uint8Array(64),zg=new Uint8Array(128);for(let e=0;e<qg.length;e++){let t=qg.charCodeAt(e);TR[e]=t,zg[t]=e}function Ki(e,t){let r=0,n=0,i=0;do{let a=e.next();i=zg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Bg(e,t){return e.pos>=t?!1:e.peek()!==$R}var gC=1024*16;var LR=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 Gg(e){let{length:t}=e,r=new LR(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let l=r.indexOf(";"),p=[],d=!0,u=0;for(i=0;r.pos<l;){let f;i=Ki(r,i),i<u&&(d=!1),u=i,Bg(r,l)?(o=Ki(r,o),a=Ki(r,a),s=Ki(r,s),Bg(r,l)?(c=Ki(r,c),f=[i,o,a,s,c]):f=[i,o,a,s]):f=[i],p.push(f),r.pos++}d||xR(p),n.push(p),r.pos=l+1}while(r.pos<=t);return n}function xR(e){e.sort(VR)}function VR(e,t){return e[0]-t[0]}var MR=/^[\w+.-]+:\/\//,FR=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,UR=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function qR(e){return MR.test(e)}function BR(e){return e.startsWith("//")}function Kg(e){return e.startsWith("/")}function zR(e){return e.startsWith("file:")}function Jg(e){return/^[.?#]/.test(e)}function qa(e){let t=FR.exec(e);return Yg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function GR(e){let t=UR.exec(e),r=t[2];return Yg("file:","",t[1]||"","",Kg(r)?r:"/"+r,t[3]||"",t[4]||"")}function Yg(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 Wg(e){if(BR(e)){let r=qa("http:"+e);return r.scheme="",r.type=6,r}if(Kg(e)){let r=qa("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(zR(e))return GR(e);if(qR(e))return qa(e);let t=qa("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function JR(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function WR(e,t){Hg(t,t.type),e.path==="/"?e.path=t.path:e.path=JR(t.path)+e.path}function Hg(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=Wg(e),n=r.type;if(t&&n!==7){let o=Wg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:WR(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)}Hg(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?Jg(t||e)&&!Jg(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 KR(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function YR(e,t){let r=KR(e),n=t?t+"/":"";return i=>Zg(n+(i||""),r)}var Ir=0,HR=1,ZR=2,XR=3,QR=4;function eP(e,t){let r=Xg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Xg(e,n+1))e[n]=rP(e[n],t);return e}function Xg(e,t){for(let r=t;r<e.length;r++)if(!tP(e[r]))return r;return e.length}function tP(e){for(let t=1;t<e.length;t++)if(e[t][Ir]<e[t-1][Ir])return!1;return!0}function rP(e,t){return t||(e=e.slice()),e.sort(nP)}function nP(e,t){return e[Ir]-t[Ir]}var za=!1;function iP(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][Ir]-t;if(o===0)return za=!0,i;o<0?r=i+1:n=i-1}return za=!1,r-1}function oP(e,t,r){for(let n=r+1;n<e.length&&e[n][Ir]===t;r=n++);return r}function aP(e,t,r){for(let n=r-1;n>=0&&e[n][Ir]===t;r=n--);return r}function sP(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function cP(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 za=a!==-1&&e[a][Ir]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=iP(e,t,s,c)}function lP(e){return typeof e=="string"?JSON.parse(e):e}var pP="`line` must be greater than 0 (lines start at line 1)",dP="`column` must be greater than or equal to 0 (columns start at column 0)",Qg=-1,uP=1,ey=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=lP(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 p=YR(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=eP(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=sP(),this._bySources=void 0,this._bySourceMemos=void 0}};function fP(e){var t;return(t=e)._decoded||(t._decoded=Gg(e._encoded))}function ty(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(pP);if(n<0)throw new Error(dP);let o=fP(e);if(r>=o.length)return Ba(null,null,null,null);let a=o[r],s=mP(a,e._decodedMemo,r,n,i||uP);if(s===-1)return Ba(null,null,null,null);let c=a[s];if(c.length===1)return Ba(null,null,null,null);let{names:l,resolvedSources:p}=e;return Ba(p[c[HR]],c[ZR]+1,c[XR],c.length===5?l[c[QR]]:null)}function Ba(e,t,r,n){return{source:e,line:t,column:r,name:n}}function mP(e,t,r,n,i){let o=cP(e,n,t,r);return za?o=(i===Qg?oP:aP)(e,n,o):i===Qg&&o++,o===-1||o===e.length?-1:o}var se=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},Ip=/^sha256:[a-f0-9]{64}$/,ny=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,gP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Wa=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Hi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),xn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function iy(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 se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ke.join(ke.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Zt({projectRoot:r,planId:t.deploymentId}),i=await Tn({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 se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await wp(ke.join(ke.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function yP(e){if(!Hi(e)||!Wa(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Hi(e.error)||!Hi(e.page)||!Wa(e.error,["type","message","frames"])||!Wa(e.page,["origin","path"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!ny.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 se("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new se("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!Ip.test(n)))throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!gP.test(e.traceparent)))throw new se("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 se("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 se("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!Hi(n)||!Wa(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new se("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 se("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new se("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new se("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 se("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function hP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:xn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:xn(a.function,256)}})),i={type:xn(e.error.type,256),message:xn(e.error.message,4096),frames:n},o=w(_({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:xn(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:xn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Xt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ke.join(ke.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ke.join(ke.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=yP(t);if(!r.allowedOrigins.includes(n.page.origin))throw new se("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),o=hP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await hp(a,{recursive:!0,mode:448});let s=ke.join(a,`${o.eventId}.json`);try{let u=JSON.parse(await Yi(s,"utf8")),f={...u,correlation:u.correlation??"unknown"};if(_({...f,receivedAt:o.receivedAt})!==_(o))throw new se("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:o.eventId,state:f.state,duplicate:!0}}catch(u){if(u.code!=="ENOENT")throw u}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await Ga(c,"wx",384);try{await l.writeFile(`${_(o)}
|
|
41
|
+
`,"utf8"),await l.sync()}finally{await l.close()}await Ja(c,s);let p=await Ga(a,"r");try{await p.sync()}finally{await p.close()}await this.rotate(),o.releaseId!==void 0&&await this.resymbolicate(o.releaseId);let d=JSON.parse(await Yi(s,"utf8"));return{eventId:o.eventId,state:d.state,duplicate:!1}})}#t(t){let r=this.#e.then(t,t);return this.#e=r.catch(()=>{}),r}async quarantine(t){let r=ke.join(this.directory(),t),n=ke.join(ke.resolve(this.workspaceRoot),".dyyto","observability","quarantine");await hp(n,{recursive:!0,mode:448}),await Ja(r,ke.join(n,`${Date.now()}-${t}`))}async all(){let t=await wp(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 Yi(ke.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=_({v:1,offset:t,snapshot:r});return Buffer.from(_({content:n,digest:w(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==w(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 se("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=w(_(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(!ny.test(t))throw new se("RUNTIME_ERROR_INVALID","Runtime Error eventId is invalid");let r=`${t}.json`;try{let n=JSON.parse(await Yi(ke.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 se("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 ry(ke.join(this.directory(),`${i.eventId}.json`),{force:!0});for(let i of t.slice(0,1e4))Date.parse(i.receivedAt)<n&&await ry(ke.join(this.directory(),`${i.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!Ip.test(t.releaseId)||!Ip.test(t.assetDigest)||!/^[A-Za-z0-9._/-]+\.js$/.test(t.asset)||t.asset.includes("..")||!Hi(t.map)||"sourcesContent"in t.map)throw new se("RUNTIME_ERROR_INVALID","Source Map registration is invalid or contains sourcesContent");let r=Buffer.from(_(t.map)),n=w(r),i=ke.join(this.releases(),t.releaseId);await hp(i,{recursive:!0,mode:448});let o=w(t.asset),a=ke.join(i,`${o}.json`),s={releaseId:t.releaseId,asset:t.asset,assetDigest:t.assetDigest,mapDigest:n,registeredAt:t.registeredAt},c=await Ga(`${a}.tmp`,"w",384);try{await c.writeFile(`${_({registration:s,map:t.map})}
|
|
42
|
+
`),await c.sync()}finally{await c.close()}return await Ja(`${a}.tmp`,a),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await wp(ke.join(this.releases(),t)).catch(()=>[]),n=[];for(let i of r)try{n.push(JSON.parse(await Yi(ke.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(p=>{let d=n.find(u=>new URL(p.file,"http://local").pathname.endsWith(`/${u.registration.asset}`));if(!d||p.line===void 0||p.column===void 0)return p;try{let u=ty(new ey(d.map),{line:p.line,column:Math.max(0,p.column-1)});return u.source===null||u.line===null||u.column===null?p:(o=!0,{...p,source:u.source.replace(/^file:\/\//,""),sourceLine:u.line,sourceColumn:u.column+1})}catch{return p}});if(!o)continue;let s={...i,error:{...i.error,frames:a},state:"symbolicated"},c=ke.join(this.directory(),`${i.eventId}.json`),l=await Ga(`${c}.tmp`,"w",384);try{await l.writeFile(`${_(s)}
|
|
43
|
+
`),await l.sync()}finally{await l.close()}await Ja(`${c}.tmp`,c)}}};var nt=(e,t,r,n,i)=>({code:e,severity:t,fact:r,message:n,...i===void 0?{}:{action:i}});async function Zi(e){if(e.lock.capabilities.length===0||e.lock.capabilities.some(r=>r.evidenceIds.length===0))return[nt("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=_i(JSON.parse(await oy(vp.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[nt("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[nt("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[nt("EVIDENCE_VALID","info","evidence",`\u5DF2\u6838\u9A8C ${e.lock.capabilities.length} \u9879\u80FD\u529B\u7684 ${t} \u6761\u91C7\u7528\u8BC1\u636E\u3002`)]}function bp(e){return e==="adopted"?[]:e==="planned"?[nt("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"?[nt("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"?[nt("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"?[nt("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")]:[nt("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 ay(e){try{let r=JSON.parse(await oy(vp.join(e.workspaceRoot,".dyyto","observability","config.json"),"utf8"));if(!Array.isArray(r.applications)||!r.applications.includes(e.applicationId))return[nt("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[nt("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 Xt(e.workspaceRoot).list({applicationId:e.applicationId});let t=(await wP(vp.join(e.workspaceRoot,".dyyto","observability","quarantine")).catch(()=>[])).length;return t>0?[nt("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")]:[nt("OBSERVABILITY_CONFIGURED","info","repository","\u8FD0\u884C\u65F6\u9519\u8BEF\u91C7\u96C6\u914D\u7F6E\u4E0E\u672C\u5730\u5B58\u50A8\u53EF\u8BFB\u53D6\u3002")]}function sy(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 Xi,realpath as cy}from"node:fs/promises";import Zr from"node:path";var pe=class extends Error{code;constructor(t,r){super(r),this.code=t}};async function ly(e){let t=await cy(Zr.resolve(e.projectRoot)),r=J(e.manifest),n=e.release.release,i=e.currentLock.capabilities.find(u=>u.capabilityId===n.capabilityId&&u.version===n.version);if(!i||i.packageAdoption!==void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let o=J({...r,capabilities:r.capabilities.filter(u=>u.capabilityId!==n.capabilityId)}),a=Buffer.from(`${JSON.stringify(o,null,2)}
|
|
44
|
+
`),s=await Qi(t,"project-capabilities.json");if(!s.exists||s.digest===void 0)throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","Project manifest is unavailable");let c=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:s.digest,desiredDigest:w(a)},...i.assets.map(u=>({path:u.path,kind:"remove",ownership:u.ownership??"owned-file",baseDigest:u.digest}))],l=await Promise.all(c.map(u=>Qi(t,u.path))),p={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:i.assets.map(u=>({path:u.path,ownership:u.ownership??"owned-file",desiredDigest:u.digest})),verifiers:n.verifiers.map(u=>({id:u.id,kind:"file-digest"}))};return{plan:Ne({action:"remove",capability:p,changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),manifest:o,desiredContents:new Map([["project-capabilities.json",a]]),transactionRoot:t,removedSources:[]}}async function Qi(e,t){try{let r=await Xi(Zr.join(e,...t.split("/")));return{path:t,exists:!0,digest:w(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function kp(e){if(e.release.release.schemaVersion===2&&e.release.release.packageSources.length>0&&e.packageSource===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let t=await cy(Zr.resolve(e.projectRoot)),r=J(e.manifest),n=e.release.release,i=e.packageSource?.topology,o=i?.transactionRoot??t,a=A=>i?.mode==="pnpm-shared-lockfile"?`${i.unitRelativeRoot}/${A}`:A;if(n.kind!=="engineering-feature"||n.consumerProfile!=="any-project")throw new pe("CAPABILITY_KIND_UNSUPPORTED","Only an addable engineering feature can use this lifecycle");if(r.capabilities.some(A=>A.capabilityId===n.capabilityId))throw new pe("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??[],p=e.currentLock.capabilities.find(A=>A.consumerProfile===c);if(c===void 0||!l.includes(c)||p===void 0)throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","The project profile does not satisfy this capability dependency");if((n.dependencies?.capabilities??[]).some(A=>!r.capabilities.some(O=>O.capabilityId===A)||!e.currentLock.capabilities.some(O=>O.capabilityId===A)))throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","A required project capability is not adopted and verified");let u=J({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),f=a("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(u,null,2)}
|
|
45
|
+
`),g=await Qi(o,f);if(!g.exists||g.digest===void 0)throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:f,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:w(m)}],h=new Map([[f,m]]),v;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let A;try{A=await Xi(Zr.join(t,"package.json"))}catch{throw new pe("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let O=e.packageSource.currentLockfile??await Xi(Zr.join(t,"pnpm-lock.yaml")).catch(ce=>ce.code==="ENOENT"?void 0:Promise.reject(ce)),C=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},fe=C.mode==="pnpm-shared-lockfile",T={mode:C.mode,unitRelativeRoot:C.unitRelativeRoot,unitImporterId:C.unitImporterId,lockfilePath:C.lockfilePath,...C.workspaceManifestPath?{workspaceManifestPath:C.workspaceManifestPath,workspaceManifestDigest:C.workspaceManifestDigest}:{}},R={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(fe&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let ee=fe?(e.packageChannel==="development"?ja:Da)({release:n,...R,consumerProfile:c,packageJson:A,currentLockfile:O,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:T,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Sa:Oa)({release:n,...R,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:A,...O===void 0?{}:{currentLockfile:O},generatedAt:e.generatedAt,expiresAt:e.expiresAt});v=Ra(ee),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:ee.packageJsonPreimageDigest,desiredDigest:ee.desiredPackageJsonDigest}),h.set(a("package.json"),ee.desiredPackageJson),y.push({path:C.lockfilePath,kind:O===void 0?"create":"replace",ownership:"owned-file",...O===void 0?{}:{baseDigest:w(O)},desiredDigest:ee.desiredLockfileDigest}),h.set(C.lockfilePath,ee.desiredLockfile)}catch(O){throw O instanceof Z?new pe("CAPABILITY_PACKAGE_SOURCE_INVALID",O.code):O}}for(let A of n.assets){let O=e.release.contents.get(A.path);if(O===void 0)throw new pe("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let C=A.renderer==="application-config-contract-v1"?$a(r):A.renderer==="application-config-contract-v2"?Ca(r):A.renderer==="application-config-binding-v1"?xa(r):O;if(A.ownership==="managed-region"){if(A.regionId===void 0)throw new pe("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let fe;try{fe=await Xi(Zr.join(t,...A.path.split("/")))}catch{throw new pe("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let T=Buffer.from(km({source:fe.toString("utf8"),regionId:A.regionId,content:Buffer.from(C).toString("utf8")}));y.push({path:a(A.path),kind:"merge",ownership:"managed-region",regionId:A.regionId,baseDigest:w(fe),desiredDigest:w(T)}),h.set(a(A.path),T)}else{let fe=await Qi(t,A.path);if(A.ownership==="seed-file"&&fe.exists){let T=await Xi(Zr.join(t,...A.path.split("/")));y.push({path:a(A.path),kind:"create",ownership:"seed-file",desiredDigest:w(T)}),h.set(a(A.path),T)}else y.push({path:a(A.path),kind:"create",ownership:A.ownership,desiredDigest:w(C)}),h.set(a(A.path),C)}}let b=await Promise.all(y.map(A=>Qi(o,A.path))),E={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(A=>A.path!==f&&A.path!==i?.lockfilePath).map(A=>({path:i?.mode==="pnpm-shared-lockfile"?A.path.slice(i.unitRelativeRoot.length+1):A.path,ownership:A.ownership,desiredDigest:A.desiredDigest})),verifiers:n.verifiers.map(A=>({id:A.id,kind:"file-digest"}))};return{plan:Ne({action:"adopt",capability:E,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...v===void 0?{}:{packageAdoption:v}}),manifest:u,desiredContents:h,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var py=cn(Lr(),1);var IP={$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:ne},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ct},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:ne},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}}}}},WC=new py.Ajv2020({allErrors:!0,strict:!0}).compile(IP);var gy=cn(Lr(),1);import{readFile as vP,realpath as bP}from"node:fs/promises";import dy from"node:path";var uy="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",fy="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",kP={$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:uy},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ct},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:ne},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:ne},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:fy,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:uy}},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:fy,maxLength:240}}}}}},my=new gy.Ajv2020({allErrors:!0,strict:!0}).compile(kP),Xr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function _P(e){return w(_(e))}function AP(e){if(!my(e))throw new Xr("EXAMPLE_RECIPE_INVALID",my.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 Xr("EXAMPLE_RECIPE_INVALID");return t}async function yy(e){let t=await bP(dy.resolve(e)),r;try{r=AP(JSON.parse(await vP(dy.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Xr?o:new Xr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(_P(i)!==n)throw new Xr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var Iy=cn(Lr(),1);import{readFile as EP,realpath as RP}from"node:fs/promises";import hy from"node:path";var PP={$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:ne},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ct},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:ne},capability:{type:"string",pattern:`${ne.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:ne},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:ne},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"]}}}},wy=new Iy.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(PP),Qt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function NP(e){return w(_(e))}function OP(e){if(!wy(e))throw new Qt("TEMPLATE_INVALID",wy.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 Qt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Qt("TEMPLATE_INVALID");return t}async function eo(e,t=new Date){let r=await RP(hy.resolve(e)),n;try{n=OP(JSON.parse(await EP(hy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Qt?a:new Qt("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(NP(o)!==i)throw new Qt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Qt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as vy}from"node:fs/promises";import by from"node:path";var SP=/^[A-Z][A-Z0-9_]*$/u,DP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function jP(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||!SP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:DP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function ky(e){let t=await vy(by.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await vy(by.join(e.projectRoot,t),"utf8"):"",n=await Gi({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,...o.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:o.runtimeEnvironmentVariable}:{},requirement:o.required?"conditional":"optional",kind:o.kind,secret:o.kind!=="value",configured:o.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:o.display,...o.fingerprint?{fingerprint:o.fingerprint}:{}})):jP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var _y={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"])},Ay=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function Ey(e,t){if(!_y[t.plane]||t.state&&!Ay.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=_y[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,p)=>l.name.localeCompare(p.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,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(a),states:Object.freeze([...Ay]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var it=class extends Error{code;constructor(t){super(t),this.code=t}},CP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Ry=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,$P=/^sha512-[A-Za-z0-9+/]{86}==$/u,Ka=/^sha256:[a-f0-9]{64}$/u,TP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,LP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,xP=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Qr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function VP(e){if(!Qr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!CP.test(e.packageName)||!Ry.test(e.version)||!TP.test(e.assetName)||!$P.test(e.integrity)||!Ka.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)||!Ry.test(n)||LP.test(n))?!1:e.lifecycleScripts.every(r=>xP.has(r))}function _p(e){if(!Qr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new it("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=>!VP(o)))throw new it("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 it("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 it("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:w(_(i))})}function en(e){let t=e;if(typeof t!="object"||t===null||!Qr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Ka.test(t.bundleId)||!Array.isArray(t.artifacts))throw new it("LOCAL_ARTIFACT_BUNDLE_INVALID");if(_p({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new it("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Ap(e){if(!Qr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new it("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Qr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!Ka.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new it("LOCAL_ARTIFACT_PLAN_INVALID");let r=en(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:w(_(n))})}function Py(e){let t=e;if(typeof t!="object"||t===null||!Qr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Ka.test(t.planId)||!Qr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new it("LOCAL_ARTIFACT_PLAN_INVALID");if(Ap({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new it("LOCAL_ARTIFACT_PLAN_INVALID");return t}function Ny(e){let t=en(e.bundle),r=Mi(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new it("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>ep({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 rt=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Oy=/^sha256:[a-f0-9]{64}$/u,Ya=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function Ep(e){if(!Ya.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Oy.test(r))||!Ya.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 rt("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:w(_(t))})}function Sy(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new rt("RESOLUTION_WORKER_BUILD_INVALID");let r=Ep({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 rt("RESOLUTION_WORKER_BUILD_INVALID");return r}function Rp(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Oy.test(r))||!Ya.test(e.workerReleaseId)||!Ya.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new rt("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:w(_(t))})}function Ha(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new rt("RESOLUTION_WORKER_BUILD_INVALID");let r=Rp({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 rt("RESOLUTION_WORKER_BUILD_INVALID");return r}var to=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},Pp=/^sha256:[a-f0-9]{64}$/u,MP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function Np(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>Pp.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!MP.test(r.path)||!Pp.test(r.currentDigest)||!Pp.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new to("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:w(_(t))})}function Dy(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new to("RECOVERY_OVERRIDE_INVALID");let r=Np({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 to("RECOVERY_OVERRIDE_INVALID");return r}var ro=class extends Error{code;constructor(t,r){super(r),this.code=t}},Sp=/^sha256:[a-f0-9]{64}$/u,FP=/^sha512-[A-Za-z0-9+/]{86}==$/u,UP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,qP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,BP=/[\u0000-\u001f\u007f]/u;function Vn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Mn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function er(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!BP.test(e)}function Op(e){return er(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function jy(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>er(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function zP(e){return e===null?!0:!Vn(e)||!Mn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:Op(e.fileName)&&Sp.test(String(e.digest))&&FP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function GP(e){if(!Vn(e)||!Mn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!UP.test(e.packageName)||!qP.test(e.version)||!er(e.title,120)||!er(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!Vn(e.source)||!Mn(e.source,["repository","path","revision","treeDigest"])||!er(e.source.repository)||!Op(e.source.path)||!er(e.source.revision,200)||!Sp.test(String(e.source.treeDigest))||!zP(e.artifact)||!Vn(e.compatibility)||!Mn(e.compatibility,["node","packageManager"])||!er(e.compatibility.node,100)||!er(e.compatibility.packageManager,100)||!jy(e.exports)||!jy(e.consumerEvidence)||!Vn(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Mn(e.documentation,t)||!Op(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!er(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(!GP(t))throw new ro("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:w(_(t))})}function Cy(e){if(!Vn(e)||!Mn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Sp.test(String(e.releaseDigest)))throw new ro("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 ro("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as WP,readFile as KP,realpath as YP}from"node:fs/promises";import $y from"node:path";async function Ty(e){let t=await YP($y.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 d of n.keys())d.startsWith(l)&&n.delete(d);let p=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(p,{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=$y.join(t,...a.path.split("/")),l=await WP(s).then(async p=>{if(!p.isFile()||p.isSymbolicLink())return;let d=await KP(s);if(a.ownership!=="managed-region")return w(d);if(a.regionId!==void 0)try{return w(ta(d.toString("utf8"),a.regionId))}catch{return}}).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p))===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 HP}from"node:crypto";var ZP=/[\u0000-\u001f\u007f]/u,tn=e=>`sha256:${HP("sha256").update(Dp(e)).digest("hex")}`,Dp=e=>Array.isArray(e)?`[${e.map(Dp).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)}:${Dp(r)}`).join(",")}}`:JSON.stringify(e),vr=(e,t)=>{if(!e.trim()||e.length>500||ZP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},jp=e=>Object.freeze({repository:vr(e.repository,"repository"),branch:vr(e.branch,"branch"),commit:vr(e.commit,"commit")});function Ly(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:vr(e.intentId,"intent_id"),title:vr(e.title,"title"),summary:vr(e.summary,"summary"),repository:jp(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>vr(r,"acceptance")))};return Object.freeze({...t,intentDigest:tn(t)})}function xy(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:vr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:tn(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:tn(r)})}function Vy(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:tn(i)})}function My(e){let t=new Set(e.tasks.map(n=>n.taskId));if(t.size!==e.tasks.length||e.tasks.some(n=>n.dependsOn.some(i=>!t.has(i)||i===n.taskId)))throw new Error("DEVELOPMENT_TASK_GRAPH_INVALID");let r={schemaVersion:1,kind:"SpecificationSet",...e,sourceRevision:jp(e.sourceRevision)};return Object.freeze({...r,specificationDigest:tn(r)})}function Fy(e){let t=[],r=[];for(let a of e.documents){let s=a.status==="withdrawn"?"withdrawn":a.status==="superseded"?"superseded":!a.appliesTo.branches.includes(e.repository.branch)&&!a.appliesTo.branches.includes("*")?"branch-mismatch":e.currentSourceDigests[a.path]!==a.sourceDigest?"source-changed":null;s?r.push({id:a.id,reason:s}):t.push(a.id)}let n=[...new Set((e.changedScopes??[]).filter(a=>!e.documents.some(s=>s.kind===a&&t.includes(s.id))))],i=e.documents.length===0?"unavailable":r.some(a=>a.reason==="source-changed")||n.length?"stale":"current",o={schemaVersion:1,kind:"KnowledgeFreshnessInspection",repository:jp(e.repository),state:i,included:Object.freeze(t.sort()),excluded:Object.freeze(r.sort((a,s)=>a.id.localeCompare(s.id))),requiredUpdates:Object.freeze(n.sort())};return Object.freeze({...o,inspectionDigest:tn(o)})}function Uy(e){if(e.session.sessionId!==e.specification.sessionId)throw new Error("DEVELOPMENT_SESSION_SPECIFICATION_MISMATCH");if(e.knowledge.repository.commit!==e.session.intent.repository.commit||e.knowledge.repository.branch!==e.session.intent.repository.branch)throw new Error("DEVELOPMENT_KNOWLEDGE_REVISION_MISMATCH");if(e.knowledge.state!=="current")throw new Error("DEVELOPMENT_KNOWLEDGE_NOT_CURRENT");let t={schemaVersion:1,kind:"AgentContextBundle",sessionId:e.session.sessionId,repository:e.session.intent.repository,engineeringContextDigest:e.session.engineeringContextDigest,knowledgeContextDigest:e.knowledgeContextDigest??e.session.knowledgeContextDigest,specificationDigest:e.specification.specificationDigest,knowledgeInspectionDigest:e.knowledge.inspectionDigest,documentIds:e.knowledge.included};return Object.freeze({...t,contextDigest:tn(t)})}import{lstat as uN,readFile as re,readdir as rh,realpath as Dt}from"node:fs/promises";import{execFile as fN,spawn as mN}from"node:child_process";import N from"node:path";import{parseArgs as de,promisify as gN}from"node:util";import{lstat as qy,mkdir as $p,readFile as By,realpath as Cp,rm as XP,writeFile as zy}from"node:fs/promises";import ot from"node:path";var at=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},QP=e=>_(e),Gy=e=>w(QP(e));async function Jy(e,t){let r=await Cp(ot.resolve(e)),n=ot.join(r,".examples");await $p(n,{recursive:!0});let i=await Cp(n),o=ot.resolve(r,t);if(ot.dirname(o)!==i||ot.basename(o).startsWith(".")||ot.basename(o).length<1)throw new at("SCAFFOLD_ARGUMENT_INVALID");if(await qy(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new at("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:ot.relative(r,o)}}async function Wy(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 at("SCAFFOLD_ARGUMENT_INVALID");let r=await Jy(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:Gy(i)},a=ot.join(r.workspaceRoot,".dyyto","scaffold-plans");await $p(a,{recursive:!0});let s=ot.join(a,`${o.planId}.json`);return await zy(s,`${_(o)}
|
|
46
|
+
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await By(s,"utf8")!==`${_(o)}
|
|
47
|
+
`)throw new at("SCAFFOLD_PLAN_INVALID")}),o}async function eN(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new at("SCAFFOLD_PLAN_INVALID");let r=await Cp(ot.resolve(e)),n;try{n=JSON.parse(await By(ot.join(r,".dyyto","scaffold-plans",`${t}.json`),"utf8"))}catch{throw new at("SCAFFOLD_PLAN_NOT_FOUND")}let{planId:i,...o}=n;if(i!==t||Gy(o)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new at("SCAFFOLD_PLAN_INVALID");return n}async function Ky(e){let t=await eN(e.workspaceRoot,e.approvedPlanId);if(t.recipeId!==e.recipe.recipeId||t.recipeVersion!==e.recipe.version||t.recipeIntegrity!==e.recipe.integrity)throw new at("SCAFFOLD_PLAN_INVALID");let r=await Jy(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await qy(r.output).then(()=>!0).catch(()=>!1)&&await XP(r.output,{recursive:!0,force:!0}),new at("SCAFFOLD_APPLY_FAILED",s)}let i={schemaVersion:1,scaffoldPlanId:t.planId,recipeIntegrity:t.recipeIntegrity,outputRelativePath:t.outputRelativePath,state:"adopted",receipts:n},o=w(_(i)),a=ot.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await $p(a,{recursive:!0}),await zy(ot.join(a,`${o}.json`),`${_({...i,evidenceId:o})}
|
|
48
|
+
`,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as no,readFile as Tp,readdir as tN,realpath as Lp}from"node:fs/promises";import Ie from"node:path";var Yy={capabilities:Ie.resolve(import.meta.dirname,"catalog"),packages:Ie.resolve(import.meta.dirname,"package-releases")};function Zy(e,t){return e<t?-1:e>t?1:0}function Xa(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Xa).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Zy(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Xa(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function rN(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 Hy(e,t){let r=await no(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 Za(e,t){let r=await no(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 Lp(e)}async function nN(e){let t=e;for(;;){if(await no(Ie.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=Ie.dirname(t);if(r===t)return;t=r}}async function iN(e){if(!Ie.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Za(e,"IDP_CONFIG_DIR");await nN(t);let r=await Za(Ie.join(t,"components"),"components"),n=await Za(Ie.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=Ie.relative(t,n);if(i.startsWith("..")||Ie.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=Ie.join(n,".env");await Hy(o,"Dyyto \u7EC4\u4EF6 .env");let a=rN(await Tp(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(Ie.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=Ie.resolve(n,a),c=Ie.relative(n,s);if(c===""||c.startsWith("..")||Ie.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 f of c.split(Ie.sep).slice(0,-1))l=await Za(Ie.join(l,f),"Package Catalog Binding \u7236\u76EE\u5F55");let p=await Lp(Ie.dirname(s)),d=Ie.relative(n,p);if(d.startsWith("..")||Ie.isAbsolute(d))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Hy(s,"Package Catalog Binding");let u=[];for(let f of(await Tp(s,"utf8")).split(/\r?\n/u)){let m=f.trim();if(m===""||m.startsWith("#"))continue;if(!Ie.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await no(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Lp(m),h=await no(y);if(!h.isDirectory()||h.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");u.includes(y)||u.push(y)}return u.sort()}async function oN(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await iN(e);return{capabilities:Yy.capabilities,packages:[Yy.packages,...t]}}async function Qa(e){return(await tN(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function aN(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 sN(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 cN(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 lN(e){let t=[];for(let r of await Qa(e))for(let n of await Qa(Ie.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(Ie.join(e,r,n)).then(o=>({entry:{item:sN(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 pN(e){let t=[];for(let r of await Qa(e))for(let n of await Qa(Ie.join(e,r))){let i=Ie.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push(Tp(i,"utf8").then(a=>{let s=Cy(JSON.parse(a));return{entry:{item:cN(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 xp(e){let t=e??await oN(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([lN(t.capabilities),...r.map(pN)]),o=[...n.entries,...i.flatMap(l=>l.entries)].sort((l,p)=>l.item.ref.localeCompare(p.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,p)=>l.ref.localeCompare(p.ref))}}async function es(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await xp(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||aN(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 ts(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await xp(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 dN(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 Xy(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 xp(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=dN(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)=>Zy(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:w(Xa(o))})}function Qy(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||w(Xa(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
+
`}var io={"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"},nh=gN(fN),yN=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"]),ih=(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,rs={"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 oh(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function ns(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await re(N.join(e,"package.json")),o=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await Yt(e),c=await re(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 pe("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new pe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let d=Ui({release:t.release,packageJson:n??i}),u=new Date,f=new Date(u.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:d,currentLockfile:c,sources:t.release.packageSources,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:u.toISOString(),expiresAt:f});return{...o,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:y,version:h,integrity:v})=>({registryId:g,packageName:y,version:h,integrity:v}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=ip({release:t.release,packageJson:n??i}),p=await a({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:o.registryConfigs,endpointBindings:o.endpointBindings});return{...o,lockResolution:p,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function ah(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 re(N.join(e,"project-capabilities.json"),"utf8")),E=new Date;return ly({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:E.toISOString(),expiresAt:new Date(E.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let o=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await re(N.join(e,"package.json")),s=await re(N.join(e,"project-capabilities.json")),c=await Yt(e),l=await re(N.join(c.transactionRoot,c.lockfilePath)),p=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(E=>E.packageName)??[])),d=i.packageAdoption.sources.filter(b=>!p.has(b.packageName)),u=c.mode==="pnpm-shared-lockfile"?ap({packageJson:a,remove:d}):op({packageJson:a,remove:d}),f=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 pe("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:u,currentLockfile:l,sources:f,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),E=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(A=>`${c.unitRelativeRoot}/${A.path}`)],I=await Promise.all(E.map(async A=>re(N.join(c.transactionRoot,...A.split("/"))).then(O=>({path:A,exists:!0,digest:w(O)})).catch(O=>O.code==="ENOENT"?{path:A,exists:!1}:Promise.reject(O))));return{...gg({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:f,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),h=await y({desiredPackageJson:u,currentLockfile:l,sources:f,registrySources:[...f,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),v=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>re(N.join(e,...b.split("/"))).then(E=>({path:b,exists:!0,digest:w(E)})).catch(E=>E.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(E))));return{...mg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,desiredLockfile:h.lockfile,endpointBindings:o.endpointBindings,observedAssets:v,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function z(e){return e.includes("--json")?"json":"human"}function k(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Ve(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?k("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function is(e,t){return yN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):k("The selected template release is not bundled with this CLI.")}function hN(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?k("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function X(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function os(e){let t=JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return k("Project manifest must select one capability.");let n=await Re(Ve(r.capabilityId,r.version)),i=await ze(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Ci:t.profile?.id==="react-component-library"?$i:t.profile?.id==="nextjs-full-stack-application"?$n:t.profile?.id==="workspace-npm-package"?Ti:t.profile?.id==="workspace-node-application"?Li:t.profile?.id==="workspace-web-application"?xi:t.profile?.id==="workspace-expo-application"?Vi:oa)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Kt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function sh(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 k("Create arguments are invalid.")}if(t.positionals.length!==1)return k("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,y]=r.split("@");n=await eo(is(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 k("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:io[i]);if(n!==void 0&&s.split("@")[0]!==io[i].split("@")[0])return k(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&o!==s)return k(`Create requires --capability ${s}.`);if(n!==void 0&&o!==void 0)return k("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,h=t.values.license,v=t.values["publish-access"],b=t.values.repository;if([g,y,h,v].some(E=>typeof E!="string")||l==="1.1.0"&&typeof b!="string")return k(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);p={name:String(g),version:String(y),license:String(h),publishAccess:String(v),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return k("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")&&wr(J(d),i),i==="nextjs-full-stack-application"&&Jr(J(d));let u=await va({projectRoot:t.positionals[0],manifest:d}),f=await os(u.projectRoot),m=X(u.projectRoot);return{outputMode:z(e),human:`Project '${m}' initialized.
|
|
50
|
+
Plan: ${f.planId}
|
|
51
|
+
State: ${f.state}
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${f.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:f}}}}async function wN(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 k("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return k("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return k("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return k("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return k("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 k("Retrofit --capability is invalid.");let a=await Re(Ve(o[1],o[2])),s=n.values.profile??"workspace-root";if(a.release.consumerProfile!==s)return k("Retrofit profile and capability are incompatible.");let c=new Date,l=s==="workspace-root"?await Bm({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 qm({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()}),p=X(l.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return k("Retrofit plan does not accept --approve.");let m=await Kt({projectRoot:l.projectRoot,plan:l.plan,now:c.toISOString()});return{outputMode:z(e),human:`Project: ${p}
|
|
53
53
|
Plan: ${m.planId}
|
|
54
54
|
State: ${m.state}
|
|
55
55
|
Files: project-capabilities.json
|
|
56
|
-
Next: dyyto retrofit apply --project ${
|
|
56
|
+
Next: dyyto retrofit apply --project ${p} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:p,plan:m}}}}if(typeof n.values.approve!="string")return k("Retrofit apply requires --approve <planId>.");let d=await zr({projectRoot:l.projectRoot,planId:n.values.approve}),u=await mr({projectRoot:l.projectRoot,plan:d,approvedPlanId:n.values.approve,desiredContents:l.desiredContents,now:c.toISOString()}),f=await gr(u);return{outputMode:z(e),human:`Project: ${p}
|
|
57
57
|
Plan: ${d.planId}
|
|
58
|
-
State: ${
|
|
59
|
-
Files applied: ${
|
|
58
|
+
State: ${f.state}
|
|
59
|
+
Files applied: ${f.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:p,planId:d.planId,transaction:f}}}}async function IN(e,t){let r;try{r=de({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return k(`${e} requires --project.`);let n=await Dt(N.resolve(r.values.project)),i=J(JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")));if(i.template===void 0)return k("The project does not declare an engineering template.");let o=await eo(is(i.template.id,i.template.version)),a=o.commands[e];if(a===void 0)return k(`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((f,m)=>{let g=mN("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),y=()=>g.kill("SIGINT"),h=()=>g.kill("SIGTERM");process.once("SIGINT",y),process.once("SIGTERM",h),g.once("error",m),g.once("close",v=>{process.off("SIGINT",y),process.off("SIGTERM",h),f(v??1)})})!==0)throw new j({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let u={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:""};return{outputMode:z(t),human:`dev completed for '${X(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:u}}}let l=await nh("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),p={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:l.stdout.trim()};return{outputMode:z(t),human:`${e} completed for '${X(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:p}}}async function vN(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 k("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(v=>typeof v!="string"))return k("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return k("Add package requires a supported --profile.");let i=n==="react-component-library"?io["workspace-react-component-library"]:io["workspace-npm-package"];if(t.values.capability!==i)return k(`Add package requires --capability ${i}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return k("Add package --kind only accepts fixture.");let o=t.values.kind==="fixture"?"fixture":"package",a=String(t.values.path),s=dd(a,o);if(s!==void 0)return k(s);let c=await Dt(N.resolve(String(t.values.workspace))),l=JSON.parse(await re(N.join(c,"project-capabilities.json"),"utf8"));if(l.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let p=l.capabilities?.[0];if(p?.capabilityId!=="foundation.workspace-root")return k("Workspace root capability is invalid.");let d=await ze(c);if(d===null){let v=await Re(Ve(p.capabilityId,p.version)),b=new Date;if((await ia({projectRoot:c,release:v,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding a package.")}if(d!==null){try{await Fr({projectRoot:c,expectedAssets:oh(d)})}catch{return k("Workspace root locked assets have drifted; adding a package is blocked.")}if((await Zi({projectRoot:c,lock:d})).some(b=>b.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await fd(c,o==="fixture"?"fixtures":"packages",String(t.values.name)))return k("A workspace package already uses this npm name.");let[u,f]=i.split("@"),m={schemaVersion:1,...rs[n]===void 0?{}:{template:rs[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:u,version:f}]};wr(J(m),n);let g=await va({projectRoot:N.join(c,...a.split("/")),manifest:m}),y=await os(g.projectRoot),h=X(g.projectRoot);return{outputMode:z(e),human:`Workspace package '${a}' initialized.
|
|
60
60
|
Plan: ${y.planId}
|
|
61
61
|
State: ${y.state}
|
|
62
|
-
Next: dyyto apply --project ${
|
|
62
|
+
Next: dyyto apply --project ${h} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:h,workspace:X(c),path:a,plan:y}}}}async function bN(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 k("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(h=>typeof h!="string"))return k("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return k("Add application requires a supported --profile.");let n=r,i=io[n],o=String(t.values.path),a=ud(o,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(a!==void 0)return k(a);let s=await Dt(N.resolve(String(t.values.workspace))),c=JSON.parse(await re(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return k("The selected directory is not a Dyyto workspace root.");let l=c.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace applications require a supported foundation.workspace-root release.");if(o.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(l.version))return k("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let p=await ze(s);if(p===null){let h=await Re(Ve(l.capabilityId,l.version)),v=new Date;if((await ia({projectRoot:s,release:h,generatedAt:v.toISOString(),expiresAt:new Date(v.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return k("Workspace root must be applied before adding an application.")}if(p!==null){try{await Fr({projectRoot:s,expectedAssets:oh(p)})}catch{return k("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Zi({projectRoot:s,lock:p})).some(v=>v.code!=="EVIDENCE_VALID"))return k("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await md(s,String(t.values.name)))return k("A workspace application already uses this name.");let[d,u]=i.split("@"),f={schemaVersion:1,...rs[n]===void 0?{}:{template:rs[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:d,version:u}]};Jr(J(f));let m=await va({projectRoot:N.join(s,...o.split("/")),manifest:f}),g=await os(m.projectRoot),y=X(m.projectRoot);return{outputMode:z(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:
|
|
65
|
+
Next: dyyto apply --project ${y} --approve ${g.planId}`,value:{schemaVersion:1,ok:!0,command:"add-application",result:{project:y,workspace:X(s),path:o,plan:g}}}}async function ch(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 k("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=await Dt(N.resolve(r.values.project)),i=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),o=await ze(n);if(o===null)return k("Add feature requires an adopted project with a verified Profile Lock.");let[a,s]=as(r.values.capability),c=await Re(Ve(a,s)),l=new Date,p;try{let f=await ns(n,c,t);p=await kp({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"}:{},...f===void 0?{}:{packageSource:f}})}catch(f){throw f instanceof pe?new j({code:f.code,message:f.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):f}let d=await Kt({projectRoot:n,plan:p.plan,now:l.toISOString(),transactionRoot:p.transactionRoot}),u=X(n);return{outputMode:z(e),human:`Project: ${u}
|
|
66
66
|
Feature: ${a}@${s}
|
|
67
|
-
Dependency: ${
|
|
67
|
+
Dependency: ${p.dependency.profile} satisfied
|
|
68
68
|
Plan: ${d.planId}
|
|
69
69
|
State: ${d.state}
|
|
70
|
-
Next: dyyto apply --project ${
|
|
70
|
+
Next: dyyto apply --project ${u} --approve ${d.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:u,capability:r.values.capability,dependency:p.dependency,plan:d}}}}async function kN(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 k("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return k("Remove feature requires --project and --capability.");let n=await Dt(N.resolve(r.values.project)),i=await ze(n);if(i===null)return k("Remove feature requires a verified Lock.");let[o,a]=as(r.values.capability),s=await Re(Ve(o,a)),c=await ah(n,s,i,t),l=await Kt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),p=X(n);return{outputMode:z(e),human:`Project: ${p}
|
|
71
71
|
\u79FB\u9664\u80FD\u529B\uFF1A${o}@${a}
|
|
72
72
|
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(d=>`${d.packageName}@${d.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
|
|
73
|
-
Plan: ${
|
|
74
|
-
State: ${
|
|
75
|
-
Next: dyyto apply --project ${
|
|
73
|
+
Plan: ${l.planId}
|
|
74
|
+
State: ${l.state}
|
|
75
|
+
Next: dyyto apply --project ${p} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:p,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function _N(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k("Plan arguments are invalid.")}if(typeof t.values.project!="string")return k("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await os(r),i=X(r),o=n.state==="reviewable"?`Next: dyyto apply --project ${i} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${i}
|
|
76
76
|
Plan: ${n.planId}
|
|
77
77
|
State: ${n.state}
|
|
78
|
-
${o}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:i,plan:n}}}}function
|
|
78
|
+
${o}`,value:{schemaVersion:1,ok:!0,command:"plan",result:{project:i,plan:n}}}}function as(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?k("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function AN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return k("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return k("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await ze(r)!==null)return k("Baseline is only for a historical project without a Lock.");let[n,i]=as(t.values.capability),o=await Re(Ve(n,i)),a=JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await Zl({projectRoot:r,manifest:a,release:o,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),l=await Kt({projectRoot:r,plan:c.plan,now:s.toISOString()}),p=X(r);return{outputMode:z(e),human:`Project: ${p}
|
|
79
79
|
Baseline: ${n}@${i}
|
|
80
|
-
Plan: ${
|
|
81
|
-
State: ${
|
|
82
|
-
Preserved seed files: ${
|
|
83
|
-
Next: dyyto apply --project ${
|
|
80
|
+
Plan: ${l.planId}
|
|
81
|
+
State: ${l.state}
|
|
82
|
+
Preserved seed files: ${l.operations.filter(d=>d.ownership==="seed-file"&&d.disposition==="noop").length}
|
|
83
|
+
Next: dyyto apply --project ${p} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:p,plan:l}}}}async function EN(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 k("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return k("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return k("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),i=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),[o,a]=as(r.values.to),s=i.capabilities?.find(A=>A.capabilityId===o);if(s===void 0)return k(`Upgrade requires ${o} to be adopted by the project.`);let c=await ze(n);if(c===null)return k("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 k("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 k("--repository is only valid for an npm package upgrade to 1.1.0.");let p=await Re(Ve(s.capabilityId,s.version)),d=await Re(Ve(o,a)),u={...i,capabilities:i.capabilities.map(A=>A.capabilityId===o?{capabilityId:o,version:a}:A)},f=d.release.schemaVersion===2&&d.release.availability.maturity!=="withdrawn"&&d.release.packageSources.length>0,m=f?Ma(u,d):void 0,g=f?await ns(n,d,t,m):void 0,y=ih(o,a),h=new Date,v=await pp({projectRoot:n,manifest:i,currentLock:c,sourceRelease:p,targetRelease:d,...y===void 0?{}:{targetTemplate:y},generatedAt:h.toISOString(),expiresAt:new Date(h.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),b=await Kt({projectRoot:n,plan:v.plan,now:h.toISOString(),transactionRoot:v.transactionRoot}),E=X(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${E} --approve ${b.planId}${l?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${E}
|
|
84
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:
|
|
87
|
+
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:E,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function Vp(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 k("Apply arguments are invalid.")}if(typeof r.values.project!="string")return k("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return k("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),i=JSON.parse(await re(N.join(n,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return k("Project manifest must select one capability.");let a=await zr({projectRoot:n,planId:r.values.approve}),s=new Date,c,l,p;if(a.action==="remove"){let f=await ze(n);if(f===null)return k("Remove apply requires the verified Lock.");let m=await ah(n,await Re(Ve(a.capability.capabilityId,a.capability.version)),f,t);c=m,l="registryConfigs"in m?m.registryConfigs:void 0,p="endpointBindings"in m?m.endpointBindings:void 0}else if(a.action==="upgrade"){let f=await ze(n),m=f?.capabilities.find(I=>I.capabilityId===a.capability.capabilityId);if(f===null||m===void 0)return k("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 k("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 k("--repository is not valid for this apply operation.");let g=await Re(Ve(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)},h=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,v=h?Ma(y,g):void 0,b=h?await ns(n,g,t,v):void 0;l=b?.registryConfigs,p=b?.endpointBindings;let E=ih(a.capability.capabilityId,a.capability.version);c=await pp({projectRoot:n,manifest:i,currentLock:f,sourceRelease:await Re(Ve(m.capabilityId,m.version)),targetRelease:g,...E===void 0?{}:{targetTemplate:E},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 Zl({projectRoot:n,manifest:i,release:await Re(Ve(a.capability.capabilityId,a.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(i.capabilities?.some(f=>f.capabilityId===a.capability.capabilityId&&f.version===a.capability.version)){let f=await Re(Ve(o.capabilityId,o.version)),m=await ze(n).catch(()=>null);c=await(i.profile?.id==="standalone-npm-package"?Ci:i.profile?.id==="react-component-library"?$i:i.profile?.id==="nextjs-full-stack-application"?$n:i.profile?.id==="workspace-npm-package"?Ti:i.profile?.id==="workspace-node-application"?Li:i.profile?.id==="workspace-web-application"?xi:i.profile?.id==="workspace-expo-application"?Vi:oa)({projectRoot:n,manifest:i,release:f,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let f=await ze(n);if(f===null)return k("Feature apply requires the verified Profile Lock.");let m=await Re(Ve(a.capability.capabilityId,a.capability.version)),g=await ns(n,m,t);l=g?.registryConfigs,p=g?.endpointBindings,c=await kp({projectRoot:n,manifest:i,release:m,currentLock:f,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let d;if(a.packageAdoption!==void 0){if(l===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:f}=await import("./optional-runtime.js");if(p===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");d=await yg({projectRoot:c.transactionRoot??n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:f({registries:l,endpointBindings:p,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let f=await mr({projectRoot:n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});d=await gr(f)}let u=X(n);return{outputMode:z(e),human:`Project: ${u}
|
|
88
88
|
Plan: ${a.planId}
|
|
89
89
|
State: ${d.state}
|
|
90
90
|
Files applied: ${d.operations.length}
|
|
91
|
-
`+(a.packageAdoption===void 0?`Next: cd ${
|
|
92
|
-
Plan\uFF1A${
|
|
91
|
+
`+(a.packageAdoption===void 0?`Next: cd ${u} && corepack pnpm install`:`Next: dyyto verify --project ${u}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:u,planId:a.planId,transaction:d}}}}async function RN(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 k("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return k("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return k("Scaffold example recipe identifier is invalid.");let i=await yy(hN(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(f=>typeof f=="string"):[],p=r.values.approve;if(p===void 0){let f=await Wy({workspaceRoot:a,output:r.values.output,recipe:i,artifactBundle:s,artifactFallbackBundles:l,artifactPort:o});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${i.title}
|
|
92
|
+
Plan\uFF1A${f.planId}
|
|
93
93
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
|
|
94
|
-
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${
|
|
95
|
-
Evidence\uFF1A${
|
|
96
|
-
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:
|
|
94
|
+
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${f.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:f}}}}if(typeof p!="string")return k("Scaffold example --approve must be an exact Plan ID.");let d=["--artifact-workspace",a,"--artifact-bundle",s,...l.flatMap(f=>["--artifact-fallback-bundle",f]),"--artifact-port",String(o)],u;try{u=await Ky({workspaceRoot:a,approvedPlanId:p,recipe:i,execute:async(f,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(l)||m.artifactPort!==o)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],h=(await sh([f,"--profile","nextjs-full-stack-application","--capability",`${i.rootProfile.capabilityId}@${i.rootProfile.version}`,"--name",i.recipeId])).value.result.plan.planId;await Vp(["--project",f,"--approve",h],t),g.push(h),await nh("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:f,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 Mp(["--project",f]);for(let v of i.capabilities){let b=`${v.capabilityId}@${v.version}`;try{let I=(await ch(["--project",f,"--capability",b,"--channel",v.channel,...d],t)).value.result.plan.planId;await Vp(["--project",f,"--approve",I,...d],t),await Mp(["--project",f]),g.push(I)}catch(E){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${E instanceof Error?E.message:"UNKNOWN"}`,{cause:E})}}return g}})}catch(f){let m=f instanceof at&&f.cause instanceof Error?f.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:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),u.output)}
|
|
95
|
+
Evidence\uFF1A${u.evidenceId}
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:u}}}function oo(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function Mp(e){let{projectRoot:t,outputMode:r}=oo(e,"Verify"),n=JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")),i=await ze(t),o=await Yt(t).catch(()=>{}),a;try{let y=i?.capabilities.map(v=>v.appliedPlanId)??[],h=i?.capabilities.map(v=>v.capabilityId)??[];try{a=await ba(t,y,t,h)}catch(v){if(!(v instanceof be)||v.code!=="PLAN_NOT_FOUND"||o===void 0)throw v;a=await ba(t,y,o.transactionRoot,h)}}catch(y){if(!(y instanceof be)||y.code!=="PLAN_NOT_FOUND"||i===null)throw y;let v=(await Fp(["--project",t,"--json"])).value.result,b=await Zi({projectRoot:t,lock:i});if(v.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 E=X(t);return{outputMode:r,human:`Project: ${E}
|
|
97
97
|
State: adopted
|
|
98
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:
|
|
98
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:E,state:"adopted",reused:!0,lock:i}}}}let s=await Re(Ve(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=X(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(a.action==="remove"){if(i===null)return
|
|
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 k("Remove verification requires the previous verified Lock.");let y=i.capabilities.find(T=>T.capabilityId===a.capability.capabilityId&&T.version===a.capability.version);if(y===void 0){let T=X(t);return{outputMode:r,human:`Project: ${T}
|
|
101
101
|
State: removed
|
|
102
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:T,state:"removed",reused:!0,lock:i}}}}let
|
|
102
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:T,state:"removed",reused:!0,lock:i}}}}let h=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",v=new Map(a.operations.flatMap(T=>T.desiredDigest===void 0||!T.path.startsWith(h)?[]:[[T.path.slice(h.length),T.desiredDigest]])),b=i.capabilities.filter(T=>T!==y),E=[...b].filter(T=>T.packageAdoption!==void 0).sort((T,R)=>T.committedAt.localeCompare(R.committedAt)).at(-1)?.packageAdoption,I=b.flatMap(T=>T.assets).map(T=>({...T,digest:v.get(T.path)??(T.path==="package.json"?E?.packageJsonDigest:void 0)??T.digest})),{executeRemovalVerification:A}=await import("./optional-runtime.js"),O=await A({projectRoot:t,release:s,remainingAssets:I,removedPaths:y.assets.map(T=>T.path)}),C=await ql({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:O.results,committedAt:new Date().toISOString(),previousLock:i,expectedAssets:I}),fe=X(t);return{outputMode:r,human:`Project: ${fe}
|
|
103
103
|
State: removed
|
|
104
104
|
${O.summaries.map(T=>`${T.verifierId}: ${T.result}`).join(`
|
|
105
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:fe,state:"removed",verifiers:O.summaries,lock:C}}}}let
|
|
105
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:fe,state:"removed",verifiers:O.summaries,lock:C}}}}let l=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",p=(s.release.kind==="engineering-feature"?s.release.assets.map(y=>({path:y.path,desiredDigest:y.ownership==="managed-region"?y.digest:a.operations.find(h=>h.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(h=>h.path===`${l}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.operations).map(({path:y,desiredDigest:h,ownership:v,regionId:b})=>h===void 0?k("Applied plan is missing a desired asset digest."):{path:y,digest:h,ownership:v==="managed-region"?"managed-region":v==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:d}=await import("./optional-runtime.js"),u=await d({projectRoot:t,release:s,expectedAssets:p}),f=a.action==="adopt"&&a.operations.every(y=>y.disposition==="noop")&&i?.capabilities.some(y=>y.capabilityId===a.capability.capabilityId)===!0,m=await Ul({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:u.results,committedAt:new Date().toISOString(),expectedAssets:p,...(a.action==="upgrade"||s.release.kind==="engineering-feature"||f)&&i!==null?{previousLock:i}:{}}),g=X(t);return{outputMode:r,human:`Project: ${g}
|
|
106
106
|
State: adopted
|
|
107
|
-
`+
|
|
108
|
-
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:
|
|
107
|
+
`+u.summaries.map(y=>`${y.verifierId}: ${y.result}`).join(`
|
|
108
|
+
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:u.summaries,lock:m}}}}async function Fp(e){let{projectRoot:t,outputMode:r}=oo(e,"Inspect"),n=await Wl(t),i=X(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 o=JSON.parse(await
|
|
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 re(N.join(t,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return k("Project manifest must select one capability.");let s=await Re(Ve(a.capabilityId,a.version)),c=await ze(t);try{let E=await ba(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(E.action==="upgrade"||E.action==="adopt")return{outputMode:r,human:`Project: ${i}
|
|
112
112
|
State: applied-unverified
|
|
113
|
-
Plan: ${
|
|
114
|
-
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:
|
|
115
|
-
State: ${
|
|
116
|
-
`+
|
|
113
|
+
Plan: ${E.planId}
|
|
114
|
+
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:E.operations,lock:c}}}}catch{}let l=new Date,p={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:l.toISOString(),expiresAt:new Date(l.getTime()+1800*1e3).toISOString()},d=o.profile?.id==="standalone-npm-package"?await Qm({...p,manifest:o}):o.profile?.id==="react-component-library"?await eg({...p,manifest:o}):o.profile?.id==="nextjs-full-stack-application"?await tg({...p,manifest:o}):o.profile?.id==="workspace-npm-package"?await rg({...p,manifest:o}):o.profile?.id==="workspace-node-application"?await ng({...p,manifest:o}):o.profile?.id==="workspace-web-application"?await ig({...p,manifest:o}):o.profile?.id==="workspace-expo-application"?await og({...p,manifest:o}):await ia(p),u=c===null?void 0:[...c.capabilities].filter(E=>E.packageAdoption!==void 0).sort((E,I)=>E.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,f=u===void 0?void 0:await re(N.join(t,"package.json")).then(w).catch(()=>{}),m=d.operations.map(E=>E.path==="package.json"&&f===u?{...E,desiredDigest:u,disposition:"noop",conflictCode:void 0}:E),g=c===null?[]:await Ty({projectRoot:t,lock:c,excludeCapabilityIds:[a.capabilityId]}),y=g.some(E=>E.disposition==="conflict"),h=u!==void 0&&m.every(E=>E.disposition==="noop")?{...d,state:"adopted"}:d,v={...h,state:y?"drifted":h.state,operations:[...m,...g]},b=c?.capabilities.flatMap(E=>E.packageAdoption?.sources.map(I=>({capabilityId:E.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${i}
|
|
115
|
+
State: ${v.state}
|
|
116
|
+
`+v.operations.map(E=>`${E.path}: ${E.disposition}`).join(`
|
|
117
117
|
`)+(b.length===0?"":`
|
|
118
118
|
\u5305\u6765\u6E90\uFF1A
|
|
119
|
-
${b.map(
|
|
120
|
-
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...
|
|
119
|
+
${b.map(E=>`- ${E.packageName}@${E.version}\uFF08Registry: ${E.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
|
|
120
|
+
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...v,lock:c,packageSources:b}}}}async function PN(e){let{projectRoot:t,outputMode:r}=oo(e,"Recover"),n=await Hm({projectRoot:t,now:new Date().toISOString()}),i=X(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 lh(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 k(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?k(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function NN(e,t){let{parsed:r,projectRoot:n,outputMode:i}=lh(t,"Lifecycle"),o=r.values.command;if((e==="start"||e==="restart")&&o!=="dev")return k("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:a,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:l}=await import("./optional-runtime.js"),p;if(e==="status")p=await s(n);else if(e==="logs"){let u=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(u)||u<0)return k("Lifecycle logs --after must be a non-negative integer cursor.");p=await a(n,u)}else if(e==="start")await eh(n,"dev"),p=await c(n,"dev");else if(e==="stop")p=await l(n);else if(e==="restart")await eh(n,"dev"),await l(n),p=await c(n,"dev");else return k("Lifecycle action must be start, stop, restart, status, or logs.");let d=X(n);return{outputMode:i,human:`Project: ${d}
|
|
124
124
|
Lifecycle: ${e}
|
|
125
|
-
State: ${"state"in
|
|
125
|
+
State: ${"state"in p?p.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:d,...p,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 eh(e,t){let r=J(JSON.parse(await re(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 eo(is(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 ON(e){let{projectRoot:t,outputMode:r}=lh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),i=await n(t),o=X(t),a=i.details.flatMap(l=>[`${l.title} (${l.capabilityId}@${l.version}) [${l.status}]`,` ${l.purpose}`,...l.packages.map(p=>` package ${p.packageName}@${p.version} [${p.state}]`),...l.packages.flatMap(p=>p.imports.map(d=>` import { ${d.symbol} } from '${d.importFrom}'${d.referencePath?` -> ${d.referencePath}`:""}`)),...l.codeAssets.map(p=>` asset ${p.sourcePath} -> ${p.targetPath} (${p.ownership})`)]),s=l=>i.platformDependencies.filter(p=>p.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}
|
|
@@ -130,49 +130,49 @@ Findings: ${i.findings.length}
|
|
|
130
130
|
Unmanaged platform dependencies: ${i.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
|
|
131
131
|
|
|
132
132
|
${[...a,...c].join(`
|
|
133
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function
|
|
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${
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function SN(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 k("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return k("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return k("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch: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 k("Packages switch requires --source workspace|public|private.");let l=N.resolve(t.values.project),p=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}),d=X(p.projectRoot),u=p.changes.map(m=>` ${m.field} ${m.packageName}: ${m.from} -> ${m.to}`),f=p.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${p.planId} \u7CBE\u786E\u6279\u51C6\u3002`:p.state==="applied"?`\u4F7F\u7528 --verify ${p.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:z(e),human:`\u9879\u76EE\uFF1A${d}
|
|
134
|
+
\u6765\u6E90\uFF1A${p.source}
|
|
135
|
+
Registry\uFF1A${p.registry??"workspace protocol"}
|
|
136
|
+
\u72B6\u6001\uFF1A${p.state}
|
|
137
|
+
Plan\uFF1A${p.planId}
|
|
138
|
+
Packages\uFF1A${p.packages.length}
|
|
139
|
+
\u53D8\u66F4\uFF1A${p.changes.length}
|
|
140
|
+
\u5DF2\u5199\u5165\uFF1A${p.written?"\u662F":"\u5426"}
|
|
141
141
|
|
|
142
|
-
${
|
|
143
|
-
`)}${
|
|
142
|
+
${u.join(`
|
|
143
|
+
`)}${u.length>0?`
|
|
144
144
|
|
|
145
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${
|
|
146
|
-
Environment: ${
|
|
145
|
+
`:""}\u4E0B\u4E00\u6B65\uFF1A${f}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:d,source:p.source,registry:p.registry,state:p.state,planId:p.planId,packages:p.packages,changes:p.changes,written:p.written,...p.installVerified===void 0?{}:{installVerified:p.installVerified},...p.lockfileDigest===void 0?{}:{lockfileDigest:p.lockfileDigest}}}}}async function DN(e){let{projectRoot:t,outputMode:r}=oo(e,"Inspect"),n=J(JSON.parse(await re(N.join(t,"project-capabilities.json"),"utf8")));if(n.profile?.id==="workspace-root"){let s=await lp({workspaceRoot:t}),c=s.environment.map(h=>({name:h.name,...h.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:h.runtimeEnvironmentVariable}:{},requirement:h.required?"conditional":"optional",kind:h.kind,secret:h.kind!=="value",configured:h.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:h.display,consumers:h.consumers,configuredConsumers:h.configuredConsumers,conflict:h.conflict,consistent:h.consistent,targetScope:"applications"})),l=n.profile.parameters?.name;if(typeof l!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(l))throw new j({code:"APPLICATION_CONFIG_WORKSPACE_IDENTITY_REQUIRED",message:"Workspace Manifest\u5FC5\u987B\u58F0\u660E\u7A33\u5B9Aprofile.parameters.name\u3002",exitCode:4,nextStep:"\u4FEE\u6B63project-capabilities.json\u540E\u91CD\u8BD5\u3002"});let p=N.join(t,"config/workspace-environment.json"),d=await re(p,"utf8").then(h=>JSON.parse(h)).catch(h=>h.code==="ENOENT"?null:Promise.reject(h)),u=process.env.APP_CONFIG_DIR,f=u&&N.isAbsolute(u)?N.join(u,l,process.env.DYYTO_APPLICATION_ENVIRONMENT??"local"):null,m=f?await re(N.join(f,".env"),"utf8").then(h=>Object.fromEntries(h.split(/\r?\n/u).map(v=>/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(v)).filter(v=>v!==null).map(v=>[v[1],v[2].trim()])),()=>({})):{},y=[...await Promise.all((d?.bindings??[]).map(async h=>{let v=m[h.name]??h.default??"",b=h.kind==="value"?v.length>0:!!(f&&v&&await uN(N.resolve(f,v)).then(E=>E.isFile()&&!E.isSymbolicLink()&&E.size>0,()=>!1));return{name:h.name,...h.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:h.runtimeEnvironmentVariable}:{},requirement:h.required?"conditional":"optional",kind:h.kind,secret:h.kind!=="value",configured:b,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:h.kind==="value"?v:b?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",consumers:["workspace"],configuredConsumers:b?["workspace"]:[],conflict:!1,consistent:!0,targetScope:"workspace"}})),...c];return{outputMode:r,human:`Workspace: ${X(t)}
|
|
146
|
+
Environment: ${y.filter(h=>h.configured).length}/${y.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:X(t),template:"workspace-aggregate",commands:[],environment:y,environmentExample:null,productionValidation:{contract:!0,live:[]},applications:s.applications,summary:s.summary}}}}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 eo(is(n.template.id,n.template.version)),o=await ky({projectRoot:t,commands:i.commands}),a=X(t);return{outputMode:r,human:`Project: ${a}
|
|
147
147
|
Commands: ${o.commands.map(s=>s.id).join(", ")}
|
|
148
|
-
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
|
|
148
|
+
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 jN(e){let{projectRoot:t,outputMode:r}=oo(e,"Inspect"),n=await Gi({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}
|
|
149
149
|
\u73AF\u5883\uFF1A${n.environment}
|
|
150
150
|
Config Dir\uFF1A${n.configDirectory}
|
|
151
151
|
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(i=>i.configured).length}/${n.entries.length}
|
|
152
152
|
${n.entries.map(i=>`${i.name}: ${i.display}`).join(`
|
|
153
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function
|
|
153
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-inspect",result:n}}}async function CN(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 k("Config readiness arguments are invalid.")}let r=t.values.project,n=t.values.workspace;if(typeof r=="string"==(typeof n=="string"))return k("Config readiness requires exactly one of --project or --workspace.");let i=z(e);if(typeof n=="string"){let c=await lp({workspaceRoot:N.resolve(n)}),l=c.applications.map(d=>`${d.unit}: ${d.readiness.state}${d.readiness.issueCode?` (${d.readiness.issueCode})`:""}`),p=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${X(c.workspaceRoot)}
|
|
154
154
|
\u5E94\u7528\uFF1A${c.summary.total}
|
|
155
155
|
\u5C31\u7EEA\uFF1A${c.summary.ready}
|
|
156
156
|
\u5F85\u521D\u59CB\u5316\uFF1A${c.summary.needsConfigInit}
|
|
157
157
|
\u65E0\u6548\uFF1A${c.summary.invalid}
|
|
158
158
|
|
|
159
|
-
${
|
|
160
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...
|
|
159
|
+
${l.join(`
|
|
160
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...p?{exitCode:p}:{}}}if(typeof r!="string")return k("Config readiness requires --project or --workspace.");let o=await cp({projectRoot:N.resolve(r)}),a=o.missingBindings.length?`
|
|
161
161
|
\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"}
|
|
162
162
|
\u73AF\u5883\uFF1A${o.environment}
|
|
163
163
|
\u72B6\u6001\uFF1A${o.state}
|
|
164
164
|
Config Dir\uFF1A${o.configDirectory??"\u672A\u7269\u5316"}${a}${o.issueCode?`
|
|
165
|
-
\u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function
|
|
165
|
+
\u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function $N(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 k("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return k("Operations requires --project and --plane change|quality|delivery.");let r=await Dt(N.resolve(t.values.project)),n=X(r),i=[];for(let a of await rh(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(a.endsWith(".json"))try{let s=JSON.parse(await re(N.join(r,".dyyto","workbench","tasks",a),"utf8"));s.taskId&&typeof s.operation=="string"&&typeof s.state=="string"&&typeof s.createdAt=="string"&&typeof s.updatedAt=="string"&&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=Ey(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:z(e),human:`Project: ${n}
|
|
166
166
|
Operations: ${o.plane}
|
|
167
167
|
Total: ${o.summary.total}
|
|
168
|
-
Attention: ${o.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...o}}}}async function
|
|
168
|
+
Attention: ${o.summary.attention}`,value:{schemaVersion:1,ok:!0,command:"operations",result:{project:n,...o}}}}async function TN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return k("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Doctor requires --workspace.");let r=await Dt(N.resolve(t.values.workspace));if(J(JSON.parse(await re(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return k("Doctor requires a workspace-root project.");let i=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await rh(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let l=N.join(r,s,c.name);try{await re(N.join(l,"project-capabilities.json"))}catch{continue}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 d=(await Fp(["--project",s.projectRoot,"--json"])).value.result;c=d.state??"invalid",l=bp(c),c==="adopted"&&d.lock!==null&&typeof d.lock=="object"?l.push(...await Zi({projectRoot:s.projectRoot,lock:d.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=bp("invalid")}try{let p=J(JSON.parse(await re(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));p.profile?.id==="workspace-web-application"&&l.push(...await ay({workspaceRoot:r,applicationId:String(p.profile.parameters.name)}))}catch{}o.push({unit:s.unit,kind:s.kind,state:c,findings:l})}let a=sy({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:o});return{outputMode:z(e),human:`Workspace: ${a.workspace}
|
|
169
169
|
Status: ${a.status}
|
|
170
170
|
Units: ${a.summary.total}
|
|
171
171
|
Healthy: ${a.summary.healthy}
|
|
172
172
|
Attention: ${a.summary.attention}
|
|
173
173
|
Blocked: ${a.summary.blocked}
|
|
174
174
|
`+a.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
|
|
175
|
-
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function
|
|
175
|
+
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function Up(e){let{LocalDockerDeploymentAdapter:t,NpmjsPublisherAdapter:r,HostedStaticPublicationAdapter:n}=await import("./optional-runtime.js");return e==="npm-publish"?new r:e==="application-deploy"?new t:e==="hosted-static"?new n:k("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function th(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function ph(e){let t=J(JSON.parse(await re(N.join(e,"project-capabilities.json"),"utf8"))),r=await ze(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return k("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return k("Manifest and verified Lock must identify the same adopted capability.");let i=n.assets.filter(o=>!o.path.startsWith("src/"));return await Fr({projectRoot:e,expectedAssets:i}),{manifest:t,lock:r,locked:n,lockDigest:w(_(r))}}async function LN(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 k("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return k("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await ph(r),o=await(await Up(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Vg({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 p=t.values.provider,d=t.values.repository,u=t.values.workflow,f=t.values.ref;if(p!=="github-actions"&&p!=="gitlab-ci"||typeof d!="string"||typeof u!="string"||typeof f!="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:p,repository:d,workflow:u,ref:f,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(a!==void 0){let p=JSON.parse(await re(N.join(r,"package.json"),"utf8")),d=typeof p.repository=="string"?p.repository:p.repository!==null&&typeof p.repository=="object"?p.repository.url:void 0,u=`https://${a.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${a.execution.repository}`;if(d!==u)throw new D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=gp({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 Tg({projectRoot:r,plan:c});let l=X(r);return{outputMode:z(e),human:`Project: ${l}
|
|
176
176
|
Delivery: ${c.kind}
|
|
177
177
|
Artifact: ${c.artifact.identity}
|
|
178
178
|
Target: ${c.target.location}
|
|
@@ -184,73 +184,73 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
|
|
|
184
184
|
Approval: maintainer 2FA required outside Dyyto`}
|
|
185
185
|
Plan: ${c.planId}
|
|
186
186
|
State: reviewable
|
|
187
|
-
Next: dyyto delivery apply --project ${
|
|
187
|
+
Next: dyyto delivery apply --project ${l} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:l,plan:c}}}}async function xN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return k("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return k("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Zt({projectRoot:r,planId:t.values.approve}),i=await Tn({projectRoot:r,planId:n.planId}),o=X(r);if(i!==null)return{outputMode:z(e),human:`Project: ${o}
|
|
188
188
|
Delivery: verified
|
|
189
189
|
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 Ln({projectRoot:r,planId:n.planId}):null;if(a!==null)return{outputMode:z(e),human:`Project: ${o}
|
|
190
190
|
Delivery: staged
|
|
191
|
-
Stage: ${
|
|
192
|
-
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
|
|
191
|
+
Stage: ${th(a.stageId)}
|
|
192
|
+
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 xg({projectRoot:r,planId:n.planId}):null)!==null)throw new D("NPM_REGISTRY_OUTCOME_UNKNOWN","This Plan already started a remote stage write without a committed Stage Record");if(Date.parse(n.expiresAt)<=Date.now())throw new D("DELIVERY_PLAN_EXPIRED","Delivery Plan has expired");let c=await ph(r);if(c.lockDigest!==n.project.lockDigest||c.locked.appliedPlanId!==n.project.appliedPlanId)throw new D("DELIVERY_PRECONDITION_FAILED","Adoption Lock changed after Delivery Plan approval");let l=await Up(n.kind),p=await l.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(_(p.artifact)!==_(n.artifact)||_(p.target)!==_(n.target))throw new D("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let d=await l.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await Lg({projectRoot:r,record:Cg({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let f=jg({planId:n.planId,stageId:d.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await Mg({projectRoot:r,record:f}),{outputMode:z(e),human:`Project: ${o}
|
|
193
193
|
Delivery: staged
|
|
194
|
-
Stage: ${
|
|
195
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,state:"staged",record:
|
|
194
|
+
Stage: ${th(f.stageId)}
|
|
195
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,state:"staged",record:f}}}}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 u=Ua({planId:n.planId,kind:n.kind,adapterId:n.target.adapterId,artifactDigest:n.artifact.digest,target:n.target.location,externalIdentity:d.externalIdentity,completedAt:new Date().toISOString(),details:d.details});return await yp({projectRoot:r,receipt:u}),{outputMode:z(e),human:`Project: ${o}
|
|
196
196
|
Delivery: verified
|
|
197
|
-
Receipt: ${
|
|
198
|
-
External: ${
|
|
197
|
+
Receipt: ${u.receiptId}
|
|
198
|
+
External: ${u.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,receipt:u}}}}async function VN(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 k("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return k("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Zt({projectRoot:r,planId:t.values.plan}),i=await Tn({projectRoot:r,planId:n.planId}),o=X(r);if(i!==null)return{outputMode:z(e),human:`Project: ${o}
|
|
199
199
|
Delivery: verified
|
|
200
|
-
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 Ln({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await
|
|
200
|
+
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 Ln({projectRoot:r,planId:n.planId}):null,s=n.kind==="npm-publish"?await Ug({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=w(await re(N.resolve(t.values["stage-artifact"])));if(l!==n.artifact.digest||l!==a.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=$g({planId:n.planId,stageId:a.stageId,artifactDigest:l,reviewedAt:new Date().toISOString()}),await Fg({projectRoot:r,record:s})}let c=await(await Up(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=Ua({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 yp({projectRoot:r,receipt:l}),{outputMode:z(e),human:`Project: ${o}
|
|
201
201
|
Delivery: verified
|
|
202
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,stage:a,review:s,receipt:
|
|
202
|
+
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:z(e),human:`Project: ${o}
|
|
203
203
|
Delivery: staged
|
|
204
204
|
Plan: ${n.planId}
|
|
205
205
|
Artifact review: ${s===null?"pending":"verified"}
|
|
206
|
-
State: ${
|
|
206
|
+
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:z(e),human:`Project: ${o}
|
|
207
207
|
Delivery: ${c.state}
|
|
208
|
-
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
|
|
209
|
-
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...o,summary:a}}}}async function
|
|
208
|
+
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 MN(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 k("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return k("Observe errors requires --workspace.");let r=await Dt(N.resolve(t.values.workspace)),n=new Xt(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:z(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(`
|
|
209
|
+
`),value:{schemaVersion:1,ok:!0,command:"observe-errors",result:{...o,summary:a}}}}async function FN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return k("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return k("Observe error requires --workspace and --id.");let r=await new Xt(await Dt(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:z(e),human:`${r.error.type}: ${r.error.message}
|
|
210
210
|
State: ${r.state}
|
|
211
211
|
Correlation: ${r.correlation}
|
|
212
212
|
Release: ${r.releaseId??"unknown"}
|
|
213
|
-
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function
|
|
213
|
+
Deployment: ${r.deploymentId??"unknown"}`,value:{schemaVersion:1,ok:!0,command:"observe-error",result:{event:r}}}}async function UN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return k("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return k("Observe release register requires --project.");let r=await Dt(N.resolve(t.values.project)),n=await Dt(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:z(e),human:`Release: ${o.releaseId}
|
|
214
214
|
Source Maps: ${o.registrations.length}
|
|
215
|
-
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:o}}}async function
|
|
215
|
+
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:o}}}async function qN(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 k("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return k("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return k("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let i=await es({...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}
|
|
216
216
|
${a.summary}
|
|
217
217
|
\u6210\u719F\u5EA6\uFF1A${a.maturity}`).join(`
|
|
218
|
-
`);return{outputMode:z(e),human:o,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function
|
|
218
|
+
`);return{outputMode:z(e),human:o,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function BN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return k("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return k("Catalog show \u9700\u8981 --ref\u3002");let r=await ts({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
|
|
219
219
|
${r.item.summary}
|
|
220
220
|
\u6210\u719F\u5EA6\uFF1A${r.item.maturity}
|
|
221
|
-
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function as(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:zn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:zn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:ld,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?MN(o.slice(1)):i==="catalog"&&o[0]==="show"?FN(o.slice(1)):i==="create"?oh(o):i==="scaffold"&&o[0]==="example"?_N(o.slice(1),t):i==="retrofit"?gN(o):i==="dev"||i==="build"||i==="test"||i==="package"?yN(i,o):i==="add"&&o[0]==="package"?hN(o.slice(1)):i==="add"&&o[0]==="application"?wN(o.slice(1)):i==="add"&&o[0]==="feature"?ah(o.slice(1),t):i==="remove"&&o[0]==="feature"?IN(o.slice(1),t):i==="plan"?vN(o):i==="upgrade"?kN(o,t):i==="apply"?xp(o,t):i==="verify"?Vp(o):i==="inspect"?Mp(o):i==="doctor"?jN(o):i==="recover"?AN(o):i==="lifecycle"&&typeof o[0]=="string"?RN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?PN(o.slice(1)):i==="integrations"?EN(o):i==="maintenance"?NN(o):i==="config"&&o[0]==="inspect"?ON(o.slice(1)):i==="config"&&o[0]==="readiness"?SN(o.slice(1)):i==="operations"?DN(o):i==="baseline"?bN(o):i==="delivery"&&o[0]==="plan"?CN(o.slice(1)):i==="delivery"&&o[0]==="apply"?$N(o.slice(1)):i==="delivery"&&o[0]==="inspect"?TN(o.slice(1)):i==="observe"&&o[0]==="errors"?LN(o.slice(1)):i==="observe"&&o[0]==="error"?xN(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?VN(o.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as UN}from"node:http";import{readFile as qN,readdir as qT,rm as BT}from"node:fs/promises";import{execFile as BN}from"node:child_process";import{promisify as zN}from"node:util";import GN from"node:path";var KT=zN(BN),Up=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 JN(e){try{let t=JSON.parse(await qN(GN.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function lh(e){let t=new Xt(e.workspaceRoot),r=[...e.allowedOrigins??await JN(e.workspaceRoot)],n=new Up,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=UN(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 p=s.headers.origin;if(typeof p!="string"||!r.includes(p)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let l=n.take(p);if(!l.allowed){i.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(l.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 se("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=>ry(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof se?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(p=>p?c(p):s()))}}import{createHash as WN}from"node:crypto";import{createServer as KN}from"node:http";import{readFile as ph,realpath as dh}from"node:fs/promises";import ss from"node:path";var Ge=class extends Error{constructor(r){super(r);this.code=r}code};function YN(e){return"sha512-"+WN("sha512").update(e).digest("base64")}async function ao(e){let t=await dh(e).catch(()=>{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await ph(ss.join(t,"index.json"),"utf8").catch(()=>{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=en(JSON.parse(r))}catch{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=ss.join(t,o.assetName),s=ss.relative(t,await dh(a).catch(()=>{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||ss.isAbsolute(s))throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await ph(a);if(h(c)!==o.tarballDigest||YN(c)!==o.integrity)throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(o.assetName,c)}return{root:t,bundle:n,assets:i}}function HN(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function uh(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function ZN(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 XN(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&&uh(s)!==uh(o))throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let p=n.get(o.assetName);if(p!==void 0&&!Buffer.from(p).equals(c))throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function fh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Ge("LOCAL_ARTIFACT_SERVER_INVALID");let t=await ao(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(ao)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=XN(t,r),o=e.hostname??"127.0.0.1",a=KN((s,c)=>{let p=s.method??"";if(p!=="GET"&&p!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let l=new URL(s.url??"/","http://127.0.0.1").pathname,d=decodeURIComponent(l.slice(1)),f=i.artifacts.filter(u=>u.packageName===d).sort((u,m)=>ZN(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(p==="HEAD"?void 0:y);return}if(l.startsWith("/tarballs/")){let u=l.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(p==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(p==="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 Ge("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+o+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>HN(a)})}import{createHash as QN}from"node:crypto";import{execFile as e0}from"node:child_process";import{cp as t0,mkdir as mh,mkdtemp as qp,readFile as ps,realpath as so,rename as r0,rm as gh,stat as n0,writeFile as ls}from"node:fs/promises";import{tmpdir as i0}from"node:os";import Ve from"node:path";import{promisify as o0}from"node:util";import{gunzipSync as a0}from"node:zlib";var s0=o0(e0),c0=["preinstall","install","postinstall","prepublish","prepare"],J=class extends Error{constructor(r){super(r);this.code=r}code};function l0(e){return"sha512-"+QN("sha512").update(e).digest("base64")}async function p0(e,t){let r=await so(e).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let o=await so(Ve.join(r,i)).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Ve.relative(r,o);if(a!==i||a.startsWith("..")||Ve.isAbsolute(a))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=await ps(Ve.join(o,"package.json")).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function d0(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 J("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(o):a;if(s===void 0)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");i[o]=s}return Object.fromEntries(Object.entries(i).sort(([o],[a])=>o.localeCompare(a)))}function u0(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 f0(e,t,r){let n;try{n=a0(e)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let i=u0(n,"package/package.json");if(i===void 0)throw new J("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[p])=>c.localeCompare(p)));if(o.name!==t.name||o.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new J("LOCAL_ARTIFACT_PACK_FAILED")}function m0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function g0(e,t,r){let n=Ve.join(await qp(Ve.join(r,"stage-")),"package");await t0(e.root,n,{recursive:!0,filter:o=>Ve.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await ls(Ve.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
222
|
-
`),n}async function
|
|
223
|
-
`,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await
|
|
224
|
-
`)throw new
|
|
225
|
-
`,{mode:292}),await
|
|
221
|
+
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function ss(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=z(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:zn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:zn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:pd,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?qN(o.slice(1)):i==="catalog"&&o[0]==="show"?BN(o.slice(1)):i==="create"?sh(o):i==="scaffold"&&o[0]==="example"?RN(o.slice(1),t):i==="retrofit"?wN(o):i==="dev"||i==="build"||i==="test"||i==="package"?IN(i,o):i==="add"&&o[0]==="package"?vN(o.slice(1)):i==="add"&&o[0]==="application"?bN(o.slice(1)):i==="add"&&o[0]==="feature"?ch(o.slice(1),t):i==="remove"&&o[0]==="feature"?kN(o.slice(1),t):i==="plan"?_N(o):i==="upgrade"?EN(o,t):i==="apply"?Vp(o,t):i==="verify"?Mp(o):i==="inspect"?Fp(o):i==="doctor"?TN(o):i==="recover"?PN(o):i==="lifecycle"&&typeof o[0]=="string"?NN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?SN(o.slice(1)):i==="integrations"?ON(o):i==="maintenance"?DN(o):i==="config"&&o[0]==="inspect"?jN(o.slice(1)):i==="config"&&o[0]==="readiness"?CN(o.slice(1)):i==="operations"?$N(o):i==="baseline"?AN(o):i==="delivery"&&o[0]==="plan"?LN(o.slice(1)):i==="delivery"&&o[0]==="apply"?xN(o.slice(1)):i==="delivery"&&o[0]==="inspect"?VN(o.slice(1)):i==="observe"&&o[0]==="errors"?MN(o.slice(1)):i==="observe"&&o[0]==="error"?FN(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?UN(o.slice(2)):k(`Unknown command '${i}'.`)}import{createServer as zN}from"node:http";import{readFile as GN,readdir as KT,rm as YT}from"node:fs/promises";import{execFile as JN}from"node:child_process";import{promisify as WN}from"node:util";import KN from"node:path";var eL=WN(JN),qp=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 YN(e){try{let t=JSON.parse(await GN(KN.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 dh(e){let t=new Xt(e.workspaceRoot),r=[...e.allowedOrigins??await YN(e.workspaceRoot)],n=new qp,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=zN(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=[],u=0;try{for await(let m of s){let g=Buffer.from(m);if(u+=g.length,u>64*1024)throw new se("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");d.push(g)}let f=await t.accept(JSON.parse(Buffer.concat(d).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>iy(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:f}))}catch(f){let m=f instanceof se?f: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 HN}from"node:crypto";import{createServer as ZN}from"node:http";import{readFile as uh,realpath as fh}from"node:fs/promises";import cs from"node:path";var Ge=class extends Error{constructor(r){super(r);this.code=r}code};function XN(e){return"sha512-"+HN("sha512").update(e).digest("base64")}async function ao(e){let t=await fh(e).catch(()=>{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await uh(cs.join(t,"index.json"),"utf8").catch(()=>{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=en(JSON.parse(r))}catch{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=cs.join(t,o.assetName),s=cs.relative(t,await fh(a).catch(()=>{throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||cs.isAbsolute(s))throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await uh(a);if(w(c)!==o.tarballDigest||XN(c)!==o.integrity)throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(o.assetName,c)}return{root:t,bundle:n,assets:i}}function QN(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function mh(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 e0(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 t0(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&&mh(s)!==mh(o))throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(o.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function gh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Ge("LOCAL_ARTIFACT_SERVER_INVALID");let t=await ao(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(ao)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Ge("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=t0(t,r),o=e.hostname??"127.0.0.1",a=ZN((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)),u=i.artifacts.filter(f=>f.packageName===d).sort((f,m)=>e0(f.version,m.version));if(u.length>0){let f="http://"+o+":"+e.port,m=Object.fromEntries(u.map(h=>[h.version,{name:h.packageName,version:h.version,dependencies:h.dependencies,dist:{integrity:h.integrity,tarball:f+"/tarballs/"+h.assetName}}])),g=u.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 f=p.slice(10),m=i.assets.get(f);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 Ge("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+o+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>QN(a)})}import{createHash as r0}from"node:crypto";import{execFile as n0}from"node:child_process";import{cp as i0,mkdir as yh,mkdtemp as Bp,readFile as ds,realpath as so,rename as o0,rm as hh,stat as a0,writeFile as ps}from"node:fs/promises";import{tmpdir as s0}from"node:os";import Me from"node:path";import{promisify as c0}from"node:util";import{gunzipSync as l0}from"node:zlib";var p0=c0(n0),d0=["preinstall","install","postinstall","prepublish","prepare"],W=class extends Error{constructor(r){super(r);this.code=r}code};function u0(e){return"sha512-"+r0("sha512").update(e).digest("base64")}async function f0(e,t){let r=await so(e).catch(()=>{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new W("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 W("LOCAL_ARTIFACT_INPUT_INVALID");let o=await so(Me.join(r,i)).catch(()=>{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Me.relative(r,o);if(a!==i||a.startsWith("..")||Me.isAbsolute(a))throw new W("LOCAL_ARTIFACT_INPUT_INVALID");let s=await ds(Me.join(o,"package.json")).catch(()=>{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new W("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function m0(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 W("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw new W("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(o):a;if(s===void 0)throw new W("LOCAL_ARTIFACT_INPUT_INVALID");i[o]=s}return Object.fromEntries(Object.entries(i).sort(([o],[a])=>o.localeCompare(a)))}function g0(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 y0(e,t,r){let n;try{n=l0(e)}catch{throw new W("LOCAL_ARTIFACT_PACK_FAILED")}let i=g0(n,"package/package.json");if(i===void 0)throw new W("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new W("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new W("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 W("LOCAL_ARTIFACT_PACK_FAILED")}function h0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function w0(e,t,r){let n=Me.join(await Bp(Me.join(r,"stage-")),"package");await i0(e.root,n,{recursive:!0,filter:o=>Me.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await ps(Me.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
222
|
+
`),n}async function I0(e,t,r){let n=m0(e,t.manifest),i=h0(t.manifest,n)?await w0(t,n,r):t.root,o;try{({stdout:o}=await p0("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:i,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new W("LOCAL_ARTIFACT_PACK_FAILED")}let a;try{a=JSON.parse(o)}catch{throw new W("LOCAL_ARTIFACT_PACK_FAILED")}let s=a[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new W("LOCAL_ARTIFACT_PACK_FAILED");let c=await ds(Me.join(r,s)).catch(()=>{throw new W("LOCAL_ARTIFACT_PACK_FAILED")}),l=t.manifest.scripts;if(l!==void 0&&(typeof l!="object"||l===null||Array.isArray(l)))throw new W("LOCAL_ARTIFACT_INPUT_INVALID");let p=d0.filter(d=>Object.hasOwn(l??{},d));return y0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:u0(c),tarballDigest:w(c),dependencies:n,lifecycleScripts:p},bytes:c}}async function wh(e,t){let r=await f0(e,t),n=await Bp(Me.join(await so(s0()),"dyyto-local-artifact-pack-"));try{let i=await Promise.all(r.map(a=>I0(r,a,n)));i.sort((a,s)=>(a.artifact.packageName+"@"+a.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let o=_p({artifacts:i.map(a=>a.artifact)});return{packages:r,bundle:o,bytes:new Map(i.map(a=>[a.artifact.assetName,a.bytes]))}}finally{await hh(n,{recursive:!0,force:!0})}}function ls(e,t){return Me.join(e,".dyyto","artifact-plans",t+".json")}function v0(e,t){return Me.join(e,".dyyto","package-artifacts",t)}async function Ih(e){let t=await so(e.workspaceRoot).catch(()=>{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await wh(t,e.packageRoots),n=e.now??new Date,i=Ap({packageInputs:r.packages.map(o=>({relativeRoot:o.relativeRoot,manifestDigest:w(o.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await yh(Me.dirname(ls(t,i.planId)),{recursive:!0}),await ps(ls(t,i.planId),JSON.stringify(i,null,2)+`
|
|
223
|
+
`,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await ds(ls(t,i.planId),"utf8")!==JSON.stringify(i,null,2)+`
|
|
224
|
+
`)throw new W("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function vh(e){let t=await so(e.workspaceRoot).catch(()=>{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await ds(ls(t,e.approvedPlanId),"utf8").catch(()=>{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Py(JSON.parse(r))}catch{throw new W("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new W("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new W("LOCAL_ARTIFACT_PLAN_EXPIRED");let i=v0(t,n.bundle.bundleId);if(await a0(i).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new W("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=await wh(t,n.packageInputs.map(c=>c.relativeRoot));if(o.bundle.bundleId!==n.bundle.bundleId||o.packages.some((c,l)=>w(c.manifestBytes)!==n.packageInputs[l].manifestDigest))throw new W("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=Me.dirname(i);await yh(a,{recursive:!0});let s=await Bp(Me.join(a,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>ps(Me.join(s,c.assetName),o.bytes.get(c.assetName),{mode:292}))),await ps(Me.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
|
|
225
|
+
`,{mode:292}),await o0(s,i)}catch(c){throw await hh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new W("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:i}}var br=class extends Error{constructor(r){super(r);this.code=r}code};function bh(e){let t=[en(e.bundle),...(e.fallbackBundles??[]).map(en)],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 br("LOCAL_ARTIFACT_SOURCE_INVALID");let n=Xl({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=Ql({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),o=t.flatMap(c=>Ny({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 br("LOCAL_ARTIFACT_RELEASE_MISMATCH");for(let p of c.packageSources){let d=`${p.packageName}@${p.version}`,u=a.get(d),f=s.get(d);if(!u||!f||p.registryId!==n.registryId||p.version!==u.version||p.integrity!==u.integrity||p.tarballDigest!==u.tarballDigest||p.deliveryReceiptId!==f.receiptId)throw new br("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let l=Object.freeze(c.packageSources.map(p=>s.get(`${p.packageName}@${p.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([i]),receipts:l,inspections:Object.freeze(c.packageSources.map(p=>{let d=a.get(`${p.packageName}@${p.version}`);return Object.freeze({...p,dependencies:d.dependencies,lifecycleScripts:d.lifecycleScripts})}))})}})}import{mkdir as b0,open as k0,readFile as Jp,rename as _0,rm as A0,writeFile as E0}from"node:fs/promises";import Fn from"node:path";import{resolvePnpmWorkspaceLock as R0}from"./optional-runtime.js";var P0=w(_({schemaVersion:1,completedRequests:[]}));function kh(e){return w(_({schemaVersion:1,completedRequests:[...e].sort()}))}function Wp(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function zp(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(Wp(o[1]),w(Buffer.from(`${a.join(`
|
|
226
226
|
`)}
|
|
227
|
-
`))),i=s}return r}function
|
|
227
|
+
`))),i=s}return r}function Gp(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:Wp(a[1]),bytes:Buffer.from(`${s.join(`
|
|
228
228
|
`)}
|
|
229
|
-
`)}),o=c}return i}function
|
|
230
|
-
`,{mode:384}),await
|
|
229
|
+
`)}),o=c}return i}function N0(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 O0(e,t,r){let n=new Map(Gp(e,"snapshots").map(i=>[i.key,i.bytes]));return Gp(e,"packages").map(i=>{let o=N0(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=Wp(a[1]),c=t.find(d=>d.packageName===o.packageName&&d.version===o.version),l=c?.registryId??r.find(d=>d.scopes.some(u=>o.packageName.startsWith(`${u}/`)))?.registryId??"registry.npmjs.public",p=n.get(i.key);return{identity:i.key,packageName:o.packageName,version:o.version,integrity:s,registryId:l,managed:c!==void 0,edgesDigest:w(p??_({dependencies:[]}))}}).sort((i,o)=>i.identity.localeCompare(o.identity))}function _h(e={}){return async t=>{let r=await R0({topology:t.topology,desiredPackageJson:t.desiredPackageJson,currentLockfile:t.currentLockfile,sources:t.sources,registries:t.registryConfigs,endpointBindings:t.endpointBindings,persistentStoreDir:Fn.join(t.stateRoot,"store","shared"),...e.runner?{runner:e.runner}:{}}),n=zp(t.currentLockfile),i=zp(r.lockfile),o=await Cn(t.topology.transactionRoot),a=new Map(o.map(d=>[d.relativeRoot,d.bytes])),s=await Jp(Fn.join(t.topology.transactionRoot,"package.json")).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d));s&&a.set(".",s),a.set(t.topology.unitImporterId,t.desiredPackageJson);let c=[...i].map(([d,u])=>{let f=a.get(d);if(!f)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:d,manifestDigest:w(f),preimageDigest:n.get(d)??w(_({absent:!0})),desiredDigest:u}}).sort((d,u)=>d.importerId.localeCompare(u.importerId)),l=O0(r.lockfile,t.sources,t.registryConfigs),p=Gp(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:l,snapshotClosureDigest:w(_(p.map(d=>({identity:d.key,digest:w(d.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:w(_({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:w(_({desiredLockDigest:w(r.lockfile),packageFacts:l.map(({identity:d,integrity:u})=>({identity:d,integrity:u}))}))}}}async function S0(e){try{let t=JSON.parse(await Jp(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==kh(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:P0,completedRequests:Object.freeze([])};throw t}}function Ah(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=Ha(JSON.parse(await Jp(Fn.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=[...zp(r.currentLockfile)].filter(([u])=>u!==r.topology.unitImporterId).map(([u,f])=>({importerId:u,preimageDigest:f,desiredDigest:f})).sort((u,f)=>u.importerId.localeCompare(f.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=Fi({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:w(r.currentLockfile),desiredPackageJsonDigest:w(r.desiredPackageJson),sources:r.sources.map(({registryId:u,packageName:f,version:m,integrity:g})=>({registryId:u,packageName:f,version:m,integrity:g})),preservedImporterDigests:o.map(({importerId:u,preimageDigest:f})=>({importerId:u,preimageDigest:f}))}),l=`pnpm11-node24-${w(_({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:u,revision:f})=>({registryId:u,revision:f})).sort((u,f)=>u.registryId.localeCompare(f.registryId))})).slice(7)}`;await b0(e.stateRoot,{recursive:!0});let p=Fn.join(e.stateRoot,`${l.slice(7)}.lease`),d;try{d=await k0(p,"wx",384)}catch(u){throw u.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):u}try{let u=Fn.join(e.stateRoot,"state.json"),f=await S0(u),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:l}),g=[...new Set([...f.completedRequests,s])].sort(),y=kh(g),h=dg({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:f.revision,desiredRevision:y,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),v=Fn.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await E0(v,`${JSON.stringify({schemaVersion:1,revision:y,completedRequests:g},null,2)}
|
|
230
|
+
`,{mode:384}),await _0(v,u),{evidence:h,workerReleaseId:t,preservedImporterDigests:o}}finally{await d.close(),await A0(p,{force:!0})}}}}import{execFile as D0}from"node:child_process";import{mkdir as Un,mkdtemp as j0,readFile as jt,readdir as C0,readlink as $0,realpath as Yp,rename as T0,rm as Eh,stat as L0,writeFile as rn}from"node:fs/promises";import{tmpdir as x0}from"node:os";import ue from"node:path";import{promisify as V0}from"node:util";var M0=V0(D0);function Rh(e,t){return ue.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Ph(e){return ue.join(e,".dyyto","resolution-worker")}function Kp(e){return ue.join(Ph(e),"build-receipt.json")}async function F0(e){let t=[];async function r(n){for(let i of await C0(n,{withFileTypes:!0}).catch(o=>o.code==="ENOENT"?[]:Promise.reject(o))){let o=ue.join(n,i.name);if(i.isSymbolicLink()){let a=await $0(o);t.push({path:ue.relative(e,o),digest:w(_({symlink:a})),bytes:0})}else if(i.isDirectory())await r(o);else if(i.isFile()){let a=await jt(o);t.push({path:ue.relative(e,o),digest:w(a),bytes:a.byteLength})}}}return await r(e),t.sort((n,i)=>n.path.localeCompare(i.path)),{cacheDigest:w(_(t)),cacheBytes:t.reduce((n,i)=>n+i.bytes,0)}}function Nh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await j0(ue.join(await Yp(x0()),"dyyto-resolution-warmup-")),n=ue.join(r,".home");await Un(n);try{await rn(ue.join(r,"pnpm-workspace.yaml"),await jt(ue.join(e,"pnpm-workspace.yaml"))),await rn(ue.join(r,"pnpm-lock.yaml"),await jt(ue.join(e,"pnpm-lock.yaml")));let i=await jt(ue.join(e,"package.json")).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));i&&await rn(ue.join(r,"package.json"),i);for(let p of await Cn(e)){let d=ue.join(r,...p.relativeRoot.split("/"));await Un(d,{recursive:!0}),await rn(ue.join(d,"package.json"),p.bytes)}let o=ue.join(n,"userconfig.npmrc");await rn(o,`ignore-scripts=true
|
|
231
231
|
strict-peer-dependencies=true
|
|
232
232
|
manage-package-manager-versions=false
|
|
233
|
-
`,{mode:384});let a=ue.join(t,"store","shared"),s=ue.join(t,"cache");await Un(a,{recursive:!0}),await Un(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],
|
|
234
|
-
`;return await rn(s,c,{flag:"wx",mode:384}).catch(async
|
|
235
|
-
`,{mode:384}),await
|
|
236
|
-
`;return await
|
|
233
|
+
`,{mode:384});let a=ue.join(t,"store","shared"),s=ue.join(t,"cache");await Un(a,{recursive:!0}),await Un(s,{recursive:!0});let c=["pnpm@11.21.0","fetch","--frozen-lockfile","--ignore-scripts","--reporter","ndjson"],l=await M0("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 F0(t),commandDigest:w(_({executable:"corepack",args:c,stdoutDigest:w(l.stdout),stderrDigest:w(l.stderr)}))}}finally{await Eh(r,{recursive:!0,force:!0})}}}async function Oh(e){let t=await Yp(e.workspaceRoot),r=e.now??new Date,[n,i]=await Promise.all([jt(ue.join(t,"pnpm-workspace.yaml")),jt(ue.join(t,"pnpm-lock.yaml"))]),o=w(_({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:w(n)})),a=Ep({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:w(n),rootLockDigest:w(i),cacheNamespace:`pnpm11-node24-${o.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=Rh(t,a.planId);await Un(ue.dirname(s),{recursive:!0});let c=`${JSON.stringify(a,null,2)}
|
|
234
|
+
`;return await rn(s,c,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await jt(s,"utf8")!==c)throw l}),a}async function Sh(e){let t=await Yp(e.workspaceRoot),r=Sy(JSON.parse(await jt(Rh(t,e.approvedPlanId),"utf8")));if(r.planId!==e.approvedPlanId||(e.now??new Date).getTime()>Date.parse(r.expiresAt))throw new rt("RESOLUTION_WORKER_BUILD_EXPIRED");let[n,i]=await Promise.all([jt(ue.join(t,"pnpm-workspace.yaml")),jt(ue.join(t,"pnpm-lock.yaml"))]);if(w(n)!==r.workspaceManifestDigest||w(i)!==r.rootLockDigest)throw new rt("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let o=Ph(t),a=await jt(Kp(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(a)return Ha(JSON.parse(a));await Un(o,{recursive:!0});try{let s=await e.warmup({workspaceRoot:t,stateRoot:o,cacheNamespace:r.cacheNamespace});if(s.cacheBytes>r.maximumBytes)throw new rt("RESOLUTION_WORKER_BUILD_LIMIT_EXCEEDED");let c=Rp({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=ue.join(o,`build-receipt.${r.planId.slice(7)}.tmp`);return await rn(l,`${JSON.stringify(c,null,2)}
|
|
235
|
+
`,{mode:384}),await T0(l,Kp(t)),c}catch(s){throw await L0(Kp(t)).then(()=>!0).catch(()=>!1)||await Eh(ue.join(o,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as U0,readFile as nn,realpath as Dh,writeFile as q0}from"node:fs/promises";import on from"node:path";function jh(e,t){return on.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Ch(e){let t=await Dh(e.projectRoot),r=await Yt(t);if(r.mode!=="pnpm-shared-lockfile")throw new Error("RECOVERY_OVERRIDE_INVALID");let n=JSON.parse(await nn(on.join(r.transactionRoot,".dyyto","transaction-lock.json"),"utf8"));if(typeof n.planId!="string")throw new Error("RECOVERY_OVERRIDE_INVALID");await nn(on.join(t,".dyyto","plans",`${n.planId}.json`));let i=JSON.parse(await nn(on.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 p of i.operations){if(p.before.kind!=="present"||!p.before.preimageDigest)continue;let d=await nn(on.join(r.transactionRoot,...p.path.split("/"))).catch(f=>f.code==="ENOENT"?void 0:Promise.reject(f));if(!d)continue;let u=w(d);u!==p.before.digest&&u!==p.desiredDigest&&o.push({path:p.path,currentDigest:u,preimageDigest:p.before.preimageDigest})}let a=e.now??new Date,s=Np({transactionPlanId:n.planId,transactionRootDigest:w(r.transactionRoot),conflicts:o,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+30*6e4).toISOString()}),c=jh(t,s.planId);await U0(on.dirname(c),{recursive:!0});let l=`${JSON.stringify(s,null,2)}
|
|
236
|
+
`;return await q0(c,l,{flag:"wx",mode:384}).catch(async p=>{if(p.code!=="EEXIST"||await nn(c,"utf8")!==l)throw p}),s}async function $h(e){let t=await Dh(e.projectRoot),r=await Yt(t),n=Dy(JSON.parse(await nn(jh(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||w(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let i of n.conflicts){let o=await nn(on.join(r.transactionRoot,...i.path.split("/")));if(w(o)!==i.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return Cl({projectRoot:r.transactionRoot,planId:n.transactionPlanId,now:(e.now??new Date).toISOString(),approvedConflicts:n.conflicts.map(({path:i,currentDigest:o})=>({path:i,currentDigest:o}))})}function us(e){return e.endsWith(`
|
|
237
237
|
`)?e:`${e}
|
|
238
|
-
`}function
|
|
239
|
-
Next: ${e.error.nextStep}`;return{stdout:"",stderr:
|
|
238
|
+
`}function Th(e,t,r){return t==="json"?{stdout:us(JSON.stringify(e)),stderr:""}:{stdout:us(r),stderr:""}}function Lh(e,t){if(t==="json")return{stdout:"",stderr:us(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
|
|
239
|
+
Next: ${e.error.nextStep}`;return{stdout:"",stderr:us(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as B0,readFile as lo,realpath as xh}from"node:fs/promises";import Je from"node:path";var It=class extends Error{constructor(r){super(r);this.code=r;this.name="TopologyMigrationError"}code};async function co(e){let t=await B0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new It("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return lo(e)}}async function Vh(e){let t=Je.dirname(e);for(;t!==Je.parse(t).root;){if(await co(Je.join(t,"pnpm-workspace.yaml"))&&await co(Je.join(t,"pnpm-lock.yaml"))&&await co(Je.join(t,"project-capabilities.json")))return t;t=Je.dirname(t)}throw new It("WORKSPACE_TOPOLOGY_OWNER_MISSING")}function z0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function Mh(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(`
|
|
240
240
|
`)?"":`
|
|
241
241
|
`}verifyDepsBeforeRun: ${i}
|
|
242
|
-
`);let o=n.split(/\r?\n/u),a=[],s=!1;for(let
|
|
242
|
+
`);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(p=>p.trim()===l));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
|
|
243
243
|
`)?"":`
|
|
244
244
|
`}allowBuilds:
|
|
245
|
-
${c.map(
|
|
245
|
+
${c.map(l=>` ${l}`).join(`
|
|
246
246
|
`)}
|
|
247
|
-
`;else{let
|
|
247
|
+
`;else{let l=r.split(/\r?\n/u),d=l.findIndex(u=>/^allowBuilds:\s*$/u.test(u))+1;for(;d<l.length&&(!l[d].trim()||/^\s/u.test(l[d]));)d+=1;l.splice(d,0,...c.map(u=>` ${u}`)),r=l.join(`
|
|
248
248
|
`)}return Buffer.from(r.endsWith(`
|
|
249
249
|
`)?r:`${r}
|
|
250
|
-
`)}async function
|
|
251
|
-
`);continue}r=i}catch{
|
|
252
|
-
`);continue}let n=await
|
|
253
|
-
`)}}import{createHash as
|
|
250
|
+
`)}async function Fh(e){let t=await xh(Je.resolve(e.projectRoot)),r=await Vh(t),n=Je.relative(r,t).split(Je.sep).join("/");if(!n||n.startsWith("../"))throw new It("WORKSPACE_TOPOLOGY_OWNER_MISSING");let i=await co(Je.join(t,"pnpm-lock.yaml")),o=await co(Je.join(t,"pnpm-workspace.yaml"));if(!i&&!o)throw new It("WORKSPACE_TOPOLOGY_MIGRATION_REQUIRED");let a=await lo(Je.join(r,"pnpm-lock.yaml")),s=await lo(Je.join(r,"pnpm-workspace.yaml"));if(!z0(a.toString("utf8"),n))throw new It("WORKSPACE_TOPOLOGY_IMPORTER_MISSING");if(o&&!/^packages:\s*\[\]/mu.test(o.toString("utf8")))throw new It("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");let c=o?Mh(s,o):s,l=[...w(c)!==w(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:w(s),desiredDigest:w(c)}]:[],...i?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:w(i)}]:[],...o?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:w(o)}]:[]],p=e.generatedAt??new Date().toISOString(),d=e.expiresAt??new Date(Date.parse(p)+30*6e4).toISOString(),u=Ne({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:w("foundation.workspace-topology-migration@1.0.0"),assets:[],verifiers:[]},changes:l,observedAssets:l.map(m=>({path:m.path,exists:!0,digest:m.baseDigest})),generatedAt:p,expiresAt:d});return{plan:await Kt({projectRoot:t,transactionRoot:r,plan:u,now:p}),transactionRoot:r}}async function Uh(e){let t=await xh(Je.resolve(e.projectRoot)),r=await Vh(t),n=await zr({projectRoot:t,planId:e.approvedPlanId});if(n.capability.capabilityId!=="foundation.workspace-topology-migration"||n.state!=="reviewable")throw new It("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 lo(Je.join(t,"pnpm-workspace.yaml")),l=await lo(Je.join(r,"pnpm-workspace.yaml")),p=Mh(l,c);if(w(p)!==o.desiredDigest)throw new It("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");i.set("pnpm-workspace.yaml",p)}let a=await mr({projectRoot:r,plan:n,approvedPlanId:e.approvedPlanId,desiredContents:i,now:e.now??new Date().toISOString()}),s=await gr(a);return{planId:n.planId,transactionRoot:r,transaction:s}}import{createInterface as G0}from"node:readline";import fs 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 Hp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ms(e,t){return{jsonrpc:"2.0",id:e,result:t}}function po(e,t,r){return{jsonrpc:"2.0",id:e,error:{code:t,message:r}}}async function W0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return ms(r,{protocolVersion:"2025-06-18",capabilities:{tools:{listChanged:!1}},serverInfo:{name:"dyyto-catalog",version:zn},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 ms(r,{tools:J0});if(e.method!=="tools/call")return po(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Hp(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Hp(e.params.arguments))return po(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 es({...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 ts({ref:n.ref,...t===void 0?{}:{roots:t}})}else return po(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return ms(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 ms(r,{isError:!0,content:[{type:"text",text:o}]})}}async function qh(){let e=G0({input:fs.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(!Hp(i)||i.jsonrpc!=="2.0"||typeof i.method!="string"){fs.stdout.write(`${JSON.stringify(po(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
|
|
251
|
+
`);continue}r=i}catch{fs.stdout.write(`${JSON.stringify(po(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
|
|
252
|
+
`);continue}let n=await W0(r);n!==null&&fs.stdout.write(`${JSON.stringify(n)}
|
|
253
|
+
`)}}import{createHash as K0}from"node:crypto";import{spawnSync as Y0}from"node:child_process";import{chmod as H0,lstat as Z0,mkdir as X0,readdir as Xp,readFile as Ut,realpath as Bh,rename as Q0,unlink as eO,writeFile as tO}from"node:fs/promises";import B from"node:path";var uo="1.1.0",Ft=Object.freeze({"@aipt/cli":"0.1.48","@aipt/idp-cli":"0.1.8","@aipt/idp-deploy":"0.1.14"}),zh=Object.entries(Ft).map(([e,t])=>`${e}@${t}`),Qp="<!-- dyyto:agent-policy:start -->",fo="<!-- dyyto:agent-policy:end -->",We=class extends Error{constructor(r,n){super(n);this.code=r}code},Pe=e=>`sha256:${K0("sha256").update(e).digest("hex")}`,an=e=>Array.isArray(e)?`[${e.map(an).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)}:${an(r)}`).join(",")}}`:JSON.stringify(e),gs=`${Qp}
|
|
254
254
|
## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
|
|
255
255
|
|
|
256
256
|
\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
|
|
@@ -260,16 +260,16 @@ ${c.map(p=>` ${p}`).join(`
|
|
|
260
260
|
- \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
|
|
261
261
|
- \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
|
|
262
262
|
- \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
|
|
263
|
-
${fo}`;function
|
|
263
|
+
${fo}`;function rO(e,t){let r=`${t}
|
|
264
264
|
|
|
265
|
-
${
|
|
266
|
-
`,n=e.indexOf(
|
|
265
|
+
${gs}
|
|
266
|
+
`,n=e.indexOf(Qp),i=e.indexOf(fo);if(n<0&&i<0)return e.length===0?r:`${e.trimEnd()}
|
|
267
267
|
|
|
268
|
-
${
|
|
269
|
-
`;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)}${
|
|
268
|
+
${gs}
|
|
269
|
+
`;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)}${gs}${e.slice(i+fo.length)}`}function nO(e){let t=e.indexOf(Qp),r=e.indexOf(fo);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+fo.length)}`.trim();return n===""||/^# (?:Agent Instructions|Claude Code Instructions|Antigravity Agent Rules)\s*$/u.test(n)||n.startsWith(`---
|
|
270
270
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
|
|
271
271
|
name: dyyto-engineering`)?null:`${n}
|
|
272
|
-
`}var
|
|
272
|
+
`}var Zp=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
|
|
273
273
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
|
|
274
274
|
alwaysApply: true
|
|
275
275
|
---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
|
|
@@ -278,11 +278,11 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
278
278
|
---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
|
|
279
279
|
name: dyyto-engineering
|
|
280
280
|
description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
|
|
281
|
-
---`]];async function
|
|
281
|
+
---`]];async function ed(e){if(!B.isAbsolute(e))throw new We("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await Bh(e),r=await Z0(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 vt(e){return Ut(e,"utf8").catch(t=>t.code==="ENOENT"?"":Promise.reject(t))}async function ys(e,t){await X0(B.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await tO(r,t,{mode:384,flag:"wx"}),await Q0(r,e),await H0(e,e.includes(`${B.sep}.dyyto${B.sep}hooks${B.sep}`)?493:e.endsWith(".json")?384:420)}async function iO(e){let t=new Set,r=async n=>{for(let i of await Xp(n,{withFileTypes:!0}).catch(()=>[])){if(["node_modules","dist",".next","coverage",".dyyto"].includes(i.name))continue;let o=B.join(n,i.name);if(i.isDirectory()&&!i.isSymbolicLink())await r(o);else if(i.isFile()&&/\.(?:[cm]?[jt]sx?)$/u.test(i.name)&&!/\.(?:test|spec)\.[cm]?[jt]sx?$/u.test(i.name)){let a=await Ut(o,"utf8");for(let s of a.matchAll(/\bprocess\.env\.([A-Z][A-Z0-9_]*)\b/gu))t.add(s[1]);for(let s of a.matchAll(/\bprocess\.env\[\s*["']([A-Z][A-Z0-9_]*)["']\s*\]/gu))t.add(s[1])}}};for(let n of["src","app"])await r(B.join(e,n));return[...t].sort()}function Gh(){return[{id:"engineering-workflow",package:"@aipt/cli",version:Ft["@aipt/cli"],path:"docs/engineering-workflow.md",contentDigest:"sha256:2f3072966d33b97b69c528b9db8ecb0dee0b6d1a36e2841f15b535ec2c802abb"},{id:"vibe-coding-guide",package:"@aipt/cli",version:Ft["@aipt/cli"],path:"docs/vibe-coding-guide.md",contentDigest:"sha256:ee1d96ad016097069d0b6b16699832ca4a173725d2133522cce82b1b02802614"},{id:"toolchain-troubleshooting",package:"@aipt/cli",version:Ft["@aipt/cli"],path:"docs/troubleshooting.md",contentDigest:"sha256:2040de770d2c2bd81eea709185e913afd6d6cf4c78f1e30c82e6bcb42b066de9"},{id:"idp-integration",package:"@aipt/idp-cli",version:Ft["@aipt/idp-cli"],path:"docs/integration.md",contentDigest:"sha256:5a69f99fd3dc6eee0c8d7af9663b1f1e0984aced240bf008c65418b478e2a65a"},{id:"local-deployment",package:"@aipt/idp-deploy",version:Ft["@aipt/idp-deploy"],path:"docs/local-deployment.md",contentDigest:"sha256:d6aec46bb077edf239a9708ae7852c6679d6b6ae5f1f810ba7fed5aadb8cf90e"},{id:"application-config-workspace",package:"@aipt/idp-deploy",version:Ft["@aipt/idp-deploy"],path:"docs/application-config-workspace.md",contentDigest:"sha256:9d0c317ae844cef0ac59190f93c512076a24a5ffec0d86a5afa50608cebaaae6"},{id:"idpctl-troubleshooting",package:"@aipt/idp-deploy",version:Ft["@aipt/idp-deploy"],path:"docs/troubleshooting.md",contentDigest:"sha256:db2f18eb19fb98e81edf6ea2789fcd72c5158d733a7e93b9fe9f1c34c4632d10"}].map(e=>({...e,referenceDigest:Pe(an(e))}))}async function Jh(e){let t=await ed(e),r=[];for(let[g,y]of Zp){let h=await vt(B.join(t,g)),v=rO(h,y);r.push({path:g,preimageDigest:Pe(h),desired:v,desiredDigest:Pe(v)})}let n=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]),i=await vt(B.join(t,"project-capabilities.json")).then(g=>g?JSON.parse(g):null),o=[];if(i?.profile?.id==="workspace-root")for(let g of["apps","services"])for(let y of await Xp(B.join(t,g),{withFileTypes:!0}).catch(()=>[]))y.isDirectory()&&!y.isSymbolicLink()&&o.push(B.join(t,g,y.name));else o.push(t);for(let g of o.sort()){let y=await vt(B.join(g,"project-capabilities.json")),h=await vt(B.join(g,".env.example"));if(!y||!h)continue;let v=JSON.parse(y);if(!n.has(v?.profile?.id))continue;let b=new Set([...h.matchAll(/^([A-Z][A-Z0-9_]*)=/gmu)].map(C=>C[1])),E=(await iO(g)).filter(C=>!b.has(C));if(E.length)throw new We("ENVIRONMENT_EXAMPLE_INCOMPLETE",`${B.relative(t,g)||"."} \u7684.env.example\u7F3A\u5C11\u4EE3\u7801\u76F4\u63A5\u6D88\u8D39\u7684\u53D8\u91CF\uFF1A${E.join("\u3001")}`);let I=`${JSON.stringify(Ag({manifest:v,environmentExample:h}),null,2)}
|
|
282
282
|
`,A=B.relative(t,B.join(g,"config","application-config.json")).split(B.sep).join("/"),O=await vt(B.join(t,A));r.push({path:A,preimageDigest:Pe(O),desired:I,desiredDigest:Pe(I)})}let a=`${JSON.stringify({schemaVersion:1,kind:"DyytoToolchainLock",packageManager:"pnpm",tools:Ft},null,2)}
|
|
283
|
-
`,s=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:uo,digest:Pe(
|
|
284
|
-
`,c=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:
|
|
285
|
-
`;for(let[g,y]of[[".dyyto/toolchain.lock.json",a],[".dyyto/agent-policy.lock.json",s],[".dyyto/documentation.lock.json",c]]){let
|
|
283
|
+
`,s=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:uo,digest:Pe(gs)},adapters:Zp.map(([g])=>g)},null,2)}
|
|
284
|
+
`,c=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:Gh()},null,2)}
|
|
285
|
+
`;for(let[g,y]of[[".dyyto/toolchain.lock.json",a],[".dyyto/agent-policy.lock.json",s],[".dyyto/documentation.lock.json",c]]){let h=await vt(B.join(t,g));r.push({path:g,preimageDigest:Pe(h),desired:y,desiredDigest:Pe(y)})}let l={".dyyto/hooks/post-checkout":`#!/bin/sh
|
|
286
286
|
# Dyyto\u8584Hook\uFF1A\u53EA\u8BFB\u5237\u65B0\uFF0C\u4E0D\u4FEE\u6539\u53D7\u7248\u672C\u63A7\u5236\u6587\u4EF6\u3002
|
|
287
287
|
dyyto context resolve --project "$(git rev-parse --show-toplevel)" >/dev/null || printf '%s\\n' 'Dyyto\uFF1A\u5F53\u524D\u5206\u652F\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u672A\u5C31\u7EEA\uFF0C\u8BF7\u8FD0\u884C idp-setup bootstrap\u3002' >&2
|
|
288
288
|
exit 0
|
|
@@ -293,9 +293,9 @@ exit 0
|
|
|
293
293
|
exec dyyto dev verify --project "$(git rev-parse --show-toplevel)"
|
|
294
294
|
`,".dyyto/hooks/pre-push":`#!/bin/sh
|
|
295
295
|
exec dyyto dev verify --project "$(git rev-parse --show-toplevel)"
|
|
296
|
-
`};for(let[g,y]of Object.entries(
|
|
297
|
-
`;if(
|
|
298
|
-
`),{plan:a,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function
|
|
296
|
+
`};for(let[g,y]of Object.entries(l)){let h=await vt(B.join(t,g));r.push({path:g,preimageDigest:Pe(h),desired:y,desiredDigest:Pe(y)})}let p={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:uo,files:r,createdAt:new Date().toISOString()},d={...p,planId:Pe(an(p))},u=B.join(t,".dyyto/plans/bootstrap",`${d.planId.slice(7)}.json`),f=await vt(u),m=`${JSON.stringify(d,null,2)}
|
|
297
|
+
`;if(f&&f!==m)throw new We("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return f||await ys(u,m),{plan:d,planFile:u,changed:r.filter(g=>g.preimageDigest!==g.desiredDigest).map(g=>g.path)}}async function Wh(e){let t=await ed(e),r=[];for(let[c]of Zp){let l=await vt(B.join(t,c)),p=nO(l);r.push({path:c,preimageDigest:Pe(l),desired:p,desiredDigest:Pe(p??"")})}let n=".dyyto/agent-policy.lock.json",i=await vt(B.join(t,n));r.push({path:n,preimageDigest:Pe(i),desired:null,desiredDigest:Pe("")});let o={schemaVersion:1,kind:"DyytoAgentRemovalPlan",projectRoot:t,policyVersion:uo,files:r,createdAt:new Date().toISOString()},a={...o,planId:Pe(an(o))},s=B.join(t,".dyyto/plans/bootstrap",`${a.planId.slice(7)}.json`);return await ys(s,`${JSON.stringify(a,null,2)}
|
|
298
|
+
`),{plan:a,planFile:s,changed:r.filter(c=>c.preimageDigest!==c.desiredDigest).map(c=>c.path)}}async function td(e,t){if(!B.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 Ut(await Bh(e),"utf8")),{planId:n,...i}=r;if(n!==t||Pe(an(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(Pe(await vt(B.join(r.projectRoot,a.path)))!==a.preimageDigest)throw new We("BOOTSTRAP_PREIMAGE_CHANGED",`${a.path}\u5728Plan\u540E\u5DF2\u88AB\u4FEE\u6539\u3002`);let o=B.join(r.projectRoot,".dyyto/preimages/bootstrap",n.slice(7));for(let a of r.files){let s=B.join(r.projectRoot,a.path),c=await vt(s);c&&c!==a.desired&&await ys(B.join(o,a.path),c),a.desired===null?c&&await eO(s):c!==a.desired&&await ys(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 oO(e){let t=[],r=["packages","apps","services"];for(let n of r){let i=B.join(e,n);try{let o=await Xp(i,{withFileTypes:!0});for(let a of o){if(!a.isDirectory())continue;let s=B.join(i,a.name,"package.json");try{let c=JSON.parse(await Ut(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 mo(e){let t=await ed(e),r={tools:Ft};try{r=JSON.parse(await Ut(B.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:Gh()};try{n=JSON.parse(await Ut(B.join(t,".dyyto/documentation.lock.json"),"utf8"))}catch{}let i;try{i=JSON.parse(await Ut(B.join(t,"project-capabilities.json"),"utf8"))}catch{try{i=JSON.parse(await Ut(B.join(t,".dyyto/project-capabilities.json"),"utf8"))}catch{}}let o=await oO(t),a=m=>{let g=Y0("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"]),p=await Ut(B.join(t,".dyyto/agent-policy.lock.json"),"utf8").then(m=>JSON.parse(m)).catch(()=>null),d=await Ut(B.join(t,".dyyto/documentation.lock.json"),"utf8").then(m=>JSON.parse(m)).catch(()=>null),u=p?.policy?.version===uo&&Array.isArray(d?.documents)?"current":p===null&&d===null?"not-bootstrapped":"drifted",f={schemaVersion:1,kind:"DyytoContextBundle",projectRoot:t,repository:{root:l,branch:s,commit:c},bootstrap:{status:u,policyVersion:p?.policy?.version??null,expectedPolicyVersion:uo},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{...f,contextDigest:Pe(an(f))}}var Kh=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
|
|
299
299
|
|
|
300
300
|
\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
|
|
301
301
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
@@ -316,17 +316,17 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
316
316
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
317
317
|
|
|
318
318
|
\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
|
|
319
|
-
`})[e];import{createHash as
|
|
320
|
-
`)),
|
|
321
|
-
`)),s}import{createHash as
|
|
322
|
-
`,{flag:"wx",mode:384}),await
|
|
319
|
+
`})[e];import{createHash as Yh}from"node:crypto";import{execFile as aO}from"node:child_process";import{chmod as sO,mkdir as Hh,open as cO,readFile as kr,realpath as ws,rename as lO,rm as pO,stat as dO}from"node:fs/promises";import ve from"node:path";import{promisify as uO}from"node:util";var id=uO(aO),sn=e=>`sha256:${Yh("sha256").update(e).digest("hex")}`,Zh=e=>`sha512-${Yh("sha512").update(e).digest("base64")}`,fO=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,_r=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 _r(e,t,r)};function mO(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 gO(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 rd(e,t){ve.isAbsolute(e)||Q("PACKAGE_PUBLISH_CONFIG_INVALID",`${t}\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002`);let r=await ws(e).catch(()=>Q("PACKAGE_PUBLISH_CONFIG_MISSING",`${t}\u4E0D\u5B58\u5728\u3002`)),n=await dO(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 od(e,t){let r=process.env.IDP_CONFIG_DIR;(!r||!ve.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 ws(r).catch(()=>Q("PACKAGE_PUBLISH_CONFIG_MISSING","IDP_CONFIG_DIR\u4E0D\u5B58\u5728\u3002"));if(e==="public"){let d=await rd(ve.join(n,"secrets/npm-public/npmrc"),"\u516C\u5171npmrc");return{target:e,registry:"https://registry.npmjs.org/",userConfig:d}}let i=ve.join(n,"components/dyyto"),o=await rd(ve.join(i,".env"),"Dyyto\u7EC4\u4EF6.env"),a=mO(await kr(o,"utf8")).get("DYYTO_NPMRC_FILE");(!a||ve.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 rd(ve.resolve(i,a),"\u79C1\u6709npmrc");ve.relative(i,s).startsWith("..")&&Q("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u79C1\u6709npmrc\u8D8A\u8FC7Dyyto\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u3002");let c=gO(await kr(s,"utf8"),t);c||Q("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709npmrc\u7F3A\u5C11\u5F53\u524D\u5305scope\u7684Registry Binding\u3002");let l=new URL(c),p=new Set(["localhost","127.0.0.1","::1"]).has(l.hostname);return l.protocol!=="https:"&&!(l.protocol==="http:"&&p)&&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 Xh(e,t){let r={...process.env,NPM_CONFIG_USERCONFIG:e,npm_config_userconfig:e};return delete r.NPM_TOKEN,delete r.npm_token,delete r.NPM_CONFIG_REGISTRY,delete r.npm_config_registry,t&&(r.NPM_CONFIG_REGISTRY=t),r}async function nd(e,t){await Hh(ve.dirname(e),{recursive:!0,mode:448}),await sO(ve.dirname(e),448);let r=await kr(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 cO(n,"wx",384);try{await i.writeFile(t),await i.sync()}finally{await i.close()}await lO(n,e)}function yO(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 Qh(e){let t=await ws(ve.resolve(e.packageRoot)).catch(()=>Q("PACKAGE_MANIFEST_NOT_FOUND","Package\u76EE\u5F55\u4E0D\u5B58\u5728\u3002")),r=await kr(ve.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"||!fO.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=yO(e.target);await Promise.all(i.map(m=>od(m,n.name)));let o=ve.join(t,".dyyto/package-publish-artifacts");await Hh(o,{recursive:!0,mode:448});let a;try{a=JSON.parse((await id("corepack",["pnpm","pack","--pack-destination",o,"--json"],{cwd:t})).stdout)}catch(m){return Q("PACKAGE_PACK_FAILED",`pnpm pack\u5931\u8D25\uFF1A${String(m?.stderr??m?.message).slice(0,300)}`)}(!a||typeof a.filename!="string")&&Q("PACKAGE_PACK_FAILED","pnpm pack\u6CA1\u6709\u8FD4\u56DE\u5236\u54C1\u6587\u4EF6\u540D\u3002");let s=ve.resolve(a.filename),c=await kr(s),l=sn(c),p=ve.posix.join(".dyyto/package-publish-artifacts",`${l}.tgz`),d=ve.join(t,p);s!==d&&(await nd(d,c),await pO(s,{force:!0}));let u={schemaVersion:2,kind:"PackagePublishPlan",packageName:n.name,version:n.version,packageRoot:t,manifestDigest:sn(r),targets:i,access:e.access??n.publishConfig?.access??"public",tag:e.tag??n.publishConfig?.tag??"latest",tarballDigest:l,integrity:Zh(c),artifactFile:p,filesCount:a.entryCount??a.files?.length??0,unpackedBytes:a.unpackedSize??c.byteLength},f=Object.freeze({...u,planId:sn(JSON.stringify(u))});return await nd(ve.join(t,".dyyto/package-publish-plans",`${f.planId}.json`),Buffer.from(`${JSON.stringify(f,null,2)}
|
|
320
|
+
`)),f}async function ad(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 ws(ve.resolve(e)),n=JSON.parse(await kr(ve.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 sn(JSON.stringify(o))!==t&&Q("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u6458\u8981\u4E0D\u5339\u914D\u3002"),n}async function hs(e,t){try{let r=JSON.parse((await id("corepack",["pnpm","view",`${t.packageName}@${t.version}`,"version","dist.integrity","bin","--json"],{env:Xh(e.userConfig,e.registry)})).stdout);return{exists:!0,integrity:r["dist.integrity"],bin:r.bin}}catch(r){let n=String(r?.stdout??"")+String(r?.stderr??"")+String(r?.message??"");return/ERR_PNPM_PACKAGE_NOT_FOUND|E404|404 Not Found|No match(?:ing version)? found/u.test(n)?{exists:!1}:Q("PACKAGE_PUBLISH_REGISTRY_UNAVAILABLE",`${e.target} Registry\u67E5\u8BE2\u5931\u8D25\uFF1A${n.slice(0,300)}`)}}async function hO(e,t){for(let r=0;r<8;r+=1){let n=await hs(e,t);if(n.exists&&n.integrity===t.integrity)return n;await new Promise(i=>setTimeout(i,500*(r+1)))}return hs(e,t)}async function ew(e,t){let r=await ad(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 od(n,r.packageName);return{target:n,registry:i.registry,...await hs(i,r)}}))}}async function tw(e){let t=await kr(ve.join(e.packageRoot,"package.json"),"utf8");sn(t)!==e.manifestDigest&&Q("PACKAGE_PUBLISH_PREIMAGE_CHANGED","package.json\u5728Plan\u540E\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0Plan\u3002");let r=ve.resolve(e.packageRoot,e.artifactFile);ve.relative(e.packageRoot,r).startsWith("..")&&Q("PACKAGE_PUBLISH_ARTIFACT_INVALID","\u5236\u54C1\u8D8A\u8FC7Package\u76EE\u5F55\u3002");let n=await kr(r);(sn(n)!==e.tarballDigest||Zh(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 od(c,e.packageName),p=await hs(l,e);if(p.exists){p.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:p.integrity});continue}try{await id("corepack",["pnpm","publish",r,"--no-git-checks","--tag",e.tag,"--access",e.access],{cwd:e.packageRoot,env:Xh(l.userConfig,l.registry)})}catch(u){return Q("PACKAGE_PUBLISH_FAILED",`${c}\u53D1\u5E03\u5931\u8D25\uFF1A${String(u?.stderr??u?.message).slice(0,300)}`)}let d=await hO(l,e);(!d.exists||d.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:d.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:sn(JSON.stringify(a))});return await nd(ve.join(e.packageRoot,".dyyto/package-publish-receipts",`${s.receiptId}.json`),Buffer.from(`${JSON.stringify(s,null,2)}
|
|
321
|
+
`)),s}import{createHash as wO}from"node:crypto";import{mkdir as IO,readFile as qn,realpath as Bn,readdir as vO,rename as bO,writeFile as kO}from"node:fs/promises";import De from"node:path";import{spawnSync as _O}from"node:child_process";var cd=e=>Array.isArray(e)?`[${e.map(cd).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${cd(r)}`).join(",")}}`:JSON.stringify(e),Ke=e=>`sha256:${wO("sha256").update(cd(e)).digest("hex")}`,st=async e=>qn(e,"utf8").catch(t=>t.code==="ENOENT"?null:Promise.reject(t));async function tr(e,t){await IO(De.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await kO(r,`${JSON.stringify(t,null,2)}
|
|
322
|
+
`,{flag:"wx",mode:384}),await bO(r,e)}var sd=(e,t)=>{let r=_O("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 rw(e){let t=await Bn(e.projectRoot),r=await mo(t);if(r.bootstrap.status!=="current")throw new Error("DEVELOPMENT_BOOTSTRAP_NOT_CURRENT");let n=e.source??"direct",i={repository:sd(t,["config","--get","remote.origin.url"]),branch:sd(t,["branch","--show-current"]),commit:sd(t,["rev-parse","HEAD"])},o=Ly({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=xy({intent:o,worktreePath:t,engineeringContextDigest:r.contextDigest,startedAt:new Date().toISOString()}),s=De.join(t,".dyyto/sessions/current.json"),c=await st(s);if(c){let u=JSON.parse(c);if(u.state==="active"&&u.sessionId!==a.sessionId)throw new Error("DEVELOPMENT_SESSION_CONFLICT")}let l={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"start",projectRoot:t,preimageDigest:Ke(c??""),session:a},p={...l,planId:Ke(l)},d=De.join(t,".dyyto/plans/development",`${p.planId.slice(7)}.json`);if(await st(d)||await tr(d,p),e.apply){if(Ke(await st(s)??"")!==p.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await tr(s,a)}return{status:e.apply?"active":"planned",planId:p.planId,planFile:d,session:a}}async function go(e){let t=De.join(await Bn(e),".dyyto/sessions/current.json"),r=await st(t);if(!r)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");return JSON.parse(r)}async function nw(e,t){let r=await Bn(e),n=De.join(r,".dyyto/sessions/current.json"),i=await st(n);if(!i)throw new Error("DEVELOPMENT_SESSION_NOT_FOUND");let o=Vy(JSON.parse(i),new Date().toISOString()),a={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"finish",projectRoot:r,preimageDigest:Ke(i),session:o},s={...a,planId:Ke(a)},c=De.join(r,".dyyto/plans/development",`${s.planId.slice(7)}.json`);if(await st(c)||await tr(c,s),t){if(Ke(await st(n)??"")!==s.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await tr(n,o)}return{status:t?"finished":"planned",planId:s.planId,planFile:c,session:o}}async function iw(e){let t=await Bn(e.projectRoot),r=await go(t),n=JSON.parse(await qn(De.resolve(e.definitionFile),"utf8"));if(r.state!=="active")throw new Error("DEVELOPMENT_SESSION_NOT_ACTIVE");let i=My({sessionId:r.sessionId,feature:n.feature,plan:n.plan,tasks:n.tasks,sourceRevision:r.intent.repository}),o=De.join(t,".specs",r.sessionId.slice(7),"specification.json"),a=await st(o),s={schemaVersion:1,kind:"SpecificationPlan",projectRoot:t,preimageDigest:Ke(a??""),specification:i},c={...s,planId:Ke(s)},l=De.join(t,".dyyto/plans/development",`${c.planId.slice(7)}.json`);if(await st(l)||await tr(l,c),e.apply){if(Ke(await st(o)??"")!==c.preimageDigest)throw new Error("DEVELOPMENT_SPECIFICATION_PREIMAGE_CHANGED");await tr(o,i)}return{status:e.apply?"specified":"planned",planId:c.planId,planFile:l,specificationFile:o,specification:i}}async function AO(e,t){let r=De.join(e,"docs",t),n=[];async function i(o){for(let a of await vO(o,{withFileTypes:!0}).catch(()=>[])){let s=De.join(o,a.name);a.isDirectory()?await i(s):a.isFile()&&a.name.endsWith(".md")&&n.push({path:De.relative(e,s),bytes:await qn(s,"utf8")})}}return await i(r),n.sort((o,a)=>o.path.localeCompare(a.path))}async function ow(e,t){let r=await Bn(e),n=await go(r),i=[];for(let u of["domain","product"])for(let f of await AO(r,u))i.push({id:`${u}.${f.path.slice(`docs/${u}/`.length).replace(/\.md$/u,"").replaceAll("/",".")}`,kind:u,path:f.path,sourceDigest:Ke(f.bytes),appliesTo:{repository:n.intent.repository.repository,branches:[n.intent.repository.branch]},status:"current",supersedes:[]});if(!i.some(u=>u.kind==="domain")||!i.some(u=>u.kind==="product"))throw new Error("DEVELOPMENT_KNOWLEDGE_DOCUMENTS_REQUIRED");let o={schemaVersion:"dyyto.engineering-knowledge-release.v1",releaseId:`knowledge:${n.intent.repository.commit}`,repository:n.intent.repository.repository,branch:n.intent.repository.branch,commit:n.intent.repository.commit,documents:i,verifierDigests:[n.engineeringContextDigest]},a={...o,releaseDigest:Ke(o)},s=De.join(r,".dyyto/knowledge/releases",`${n.intent.repository.commit}.json`),c=await st(s),l={schemaVersion:1,kind:"KnowledgeReleasePlan",projectRoot:r,preimageDigest:Ke(c??""),release:a},p={...l,planId:Ke(l)},d=De.join(r,".dyyto/plans/development",`${p.planId.slice(7)}.json`);if(await st(d)||await tr(d,p),t){if(Ke(await st(s)??"")!==p.preimageDigest)throw new Error("DEVELOPMENT_KNOWLEDGE_PREIMAGE_CHANGED");await tr(s,a),await tr(De.join(r,".dyyto/knowledge/current.json"),a)}return{status:t?"released":"planned",planId:p.planId,planFile:d,releaseFile:s,release:a}}async function aw(e){let t=await Bn(e),r=await go(t),n=De.join(t,".specs",r.sessionId.slice(7),"specification.json"),i=De.join(t,".dyyto/knowledge/current.json"),o=JSON.parse(await qn(n,"utf8")),a=JSON.parse(await qn(i,"utf8"));if(a.repository!==r.intent.repository.repository||a.branch!==r.intent.repository.branch||a.commit!==r.intent.repository.commit)throw new Error("DEVELOPMENT_KNOWLEDGE_REVISION_MISMATCH");let s={};for(let p of a.documents)s[p.path]=Ke(await qn(De.join(t,p.path),"utf8"));let c=Fy({repository:r.intent.repository,documents:a.documents,currentSourceDigests:s}),l=Uy({session:r,specification:o,knowledge:c});return{schemaVersion:1,kind:"DevelopmentVerification",status:"verified",sessionId:r.sessionId,specificationDigest:o.specificationDigest,knowledgeReleaseDigest:a.releaseDigest,agentContext:l,verificationDigest:Ke({session:r.sessionDigest,specification:o.specificationDigest,knowledge:a.releaseDigest,context:l.contextDigest})}}function _e(e){e.stdout.length>0&&ye.stdout.write(e.stdout),e.stderr.length>0&&ye.stderr.write(e.stderr)}async function PO(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),i=e[n+1],o=e.flatMap((d,u)=>d==="--artifact-fallback-bundle"&&e[u+1]!==void 0?[e[u+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(d=>!/^sha256:[a-f0-9]{64}$/u.test(d))||!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 ao(Fe.resolve(r,".dyyto","package-artifacts",i)),p=await Promise.all(o.map(d=>ao(Fe.resolve(r,".dyyto","package-artifacts",d))));if(l.bundle.bundleId!==i)throw new br("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:bh({bundle:l.bundle,fallbackBundles:p.map(d=>d.bundle),origin:`http://127.0.0.1:${s}/`,resolvedAt:"2026-08-21T00:00:00.000Z",expiresAt:"2099-12-31T23:59:59.000Z"}),resolutionWorkerProvider:Ah({stateRoot:Fe.resolve(r,".dyyto","resolution-worker"),engine:_h()}),packageStoreRoot:Fe.resolve(r,".dyyto","resolution-worker","store")}}async function Dx(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=Fe.resolve(i<0?ye.cwd():e[i+1]??""),a;if(n==="show")a=await go(o);else if(n==="finish")a=await nw(o,e.includes("--apply"));else if(n==="start"){let s=f=>{let m=e.indexOf(f);return m<0?void 0:e[m+1]},c=s("--title"),l=s("--summary"),p=s("--source"),d=s("--requirement"),u=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 rw({projectRoot:o,title:c,summary:l,...p?{source:p}:{},...d?{requirementId:d}:{},...u?{taskId:u}:{},acceptance:e.flatMap((f,m)=>f==="--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});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`dev-session-${n}`,result:a})}
|
|
323
323
|
`:`${JSON.stringify(a,null,2)}
|
|
324
|
-
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="specify"){let n=e.indexOf("--project"),i=e.indexOf("--input"),o=
|
|
325
|
-
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="knowledge"&&e[2]==="release"){let n=e.indexOf("--project"),i=
|
|
326
|
-
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="verify"){let n=e.indexOf("--project"),i=
|
|
327
|
-
`,stderr:""});return}if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),i=n<0?ye.cwd():e[n+1];if(!i)throw new We("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let o=await
|
|
324
|
+
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="specify"){let n=e.indexOf("--project"),i=e.indexOf("--input"),o=Fe.resolve(n<0?ye.cwd():e[n+1]??""),a=e[i+1];if(!a)throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev specify \u9700\u8981 --input <JSON>\u3002",exitCode:2});let s=await iw({projectRoot:o,definitionFile:a,apply:e.includes("--apply")});_e({stdout:`${JSON.stringify({schemaVersion:1,ok:!0,command:"dev-specify",result:s})}
|
|
325
|
+
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="knowledge"&&e[2]==="release"){let n=e.indexOf("--project"),i=Fe.resolve(n<0?ye.cwd():e[n+1]??""),o=await ow(i,e.includes("--apply"));_e({stdout:`${JSON.stringify({schemaVersion:1,ok:!0,command:"dev-knowledge-release",result:o})}
|
|
326
|
+
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="verify"){let n=e.indexOf("--project"),i=Fe.resolve(n<0?ye.cwd():e[n+1]??""),o=await aw(i);_e({stdout:`${JSON.stringify({schemaVersion:1,ok:!0,command:"dev-verify",result:o})}
|
|
327
|
+
`,stderr:""});return}if(e[0]==="agents"&&e[1]==="remove"){let n=e.indexOf("--project"),i=n<0?ye.cwd():e[n+1];if(!i)throw new We("BOOTSTRAP_PROJECT_INVALID","\u7F3A\u5C11\u9879\u76EE\u76EE\u5F55\u3002");let o=await Wh(Fe.resolve(i)),a=e.includes("--apply")?await td(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"agents-remove",result:a})}
|
|
328
328
|
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${o.plan.planId}
|
|
329
|
-
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?ye.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
|
|
329
|
+
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?ye.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 Jh(Fe.resolve(i)),a=e.includes("--apply");if(a&&!e.includes("--skip-tool-install")){let c=ye.env.PNPM_HOME;if(!c||!Fe.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=EO("corepack",["pnpm","add","--global","--global-bin-dir",c,...zh],{encoding:"utf8",shell:!1,env:ye.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 td(o.planFile,o.plan.planId):{status:"planned",planId:o.plan.planId,planFile:o.planFile,changed:o.changed};_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:a?"bootstrap-apply":"bootstrap-plan",result:s})}
|
|
330
330
|
`:a?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
331
331
|
Plan\uFF1A${o.plan.planId}
|
|
332
332
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
@@ -335,7 +335,7 @@ Next\uFF1Adyyto context --project ${i}
|
|
|
335
335
|
\u6587\u4EF6\uFF1A${o.planFile}
|
|
336
336
|
\u53D8\u66F4\uFF1A${o.changed.join("\u3001")||"\u65E0"}
|
|
337
337
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
338
|
-
`,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?ye.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 mo(
|
|
338
|
+
`,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?ye.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 mo(Fe.resolve(i));_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context-resolve",result:o})}
|
|
339
339
|
`:`\u4E0A\u4E0B\u6587\uFF1A${o.contextDigest}
|
|
340
340
|
\u5206\u652F\uFF1A${o.repository.branch??"\u672A\u8BC6\u522B"}
|
|
341
341
|
\u63D0\u4EA4\uFF1A${o.repository.commit??"\u672A\u8BC6\u522B"}
|
|
@@ -350,52 +350,52 @@ ${o.requiredBeforeCoding.map(a=>`- ${a}`).join(`
|
|
|
350
350
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
351
351
|
${o.prohibitions.map(a=>`- ${a}`).join(`
|
|
352
352
|
`)}
|
|
353
|
-
`,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?ye.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=
|
|
353
|
+
`,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?ye.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=Fe.resolve(i),a=await mo(o),c=(await RO(Fe.join(o,"project-capabilities.json"),"utf8").then(b=>JSON.parse(b)).catch(()=>null))?.profile?.id??null,l=c==="workspace-root",p=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]).has(c),u=(await ss(["config","readiness",l?"--workspace":"--project",o,"--check","--json"])).value.result,f=null,m=0;l&&(f=(await ss(["doctor","--workspace",o,"--json"])).value.result,m=f.status==="healthy"?0:4);let g=l?u.summary.total===u.summary.ready:u.state==="ready"||!p&&u.state==="not-declared",y=a.bootstrap.status!=="current"||!g||m!==0?"blocked":c===null?"attention":"ready",h={schemaVersion:1,kind:"DevelopmentReadinessReport",projectRoot:o,status:y,context:a,config:u,doctor:f},v=y==="ready"?0:y==="attention"?3:4;_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"ready",result:h})}
|
|
354
354
|
`:`${y==="ready"?"\u2713":y==="attention"?"!":"\u2717"} \u5F00\u53D1\u5C31\u7EEA\u72B6\u6001\uFF1A${y}
|
|
355
355
|
\u4E0A\u4E0B\u6587\uFF1A${a.contextDigest}
|
|
356
356
|
Bootstrap\uFF1A${a.bootstrap.status}
|
|
357
357
|
\u914D\u7F6E\uFF1A${g?"ready":"blocked"}
|
|
358
358
|
\u5DE5\u7A0B\u68C0\u67E5\uFF1A${m===0?"\u901A\u8FC7":"\u963B\u585E"}
|
|
359
359
|
${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"}
|
|
360
|
-
`,stderr:""}),ye.exitCode=
|
|
361
|
-
`: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 _r("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]?
|
|
360
|
+
`,stderr:""}),ye.exitCode=v;return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),i=e[n+1],o=i?Kh(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"});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"docs-show",result:{id:i,content:o}})}
|
|
361
|
+
`: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 _r("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]?Fe.resolve(i[a+1]):ye.cwd(),c=i.indexOf("--access"),l=c>=0?i[c+1]:void 0,p=i.indexOf("--tag"),d=p>=0?i[p+1]:void 0;if(i.includes("--registry")||i.some(f=>f.startsWith("--registry=")))throw new _r("PACKAGE_PUBLISH_REGISTRY_FORBIDDEN","Registry\u53EA\u80FD\u6765\u81EAIDP_CONFIG_DIR\uFF0C\u7981\u6B62\u547D\u4EE4\u884C\u8986\u76D6\u3002");let u;if(o==="plan"){let f=i.indexOf("--target"),m=f>=0?i[f+1]:"all";u=await Qh({packageRoot:s,target:m,...l?{access:l}:{},...d?{tag:d}:{}})}else{let f=o==="apply"?"--approve":"--plan",m=i.indexOf(f),g=i[m+1];if(!g)throw new _r("PACKAGE_PUBLISH_APPROVAL_INVALID",`${o}\u7F3A\u5C11${f}\u3002`);u=o==="apply"?await tw(await ad(s,g)):await ew(s,g)}_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`package-publish-${o}`,result:u})}
|
|
362
362
|
`:`${o==="plan"?"\u53D1\u5E03Plan\u5DF2\u751F\u6210":o==="apply"?"\u53D1\u5E03Apply\u5DF2\u5B8C\u6210":"\u53D1\u5E03\u72B6\u6001\u5DF2\u68C0\u67E5"}\u3002
|
|
363
|
-
${JSON.stringify(
|
|
364
|
-
`,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
|
|
363
|
+
${JSON.stringify(u,null,2)}
|
|
364
|
+
`,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 qh();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];ye.stdout.write(Qy(await Xy({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 Fh({projectRoot:i});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:o})}
|
|
365
365
|
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${o.plan.planId}
|
|
366
366
|
\u72B6\u6001\uFF1A${o.plan.state}
|
|
367
367
|
Next\uFF1Adyyto topology apply --project ${i} --approve ${o.plan.planId}
|
|
368
|
-
`,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
|
|
368
|
+
`,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 Uh({projectRoot:i,approvedPlanId:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
|
|
369
369
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
370
370
|
Next\uFF1Adyyto topology inspect --project ${i}
|
|
371
|
-
`,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
|
|
371
|
+
`,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 Ch({projectRoot:i});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:o}})}
|
|
372
372
|
`:`Recovery Override Plan\uFF1A${o.planId}
|
|
373
373
|
\u51B2\u7A81\uFF1A${o.conflicts.length}
|
|
374
|
-
`,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
|
|
374
|
+
`,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 $h({projectRoot:i,approvedPlanId:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
|
|
375
375
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
376
|
-
`,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
|
|
376
|
+
`,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 Oh({workspaceRoot:i,maximumBytes:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
|
|
377
377
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
378
378
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
379
379
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
380
|
-
`,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
|
|
380
|
+
`,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 Sh({workspaceRoot:i,approvedPlanId:a,warmup:Nh()});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
|
|
381
381
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
382
382
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
383
|
-
`,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
|
|
383
|
+
`,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 Ih({workspaceRoot:i,packageRoots:o});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:a}})}
|
|
384
384
|
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${a.planId}
|
|
385
385
|
Bundle\uFF1A${a.bundle.bundleId}
|
|
386
386
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
387
387
|
Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${a.planId}
|
|
388
|
-
`,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
|
|
388
|
+
`,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 vh({workspaceRoot:i,approvedPlanId:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
|
|
389
389
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
390
390
|
Channel\uFF1Adevelopment
|
|
391
391
|
Next\uFF1Adyyto artifacts serve --workspace ${i} --bundle ${s.bundleId} --port 4873
|
|
392
|
-
`,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
|
|
393
|
-
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${
|
|
394
|
-
\u4E3B Bundle\uFF1A${
|
|
395
|
-
Fallback Bundles\uFF1A${
|
|
392
|
+
`,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((u,f)=>u==="--fallback-bundle"&&e[f+1]!==void 0?[e[f+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(u=>!/^sha256:[a-f0-9]{64}$/u.test(u))||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 p=await gh({bundleRoot:Fe.resolve(i,".dyyto","package-artifacts",a),fallbackBundleRoots:s.map(u=>Fe.resolve(i,".dyyto","package-artifacts",u)),port:l});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:p.origin,bundleId:p.bundle.bundleId,fallbackBundleIds:p.fallbackBundles.map(u=>u.bundleId),channel:"development"}})}
|
|
393
|
+
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${p.origin}
|
|
394
|
+
\u4E3B Bundle\uFF1A${p.bundle.bundleId}
|
|
395
|
+
Fallback Bundles\uFF1A${p.fallbackBundles.map(u=>u.bundleId).join(", ")||"\u65E0"}
|
|
396
396
|
Channel\uFF1Adevelopment
|
|
397
|
-
`,stderr:""});let d=async()=>{await
|
|
397
|
+
`,stderr:""});let d=async()=>{await p.close(),ye.exit(0)};ye.once("SIGINT",d),ye.once("SIGTERM",d),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 dh({workspaceRoot:i,...a===void 0?{}:{port:a}});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"observe-serve",result:{origin:s.origin}})}
|
|
398
398
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
399
|
-
`,stderr:""});let c=async()=>{await s.close(),ye.exit(0)};ye.once("SIGINT",c),ye.once("SIGTERM",c),await new Promise(()=>{})}let r=await
|
|
400
|
-
Cause: ${
|
|
401
|
-
`)}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 be)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 $)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
|
|
399
|
+
`,stderr:""});let c=async()=>{await s.close(),ye.exit(0)};ye.once("SIGINT",c),ye.once("SIGTERM",c),await new Promise(()=>{})}let r=await ss(e,await PO(e));_e(Th(r.value,r.outputMode,r.human)),r.exitCode!==void 0&&(ye.exitCode=r.exitCode)}catch(r){if(ye.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;ye.stderr.write(`${r.stack??r.message}${s.map(l=>`
|
|
400
|
+
Cause: ${l}`).join("")}
|
|
401
|
+
`)}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 be)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 $)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 Ee)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 Z||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 Ge)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 W)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 br)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 rt)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 Se)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 It)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 _r)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=ld(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}}};_e(Lh(a,t)),ye.exitCode=o?.exitCode??1}}export{Dx as runCommand};
|