@aipt/cli 0.1.38 → 0.1.41
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 +183 -168
- package/dist/application.js +78 -74
- package/dist/chunk.js +5 -2
- package/dist/package-releases/aipt--cli/0.1.39/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.40/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.12/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.13/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.13/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 +1 -1
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
import{a as E,b as nn,c as Fn,d as ip,e as j,f as op,g as ap,h as sp,i as cp,j as lp}from"./chunk.js";var Bn=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var Un=class{};Y._CodeOrName=Un;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var vr=class extends Un{constructor(t){if(super(),!Y.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Y.Name=vr;var at=class extends Un{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof vr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=at;Y.nil=new at("");function dp(e,...t){let r=[e[0]],n=0;for(;n<t.length;)ys(r,t[n]),r.push(e[++n]);return new at(r)}Y._=dp;var gs=new at("+");function pp(e,...t){let r=[qn(e[0])],n=0;for(;n<t.length;)r.push(gs),ys(r,t[n]),r.push(gs,qn(e[++n]));return Xh(r),new at(r)}Y.str=pp;function ys(e,t){t instanceof at?e.push(...t._items):t instanceof vr?e.push(t):e.push(tw(t))}Y.addCodeArg=ys;function Xh(e){let t=1;for(;t<e.length-1;){if(e[t]===gs){let r=Qh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Qh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof vr||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 vr))return`"${e}${t.slice(1)}`}function ew(e,t){return t.emptyStr()?e:e.emptyStr()?t:pp`${e}${t}`}Y.strConcat=ew;function tw(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:qn(Array.isArray(e)?e.join(","):e)}function rw(e){return new at(qn(e))}Y.stringify=rw;function qn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=qn;function nw(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new at(`.${e}`):dp`[${e}]`}Y.getProperty=nw;function iw(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new at(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=iw;function ow(e){return new at(e.toString())}Y.regexpCode=ow});var Is=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.ValueScope=He.ValueScopeName=He.Scope=He.varKinds=He.UsedValueState=void 0;var Ye=Bn(),hs=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},po;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(po||(He.UsedValueState=po={}));He.varKinds={const:new Ye.Name("const"),let:new Ye.Name("let"),var:new Ye.Name("var")};var uo=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Ye.Name?t:this.name(t)}name(t){return new Ye.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}}};He.Scope=uo;var fo=class extends Ye.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Ye._)`.${new Ye.Name(r)}[${n}]`}};He.ValueScopeName=fo;var aw=(0,Ye._)`\n`,ws=class extends uo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?aw:Ye.nil}}get(){return this._scope}name(t){return new fo(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]=[]),d=c.length;return c[d]=r.ref,i.setValue(r,{property:o,itemIndex:d}),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,Ye._)`${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=Ye.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(d=>{if(c.has(d))return;c.set(d,po.Started);let l=r(d);if(l){let p=this.opts.es5?He.varKinds.var:He.varKinds.const;o=(0,Ye._)`${o}${p} ${d} = ${l};${this.opts._n}`}else if(l=i?.(d))o=(0,Ye._)`${o}${l}${this.opts._n}`;else throw new hs(d);c.set(d,po.Completed)})}return o}};He.ValueScope=ws});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Bn(),wt=Is(),Xt=Bn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Xt.Name}});var ho=Is();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return ho.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return ho.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return ho.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return ho.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var Mt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},vs=class extends Mt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?wt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=an(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},mo=class extends Mt{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=an(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return yo(t,this.rhs)}},bs=class extends mo{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ks=class extends Mt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},_s=class extends Mt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},As=class extends Mt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Rs=class extends Mt{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=an(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},zn=class extends Mt{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)||(sw(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>_r(t,r.names),{})}},Ft=class extends zn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Es=class extends zn{},on=class extends Ft{};on.kind="else";var br=class e extends Ft{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new on(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(up(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=an(this.condition,t,r),this}get names(){let t=super.names;return yo(t,this.condition),this.else&&_r(t,this.else.names),t}};br.kind="if";var kr=class extends Ft{};kr.kind="for";var Ps=class extends kr{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=an(this.iteration,t,r),this}get names(){return _r(super.names,this.iteration.names)}},Ns=class extends kr{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?wt.varKinds.var:this.varKind,{name:n,from:i,to:o}=this;return`for(${r} ${n}=${i}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=yo(super.names,this.from);return yo(t,this.to)}},go=class extends kr{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=an(this.iterable,t,r),this}get names(){return _r(super.names,this.iterable.names)}},Gn=class extends Ft{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Gn.kind="func";var Jn=class extends zn{render(t){return"return "+super.render(t)}};Jn.kind="return";var Os=class extends Ft{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&&_r(t,this.catch.names),this.finally&&_r(t,this.finally.names),t}},Wn=class extends Ft{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Wn.kind="catch";var Kn=class extends Ft{render(t){return"finally"+super.render(t)}};Kn.kind="finally";var Ss=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=t,this._scope=new wt.Scope({parent:t}),this._nodes=[new Es]}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 vs(t,o,n)),o}const(t,r,n){return this._def(wt.varKinds.const,t,r,n)}let(t,r,n){return this._def(wt.varKinds.let,t,r,n)}var(t,r,n){return this._def(wt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new mo(t,r,n))}add(t,r){return this._leafNode(new bs(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new Rs(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new br(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 br(t))}else(){return this._elseNode(new on)}endIf(){return this._endBlockNode(br,on)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ps(t),r)}forRange(t,r,n,i,o=this.opts.es5?wt.varKinds.var:wt.varKinds.let){let a=this._scope.toName(t);return this._for(new Ns(o,a,r,n),()=>i(a))}forOf(t,r,n,i=wt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${a}.length`,s=>{this.var(o,(0,z._)`${a}[${s}]`),n(o)})}return this._for(new go("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?wt.varKinds.var:wt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new go("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(kr)}label(t){return this._leafNode(new ks(t))}break(t){return this._leafNode(new _s(t))}return(t){let r=new Jn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Jn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Os;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Wn(o),r(o)}return n&&(this._currNode=i.finally=new Kn,this.code(n)),this._endBlockNode(Wn,Kn)}throw(t){return this._leafNode(new As(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=z.nil,n,i){return this._blockNode(new Gn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Gn)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof br))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=Ss;function _r(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function yo(e,t){return t instanceof z._CodeOrName?_r(e,t.names):e}function an(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((o,a)=>(a instanceof z.Name&&(a=n(a)),a instanceof z._Code?o.push(...a._items):o.push(a),o),[]));function n(o){let a=r[o.str];return a===void 0||t[o.str]!==1?o:(delete t[o.str],a)}function i(o){return o instanceof z._Code&&o._items.some(a=>a instanceof z.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function sw(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function up(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${Ds(e)}`}F.not=up;var cw=fp(F.operators.AND);function lw(...e){return e.reduce(cw)}F.and=lw;var dw=fp(F.operators.OR);function pw(...e){return e.reduce(dw)}F.or=pw;function fp(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${Ds(t)} ${e} ${Ds(r)}`}function Ds(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var ae=x(),uw=Bn();function fw(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=fw;function mw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(yp(e,t),!hp(t,e.self.RULES.all))}U.alwaysValidSchema=mw;function yp(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]||vp(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=yp;function hp(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=hp;function gw(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=gw;function yw({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=yw;function hw(e){return wp(decodeURIComponent(e))}U.unescapeFragment=hw;function ww(e){return encodeURIComponent(Cs(e))}U.escapeFragment=ww;function Cs(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Cs;function wp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=wp;function Iw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=Iw;function mp({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:mp({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} || {}`),$s(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Ip}),items:mp({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 Ip(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,ae._)`{}`);return t!==void 0&&$s(e,r,t),r}U.evaluatedPropsToName=Ip;function $s(e,t,r){Object.keys(r).forEach(n=>e.assign((0,ae._)`${t}${(0,ae.getProperty)(n)}`,!0))}U.setEvaluated=$s;var gp={};function vw(e,t){return e.scopeValue("func",{ref:t,code:gp[t.code]||(gp[t.code]=new uw._Code(t.code))})}U.useFunc=vw;var js;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(js||(U.Type=js={}));function bw(e,t,r){if(e instanceof ae.Name){let n=t===js.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():"/"+Cs(e)}U.getErrorPath=bw;function vp(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=vp});var st=E(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var Ve=x(),kw={data:new Ve.Name("data"),valCxt:new Ve.Name("valCxt"),instancePath:new Ve.Name("instancePath"),parentData:new Ve.Name("parentData"),parentDataProperty:new Ve.Name("parentDataProperty"),rootData:new Ve.Name("rootData"),dynamicAnchors:new Ve.Name("dynamicAnchors"),vErrors:new Ve.Name("vErrors"),errors:new Ve.Name("errors"),this:new Ve.Name("this"),self:new Ve.Name("self"),scope:new Ve.Name("scope"),json:new Ve.Name("json"),jsonPos:new Ve.Name("jsonPos"),jsonLen:new Ve.Name("jsonLen"),jsonPart:new Ve.Name("jsonPart")};Ts.default=kw});var Yn=E(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.extendErrors=Me.resetErrorsCount=Me.reportExtraError=Me.reportError=Me.keyword$DataError=Me.keywordError=void 0;var J=x(),wo=q(),Je=st();Me.keywordError={message:({keyword:e})=>(0,J.str)`must pass "${e}" keyword validation`};Me.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,J.str)`"${e}" keyword must be ${t} ($data)`:(0,J.str)`"${e}" keyword is invalid ($data)`};function _w(e,t=Me.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=_p(e,t,r);n??(a||s)?bp(o,c):kp(i,(0,J._)`[${c}]`)}Me.reportError=_w;function Aw(e,t=Me.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=_p(e,t,r);bp(i,s),o||a||kp(n,Je.default.vErrors)}Me.reportExtraError=Aw;function Rw(e,t){e.assign(Je.default.errors,t),e.if((0,J._)`${Je.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,J._)`${Je.default.vErrors}.length`,t),()=>e.assign(Je.default.vErrors,null)))}Me.resetErrorsCount=Rw;function Ew({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,Je.default.errors,s=>{e.const(a,(0,J._)`${Je.default.vErrors}[${s}]`),e.if((0,J._)`${a}.instancePath === undefined`,()=>e.assign((0,J._)`${a}.instancePath`,(0,J.strConcat)(Je.default.instancePath,o.errorPath))),e.assign((0,J._)`${a}.schemaPath`,(0,J.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,J._)`${a}.schema`,r),e.assign((0,J._)`${a}.data`,n))})}Me.extendErrors=Ew;function bp(e,t){let r=e.const("err",t);e.if((0,J._)`${Je.default.vErrors} === null`,()=>e.assign(Je.default.vErrors,(0,J._)`[${r}]`),(0,J._)`${Je.default.vErrors}.push(${r})`),e.code((0,J._)`${Je.default.errors}++`)}function kp(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,J._)`new ${e.ValidationError}(${t})`):(r.assign((0,J._)`${n}.errors`,t),r.return(!1))}var Ar={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function _p(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,J._)`{}`:Pw(e,t,r)}function Pw(e,t,r={}){let{gen:n,it:i}=e,o=[Nw(i,r),Ow(e,r)];return Sw(e,t,o),n.object(...o)}function Nw({errorPath:e},{instancePath:t}){let r=t?(0,J.str)`${e}${(0,wo.getErrorPath)(t,wo.Type.Str)}`:e;return[Je.default.instancePath,(0,J.strConcat)(Je.default.instancePath,r)]}function Ow({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,J.str)`${t}/${e}`;return r&&(i=(0,J.str)`${i}${(0,wo.getErrorPath)(r,wo.Type.Str)}`),[Ar.schemaPath,i]}function Sw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:d,topSchemaRef:l,schemaPath:p}=s;n.push([Ar.keyword,i],[Ar.params,typeof t=="function"?t(e):t||(0,J._)`{}`]),c.messages&&n.push([Ar.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([Ar.schema,a],[Ar.parentSchema,(0,J._)`${l}${p}`],[Je.default.data,o]),d&&n.push([Ar.propertyName,d])}});var Rp=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.boolOrEmptySchema=sn.topBoolOrEmptySchema=void 0;var Dw=Yn(),jw=x(),Cw=st(),$w={message:"boolean schema is false"};function Tw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Ap(e,!1):typeof r=="object"&&r.$async===!0?t.return(Cw.default.data):(t.assign((0,jw._)`${n}.errors`,null),t.return(!0))}sn.topBoolOrEmptySchema=Tw;function Lw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Ap(e)):r.var(t,!0)}sn.boolOrEmptySchema=Lw;function Ap(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,Dw.reportError)(i,$w,void 0,t)}});var Ls=E(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getRules=cn.isJSONType=void 0;var xw=["string","number","integer","boolean","null","object","array"],Vw=new Set(xw);function Mw(e){return typeof e=="string"&&Vw.has(e)}cn.isJSONType=Mw;function Fw(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}cn.getRules=Fw});var xs=E(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.shouldUseRule=Qt.shouldUseGroup=Qt.schemaHasRulesForType=void 0;function Uw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ep(e,n)}Qt.schemaHasRulesForType=Uw;function Ep(e,t){return t.rules.some(r=>Pp(e,r))}Qt.shouldUseGroup=Ep;function Pp(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Qt.shouldUseRule=Pp});var Hn=E(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.reportTypeError=Fe.checkDataTypes=Fe.checkDataType=Fe.coerceAndCheckDataType=Fe.getJSONTypes=Fe.getSchemaTypes=Fe.DataType=void 0;var qw=Ls(),Bw=xs(),zw=Yn(),V=x(),Np=q(),ln;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ln||(Fe.DataType=ln={}));function Gw(e){let t=Op(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}Fe.getSchemaTypes=Gw;function Op(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(qw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Fe.getJSONTypes=Op;function Jw(e,t){let{gen:r,data:n,opts:i}=e,o=Ww(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Bw.schemaHasRulesForType)(e,t[0]));if(a){let s=Ms(t,n,i.strictNumbers,ln.Wrong);r.if(s,()=>{o.length?Kw(e,t,o):Fs(e)})}return a}Fe.coerceAndCheckDataType=Jw;var Sp=new Set(["string","number","integer","boolean","null"]);function Ww(e,t){return t?e.filter(r=>Sp.has(r)||t==="array"&&r==="array"):[]}function Kw(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(Ms(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let d of r)(Sp.has(d)||d==="array"&&o.coerceTypes==="array")&&c(d);n.else(),Fs(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),Yw(e,s)});function c(d){switch(d){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 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
|
|
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 Yw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function Vs(e,t,r,n=ln.Correct){let i=n===ln.Correct?V.operators.EQ:V.operators.NEQ,o;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":o=(0,V._)`Array.isArray(${t})`;break;case"object":o=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===ln.Correct?o:(0,V.not)(o);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Fe.checkDataType=Vs;function Ms(e,t,r,n){if(e.length===1)return Vs(e[0],t,r,n);let i,o=(0,Np.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,Vs(a,t,r,n));return i}Fe.checkDataTypes=Ms;var Hw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Fs(e){let t=Zw(e);(0,zw.reportError)(t,Hw)}Fe.reportTypeError=Fs;function Zw(e){let{gen:t,data:r,schema:n}=e,i=(0,Np.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var jp=E(Io=>{"use strict";Object.defineProperty(Io,"__esModule",{value:!0});Io.assignDefaults=void 0;var dn=x(),Xw=q();function Qw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Dp(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Dp(e,o,i.default))}Io.assignDefaults=Qw;function Dp(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,dn._)`${o}${(0,dn.getProperty)(t)}`;if(i){(0,Xw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,dn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,dn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,dn._)`${s} = ${(0,dn.stringify)(r)}`)}});var ct=E(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(),Us=q(),er=st(),eI=q();function tI(e,t){let{gen:r,data:n,it:i}=e;r.if(Bs(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,me._)`${t}`},!0),e.error()})}ie.checkReportMissingProp=tI;function rI({gen:e,data:t,it:{opts:r}},n,i){return(0,me.or)(...n.map(o=>(0,me.and)(Bs(e,t,o,r.ownProperties),(0,me._)`${i} = ${o}`)))}ie.checkMissingProp=rI;function nI(e,t){e.setParams({missingProperty:t},!0),e.error()}ie.reportMissingProp=nI;function Cp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,me._)`Object.prototype.hasOwnProperty`})}ie.hasPropFunc=Cp;function qs(e,t,r){return(0,me._)`${Cp(e)}.call(${t}, ${r})`}ie.isOwnProperty=qs;function iI(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} !== undefined`;return n?(0,me._)`${i} && ${qs(e,t,r)}`:i}ie.propertyInData=iI;function Bs(e,t,r,n){let i=(0,me._)`${t}${(0,me.getProperty)(r)} === undefined`;return n?(0,me.or)(i,(0,me.not)(qs(e,t,r))):i}ie.noPropertyInData=Bs;function $p(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ie.allSchemaProperties=$p;function oI(e,t){return $p(t).filter(r=>!(0,Us.alwaysValidSchema)(e,t[r]))}ie.schemaProperties=oI;function aI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,d){let l=d?(0,me._)`${e}, ${t}, ${n}${i}`:t,p=[[er.default.instancePath,(0,me.strConcat)(er.default.instancePath,o)],[er.default.parentData,a.parentData],[er.default.parentDataProperty,a.parentDataProperty],[er.default.rootData,er.default.rootData]];a.opts.dynamicRef&&p.push([er.default.dynamicAnchors,er.default.dynamicAnchors]);let m=(0,me._)`${l}, ${r.object(...p)}`;return c!==me.nil?(0,me._)`${s}.call(${c}, ${m})`:(0,me._)`${s}(${m})`}ie.callValidateCode=aI;var sI=(0,me._)`new RegExp`;function cI({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"?sI:(0,eI.useFunc)(e,i)}(${r}, ${n})`})}ie.usePattern=cI;function lI(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,d=>{e.subschema({keyword:n,dataProp:d,dataPropType:Us.Type.Num},o),t.if((0,me.not)(o),s)})}}ie.validateArray=lI;function dI(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,Us.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,d)=>{let l=e.subschema({keyword:n,schemaProp:d,compositeRule:!0},s);t.assign(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=dI});var xp=E(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.validateKeywordUsage=Dt.validSchemaType=Dt.funcKeywordCode=Dt.macroKeywordCode=void 0;var We=x(),Rr=st(),pI=ct(),uI=Yn();function fI(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=Lp(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let d=r.name("valid");e.subschema({schema:s,schemaPath:We.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},d),e.pass(d,()=>e.error(!0))}Dt.macroKeywordCode=fI;function mI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;yI(c,t);let d=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,l=Lp(n,i,d),p=n.let("valid");e.block$data(p,m),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function m(){if(t.errors===!1)g(),t.modifying&&Tp(e),y(()=>e.error());else{let w=t.async?u():f();t.modifying&&Tp(e),y(()=>gI(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,We._)`await `),A=>n.assign(p,!1).if((0,We._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,We._)`${A}.errors`),()=>n.throw(A))),w}function f(){let w=(0,We._)`${l}.errors`;return n.assign(w,null),g(We.nil),w}function g(w=t.async?(0,We._)`await `:We.nil){let A=c.opts.passContext?Rr.default.this:Rr.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,We._)`${w}${(0,pI.callValidateCode)(e,l,A,b)}`,t.modifying)}function y(w){var A;n.if((0,We.not)((A=t.valid)!==null&&A!==void 0?A:p),w)}}Dt.funcKeywordCode=mI;function Tp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,We._)`${n.parentData}[${n.parentDataProperty}]`))}function gI(e,t){let{gen:r}=e;r.if((0,We._)`Array.isArray(${t})`,()=>{r.assign(Rr.default.vErrors,(0,We._)`${Rr.default.vErrors} === null ? ${t} : ${Rr.default.vErrors}.concat(${t})`).assign(Rr.default.errors,(0,We._)`${Rr.default.vErrors}.length`),(0,uI.extendErrors)(e)},()=>e.error())}function yI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Lp(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,We.stringify)(r)})}function hI(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")}Dt.validSchemaType=hI;function wI({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)}}Dt.validateKeywordUsage=wI});var Mp=E(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.extendSubschemaMode=tr.extendSubschemaData=tr.getSubschema=void 0;var jt=x(),Vp=q();function II(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,jt._)`${e.schemaPath}${(0,jt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,jt._)`${e.schemaPath}${(0,jt.getProperty)(t)}${(0,jt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Vp.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')}tr.getSubschema=II;function vI(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:d,dataPathArr:l,opts:p}=t,m=s.let("data",(0,jt._)`${t.data}${(0,jt.getProperty)(r)}`,!0);c(m),e.errorPath=(0,jt.str)`${d}${(0,Vp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,jt._)`${r}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let d=i instanceof jt.Name?i:s.let("data",i,!0);c(d),a!==void 0&&(e.propertyName=a)}o&&(e.dataTypes=o);function c(d){e.data=d,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,d]}}tr.extendSubschemaData=vI;function bI(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}tr.extendSubschemaMode=bI});var zs=E((DO,Fp)=>{"use strict";Fp.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 qp=E((jO,Up)=>{"use strict";var rr=Up.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};vo(t,n,i,e,"",e)};rr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};rr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};rr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};rr.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 vo(e,t,r,n,i,o,a,s,c,d){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,o,a,s,c,d);for(var l in n){var p=n[l];if(Array.isArray(p)){if(l in rr.arrayKeywords)for(var m=0;m<p.length;m++)vo(e,t,r,p[m],i+"/"+l+"/"+m,o,i,l,n,m)}else if(l in rr.propsKeywords){if(p&&typeof p=="object")for(var u in p)vo(e,t,r,p[u],i+"/"+l+"/"+kI(u),o,i,l,n,u)}else(l in rr.keywords||e.allKeys&&!(l in rr.skipKeywords))&&vo(e,t,r,p,i+"/"+l,o,i,l,n)}r(n,i,o,a,s,c,d)}}function kI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Zn=E(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.getSchemaRefs=Ze.resolveUrl=Ze.normalizeId=Ze._getFullPath=Ze.getFullPath=Ze.inlineRef=void 0;var _I=q(),AI=zs(),RI=qp(),EI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function PI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Gs(e):t?Bp(e)<=t:!1}Ze.inlineRef=PI;var NI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Gs(e){for(let t in e){if(NI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Gs)||typeof r=="object"&&Gs(r))return!0}return!1}function Bp(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!EI.has(r)&&(typeof e[r]=="object"&&(0,_I.eachItem)(e[r],n=>t+=Bp(n)),t===1/0))return 1/0}return t}function zp(e,t="",r){r!==!1&&(t=pn(t));let n=e.parse(t);return Gp(e,n)}Ze.getFullPath=zp;function Gp(e,t){return e.serialize(t).split("#")[0]+"#"}Ze._getFullPath=Gp;var OI=/#\/?$/;function pn(e){return e?e.replace(OI,""):""}Ze.normalizeId=pn;function SI(e,t,r){return r=pn(r),e.resolve(t,r)}Ze.resolveUrl=SI;var DI=/^[a-z_][-a-z0-9._]*$/i;function jI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=pn(e[r]||t),o={"":i},a=zp(n,i,!1),s={},c=new Set;return RI(e,{allKeys:!0},(p,m,u,f)=>{if(f===void 0)return;let g=a+m,y=o[f];typeof p[r]=="string"&&(y=w.call(this,p[r])),A.call(this,p.$anchor),A.call(this,p.$dynamicAnchor),o[m]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=pn(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"?d(p,I.schema,b):b!==pn(g)&&(b[0]==="#"?(d(p,s[b],b),s[b]=p):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!DI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function d(p,m,u){if(m!==void 0&&!AI(p,m))throw l(u)}function l(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Ze.getSchemaRefs=jI});var ei=E(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.getData=nr.KeywordCxt=nr.validateFunctionCode=void 0;var Hp=Rp(),Jp=Hn(),Ws=xs(),bo=Hn(),CI=jp(),Qn=xp(),Js=Mp(),S=x(),L=st(),$I=Zn(),Ut=q(),Xn=Yn();function TI(e){if(Qp(e)&&(eu(e),Xp(e))){VI(e);return}Zp(e,()=>(0,Hp.topBoolOrEmptySchema)(e))}nr.validateFunctionCode=TI;function Zp({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"; ${Wp(r,i)}`),xI(e,i),e.code(o)}):e.func(t,(0,S._)`${L.default.data}, ${LI(i)}`,n.$async,()=>e.code(Wp(r,i)).code(o))}function LI(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 xI(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 VI(e){let{schema:t,opts:r,gen:n}=e;Zp(e,()=>{r.$comment&&t.$comment&&ru(e),BI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&MI(e),tu(e),JI(e)})}function MI(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 Wp(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 FI(e,t){if(Qp(e)&&(eu(e),Xp(e))){UI(e,t);return}(0,Hp.boolOrEmptySchema)(e,t)}function Xp({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 Qp(e){return typeof e.schema!="boolean"}function UI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&ru(e),zI(e),GI(e);let o=n.const("_errs",L.default.errors);tu(e,o),n.var(t,(0,S._)`${o} === ${L.default.errors}`)}function eu(e){(0,Ut.checkUnknownRules)(e),qI(e)}function tu(e,t){if(e.opts.jtd)return Kp(e,[],!1,t);let r=(0,Jp.getSchemaTypes)(e.schema),n=(0,Jp.coerceAndCheckDataType)(e,r);Kp(e,r,!n,t)}function qI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Ut.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function BI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ut.checkStrictMode)(e,"default is ignored in the schema root")}function zI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,$I.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function GI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function ru({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 JI(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&&WI(e),t.return((0,S._)`${L.default.errors} === 0`))}function WI({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 Kp(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:d}=e,{RULES:l}=d;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,Ut.schemaHasRulesButRef)(o,l))){i.block(()=>iu(e,"$ref",l.all.$ref.definition));return}c.jtd||KI(e,t),i.block(()=>{for(let m of l.rules)p(m);p(l.post)});function p(m){(0,Ws.shouldUseGroup)(o,m)&&(m.type?(i.if((0,bo.checkDataType)(m.type,a,c.strictNumbers)),Yp(e,m),t.length===1&&t[0]===m.type&&r&&(i.else(),(0,bo.reportTypeError)(e)),i.endIf()):Yp(e,m),s||i.if((0,S._)`${L.default.errors} === ${n||0}`))}}function Yp(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,CI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Ws.shouldUseRule)(n,o)&&iu(e,o.keyword,o.definition,t.type)})}function KI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(YI(e,t),e.opts.allowUnionTypes||HI(e,t),ZI(e,e.dataTypes))}function YI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{nu(e.dataTypes,r)||Ks(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),QI(e,t)}}function HI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ks(e,"use allowUnionTypes to allow union type keyword")}function ZI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Ws.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>XI(t,a))&&Ks(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function XI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function nu(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function QI(e,t){let r=[];for(let n of e.dataTypes)nu(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ks(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Ut.checkStrictMode)(e,t,e.opts.strictTypes)}var ko=class{constructor(t,r,n){if((0,Qn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Ut.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",ou(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Qn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,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?Xn.reportExtraError:Xn.reportError)(this,this.def.error,r)}$dataError(){(0,Xn.reportError)(this,this.def.$dataError||Xn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Xn.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,bo.checkDataTypes)(c,r,o.opts.strictNumbers,bo.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,Js.getSubschema)(this.it,t);(0,Js.extendSubschemaData)(n,this.it,t),(0,Js.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return FI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Ut.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Ut.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}};nr.KeywordCxt=ko;function iu(e,t,r,n){let i=new ko(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Qn.funcKeywordCode)(i,r):"macro"in r?(0,Qn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Qn.funcKeywordCode)(i,r)}var ev=/^\/(?:[^~]|~0|~1)*$/,tv=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function ou(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!ev.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let d=tv.exec(e);if(!d)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+d[1];if(i=d[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 d of s)d&&(o=(0,S._)`${o}${(0,S.getProperty)((0,Ut.unescapeJsonPointer)(d))}`,a=(0,S._)`${a} && ${o}`);return a;function c(d,l){return`Cannot access ${d} ${l} levels up, current level is ${t}`}}nr.getData=ou});var _o=E(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});var Ys=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Hs.default=Ys});var ti=E(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});var Zs=Zn(),Xs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Zs.resolveUrl)(t,r,n),this.missingSchema=(0,Zs.normalizeId)((0,Zs.getFullPath)(t,this.missingRef))}};Qs.default=Xs});var ri=E(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.resolveSchema=lt.getCompilingSchema=lt.resolveRef=lt.compileSchema=lt.SchemaEnv=void 0;var It=x(),rv=_o(),Er=st(),vt=Zn(),au=q(),nv=ei(),un=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,vt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};lt.SchemaEnv=un;function tc(e){let t=su.call(this,e);if(t)return t;let r=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new It.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:rv.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let d={gen:a,allErrors:this.opts.allErrors,data:Er.default.data,parentData:Er.default.parentData,parentDataProperty:Er.default.parentDataProperty,dataNames:[Er.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,It.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:It.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,nv.validateFunctionCode)(d),a.optimize(this.opts.code.optimize);let p=a.toString();l=`${a.scopeRefs(Er.default.scope)}return ${p}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let u=new Function(`${Er.default.self}`,`${Er.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:f,items:g}=d;u.evaluated={props:f instanceof It.Name?void 0:f,items:g instanceof It.Name?void 0:g,dynamicProps:f instanceof It.Name,dynamicItems:g instanceof It.Name},u.source&&(u.source.evaluated=(0,It.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),p}finally{this._compilations.delete(e)}}lt.compileSchema=tc;function iv(e,t,r){var n;r=(0,vt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=sv.call(this,e,r);if(o===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(o=new un({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=ov.call(this,o)}lt.resolveRef=iv;function ov(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:tc.call(this,e)}function su(e){for(let t of this._compilations)if(av(t,e))return t}lt.getCompilingSchema=su;function av(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function sv(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Ao.call(this,e,t)}function Ao(e,t){let r=this.opts.uriResolver.parse(t),n=(0,vt._getFullPath)(this.opts.uriResolver,r),i=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return ec.call(this,r,e);let o=(0,vt.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=Ao.call(this,e,a);return typeof s?.schema!="object"?void 0:ec.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||tc.call(this,a),o===(0,vt.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,d=s[c];return d&&(i=(0,vt.resolveUrl)(this.opts.uriResolver,i,d)),new un({schema:s,schemaId:c,root:e,baseId:i})}return ec.call(this,r,a)}}lt.resolveSchema=Ao;var cv=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ec(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,au.unescapeFragment)(s)];if(c===void 0)return;r=c;let d=typeof r=="object"&&r[this.opts.schemaId];!cv.has(s)&&d&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,d))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,au.schemaHasRulesButRef)(r,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=Ao.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new un({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var cu=E((VO,lv)=>{lv.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 ic=E((MO,mu)=>{"use strict";var dv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),du=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),rc=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),pu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),pv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function nc(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 uv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function lu(e){return e.length=0,!0}function fv(e,t,r){if(e.length){let n=nc(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function mv(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=fv;for(let c=0;c<e.length;c++){let d=e[c];if(!(d==="["||d==="]"))if(d===":"){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(d==="%"){if(!s(i,n,r))break;s=lu}else{i.push(d);continue}}return i.length&&(s===lu?r.zone=i.join(""):a?n.push(i.join("")):n.push(nc(i))),r.address=n.join(""),r}function uu(e){if(gv(e,":")<2)return{host:e,isIPV6:!1};let t=mv(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 gv(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function yv(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 hv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},wv=/[@/?#:]/g,Iv=/[@/?#]/g;function fu(e,t){let r=t?Iv:wv;return r.lastIndex=0,e.replace(r,n=>hv[n])}function vv(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(rc(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&pu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function bv(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(rc(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&pu(o)?t+=o:t+="%"+i,r+=2;continue}}pv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function kv(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(rc(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function _v(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!du(r)){let n=uu(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=fu(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}mu.exports={nonSimpleDomain:uv,recomposeAuthority:_v,reescapeHostDelimiters:fu,normalizePercentEncoding:vv,normalizePathEncoding:bv,escapePreservingEscapes:kv,removeDotSegments:yv,isIPv4:du,isUUID:dv,normalizeIPv6:uu,stringArrayToHexStripped:nc}});var Iu=E((FO,wu)=>{"use strict";var{isUUID:Av}=ic(),Rv=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Ev=["http","https","ws","wss","urn","urn:uuid"];function Pv(e){return Ev.indexOf(e)!==-1}function oc(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 gu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function yu(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 Nv(e){return e.secure=oc(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Ov(e){if((e.port===(oc(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 Sv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(Rv);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=ac(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Dv(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=ac(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 jv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!Av(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Cv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var hu={scheme:"http",domainHost:!0,parse:gu,serialize:yu},$v={scheme:"https",domainHost:hu.domainHost,parse:gu,serialize:yu},Ro={scheme:"ws",domainHost:!0,parse:Nv,serialize:Ov},Tv={scheme:"wss",domainHost:Ro.domainHost,parse:Ro.parse,serialize:Ro.serialize},Lv={scheme:"urn",parse:Sv,serialize:Dv,skipNormalize:!0},xv={scheme:"urn:uuid",parse:jv,serialize:Cv,skipNormalize:!0},Eo={http:hu,https:$v,ws:Ro,wss:Tv,urn:Lv,"urn:uuid":xv};Object.setPrototypeOf(Eo,null);function ac(e){return e&&(Eo[e]||Eo[e.toLowerCase()])||void 0}wu.exports={wsIsSecure:oc,SCHEMES:Eo,isValidSchemeName:Pv,getSchemeHandler:ac}});var Au=E((UO,Oo)=>{"use strict";var{normalizeIPv6:Vv,removeDotSegments:ni,recomposeAuthority:Mv,normalizePercentEncoding:Fv,normalizePathEncoding:Uv,escapePreservingEscapes:qv,reescapeHostDelimiters:Bv,isIPv4:zv,nonSimpleDomain:Gv}=ic(),{SCHEMES:Jv,getSchemeHandler:bu}=Iu();function Wv(e,t){return typeof e=="string"?e=eb(e,t):typeof e=="object"&&(e=No(Pr(e,t),t)),e}function Kv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=Po(e,n),{parsed:a,malformedAuthorityOrPort:s}=Po(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=ku(i,a,n,!0);return n.skipEscape=!0,Pr(c,n)}function ku(e,t,r,n){let i={};return n||(e=No(Pr(e,r),r),t=No(Pr(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=ni(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=ni(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Yv(e,t,r){let n=vu(e,r),i=vu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Pr(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=bu(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Fv(r.path):(r.path=qv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=Mv(r);if(a!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(a),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(s=ni(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var Hv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Zv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Xv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Qv(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 Po(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(Zv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(Xv);if(s!==null){let d=s[1],l=d.replace(/[\t\n\r]/g,"");l.length>=2&&(l.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):d.length!==l.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(Hv);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let d=Qv(n,c);if(d!==void 0&&(n.error=n.error||d,i=!0),n.host)if(zv(n.host)===!1){let m=Vv(n.host);n.host=m.host.toLowerCase(),o=m.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=bu(r.scheme||n.scheme);if(!r.unicodeSupport&&(!l||!l.unicodeSupport)&&n.host&&(r.domainHost||l&&l.domainHost)&&o===!1&&Gv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!l||l&&!l.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Bv(unescape(n.host),o))),n.path&&(n.path=Uv(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 No(e,t){return Po(e,t).parsed}function eb(e,t){return _u(e,t).normalized}function _u(e,t){let{parsed:r,malformedAuthorityOrPort:n}=Po(e,t);return{normalized:n?e:Pr(r,t),malformedAuthorityOrPort:n}}function vu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=_u(e,t);return n?void 0:r}if(typeof e=="object")return Pr(e,t)}var sc={SCHEMES:Jv,normalize:Wv,resolve:Kv,resolveComponent:ku,equal:Yv,serialize:Pr,parse:No};Oo.exports=sc;Oo.exports.default=sc;Oo.exports.fastUri=sc});var Eu=E(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Ru=Au();Ru.code='require("ajv/dist/runtime/uri").default';cc.default=Ru});var $u=E(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var tb=ei();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return tb.KeywordCxt}});var fn=x();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return fn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return fn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return fn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return fn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return fn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return fn.CodeGen}});var rb=_o(),Du=ti(),nb=Ls(),ii=ri(),ib=x(),oi=Zn(),So=Hn(),dc=q(),Pu=cu(),ob=Eu(),ju=(e,t)=>new RegExp(e,t);ju.code="new RegExp";var ab=["removeAdditional","useDefaults","coerceTypes"],sb=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),cb={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."},lb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Nu=200;function db(e){var t,r,n,i,o,a,s,c,d,l,p,m,u,f,g,y,w,A,b,R,I,_,O,T,fe;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Q=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:ju,ot=(i=e.uriResolver)!==null&&i!==void 0?i:ob.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:$)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(l=(d=e.strictTypes)!==null&&d!==void 0?d:$)!==null&&l!==void 0?l:"log",strictTuples:(m=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&m!==void 0?m:"log",strictRequired:(f=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&f!==void 0?f:!1,code:e.code?{...e.code,optimize:Q,regExp:ce}:{optimize:Q,regExp:ce},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Nu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Nu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(_=e.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(O=e.validateFormats)!==null&&O!==void 0?O:!0,unicodeRegExp:(T=e.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(fe=e.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ot}}var ai=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...db(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new ib.ValueScope({scope:{},prefixes:sb,es5:r,lines:n}),this.logger=yb(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,nb.getRules)(),Ou.call(this,cb,t,"NOT SUPPORTED"),Ou.call(this,lb,t,"DEPRECATED","warn"),this._metaOpts=mb.call(this),t.formats&&ub.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&fb.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),pb.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Pu;n==="id"&&(i={...Pu},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,p){await o.call(this,l.$schema);let m=this._addSchema(l,p);return m.validate||a.call(this,m)}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(p){if(!(p instanceof Du.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),a.call(this,l)}}function s({missingSchema:l,missingRef:p}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${p} cannot be resolved`)}async function c(l){let p=await d.call(this,l);this.refs[l]||await o.call(this,p.$schema),this.refs[l]||this.addSchema(p,l,r)}async function d(l){let p=this._loading[l];if(p)return p;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,i);return this}let o;if(typeof t=="object"){let{schemaId:a}=this.opts;if(o=t[a],o!==void 0&&typeof o!="string")throw new Error(`schema ${a} must be string`)}return r=(0,oi.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,t);if(!i&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return i}getSchema(t){let r;for(;typeof(r=Su.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ii.SchemaEnv({schema:{},schemaId:n});if(r=ii.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Su.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,oi.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(wb.call(this,n,r),!r)return(0,dc.eachItem)(n,o=>lc.call(this,o)),this;vb.call(this,r);let i={...r,type:(0,So.getJSONTypes)(r.type),schemaType:(0,So.getJSONTypes)(r.schemaType)};return(0,dc.eachItem)(n,i.type.length===0?o=>lc.call(this,o,i):o=>i.type.forEach(a=>lc.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:d}=c.definition,l=a[s];d&&l&&(a[s]=Cu(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,oi.normalizeId)(a||n);let d=oi.getSchemaRefs.call(this,t,n);return c=new ii.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:d}),this._cache.set(c.schema,c),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):ii.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{ii.compileSchema.call(this,t)}finally{this.opts=r}}};ai.ValidationError=rb.default;ai.MissingRefError=Du.default;Se.default=ai;function Ou(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 Su(e){return e=(0,oi.normalizeId)(e),this.schemas[e]||this.refs[e]}function pb(){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 ub(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function fb(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 mb(){let e={...this.opts};for(let t of ab)delete e[t];return e}var gb={log(){},warn(){},error(){}};function yb(e){if(e===!1)return gb;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 hb=/^[a-z_$][a-z0-9_$:-]*$/i;function wb(e,t){let{RULES:r}=this;if((0,dc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!hb.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 lc(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,So.getJSONTypes)(t.type),schemaType:(0,So.getJSONTypes)(t.schemaType)}};t.before?Ib.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 Ib(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 vb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Cu(t)),e.validateSchema=this.compile(t,!0))}var bb={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Cu(e){return{anyOf:[e,bb]}}});var Tu=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var kb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};pc.default=kb});var Co=E(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.callRef=Nr.getValidate=void 0;var _b=ti(),Lu=ct(),Xe=x(),mn=st(),xu=ri(),Do=q(),Ab={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:d}=o;if((r==="#"||r==="#/")&&i===d.baseId)return p();let l=xu.resolveRef.call(c,d,i,r);if(l===void 0)throw new _b.default(n.opts.uriResolver,i,r);if(l instanceof xu.SchemaEnv)return m(l);return u(l);function p(){if(o===d)return jo(e,a,o,o.$async);let f=t.scopeValue("root",{ref:d});return jo(e,(0,Xe._)`${f}.validate`,d,d.$async)}function m(f){let g=Vu(e,f);jo(e,g,f,f.$async)}function u(f){let g=t.scopeValue("schema",s.code.source===!0?{ref:f,code:(0,Xe.stringify)(f)}:{ref:f}),y=t.name("valid"),w=e.subschema({schema:f,dataTypes:[],schemaPath:Xe.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function Vu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Xe._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Nr.getValidate=Vu;function jo(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,d=c.passContext?mn.default.this:Xe.nil;n?l():p();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let f=i.let("valid");i.try(()=>{i.code((0,Xe._)`await ${(0,Lu.callValidateCode)(e,t,d)}`),u(t),a||i.assign(f,!0)},g=>{i.if((0,Xe._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),m(g),a||i.assign(f,!1)}),e.ok(f)}function p(){e.result((0,Lu.callValidateCode)(e,t,d),()=>u(t),()=>m(t))}function m(f){let g=(0,Xe._)`${f}.errors`;i.assign(mn.default.vErrors,(0,Xe._)`${mn.default.vErrors} === null ? ${g} : ${mn.default.vErrors}.concat(${g})`),i.assign(mn.default.errors,(0,Xe._)`${mn.default.vErrors}.length`)}function u(f){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=Do.mergeEvaluated.props(i,y.props,o.props));else{let w=i.var("props",(0,Xe._)`${f}.evaluated.props`);o.props=Do.mergeEvaluated.props(i,w,o.props,Xe.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Do.mergeEvaluated.items(i,y.items,o.items));else{let w=i.var("items",(0,Xe._)`${f}.evaluated.items`);o.items=Do.mergeEvaluated.items(i,w,o.items,Xe.Name)}}}Nr.callRef=jo;Nr.default=Ab});var Mu=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Rb=Tu(),Eb=Co(),Pb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Rb.default,Eb.default];uc.default=Pb});var Fu=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var $o=x(),ir=$o.operators,To={maximum:{okStr:"<=",ok:ir.LTE,fail:ir.GT},minimum:{okStr:">=",ok:ir.GTE,fail:ir.LT},exclusiveMaximum:{okStr:"<",ok:ir.LT,fail:ir.GTE},exclusiveMinimum:{okStr:">",ok:ir.GT,fail:ir.LTE}},Nb={message:({keyword:e,schemaCode:t})=>(0,$o.str)`must be ${To[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,$o._)`{comparison: ${To[e].okStr}, limit: ${t}}`},Ob={keyword:Object.keys(To),type:"number",schemaType:"number",$data:!0,error:Nb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,$o._)`${r} ${To[t].fail} ${n} || isNaN(${r})`)}};fc.default=Ob});var Uu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var si=x(),Sb={message:({schemaCode:e})=>(0,si.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,si._)`{multipleOf: ${e}}`},Db={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Sb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,si._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,si._)`${a} !== parseInt(${a})`;e.fail$data((0,si._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};mc.default=Db});var Bu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});function qu(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}gc.default=qu;qu.code='require("ajv/dist/runtime/ucs2length").default'});var zu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var Or=x(),jb=q(),Cb=Bu(),$b={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Or.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Or._)`{limit: ${e}}`},Tb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:$b,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Or.operators.GT:Or.operators.LT,a=i.opts.unicode===!1?(0,Or._)`${r}.length`:(0,Or._)`${(0,jb.useFunc)(e.gen,Cb.default)}(${r})`;e.fail$data((0,Or._)`${a} ${o} ${n}`)}};yc.default=Tb});var Gu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Lb=ct(),xb=q(),gn=x(),Vb={message:({schemaCode:e})=>(0,gn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,gn._)`{pattern: ${e}}`},Mb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Vb,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,d=c.code==="new RegExp"?(0,gn._)`new RegExp`:(0,xb.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,gn._)`${d}(${o}, ${s}).test(${r})`),()=>t.assign(l,!1)),e.fail$data((0,gn._)`!${l}`)}else{let c=(0,Lb.usePattern)(e,i);e.fail$data((0,gn._)`!${c}.test(${r})`)}}};hc.default=Mb});var Ju=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var ci=x(),Fb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ci.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ci._)`{limit: ${e}}`},Ub={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Fb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ci.operators.GT:ci.operators.LT;e.fail$data((0,ci._)`Object.keys(${r}).length ${i} ${n}`)}};wc.default=Ub});var Wu=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var li=ct(),di=x(),qb=q(),Bb={message:({params:{missingProperty:e}})=>(0,di.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,di._)`{missingProperty: ${e}}`},zb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Bb,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?d():l(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:f}=e.it;for(let g of r)if(u?.[g]===void 0&&!f.has(g)){let y=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,qb.checkStrictMode)(a,w,a.opts.strictRequired)}}function d(){if(c||o)e.block$data(di.nil,p);else for(let u of r)(0,li.checkReportMissingProp)(e,u)}function l(){let u=t.let("missing");if(c||o){let f=t.let("valid",!0);e.block$data(f,()=>m(u,f)),e.ok(f)}else t.if((0,li.checkMissingProp)(e,r,u)),(0,li.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,li.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function m(u,f){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(f,(0,li.propertyInData)(t,i,u,s.ownProperties)),t.if((0,di.not)(f),()=>{e.error(),t.break()})},di.nil)}}};Ic.default=zb});var Ku=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var pi=x(),Gb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,pi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,pi._)`{limit: ${e}}`},Jb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Gb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?pi.operators.GT:pi.operators.LT;e.fail$data((0,pi._)`${r}.length ${i} ${n}`)}};vc.default=Jb});var Lo=E(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});var Yu=zs();Yu.code='require("ajv/dist/runtime/equal").default';bc.default=Yu});var Hu=E(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});var kc=Hn(),De=x(),Wb=q(),Kb=Lo(),Yb={message:({params:{i:e,j:t}})=>(0,De.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,De._)`{i: ${e}, j: ${t}}`},Hb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Yb,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"),d=o.items?(0,kc.getSchemaTypes)(o.items):[];e.block$data(c,l,(0,De._)`${a} === false`),e.ok(c);function l(){let f=t.let("i",(0,De._)`${r}.length`),g=t.let("j");e.setParams({i:f,j:g}),t.assign(c,!0),t.if((0,De._)`${f} > 1`,()=>(p()?m:u)(f,g))}function p(){return d.length>0&&!d.some(f=>f==="object"||f==="array")}function m(f,g){let y=t.name("item"),w=(0,kc.checkDataTypes)(d,y,s.opts.strictNumbers,kc.DataType.Wrong),A=t.const("indices",(0,De._)`{}`);t.for((0,De._)`;${f}--;`,()=>{t.let(y,(0,De._)`${r}[${f}]`),t.if(w,(0,De._)`continue`),d.length>1&&t.if((0,De._)`typeof ${y} == "string"`,(0,De._)`${y} += "_"`),t.if((0,De._)`typeof ${A}[${y}] == "number"`,()=>{t.assign(g,(0,De._)`${A}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,De._)`${A}[${y}] = ${f}`)})}function u(f,g){let y=(0,Wb.useFunc)(t,Kb.default),w=t.name("outer");t.label(w).for((0,De._)`;${f}--;`,()=>t.for((0,De._)`${g} = ${f}; ${g}--;`,()=>t.if((0,De._)`${y}(${r}[${f}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};_c.default=Hb});var Zu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var Ac=x(),Zb=q(),Xb=Lo(),Qb={message:"must be equal to constant",params:({schemaCode:e})=>(0,Ac._)`{allowedValue: ${e}}`},ek={keyword:"const",$data:!0,error:Qb,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,Ac._)`!${(0,Zb.useFunc)(t,Xb.default)}(${r}, ${i})`):e.fail((0,Ac._)`${o} !== ${r}`)}};Rc.default=ek});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var ui=x(),tk=q(),rk=Lo(),nk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ui._)`{allowedValues: ${e}}`},ik={keyword:"enum",schemaType:"array",$data:!0,error:nk,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,d=()=>c??(c=(0,tk.useFunc)(t,rk.default)),l;if(s||n)l=t.let("valid"),e.block$data(l,p);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",o);l=(0,ui.or)(...i.map((f,g)=>m(u,g)))}e.pass(l);function p(){t.assign(l,!1),t.forOf("v",o,u=>t.if((0,ui._)`${d()}(${r}, ${u})`,()=>t.assign(l,!0).break()))}function m(u,f){let g=i[f];return typeof g=="object"&&g!==null?(0,ui._)`${d()}(${r}, ${u}[${f}])`:(0,ui._)`${r} === ${g}`}}};Ec.default=ik});var Qu=E(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});var ok=Fu(),ak=Uu(),sk=zu(),ck=Gu(),lk=Ju(),dk=Wu(),pk=Ku(),uk=Hu(),fk=Zu(),mk=Xu(),gk=[ok.default,ak.default,sk.default,ck.default,lk.default,dk.default,pk.default,uk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},fk.default,mk.default];Pc.default=gk});var Oc=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.validateAdditionalItems=void 0;var Sr=x(),Nc=q(),yk={message:({params:{len:e}})=>(0,Sr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Sr._)`{limit: ${e}}`},hk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:yk,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Nc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}ef(e,n)}};function ef(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,Sr._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Sr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Nc.alwaysValidSchema)(a,n)){let d=r.var("valid",(0,Sr._)`${s} <= ${t.length}`);r.if((0,Sr.not)(d),()=>c(d)),e.ok(d)}function c(d){r.forRange("i",t.length,s,l=>{e.subschema({keyword:o,dataProp:l,dataPropType:Nc.Type.Num},d),a.allErrors||r.if((0,Sr.not)(d),()=>r.break())})}}fi.validateAdditionalItems=ef;fi.default=hk});var Sc=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateTuple=void 0;var tf=x(),xo=q(),wk=ct(),Ik={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return rf(e,"additionalItems",t);r.items=!0,!(0,xo.alwaysValidSchema)(r,t)&&e.ok((0,wk.validateArray)(e))}};function rf(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=xo.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),d=n.const("len",(0,tf._)`${o}.length`);r.forEach((p,m)=>{(0,xo.alwaysValidSchema)(s,p)||(n.if((0,tf._)`${d} > ${m}`,()=>e.subschema({keyword:a,schemaProp:m,dataProp:m},c)),e.ok(c))});function l(p){let{opts:m,errSchemaPath:u}=s,f=r.length,g=f===p.minItems&&(f===p.maxItems||p[t]===!1);if(m.strictTuples&&!g){let y=`"${a}" is ${f}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,xo.checkStrictMode)(s,y,m.strictTuples)}}}mi.validateTuple=rf;mi.default=Ik});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var vk=Sc(),bk={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,vk.validateTuple)(e,"items")};Dc.default=bk});var af=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var of=x(),kk=q(),_k=ct(),Ak=Oc(),Rk={message:({params:{len:e}})=>(0,of.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,of._)`{limit: ${e}}`},Ek={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Rk,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,kk.alwaysValidSchema)(n,t)&&(i?(0,Ak.validateAdditionalItems)(e,i):e.ok((0,_k.validateArray)(e)))}};jc.default=Ek});var sf=E(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});var dt=x(),Vo=q(),Pk={message:({params:{min:e,max:t}})=>t===void 0?(0,dt.str)`must contain at least ${e} valid item(s)`:(0,dt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,dt._)`{minContains: ${e}}`:(0,dt._)`{minContains: ${e}, maxContains: ${t}}`},Nk={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Pk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e,a,s,{minContains:c,maxContains:d}=n;o.opts.next?(a=c===void 0?1:c,s=d):a=1;let l=t.const("len",(0,dt._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Vo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Vo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Vo.alwaysValidSchema)(o,r)){let g=(0,dt._)`${l} >= ${a}`;s!==void 0&&(g=(0,dt._)`${g} && ${l} <= ${s}`),e.pass(g);return}o.items=!0;let p=t.name("valid");s===void 0&&a===1?u(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,dt._)`${i}.length > 0`,m)):(t.let(p,!1),m()),e.result(p,()=>e.reset());function m(){let g=t.name("_valid"),y=t.let("count",0);u(g,()=>t.if(g,()=>f(y)))}function u(g,y){t.forRange("i",0,l,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Vo.Type.Num,compositeRule:!0},g),y()})}function f(g){t.code((0,dt._)`${g}++`),s===void 0?t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,dt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};Cc.default=Nk});var Mo=E(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.validateSchemaDeps=Ct.validatePropertyDeps=Ct.error=void 0;var $c=x(),Ok=q(),gi=ct();Ct.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,$c.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,$c._)`{property: ${e},
|
|
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},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${t},
|
|
8
|
-
deps: ${r}}`};var Sk={keyword:"dependencies",type:"object",schemaType:"object",error:Ct.error,code(e){let[t,r]=Dk(e);cf(e,t),lf(e,r)}};function Dk({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 cf(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,gi.propertyInData)(r,n,a,i.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let d of s)(0,gi.checkReportMissingProp)(e,d)}):(r.if((0,$c._)`${c} && (${(0,gi.checkMissingProp)(e,s,o)})`),(0,gi.reportMissingProp)(e,o),r.else())}}Ct.validatePropertyDeps=cf;function lf(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,Ok.alwaysValidSchema)(o,t[s])||(r.if((0,gi.propertyInData)(r,n,s,o.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}Ct.validateSchemaDeps=lf;Ct.default=Sk});var pf=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var df=x(),jk=q(),Ck={message:"property name must be valid",params:({params:e})=>(0,df._)`{propertyName: ${e.propertyName}}`},$k={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Ck,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,jk.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,df.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};Tc.default=$k});var xc=E(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});var Fo=ct(),bt=x(),Tk=st(),Uo=q(),Lk={message:"must NOT have additional properties",params:({params:e})=>(0,bt._)`{additionalProperty: ${e.additionalProperty}}`},xk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Lk,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,Uo.alwaysValidSchema)(a,r))return;let d=(0,Fo.allSchemaProperties)(n.properties),l=(0,Fo.allSchemaProperties)(n.patternProperties);p(),e.ok((0,bt._)`${o} === ${Tk.default.errors}`);function p(){t.forIn("key",i,y=>{!d.length&&!l.length?f(y):t.if(m(y),()=>f(y))})}function m(y){let w;if(d.length>8){let A=(0,Uo.schemaRefOrVal)(a,n.properties,"properties");w=(0,Fo.isOwnProperty)(t,A,y)}else d.length?w=(0,bt.or)(...d.map(A=>(0,bt._)`${y} === ${A}`)):w=bt.nil;return l.length&&(w=(0,bt.or)(w,...l.map(A=>(0,bt._)`${(0,Fo.usePattern)(e,A)}.test(${y})`))),(0,bt.not)(w)}function u(y){t.code((0,bt._)`delete ${i}[${y}]`)}function f(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,Uo.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,bt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,bt.not)(w),()=>t.break()))}}function g(y,w,A){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Uo.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Lc.default=xk});var mf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var Vk=ei(),uf=ct(),Vc=q(),ff=xc(),Mk={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&&ff.default.code(new Vk.KeywordCxt(o,ff.default,"additionalProperties"));let a=(0,uf.allSchemaProperties)(r);for(let p of a)o.definedProperties.add(p);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=Vc.mergeEvaluated.props(t,(0,Vc.toHash)(a),o.props));let s=a.filter(p=>!(0,Vc.alwaysValidSchema)(o,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)d(p)?l(p):(t.if((0,uf.propertyInData)(t,i,p,o.opts.ownProperties)),l(p),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function d(p){return o.opts.useDefaults&&!o.compositeRule&&r[p].default!==void 0}function l(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};Mc.default=Mk});var wf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var gf=ct(),qo=x(),yf=q(),hf=q(),Fk={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,gf.allSchemaProperties)(r),c=s.filter(g=>(0,yf.alwaysValidSchema)(o,r[g]));if(s.length===0||c.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let d=a.strictSchema&&!a.allowMatchingProperties&&i.properties,l=t.name("valid");o.props!==!0&&!(o.props instanceof qo.Name)&&(o.props=(0,hf.evaluatedPropsToName)(t,o.props));let{props:p}=o;m();function m(){for(let g of s)d&&u(g),o.allErrors?f(g):(t.var(l,!0),f(g),t.if(l))}function u(g){for(let y in d)new RegExp(g).test(y)&&(0,yf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function f(g){t.forIn("key",n,y=>{t.if((0,qo._)`${(0,gf.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:hf.Type.Str},l),o.opts.unevaluated&&p!==!0?t.assign((0,qo._)`${p}[${y}]`,!0):!w&&!o.allErrors&&t.if((0,qo.not)(l),()=>t.break())})})}}};Fc.default=Fk});var If=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var Uk=q(),qk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Uk.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"}};Uc.default=qk});var vf=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var Bk=ct(),zk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Bk.validateUnion,error:{message:"must match a schema in anyOf"}};qc.default=zk});var bf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var Bo=x(),Gk=q(),Jk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Bo._)`{passingSchemas: ${e.passing}}`},Wk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Jk,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(d),e.result(a,()=>e.reset(),()=>e.error(!0));function d(){o.forEach((l,p)=>{let m;(0,Gk.alwaysValidSchema)(i,l)?t.var(c,!0):m=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Bo._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Bo._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),m&&e.mergeEvaluated(m,Bo.Name)})})}}};Bc.default=Wk});var kf=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var Kk=q(),Yk={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,Kk.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};zc.default=Yk});var Rf=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var zo=x(),Af=q(),Hk={message:({params:e})=>(0,zo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,zo._)`{failingKeyword: ${e.ifClause}}`},Zk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Hk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Af.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=_f(n,"then"),o=_f(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,d("then",l),d("else",l))}else i?t.if(s,d("then")):t.if((0,zo.not)(s),d("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 d(l,p){return()=>{let m=e.subschema({keyword:l},s);t.assign(a,s),e.mergeValidEvaluated(m,a),p?t.assign(p,(0,zo._)`${l}`):e.setParams({ifClause:l})}}}};function _f(e,t){let r=e.schema[t];return r!==void 0&&!(0,Af.alwaysValidSchema)(e,r)}Gc.default=Zk});var Ef=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Xk=q(),Qk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Xk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Jc.default=Qk});var Pf=E(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});var e_=Oc(),t_=nf(),r_=Sc(),n_=af(),i_=sf(),o_=Mo(),a_=pf(),s_=xc(),c_=mf(),l_=wf(),d_=If(),p_=vf(),u_=bf(),f_=kf(),m_=Rf(),g_=Ef();function y_(e=!1){let t=[d_.default,p_.default,u_.default,f_.default,m_.default,g_.default,a_.default,s_.default,o_.default,c_.default,l_.default];return e?t.push(t_.default,n_.default):t.push(e_.default,r_.default),t.push(i_.default),t}Wc.default=y_});var Yc=E(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.dynamicAnchor=void 0;var Kc=x(),h_=st(),Nf=ri(),w_=Co(),I_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Of(e,e.schema)};function Of(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Kc._)`${h_.default.dynamicAnchors}${(0,Kc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:v_(e);r.if((0,Kc._)`!${i}`,()=>r.assign(i,o))}yi.dynamicAnchor=Of;function v_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:o,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,d=new Nf.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return Nf.compileSchema.call(n,d),(0,w_.getValidate)(e,d)}yi.default=I_});var Hc=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.dynamicRef=void 0;var Sf=x(),b_=st(),Df=Co(),k_={keyword:"$dynamicRef",schemaType:"string",code:e=>jf(e,e.schema)};function jf(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 d=r.let("_v",(0,Sf._)`${b_.default.dynamicAnchors}${(0,Sf.getProperty)(o)}`);r.if(d,s(d,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,d){return d?()=>r.block(()=>{(0,Df.callRef)(e,c),r.let(d,!0)}):()=>(0,Df.callRef)(e,c)}}hi.dynamicRef=jf;hi.default=k_});var Cf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var __=Yc(),A_=q(),R_={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,__.dynamicAnchor)(e,""):(0,A_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Zc.default=R_});var $f=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var E_=Hc(),P_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,E_.dynamicRef)(e,e.schema)};Xc.default=P_});var Tf=E(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});var N_=Yc(),O_=Hc(),S_=Cf(),D_=$f(),j_=[N_.default,O_.default,S_.default,D_.default];Qc.default=j_});var xf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var Lf=Mo(),C_={keyword:"dependentRequired",type:"object",schemaType:"object",error:Lf.error,code:e=>(0,Lf.validatePropertyDeps)(e)};el.default=C_});var Vf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var $_=Mo(),T_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,$_.validateSchemaDeps)(e)};tl.default=T_});var Mf=E(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=q(),x_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,L_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};rl.default=x_});var Ff=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var V_=xf(),M_=Vf(),F_=Mf(),U_=[V_.default,M_.default,F_.default];nl.default=U_});var qf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var or=x(),Uf=q(),q_=st(),B_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,or._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},z_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:B_,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 or.Name?t.if((0,or._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(d(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(l(s,p),()=>c(p))),o.props=!0,e.ok((0,or._)`${i} === ${q_.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,Uf.alwaysValidSchema)(o,r)){let m=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Uf.Type.Str},m),a||t.if((0,or.not)(m),()=>t.break())}}function d(p,m){return(0,or._)`!${p} || !${p}[${m}]`}function l(p,m){let u=[];for(let f in p)p[f]===!0&&u.push((0,or._)`${m} !== ${f}`);return(0,or.and)(...u)}}};il.default=z_});var zf=E(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var Dr=x(),Bf=q(),G_={message:({params:{len:e}})=>(0,Dr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Dr._)`{limit: ${e}}`},J_={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:G_,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,Dr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Dr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Bf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Dr._)`${a} <= ${o}`);t.if((0,Dr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,d){t.forRange("i",d,a,l=>{e.subschema({keyword:"unevaluatedItems",dataProp:l,dataPropType:Bf.Type.Num},c),i.allErrors||t.if((0,Dr.not)(c),()=>t.break())})}}};ol.default=J_});var Gf=E(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var W_=qf(),K_=zf(),Y_=[W_.default,K_.default];al.default=Y_});var Jf=E(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var _e=x(),H_={message:({schemaCode:e})=>(0,_e.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,_e._)`{format: ${e}}`},Z_={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:H_,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:d,schemaEnv:l,self:p}=s;if(!c.validateFormats)return;i?m():u();function m(){let f=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,_e._)`${f}[${a}]`),y=r.let("fType"),w=r.let("format");r.if((0,_e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,_e._)`${g}.type || "string"`).assign(w,(0,_e._)`${g}.validate`),()=>r.assign(y,(0,_e._)`"string"`).assign(w,g)),e.fail$data((0,_e.or)(A(),b()));function A(){return c.strictSchema===!1?_e.nil:(0,_e._)`${a} && !${w}`}function b(){let R=l.$async?(0,_e._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,_e._)`${w}(${n})`,I=(0,_e._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,_e._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let f=p.formats[o];if(!f){A();return}if(f===!0)return;let[g,y,w]=b(f);g===t&&e.pass(R());function A(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${d}"`}}function b(I){let _=I instanceof RegExp?(0,_e.regexpCode)(I):c.code.formats?(0,_e._)`${c.code.formats}${(0,_e.getProperty)(o)}`:void 0,O=r.scopeValue("formats",{key:o,ref:I,code:_});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,_e._)`${O}.validate`]:["string",I,O]}function R(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!l.$async)throw new Error("async format in sync schema");return(0,_e._)`await ${w}(${n})`}return typeof y=="function"?(0,_e._)`${w}(${n})`:(0,_e._)`${w}.test(${n})`}}}};sl.default=Z_});var Wf=E(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var X_=Jf(),Q_=[X_.default];cl.default=Q_});var Kf=E(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.contentVocabulary=yn.metadataVocabulary=void 0;yn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Hf=E(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});var eA=Mu(),tA=Qu(),rA=Pf(),nA=Tf(),iA=Ff(),oA=Gf(),aA=Wf(),Yf=Kf(),sA=[nA.default,eA.default,tA.default,(0,rA.default)(!0),aA.default,Yf.metadataVocabulary,Yf.contentVocabulary,iA.default,oA.default];ll.default=sA});var Xf=E(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.DiscrError=void 0;var Zf;(function(e){e.Tag="tag",e.Mapping="mapping"})(Zf||(Go.DiscrError=Zf={}))});var em=E(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var hn=x(),dl=Xf(),Qf=ri(),cA=ti(),lA=q(),dA={message:({params:{discrError:e,tagName:t}})=>e===dl.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,hn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},pA={keyword:"discriminator",type:"object",schemaType:"object",error:dA,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),d=t.const("tag",(0,hn._)`${r}${(0,hn.getProperty)(s)}`);t.if((0,hn._)`typeof ${d} == "string"`,()=>l(),()=>e.error(!1,{discrError:dl.DiscrError.Tag,tag:d,tagName:s})),e.ok(c);function l(){let u=m();t.if(!1);for(let f in u)t.elseIf((0,hn._)`${d} === ${f}`),t.assign(c,p(u[f]));t.else(),e.error(!1,{discrError:dl.DiscrError.Mapping,tag:d,tagName:s}),t.endIf()}function p(u){let f=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},f);return e.mergeEvaluated(g,hn.Name),f}function m(){var u;let f={},g=w(i),y=!0;for(let R=0;R<a.length;R++){let I=a[R];if(I?.$ref&&!(0,lA.schemaHasRulesButRef)(I,o.self.RULES)){let O=I.$ref;if(I=Qf.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,O),I instanceof Qf.SchemaEnv&&(I=I.schema),I===void 0)throw new cA.default(o.opts.uriResolver,o.baseId,O)}let _=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof _!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||w(I)),A(_,R)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return f;function w({required:R}){return Array.isArray(R)&&R.includes(s)}function A(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let _ of R.enum)b(_,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(R,I){if(typeof R!="string"||R in f)throw new Error(`discriminator: "${s}" values must be unique strings`);f[R]=I}}}};pl.default=pA});var tm=E((US,uA)=>{uA.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 rm=E((qS,fA)=>{fA.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 nm=E((BS,mA)=>{mA.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 im=E((zS,gA)=>{gA.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 om=E((GS,yA)=>{yA.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 am=E((JS,hA)=>{hA.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 sm=E((WS,wA)=>{wA.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 cm=E((KS,IA)=>{IA.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 lm=E(ul=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});var vA=tm(),bA=rm(),kA=nm(),_A=im(),AA=om(),RA=am(),EA=sm(),PA=cm(),NA=["/properties"];function OA(e){return[vA,bA,kA,_A,AA,t(this,RA),EA,t(this,PA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,NA):n}}ul.default=OA});var jr=E((ge,ml)=>{"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 SA=$u(),DA=Hf(),jA=em(),CA=lm(),fl="https://json-schema.org/draft/2020-12/schema",wn=class extends SA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),DA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(jA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(CA.default.call(this,t),this.refs["http://json-schema.org/schema"]=fl)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(fl)?fl:void 0)}};ge.Ajv2020=wn;ml.exports=ge=wn;ml.exports.Ajv2020=wn;Object.defineProperty(ge,"__esModule",{value:!0});ge.default=wn;var $A=ei();Object.defineProperty(ge,"KeywordCxt",{enumerable:!0,get:function(){return $A.KeywordCxt}});var In=x();Object.defineProperty(ge,"_",{enumerable:!0,get:function(){return In._}});Object.defineProperty(ge,"str",{enumerable:!0,get:function(){return In.str}});Object.defineProperty(ge,"stringify",{enumerable:!0,get:function(){return In.stringify}});Object.defineProperty(ge,"nil",{enumerable:!0,get:function(){return In.nil}});Object.defineProperty(ge,"Name",{enumerable:!0,get:function(){return In.Name}});Object.defineProperty(ge,"CodeGen",{enumerable:!0,get:function(){return In.CodeGen}});var TA=_o();Object.defineProperty(ge,"ValidationError",{enumerable:!0,get:function(){return TA.default}});var LA=ti();Object.defineProperty(ge,"MissingRefError",{enumerable:!0,get:function(){return LA.default}})});import ke from"node:process";import et from"node:path";import{spawnSync as fO}from"node:child_process";import{readFile as mO}from"node:fs/promises";var re="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",St="^sha256:[a-f0-9]{64}$";import{constants as da}from"node:fs";import{lstat as uR,mkdir as Nn,open as Em,readFile as Ri,realpath as Mr,rename as fR,unlink as Dl}from"node:fs/promises";import{randomUUID as jl}from"node:crypto";import Ne from"node:path";var dm=nn(jr(),1);var je={type:"string",pattern:St},xA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},gl={type:"string",format:"date-time"},yl={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"]},pm={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}}},hl={$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:je,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:re}}}},compatibility:pm,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:je,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern: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:yl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},um={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:je,deliveryReceiptId:je,usage:{enum:["runtime","development"]}}},{$id:ZS,...fm}=hl,VA={...fm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...hl.required,"availability","packageSources"],properties:{...hl.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:um}}},MA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[fm,(()=>{let{$id:e,...t}=VA;return t})()]},Jo={$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:yl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:yl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:je,stderrDigest:je,startedAt:gl,completedAt:gl,projectStateDigest:je,runtime:pm}},FA={...Jo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...Jo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...Jo.properties,evidenceId:je,capabilityId:{type:"string",pattern:re},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:je}},UA={$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:je,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:je,projectStateDigest:je,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:je,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:re}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:re}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:je},committedAt:gl,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:xA,revision:je}}},sources:{type:"array",minItems:1,maxItems:128,items:um},packageJsonDigest:je,lockfileDigest:je}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},wi=new dm.Ajv2020({allErrors:!0,strict:!0});wi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Ko={capabilityBundleRelease:wi.compile(MA),verificationResult:wi.compile(Jo),adoptionEvidence:wi.compile(FA),projectAdoptionLock:wi.compile(UA)},Wo=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Yo(e,t,r){if(!t(r))throw new Wo(e,t.errors??[]);return r}var mm=e=>{let t=Yo("capabilityBundleRelease",Ko.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Wo("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},gm=e=>Yo("verificationResult",Ko.verificationResult,e),Ii=e=>Yo("adoptionEvidence",Ko.adoptionEvidence,e),Ke=e=>Yo("projectAdoptionLock",Ko.projectAdoptionLock,e);import{lstat as HA,readFile as bl,realpath as kl}from"node:fs/promises";import bn from"node:path";import{createHash as qA}from"node:crypto";function h(e){return`sha256:${qA("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 $t=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function ym(e){if(!new RegExp(re).test(e))throw new $t("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ho(e,t){if(e.includes("\r"))throw new $t("Managed regions require LF newlines");let{begin:r,end:n}=ym(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new $t("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 $t("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function
|
|
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 bm(e){let{begin:t,end:r}=vm(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
11
|
${r}`;if(n===0){let l=e.source.replace(/\n*$/g,"");return`${l}${l.length===0?"":`
|
|
12
12
|
|
|
13
13
|
`}${a}
|
|
14
|
-
`}let s=e.source.indexOf(t),c=e.source.indexOf(r,s)+r.length,d=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(d))throw new $t("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import wm from"node:path";var ar=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Zo(e){if(e.length===0||wm.posix.isAbsolute(e)||wm.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new ar("Asset path must be a normalized project-relative POSIX path",e)}function BA(e,t){Zo(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 ar("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new ar("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new ar("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Zo(s.path),t.has(s.path))throw new ar("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new ar("Proposed change paths must be unique",s.path);return r.add(s.path),BA(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 Xo(e){return h(k(e))}var Im=nn(jr(),1);var ne={type:"string",pattern:St},vn={type:"string",pattern:re},Tr={type:"string",minLength:1,maxLength:128},$r={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},zA={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:vn,version:Tr,integrity:ne,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:$r,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"]}}}}}},GA={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:vn,version:Tr}},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:vn,version:Tr}}}}},JA={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:vn,version:Tr,integrity:ne,appliedPlanId:ne,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:$r,digest:ne}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},WA={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:vn,capabilityVersion:Tr,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},KA={$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:vn,version:Tr,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:Tr,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:$r,unitImporterId:$r,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:$r,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:$r,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"]}}}}}},YA={$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:$r,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}},Cr=new Im.Ajv2020({allErrors:!0,strict:!0});Cr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Il={capabilityRelease:Cr.compile(zA),projectManifest:Cr.compile(GA),projectLock:Cr.compile(JA),evidence:Cr.compile(WA),changePlan:Cr.compile(KA),transactionJournal:Cr.compile(YA)},wl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function vl(e,t,r){if(!t(r))throw new wl(e,t.errors??[]);return r}var W=e=>vl("projectManifest",Il.projectManifest,e);var sr=e=>vl("changePlan",Il.changePlan,e),vm=e=>vl("transactionJournal",Il.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Qo(e){if(e.currentLock!==void 0){let o=await ea({...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 kl(bn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await _l(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 _l(e,t){let r=bn.join(e,...t.split("/"));try{let n=await HA(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 bl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Lr(e){let t=await kl(bn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await _l(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=h(Ho(await bl(bn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{o=!1}if(!o)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:h(k(r))}}async function ea(e){let t=W(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:Ke(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 kl(bn.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let l of e.release.release.assets){let p=await _l(o,l.path);if(a.push(p),p.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 m=l.ownership==="seed-file"&&p.digest?p.digest:l.digest;l.ownership==="seed-file"&&p.exists&&c.set(l.path,await bl(bn.join(o,...l.path.split("/")))),s.push({path:l.path,kind:"create",ownership:l.ownership,desiredDigest:m})}let d={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(l=>({path:l.path,ownership:l.ownership,desiredDigest:l.digest})),verifiers:e.release.release.verifiers.map(l=>({id:l.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Pe({action:"adopt",capability:d,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as XA,lstat as aa,mkdir as kn,open as _m,readFile as sa,realpath as QA,rename as ia,rm as Al,unlink as xr}from"node:fs/promises";import{constants as ra}from"node:fs";import{homedir as eR}from"node:os";import K from"node:path";import{randomUUID as Rn}from"node:crypto";function ZA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function pt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await bm(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await bm(e.context,e.operation,e.bytes??0,t,"failed",ZA(r)),r}}async function bm(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 Am=Symbol("prepared-transaction"),cr=new Map,tR=5*1024*1024,rR=25*1024*1024,km=8,oa=class extends Error{};async function ta(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new oa("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function vi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function qt(e){try{return await aa(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function En(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function kt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function ut(e,t){let r=await _m(e,ra.O_RDONLY);try{await pt({context:En(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function bi(e,t,r=384,n){let i=await _m(e,ra.O_CREAT|ra.O_EXCL|ra.O_WRONLY,r);try{await pt({context:En(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await pt({context:En(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Rl(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${Rn()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await
|
|
16
|
-
`),384,r),await ut(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function na(e){try{let t=JSON.parse(await sa(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function aR(e,t,r){return{[Am]:!0,projectRoot:e,plan:t,transactionId:r}}async function sR(e,t){iR(e.plan,e.approvedPlanId,e.now);let r=await ca(e.projectRoot),n=oR(e.plan),i=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Pn(r,u.path),await _n(r,u.path),u.kind!=="remove"){let f=e.desiredContents.get(u.path);if(f===void 0||h(f)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let o=vi(r,e.plan.planId);await kn(o.platformDirectory,{recursive:!0,mode:448}),await _n(r,".dyyto");let a=Rn();await Nl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:Rn()},kt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??tR,c=e.limits?.maxTransactionBytes??rR,d=0,l=[],p=[],m=!1;try{if(await ta(t,"lock-created"),await qt(o.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await kn(o.preimages,{recursive:!0,mode:448}),await kn(o.quarantine,{recursive:!0,mode:448}),m=!0;for(let[f,g]of n.entries()){let y=Pn(r,g.path);await _n(r,g.path);let w=await An(y);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,f)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,f);let A={kind:"absent"};if(w!==void 0){if(d+=w.bytes.byteLength,w.bytes.byteLength>s||d>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,f);let b=K.join(o.preimages,`${f}.bin`);await bi(b,w.bytes,384,kt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${f}`)),p.push(f),await ta(t,"preimage-written-pending-directory-sync",f),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}l.push({index:f,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await ut(o.preimages,kt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let f of p)await ta(t,"preimage-persisted",f)}let u=El({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 Rl(o.journal,u,kt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),cr.set(a,{desiredContents:e.desiredContents,journal:u}),await ta(t,"journal-prepared"),aR(r,e.plan,a)}catch(u){if(u instanceof oa)throw cr.delete(a),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{m&&await Al(o.transactionDirectory,{recursive:!0,force:!0}),await xr(o.lock),await ut(o.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function dr(e){return sR(e)}async function cR(e,t,r,n){return lr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},kt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function lR(e,t,r,n,i,o){let a=Pn(e,n.path);await _n(e,n.path);let s=await An(a);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=K.join(t.quarantine,`${n.index}.bin`),m=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await pt({context:En(m),operation:"rename",run:()=>ia(a,p)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await kn(K.dirname(a),{recursive:!0}),await _n(e,n.path);let d=K.join(K.dirname(a),`.dyyto-${r}-${n.index}.tmp`),l=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await bi(d,c,n.before.kind==="present"?n.before.mode&511:420,l),await o?.onCheckpoint?.("temporary-file-synced",n.index),await pt({context:En(l),operation:"rename",bytes:c.byteLength,run:()=>ia(d,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a)]}async function dR(e,t){let r=cr.get(e.transactionId);if(r===void 0||e[Am]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=vi(e.projectRoot,e.plan.planId),i=await lr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let o=new Map;for(let a=0;a<i.operations.length;a+=km){let s=i.operations.slice(a,a+km),c=await Promise.allSettled(s.map(l=>lR(e.projectRoot,n,e.transactionId,l,r.desiredContents,t))),d=c.find(l=>l.status==="rejected");if(d?.status==="rejected")throw d.reason;for(let l of c)if(l.status==="fulfilled")for(let p of l.value)o.has(p)||o.set(p,kt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await ut(a,s);for(let a of i.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);i=await lr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await lr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await xr(n.lock),await ut(n.platformDirectory),cr.delete(e.transactionId),Vr(i)}catch(o){throw i=await cR(n,i,o instanceof C?o.operationIndex:void 0,t?.durabilityTrace),cr.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function pr(e){return dR(e)}function Vr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Bt(e){let t=await ca(e.projectRoot),r=vi(t,e.planId);if(!await qt(r.journal)){if(!await qt(r.lock))return null;let n=await na(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return Vr(await Pl(r.journal))}async function pR(e,t,r){await kn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${Rn()}.tmp`);await bi(n,t,r&511),await ia(n,e),await XA(e,r&511),await ut(K.dirname(e))}async function Rm(e){let t=await ca(e.projectRoot),r=vi(t,e.planId);if(!await qt(r.journal)){if(!await qt(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await na(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await Al(r.transactionDirectory,{recursive:!0,force:!0}),await kn(r.transactionDirectory,{recursive:!0,mode:448});let o=El({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 Rl(r.journal,o),await xr(r.lock),await ut(r.platformDirectory),Vr(o)}let n=await Pl(r.journal);if(n.state==="recovered")return Vr(n);if(n.state==="applied"){for(let i of n.operations){let o=await An(Pn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await qt(r.lock)){let i=await na(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await xr(r.lock),await ut(r.platformDirectory)}return cr.delete(n.transactionId),Vr(n)}if(n.projectRootDigest!==h(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await qt(r.lock)){let i=await na(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Nl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()});n=await lr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Pn(t,i.path);if(await _n(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await qt(s)){if((await An(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await xr(s),await ut(K.dirname(s))}}let a=await An(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await xr(o),await ut(K.dirname(o))}}else if(a?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,d=i.kind==="remove"&&a===void 0&&await qt(s),l=e.approvedConflicts?.find(m=>m.path===i.path&&m.currentDigest===a?.digest);if(!c&&!d&&!l)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let p=await sa(K.join(r.preimages,`${i.index}.bin`));if(h(p)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await pR(o,p,i.before.mode),d&&await Al(s,{force:!0})}i.status="restored",n=await lr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await lr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await xr(r.lock),await ut(r.platformDirectory),cr.delete(n.transactionId),Vr(n)}async function ki(e){return Rm(e)}async function Ol(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return Rm(e)}async function Sl(e){let t=await ca(e.projectRoot),r=vi(t,e.planId),n=await Pl(r.journal);if(n.state==="recovered")return Vr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await An(Pn(t,o.path)),s=o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest,c=o.before.kind==="absent"?a===void 0:a?.digest===o.before.digest;if(!s&&!c){i=o;break}}if(await Nl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()}),n=await lr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return cr.set(n.transactionId,{desiredContents:new Map,journal:n}),ki({projectRoot:t,planId:e.planId,now:e.now})}var Ae=class extends Error{code;constructor(t,r){super(r),this.code=t}},_i=class extends Error{};function Ei(e,t){let r=Ne.join(e,".dyyto"),n=Ne.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Ne.join(r,"evidence"),lockFile:Ne.join(r,"project-lock.json"),transactionLock:Ne.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Ne.join(n,"journal.json")}}async function ur(e){try{return await uR(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function zt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function ua(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function fa(e,t){let r=await Em(e,da.O_RDONLY);try{await pt({context:ua(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function Cl(e,t,r){let n=await Em(e,da.O_CREAT|da.O_EXCL|da.O_WRONLY,384);try{await pt({context:ua(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await pt({context:ua(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ai(e,t,r){let n=Ne.dirname(e),i=Ne.join(n,`.tmp-${jl()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await
|
|
18
|
-
`),r),await
|
|
19
|
-
`),r),await
|
|
20
|
-
`)}async function
|
|
21
|
-
`),i=r.capabilities[0],o=
|
|
22
|
-
`)}catch(i){throw i.code==="EEXIST"?new
|
|
23
|
-
`)}catch(o){if(o.code!=="EEXIST")throw o;let a=sr(JSON.parse(await Ul(i,"utf8")));if(Pi(a),k(a)!==k(r))throw new ve("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function $m(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Gt(e){let t=await Lt(le.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Lt(le.resolve(e.transactionRoot)),n=sr(e.plan);Pi(n);let i=le.join(t,".dyyto","plans"),o=await ma(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=sr(JSON.parse(await Ul(le.join(i,s),"utf8")));Pi(c),!await Tt(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)&&$m(c)===$m(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await PR({projectRoot:t,plan:n}),n)}async function Fr(e){let t=await Lt(le.resolve(e.projectRoot)),r=le.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=sr(JSON.parse(await Ul(r,"utf8")));if(Pi(n),n.planId!==e.planId)throw new ve("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new ve("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ya(e,t=[],r,n=[]){let i=await Lt(le.resolve(e)),o=r===void 0?i:await Lt(le.resolve(r)),a=le.join(i,".dyyto","plans"),s=await ma(a).catch(l=>{if(l.code==="ENOENT")return[];throw l}),c=[];for(let l of s.filter(p=>p.endsWith(".json")).sort()){let p=l.slice(0,-5),m=await Fr({projectRoot:i,planId:p}),u=await Bt({projectRoot:o,planId:p}),f=await Tt(le.join(i,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!f&&!t.includes(m.planId)&&(!n.includes(m.capability.capabilityId)||m.action==="upgrade"||m.action==="remove"||m.action==="adopt"&&m.operations.every(g=>g.disposition==="noop"))&&c.push(m)}let d=NR(c);if(d===void 0)throw new ve("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return d}function NR(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 ql(e){let t=await Lt(le.resolve(e)),r=le.join(t,".dyyto","plans"),n=await ma(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 Fr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as Fm,readFile as OR,readdir as SR,realpath as DR}from"node:fs/promises";import Ce from"node:path";import{homedir as Um}from"node:os";var ft=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function qm(e){let t=Ce.resolve(e),r=await Fm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ce.parse(t).root||t===Ce.resolve(Um()))throw new ft("WORKSPACE_PATH_UNSAFE");let n=await DR(t);if(n!==t)throw new ft("WORKSPACE_PATH_UNSAFE");return n}async function Ur(e){let t=await Fm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_PATH_UNSAFE");return OR(e)}}function Bm(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let o=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(o){r.push(o[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new ft("WORKSPACE_MANIFEST_INVALID");return r}function jR(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function On(e){let t=await qm(e),r=await Ur(Ce.join(t,"pnpm-workspace.yaml"));if(!r)throw new ft("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Bm(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await SR(Ce.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&o.push(`${a}/${c.name}`)}else if(!i.includes("*"))o.push(i);else throw new ft("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Ur(Ce.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>Object.freeze({relativeRoot:i,bytes:o})))}async function Jt(e){let t=await qm(e);if(await Ur(Ce.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Ur(Ce.join(t,"pnpm-workspace.yaml")))throw new ft("WORKSPACE_NESTED_UNSUPPORTED");let r=Ce.dirname(t),n;for(;r!==Ce.parse(r).root&&r!==Ce.resolve(Um());){let o=await Ur(Ce.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new ft("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Ce.dirname(r)}if(!n||!await Ur(Ce.join(n.root,"pnpm-lock.yaml"))||!await Ur(Ce.join(n.root,"project-capabilities.json")))throw new ft("WORKSPACE_OWNER_MISSING");let i=Ce.relative(n.root,t).split(Ce.sep).join("/");if(!i||i.startsWith("../")||Bm(n.manifest.toString("utf8")).filter(o=>jR(o,i)).length!==1)throw new ft("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:h(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var zm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function Bl(e){let t=await ql(e);for(let r of t){let n=await Bt({projectRoot:e,planId:r.planId});if(n!==null&&zm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Fl({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 CR(e){let t=await Bl(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ki({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Ml({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Gm(e){let t=await CR(e);if(t.kind!=="none")return t;let r=await Jt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await ql(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 Bt({projectRoot:r.transactionRoot,planId:o});if(!a||!zm.has(a.state))return t;let s=await ki({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as $R,readFile as zl,realpath as Jm}from"node:fs/promises";import Ni from"node:path";var TR=new Set(["MIT","Apache-2.0","UNLICENSED"]),LR=new Set(["public","restricted","private"]),xR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,VR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function MR(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 qr(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 mr(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(m=>m.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((m,u)=>m!==a[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:d,publishAccess:l,repository:p}=r;if(s===void 0||s.length>214||!xR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!VR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(d===void 0||!TR.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(l===void 0||!LR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(l==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:d,publishAccess:l,...o?{repository:MR(p)}:{}}}function Gl(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:f,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let d=await Promise.all(c.map(u=>Wm(i,u.path))),l=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==o).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:d,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[o,s]]),m=new Map;for(let u of l.operations)u.disposition==="ready"&&u.kind!=="remove"&&m.set(u.path,p.get(u.path));return{...n,manifest:r,plan:l,desiredContents:m}}function Di(e){return Br(e,"workspace-npm-package")}function ji(e){return Br(e,"workspace-node-application")}function Ci(e){return Br(e,"workspace-web-application")}function $i(e){return Br(e,"workspace-expo-application")}async function Km(e){if(e.currentLock!==void 0){let n=await Oi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Oi({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Ym(e){if(e.currentLock!==void 0){let n=await Si(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Si({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Hm(e){if(e.currentLock!==void 0){let n=await Sn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Sn({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Zm(e){if(e.currentLock!==void 0){let n=await Di(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Di({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Xm(e){if(e.currentLock!==void 0){let n=await ji(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ji({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function 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}}import{lstat as fE,readFile as ja,realpath as mE}from"node:fs/promises";import qi from"node:path";var At=class extends Error{code;constructor(t,r){super(r),this.code=t}},zr=/^sha256:[a-f0-9]{64}$/,zR=/^sha512-[A-Za-z0-9+/]{86}==$/,GR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,rg=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,JR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,tg=/^[a-z][a-z0-9._:-]{2,127}$/;function Gr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function WR(e){if(!Gr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!rg.test(e.registryId)||!tg.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)||!Gr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!Gr(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&&!tg.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 Kl(e){if(!WR(e))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:h(k(t))})}function Ti(e){let t=e;if(typeof t!="object"||t===null||!Gr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!zr.test(t.revision))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Kl(i).revision!==n)throw new At("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function KR(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 Yl(e,t){let r=Ti(t);if(!Gr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!KR(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function ng(e,t){let r=e;if(typeof r!="object"||r===null||!Gr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!zr.test(r.bindingDigest))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Yl(o,t).bindingDigest!==i)throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function YR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return Gr(e,t)&&rg.test(e.registryId)&&zr.test(e.registryConfigRevision)&&JR.test(e.packageName)&&GR.test(e.version)&&zR.test(e.integrity)&&zr.test(e.tarballDigest)&&zr.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&&zr.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Hl(e){if(!YR(e))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function ig(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!zr.test(t.receiptId))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Hl(i).receiptId!==n)throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Oe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Li(e){return h(k(e))}var Zl=/^sha256:[a-f0-9]{64}$/u,HR=/^sha512-[A-Za-z0-9+/]{86}==$/u,ZR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ha=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,XR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,QR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function wa(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function og(e){return h(k(e))}function ag(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:og(n),desiredLockfile:t};sg(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 sg(e){if(!wa(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(i=>Zl.test(i)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!ha.test(e.workerReleaseId)||!ha.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||h(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!wa(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!wa(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ha.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>Zl.test(o))))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!wa(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!QR.test(i.identity)||!XR.test(i.packageName)||!ha.test(i.registryId)||!ZR.test(i.version)||!HR.test(i.integrity)||typeof i.managed!="boolean"||!Zl.test(i.edgesDigest)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(og(n)!==e.jobId)throw new Oe("RESOLUTION_EVIDENCE_INVALID")}function Xl(e,t){if(sg(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Oe("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(o=>o.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(o=>o.managed&&o.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var Z=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function ba(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 Ia=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,cg=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Ql(e){return Array.isArray(e)?`[${e.map(Ql).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)}:${Ql(r)}`).join(",")}}`:JSON.stringify(e)}function Wt(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 mt(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 va(e){for(let t of[mt(e.dependencies),mt(e.devDependencies),mt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!Ia.test(n)||cg.test(n)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}var eE=["dependencies","devDependencies","optionalDependencies"];function ka(e,t){let r=[];for(let n of eE)for(let[i,o]of Object.entries(mt(e[n]))){if(t.has(i)){if(!Ia.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 ed(e){let t=Wt(e.packageJson);va(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="runtime").map(({packageName:o,version:a})=>[o,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="development").map(({packageName:o,version:a})=>[o,a])),i={...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
31
|
-
`)}function
|
|
32
|
-
`)}function
|
|
33
|
-
`)}function
|
|
34
|
-
`)}function
|
|
35
|
-
`),c=e.endpointBindings.filter(
|
|
36
|
-
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,m=e.endpointBindings.filter(g=>n.some(y=>y.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(l)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:m.map(({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:ka(Wt(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),l],[p("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function _a(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=Wt(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Wt(a),c="topology"in e,d=c?ka(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||va(o),c||va(s);let l=new Map(e.registryConfigs.map(I=>{let _=Ti(I);return[_.registryId,_]})),p=new Map(e.endpointBindings.map(I=>{let _=l.get(I.registryId);if(_===void 0)throw new Z("PACKAGE_SOURCE_NOT_FOUND");let O=ng(I,_);return[O.registryId,O]})),m=new Map(e.receipts.map(I=>{let _=ig(I);return[_.receiptId,_]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),f=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(xi({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:_,version:O,integrity:T})=>({registryId:I,packageName:_,version:O,integrity:T})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(xi({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_})),managedSources:e.release.packageSources.map(({registryId:I,packageName:_,version:O,integrity:T})=>({registryId:I,packageName:_,version:O,integrity:T})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:_,version:O,integrity:T})=>({registryId:I,packageName:_,version:O,integrity:T}))}: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 _=l.get(I.registryId),O=p.get(I.registryId),T=m.get(I.deliveryReceiptId),fe=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(T!==void 0&&(t==="production"&&T.provenance==="development-readback-verified"||t==="development"&&T.provenance!=="development-readback-verified"))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");if(!_||!O||Date.parse(O.expiresAt)<=Date.parse(e.expiresAt)||_.status!=="enabled"||!_.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!T||!fe||!$)throw new Z("PACKAGE_SOURCE_NOT_FOUND");if(T.registryId!==I.registryId||T.registryConfigRevision!==_.revision||T.packageName!==I.packageName||T.version!==I.version||T.integrity!==I.integrity||T.tarballDigest!==I.tarballDigest||fe.integrity!==I.integrity||fe.tarballDigest!==I.tarballDigest||fe.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new Z("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!Ia.test(I.version)||fe.lifecycleScripts.length>0)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Q]of Object.entries(fe.dependencies)){let ce=f.get(P);if(P.startsWith("@aipt/")&&(!ce||ce.version!==Q||!Ia.test(Q)))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Q}`)});if(cg.test(Q))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?xi({release:e.release,packageJson:a}):ed({release:e.release,packageJson:a}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...l.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,revision:_})=>Object.freeze({registryId:I,revision:_})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:_,bindingDigest:O,expiresAt:T})=>Object.freeze({registryId:I,registryConfigRevision:_,bindingDigest:O,expiresAt:T})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(d.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},R=h(Ql(b));return Object.freeze({...b,planId:R,desiredPackageJson:A,desiredLockfile:y.lockfile})}function Aa(e){return _a(e,"production")}function Ra(e){return _a(e,"development")}function Ea(e){return _a(e,"production")}function Pa(e){return _a(e,"development")}function tE(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",d=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!d)throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION")}async function pg(e){tE(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await dr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await pr(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await Sl({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 gg=nn(jr(),1);var yg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],hg="^[a-z0-9][a-z0-9._-]{0,127}$",Vi="^[A-Z][A-Z0-9_]{0,127}$",ug="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",rE={$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:hg},profile:{enum:yg}}},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:Vi},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:Vi},runtimeEnvironmentVariable:{type:"string",pattern:Vi},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:ug},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:Vi},runtimeEnvironmentVariable:{type:"string",pattern:Vi},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:ug}}}]}}}},fg=new gg.Ajv2020({allErrors:!0,strict:!0}).compile(rE),mg=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,nE=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,qe=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function nd(e){let t=W(e),r=t.profile?.id;if(!yg.includes(r))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(hg,"u").test(i))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function Mi(e,t){if(!fg(e))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",fg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set,o=new Set;for(let l of r.bindings){if(n.has(l.name))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${l.name}`);if(n.add(l.name),l.kind==="value"){if(mg.test(l.name))throw new qe("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 qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${l.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let p=l.runtimeEnvironmentVariable??l.name;if(i.has(p))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u8FD0\u884C\u65F6\u73AF\u5883\u53D8\u91CF\u540D\u79F0\u91CD\u590D\uFF1A${p}`);i.add(p);let m=l.kind==="secret-file"?"secrets/":"certs/";if(l.kind==="certificate-file"&&(mg.test(l.name)||nE.test(l.name)))throw new qe("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(m)||u.some(f=>f===""||f==="."||f===".."))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${l.name} \u5FC5\u987B\u4F4D\u4E8E ${m} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(o.has(l.file))throw new qe("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,d=l=>{if(c.has(l))return;if(s.has(l))throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6D3E\u751F\u914D\u7F6E\u5B58\u5728\u5FAA\u73AF\u5F15\u7528\uFF1A${l}`);s.add(l);let p=a.get(l);if(p?.kind==="secret-file"&&p.provisioning?.strategy==="derived")for(let m of p.provisioning.template.matchAll(/\$\{([A-Z][A-Z0-9_]{0,127})\}/gu)){let u=m[1],f=a.get(u);if(!f||f.kind==="certificate-file")throw new qe("APPLICATION_CONFIG_CONTRACT_INVALID",`${l}\u5F15\u7528\u672A\u77E5\u6216\u4E0D\u5141\u8BB8\u7684\u914D\u7F6E\uFF1A${u}`);d(u)}s.delete(l),c.add(l)};for(let l of a.keys())d(l);if(t!==void 0){let l=nd(t);if(r.application.id!==l.id||r.application.profile!==l.profile)throw new qe("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Na(e){let t=nd(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 Mi(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
-
`)}var
|
|
38
|
-
`)}function bg(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 we("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 we("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=vg(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new we("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function cE(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 we("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 Sa(e){return`sha256:${aE("sha256").update(e).digest("hex")}`}async function Ig(e,t,r){let n=await Fi(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new we("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}var lE=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),dE=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function id({projectRoot:e,environment:t=process.env}){let r=await Oa(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await Fi(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[o,a]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(n)]),s=JSON.parse(o.toString("utf8")),c=Mi(JSON.parse(a.toString("utf8")),s),d=await gt(X.join(r,".dyyto/application-config-binding.json")).catch(p=>{if(p.code==="ENOENT")return null;throw p});if(!d)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Sa(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let l=bg(JSON.parse(d.toString("utf8")),s);try{let p=await Ui({projectRoot:r,environment:t}),m=p.entries.filter(f=>f.required&&!f.configured).map(f=>f.name),u=m.length?"incomplete":"ready";return{schemaVersion:1,...p,state:u,needsConfigInit:u==="incomplete",missingBindings:m}}catch(p){let m=p instanceof we?p.code:p.code??"APPLICATION_CONFIG_UNKNOWN",u=dE.has(m)?"missing":lE.has(m)?"incomplete":"invalid",f=await _g(r,l.application.id,t).catch(()=>{});return{schemaVersion:1,application:l.application.id,environment:"local",configDirectory:f??null,contractDigest:Sa(a),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:m,entries:[]}}}catch(o){let a=o instanceof we||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 pE=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function kg({workspaceRoot:e,environment:t=process.env}){let r=await Oa(X.resolve(e));if(W(JSON.parse(await gt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new we("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await On(r),o=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),d=X.join(c,"project-capabilities.json"),l=await gt(d,"utf8").catch(()=>null),p=await Fi(X.join(c,"config/application-config.json")).then(f=>f.isFile()&&!f.isSymbolicLink()).catch(()=>!1),m="";if(l!==null)try{m=W(JSON.parse(l)).profile?.id??""}catch{p&&(m="invalid-application")}if(!pE.has(m)&&!p)continue;let u=await id({projectRoot:c,environment:t}).catch(f=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:f instanceof Error&&"code"in f?String(f.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));o.push({unit:s.relativeRoot,readiness:u})}let a=s=>o.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:o.length,ready:a("ready"),missing:a("missing"),incomplete:a("incomplete"),invalid:a("invalid"),notDeclared:a("not-declared"),needsConfigInit:o.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(o.map(s=>Object.freeze(s)))})}async function uE(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await gt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let o=X.relative(n,e);if(!/^(?:apps|services|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(o))throw new we("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 we)throw i}n=X.dirname(n)}return X.join(t,r)}async function _g(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new we("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let o=await Fi(n).catch(()=>null);if(!o?.isFile()||o.isSymbolicLink()||o.nlink!==1||(o.mode&511&-385)!==0)throw new we("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await gt(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new we("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,d)=>d.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 we("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await uE(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Ui({projectRoot:e,environment:t=process.env}){let r=await Oa(X.resolve(e)),[n,i,o]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(X.join(r,".dyyto/application-config-binding.json")),gt(X.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=bg(JSON.parse(i.toString("utf8")),a),c=Mi(JSON.parse(o.toString("utf8")),a),d=await _g(r,s.application.id,t);if(!d||!X.isAbsolute(d))throw new we("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let l=await Oa(d),p=await Fi(l);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new we("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let m=X.relative(r,l);if(m===""||!m.startsWith("..")&&!X.isAbsolute(m))throw new we("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 Ig(u,"\u5E94\u7528.env",c.bindings.length===0);let f=cE(await gt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let T=f[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:T.length>0,source:"APP_CONFIG_DIR",display:T});continue}if(f[y.name]!==y.file)throw new we("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(l,y.file),b=X.relative(l,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new we("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await Ig(A,y.name,!0),I=await gt(A),_=I.length>0,O;if(_&&y.kind==="certificate-file")try{let T=new sE(I);O={subject:T.subject,issuer:T.issuer,validFrom:T.validFrom,validTo:T.validTo}}catch{throw new we("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:_,source:"APP_CONFIG_DIR",display:_?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",..._?{fingerprint:Sa(I),updatedAt:R.mtime.toISOString()}:{},...O?{certificate:O}:{}})}return{application:s.application.id,environment:"local",configDirectory:l,contractDigest:Sa(o),entries:g}}var Jr="project-capabilities.json",Ag=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function gE(e,t){if(!Ag.test(e)||!Ag.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 yE(e,t){let r=qi.join(e,...t.split("/"));try{let n=await fE(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 ja(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function Ca(e,t){let r=W(e),n=t.release,i=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return Gl(mr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Jl(mr(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 od(e){let t=W(e.manifest),r=Ke(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&&gE(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await mE(qi.resolve(e.projectRoot)),d={...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",Ca(d,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&l.set(P.path,Na(d)),P.renderer==="application-config-binding-v1"&&l.set(P.path,Da(d));let p,m=c,u="package.json",f;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 Q=await ja(qi.join(c,"package.json")),ce=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};m=ce.transactionRoot,u=ce.mode==="pnpm-shared-lockfile"?`${ce.unitRelativeRoot}/package.json`:"package.json",f=ce.lockfilePath;let ot={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Q,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ht=ce.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?Pa:Ea)({...ot,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"?Ra:Aa)({...ot,lockResolution:e.packageSource.lockResolution});p=ba(ht),l.set("package.json",ht.desiredPackageJson),l.set(f,ht.desiredLockfile)}catch(ht){throw ht instanceof Z?new M("CONSUMER_PROFILE_UNSUPPORTED",ht.code):ht}}let g=new Map(a.assets.filter(P=>P.path!==Jr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==Jr).map(P=>{let Q=l.get(P.path);if(Q===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(Q)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),A=[],b=[];for(let P of w){let Q=await yE(c,P);A.push(Q);let ce=g.get(P),ot=y.get(P),ht=i.assets.find(Zh=>Zh.path===P);if(ht?.ownership==="seed-file"&&Q.exists&&Q.digest!==void 0){y.set(P,Q.digest),l.set(P,await ja(qi.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Q.digest,desiredDigest:Q.digest});continue}if(ce===void 0){if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ht?.ownership??"owned-file",desiredDigest:ot})}else ot===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:ce}):b.push({path:P,kind:"replace",ownership:ht?.ownership??"owned-file",baseDigest:ce,desiredDigest:ot})}if(p!==void 0&&f!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let Q=l.get(f);A.push({path:f,exists:!0,digest:h(P)}),b.push({path:f,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(Q)})}let R=await ja(qi.join(c,Jr)),I=Buffer.from(`${JSON.stringify(d,null,2)}
|
|
39
|
-
`);
|
|
40
|
-
`,"utf8"),await i.sync()}finally{await i.close()}try{await hE(n,e),await bE(n),await kE(r)}catch(o){throw await vE(n,{force:!0}),o}}async function Sg(e){let t=await Et(ye.resolve(e.projectRoot)),r=ad(e.plan),n=ye.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Bi(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(ad(JSON.parse(await Rt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Kt(e){if(!$e(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=ad(JSON.parse(await Rt(ye.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 pd(e){let t=await Et(ye.resolve(e.projectRoot)),r=ld(e.receipt),n=await Kt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let o=await jn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||o===null||r.npm.stageId!==o.stageId||r.npm.tarballDigest!==o.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let i=ye.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=ld(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function Dn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=ld(JSON.parse(await Rt(ye.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 Dg(e){let t=await Et(ye.resolve(e.projectRoot)),r=$a(e.record),n=await Kt({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=ye.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=$a(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function jg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=$a(JSON.parse(await Rt(ye.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 Cg(e){let t=await Et(ye.resolve(e.projectRoot)),r=ye.join(t,".dyyto","delivery","attempts"),n;try{n=await IE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=$a(JSON.parse(await Rt(ye.join(r,i),"utf8")));if((await Kt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([jn({projectRoot:t,planId:o.planId}),Dn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function $g(e){let t=await Et(ye.resolve(e.projectRoot)),r=sd(e.record),n=await Kt({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=ye.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=sd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function jn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=sd(JSON.parse(await Rt(ye.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 Tg(e){let t=await Et(ye.resolve(e.projectRoot)),r=cd(e.record),n=await jn({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let i=ye.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Bi(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=cd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function Lg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Et(ye.resolve(e.projectRoot));try{let r=cd(JSON.parse(await Rt(ye.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 ey,readdir as sP}from"node:fs/promises";import gd from"node:path";import{mkdir as ud,open as Ma,readFile as Gi,readdir as fd,rename as Fa,rm as Zg}from"node:fs/promises";import be from"node:path";var _E=44;var xg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",AE=new Uint8Array(64),Mg=new Uint8Array(128);for(let e=0;e<xg.length;e++){let t=xg.charCodeAt(e);AE[e]=t,Mg[t]=e}function zi(e,t){let r=0,n=0,i=0;do{let a=e.next();i=Mg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Vg(e,t){return e.pos>=t?!1:e.peek()!==_E}var nC=1024*16;var RE=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 Fg(e){let{length:t}=e,r=new RE(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let d=r.indexOf(";"),l=[],p=!0,m=0;for(i=0;r.pos<d;){let u;i=zi(r,i),i<m&&(p=!1),m=i,Vg(r,d)?(o=zi(r,o),a=zi(r,a),s=zi(r,s),Vg(r,d)?(c=zi(r,c),u=[i,o,a,s,c]):u=[i,o,a,s]):u=[i],l.push(u),r.pos++}p||EE(l),n.push(l),r.pos=d+1}while(r.pos<=t);return n}function EE(e){e.sort(PE)}function PE(e,t){return e[0]-t[0]}var NE=/^[\w+.-]+:\/\//,OE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,SE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function DE(e){return NE.test(e)}function jE(e){return e.startsWith("//")}function Bg(e){return e.startsWith("/")}function CE(e){return e.startsWith("file:")}function Ug(e){return/^[.?#]/.test(e)}function La(e){let t=OE.exec(e);return zg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function $E(e){let t=SE.exec(e),r=t[2];return zg("file:","",t[1]||"","",Bg(r)?r:"/"+r,t[3]||"",t[4]||"")}function zg(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 qg(e){if(jE(e)){let r=La("http:"+e);return r.scheme="",r.type=6,r}if(Bg(e)){let r=La("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(CE(e))return $E(e);if(DE(e))return La(e);let t=La("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function TE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function LE(e,t){Gg(t,t.type),e.path==="/"?e.path=t.path:e.path=TE(t.path)+e.path}function Gg(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 d=n[c];if(!d){a=!0;continue}if(a=!1,d!=="."){if(d===".."){o?(a=!0,o--,i--):r&&(n[i++]=d);continue}n[i++]=d,o++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function Jg(e,t){if(!e&&!t)return"";let r=qg(e),n=r.type;if(t&&n!==7){let o=qg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:LE(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)}Gg(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?Ug(t||e)&&!Ug(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 xE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function VE(e,t){let r=xE(e),n=t?t+"/":"";return i=>Jg(n+(i||""),r)}var gr=0,ME=1,FE=2,UE=3,qE=4;function BE(e,t){let r=Wg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Wg(e,n+1))e[n]=GE(e[n],t);return e}function Wg(e,t){for(let r=t;r<e.length;r++)if(!zE(e[r]))return r;return e.length}function zE(e){for(let t=1;t<e.length;t++)if(e[t][gr]<e[t-1][gr])return!1;return!0}function GE(e,t){return t||(e=e.slice()),e.sort(JE)}function JE(e,t){return e[gr]-t[gr]}var Va=!1;function WE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][gr]-t;if(o===0)return Va=!0,i;o<0?r=i+1:n=i-1}return Va=!1,r-1}function KE(e,t,r){for(let n=r+1;n<e.length&&e[n][gr]===t;r=n++);return r}function YE(e,t,r){for(let n=r-1;n>=0&&e[n][gr]===t;r=n--);return r}function HE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function ZE(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 Va=a!==-1&&e[a][gr]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=WE(e,t,s,c)}function XE(e){return typeof e=="string"?JSON.parse(e):e}var QE="`line` must be greater than 0 (lines start at line 1)",eP="`column` must be greater than or equal to 0 (columns start at column 0)",Kg=-1,tP=1,Yg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=XE(e),{version:i,file:o,names:a,sourceRoot:s,sources:c,sourcesContent:d}=n;this.version=i,this.file=o,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=d,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let l=VE(t,s);this.resolvedSources=c.map(l);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=BE(p,r);else throw n.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error(`invalid source map: ${JSON.stringify(n)}`);this._decodedMemo=HE(),this._bySources=void 0,this._bySourceMemos=void 0}};function rP(e){var t;return(t=e)._decoded||(t._decoded=Fg(e._encoded))}function Hg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(QE);if(n<0)throw new Error(eP);let o=rP(e);if(r>=o.length)return xa(null,null,null,null);let a=o[r],s=nP(a,e._decodedMemo,r,n,i||tP);if(s===-1)return xa(null,null,null,null);let c=a[s];if(c.length===1)return xa(null,null,null,null);let{names:d,resolvedSources:l}=e;return xa(l[c[ME]],c[FE]+1,c[UE],c.length===5?d[c[qE]]:null)}function xa(e,t,r,n){return{source:e,line:t,column:r,name:n}}function nP(e,t,r,n,i){let o=ZE(e,n,t,r);return Va?o=(i===Kg?KE:YE)(e,n,o):i===Kg&&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"}},md=/^sha256:[a-f0-9]{64}$/,Xg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,iP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Ua=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Ji=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Cn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Qg(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=be.join(be.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Kt({projectRoot:r,planId:t.deploymentId}),i=await Dn({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await fd(be.join(be.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 oP(e){if(!Ji(e)||!Ua(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!Ji(e.error)||!Ji(e.page)||!Ua(e.error,["type","message","frames"])||!Ua(e.page,["origin","path"]))throw new se("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Xg.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"||!md.test(n)))throw new se("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!iP.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(!Ji(n)||!Ua(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 aP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Cn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Cn(a.function,256)}})),i={type:Cn(e.error.type,256),message:Cn(e.error.message,4096),frames:n},o=h(k({type:i.type,message:i.message,frames:n.slice(0,5).map(({file:a,line:s,column:c})=>({file:a,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Cn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:Cn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Yt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return be.join(be.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return be.join(be.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=oP(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=aP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await ud(a,{recursive:!0,mode:448});let s=be.join(a,`${o.eventId}.json`);try{let m=JSON.parse(await Gi(s,"utf8")),u={...m,correlation:m.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(m){if(m.code!=="ENOENT")throw m}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,d=await Ma(c,"wx",384);try{await d.writeFile(`${k(o)}
|
|
41
|
-
`,"utf8"),await
|
|
42
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
43
|
-
`),await
|
|
44
|
-
`),s=await
|
|
45
|
-
`),g=await Yi(o,u);if(!g.exists||g.digest===void 0)throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:h(f)}],w=new Map([[u,f]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let _;try{_=await Ki(Wr.join(t,"package.json"))}catch{throw new de("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 Ki(Wr.join(t,"pnpm-lock.yaml")).catch(ce=>ce.code==="ENOENT"?void 0:Promise.reject(ce)),T=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},fe=T.mode==="pnpm-shared-lockfile",$={mode:T.mode,unitRelativeRoot:T.unitRelativeRoot,unitImporterId:T.unitImporterId,lockfilePath:T.lockfilePath,...T.workspaceManifestPath?{workspaceManifestPath:T.workspaceManifestPath,workspaceManifestDigest:T.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(fe&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new Z("PACKAGE_SOURCE_POLICY_VIOLATION");let Q=fe?(e.packageChannel==="development"?Pa:Ea)({release:n,...P,consumerProfile:c,packageJson:_,currentLockfile:O,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?Ra:Aa)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:_,...O===void 0?{}:{currentLockfile:O},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=ba(Q),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Q.packageJsonPreimageDigest,desiredDigest:Q.desiredPackageJsonDigest}),w.set(a("package.json"),Q.desiredPackageJson),y.push({path:T.lockfilePath,kind:O===void 0?"create":"replace",ownership:"owned-file",...O===void 0?{}:{baseDigest:h(O)},desiredDigest:Q.desiredLockfileDigest}),w.set(T.lockfilePath,Q.desiredLockfile)}catch(O){throw O instanceof Z?new de("CAPABILITY_PACKAGE_SOURCE_INVALID",O.code):O}}for(let _ of n.assets){let O=e.release.contents.get(_.path);if(O===void 0)throw new de("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let T=_.renderer==="application-config-contract-v1"?Na(r):_.renderer==="application-config-binding-v1"?Da(r):O;if(_.ownership==="managed-region"){if(_.regionId===void 0)throw new de("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let fe;try{fe=await Ki(Wr.join(t,..._.path.split("/")))}catch{throw new de("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(hm({source:fe.toString("utf8"),regionId:_.regionId,content:Buffer.from(T).toString("utf8")}));y.push({path:a(_.path),kind:"merge",ownership:"managed-region",regionId:_.regionId,baseDigest:h(fe),desiredDigest:h($)}),w.set(a(_.path),$)}else{let fe=await Yi(t,_.path);if(_.ownership==="seed-file"&&fe.exists){let $=await Ki(Wr.join(t,..._.path.split("/")));y.push({path:a(_.path),kind:"create",ownership:"seed-file",desiredDigest:h($)}),w.set(a(_.path),$)}else y.push({path:a(_.path),kind:"create",ownership:_.ownership,desiredDigest:h(T)}),w.set(a(_.path),T)}}let b=await Promise.all(y.map(_=>Yi(o,_.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(_=>_.path!==u&&_.path!==i?.lockfilePath).map(_=>({path:i?.mode==="pnpm-shared-lockfile"?_.path.slice(i.unitRelativeRoot.length+1):_.path,ownership:_.ownership,desiredDigest:_.desiredDigest})),verifiers:n.verifiers.map(_=>({id:_.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:m,desiredContents:w,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var oy=nn(jr(),1);var cP={$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:St},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}}}}},TC=new oy.Ajv2020({allErrors:!0,strict:!0}).compile(cP);var dy=nn(jr(),1);import{readFile as lP,realpath as dP}from"node:fs/promises";import ay from"node:path";var sy="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",cy="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",pP={$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:sy},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:St},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:cy,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:sy}},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:cy,maxLength:240}}}}}},ly=new dy.Ajv2020({allErrors:!0,strict:!0}).compile(pP),Kr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function uP(e){return h(k(e))}function fP(e){if(!ly(e))throw new Kr("EXAMPLE_RECIPE_INVALID",ly.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 Kr("EXAMPLE_RECIPE_INVALID");return t}async function py(e){let t=await dP(ay.resolve(e)),r;try{r=fP(JSON.parse(await lP(ay.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Kr?o:new Kr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(uP(i)!==n)throw new Kr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var my=nn(jr(),1);import{readFile as mP,realpath as gP}from"node:fs/promises";import uy from"node:path";var yP={$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:St},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"]}}}},fy=new my.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(yP),Ht=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function hP(e){return h(k(e))}function wP(e){if(!fy(e))throw new Ht("TEMPLATE_INVALID",fy.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 Ht("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Ht("TEMPLATE_INVALID");return t}async function Hi(e,t=new Date){let r=await gP(uy.resolve(e)),n;try{n=wP(JSON.parse(await mP(uy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Ht?a:new Ht("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(hP(o)!==i)throw new Ht("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Ht("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as gy}from"node:fs/promises";import yy from"node:path";var IP=/^[A-Z][A-Z0-9_]*$/u,vP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function bP(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||!IP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:vP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function hy(e){let t=await gy(yy.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await gy(yy.join(e.projectRoot,t),"utf8"):"",n=await Ui({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}:{}})):bP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var wy={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"])},Iy=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function vy(e,t){if(!wy[t.plane]||t.state&&!Iy.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=wy[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(d=>r.has(d.operation)),a=[...new Map(o.map(d=>[d.projectId,{id:d.projectId,name:d.projectName}])).values()].sort((d,l)=>d.name.localeCompare(l.name)),s=o.filter(d=>(!t.projectId||d.projectId===t.projectId)&&(!t.state||d.state===t.state)&&(!t.kind||d.operation===t.kind)&&(n===null||Date.parse(d.createdAt)>=n)&&(i===null||Date.parse(d.createdAt)<=i)).sort((d,l)=>l.updatedAt.localeCompare(d.updatedAt)),c={total:s.length,running:s.filter(d=>d.state==="running"||d.state==="queued").length,succeeded:s.filter(d=>d.state==="succeeded").length,attention:s.filter(d=>d.state==="failed"||d.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(a),states:Object.freeze([...Iy]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var rt=class extends Error{code;constructor(t){super(t),this.code=t}},kP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,by=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,_P=/^sha512-[A-Za-z0-9+/]{86}==$/u,qa=/^sha256:[a-f0-9]{64}$/u,AP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,RP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,EP=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Yr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function PP(e){if(!Yr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!kP.test(e.packageName)||!by.test(e.version)||!AP.test(e.assetName)||!_P.test(e.integrity)||!qa.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)||!by.test(n)||RP.test(n))?!1:e.lifecycleScripts.every(r=>EP.has(r))}function wd(e){if(!Yr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(o=>Object.freeze({...o,dependencies:Object.freeze({...o.dependencies}),lifecycleScripts:Object.freeze([...o.lifecycleScripts])}));if(t.some(o=>!PP(o)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(o=>o.packageName+"@"+o.version);if(new Set(r).size!==r.length||r.some((o,a)=>a>0&&o.localeCompare(r[a-1])<=0))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(o=>o.packageName));for(let o of t)for(let[a,s]of Object.entries(o.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function Hr(e){let t=e;if(typeof t!="object"||t===null||!Yr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!qa.test(t.bundleId)||!Array.isArray(t.artifacts))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");if(wd({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function Id(e){if(!Yr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Yr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!qa.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let r=Hr(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 ky(e){let t=e;if(typeof t!="object"||t===null||!Yr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!qa.test(t.planId)||!Yr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");if(Id({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");return t}function _y(e){let t=Hr(e.bundle),r=Ti(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Hl({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 Qe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},Ay=/^sha256:[a-f0-9]{64}$/u,Ba=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function vd(e){if(!Ba.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>Ay.test(r))||!Ba.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 Qe("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function Ry(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let r=vd({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 Qe("RESOLUTION_WORKER_BUILD_INVALID");return r}function bd(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>Ay.test(r))||!Ba.test(e.workerReleaseId)||!Ba.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function za(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let r=bd({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 Qe("RESOLUTION_WORKER_BUILD_INVALID");return r}var Zi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},kd=/^sha256:[a-f0-9]{64}$/u,NP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function _d(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>kd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!NP.test(r.path)||!kd.test(r.currentDigest)||!kd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Zi("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 Ey(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Zi("RECOVERY_OVERRIDE_INVALID");let r=_d({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 Zi("RECOVERY_OVERRIDE_INVALID");return r}var Xi=class extends Error{code;constructor(t,r){super(r),this.code=t}},Rd=/^sha256:[a-f0-9]{64}$/u,OP=/^sha512-[A-Za-z0-9+/]{86}==$/u,SP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,DP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,jP=/[\u0000-\u001f\u007f]/u;function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Tn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function Zt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!jP.test(e)}function Ad(e){return Zt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Py(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Zt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function CP(e){return e===null?!0:!$n(e)||!Tn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:Ad(e.fileName)&&Rd.test(String(e.digest))&&OP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function $P(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence"])||e.schemaVersion!==1||e.kind!=="PackageRelease"||!SP.test(e.packageName)||!DP.test(e.version)||!Zt(e.title,120)||!Zt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!$n(e.source)||!Tn(e.source,["repository","path","revision","treeDigest"])||!Zt(e.source.repository)||!Ad(e.source.path)||!Zt(e.source.revision,200)||!Rd.test(String(e.source.treeDigest))||!CP(e.artifact)||!$n(e.compatibility)||!Tn(e.compatibility,["node","packageManager"])||!Zt(e.compatibility.node,100)||!Zt(e.compatibility.packageManager,100)||!Py(e.exports)||!Py(e.consumerEvidence)||!$n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Tn(e.documentation,t)||!Ad(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Zt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function TP(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(!$P(t))throw new Xi("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function Ny(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Rd.test(String(e.releaseDigest)))throw new Xi("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,o=TP(i);if(o.releaseDigest!==t)throw new Xi("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as LP,readFile as xP,realpath as VP}from"node:fs/promises";import Oy from"node:path";async function Sy(e){let t=await VP(Oy.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",d=`${s.path}\0`;if(c==="managed-region")n.delete(d);else for(let p of n.keys())p.startsWith(d)&&n.delete(p);let l=c==="managed-region"?`${d}${s.regionId??""}`:d;n.set(l,{capabilityId: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=Oy.join(t,...a.path.split("/")),d=await LP(s).then(async l=>{if(!l.isFile()||l.isSymbolicLink())return;let p=await xP(s);if(a.ownership!=="managed-region")return h(p);if(a.regionId!==void 0)try{return h(Ho(p.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:d?"noop":"conflict",...d?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return o}import{createHash as MP}from"node:crypto";var FP=/[\u0000-\u001f\u007f]/u,Ga=e=>`sha256:${MP("sha256").update(Ed(e)).digest("hex")}`,Ed=e=>Array.isArray(e)?`[${e.map(Ed).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)}:${Ed(r)}`).join(",")}}`:JSON.stringify(e),yr=(e,t)=>{if(!e.trim()||e.length>500||FP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},UP=e=>Object.freeze({repository:yr(e.repository,"repository"),branch:yr(e.branch,"branch"),commit:yr(e.commit,"commit")});function Dy(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:yr(e.intentId,"intent_id"),title:yr(e.title,"title"),summary:yr(e.summary,"summary"),repository:UP(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>yr(r,"acceptance")))};return Object.freeze({...t,intentDigest:Ga(t)})}function jy(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:yr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:Ga(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:Ga(r)})}function Cy(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:Ga(i)})}import{readFile as oe,readdir as Ky,realpath as Pt}from"node:fs/promises";import{execFile as rN,spawn as nN}from"node:child_process";import N from"node:path";import{parseArgs as pe,promisify as iN}from"node:util";import{lstat as $y,mkdir as Nd,readFile as Ty,realpath as Pd,rm as qP,writeFile as Ly}from"node:fs/promises";import nt from"node:path";var it=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},BP=e=>k(e),xy=e=>h(BP(e));async function Vy(e,t){let r=await Pd(nt.resolve(e)),n=nt.join(r,".examples");await Nd(n,{recursive:!0});let i=await Pd(n),o=nt.resolve(r,t);if(nt.dirname(o)!==i||nt.basename(o).startsWith(".")||nt.basename(o).length<1)throw new it("SCAFFOLD_ARGUMENT_INVALID");if(await $y(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new it("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:nt.relative(r,o)}}async function My(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new it("SCAFFOLD_ARGUMENT_INVALID");let r=await Vy(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:xy(i)},a=nt.join(r.workspaceRoot,".dyyto","scaffold-plans");await Nd(a,{recursive:!0});let s=nt.join(a,`${o.planId}.json`);return await Ly(s,`${k(o)}
|
|
46
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
47
|
-
`)throw new
|
|
48
|
-
`,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as Qi,readFile as Od,readdir as GP,realpath as Sd}from"node:fs/promises";import he from"node:path";var Uy={capabilities:he.resolve(import.meta.dirname,"catalog"),packages:he.resolve(import.meta.dirname,"package-releases")};function By(e,t){return e<t?-1:e>t?1:0}function Wa(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Wa).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>By(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Wa(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function JP(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 qy(e,t){let r=await Qi(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 Ja(e,t){let r=await Qi(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 Sd(e)}async function WP(e){let t=e;for(;;){if(await Qi(he.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=he.dirname(t);if(r===t)return;t=r}}async function KP(e){if(!he.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ja(e,"IDP_CONFIG_DIR");await WP(t);let r=await Ja(he.join(t,"components"),"components"),n=await Ja(he.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=he.relative(t,n);if(i.startsWith("..")||he.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=he.join(n,".env");await qy(o,"Dyyto \u7EC4\u4EF6 .env");let a=JP(await Od(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(he.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=he.resolve(n,a),c=he.relative(n,s);if(c===""||c.startsWith("..")||he.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let d=n;for(let u of c.split(he.sep).slice(0,-1))d=await Ja(he.join(d,u),"Package Catalog Binding \u7236\u76EE\u5F55");let l=await Sd(he.dirname(s)),p=he.relative(n,l);if(p.startsWith("..")||he.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await qy(s,"Package Catalog Binding");let m=[];for(let u of(await Od(s,"utf8")).split(/\r?\n/u)){let f=u.trim();if(f===""||f.startsWith("#"))continue;if(!he.isAbsolute(f))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Qi(f);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Sd(f),w=await Qi(y);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");m.includes(y)||m.push(y)}return m.sort()}async function YP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await KP(e);return{capabilities:Uy.capabilities,packages:[Uy.packages,...t]}}async function Ka(e){return(await GP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function HP(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 ZP(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 XP(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 QP(e){let t=[];for(let r of await Ka(e))for(let n of await Ka(he.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(he.join(e,r,n)).then(o=>({entry:{item:ZP(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 eN(e){let t=[];for(let r of await Ka(e))for(let n of await Ka(he.join(e,r))){let i=he.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push(Od(i,"utf8").then(a=>{let s=Ny(JSON.parse(a));return{entry:{item:XP(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 Dd(e){let t=e??await YP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([QP(t.capabilities),...r.map(eN)]),o=[...n.entries,...i.flatMap(d=>d.entries)].sort((d,l)=>d.item.ref.localeCompare(l.item.ref)),a=[],s=new Set,c=[];for(let d of o)s.has(d.item.ref)?c.push({ref:d.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(d.item.ref),a.push(d));return{entries:a,diagnostics:[...n.diagnostics,...i.flatMap(d=>d.diagnostics),...c].sort((d,l)=>d.ref.localeCompare(l.ref))}}async function Ya(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await Dd(e.roots),n=new Map;for(let{item:a}of r.entries){if(e.kind!==void 0&&a.kind!==e.kind)continue;let s=[a.id,a.version,a.title,a.summary,a.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${a.kind}:${a.id}`,d=n.get(c);(d===void 0||HP(d.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 Ha(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await Dd(e.roots),n=r.entries.find(({item: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 tN(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}`,d=t.get(c)??new Set;d.add(o),t.set(c,d)}}return t}async function zy(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await Dd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=tN(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)=>By(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:h(Wa(o))})}function Gy(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Wa(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
-
`}var eo={"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"},Yy=iN(rN),oN=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"]),Hy=(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,Za={"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 Zy(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Xa(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new de("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 Jt(e),c=await oe(N.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new de("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new de("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=xi({release:t.release,packageJson:n??i}),m=new Date,u=new Date(m.getTime()+1800*1e3).toISOString(),f=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:m.toISOString(),expiresAt:u});return{...o,lockResolution:{lockfile:f.evidence.desiredLockfile,packages:f.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A}))},resolutionEvidence:f.evidence,resolutionWorkerReleaseId:f.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:f.preservedImporterDigests}}let d=ed({release:t.release,packageJson:n??i}),l=await a({desiredPackageJson:d,...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 Xy(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await oe(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return iy({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 de("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new de("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 Jt(e),d=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)??[])),p=i.packageAdoption.sources.filter(b=>!l.has(b.packageName)),m=c.mode==="pnpm-shared-lockfile"?rd({packageJson:a,remove:p}):td({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),f=new Date,g=new Date(f.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new de("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:m,currentLockfile:d,sources:u,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:f.toISOString(),expiresAt:g}),R=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(_=>`${c.unitRelativeRoot}/${_.path}`)],I=await Promise.all(R.map(async _=>oe(N.join(c.transactionRoot,..._.split("/"))).then(O=>({path:_,exists:!0,digest:h(O)})).catch(O=>O.code==="ENOENT"?{path:_,exists:!1}:Promise.reject(O))));return{...dg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:d,endpointBindings:o.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:f.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),w=await y({desiredPackageJson:m,currentLockfile:d,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>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{...lg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:d,desiredLockfile:w.lockfile,endpointBindings:o.endpointBindings,observedAssets:A,generatedAt:f.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Te(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Qa(e,t){return oN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function aN(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 te(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function es(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 Re(Te(r.capabilityId,r.version)),i=await Ue(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Oi:t.profile?.id==="react-component-library"?Si:t.profile?.id==="nextjs-full-stack-application"?Sn:t.profile?.id==="workspace-npm-package"?Di:t.profile?.id==="workspace-node-application"?ji:t.profile?.id==="workspace-web-application"?Ci:t.profile?.id==="workspace-expo-application"?$i:ea)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Gt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function Qy(e){let t;try{t=pe({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,y]=r.split("@");n=await Hi(Qa(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:eo[i]);if(n!==void 0&&s.split("@")[0]!==eo[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,d]=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,A=t.values["publish-access"],b=t.values.repository;if([g,y,w,A].some(R=>typeof R!="string")||d==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${d==="1.1.0"?", and --repository":""}.`);l={name:String(g),version:String(y),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");l={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:l},capabilities:[{capabilityId:c,version:d}]};(i==="standalone-npm-package"||i==="react-component-library")&&mr(W(p),i),i==="nextjs-full-stack-application"&&qr(W(p));let m=await ga({projectRoot:t.positionals[0],manifest:p}),u=await es(m.projectRoot),f=te(m.projectRoot);return{outputMode:B(e),human:`Project '${f}' initialized.
|
|
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 Ri(i,o,384,r),await mt({context:Sn(r),operation:"rename",bytes:o.byteLength,run:()=>la(i,e)}),await gt(n,r)}function Ol(e){return{...e,journalDigest:h(k(e))}}function dR(e){let t;try{t=Am(e)}catch{throw new $("JOURNAL_CORRUPTED","Transaction journal shape is invalid")}let{journalDigest:r,...n}=t;if(r!==h(k(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 Sl(e){try{return dR(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=Ol(i);return await Nl(e,o,r),o}async function fa(e){let t=Y.resolve(e),r=Y.parse(t);if(t===r.root||t===Y.resolve(cR()))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 sR(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:h(r),mode:t.mode&511}}catch(t){if(t.code==="ENOENT")return;throw t}}function uR(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 fR(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 Dl(e,t,r){try{await Ri(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 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 Ll(i,o,r),await mt({context:ha(r),operation:"rename",bytes:o.byteLength,run:()=>bR(i,e)}),await wa(n,r)}function xl(e){return{...e,journalDigest:h(k(e))}}async function ma(e,t,r){let{journalDigest:n,...i}=t,o=xl(i);return await Ni(e,o,r),o}async function Dm(e){try{let t=JSON.parse(await Oi(e,"utf8")),{journalDigest:r,...n}=t;if(t.schemaVersion!==1||!Array.isArray(t.evidence)||r!==h(k(n)))throw new Error("invalid journal");return t.evidence.forEach(_i),Ze(t.lock),t}catch{throw new Re("METADATA_JOURNAL_CORRUPTED","Metadata journal cannot be trusted")}}async function Vl(e,t,r){try{await Ll(e,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
18
|
+
`),r),await wa(Oe.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new Re("METADATA_TRANSACTION_ACTIVE","Another metadata transaction is active"):n}}function jm(e,t){let r={...t,capabilityId:e.capabilityId,capabilityVersion:e.version,capabilityIntegrity:e.integrity};return{...r,evidenceId:h(k(r))}}function Cm(e,t,r){let n=t.map(Im),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 Re("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 Re("VERIFICATION_FAILED",`Verifier ${a.verifierId} did not pass`);if(a.projectStateDigest!==r)throw new Re("PROJECT_STATE_CHANGED","Verification result belongs to a different project state")}return n}async function kR(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(k(i)!==k(t))throw new Re("METADATA_JOURNAL_CORRUPTED","Existing evidence content does not match its identity");return}await Ll(n,Buffer.from(`${JSON.stringify(t,null,2)}
|
|
19
|
+
`),r),await wa(e,r)}async function _R(e,t,r,n){if(await yr(e)){let i=Ze(JSON.parse(await Oi(e,"utf8")));if(k(i)===k(t))return;if(r===void 0||h(k(i))!==r)throw new Re("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 Ml(e,t,r){let n=Si(e,t.planId),i=t;try{for(let o of i.evidence)await kR(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 _R(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 $l(n.transactionLock),await wa(n.platformDirectory,Wt(r?.durabilityTrace,"directory",`${i.transactionId}:unlock`)),i.lock}catch(o){if(o instanceof Pi)throw new Re("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 AR(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 Re("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 Re("PROJECT_STATE_CHANGED","Managed project assets no longer match the approved plan")}let a=Cm(e.release,e.verificationResults,i.projectStateDigest).map(m=>jm(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??[],p=e.previousLock!==void 0&&e.plan.action==="adopt"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):e.previousLock!==void 0&&e.plan.action==="upgrade"?[...c.filter(m=>m.capabilityId!==e.release.capabilityId),s].sort((m,g)=>m.capabilityId.localeCompare(g.capabilityId)):[s],l={schemaVersion:p.some(m=>m.packageAdoption!==void 0)?2:1,capabilities:p};Ze(l);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(k(m)===k(l))return m;throw new Re("PROJECT_STATE_CHANGED","An incompatible project lock already exists")}let f=Tl();if(await Vl(d.transactionLock,{planId:e.plan.planId,transactionId:f,createdAt:e.committedAt},Wt(e.hooks?.durabilityTrace,"lock",`${f}:metadata-lock`)),await yr(d.transactionDirectory))throw await $l(d.transactionLock),new Re("METADATA_TRANSACTION_ACTIVE","This plan already has a metadata transaction");await jn(d.transactionDirectory,{recursive:!0,mode:448});let u=xl({schemaVersion:1,planId:e.plan.planId,transactionId:f,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:a,lock:l,...e.previousLock===void 0?{}:{previousLockDigest:h(k(Ze(e.previousLock)))}});await Ni(d.journal,u,Wt(e.hooks?.durabilityTrace,"journal",`${f}:prepared`));try{await ya(e.hooks,"journal-prepared")}catch(m){throw m instanceof Pi?new Re("METADATA_RECOVERY_REQUIRED","Metadata commit was interrupted"):m}return Ml(t,u,e.hooks)}async function Fl(e){return AR(e)}async function Ul(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 Re("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 Re("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})),p=await Fr({projectRoot:t,expectedAssets:c}),d=Cm(e.release,e.verificationResults,p.projectStateDigest).map(y=>jm(e.release,y)),f={schemaVersion:o.some(y=>y.packageAdoption!==void 0)?2:1,capabilities:o};Ze(f);let u=Si(t,e.plan.planId);await jn(u.platformDirectory,{recursive:!0,mode:448}),await jn(u.evidenceDirectory,{recursive:!0,mode:448});let m=Tl();await Vl(u.transactionLock,{planId:e.plan.planId,transactionId:m,createdAt:e.committedAt}),await jn(u.transactionDirectory,{recursive:!1,mode:448});let g=xl({schemaVersion:1,planId:e.plan.planId,transactionId:m,state:"prepared",createdAt:e.committedAt,updatedAt:e.committedAt,evidence:d,lock:f,previousLockDigest:h(k(Ze(e.previousLock)))});return await Ni(u.journal,g),Ml(t,g)}async function ql(e){let t=await Br(Oe.resolve(e.projectRoot)),r=Si(t,e.planId),n=await Dm(r.journal);return n.state==="committed"?(await yr(r.transactionLock)&&await $l(r.transactionLock),n.lock):(await yr(r.transactionLock)||await Vl(r.transactionLock,{planId:n.planId,transactionId:n.transactionId,createdAt:n.createdAt}),Ml(t,n))}async function Bl(e){let t=await Br(Oe.resolve(e.projectRoot)),r=Si(t,e.planId);if(!await yr(r.journal))return null;let n=await Dm(r.journal);return{planId:n.planId,state:n.state}}async function Be(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 Lm,readFile as $m,realpath as Tm}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 xm(e){return h(k(e))}async function RR(e,t){let r=hr.join(e,"assets",...t.split("/"));try{return await Lm(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 Ee(e){let t=await Tm(hr.resolve(e)),r;try{r=wm(JSON.parse(await $m(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(xm(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 p=await RR(t,c.path),l=await Tm(p),d=hr.join(t,"assets");if(!l.startsWith(`${d}${hr.sep}`))throw new Pt("RELEASE_ASSET_INVALID","Release asset escapes its bundle",c.path);let f=await Lm(p);if(!f.isFile()||f.isSymbolicLink())throw new Pt("RELEASE_ASSET_INVALID","Release asset must be a regular file",c.path);let u=await $m(p);if(h(u)!==c.digest)throw new Pt("RELEASE_ASSET_INTEGRITY_MISMATCH","Release asset digest does not match metadata",c.path);o.set(c.path,u)}if(r.exit.ownedAssets.length!==r.assets.length||r.exit.ownedAssets.some((c,p)=>c!==r.assets[p]?.path))throw new Pt("RELEASE_INVALID","Exit owned assets must exactly match release assets");return{release:r,contents:o}}import{link as ER,open as Mm,lstat as Vt,mkdir as Fm,readFile as zl,readdir as Ia,realpath as Mt,rm as PR,unlink as NR}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"}},OR={schemaVersion:1,profile:{id:"workspace-root",parameters:{}},capabilities:[{capabilityId:"foundation.workspace-root",version:"1.2.0"}]};function SR(){return new TextEncoder().encode(`${JSON.stringify(OR,null,2)}
|
|
20
|
+
`)}async function DR(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 jR(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 Um(e){let t=await jR(e.projectRoot,e.requiredMarkers??["package.json"]),r=K(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:h(n)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:o,desiredContents:new Map([["project-capabilities.json",n]])}}async function qm(e){let t=await DR(e.projectRoot,e.documentationOnly===!0),r=SR(),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:h(r)}],observedAssets:[{path:"project-capabilities.json",exists:!1}],generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{projectRoot:t,plan:n,desiredContents:new Map([["project-capabilities.json",r]])}}async function CR(e){let t=await Mm(e,"r");try{await t.sync()}finally{await t.close()}}async function Bm(e,t){let r=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,n=await Mm(r,"wx",384);try{await n.writeFile(t,"utf8"),await n.sync()}finally{await n.close()}try{await ER(r,e),await NR(r),await CR(le.dirname(e))}catch(i){throw await PR(r,{force:!0}),i}}async function $R(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 Fm(t)}return Mt(t)}async function va(e){let t=K(e.manifest),r=await $R(e.projectRoot),n=le.join(r,"project-capabilities.json");try{await Bm(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 TR(e){let t=await Mt(le.resolve(e.projectRoot)),r=dr(e.plan);Di(r);let n=le.join(t,".dyyto","plans");await Fm(n,{recursive:!0,mode:448});let i=le.join(n,`${r.planId}.json`);try{await Bm(i,`${k(r)}
|
|
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 Yl(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 KR(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 YR(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 HR(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 ZR(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 Zm(e,t){let r=ji.join(e,...t.split("/"));try{let n=await qR(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed target must be a regular file",t);return{path:t,exists:!0,digest:h(await Wl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Wr(e,t){let r=K(e.manifest),n=t==="workspace-node-application"||t==="workspace-web-application"||t==="workspace-expo-application"||t==="nextjs-full-stack-application"?t==="workspace-web-application"?YR(Jr(r).name):t==="workspace-expo-application"?ZR(Jr(r).name):t==="nextjs-full-stack-application"?HR(Jr(r).name):KR(Jr(r).name):t==="react-component-library"?Yl(wr(r,t)):Kl(wr(r,t));if(r.capabilities.filter(u=>u.capabilityId===e.release.release.capabilityId&&u.version===e.release.release.version).length!==1||e.release.release.consumerProfile!==t)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded standalone npm release");let a=(e.currentLock===void 0?void 0:Ze(e.currentLock))?.capabilities.find(u=>u.capabilityId===e.release.release.capabilityId);if(a!==void 0&&(a.version!==e.release.release.version||a.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Changing locked npm profile parameters or release is not supported");let s=new Map(e.release.contents);s.set("package.json",n);let c=await Hm(ji.resolve(e.projectRoot)),p=[],l=[];for(let u of e.release.release.assets){if(s.get(u.path)===void 0)throw new M("RELEASE_NOT_FOUND","Release asset content is unavailable",u.path);let g=await Zm(c,u.path);if(g.exists&&a===void 0&&e.allowExistingWithoutLock!==!0&&u.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile cannot adopt over an existing owned file without a lock",u.path);u.ownership==="seed-file"&&g.exists&&s.set(u.path,await Wl(ji.join(c,...u.path.split("/"))));let y=h(s.get(u.path));p.push(g),l.push({path:u.path,kind:"create",ownership:u.ownership,desiredDigest:y})}let d={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:l.map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},f=Ne({action:"adopt",capability:d,changes:l,observedAssets:p,generatedAt:e.generatedAt,expiresAt:e.expiresAt});return{manifest:r,release:e.release,plan:f,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 Hl(e){let t=K(e.manifest);if(t.profile?.id!=="nextjs-full-stack-application"||e.release.release.consumerProfile!=="nextjs-full-stack-application"||e.release.release.assets.some(u=>u.ownership!=="seed-file"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Historical adoption requires a seed-only Next.js Profile Release");let r=K({...t,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}),n=await $n({...e,manifest:r}),i=await Hm(ji.resolve(e.projectRoot)),o="project-capabilities.json",a=await Wl(ji.join(i,o)),s=Buffer.from(`${JSON.stringify(r,null,2)}
|
|
30
|
+
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let 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)}
|
|
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 ip(e){let t=Ht(e.packageJson);Ra(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 op(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 fg(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(f=>f.packageName)??[])),n=t.packageAdoption.sources.filter(d=>!r.has(d.packageName)),i=ip({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(f=>f.registryId===d.registryId)),p=[{path:"project-capabilities.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(s)},{path:"package.json",kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:"pnpm-lock.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:h(e.desiredLockfile)},...t.assets.map(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:p,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:1,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:h(e.desiredLockfile),registryRevisions:t.packageAdoption.registryRevisions.map(d=>({...d})),endpointBindings:c.map(({registryId:d,registryConfigRevision:f,bindingDigest:u,expiresAt:m})=>({registryId:d,registryConfigRevision:f,bindingDigest:u,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 mg(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=op({packageJson:e.packageJson,remove:n}),o=e.remainingSources.map(({registryId:g,packageName:y,version:w,integrity:_})=>({registryId:g,packageName:y,version:w,integrity:_})),a={mode:e.topology.mode,unitRelativeRoot:e.topology.unitRelativeRoot,unitImporterId:e.topology.unitImporterId,lockfilePath:e.topology.lockfilePath,...e.topology.workspaceManifestPath?{workspaceManifestPath:e.topology.workspaceManifestPath,workspaceManifestDigest:e.topology.workspaceManifestDigest}:{}},s=tp(e.resolutionEvidence,{requestDigest:Fi({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(e.currentLockfile),desiredPackageJsonDigest:h(i),sources:o,preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(i),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:g,preimageDigest:y})=>({importerId:g,preimageDigest:y})),managedSources:o,now:e.generatedAt}),c=Ht(e.projectManifest),p=Array.isArray(c.capabilities)?c.capabilities:[],l=Buffer.from(`${JSON.stringify({...c,capabilities:p.filter(g=>g.capabilityId!==e.release.capabilityId||g.version!==e.release.version)},null,2)}
|
|
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 uE=/(?:^|_)(?:CERT|CERTIFICATE|CA)(?:_|$)/u,fE=/(?:^|_)(?:PRIVATE|SECRET|TOKEN|PASSWORD|PASSWD|KEY|API_KEY|ACCESS_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u;function kg(e){let t=ap(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 p=c[1];if(n.has(p)){i=[];continue}n.add(p);let l=c[2].trim(),d=l.length>=2&&(l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'"))?l.slice(1,-1):l,f=i.join(" ");i=[];let u=/必填/u.test(f)||!/可选/u.test(f)&&d==="",m=fE.test(p),g=!m&&uE.test(p);if(m||g){let y=p.endsWith("_FILE")?p:`${p}_FILE`,w=p.toLowerCase().replace(/_file$/u,"").replaceAll("_","-");r.push(g?{name:y,...y===p?{}:{runtimeEnvironmentVariable:p},kind:"certificate-file",required:u,file:`certs/${w}.pem`}:{name:y,...y===p?{}:{runtimeEnvironmentVariable:p},kind:"secret-file",required:u,file:`secrets/${w}`,provisioning:{strategy:"external"}})}else r.push({name:p,kind:"value",required:u,...d===""?{}:{default:d}})}let o={$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(o,e.manifest)}import{createHash as mE,X509Certificate as gE}from"node:crypto";import{lstat as zi,readFile as wt,realpath as $a}from"node:fs/promises";import X from"node:path";var Ie=class extends Error{code;constructor(t,r){super(r),this.code=t}};function Ag(e){let t=K(e),r=t.profile?.parameters?.name;if(typeof r!="string"||!/^[a-z0-9][a-z0-9._-]{0,127}$/u.test(r))throw new Ie("APPLICATION_CONFIG_BINDING_IDENTITY_INVALID","\u9879\u76EE\u7F3A\u5C11\u5408\u6CD5Application identity\u3002");return{id:r,profile:t.profile.id}}function La(e){let t=Ag(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 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
|
+
`);_.push({path:Hr,exists:!0,digest:h(R)}),b.push({path:Hr,kind:"replace",ownership:"owned-file",baseDigest:h(R),desiredDigest:h(I)});let A={schemaVersion:1,capabilityId:i.capabilityId,version:i.version,integrity:i.integrity,assets:i.assets.filter(P=>P.path!==Hr).map(P=>({path:P.path,ownership:P.ownership,desiredDigest:y.get(P.path)})),verifiers:i.verifiers.map(({id:P})=>({id:P,kind:"command"}))},O=f===c?b:b.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),C=f===c?_:_.map(P=>P.path===m?P:{...P,path:`${e.packageSource.topology.unitRelativeRoot}/${P.path}`}),fe=Ne({action:"upgrade",capability:A,changes:O,observedAssets:C,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...d===void 0?{}:{packageAdoption:d}});l.set(Hr,I);let T=new Map;for(let P of fe.operations){if(P.disposition!=="ready"||P.kind==="remove")continue;let ee=f===c?"":`${e.packageSource.topology.unitRelativeRoot}/`,ce=P.path===m?P.path:P.path.startsWith(ee)?P.path.slice(ee.length):P.path,ct=l.get(ce);if(ct===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade desired content is unavailable",P.path);T.set(P.path,ct)}return{sourceLock:r,targetManifest:p,release:e.targetRelease,plan:fe,desiredContents:T,transactionRoot:f}}import{link as EE,mkdir as PE,open as Ng,readFile as Ot,readdir as NE,realpath as St,rm as OE,unlink as SE}from"node:fs/promises";import he from"node:path";var D=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="DeliveryError"}};function Le(e){return/^sha256:[a-f0-9]{64}$/.test(e)}function Og(e){return h(k(e))}function mp(e){if(!Le(e.project.lockDigest)||!Le(e.project.appliedPlanId)||!Le(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:Og(t)}}function pp(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(Og(n)!==r)throw new D("DELIVERY_PRECONDITION_FAILED","Delivery Plan is invalid or has been modified");return mp({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 Sg(e){if(!Le(e.planId)||!Le(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.createdAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record identities are invalid");let t={schemaVersion:1,...e,status:"registry-accepted"};return{...t,recordId:h(k(t))}}function Dg(e){if(!Le(e.planId)||!Le(e.artifactDigest)||Number.isNaN(Date.parse(e.startedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record identities are invalid");let t={schemaVersion:1,...e,status:"remote-write-started"};return{...t,recordId:h(k(t))}}function Ma(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="remote-write-started"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record is invalid or has been modified");return t}function dp(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="registry-accepted"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record is invalid or has been modified");return t}function jg(e){if(!Le(e.planId)||!Le(e.artifactDigest)||!/^[A-Za-z0-9._:-]{1,256}$/.test(e.stageId)||Number.isNaN(Date.parse(e.reviewedAt)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record identities are invalid");let t={schemaVersion:1,...e,status:"artifact-digest-verified"};return{...t,recordId:h(k(t))}}function up(e){let t=e,{recordId:r,...n}=t??{};if(t?.schemaVersion!==1||t.status!=="artifact-digest-verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record is invalid or has been modified");return t}function Fa(e){if(!Le(e.planId)||!Le(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"||!Le(r.attestationUrlDigest))throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt facts are incomplete or inconsistent");let n={schemaVersion:2,...e,status:"verified"};return{...n,receiptId:h(k(n))}}if(e.kind==="npm-publish"||e.kind==="application-deploy"&&e.adapterId!=="deployment.local-docker"||e.kind==="artifact-publication"&&e.adapterId!=="publication.offline-web"&&e.adapterId!=="publication.hosted-static"||e.kind==="hosted-static"&&(e.adapterId!=="publication.hosted-static"||e.details.renderMode!=="csr"))throw new D("DELIVERY_RECEIPT_INVALID","Application or artifact Delivery Receipt facts are invalid");let t={schemaVersion:1,...e,status:"verified"};return{...t,receiptId:h(k(t))}}function fp(e){let t=e,{receiptId:r,...n}=t??{};if(t?.schemaVersion!==1&&t?.schemaVersion!==2||t.status!=="verified"||r!==h(k(n)))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt is invalid or has been modified");let{receiptId:i,schemaVersion:o,status:a,...s}=t;return Fa(s)}async function DE(e){let t=await Ng(e,"r");try{await t.sync()}finally{await t.close()}}async function Wi(e,t){let r=he.dirname(e);await PE(r,{recursive:!0,mode:448});let n=`${e}.tmp-${process.pid}-${crypto.randomUUID()}`,i=await Ng(n,"wx",384);try{await i.writeFile(`${k(t)}
|
|
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 p.sync()}finally{await p.close()}await Ga(c,s);let l=await za(a,"r");try{await l.sync()}finally{await l.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 yp(n,{recursive:!0,mode:448}),await Ga(r,ke.join(n,`${Date.now()}-${t}`))}async all(){let t=await hp(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=k({v:1,offset:t,snapshot:r});return Buffer.from(k({content:n,digest:h(n)})).toString("base64url")}parseCursor(t,r){try{let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"));if(typeof n.content!="string"||n.digest!==h(n.content))throw new Error("tampered");let i=JSON.parse(n.content);if(i.v!==1||!Number.isSafeInteger(i.offset)||i.offset<0||i.snapshot!==r)throw new Error("expired");return i.offset}catch{throw new 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=h(k(n.map(s=>s.eventId))),o=t.cursor===void 0?0:this.parseCursor(t.cursor,i),a=n.slice(o,o+r);return{events:a,...o+a.length<n.length?{nextCursor:this.cursor(o+a.length,i)}:{}}}async get(t){if(!ty.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 ey(ke.join(this.directory(),`${i.eventId}.json`),{force:!0});for(let i of t.slice(0,1e4))Date.parse(i.receivedAt)<n&&await ey(ke.join(this.directory(),`${i.eventId}.json`),{force:!0})}async registerSourceMap(t){if(!wp.test(t.releaseId)||!wp.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(k(t.map)),n=h(r),i=ke.join(this.releases(),t.releaseId);await yp(i,{recursive:!0,mode:448});let o=h(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 za(`${a}.tmp`,"w",384);try{await c.writeFile(`${k({registration:s,map:t.map})}
|
|
42
|
+
`),await c.sync()}finally{await c.close()}return await Ga(`${a}.tmp`,a),await this.resymbolicate(t.releaseId),s}async resymbolicate(t){let r=await hp(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(l=>{let d=n.find(f=>new URL(l.file,"http://local").pathname.endsWith(`/${f.registration.asset}`));if(!d||l.line===void 0||l.column===void 0)return l;try{let f=Qg(new Xg(d.map),{line:l.line,column:Math.max(0,l.column-1)});return f.source===null||f.line===null||f.column===null?l:(o=!0,{...l,source:f.source.replace(/^file:\/\//,""),sourceLine:f.line,sourceColumn:f.column+1})}catch{return l}});if(!o)continue;let s={...i,error:{...i.error,frames:a},state:"symbolicated"},c=ke.join(this.directory(),`${i.eventId}.json`),p=await za(`${c}.tmp`,"w",384);try{await p.writeFile(`${k(s)}
|
|
43
|
+
`),await p.sync()}finally{await p.close()}await Ga(`${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 ny(Ip.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 vp(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 iy(e){try{let r=JSON.parse(await ny(Ip.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 yP(Ip.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 oy(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 ay}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 sy(e){let t=await ay(Zr.resolve(e.projectRoot)),r=K(e.manifest),n=e.release.release,i=e.currentLock.capabilities.find(f=>f.capabilityId===n.capabilityId&&f.version===n.version);if(!i||i.packageAdoption!==void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Asset-only removal requires an adopted Capability without package ownership");let o=K({...r,capabilities:r.capabilities.filter(f=>f.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:h(a)},...i.assets.map(f=>({path:f.path,kind:"remove",ownership:f.ownership??"owned-file",baseDigest:f.digest}))],p=await Promise.all(c.map(f=>Qi(t,f.path))),l={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:i.assets.map(f=>({path:f.path,ownership:f.ownership??"owned-file",desiredDigest:f.digest})),verifiers:n.verifiers.map(f=>({id:f.id,kind:"file-digest"}))};return{plan:Ne({action:"remove",capability:l,changes:c,observedAssets:p,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:h(r)}}catch(r){if(r.code==="ENOENT")return{path:t,exists:!1};throw r}}async function bp(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 ay(Zr.resolve(e.projectRoot)),r=K(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,p=n.dependencies?.profiles??[],l=e.currentLock.capabilities.find(A=>A.consumerProfile===c);if(c===void 0||!p.includes(c)||l===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 f=K({...r,capabilities:[...r.capabilities,{capabilityId:n.capabilityId,version:n.version}]}),u=a("project-capabilities.json"),m=Buffer.from(`${JSON.stringify(f,null,2)}
|
|
45
|
+
`),g=await 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 Uy(s,"utf8")!==`${k(o)}
|
|
47
|
+
`)throw new at("SCAFFOLD_PLAN_INVALID")}),o}async function XP(e,t){if(!/^sha256:[a-f0-9]{64}$/u.test(t))throw new at("SCAFFOLD_PLAN_INVALID");let r=await jp(ot.resolve(e)),n;try{n=JSON.parse(await Uy(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||By(o)!==t||n.workspaceRoot!==r||Date.parse(n.expiresAt)<=Date.now())throw new at("SCAFFOLD_PLAN_INVALID");return n}async function Jy(e){let t=await XP(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 zy(t.workspaceRoot,t.outputRelativePath),n;try{n=await e.execute(r.output,t)}catch(s){throw await Fy(r.output).then(()=>!0).catch(()=>!1)&&await HP(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=h(k(i)),a=ot.join(t.workspaceRoot,".dyyto","scaffold-evidence");return await Cp(a,{recursive:!0}),await qy(ot.join(a,`${o}.json`),`${k({...i,evidenceId:o})}
|
|
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
50
|
Plan: ${u.planId}
|
|
51
51
|
State: ${u.state}
|
|
52
|
-
Next: dyyto apply --project ${
|
|
53
|
-
Plan: ${
|
|
54
|
-
State: ${
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function gN(e){let[t,...r]=e,n;try{n=de({args:r,allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},profile:{type:"string"},capability:{type:"string"},"documentation-only":{type:"boolean"}}})}catch{return v("Retrofit arguments are invalid.")}if(t!=="plan"&&t!=="apply")return v("Retrofit requires plan or apply.");if(typeof n.values.project!="string")return v("Retrofit requires --project <directory>.");if(n.values.capability!==void 0&&typeof n.values.capability!="string")return v("Retrofit --capability is invalid.");if(n.values.profile!==void 0&&typeof n.values.profile!="string")return v("Retrofit --profile is invalid.");let i=n.values.capability??"foundation.workspace-root@1.2.0",o=/^([a-z][a-z0-9.-]*)@([0-9A-Za-z.-]+)$/u.exec(i);if(!o)return v("Retrofit --capability is invalid.");let a=await Ee(xe(o[1],o[2])),s=n.values.profile??"workspace-root";if(a.release.consumerProfile!==s)return v("Retrofit profile and capability are incompatible.");let c=new Date,p=s==="workspace-root"?await qm({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 Um({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()}),l=Q(p.projectRoot);if(t==="plan"){if(n.values.approve!==void 0)return v("Retrofit plan does not accept --approve.");let m=await Kt({projectRoot:p.projectRoot,plan:p.plan,now:c.toISOString()});return{outputMode:z(e),human:`Project: ${l}
|
|
53
|
+
Plan: ${m.planId}
|
|
54
|
+
State: ${m.state}
|
|
55
55
|
Files: project-capabilities.json
|
|
56
|
-
Next: dyyto retrofit apply --project ${l} --approve ${
|
|
57
|
-
Plan: ${
|
|
56
|
+
Next: dyyto retrofit apply --project ${l} --approve ${m.planId}${n.values["documentation-only"]===!0?" --documentation-only":""}`,value:{schemaVersion:1,ok:!0,command:"retrofit-plan",result:{project:l,plan:m}}}}if(typeof n.values.approve!="string")return v("Retrofit apply requires --approve <planId>.");let d=await zr({projectRoot:p.projectRoot,planId:n.values.approve}),f=await mr({projectRoot:p.projectRoot,plan:d,approvedPlanId:n.values.approve,desiredContents:p.desiredContents,now:c.toISOString()}),u=await gr(f);return{outputMode:z(e),human:`Project: ${l}
|
|
57
|
+
Plan: ${d.planId}
|
|
58
58
|
State: ${u.state}
|
|
59
|
-
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:l,planId:
|
|
59
|
+
Files applied: ${u.operations.length}`,value:{schemaVersion:1,ok:!0,command:"retrofit-apply",result:{project:l,planId:d.planId,transaction:u}}}}async function yN(e,t){let r;try{r=de({args:[...t],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${e} arguments are invalid.`)}if(typeof r.values.project!="string")return v(`${e} requires --project.`);let n=await Dt(N.resolve(r.values.project)),i=K(JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")));if(i.template===void 0)return v("The project does not declare an engineering template.");let o=await eo(ns(i.template.id,i.template.version)),a=o.commands[e];if(a===void 0)return v(`Template ${o.templateId} does not support ${e}.`);let s=a==="npm.pack-dry-run"?["pnpm","pack","--dry-run"]:["pnpm","run",a],c=Date.now();if(e==="dev"){if(await new Promise((u,m)=>{let g=dN("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},stdio:"inherit"}),y=()=>g.kill("SIGINT"),w=()=>g.kill("SIGTERM");process.once("SIGINT",y),process.once("SIGTERM",w),g.once("error",m),g.once("close",_=>{process.off("SIGINT",y),process.off("SIGTERM",w),u(_??1)})})!==0)throw new j({code:"CLI_INTERNAL_ERROR",message:"The development server stopped with an error.",exitCode:1});let f={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:""};return{outputMode:z(t),human:`dev completed for '${Q(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:f}}}let p=await th("corepack",s,{cwd:n,env:{...process.env,NO_COLOR:"1"},timeout:3e5,maxBuffer:4*1024*1024}),l={template:`${o.templateId}@${o.version}`,command:a,durationMs:Date.now()-c,stdout:p.stdout.trim()};return{outputMode:z(t),human:`${e} completed for '${Q(n)}'.`,value:{schemaVersion:1,ok:!0,command:e,result:l}}}async function hN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"},capability:{type:"string"},kind:{type:"string"},profile:{type:"string"}}})}catch{return v("Add package arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name,t.values.version,t.values.license,t.values["publish-access"],t.values.repository].some(_=>typeof _!="string"))return v("Add package requires workspace, path, name, version, license, publish access, and repository.");let n=t.values.profile??"workspace-npm-package";if(n!=="workspace-npm-package"&&n!=="react-component-library")return v("Add package requires a supported --profile.");let i=n==="react-component-library"?io["workspace-react-component-library"]:io["workspace-npm-package"];if(t.values.capability!==i)return v(`Add package requires --capability ${i}.`);if(t.values.kind!==void 0&&t.values.kind!=="fixture")return v("Add package --kind only accepts fixture.");let o=t.values.kind==="fixture"?"fixture":"package",a=String(t.values.path),s=pd(a,o);if(s!==void 0)return v(s);let c=await Dt(N.resolve(String(t.values.workspace))),p=JSON.parse(await oe(N.join(c,"project-capabilities.json"),"utf8"));if(p.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let l=p.capabilities?.[0];if(l?.capabilityId!=="foundation.workspace-root")return v("Workspace root capability is invalid.");let d=await Be(c);if(d===null){let _=await Ee(xe(l.capabilityId,l.version)),b=new Date;if((await ia({projectRoot:c,release:_,generatedAt:b.toISOString(),expiresAt:new Date(b.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding a package.")}if(d!==null){try{await Fr({projectRoot:c,expectedAssets:nh(d)})}catch{return v("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 v("Workspace root adoption evidence is invalid; adding a package is blocked.")}if(await ud(c,o==="fixture"?"fixtures":"packages",String(t.values.name)))return v("A workspace package already uses this npm name.");let[f,u]=i.split("@"),m={schemaVersion:1,...ts[n]===void 0?{}:{template:ts[n]},profile:{id:n,parameters:{name:String(t.values.name),version:String(t.values.version),license:String(t.values.license),publishAccess:String(t.values["publish-access"]),repository:String(t.values.repository)}},capabilities:[{capabilityId:f,version:u}]};wr(K(m),n);let g=await va({projectRoot:N.join(c,...a.split("/")),manifest:m}),y=await is(g.projectRoot),w=Q(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 ${w} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:
|
|
62
|
+
Next: dyyto apply --project ${w} --approve ${y.planId}`,value:{schemaVersion:1,ok:!0,command:"add-package",result:{project:w,workspace:Q(c),path:a,plan:y}}}}async function wN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},path:{type:"string"},name:{type:"string"},profile:{type:"string"},capability:{type:"string"}}})}catch{return v("Add application arguments are invalid.")}if([t.values.workspace,t.values.path,t.values.name].some(w=>typeof w!="string"))return v("Add application requires workspace, path, and name.");let r=t.values.profile??"workspace-node-application";if(r!=="workspace-node-application"&&r!=="workspace-web-application"&&r!=="workspace-expo-application"&&r!=="nextjs-full-stack-application")return v("Add application requires a supported --profile.");let n=r,i=io[n],o=String(t.values.path),a=dd(o,n,typeof t.values.capability=="string"?t.values.capability:void 0);if(a!==void 0)return v(a);let s=await Dt(N.resolve(String(t.values.workspace))),c=JSON.parse(await oe(N.join(s,"project-capabilities.json"),"utf8"));if(c.profile?.id!=="workspace-root")return v("The selected directory is not a Dyyto workspace root.");let p=c.capabilities?.[0];if(p?.capabilityId!=="foundation.workspace-root"||!["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0"].includes(p.version))return v("Workspace applications require a supported foundation.workspace-root release.");if(o.startsWith("services/")&&!["1.3.0","1.4.0","1.5.0"].includes(p.version))return v("Workspace service applications require foundation.workspace-root@1.3.0 or newer.");let l=await Be(s);if(l===null){let w=await Ee(xe(p.capabilityId,p.version)),_=new Date;if((await ia({projectRoot:s,release:w,generatedAt:_.toISOString(),expiresAt:new Date(_.getTime()+1800*1e3).toISOString()})).state!=="applied-unverified")return v("Workspace root must be applied before adding an application.")}if(l!==null){try{await Fr({projectRoot:s,expectedAssets:nh(l)})}catch{return v("Workspace root locked assets have drifted; adding an application is blocked.")}if((await Zi({projectRoot:s,lock:l})).some(_=>_.code!=="EVIDENCE_VALID"))return v("Workspace root adoption evidence is invalid; adding an application is blocked.")}if(await fd(s,String(t.values.name)))return v("A workspace application already uses this name.");let[d,f]=i.split("@"),u={schemaVersion:1,...ts[n]===void 0?{}:{template:ts[n]},profile:{id:n,parameters:{name:String(t.values.name)}},capabilities:[{capabilityId:d,version:f}]};Jr(K(u));let m=await va({projectRoot:N.join(s,...o.split("/")),manifest:u}),g=await is(m.projectRoot),y=Q(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:Q(s),path:o,plan:g}}}}async function ah(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Add feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Add feature requires --project and --capability.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=await Dt(N.resolve(r.values.project)),i=JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")),o=await Be(n);if(o===null)return v("Add feature requires an adopted project with a verified Profile Lock.");let[a,s]=os(r.values.capability),c=await Ee(xe(a,s)),p=new Date,l;try{let u=await rs(n,c,t);l=await bp({projectRoot:n,manifest:i,release:c,currentLock:o,generatedAt:p.toISOString(),expiresAt:new Date(p.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...u===void 0?{}:{packageSource:u}})}catch(u){throw u instanceof pe?new j({code:u.code,message:u.message,exitCode:3,nextStep:"Review the selected project Profile and current capabilities."}):u}let d=await Kt({projectRoot:n,plan:l.plan,now:p.toISOString(),transactionRoot:l.transactionRoot}),f=Q(n);return{outputMode:z(e),human:`Project: ${f}
|
|
66
66
|
Feature: ${a}@${s}
|
|
67
67
|
Dependency: ${l.dependency.profile} satisfied
|
|
68
|
-
Plan: ${p.planId}
|
|
69
|
-
State: ${p.state}
|
|
70
|
-
Next: dyyto apply --project ${m} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:m,capability:r.values.capability,dependency:l.dependency,plan:p}}}}async function pN(e,t){let r;try{r=pe({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await Pt(N.resolve(r.values.project)),i=await Ue(n);if(i===null)return v("Remove feature requires a verified Lock.");let[o,a]=ts(r.values.capability),s=await Re(Te(o,a)),c=await Xy(n,s,i,t),d=await Gt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),l=te(n);return{outputMode:B(e),human:`Project: ${l}
|
|
71
|
-
\u79FB\u9664\u80FD\u529B\uFF1A${o}@${a}
|
|
72
|
-
\u72EC\u5360\u5305\uFF1A${c.removedSources.map(p=>`${p.packageName}@${p.version}`).join("\u3001")||"\u65E0\uFF08\u5171\u4EAB\u5305\u5C06\u4FDD\u7559\uFF09"}
|
|
73
68
|
Plan: ${d.planId}
|
|
74
69
|
State: ${d.state}
|
|
75
|
-
Next: dyyto apply --project ${
|
|
70
|
+
Next: dyyto apply --project ${f} --approve ${d.planId}`,value:{schemaVersion:1,ok:!0,command:"add-feature",result:{project:f,capability:r.values.capability,dependency:l.dependency,plan:d}}}}async function IN(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Remove feature arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.capability!="string")return v("Remove feature requires --project and --capability.");let n=await Dt(N.resolve(r.values.project)),i=await Be(n);if(i===null)return v("Remove feature requires a verified Lock.");let[o,a]=os(r.values.capability),s=await Ee(xe(o,a)),c=await ih(n,s,i,t),p=await Kt({projectRoot:n,plan:c.plan,now:new Date().toISOString(),..."transactionRoot"in c?{transactionRoot:c.transactionRoot}:{}}),l=Q(n);return{outputMode:z(e),human:`Project: ${l}
|
|
71
|
+
\u79FB\u9664\u80FD\u529B\uFF1A${o}@${a}
|
|
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: ${p.planId}
|
|
74
|
+
State: ${p.state}
|
|
75
|
+
Next: dyyto apply --project ${l} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:l,capability:r.values.capability,removedSources:c.removedSources,plan:p}}}}async function vN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await is(r),i=Q(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 os(e){let t=e.lastIndexOf("@");return t<=0||t===e.length-1?v("Capability selection must be capabilityId@version."):[e.slice(0,t),e.slice(t+1)]}async function bN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},capability:{type:"string"}}})}catch{return v("Baseline arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.capability!="string")return v("Baseline requires --project and --capability.");let r=N.resolve(t.values.project);if(await Be(r)!==null)return v("Baseline is only for a historical project without a Lock.");let[n,i]=os(t.values.capability),o=await Ee(xe(n,i)),a=JSON.parse(await oe(N.join(r,"project-capabilities.json"),"utf8")),s=new Date,c=await Hl({projectRoot:r,manifest:a,release:o,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()}),p=await Kt({projectRoot:r,plan:c.plan,now:s.toISOString()}),l=Q(r);return{outputMode:z(e),human:`Project: ${l}
|
|
79
79
|
Baseline: ${n}@${i}
|
|
80
|
-
Plan: ${
|
|
81
|
-
State: ${
|
|
82
|
-
Preserved seed files: ${
|
|
83
|
-
Next: dyyto apply --project ${l} --approve ${
|
|
80
|
+
Plan: ${p.planId}
|
|
81
|
+
State: ${p.state}
|
|
82
|
+
Preserved seed files: ${p.operations.filter(d=>d.ownership==="seed-file"&&d.disposition==="noop").length}
|
|
83
|
+
Next: dyyto apply --project ${l} --approve ${p.planId}`,value:{schemaVersion:1,ok:!0,command:"baseline",result:{project:l,plan:p}}}}async function kN(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},to:{type:"string"},repository:{type:"string"},channel:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-port":{type:"string"}}})}catch{return v("Upgrade arguments are invalid.")}if(typeof r.values.project!="string"||typeof r.values.to!="string")return v("Upgrade requires --project <directory> and --to <capabilityId@version>.");if(r.values.channel!==void 0&&r.values.channel!=="development")return v("--channel only accepts development; omit it for production.");let n=N.resolve(r.values.project),i=JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")),[o,a]=os(r.values.to),s=i.capabilities?.find(A=>A.capabilityId===o);if(s===void 0)return v(`Upgrade requires ${o} to be adopted by the project.`);let c=await Be(n);if(c===null)return v("Upgrade requires an adopted project with a verified Lock.");let p=(i.profile.id==="standalone-npm-package"||i.profile.id==="workspace-npm-package")&&a==="1.1.0";if(p){if(typeof r.values.repository!="string")return v("npm package upgrade to 1.1.0 requires --repository.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is only valid for an npm package upgrade to 1.1.0.");let l=await Ee(xe(s.capabilityId,s.version)),d=await Ee(xe(o,a)),f={...i,capabilities:i.capabilities.map(A=>A.capabilityId===o?{capabilityId:o,version:a}:A)},u=d.release.schemaVersion===2&&d.release.availability.maturity!=="withdrawn"&&d.release.packageSources.length>0,m=u?Va(f,d):void 0,g=u?await rs(n,d,t,m):void 0,y=rh(o,a),w=new Date,_=await lp({projectRoot:n,manifest:i,currentLock:c,sourceRelease:l,targetRelease:d,...y===void 0?{}:{targetTemplate:y},generatedAt:w.toISOString(),expiresAt:new Date(w.getTime()+1800*1e3).toISOString(),...r.values.channel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}}),b=await Kt({projectRoot:n,plan:_.plan,now:w.toISOString(),transactionRoot:_.transactionRoot}),R=Q(n),I=b.state==="reviewable"?`Next: dyyto apply --project ${R} --approve ${b.planId}${p?` --repository ${r.values.repository}`:""}`:"Resolve the reported conflicts before applying.";return{outputMode:z(e),human:`Project: ${R}
|
|
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:R,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function
|
|
87
|
+
${I}`,value:{schemaVersion:1,ok:!0,command:"upgrade",result:{project:R,source:`${s.capabilityId}@${s.version}`,target:r.values.to,plan:b}}}}async function xp(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"},repository:{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Apply arguments are invalid.")}if(typeof r.values.project!="string")return v("Apply requires --project <directory>.");if(typeof r.values.approve!="string")return v("Apply requires --approve <planId>.");let n=N.resolve(r.values.project),i=JSON.parse(await oe(N.join(n,"project-capabilities.json"),"utf8")),o=i.capabilities?.[0];if(o===void 0)return v("Project manifest must select one capability.");let a=await zr({projectRoot:n,planId:r.values.approve}),s=new Date,c,p,l;if(a.action==="remove"){let u=await Be(n);if(u===null)return v("Remove apply requires the verified Lock.");let m=await ih(n,await Ee(xe(a.capability.capabilityId,a.capability.version)),u,t);c=m,p="registryConfigs"in m?m.registryConfigs:void 0,l="endpointBindings"in m?m.endpointBindings:void 0}else if(a.action==="upgrade"){let u=await Be(n),m=u?.capabilities.find(I=>I.capabilityId===a.capability.capabilityId);if(u===null||m===void 0)return v("Upgrade apply requires the verified source Lock.");if((m.consumerProfile==="standalone-npm-package"||m.consumerProfile==="workspace-npm-package")&&a.capability.version==="1.1.0"){if(typeof r.values.repository!="string")return v("npm package upgrade apply requires the approved --repository value.");i={...i,profile:{...i.profile,parameters:{...i.profile.parameters,repository:r.values.repository}}}}else if(r.values.repository!==void 0)return v("--repository is not valid for this apply operation.");let g=await Ee(xe(a.capability.capabilityId,a.capability.version)),y={...i,capabilities:i.capabilities.map(I=>I.capabilityId===a.capability.capabilityId?{capabilityId:a.capability.capabilityId,version:a.capability.version}:I)},w=g.release.schemaVersion===2&&g.release.availability.maturity!=="withdrawn"&&g.release.packageSources.length>0,_=w?Va(y,g):void 0,b=w?await rs(n,g,t,_):void 0;p=b?.registryConfigs,l=b?.endpointBindings;let R=rh(a.capability.capabilityId,a.capability.version);c=await lp({projectRoot:n,manifest:i,currentLock:u,sourceRelease:await Ee(xe(m.capabilityId,m.version)),targetRelease:g,...R===void 0?{}:{targetTemplate:R},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...b===void 0?{}:{packageSource:b}})}else if(a.action==="adopt"&&i.profile?.id==="nextjs-full-stack-application"&&i.capabilities?.[0]?.capabilityId===a.capability.capabilityId&&i.capabilities?.[0]?.version!==a.capability.version)c=await Hl({projectRoot:n,manifest:i,release:await Ee(xe(a.capability.capabilityId,a.capability.version)),generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()});else if(i.capabilities?.some(u=>u.capabilityId===a.capability.capabilityId&&u.version===a.capability.version)){let u=await Ee(xe(o.capabilityId,o.version)),m=await Be(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:u,...m===null?{}:{currentLock:m},generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString()})}else{let u=await Be(n);if(u===null)return v("Feature apply requires the verified Profile Lock.");let m=await Ee(xe(a.capability.capabilityId,a.capability.version)),g=await rs(n,m,t);p=g?.registryConfigs,l=g?.endpointBindings,c=await bp({projectRoot:n,manifest:i,release:m,currentLock:u,generatedAt:s.toISOString(),expiresAt:new Date(s.getTime()+1800*1e3).toISOString(),...a.packageAdoption?.sourceChannel==="development"?{packageChannel:"development"}:{},...g===void 0?{}:{packageSource:g}})}let d;if(a.packageAdoption!==void 0){if(p===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires a trusted Package Source Provider");let{createPnpmPackageManagerPort:u}=await import("./optional-runtime.js");if(l===void 0)throw new pe("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package adoption requires Endpoint Bindings");d=await gg({projectRoot:c.transactionRoot??n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString(),packageManager:u({registries:p,endpointBindings:l,...t.packageStoreRoot===void 0?{}:{storeRoot:t.packageStoreRoot}})})}else{let u=await mr({projectRoot:n,plan:a,approvedPlanId:r.values.approve,desiredContents:c.desiredContents,now:new Date().toISOString()});d=await gr(u)}let f=Q(n);return{outputMode:z(e),human:`Project: ${f}
|
|
88
88
|
Plan: ${a.planId}
|
|
89
|
-
State: ${
|
|
90
|
-
Files applied: ${
|
|
91
|
-
`+(a.packageAdoption===void 0?`Next: cd ${
|
|
89
|
+
State: ${d.state}
|
|
90
|
+
Files applied: ${d.operations.length}
|
|
91
|
+
`+(a.packageAdoption===void 0?`Next: cd ${f} && corepack pnpm install`:`Next: dyyto verify --project ${f}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:f,planId:a.planId,transaction:d}}}}async function _N(e,t){let r;try{r=de({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},output:{type:"string"},locale:{type:"string"},channel:{type:"string"},approve:{type:"string"},"recipe-version":{type:"string"},"artifact-workspace":{type:"string"},"artifact-bundle":{type:"string"},"artifact-fallback-bundle":{type:"string",multiple:!0},"artifact-port":{type:"string"}}})}catch{return v("Scaffold example arguments are invalid.")}if(r.positionals.length!==1||typeof r.values.output!="string"||r.values.locale!=="zh-CN"||r.values.channel!=="development"||typeof r.values["recipe-version"]!="string"||typeof r.values["artifact-workspace"]!="string"||typeof r.values["artifact-bundle"]!="string"||typeof r.values["artifact-port"]!="string")return v("Scaffold example requires recipe, --recipe-version, --output, --locale zh-CN, --channel development and exact Artifact source arguments.");let n=r.positionals[0];if(typeof n!="string")return v("Scaffold example recipe identifier is invalid.");let i=await my(mN(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"],p=Array.isArray(c)?c.filter(u=>typeof u=="string"):[],l=r.values.approve;if(l===void 0){let u=await Gy({workspaceRoot:a,output:r.values.output,recipe:i,artifactBundle:s,artifactFallbackBundles:p,artifactPort:o});return{outputMode:z(e),human:`\u793A\u4F8B\uFF1A${i.title}
|
|
92
92
|
Plan\uFF1A${u.planId}
|
|
93
93
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u9636\u6BB5\u6279\u51C6
|
|
94
|
-
Next\uFF1A\u91CD\u590D\u672C\u547D\u4EE4\u5E76\u6DFB\u52A0 --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof l!="string")return v("Scaffold example --approve must be an exact Plan ID.");let
|
|
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 ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-plan",result:{plan:u}}}}if(typeof l!="string")return v("Scaffold example --approve must be an exact Plan ID.");let d=["--artifact-workspace",a,"--artifact-bundle",s,...p.flatMap(u=>["--artifact-fallback-bundle",u]),"--artifact-port",String(o)],f;try{f=await Jy({workspaceRoot:a,approvedPlanId:l,recipe:i,execute:async(u,m)=>{if(m.artifactBundle!==s||JSON.stringify(m.artifactFallbackBundles)!==JSON.stringify(p)||m.artifactPort!==o)throw new Error("SCAFFOLD_SOURCE_PLAN_MISMATCH");let g=[],w=(await oh([u,"--profile","nextjs-full-stack-application","--capability",`${i.rootProfile.capabilityId}@${i.rootProfile.version}`,"--name",i.recipeId])).value.result.plan.planId;await xp(["--project",u,"--approve",w],t),g.push(w),await th("corepack",["pnpm","install","--no-frozen-lockfile","--ignore-scripts"],{cwd:u,env:{...process.env,CI:"true",NO_COLOR:"1",pnpm_config_store_dir:N.join(a,".dyyto","resolution-worker","store","shared")},timeout:3e5,maxBuffer:4*1024*1024}),await Vp(["--project",u]);for(let _ of i.capabilities){let b=`${_.capabilityId}@${_.version}`;try{let I=(await ah(["--project",u,"--capability",b,"--channel",_.channel,...d],t)).value.result.plan.planId;await xp(["--project",u,"--approve",I,...d],t),await Vp(["--project",u]),g.push(I)}catch(R){throw new Error(`SCAFFOLD_CAPABILITY_FAILED:${b}:${R instanceof Error?R.message:"UNKNOWN"}`,{cause:R})}}return g}})}catch(u){let m=u instanceof at&&u.cause instanceof Error?u.cause.message:"SCAFFOLD_APPLY_FAILED";throw new j({code:"SCAFFOLD_APPLY_FAILED",message:`\u793A\u4F8B\u811A\u624B\u67B6\u6267\u884C\u5931\u8D25\uFF1A${m}`,exitCode:1,nextStep:"\u68C0\u67E5\u5931\u8D25\u7684 Capability \u4E0E\u4E8B\u52A1 Evidence\uFF0C\u4FEE\u590D\u540E\u91CD\u65B0\u751F\u6210 Plan\u3002"})}return{outputMode:z(e),human:`\u793A\u4F8B\u5DF2\u751F\u6210\uFF1A${N.relative(process.cwd(),f.output)}
|
|
95
|
+
Evidence\uFF1A${f.evidenceId}
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function oo(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project <directory>.`):{projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function Vp(e){let{projectRoot:t,outputMode:r}=oo(e,"Verify"),n=JSON.parse(await oe(N.join(t,"project-capabilities.json"),"utf8")),i=await Be(t),o=await Yt(t).catch(()=>{}),a;try{let y=i?.capabilities.map(_=>_.appliedPlanId)??[],w=i?.capabilities.map(_=>_.capabilityId)??[];try{a=await ba(t,y,t,w)}catch(_){if(!(_ instanceof be)||_.code!=="PLAN_NOT_FOUND"||o===void 0)throw _;a=await ba(t,y,o.transactionRoot,w)}}catch(y){if(!(y instanceof be)||y.code!=="PLAN_NOT_FOUND"||i===null)throw y;let _=(await Mp(["--project",t,"--json"])).value.result,b=await Zi({projectRoot:t,lock:i});if(_.state!=="adopted"||b.some(I=>I.code!=="EVIDENCE_VALID"))throw new j({code:"VERIFICATION_STATE_INVALID",message:"The adopted project has drifted or its verification evidence is invalid.",exitCode:4,nextStep:"Run dyyto inspect and dyyto doctor before creating a new plan."});let R=Q(t);return{outputMode:r,human:`Project: ${R}
|
|
97
97
|
State: adopted
|
|
98
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:R,state:"adopted",reused:!0,lock:i}}}}let s=await
|
|
98
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:R,state:"adopted",reused:!0,lock:i}}}}let s=await Ee(xe(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=Q(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 v("Remove verification requires the previous verified Lock.");let y=i.capabilities.find(
|
|
100
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:y,state:"adopted",reused:!0}}}}if(a.action==="remove"){if(i===null)return v("Remove verification requires the previous verified Lock.");let y=i.capabilities.find(T=>T.capabilityId===a.capability.capabilityId&&T.version===a.capability.version);if(y===void 0){let T=Q(t);return{outputMode:r,human:`Project: ${T}
|
|
101
101
|
State: removed
|
|
102
|
-
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project
|
|
102
|
+
Verification: already committed`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:T,state:"removed",reused:!0,lock:i}}}}let w=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",_=new Map(a.operations.flatMap(T=>T.desiredDigest===void 0||!T.path.startsWith(w)?[]:[[T.path.slice(w.length),T.desiredDigest]])),b=i.capabilities.filter(T=>T!==y),R=[...b].filter(T=>T.packageAdoption!==void 0).sort((T,P)=>T.committedAt.localeCompare(P.committedAt)).at(-1)?.packageAdoption,I=b.flatMap(T=>T.assets).map(T=>({...T,digest:_.get(T.path)??(T.path==="package.json"?R?.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 Ul({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:O.results,committedAt:new Date().toISOString(),previousLock:i,expectedAssets:I}),fe=Q(t);return{outputMode:r,human:`Project: ${fe}
|
|
103
103
|
State: removed
|
|
104
|
-
${O.summaries.map(
|
|
105
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:fe,state:"removed",verifiers:O.summaries,lock:
|
|
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 p=a.packageAdoption?.schemaVersion===2&&a.packageAdoption.topology.mode==="pnpm-shared-lockfile"?`${a.packageAdoption.topology.unitRelativeRoot}/`:"",l=(s.release.kind==="engineering-feature"?s.release.assets.map(y=>({path:y.path,desiredDigest:y.ownership==="managed-region"?y.digest:a.operations.find(w=>w.path===`${p}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.action==="upgrade"?s.release.assets.map(y=>({path:y.path,desiredDigest:a.operations.find(w=>w.path===`${p}${y.path}`)?.desiredDigest,ownership:y.ownership,regionId:y.regionId})):a.operations).map(({path:y,desiredDigest:w,ownership:_,regionId:b})=>w===void 0?v("Applied plan is missing a desired asset digest."):{path:y,digest:w,ownership:_==="managed-region"?"managed-region":_==="seed-file"?"seed-file":"owned-file",...b===void 0?{}:{regionId:b}}),{executeVerification:d}=await import("./optional-runtime.js"),f=await d({projectRoot:t,release:s,expectedAssets:l}),u=a.action==="adopt"&&a.operations.every(y=>y.disposition==="noop")&&i?.capabilities.some(y=>y.capabilityId===a.capability.capabilityId)===!0,m=await Fl({projectRoot:t,...c===void 0?{}:{transactionRoot:c},plan:a,release:s.release,verificationResults:f.results,committedAt:new Date().toISOString(),expectedAssets:l,...(a.action==="upgrade"||s.release.kind==="engineering-feature"||u)&&i!==null?{previousLock:i}:{}}),g=Q(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
|
+
`+f.summaries.map(y=>`${y.verifierId}: ${y.result}`).join(`
|
|
108
|
+
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function Mp(e){let{projectRoot:t,outputMode:r}=oo(e,"Inspect"),n=await Jl(t),i=Q(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 oe(N.join(t,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let s=await
|
|
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 oe(N.join(t,"project-capabilities.json"),"utf8")),a=o.capabilities?.[0];if(a===void 0)return v("Project manifest must select one capability.");let s=await Ee(xe(a.capabilityId,a.version)),c=await Be(t);try{let R=await ba(t,c?.capabilities.map(I=>I.appliedPlanId)??[],t,c?.capabilities.map(I=>I.capabilityId)??[]);if(R.action==="upgrade"||R.action==="adopt")return{outputMode:r,human:`Project: ${i}
|
|
112
112
|
State: applied-unverified
|
|
113
113
|
Plan: ${R.planId}
|
|
114
|
-
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:R.operations,lock:c}}}}catch{}let
|
|
115
|
-
State: ${
|
|
116
|
-
`+
|
|
114
|
+
Next: dyyto verify --project ${i}`,value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,state:"applied-unverified",operations:R.operations,lock:c}}}}catch{}let p=new Date,l={projectRoot:t,release:s,...c===null?{}:{currentLock:c},generatedAt:p.toISOString(),expiresAt:new Date(p.getTime()+1800*1e3).toISOString()},d=o.profile?.id==="standalone-npm-package"?await Xm({...l,manifest:o}):o.profile?.id==="react-component-library"?await Qm({...l,manifest:o}):o.profile?.id==="nextjs-full-stack-application"?await eg({...l,manifest:o}):o.profile?.id==="workspace-npm-package"?await tg({...l,manifest:o}):o.profile?.id==="workspace-node-application"?await rg({...l,manifest:o}):o.profile?.id==="workspace-web-application"?await ng({...l,manifest:o}):o.profile?.id==="workspace-expo-application"?await ig({...l,manifest:o}):await ia(l),f=c===null?void 0:[...c.capabilities].filter(R=>R.packageAdoption!==void 0).sort((R,I)=>R.committedAt.localeCompare(I.committedAt)).at(-1)?.packageAdoption?.packageJsonDigest,u=f===void 0?void 0:await oe(N.join(t,"package.json")).then(h).catch(()=>{}),m=d.operations.map(R=>R.path==="package.json"&&u===f?{...R,desiredDigest:f,disposition:"noop",conflictCode:void 0}:R),g=c===null?[]:await Cy({projectRoot:t,lock:c,excludeCapabilityIds:[a.capabilityId]}),y=g.some(R=>R.disposition==="conflict"),w=f!==void 0&&m.every(R=>R.disposition==="noop")?{...d,state:"adopted"}:d,_={...w,state:y?"drifted":w.state,operations:[...m,...g]},b=c?.capabilities.flatMap(R=>R.packageAdoption?.sources.map(I=>({capabilityId:R.capabilityId,registryId:I.registryId,packageName:I.packageName,version:I.version,integrity:I.integrity}))??[])??[];return{outputMode:r,human:`Project: ${i}
|
|
115
|
+
State: ${_.state}
|
|
116
|
+
`+_.operations.map(R=>`${R.path}: ${R.disposition}`).join(`
|
|
117
117
|
`)+(b.length===0?"":`
|
|
118
118
|
\u5305\u6765\u6E90\uFF1A
|
|
119
119
|
${b.map(R=>`- ${R.packageName}@${R.version}\uFF08Registry: ${R.registryId}\uFF0C\u5B8C\u6574\u6027\u5DF2\u9501\u5B9A\uFF09`).join(`
|
|
120
|
-
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,...
|
|
120
|
+
`)}`),value:{schemaVersion:1,ok:!0,command:"inspect",result:{project:i,..._,lock:c,packageSources:b}}}}async function AN(e){let{projectRoot:t,outputMode:r}=oo(e,"Recover"),n=await Ym({projectRoot:t,now:new Date().toISOString()}),i=Q(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 sh(e,t){let r;try{r=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},command:{type:"string"},after:{type:"string"}}})}catch{return v(`${t} arguments are invalid.`)}return typeof r.values.project!="string"?v(`${t} requires --project.`):{parsed:r,projectRoot:N.resolve(r.values.project),outputMode:z(e)}}async function RN(e,t){let{parsed:r,projectRoot:n,outputMode:i}=sh(t,"Lifecycle"),o=r.values.command;if((e==="start"||e==="restart")&&o!=="dev")return v("Lifecycle start/restart requires the supported --command dev.");try{let{projectProcessLogs:a,projectProcessStatus:s,startProjectProcess:c,stopProjectProcess:p}=await import("./optional-runtime.js"),l;if(e==="status")l=await s(n);else if(e==="logs"){let f=r.values.after===void 0?0:Number(r.values.after);if(!Number.isSafeInteger(f)||f<0)return v("Lifecycle logs --after must be a non-negative integer cursor.");l=await a(n,f)}else if(e==="start")await Xy(n,"dev"),l=await c(n,"dev");else if(e==="stop")l=await p(n);else if(e==="restart")await Xy(n,"dev"),await p(n),l=await c(n,"dev");else return v("Lifecycle action must be start, stop, restart, status, or logs.");let d=Q(n);return{outputMode:i,human:`Project: ${d}
|
|
124
124
|
Lifecycle: ${e}
|
|
125
|
-
State: ${"state"in l?l.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:
|
|
125
|
+
State: ${"state"in l?l.state:"available"}`,value:{schemaVersion:1,ok:!0,command:`lifecycle-${e}`,result:{project:d,...l,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 Xy(e,t){let r=K(JSON.parse(await oe(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(ns(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 EN(e){let{projectRoot:t,outputMode:r}=sh(e,"Integrations"),{projectIntegrations:n}=await import("./optional-runtime.js"),i=await n(t),o=Q(t),a=i.details.flatMap(p=>[`${p.title} (${p.capabilityId}@${p.version}) [${p.status}]`,` ${p.purpose}`,...p.packages.map(l=>` package ${l.packageName}@${l.version} [${l.state}]`),...p.packages.flatMap(l=>l.imports.map(d=>` import { ${d.symbol} } from '${d.importFrom}'${d.referencePath?` -> ${d.referencePath}`:""}`)),...p.codeAssets.map(l=>` asset ${l.sourcePath} -> ${l.targetPath} (${l.ownership})`)]),s=p=>i.platformDependencies.filter(l=>l.source===p).length,c=i.platformDependencies.map(p=>` platform ${p.packageName} ${p.version} [${p.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,7 +130,7 @@ 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
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function PN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},source:{type:"string"},registry:{type:"string"},approve:{type:"string"},verify:{type:"string"},install:{type:"boolean"}}})}catch{return v("Packages switch arguments are invalid.")}if(typeof t.values.project!="string")return v("Packages switch requires --project.");let r=[t.values.approve,t.values.verify].filter(m=>typeof m=="string").length;if(r>1)return v("Packages switch accepts only one of --approve or --verify.");let{applyAndInstallPackageSourceSwitch:n,applyPackageSourceSwitch:i,switchProjectPackageSources:o,verifyPackageSourceSwitch:a,PackageSourceSwitchError:s}=await import("./optional-runtime.js"),c=t.values.source??"workspace";if(r===0&&c!=="workspace"&&c!=="public"&&c!=="private")return v("Packages switch requires --source workspace|public|private.");let p=N.resolve(t.values.project),l=await(typeof t.values.approve=="string"?t.values.install===!0?n({projectRoot:p,approvedPlanId:t.values.approve}):i({projectRoot:p,approvedPlanId:t.values.approve}):typeof t.values.verify=="string"?a({projectRoot:p,planId:t.values.verify}):o({projectRoot:p,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=Q(l.projectRoot),f=l.changes.map(m=>` ${m.field} ${m.packageName}: ${m.from} -> ${m.to}`),u=l.state==="reviewable"?`\u5BA1\u6838\u4E0D\u53EF\u53D8 Plan \u540E\u4F7F\u7528 --approve ${l.planId} \u7CBE\u786E\u6279\u51C6\u3002`:l.state==="applied"?`\u4F7F\u7528 --verify ${l.planId} \u9A8C\u8BC1\u3002`:"Package source manifest \u5DF2\u4E0E\u6279\u51C6\u7684 Plan \u4E00\u81F4\u3002";return{outputMode:z(e),human:`\u9879\u76EE\uFF1A${d}
|
|
134
134
|
\u6765\u6E90\uFF1A${l.source}
|
|
135
135
|
Registry\uFF1A${l.registry??"workspace protocol"}
|
|
136
136
|
\u72B6\u6001\uFF1A${l.state}
|
|
@@ -139,39 +139,40 @@ Packages\uFF1A${l.packages.length}
|
|
|
139
139
|
\u53D8\u66F4\uFF1A${l.changes.length}
|
|
140
140
|
\u5DF2\u5199\u5165\uFF1A${l.written?"\u662F":"\u5426"}
|
|
141
141
|
|
|
142
|
-
${
|
|
143
|
-
`)}${
|
|
142
|
+
${f.join(`
|
|
143
|
+
`)}${f.length>0?`
|
|
144
144
|
|
|
145
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:
|
|
145
|
+
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:d,source:l.source,registry:l.registry,state:l.state,planId:l.planId,packages:l.packages,changes:l.changes,written:l.written,...l.installVerified===void 0?{}:{installVerified:l.installVerified},...l.lockfileDigest===void 0?{}:{lockfileDigest:l.lockfileDigest}}}}}async function NN(e){let{projectRoot:t,outputMode:r}=oo(e,"Inspect"),n=K(JSON.parse(await oe(N.join(t,"project-capabilities.json"),"utf8")));if(n.profile?.id==="workspace-root"){let s=await cp({workspaceRoot:t}),c=s.environment.map(p=>({name:p.name,...p.runtimeEnvironmentVariable?{runtimeEnvironmentVariable:p.runtimeEnvironmentVariable}:{},requirement:p.required?"conditional":"optional",kind:p.kind,secret:p.kind!=="value",configured:p.configured,source:"application-config-contract",configuredSource:"APP_CONFIG_DIR",display:p.display,consumers:p.consumers,configuredConsumers:p.configuredConsumers,conflict:p.conflict,consistent:p.consistent}));return{outputMode:r,human:`Workspace: ${Q(t)}
|
|
146
|
+
Environment: ${c.filter(p=>p.configured).length}/${c.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:Q(t),template:"workspace-aggregate",commands:[],environment:c,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(ns(n.template.id,n.template.version)),o=await vy({projectRoot:t,commands:i.commands}),a=Q(t);return{outputMode:r,human:`Project: ${a}
|
|
146
147
|
Commands: ${o.commands.map(s=>s.id).join(", ")}
|
|
147
|
-
Environment: ${o.environment.filter(s=>s.configured).length}/${o.environment.length} configured`,value:{schemaVersion:1,ok:!0,command:"maintenance",result:{project:a,template:`${i.templateId}@${i.version}`,...o}}}}async function
|
|
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 ON(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}
|
|
148
149
|
\u73AF\u5883\uFF1A${n.environment}
|
|
149
150
|
Config Dir\uFF1A${n.configDirectory}
|
|
150
151
|
\u5DF2\u914D\u7F6E\uFF1A${n.entries.filter(i=>i.configured).length}/${n.entries.length}
|
|
151
152
|
${n.entries.map(i=>`${i.name}: ${i.display}`).join(`
|
|
152
|
-
`)}`,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 SN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{project:{type:"string"},workspace:{type:"string"},check:{type:"boolean"},json:{type:"boolean"}}})}catch{return v("Config readiness arguments are invalid.")}let r=t.values.project,n=t.values.workspace;if(typeof r=="string"==(typeof n=="string"))return v("Config readiness requires exactly one of --project or --workspace.");let i=z(e);if(typeof n=="string"){let c=await cp({workspaceRoot:N.resolve(n)}),p=c.applications.map(d=>`${d.unit}: ${d.readiness.state}${d.readiness.issueCode?` (${d.readiness.issueCode})`:""}`),l=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${Q(c.workspaceRoot)}
|
|
153
154
|
\u5E94\u7528\uFF1A${c.summary.total}
|
|
154
155
|
\u5C31\u7EEA\uFF1A${c.summary.ready}
|
|
155
156
|
\u5F85\u521D\u59CB\u5316\uFF1A${c.summary.needsConfigInit}
|
|
156
157
|
\u65E0\u6548\uFF1A${c.summary.invalid}
|
|
157
158
|
|
|
158
|
-
${
|
|
159
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...l?{exitCode:l}:{}}}if(typeof r!="string")return v("Config readiness requires --project or --workspace.");let o=await
|
|
159
|
+
${p.join(`
|
|
160
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:c},...l?{exitCode:l}:{}}}if(typeof r!="string")return v("Config readiness requires --project or --workspace.");let o=await sp({projectRoot:N.resolve(r)}),a=o.missingBindings.length?`
|
|
160
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"}
|
|
161
162
|
\u73AF\u5883\uFF1A${o.environment}
|
|
162
163
|
\u72B6\u6001\uFF1A${o.state}
|
|
163
164
|
Config Dir\uFF1A${o.configDirectory??"\u672A\u7269\u5316"}${a}${o.issueCode?`
|
|
164
|
-
\u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function
|
|
165
|
+
\u95EE\u9898\uFF1A${o.issueCode}`:""}`,value:{schemaVersion:1,ok:!0,command:"config-readiness",result:o},...s?{exitCode:s}:{}}}async function DN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plane:{type:"string"},state:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Operations arguments are invalid.")}if(typeof t.values.project!="string"||!["change","quality","delivery"].includes(t.values.plane))return v("Operations requires --project and --plane change|quality|delivery.");let r=await Dt(N.resolve(t.values.project)),n=Q(r),i=[];for(let a of await eh(N.join(r,".dyyto","workbench","tasks")).catch(()=>[]))if(a.endsWith(".json"))try{let s=JSON.parse(await oe(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=_y(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}
|
|
165
166
|
Operations: ${o.plane}
|
|
166
167
|
Total: ${o.summary.total}
|
|
167
|
-
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 jN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"}}})}catch{return v("Doctor arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Doctor requires --workspace.");let r=await Dt(N.resolve(t.values.workspace));if(K(JSON.parse(await oe(N.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")return v("Doctor requires a workspace-root project.");let i=[{unit:".",kind:"root",projectRoot:r}];for(let s of["packages","apps"])for(let c of await eh(N.join(r,s),{withFileTypes:!0}).catch(()=>[])){if(!c.isDirectory()||c.isSymbolicLink())continue;let p=N.join(r,s,c.name);try{await oe(N.join(p,"project-capabilities.json"))}catch{continue}i.push({unit:`${s}/${c.name}`,kind:s==="packages"?"package":"application",projectRoot:p})}let o=[];for(let s of i){let c="invalid",p;try{let d=(await Mp(["--project",s.projectRoot,"--json"])).value.result;c=d.state??"invalid",p=vp(c),c==="adopted"&&d.lock!==null&&typeof d.lock=="object"?p.push(...await Zi({projectRoot:s.projectRoot,lock:d.lock})):c==="adopted"&&p.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{p=vp("invalid")}try{let l=K(JSON.parse(await oe(N.join(s.projectRoot,"project-capabilities.json"),"utf8")));l.profile?.id==="workspace-web-application"&&p.push(...await iy({workspaceRoot:r,applicationId:String(l.profile.parameters.name)}))}catch{}o.push({unit:s.unit,kind:s.kind,state:c,findings:p})}let a=oy({workspace:N.basename(r),generatedAt:new Date().toISOString(),units:o});return{outputMode:z(e),human:`Workspace: ${a.workspace}
|
|
168
169
|
Status: ${a.status}
|
|
169
170
|
Units: ${a.summary.total}
|
|
170
171
|
Healthy: ${a.summary.healthy}
|
|
171
172
|
Attention: ${a.summary.attention}
|
|
172
173
|
Blocked: ${a.summary.blocked}
|
|
173
174
|
`+a.units.map(s=>`${s.unit}: ${s.status} (${s.findings.map(c=>c.code).join(", ")})`).join(`
|
|
174
|
-
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function
|
|
175
|
+
`),value:{schemaVersion:1,ok:!0,command:"doctor",result:a}}}async function Fp(e){let{LocalDockerDeploymentAdapter:t,NpmjsPublisherAdapter:r,HostedStaticPublicationAdapter:n}=await import("./optional-runtime.js");return e==="npm-publish"?new r:e==="application-deploy"?new t:e==="hosted-static"?new n:v("Delivery kind must be npm-publish, application-deploy, or hosted-static.")}function Qy(e){return e.length<=16?e:`${e.slice(0,12)}\u2026`}async function ch(e){let t=K(JSON.parse(await oe(N.join(e,"project-capabilities.json"),"utf8"))),r=await Be(e),n=r?.capabilities[0];if(r===null||n===void 0||r.capabilities.length!==1)return v("Delivery requires one adopted capability Lock.");if(t.profile===void 0||t.capabilities[0]?.capabilityId!==n.capabilityId||t.capabilities[0]?.version!==n.version)return v("Manifest and verified Lock must identify the same adopted capability.");let i=n.assets.filter(o=>!o.path.startsWith("src/"));return await Fr({projectRoot:e,expectedAssets:i}),{manifest:t,lock:r,locked:n,lockDigest:h(k(r))}}async function CN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},kind:{type:"string"},provider:{type:"string"},repository:{type:"string"},workflow:{type:"string"},ref:{type:"string"},environment:{type:"string"}}})}catch{return v("Delivery plan arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.kind!="string")return v("Delivery plan requires --project and --kind.");let r=N.resolve(t.values.project),n=await ch(r),o=await(await Fp(t.values.kind)).prepare({projectRoot:r,profile:n.manifest.profile.id,parameters:n.manifest.profile.parameters});if(t.values.kind==="npm-publish"&&await Lg({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 l=t.values.provider,d=t.values.repository,f=t.values.workflow,u=t.values.ref;if(l!=="github-actions"&&l!=="gitlab-ci"||typeof d!="string"||typeof f!="string"||typeof u!="string")throw new D("DELIVERY_PRECONDITION_FAILED","Secure npm Delivery Plan requires --provider, --repository, --workflow and --ref.");return{mode:"staged",access:"public",tag:"latest",authentication:"trusted-publishing",trustedAction:"stage-only",provenance:"required",execution:{provider:l,repository:d,workflow:f,ref:u,...typeof t.values.environment=="string"?{environment:t.values.environment}:{}}}})():void 0;if(a!==void 0){let l=JSON.parse(await oe(N.join(r,"package.json"),"utf8")),d=typeof l.repository=="string"?l.repository:l.repository!==null&&typeof l.repository=="object"?l.repository.url:void 0,f=`https://${a.execution.provider==="github-actions"?"github.com":"gitlab.com"}/${a.execution.repository}`;if(d!==f)throw new D("NPM_PROVENANCE_REQUIRED","package.json repository does not match the trusted publishing repository identity")}let s=new Date,c=mp({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 Cg({projectRoot:r,plan:c});let p=Q(r);return{outputMode:z(e),human:`Project: ${p}
|
|
175
176
|
Delivery: ${c.kind}
|
|
176
177
|
Artifact: ${c.artifact.identity}
|
|
177
178
|
Target: ${c.target.location}
|
|
@@ -183,73 +184,73 @@ Execution: ${c.publication.execution.provider}:${c.publication.execution.reposit
|
|
|
183
184
|
Approval: maintainer 2FA required outside Dyyto`}
|
|
184
185
|
Plan: ${c.planId}
|
|
185
186
|
State: reviewable
|
|
186
|
-
Next: dyyto delivery apply --project ${
|
|
187
|
+
Next: dyyto delivery apply --project ${p} --approve ${c.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-plan",result:{project:p,plan:c}}}}async function $N(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},approve:{type:"string"}}})}catch{return v("Delivery apply arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.approve!="string")return v("Delivery apply requires --project and --approve <planId>.");let r=N.resolve(t.values.project),n=await Zt({projectRoot:r,planId:t.values.approve}),i=await Tn({projectRoot:r,planId:n.planId}),o=Q(r);if(i!==null)return{outputMode:z(e),human:`Project: ${o}
|
|
187
188
|
Delivery: verified
|
|
188
|
-
Receipt: ${i.receiptId}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,receipt:i}}};let a=n.kind==="npm-publish"?await
|
|
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}
|
|
189
190
|
Delivery: staged
|
|
190
|
-
Stage: ${
|
|
191
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,reused:!0,state:"staged",record:a}}};if((n.kind==="npm-publish"?await
|
|
191
|
+
Stage: ${Qy(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 Tg({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 ch(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 p=await Fp(n.kind),l=await p.prepare({projectRoot:r,profile:c.manifest.profile.id,parameters:c.manifest.profile.parameters});if(k(l.artifact)!==k(n.artifact)||k(l.target)!==k(n.target))throw new D("DELIVERY_PRECONDITION_FAILED","Artifact or target changed after Delivery Plan approval");let d=await p.execute({projectRoot:r,plan:n,...n.kind==="npm-publish"?{onRemoteWriteStarting:async()=>{await $g({projectRoot:r,record:Dg({planId:n.planId,artifactDigest:n.artifact.digest,startedAt:new Date().toISOString()})})}}:{}});if(n.kind==="npm-publish"){let u=Sg({planId:n.planId,stageId:d.externalIdentity,artifactDigest:n.artifact.digest,createdAt:new Date().toISOString()});return await xg({projectRoot:r,record:u}),{outputMode:z(e),human:`Project: ${o}
|
|
192
193
|
Delivery: staged
|
|
193
|
-
Stage: ${
|
|
194
|
-
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await
|
|
194
|
+
Stage: ${Qy(u.stageId)}
|
|
195
|
+
State: approval-pending`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,state:"staged",record:u}}}}if(n.kind==="application-deploy"&&(await p.inspect({projectRoot:r,plan:n})).state!=="verified")throw new D("DELIVERY_EXECUTION_UNKNOWN","Docker deployment outcome could not be verified");let f=Fa({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 gp({projectRoot:r,receipt:f}),{outputMode:z(e),human:`Project: ${o}
|
|
195
196
|
Delivery: verified
|
|
196
|
-
Receipt: ${
|
|
197
|
-
External: ${
|
|
197
|
+
Receipt: ${f.receiptId}
|
|
198
|
+
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,receipt:f}}}}async function TN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},plan:{type:"string"},"stage-artifact":{type:"string"}}})}catch{return v("Delivery inspect arguments are invalid.")}if(typeof t.values.project!="string"||typeof t.values.plan!="string")return v("Delivery inspect requires --project and --plan <planId>.");let r=N.resolve(t.values.project),n=await Zt({projectRoot:r,planId:t.values.plan}),i=await Tn({projectRoot:r,planId:n.planId}),o=Q(r);if(i!==null)return{outputMode:z(e),human:`Project: ${o}
|
|
198
199
|
Delivery: verified
|
|
199
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:"verified",plan:n,receipt:i}}};let a=n.kind==="npm-publish"?await
|
|
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 Mg({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 p=h(await oe(N.resolve(t.values["stage-artifact"])));if(p!==n.artifact.digest||p!==a.artifactDigest)throw new D("DELIVERY_PRECONDITION_FAILED","Reviewed stage artifact does not match the approved Delivery Plan");s=jg({planId:n.planId,stageId:a.stageId,artifactDigest:p,reviewedAt:new Date().toISOString()}),await Vg({projectRoot:r,record:s})}let c=await(await Fp(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 p=Fa({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 gp({projectRoot:r,receipt:p}),{outputMode:z(e),human:`Project: ${o}
|
|
200
201
|
Delivery: verified
|
|
201
|
-
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:p,adapter:c}}}}if(n.kind==="npm-publish"&&a!==null){let p=c.state==="absent"||c.state==="staged"?"approval-pending":c.state;return{outputMode:z(e),human:`Project: ${o}
|
|
202
203
|
Delivery: staged
|
|
203
204
|
Plan: ${n.planId}
|
|
204
205
|
Artifact review: ${s===null?"pending":"verified"}
|
|
205
|
-
State: ${
|
|
206
|
+
State: ${p}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:p,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}
|
|
206
207
|
Delivery: ${c.state}
|
|
207
|
-
Plan: ${n.planId}`,value:{schemaVersion:1,ok:!0,command:"delivery-inspect",result:{project:o,state:c.state,plan:n,receipt:null,adapter:c}}}}async function
|
|
208
|
-
`),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 LN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},application:{type:"string"},limit:{type:"string"},cursor:{type:"string"}}})}catch{return v("Observe errors arguments are invalid.")}if(typeof t.values.workspace!="string")return v("Observe errors requires --workspace.");let r=await 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 xN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},workspace:{type:"string"},id:{type:"string"}}})}catch{return v("Observe error arguments are invalid.")}if(typeof t.values.workspace!="string"||typeof t.values.id!="string")return v("Observe error requires --workspace and --id.");let r=await new 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}
|
|
209
210
|
State: ${r.state}
|
|
210
211
|
Correlation: ${r.correlation}
|
|
211
212
|
Release: ${r.releaseId??"unknown"}
|
|
212
|
-
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 VN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"},workspace:{type:"string"}}})}catch{return v("Observe release register arguments are invalid.")}if(typeof t.values.project!="string")return v("Observe release register requires --project.");let r=await 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}
|
|
213
214
|
Source Maps: ${o.registrations.length}
|
|
214
|
-
\u516C\u5F00\u4EA7\u7269\u5DF2\u79FB\u9664 .map \u6587\u4EF6\u3002`,value:{schemaVersion:1,ok:!0,command:"observe-release-register",result:o}}}async function
|
|
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 MN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},query:{type:"string"},kind:{type:"string"},limit:{type:"string"}}})}catch{return v("Catalog search \u53C2\u6570\u65E0\u6548\u3002")}let r=t.values.kind;if(r!==void 0&&r!=="all"&&r!=="package"&&r!=="capability")return v("Catalog search --kind \u53EA\u63A5\u53D7 all\u3001package \u6216 capability\u3002");let n=t.values.limit===void 0?50:Number(t.values.limit);if(!Number.isSafeInteger(n)||n<1||n>200)return v("Catalog search --limit \u5FC5\u987B\u662F 1 \u5230 200 \u7684\u6574\u6570\u3002");let i=await Qa({...typeof t.values.query=="string"?{query:t.values.query}:{},...r==="package"||r==="capability"?{kind:r}:{},limit:n}),o=i.items.length===0?"\u76EE\u5F55\u4E2D\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u7A0B\u80FD\u529B\u3002":i.items.map(a=>`${a.ref}
|
|
215
216
|
${a.summary}
|
|
216
217
|
\u6210\u719F\u5EA6\uFF1A${a.maturity}`).join(`
|
|
217
|
-
`);return{outputMode:
|
|
218
|
+
`);return{outputMode:z(e),human:o,value:{schemaVersion:1,ok:!0,command:"catalog-search",result:i}}}async function FN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},ref:{type:"string"}}})}catch{return v("Catalog show \u53C2\u6570\u65E0\u6548\u3002")}if(typeof t.values.ref!="string"||t.values.ref.trim()==="")return v("Catalog show \u9700\u8981 --ref\u3002");let r=await es({ref:t.values.ref});return{outputMode:z(e),human:`${r.item.ref}
|
|
218
219
|
${r.item.summary}
|
|
219
220
|
\u6210\u719F\u5EA6\uFF1A${r.item.maturity}
|
|
220
|
-
\u5B8C\u6574\u6027\uFF1A${r.item.integrity}`,value:{schemaVersion:1,ok:!0,command:"catalog-show",result:r}}}async function rs(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:Fn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Fn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:op,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?DN(o.slice(1)):i==="catalog"&&o[0]==="show"?jN(o.slice(1)):i==="create"?Qy(o):i==="scaffold"&&o[0]==="example"?gN(o.slice(1),t):i==="retrofit"?sN(o):i==="dev"||i==="build"||i==="test"||i==="package"?cN(i,o):i==="add"&&o[0]==="package"?lN(o.slice(1)):i==="add"&&o[0]==="application"?dN(o.slice(1)):i==="add"&&o[0]==="feature"?eh(o.slice(1),t):i==="remove"&&o[0]==="feature"?pN(o.slice(1),t):i==="plan"?uN(o):i==="upgrade"?mN(o,t):i==="apply"?jd(o,t):i==="verify"?Cd(o):i==="inspect"?$d(o):i==="doctor"?AN(o):i==="recover"?yN(o):i==="lifecycle"&&typeof o[0]=="string"?hN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?IN(o.slice(1)):i==="integrations"?wN(o):i==="maintenance"?vN(o):i==="config"&&o[0]==="inspect"?bN(o.slice(1)):i==="config"&&o[0]==="readiness"?kN(o.slice(1)):i==="operations"?_N(o):i==="baseline"?fN(o):i==="delivery"&&o[0]==="plan"?RN(o.slice(1)):i==="delivery"&&o[0]==="apply"?EN(o.slice(1)):i==="delivery"&&o[0]==="inspect"?PN(o.slice(1)):i==="observe"&&o[0]==="errors"?NN(o.slice(1)):i==="observe"&&o[0]==="error"?ON(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?SN(o.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as CN}from"node:http";import{readFile as $N,readdir as CT,rm as $T}from"node:fs/promises";import{execFile as TN}from"node:child_process";import{promisify as LN}from"node:util";import xN from"node:path";var MT=LN(TN),Ld=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 VN(e){try{let t=JSON.parse(await $N(xN.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 nh(e){let t=new Yt(e.workspaceRoot),r=[...e.allowedOrigins??await VN(e.workspaceRoot)],n=new Ld,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=CN(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let d=s.headers.origin;if(typeof d!="string"||!r.includes(d)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let l=n.take(d);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 p=[],m=0;try{for await(let f of s){let g=Buffer.from(f);if(m+=g.length,m>64*1024)throw new se("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:f=>Qg(e.workspaceRoot,f)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let f=u instanceof se?u:null;f?.code==="RUNTIME_ERROR_INVALID"||f?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||f?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.storeFailed+=1,c.statusCode=f?.code==="RUNTIME_ERROR_TOO_LARGE"?413:f?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:f?.code==="RUNTIME_ERROR_INVALID"||f?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:f?.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(d=>d?c(d):s()))}}import{createHash as MN}from"node:crypto";import{createServer as FN}from"node:http";import{readFile as ih,realpath as oh}from"node:fs/promises";import ns from"node:path";var Be=class extends Error{constructor(r){super(r);this.code=r}code};function UN(e){return"sha512-"+MN("sha512").update(e).digest("base64")}async function ro(e){let t=await oh(e).catch(()=>{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await ih(ns.join(t,"index.json"),"utf8").catch(()=>{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Hr(JSON.parse(r))}catch{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=ns.join(t,o.assetName),s=ns.relative(t,await oh(a).catch(()=>{throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||ns.isAbsolute(s))throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await ih(a);if(h(c)!==o.tarballDigest||UN(c)!==o.integrity)throw new Be("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 ah(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 BN(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 zN(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&&ah(s)!==ah(o))throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let d=n.get(o.assetName);if(d!==void 0&&!Buffer.from(d).equals(c))throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function sh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Be("LOCAL_ARTIFACT_SERVER_INVALID");let t=await ro(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(ro)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Be("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=zN(t,r),o=e.hostname??"127.0.0.1",a=FN((s,c)=>{let d=s.method??"";if(d!=="GET"&&d!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let l=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(l.slice(1)),m=i.artifacts.filter(u=>u.packageName===p).sort((u,f)=>BN(u.version,f.version));if(m.length>0){let u="http://"+o+":"+e.port,f=Object.fromEntries(m.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=m.at(-1),y=Buffer.from(JSON.stringify({name:g.packageName,versions:f,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(y.byteLength)),c.end(d==="HEAD"?void 0:y);return}if(l.startsWith("/tarballs/")){let u=l.slice(10),f=i.assets.get(u);if(f!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(f.byteLength)),c.end(d==="HEAD"?void 0:f);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(d==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{a.once("error",c),a.listen(e.port,o,s)}).catch(()=>{throw new Be("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 GN}from"node:crypto";import{execFile as JN}from"node:child_process";import{cp as WN,mkdir as ch,mkdtemp as xd,readFile as as,realpath as no,rename as KN,rm as lh,stat as YN,writeFile as os}from"node:fs/promises";import{tmpdir as HN}from"node:os";import Le from"node:path";import{promisify as ZN}from"node:util";import{gunzipSync as XN}from"node:zlib";var QN=ZN(JN),e0=["preinstall","install","postinstall","prepublish","prepare"],G=class extends Error{constructor(r){super(r);this.code=r}code};function t0(e){return"sha512-"+GN("sha512").update(e).digest("base64")}async function r0(e,t){let r=await no(e).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let o=await no(Le.join(r,i)).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Le.relative(r,o);if(a!==i||a.startsWith("..")||Le.isAbsolute(a))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=await as(Le.join(o,"package.json")).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function n0(e,t){let r=new Map(e.map(o=>[String(o.manifest.name),String(o.manifest.version)])),n=t.dependencies;if(n===void 0)return{};if(typeof n!="object"||n===null||Array.isArray(n))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let i={};for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=a.startsWith("workspace:")?r.get(o):a;if(s===void 0)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");i[o]=s}return Object.fromEntries(Object.entries(i).sort(([o],[a])=>o.localeCompare(a)))}function i0(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 o0(e,t,r){let n;try{n=XN(e)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let i=i0(n,"package/package.json");if(i===void 0)throw new G("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[d])=>c.localeCompare(d)));if(o.name!==t.name||o.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new G("LOCAL_ARTIFACT_PACK_FAILED")}function a0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function s0(e,t,r){let n=Le.join(await xd(Le.join(r,"stage-")),"package");await WN(e.root,n,{recursive:!0,filter:o=>Le.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await os(Le.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
221
|
-
`),n}async function
|
|
222
|
-
`,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await
|
|
223
|
-
`)throw new
|
|
224
|
-
`,{mode:292}),await
|
|
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 y0(e,t,r){let n=d0(e,t.manifest),i=m0(t.manifest,n)?await g0(t,n,r):t.root,o;try{({stdout:o}=await s0("npm",["pack","--json","--ignore-scripts","--pack-destination",r],{cwd:i,timeout:12e4,maxBuffer:1024*1024}))}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let a;try{a=JSON.parse(o)}catch{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}let s=a[0]?.filename;if(typeof s!="string"||s.includes("/")||s.includes("\\")||!s.endsWith(".tgz"))throw new J("LOCAL_ARTIFACT_PACK_FAILED");let c=await ps(Ve.join(r,s)).catch(()=>{throw new J("LOCAL_ARTIFACT_PACK_FAILED")}),p=t.manifest.scripts;if(p!==void 0&&(typeof p!="object"||p===null||Array.isArray(p)))throw new J("LOCAL_ARTIFACT_INPUT_INVALID");let l=c0.filter(d=>Object.hasOwn(p??{},d));return f0(c,t.manifest,n),{artifact:{packageName:String(t.manifest.name),version:String(t.manifest.version),assetName:s,integrity:l0(c),tarballDigest:h(c),dependencies:n,lifecycleScripts:l},bytes:c}}async function yh(e,t){let r=await p0(e,t),n=await qp(Ve.join(await so(i0()),"dyyto-local-artifact-pack-"));try{let i=await Promise.all(r.map(a=>y0(r,a,n)));i.sort((a,s)=>(a.artifact.packageName+"@"+a.artifact.version).localeCompare(s.artifact.packageName+"@"+s.artifact.version));let o=kp({artifacts:i.map(a=>a.artifact)});return{packages:r,bundle:o,bytes:new Map(i.map(a=>[a.artifact.assetName,a.bytes]))}}finally{await gh(n,{recursive:!0,force:!0})}}function cs(e,t){return Ve.join(e,".dyyto","artifact-plans",t+".json")}function h0(e,t){return Ve.join(e,".dyyto","package-artifacts",t)}async function hh(e){let t=await so(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await yh(t,e.packageRoots),n=e.now??new Date,i=_p({packageInputs:r.packages.map(o=>({relativeRoot:o.relativeRoot,manifestDigest:h(o.manifestBytes)})),bundle:r.bundle,generatedAt:n.toISOString(),expiresAt:new Date(n.getTime()+30*6e4).toISOString()});return await mh(Ve.dirname(cs(t,i.planId)),{recursive:!0}),await ls(cs(t,i.planId),JSON.stringify(i,null,2)+`
|
|
223
|
+
`,{flag:"wx",mode:384}).catch(async o=>{if(o.code!=="EEXIST")throw o;if(await ps(cs(t,i.planId),"utf8")!==JSON.stringify(i,null,2)+`
|
|
224
|
+
`)throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT")}),i}async function wh(e){let t=await so(e.workspaceRoot).catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),r=await ps(cs(t,e.approvedPlanId),"utf8").catch(()=>{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}),n;try{n=Ry(JSON.parse(r))}catch{throw new J("LOCAL_ARTIFACT_INPUT_INVALID")}if(n.planId!==e.approvedPlanId)throw new J("LOCAL_ARTIFACT_INPUT_INVALID");if((e.now??new Date).getTime()>Date.parse(n.expiresAt))throw new J("LOCAL_ARTIFACT_PLAN_EXPIRED");let i=h0(t,n.bundle.bundleId);if(await n0(i).then(()=>!0).catch(c=>c.code==="ENOENT"?!1:Promise.reject(c)))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let o=await yh(t,n.packageInputs.map(c=>c.relativeRoot));if(o.bundle.bundleId!==n.bundle.bundleId||o.packages.some((c,p)=>h(c.manifestBytes)!==n.packageInputs[p].manifestDigest))throw new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT");let a=Ve.dirname(i);await mh(a,{recursive:!0});let s=await qp(Ve.join(a,".bundle-next-"));try{await Promise.all(n.bundle.artifacts.map(c=>ls(Ve.join(s,c.assetName),o.bytes.get(c.assetName),{mode:292}))),await ls(Ve.join(s,"index.json"),JSON.stringify(n.bundle,null,2)+`
|
|
225
|
+
`,{mode:292}),await r0(s,i)}catch(c){throw await gh(s,{recursive:!0,force:!0}),c.code==="EEXIST"?new J("LOCAL_ARTIFACT_PREIMAGE_CONFLICT"):c}return{bundleId:n.bundle.bundleId,target:i}}var br=class extends Error{constructor(r){super(r);this.code=r}code};function Ih(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=Zl({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=Xl({registryId:n.registryId,registryConfigRevision:n.revision,origin:r.toString(),resolvedAt:e.resolvedAt,expiresAt:e.expiresAt},n),o=t.flatMap(c=>Ey({bundle:c,registry:n,verifiedAt:e.resolvedAt})),a=new Map(t.flatMap(c=>c.artifacts.map(p=>[`${p.packageName}@${p.version}`,p]))),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 l of c.packageSources){let d=`${l.packageName}@${l.version}`,f=a.get(d),u=s.get(d);if(!f||!u||l.registryId!==n.registryId||l.version!==f.version||l.integrity!==f.integrity||l.tarballDigest!==f.tarballDigest||l.deliveryReceiptId!==u.receiptId)throw new br("LOCAL_ARTIFACT_RELEASE_MISMATCH")}let p=Object.freeze(c.packageSources.map(l=>s.get(`${l.packageName}@${l.version}`)));return Object.freeze({registryConfigs:Object.freeze([n]),endpointBindings:Object.freeze([i]),receipts:p,inspections:Object.freeze(c.packageSources.map(l=>{let d=a.get(`${l.packageName}@${l.version}`);return Object.freeze({...l,dependencies:d.dependencies,lifecycleScripts:d.lifecycleScripts})}))})}})}import{mkdir as w0,open as I0,readFile as Gp,rename as v0,rm as b0,writeFile as k0}from"node:fs/promises";import Fn from"node:path";import{resolvePnpmWorkspaceLock as _0}from"./optional-runtime.js";var A0=h(k({schemaVersion:1,completedRequests:[]}));function vh(e){return h(k({schemaVersion:1,completedRequests:[...e].sort()}))}function Jp(e){let t=e.trim();return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function Bp(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(Jp(o[1]),h(Buffer.from(`${a.join(`
|
|
225
226
|
`)}
|
|
226
|
-
`))),i=s}return r}function
|
|
227
|
+
`))),i=s}return r}function zp(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:Jp(a[1]),bytes:Buffer.from(`${s.join(`
|
|
227
228
|
`)}
|
|
228
|
-
`)}),o=c}return i}function
|
|
229
|
-
`,{mode:384}),await
|
|
229
|
+
`)}),o=c}return i}function R0(e){let t=e.startsWith("@")?e.indexOf("@",e.indexOf("/")+1):e.lastIndexOf("@");if(t<=0)return;let r=e.slice(0,t),n=e.slice(t+1).replace(/\(.+\)$/u,"");return/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(n)?{packageName:r,version:n}:void 0}function E0(e,t,r){let n=new Map(zp(e,"snapshots").map(i=>[i.key,i.bytes]));return zp(e,"packages").map(i=>{let o=R0(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=Jp(a[1]),c=t.find(d=>d.packageName===o.packageName&&d.version===o.version),p=c?.registryId??r.find(d=>d.scopes.some(f=>o.packageName.startsWith(`${f}/`)))?.registryId??"registry.npmjs.public",l=n.get(i.key);return{identity:i.key,packageName:o.packageName,version:o.version,integrity:s,registryId:p,managed:c!==void 0,edgesDigest:h(l??k({dependencies:[]}))}}).sort((i,o)=>i.identity.localeCompare(o.identity))}function bh(e={}){return async t=>{let r=await _0({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=Bp(t.currentLockfile),i=Bp(r.lockfile),o=await Cn(t.topology.transactionRoot),a=new Map(o.map(d=>[d.relativeRoot,d.bytes])),s=await Gp(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,f])=>{let u=a.get(d);if(!u)throw new Error("RESOLUTION_WORKER_IMPORTER_MANIFEST_MISSING");return{importerId:d,manifestDigest:h(u),preimageDigest:n.get(d)??h(k({absent:!0})),desiredDigest:f}}).sort((d,f)=>d.importerId.localeCompare(f.importerId)),p=E0(r.lockfile,t.sources,t.registryConfigs),l=zp(r.lockfile,"snapshots");return{desiredLockfile:r.lockfile,importerFacts:c,packageFacts:p,snapshotClosureDigest:h(k(l.map(d=>({identity:d.key,digest:h(d.bytes)})))),networkObservationDigest:r.executionObservationDigest,commandDigest:h(k({executable:"corepack",pnpmVersion:"11.21.0",action:"install-lockfile-only-resolution-only",targetImporterId:t.topology.unitImporterId})),writesDigest:h(k({desiredLockDigest:h(r.lockfile),packageFacts:p.map(({identity:d,integrity:f})=>({identity:d,integrity:f}))}))}}}async function P0(e){try{let t=JSON.parse(await Gp(e,"utf8"));if(t.schemaVersion!==1||!Array.isArray(t.completedRequests)||t.completedRequests.some(r=>typeof r!="string")||t.revision!==vh(t.completedRequests))throw new Error("RESOLUTION_WORKER_STATE_INVALID");return{schemaVersion:1,revision:t.revision,completedRequests:Object.freeze([...t.completedRequests])}}catch(t){if(t.code==="ENOENT")return{schemaVersion:1,revision:A0,completedRequests:Object.freeze([])};throw t}}function kh(e){let t=e.workerReleaseId??"reference.pnpm-resolution-worker.v1";return{async resolveWorkspace(r){if(r.topology.mode!=="pnpm-shared-lockfile")throw new Error("RESOLUTION_WORKER_TOPOLOGY_INVALID");let n=Ya(JSON.parse(await Gp(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=[...Bp(r.currentLockfile)].filter(([f])=>f!==r.topology.unitImporterId).map(([f,u])=>({importerId:f,preimageDigest:u,desiredDigest:u})).sort((f,u)=>f.importerId.localeCompare(u.importerId)),a={mode:r.topology.mode,unitRelativeRoot:r.topology.unitRelativeRoot,unitImporterId:r.topology.unitImporterId,lockfilePath:r.topology.lockfilePath,workspaceManifestPath:r.topology.workspaceManifestPath,workspaceManifestDigest:r.topology.workspaceManifestDigest},s=Fi({schemaVersion:1,pnpmVersion:"11.21.0",topology:a,currentLockfileDigest:h(r.currentLockfile),desiredPackageJsonDigest:h(r.desiredPackageJson),sources:r.sources.map(({registryId:f,packageName:u,version:m,integrity:g})=>({registryId:f,packageName:u,version:m,integrity:g})),preservedImporterDigests:o.map(({importerId:f,preimageDigest:u})=>({importerId:f,preimageDigest:u}))}),p=`pnpm11-node24-${h(k({workerReleaseId:t,pnpmVersion:"11.21.0",registryRevisions:r.registryConfigs.map(({registryId:f,revision:u})=>({registryId:f,revision:u})).sort((f,u)=>f.registryId.localeCompare(u.registryId))})).slice(7)}`;await w0(e.stateRoot,{recursive:!0});let l=Fn.join(e.stateRoot,`${p.slice(7)}.lease`),d;try{d=await I0(l,"wx",384)}catch(f){throw f.code==="EEXIST"?new Error("RESOLUTION_WORKER_BUSY"):f}try{let f=Fn.join(e.stateRoot,"state.json"),u=await P0(f),m=await e.engine({...r,stateRoot:e.stateRoot,cacheNamespace:p}),g=[...new Set([...u.completedRequests,s])].sort(),y=vh(g),w=pg({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:p,preimageRevision:u.revision,desiredRevision:y,writesDigest:m.writesDigest},commandDigest:m.commandDigest,completedAt:r.generatedAt,expiresAt:r.expiresAt}),_=Fn.join(e.stateRoot,`state.${s.slice(7)}.tmp`);return await k0(_,`${JSON.stringify({schemaVersion:1,revision:y,completedRequests:g},null,2)}
|
|
230
|
+
`,{mode:384}),await v0(_,f),{evidence:w,workerReleaseId:t,preservedImporterDigests:o}}finally{await d.close(),await b0(l,{force:!0})}}}}import{execFile as N0}from"node:child_process";import{mkdir as Un,mkdtemp as O0,readFile as jt,readdir as S0,readlink as D0,realpath as Kp,rename as j0,rm as _h,stat as C0,writeFile as rn}from"node:fs/promises";import{tmpdir as $0}from"node:os";import ue from"node:path";import{promisify as T0}from"node:util";var L0=T0(N0);function Ah(e,t){return ue.join(e,".dyyto","resolution-worker-plans",`${t}.json`)}function Rh(e){return ue.join(e,".dyyto","resolution-worker")}function Wp(e){return ue.join(Rh(e),"build-receipt.json")}async function x0(e){let t=[];async function r(n){for(let i of await S0(n,{withFileTypes:!0}).catch(o=>o.code==="ENOENT"?[]:Promise.reject(o))){let o=ue.join(n,i.name);if(i.isSymbolicLink()){let a=await D0(o);t.push({path:ue.relative(e,o),digest:h(k({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:h(a),bytes:a.byteLength})}}}return await r(e),t.sort((n,i)=>n.path.localeCompare(i.path)),{cacheDigest:h(k(t)),cacheBytes:t.reduce((n,i)=>n+i.bytes,0)}}function Eh(){return async({workspaceRoot:e,stateRoot:t})=>{let r=await O0(ue.join(await Kp($0()),"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(l=>l.code==="ENOENT"?void 0:Promise.reject(l));i&&await rn(ue.join(r,"package.json"),i);for(let l of await Cn(e)){let d=ue.join(r,...l.relativeRoot.split("/"));await Un(d,{recursive:!0}),await rn(ue.join(d,"package.json"),l.bytes)}let o=ue.join(n,"userconfig.npmrc");await rn(o,`ignore-scripts=true
|
|
230
231
|
strict-peer-dependencies=true
|
|
231
232
|
manage-package-manager-versions=false
|
|
232
|
-
`,{mode:384});let a=ue.join(t,"store","shared"),s=ue.join(t,"cache");await
|
|
233
|
-
`;return await
|
|
234
|
-
`,{mode:384}),await
|
|
235
|
-
`;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"],p=await L0("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 x0(t),commandDigest:h(k({executable:"corepack",args:c,stdoutDigest:h(p.stdout),stderrDigest:h(p.stderr)}))}}finally{await _h(r,{recursive:!0,force:!0})}}}async function Ph(e){let t=await Kp(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=h(k({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n)})),a=Ap({workerReleaseId:e.workerReleaseId??"reference.pnpm-resolution-worker.v1",pnpmVersion:"11.21.0",workspaceManifestDigest:h(n),rootLockDigest:h(i),cacheNamespace:`pnpm11-node24-${o.slice(7)}`,maximumBytes:e.maximumBytes,generatedAt:r.toISOString(),expiresAt:new Date(r.getTime()+30*6e4).toISOString()}),s=Ah(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 p=>{if(p.code!=="EEXIST"||await jt(s,"utf8")!==c)throw p}),a}async function Nh(e){let t=await Kp(e.workspaceRoot),r=Ny(JSON.parse(await jt(Ah(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(h(n)!==r.workspaceManifestDigest||h(i)!==r.rootLockDigest)throw new rt("RESOLUTION_WORKER_BUILD_PREIMAGE_CONFLICT");let o=Rh(t),a=await jt(Wp(t),"utf8").catch(s=>s.code==="ENOENT"?void 0:Promise.reject(s));if(a)return Ya(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()}),p=ue.join(o,`build-receipt.${r.planId.slice(7)}.tmp`);return await rn(p,`${JSON.stringify(c,null,2)}
|
|
235
|
+
`,{mode:384}),await j0(p,Wp(t)),c}catch(s){throw await C0(Wp(t)).then(()=>!0).catch(()=>!1)||await _h(ue.join(o,"store",r.cacheNamespace),{recursive:!0,force:!0}),s}}import{mkdir as V0,readFile as nn,realpath as Oh,writeFile as M0}from"node:fs/promises";import on from"node:path";function Sh(e,t){return on.join(e,".dyyto","recovery-override-plans",`${t}.json`)}async function Dh(e){let t=await Oh(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 l of i.operations){if(l.before.kind!=="present"||!l.before.preimageDigest)continue;let d=await nn(on.join(r.transactionRoot,...l.path.split("/"))).catch(u=>u.code==="ENOENT"?void 0:Promise.reject(u));if(!d)continue;let f=h(d);f!==l.before.digest&&f!==l.desiredDigest&&o.push({path:l.path,currentDigest:f,preimageDigest:l.before.preimageDigest})}let a=e.now??new Date,s=Pp({transactionPlanId:n.planId,transactionRootDigest:h(r.transactionRoot),conflicts:o,generatedAt:a.toISOString(),expiresAt:new Date(a.getTime()+30*6e4).toISOString()}),c=Sh(t,s.planId);await V0(on.dirname(c),{recursive:!0});let p=`${JSON.stringify(s,null,2)}
|
|
236
|
+
`;return await M0(c,p,{flag:"wx",mode:384}).catch(async l=>{if(l.code!=="EEXIST"||await nn(c,"utf8")!==p)throw l}),s}async function jh(e){let t=await Oh(e.projectRoot),r=await Yt(t),n=Oy(JSON.parse(await nn(Sh(t,e.approvedPlanId),"utf8")));if(n.planId!==e.approvedPlanId||Date.now()>Date.parse(n.expiresAt)||r.mode!=="pnpm-shared-lockfile"||h(r.transactionRoot)!==n.transactionRootDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT");for(let i of n.conflicts){let o=await nn(on.join(r.transactionRoot,...i.path.split("/")));if(h(o)!==i.currentDigest)throw new Error("RECOVERY_OVERRIDE_PREIMAGE_CONFLICT")}return jl({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 ds(e){return e.endsWith(`
|
|
236
237
|
`)?e:`${e}
|
|
237
|
-
`}function
|
|
238
|
-
Next: ${e.error.nextStep}`;return{stdout:"",stderr:
|
|
238
|
+
`}function Ch(e,t,r){return t==="json"?{stdout:ds(JSON.stringify(e)),stderr:""}:{stdout:ds(r),stderr:""}}function $h(e,t){if(t==="json")return{stdout:"",stderr:ds(JSON.stringify(e))};let r=e.error.nextStep===void 0?"":`
|
|
239
|
+
Next: ${e.error.nextStep}`;return{stdout:"",stderr:ds(`${e.error.code}: ${e.error.message}${r}`)}}import{lstat as F0,readFile as lo,realpath as Th}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 F0(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new It("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");return lo(e)}}async function Lh(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 U0(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`^ ${r}:\\s*$`,"mu").test(e)}function xh(e,t){let r=e.toString("utf8"),n=t.toString("utf8"),i=/^verifyDepsBeforeRun:\s*([^\r\n#]+)$/mu.exec(n)?.[1]?.trim();i&&!/^verifyDepsBeforeRun:/mu.test(r)&&(r+=`${r.endsWith(`
|
|
239
240
|
`)?"":`
|
|
240
241
|
`}verifyDepsBeforeRun: ${i}
|
|
241
|
-
`);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 p of o){if(/^allowBuilds:\s*$/u.test(p)){s=!0;continue}if(s&&/^ ['"]?[^'"\s][^:]*['"]?:\s*true\s*$/u.test(p)){a.push(p.trim());continue}s&&p.trim()&&!/^\s/u.test(p)&&(s=!1)}let c=a.filter(p=>!r.split(/\r?\n/u).some(l=>l.trim()===p));if(c.length>0)if(!/^allowBuilds:\s*$/mu.test(r))r+=`${r.endsWith(`
|
|
242
243
|
`)?"":`
|
|
243
244
|
`}allowBuilds:
|
|
244
|
-
${c.map(
|
|
245
|
+
${c.map(p=>` ${p}`).join(`
|
|
245
246
|
`)}
|
|
246
|
-
`;else{let
|
|
247
|
+
`;else{let p=r.split(/\r?\n/u),d=p.findIndex(f=>/^allowBuilds:\s*$/u.test(f))+1;for(;d<p.length&&(!p[d].trim()||/^\s/u.test(p[d]));)d+=1;p.splice(d,0,...c.map(f=>` ${f}`)),r=p.join(`
|
|
247
248
|
`)}return Buffer.from(r.endsWith(`
|
|
248
249
|
`)?r:`${r}
|
|
249
|
-
`)}async function
|
|
250
|
-
`);continue}r=i}catch{
|
|
251
|
-
`);continue}let n=await
|
|
252
|
-
`)}}import{createHash as
|
|
250
|
+
`)}async function Vh(e){let t=await Th(Je.resolve(e.projectRoot)),r=await Lh(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(!U0(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?xh(s,o):s,p=[...h(c)!==h(s)?[{path:"pnpm-workspace.yaml",kind:"replace",ownership:"owned-file",baseDigest:h(s),desiredDigest:h(c)}]:[],...i?[{path:`${n}/pnpm-lock.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(i)}]:[],...o?[{path:`${n}/pnpm-workspace.yaml`,kind:"remove",ownership:"owned-file",baseDigest:h(o)}]:[]],l=e.generatedAt??new Date().toISOString(),d=e.expiresAt??new Date(Date.parse(l)+30*6e4).toISOString(),f=Ne({action:"upgrade",capability:{schemaVersion:1,capabilityId:"foundation.workspace-topology-migration",version:"1.0.0",integrity:h("foundation.workspace-topology-migration@1.0.0"),assets:[],verifiers:[]},changes:p,observedAssets:p.map(m=>({path:m.path,exists:!0,digest:m.baseDigest})),generatedAt:l,expiresAt:d});return{plan:await Kt({projectRoot:t,transactionRoot:r,plan:f,now:l}),transactionRoot:r}}async function Mh(e){let t=await Th(Je.resolve(e.projectRoot)),r=await Lh(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")),p=await lo(Je.join(r,"pnpm-workspace.yaml")),l=xh(p,c);if(h(l)!==o.desiredDigest)throw new It("WORKSPACE_TOPOLOGY_PREIMAGE_CONFLICT");i.set("pnpm-workspace.yaml",l)}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 q0}from"node:readline";import us from"node:process";var B0=[{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 Yp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fs(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 z0(e,t){let r=e.id??null;if(e.method==="notifications/initialized")return null;if(e.method==="initialize")return fs(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 fs(r,{tools:B0});if(e.method!=="tools/call")return po(r,-32601,`\u4E0D\u652F\u6301\u7684\u65B9\u6CD5\uFF1A${e.method}`);if(!Yp(e.params)||typeof e.params.name!="string"||e.params.arguments!==void 0&&!Yp(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 Qa({...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 es({ref:n.ref,...t===void 0?{}:{roots:t}})}else return po(r,-32602,`\u672A\u77E5\u5DE5\u5177\uFF1A${e.params.name}`);return fs(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 fs(r,{isError:!0,content:[{type:"text",text:o}]})}}async function Fh(){let e=q0({input:us.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(!Yp(i)||i.jsonrpc!=="2.0"||typeof i.method!="string"){us.stdout.write(`${JSON.stringify(po(null,-32600,"JSON-RPC \u8BF7\u6C42\u65E0\u6548"))}
|
|
251
|
+
`);continue}r=i}catch{us.stdout.write(`${JSON.stringify(po(null,-32700,"JSON \u89E3\u6790\u5931\u8D25"))}
|
|
252
|
+
`);continue}let n=await z0(r);n!==null&&us.stdout.write(`${JSON.stringify(n)}
|
|
253
|
+
`)}}import{createHash as G0}from"node:crypto";import{spawnSync as J0}from"node:child_process";import{chmod as W0,lstat as K0,mkdir as Y0,readdir as Zp,readFile as Ut,realpath as Uh,rename as H0,unlink as Z0,writeFile as X0}from"node:fs/promises";import B from"node:path";var uo="1.1.0",Ft=Object.freeze({"@aipt/cli":"0.1.41","@aipt/idp-cli":"0.1.6","@aipt/idp-deploy":"0.1.12"}),qh=Object.entries(Ft).map(([e,t])=>`${e}@${t}`),Xp="<!-- 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:${G0("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),ms=`${Xp}
|
|
253
254
|
## Dyyto \u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0
|
|
254
255
|
|
|
255
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
|
|
@@ -259,16 +260,16 @@ ${c.map(d=>` ${d}`).join(`
|
|
|
259
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
|
|
260
261
|
- \u4E0D\u7ED5\u8FC7\u4E0D\u53EF\u53D8 Lock\u3001Repository State \u4E0E Evidence\uFF0C\u4E0D\u9759\u9ED8\u8986\u76D6\u7528\u6237\u4FEE\u6539\u3002
|
|
261
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
|
|
262
|
-
${
|
|
263
|
+
${fo}`;function Q0(e,t){let r=`${t}
|
|
263
264
|
|
|
264
|
-
${
|
|
265
|
-
`,n=e.indexOf(
|
|
265
|
+
${ms}
|
|
266
|
+
`,n=e.indexOf(Xp),i=e.indexOf(fo);if(n<0&&i<0)return e.length===0?r:`${e.trimEnd()}
|
|
266
267
|
|
|
267
|
-
${
|
|
268
|
-
`;if(n<0||i<n)throw new
|
|
268
|
+
${ms}
|
|
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)}${ms}${e.slice(i+fo.length)}`}function eO(e){let t=e.indexOf(Xp),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(`---
|
|
269
270
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219`)||n.startsWith(`---
|
|
270
271
|
name: dyyto-engineering`)?null:`${n}
|
|
271
|
-
`}var
|
|
272
|
+
`}var Hp=[["AGENTS.md","# Agent Instructions"],["CLAUDE.md","# Claude Code Instructions"],[".cursor/rules/dyyto-engineering.mdc",`---
|
|
272
273
|
description: Dyyto\u5DE5\u7A0B\u80FD\u529B\u5E73\u53F0\u89C4\u5219
|
|
273
274
|
alwaysApply: true
|
|
274
275
|
---`],[".agent/rules/dyyto-engineering.md","# Antigravity Agent Rules"],[".agents/skills/dyyto-engineering/SKILL.md",`---
|
|
@@ -277,13 +278,24 @@ description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u
|
|
|
277
278
|
---`],[".claude/skills/dyyto-engineering/SKILL.md",`---
|
|
278
279
|
name: dyyto-engineering
|
|
279
280
|
description: \u5728Dyyto\u7EB3\u7BA1\u9879\u76EE\u4E2D\u5F00\u53D1\u3001\u6539\u9020\u3001\u9A8C\u8BC1\u6216\u90E8\u7F72\u65F6\u4F7F\u7528\u3002
|
|
280
|
-
---`]];async function
|
|
281
|
-
`,
|
|
282
|
-
`,s=`${JSON.stringify({schemaVersion:1,kind:"AgentPolicyLock",policy:{id:"dyyto.engineering",version:
|
|
283
|
-
`,c=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:
|
|
284
|
-
`;for(let[
|
|
285
|
-
|
|
286
|
-
|
|
281
|
+
---`]];async function Qp(e){if(!B.isAbsolute(e))throw new We("BOOTSTRAP_PROJECT_NOT_ABSOLUTE","--project\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let t=await Uh(e),r=await K0(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 gs(e,t){await Y0(B.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await X0(r,t,{mode:384,flag:"wx"}),await H0(r,e),await W0(e,e.includes(`${B.sep}.dyyto${B.sep}hooks${B.sep}`)?493:e.endsWith(".json")?384:420)}async function tO(e){let t=new Set,r=async n=>{for(let i of await Zp(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 Bh(){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:84887c3f67935b1e6f35f44f535f12d3f796db0b9890a40e5d66073617744d39"},{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 zh(e){let t=await Qp(e),r=[];for(let[g,y]of Hp){let w=await vt(B.join(t,g)),_=Q0(w,y);r.push({path:g,preimageDigest:Pe(w),desired:_,desiredDigest:Pe(_)})}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 Zp(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")),w=await vt(B.join(g,".env.example"));if(!y||!w)continue;let _=JSON.parse(y);if(!n.has(_?.profile?.id))continue;let b=new Set([...w.matchAll(/^([A-Z][A-Z0-9_]*)=/gmu)].map(C=>C[1])),R=(await tO(g)).filter(C=>!b.has(C));if(R.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${R.join("\u3001")}`);let I=`${JSON.stringify(kg({manifest:_,environmentExample:w}),null,2)}
|
|
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(ms)},adapters:Hp.map(([g])=>g)},null,2)}
|
|
284
|
+
`,c=`${JSON.stringify({schemaVersion:1,kind:"DocumentationLock",documents:Bh()},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 w=await vt(B.join(t,g));r.push({path:g,preimageDigest:Pe(w),desired:y,desiredDigest:Pe(y)})}let p={".dyyto/hooks/post-checkout":`#!/bin/sh
|
|
286
|
+
# Dyyto\u8584Hook\uFF1A\u53EA\u8BFB\u5237\u65B0\uFF0C\u4E0D\u4FEE\u6539\u53D7\u7248\u672C\u63A7\u5236\u6587\u4EF6\u3002
|
|
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
|
+
exit 0
|
|
289
|
+
`,".dyyto/hooks/post-merge":`#!/bin/sh
|
|
290
|
+
dyyto context resolve --project "$(git rev-parse --show-toplevel)" >/dev/null || printf '%s\\n' 'Dyyto\uFF1A\u5408\u5E76\u540E\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u9700\u8981\u5904\u7406\u3002' >&2
|
|
291
|
+
exit 0
|
|
292
|
+
`,".dyyto/hooks/pre-commit":`#!/bin/sh
|
|
293
|
+
exec dyyto dev verify --project "$(git rev-parse --show-toplevel)"
|
|
294
|
+
`,".dyyto/hooks/pre-push":`#!/bin/sh
|
|
295
|
+
exec dyyto dev verify --project "$(git rev-parse --show-toplevel)"
|
|
296
|
+
`};for(let[g,y]of Object.entries(p)){let w=await vt(B.join(t,g));r.push({path:g,preimageDigest:Pe(w),desired:y,desiredDigest:Pe(y)})}let l={schemaVersion:1,kind:"DyytoBootstrapPlan",projectRoot:t,policyVersion:uo,files:r,createdAt:new Date().toISOString()},d={...l,planId:Pe(an(l))},f=B.join(t,".dyyto/plans/bootstrap",`${d.planId.slice(7)}.json`),u=await vt(f),m=`${JSON.stringify(d,null,2)}
|
|
297
|
+
`;if(u&&u!==m)throw new We("BOOTSTRAP_PLAN_CONFLICT","\u76F8\u540CBootstrap Plan\u8DEF\u5F84\u5DF2\u6709\u4E0D\u540C\u5185\u5BB9\u3002");return u||await gs(f,m),{plan:d,planFile:f,changed:r.filter(g=>g.preimageDigest!==g.desiredDigest).map(g=>g.path)}}async function Gh(e){let t=await Qp(e),r=[];for(let[c]of Hp){let p=await vt(B.join(t,c)),l=eO(p);r.push({path:c,preimageDigest:Pe(p),desired:l,desiredDigest:Pe(l??"")})}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 gs(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 ed(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 Uh(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 gs(B.join(o,a.path),c),a.desired===null?c&&await Z0(s):c!==a.desired&&await gs(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 rO(e){let t=[],r=["packages","apps","services"];for(let n of r){let i=B.join(e,n);try{let o=await Zp(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 p="incubating";c.dyyto?.tier?p=c.dyyto.tier:c.name.startsWith("@aipt/")||c.name.startsWith("@dyyto/")?p="platform-mirror":(a.name==="domain"||a.name==="persistence"||a.name==="application"||a.name==="api-contracts"||c.private===!0)&&(p="proprietary"),t.push({name:c.name,version:c.version||"0.0.0",relativePath:`${n}/${a.name}`,tier:p})}catch{}}}catch{}}return t}async function mo(e){let t=await Qp(e),r={tools:Ft};try{r=JSON.parse(await Ut(B.join(t,".dyyto/toolchain.lock.json"),"utf8"))}catch{}let n={documents:Bh()};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 rO(t),a=m=>{let g=J0("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"]),p=a(["rev-parse","--show-toplevel"]),l=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),f=l?.policy?.version===uo&&Array.isArray(d?.documents)?"current":l===null&&d===null?"not-bootstrapped":"drifted",u={schemaVersion:1,kind:"DyytoContextBundle",projectRoot:t,repository:{root:p,branch:s,commit:c},bootstrap:{status:f,policyVersion:l?.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{...u,contextDigest:Pe(an(u))}}var Jh=e=>({"engineering-workflow":`# \u5DE5\u7A0B\u5F00\u53D1\u5DE5\u4F5C\u6D41
|
|
287
299
|
|
|
288
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
|
|
289
301
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
@@ -304,14 +316,17 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
304
316
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
305
317
|
|
|
306
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
|
|
307
|
-
`})[e];import{createHash as
|
|
308
|
-
`)),u}async function
|
|
309
|
-
`)),s}import{createHash as
|
|
310
|
-
`,{flag:"wx",mode:384}),await
|
|
319
|
+
`})[e];import{createHash as Wh}from"node:crypto";import{execFile as nO}from"node:child_process";import{chmod as iO,mkdir as Kh,open as oO,readFile as kr,realpath as hs,rename as aO,rm as sO,stat as cO}from"node:fs/promises";import ve from"node:path";import{promisify as lO}from"node:util";var nd=lO(nO),sn=e=>`sha256:${Wh("sha256").update(e).digest("hex")}`,Yh=e=>`sha512-${Wh("sha512").update(e).digest("base64")}`,pO=/^(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},te=(e,t,r)=>{throw new _r(e,t,r)};function dO(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&&te("PACKAGE_PUBLISH_CONFIG_INVALID","Dyyto\u7EC4\u4EF6.env\u5305\u542B\u975E\u6CD5\u884C\u3002");let o=n.slice(0,i).trim();t.has(o)&&te("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 uO(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 td(e,t){ve.isAbsolute(e)||te("PACKAGE_PUBLISH_CONFIG_INVALID",`${t}\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002`);let r=await hs(e).catch(()=>te("PACKAGE_PUBLISH_CONFIG_MISSING",`${t}\u4E0D\u5B58\u5728\u3002`)),n=await cO(r);return(!n.isFile()||(n.mode&63)!==0)&&te("PACKAGE_PUBLISH_CONFIG_UNSAFE",`${t}\u5FC5\u987B\u662F\u6743\u9650600\u7684\u666E\u901A\u6587\u4EF6\u3002`),r}async function id(e,t){let r=process.env.IDP_CONFIG_DIR;(!r||!ve.isAbsolute(r))&&te("PACKAGE_PUBLISH_CONFIG_MISSING","\u7F3A\u5C11\u7EDD\u5BF9IDP_CONFIG_DIR\uFF1B\u5148\u8FD0\u884Cidp-setup init\u5E76source generated/sources.env\u3002");let n=await hs(r).catch(()=>te("PACKAGE_PUBLISH_CONFIG_MISSING","IDP_CONFIG_DIR\u4E0D\u5B58\u5728\u3002"));if(e==="public"){let d=await td(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 td(ve.join(i,".env"),"Dyyto\u7EC4\u4EF6.env"),a=dO(await kr(o,"utf8")).get("DYYTO_NPMRC_FILE");(!a||ve.isAbsolute(a))&&te("PACKAGE_PUBLISH_CONFIG_INVALID","DYYTO_NPMRC_FILE\u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u76F8\u5BF9\u8DEF\u5F84\u3002");let s=await td(ve.resolve(i,a),"\u79C1\u6709npmrc");ve.relative(i,s).startsWith("..")&&te("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u79C1\u6709npmrc\u8D8A\u8FC7Dyyto\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u3002");let c=uO(await kr(s,"utf8"),t);c||te("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709npmrc\u7F3A\u5C11\u5F53\u524D\u5305scope\u7684Registry Binding\u3002");let p=new URL(c),l=new Set(["localhost","127.0.0.1","::1"]).has(p.hostname);return p.protocol!=="https:"&&!(p.protocol==="http:"&&l)&&te("PACKAGE_PUBLISH_CONFIG_UNSAFE","\u975E\u56DE\u73AF\u79C1\u6709Registry\u5FC5\u987B\u4F7F\u7528HTTPS\u3002"),p.hostname.endsWith("npmjs.org")&&te("PACKAGE_PUBLISH_CONFIG_INVALID","\u79C1\u6709Registry\u4E0D\u80FD\u6307\u5411npmjs.org\u3002"),{target:e,registry:p.toString(),userConfig:s}}function Hh(e){let t={...process.env,NPM_CONFIG_USERCONFIG:e,npm_config_userconfig:e};return delete t.NPM_TOKEN,delete t.npm_token,delete t.NPM_CONFIG_REGISTRY,delete t.npm_config_registry,t}async function rd(e,t){await Kh(ve.dirname(e),{recursive:!0,mode:448}),await iO(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))||te("PACKAGE_PUBLISH_IMMUTABLE_CONFLICT",`\u4E0D\u53EF\u53D8\u6587\u4EF6\u51B2\u7A81\uFF1A${e}`);return}let n=`${e}.${process.pid}.tmp`,i=await oO(n,"wx",384);try{await i.writeFile(t),await i.sync()}finally{await i.close()}await aO(n,e)}function fO(e){return!e||e==="all"?["private","public"]:e==="private"||e==="public"?[e]:te("PACKAGE_PUBLISH_ARGUMENT_INVALID","--target\u53EA\u652F\u6301private\u3001public\u6216all\u3002")}async function Zh(e){let t=await hs(ve.resolve(e.packageRoot)).catch(()=>te("PACKAGE_MANIFEST_NOT_FOUND","Package\u76EE\u5F55\u4E0D\u5B58\u5728\u3002")),r=await kr(ve.join(t,"package.json"),"utf8").catch(()=>te("PACKAGE_MANIFEST_NOT_FOUND",`\u627E\u4E0D\u5230package.json\uFF1A${t}`)),n;try{n=JSON.parse(r)}catch{return te("PACKAGE_MANIFEST_INVALID","package.json\u4E0D\u662F\u5408\u6CD5JSON\u3002")}(typeof n.name!="string"||!n.name)&&te("PACKAGE_NAME_INVALID","package.json\u7F3A\u5C11\u5408\u6CD5name\u3002"),(typeof n.version!="string"||!pO.test(n.version))&&te("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:")&&te("PACKAGE_DEPENDENCY_UNPUBLISHABLE",`\u8FD0\u884C\u65F6\u4F9D\u8D56${g}\u4ECD\u4F7F\u7528${y}\u3002`);let i=fO(e.target);await Promise.all(i.map(m=>id(m,n.name)));let o=ve.join(t,".dyyto/package-publish-artifacts");await Kh(o,{recursive:!0,mode:448});let a;try{a=JSON.parse((await nd("npm",["pack","--pack-destination",o,"--json"],{cwd:t})).stdout)[0]}catch(m){return te("PACKAGE_PACK_FAILED",`npm pack\u5931\u8D25\uFF1A${String(m?.stderr??m?.message).slice(0,300)}`)}(!a||typeof a.filename!="string")&&te("PACKAGE_PACK_FAILED","npm pack\u6CA1\u6709\u8FD4\u56DE\u5236\u54C1\u6587\u4EF6\u540D\u3002");let s=ve.join(o,a.filename),c=await kr(s),p=sn(c),l=ve.posix.join(".dyyto/package-publish-artifacts",`${p}.tgz`),d=ve.join(t,l);s!==d&&(await rd(d,c),await sO(s,{force:!0}));let f={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:p,integrity:Yh(c),artifactFile:l,filesCount:a.entryCount??a.files?.length??0,unpackedBytes:a.unpackedSize??c.byteLength},u=Object.freeze({...f,planId:sn(JSON.stringify(f))});return await rd(ve.join(t,".dyyto/package-publish-plans",`${u.planId}.json`),Buffer.from(`${JSON.stringify(u,null,2)}
|
|
320
|
+
`)),u}async function od(e,t){/^sha256:[a-f0-9]{64}$/u.test(t)||te("PACKAGE_PUBLISH_APPROVAL_INVALID","--approve/--plan\u5FC5\u987B\u662F\u5B8C\u6574Plan ID\u3002");let r=await hs(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)&&te("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&&te("PACKAGE_PUBLISH_PLAN_INVALID","Plan\u6458\u8981\u4E0D\u5339\u914D\u3002"),n}async function ys(e,t){try{let r=JSON.parse((await nd("npm",["view",`${t.packageName}@${t.version}`,"version","dist.integrity","bin","--json","--registry",e.registry],{env:Hh(e.userConfig)})).stdout);return{exists:!0,integrity:r["dist.integrity"],bin:r.bin}}catch(r){if(/E404|404 Not Found|No match found/u.test(String(r?.stderr??r?.message)))return{exists:!1};throw r}}async function mO(e,t){for(let r=0;r<8;r+=1){let n=await ys(e,t);if(n.exists&&n.integrity===t.integrity)return n;await new Promise(i=>setTimeout(i,500*(r+1)))}return ys(e,t)}async function Xh(e,t){let r=await od(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 id(n,r.packageName);return{target:n,registry:i.registry,...await ys(i,r)}}))}}async function Qh(e){let t=await kr(ve.join(e.packageRoot,"package.json"),"utf8");sn(t)!==e.manifestDigest&&te("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("..")&&te("PACKAGE_PUBLISH_ARTIFACT_INVALID","\u5236\u54C1\u8D8A\u8FC7Package\u76EE\u5F55\u3002");let n=await kr(r);(sn(n)!==e.tarballDigest||Yh(n)!==e.integrity)&&te("PACKAGE_PUBLISH_ARTIFACT_CHANGED","\u5236\u54C1\u4E0E\u6279\u51C6Plan\u4E0D\u4E00\u81F4\u3002");let i=[];for(let c of e.targets){let p=await id(c,e.packageName),l=await ys(p,e);if(l.exists){l.integrity!==e.integrity&&te("PACKAGE_PUBLISH_CONFLICT",`${p.registry}\u5DF2\u6709\u540C\u7248\u672C\u4E0D\u540C\u5236\u54C1\u3002`),i.push({target:c,registry:p.registry,status:"already-published",integrity:l.integrity});continue}try{await nd("npm",["publish",r,"--registry",p.registry,"--tag",e.tag,"--access",e.access],{cwd:e.packageRoot,env:Hh(p.userConfig)})}catch(f){return te("PACKAGE_PUBLISH_FAILED",`${c}\u53D1\u5E03\u5931\u8D25\uFF1A${String(f?.stderr??f?.message).slice(0,300)}`)}let d=await mO(p,e);(!d.exists||d.integrity!==e.integrity)&&te("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:p.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 rd(ve.join(e.packageRoot,".dyyto/package-publish-receipts",`${s.receiptId}.json`),Buffer.from(`${JSON.stringify(s,null,2)}
|
|
321
|
+
`)),s}import{createHash as gO}from"node:crypto";import{mkdir as yO,readFile as qn,realpath as Bn,readdir as hO,rename as wO,writeFile as IO}from"node:fs/promises";import De from"node:path";import{spawnSync as vO}from"node:child_process";var sd=e=>Array.isArray(e)?`[${e.map(sd).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${sd(r)}`).join(",")}}`:JSON.stringify(e),Ke=e=>`sha256:${gO("sha256").update(sd(e)).digest("hex")}`,st=async e=>qn(e,"utf8").catch(t=>t.code==="ENOENT"?null:Promise.reject(t));async function tr(e,t){await yO(De.dirname(e),{recursive:!0,mode:448});let r=`${e}.candidate-${process.pid}`;await IO(r,`${JSON.stringify(t,null,2)}
|
|
322
|
+
`,{flag:"wx",mode:384}),await wO(r,e)}var ad=(e,t)=>{let r=vO("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 ew(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:ad(t,["config","--get","remote.origin.url"]),branch:ad(t,["branch","--show-current"]),commit:ad(t,["rev-parse","HEAD"])},o=$y({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=Ty({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 f=JSON.parse(c);if(f.state==="active"&&f.sessionId!==a.sessionId)throw new Error("DEVELOPMENT_SESSION_CONFLICT")}let p={schemaVersion:1,kind:"DevelopmentSessionPlan",operation:"start",projectRoot:t,preimageDigest:Ke(c??""),session:a},l={...p,planId:Ke(p)},d=De.join(t,".dyyto/plans/development",`${l.planId.slice(7)}.json`);if(await st(d)||await tr(d,l),e.apply){if(Ke(await st(s)??"")!==l.preimageDigest)throw new Error("DEVELOPMENT_SESSION_PREIMAGE_CHANGED");await tr(s,a)}return{status:e.apply?"active":"planned",planId:l.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 tw(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=Ly(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 rw(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=xy({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)},p=De.join(t,".dyyto/plans/development",`${c.planId.slice(7)}.json`);if(await st(p)||await tr(p,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:p,specificationFile:o,specification:i}}async function bO(e,t){let r=De.join(e,"docs",t),n=[];async function i(o){for(let a of await hO(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 nw(e,t){let r=await Bn(e),n=await go(r),i=[];for(let f of["domain","product"])for(let u of await bO(r,f))i.push({id:`${f}.${u.path.slice(`docs/${f}/`.length).replace(/\.md$/u,"").replaceAll("/",".")}`,kind:f,path:u.path,sourceDigest:Ke(u.bytes),appliesTo:{repository:n.intent.repository.repository,branches:[n.intent.repository.branch]},status:"current",supersedes:[]});if(!i.some(f=>f.kind==="domain")||!i.some(f=>f.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),p={schemaVersion:1,kind:"KnowledgeReleasePlan",projectRoot:r,preimageDigest:Ke(c??""),release:a},l={...p,planId:Ke(p)},d=De.join(r,".dyyto/plans/development",`${l.planId.slice(7)}.json`);if(await st(d)||await tr(d,l),t){if(Ke(await st(s)??"")!==l.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:l.planId,planFile:d,releaseFile:s,release:a}}async function iw(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 l of a.documents)s[l.path]=Ke(await qn(De.join(t,l.path),"utf8"));let c=Vy({repository:r.intent.repository,documents:a.documents,currentSourceDigests:s}),p=My({session:r,specification:o,knowledge:c});return{schemaVersion:1,kind:"DevelopmentVerification",status:"verified",sessionId:r.sessionId,specificationDigest:o.specificationDigest,knowledgeReleaseDigest:a.releaseDigest,agentContext:p,verificationDigest:Ke({session:r.sessionDigest,specification:o.specificationDigest,knowledge:a.releaseDigest,context:p.contextDigest})}}function _e(e){e.stdout.length>0&&ye.stdout.write(e.stdout),e.stderr.length>0&&ye.stderr.write(e.stderr)}async function AO(e){let t=e.indexOf("--artifact-workspace"),r=e[t+1],n=e.indexOf("--artifact-bundle"),i=e[n+1],o=e.flatMap((d,f)=>d==="--artifact-fallback-bundle"&&e[f+1]!==void 0?[e[f+1]]:[]),a=e.indexOf("--artifact-port"),s=Number(e[a+1]),c=[t>=0,n>=0,a>=0];if(!c.some(Boolean))return{};if(!c.every(Boolean)||r===void 0||i===void 0||!/^sha256:[a-f0-9]{64}$/u.test(i)||o.some(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 p=await ao(Me.resolve(r,".dyyto","package-artifacts",i)),l=await Promise.all(o.map(d=>ao(Me.resolve(r,".dyyto","package-artifacts",d))));if(p.bundle.bundleId!==i)throw new br("LOCAL_ARTIFACT_SOURCE_INVALID");return{packageSourceProvider:Ih({bundle:p.bundle,fallbackBundles:l.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:kh({stateRoot:Me.resolve(r,".dyyto","resolution-worker"),engine:bh()}),packageStoreRoot:Me.resolve(r,".dyyto","resolution-worker","store")}}async function Rx(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=Me.resolve(i<0?ye.cwd():e[i+1]??""),a;if(n==="show")a=await go(o);else if(n==="finish")a=await tw(o,e.includes("--apply"));else if(n==="start"){let s=u=>{let m=e.indexOf(u);return m<0?void 0:e[m+1]},c=s("--title"),p=s("--summary"),l=s("--source"),d=s("--requirement"),f=s("--task");if(!c||!p)throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session start \u9700\u8981 --title \u4E0E --summary\u3002",exitCode:2});a=await ew({projectRoot:o,title:c,summary:p,...l?{source:l}:{},...d?{requirementId:d}:{},...f?{taskId:f}:{},acceptance:e.flatMap((u,m)=>u==="--accept"&&e[m+1]?[e[m+1]]:[]),apply:e.includes("--apply")})}else throw new j({code:"CLI_ARGUMENT_INVALID",message:"dev session \u53EA\u652F\u6301 start\u3001show\u3001finish\u3002",exitCode:2});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`dev-session-${n}`,result:a})}
|
|
311
323
|
`:`${JSON.stringify(a,null,2)}
|
|
312
|
-
`,stderr:""});return}if(e[0]==="
|
|
324
|
+
`,stderr:""});return}if(e[0]==="dev"&&e[1]==="specify"){let n=e.indexOf("--project"),i=e.indexOf("--input"),o=Me.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 rw({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=Me.resolve(n<0?ye.cwd():e[n+1]??""),o=await nw(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=Me.resolve(n<0?ye.cwd():e[n+1]??""),o=await iw(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 Gh(Me.resolve(i)),a=e.includes("--apply")?await ed(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})}
|
|
313
328
|
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${o.plan.planId}
|
|
314
|
-
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?
|
|
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 zh(Me.resolve(i)),a=e.includes("--apply");if(a&&!e.includes("--skip-tool-install")){let c=ye.env.PNPM_HOME;if(!c||!Me.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 p=kO("corepack",["pnpm","add","--global","--global-bin-dir",c,...qh],{encoding:"utf8",shell:!1,env:ye.env});if(p.error||p.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 ed(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})}
|
|
315
330
|
`:a?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
316
331
|
Plan\uFF1A${o.plan.planId}
|
|
317
332
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
@@ -320,7 +335,7 @@ Next\uFF1Adyyto context --project ${i}
|
|
|
320
335
|
\u6587\u4EF6\uFF1A${o.planFile}
|
|
321
336
|
\u53D8\u66F4\uFF1A${o.changed.join("\u3001")||"\u65E0"}
|
|
322
337
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
323
|
-
`,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?
|
|
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(Me.resolve(i));_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"context-resolve",result:o})}
|
|
324
339
|
`:`\u4E0A\u4E0B\u6587\uFF1A${o.contextDigest}
|
|
325
340
|
\u5206\u652F\uFF1A${o.repository.branch??"\u672A\u8BC6\u522B"}
|
|
326
341
|
\u63D0\u4EA4\uFF1A${o.repository.commit??"\u672A\u8BC6\u522B"}
|
|
@@ -335,52 +350,52 @@ ${o.requiredBeforeCoding.map(a=>`- ${a}`).join(`
|
|
|
335
350
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
336
351
|
${o.prohibitions.map(a=>`- ${a}`).join(`
|
|
337
352
|
`)}
|
|
338
|
-
`,stderr:""});return}if(e[0]==="ready"){let n=e.indexOf("--project"),i=n<0?
|
|
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=Me.resolve(i),a=await mo(o),c=(await _O(Me.join(o,"project-capabilities.json"),"utf8").then(b=>JSON.parse(b)).catch(()=>null))?.profile?.id??null,p=c==="workspace-root",l=new Set(["nextjs-full-stack-application","workspace-node-application","workspace-web-application"]).has(c),f=(await as(["config","readiness",p?"--workspace":"--project",o,"--check","--json"])).value.result,u=null,m=0;p&&(u=(await as(["doctor","--workspace",o,"--json"])).value.result,m=u.status==="healthy"?0:4);let g=p?f.summary.total===f.summary.ready:f.state==="ready"||!l&&f.state==="not-declared",y=a.bootstrap.status!=="current"||!g||m!==0?"blocked":c===null?"attention":"ready",w={schemaVersion:1,kind:"DevelopmentReadinessReport",projectRoot:o,status:y,context:a,config:f,doctor:u},_=y==="ready"?0:y==="attention"?3:4;_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"ready",result:w})}
|
|
339
354
|
`:`${y==="ready"?"\u2713":y==="attention"?"!":"\u2717"} \u5F00\u53D1\u5C31\u7EEA\u72B6\u6001\uFF1A${y}
|
|
340
355
|
\u4E0A\u4E0B\u6587\uFF1A${a.contextDigest}
|
|
341
356
|
Bootstrap\uFF1A${a.bootstrap.status}
|
|
342
357
|
\u914D\u7F6E\uFF1A${g?"ready":"blocked"}
|
|
343
|
-
\u5DE5\u7A0B\u68C0\u67E5\uFF1A${
|
|
358
|
+
\u5DE5\u7A0B\u68C0\u67E5\uFF1A${m===0?"\u901A\u8FC7":"\u963B\u585E"}
|
|
344
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"}
|
|
345
|
-
`,stderr:""}),
|
|
346
|
-
`: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
|
|
360
|
+
`,stderr:""}),ye.exitCode=_;return}if(e[0]==="docs"&&e[1]==="show"){let n=e.indexOf("--id"),i=e[n+1],o=i?Jh(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]?Me.resolve(i[a+1]):ye.cwd(),c=i.indexOf("--access"),p=c>=0?i[c+1]:void 0,l=i.indexOf("--tag"),d=l>=0?i[l+1]:void 0;if(i.includes("--registry")||i.some(u=>u.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 f;if(o==="plan"){let u=i.indexOf("--target"),m=u>=0?i[u+1]:"all";f=await Zh({packageRoot:s,target:m,...p?{access:p}:{},...d?{tag:d}:{}})}else{let u=o==="apply"?"--approve":"--plan",m=i.indexOf(u),g=i[m+1];if(!g)throw new _r("PACKAGE_PUBLISH_APPROVAL_INVALID",`${o}\u7F3A\u5C11${u}\u3002`);f=o==="apply"?await Qh(await od(s,g)):await Xh(s,g)}_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:`package-publish-${o}`,result:f})}
|
|
347
362
|
`:`${o==="plan"?"\u53D1\u5E03Plan\u5DF2\u751F\u6210":o==="apply"?"\u53D1\u5E03Apply\u5DF2\u5B8C\u6210":"\u53D1\u5E03\u72B6\u6001\u5DF2\u68C0\u67E5"}\u3002
|
|
348
|
-
${JSON.stringify(
|
|
349
|
-
`,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(f,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 Fh();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],p=e[s+1];if(c===void 0||p===void 0||!n.has(c)||p.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(Zy(await Hy({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 Vh({projectRoot:i});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-plan",result:o})}
|
|
350
365
|
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${o.plan.planId}
|
|
351
366
|
\u72B6\u6001\uFF1A${o.plan.state}
|
|
352
367
|
Next\uFF1Adyyto topology apply --project ${i} --approve ${o.plan.planId}
|
|
353
|
-
`,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 Mh({projectRoot:i,approvedPlanId:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"topology-apply",result:s})}
|
|
354
369
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
355
370
|
Next\uFF1Adyyto topology inspect --project ${i}
|
|
356
|
-
`,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 Dh({projectRoot:i});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-plan",result:{plan:o}})}
|
|
357
372
|
`:`Recovery Override Plan\uFF1A${o.planId}
|
|
358
373
|
\u51B2\u7A81\uFF1A${o.conflicts.length}
|
|
359
|
-
`,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 jh({projectRoot:i,approvedPlanId:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"recovery-override-apply",result:{recovery:s}})}
|
|
360
375
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
361
|
-
`,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 Ph({workspaceRoot:i,maximumBytes:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-plan",result:{plan:s}})}
|
|
362
377
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
363
378
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
364
379
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
365
|
-
`,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 Nh({workspaceRoot:i,approvedPlanId:a,warmup:Eh()});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"resolution-worker-apply",result:{receipt:s}})}
|
|
366
381
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
367
382
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
368
|
-
`,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 hh({workspaceRoot:i,packageRoots:o});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-plan",result:{plan:a}})}
|
|
369
384
|
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${a.planId}
|
|
370
385
|
Bundle\uFF1A${a.bundle.bundleId}
|
|
371
386
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
372
387
|
Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${a.planId}
|
|
373
|
-
`,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 wh({workspaceRoot:i,approvedPlanId:a});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-apply",result:{...s,channel:"development"}})}
|
|
374
389
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
375
390
|
Channel\uFF1Adevelopment
|
|
376
391
|
Next\uFF1Adyyto artifacts serve --workspace ${i} --bundle ${s.bundleId} --port 4873
|
|
377
|
-
`,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((
|
|
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,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),p=Number(e[c+1]);if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a)||s.some(f=>!/^sha256:[a-f0-9]{64}$/u.test(f))||c<0||!Number.isSafeInteger(p)||p<1||p>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 l=await fh({bundleRoot:Me.resolve(i,".dyyto","package-artifacts",a),fallbackBundleRoots:s.map(f=>Me.resolve(i,".dyyto","package-artifacts",f)),port:p});_e({stdout:e.includes("--json")?`${JSON.stringify({schemaVersion:1,ok:!0,command:"artifacts-serve",result:{origin:l.origin,bundleId:l.bundle.bundleId,fallbackBundleIds:l.fallbackBundles.map(f=>f.bundleId),channel:"development"}})}
|
|
378
393
|
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${l.origin}
|
|
379
394
|
\u4E3B Bundle\uFF1A${l.bundle.bundleId}
|
|
380
|
-
Fallback Bundles\uFF1A${l.fallbackBundles.map(
|
|
395
|
+
Fallback Bundles\uFF1A${l.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
|
|
381
396
|
Channel\uFF1Adevelopment
|
|
382
|
-
`,stderr:""});let
|
|
397
|
+
`,stderr:""});let d=async()=>{await l.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 lh({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}})}
|
|
383
398
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
384
|
-
`,stderr:""});let c=async()=>{await s.close(),
|
|
385
|
-
Cause: ${
|
|
386
|
-
`)}let n=r;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 as(e,await AO(e));_e(Ch(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(p=>`
|
|
400
|
+
Cause: ${p}`).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 Re)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 J)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=cd(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($h(a,t)),ye.exitCode=o?.exitCode??1}}export{Rx as runCommand};
|