@aipt/cli 0.1.37 → 0.1.40
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 +5 -4
- package/dist/application-runner.js +185 -169
- package/dist/application.js +109 -105
- package/dist/catalog/foundation.environment-schema/2.1.0/assets/config/application-config.json +4 -0
- package/dist/catalog/foundation.environment-schema/2.1.0/assets/docs/engineering/environment.md +18 -0
- package/dist/catalog/foundation.environment-schema/2.1.0/release.json +25 -0
- package/dist/chunk.js +5 -2
- package/dist/optional-runtime.js +30 -30
- package/dist/package-releases/aipt--cli/0.1.38/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.39/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.11/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.12/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.12/release.json +33 -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 rp,e as j,f as np,g as ip,h as op,i as ap,j as sp}from"./chunk.js";var Bn=E(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var Un=class{};Y._CodeOrName=Un;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ir=class extends Un{constructor(t){if(super(),!Y.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Y.Name=Ir;var at=class extends Un{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof Ir&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Y._Code=at;Y.nil=new at("");function cp(e,...t){let r=[e[0]],n=0;for(;n<t.length;)gs(r,t[n]),r.push(e[++n]);return new at(r)}Y._=cp;var ms=new at("+");function lp(e,...t){let r=[qn(e[0])],n=0;for(;n<t.length;)r.push(ms),gs(r,t[n]),r.push(ms,qn(e[++n]));return Hh(r),new at(r)}Y.str=lp;function gs(e,t){t instanceof at?e.push(...t._items):t instanceof Ir?e.push(t):e.push(Qh(t))}Y.addCodeArg=gs;function Hh(e){let t=1;for(;t<e.length-1;){if(e[t]===ms){let r=Xh(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function Xh(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof Ir||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof Ir))return`"${e}${t.slice(1)}`}function Zh(e,t){return t.emptyStr()?e:e.emptyStr()?t:lp`${e}${t}`}Y.strConcat=Zh;function Qh(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:qn(Array.isArray(e)?e.join(","):e)}function ew(e){return new at(qn(e))}Y.stringify=ew;function qn(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=qn;function tw(e){return typeof e=="string"&&Y.IDENTIFIER.test(e)?new at(`.${e}`):cp`[${e}]`}Y.getProperty=tw;function rw(e){if(typeof e=="string"&&Y.IDENTIFIER.test(e))return new at(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Y.getEsmExportName=rw;function nw(e){return new at(e.toString())}Y.regexpCode=nw});var ws=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.ValueScope=He.ValueScopeName=He.Scope=He.varKinds=He.UsedValueState=void 0;var Ye=Bn(),ys=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},co;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(co||(He.UsedValueState=co={}));He.varKinds={const:new Ye.Name("const"),let:new Ye.Name("let"),var:new Ye.Name("var")};var lo=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=lo;var po=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=po;var iw=(0,Ye._)`\n`,hs=class extends lo{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?iw:Ye.nil}}get(){return this._scope}name(t){return new po(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:o}=i,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[o];if(s){let d=s.get(a);if(d)return d}else s=this._values[o]=new Map;s.set(a,i);let c=this._scope[o]||(this._scope[o]=[]),l=c.length;return c[l]=r.ref,i.setValue(r,{property:o,itemIndex:l}),i}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,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(l=>{if(c.has(l))return;c.set(l,co.Started);let d=r(l);if(d){let p=this.opts.es5?He.varKinds.var:He.varKinds.const;o=(0,Ye._)`${o}${p} ${l} = ${d};${this.opts._n}`}else if(d=i?.(l))o=(0,Ye._)`${o}${d}${this.opts._n}`;else throw new ys(l);c.set(l,co.Completed)})}return o}};He.ValueScope=hs});var x=E(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var z=Bn(),wt=ws(),Xt=Bn();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Xt.Name}});var go=ws();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return go.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return go.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return go.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return go.varKinds}});F.operators={GT:new z._Code(">"),GTE:new z._Code(">="),LT:new z._Code("<"),LTE:new z._Code("<="),EQ:new z._Code("==="),NEQ:new z._Code("!=="),NOT:new z._Code("!"),OR:new z._Code("||"),AND:new z._Code("&&"),ADD:new z._Code("+")};var xt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Is=class extends xt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?wt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=an(this.rhs,t,r)),this}get names(){return this.rhs instanceof z._CodeOrName?this.rhs.names:{}}},uo=class extends xt{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof z.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=an(this.rhs,t,r),this}get names(){let t=this.lhs instanceof z.Name?{}:{...this.lhs.names};return mo(t,this.rhs)}},vs=class extends uo{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},bs=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},ks=class extends xt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},_s=class extends xt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},As=class extends xt{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=an(this.code,t,r),this}get names(){return this.code instanceof z._CodeOrName?this.code.names:{}}},zn=class extends xt{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,i=n.length;for(;i--;){let o=n[i];o.optimizeNames(t,r)||(ow(t,o.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>kr(t,r.names),{})}},Vt=class extends zn{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Rs=class extends zn{},on=class extends Vt{};on.kind="else";var vr=class e extends Vt{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new on(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(dp(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=an(this.condition,t,r),this}get names(){let t=super.names;return mo(t,this.condition),this.else&&kr(t,this.else.names),t}};vr.kind="if";var br=class extends Vt{};br.kind="for";var Es=class extends br{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=an(this.iteration,t,r),this}get names(){return kr(super.names,this.iteration.names)}},Ps=class extends br{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?wt.varKinds.var:this.varKind,{name:n,from:i,to:o}=this;return`for(${r} ${n}=${i}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=mo(super.names,this.from);return mo(t,this.to)}},fo=class extends br{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=an(this.iterable,t,r),this}get names(){return kr(super.names,this.iterable.names)}},Gn=class extends Vt{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Gn.kind="func";var Jn=class extends zn{render(t){return"return "+super.render(t)}};Jn.kind="return";var Ns=class extends Vt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&kr(t,this.catch.names),this.finally&&kr(t,this.finally.names),t}},Wn=class extends Vt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};Wn.kind="catch";var Kn=class extends Vt{render(t){return"finally"+super.render(t)}};Kn.kind="finally";var Os=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=t,this._scope=new wt.Scope({parent:t}),this._nodes=[new Rs]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,i){let o=this._scope.toName(r);return n!==void 0&&i&&(this._constants[o.str]=n),this._leafNode(new Is(t,o,n)),o}const(t,r,n){return this._def(wt.varKinds.const,t,r,n)}let(t,r,n){return this._def(wt.varKinds.let,t,r,n)}var(t,r,n){return this._def(wt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new uo(t,r,n))}add(t,r){return this._leafNode(new vs(t,F.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==z.nil&&this._leafNode(new As(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,z.addCodeArg)(r,i));return r.push("}"),new z._Code(r)}if(t,r,n){if(this._blockNode(new vr(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new vr(t))}else(){return this._elseNode(new on)}endIf(){return this._endBlockNode(vr,on)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Es(t),r)}forRange(t,r,n,i,o=this.opts.es5?wt.varKinds.var:wt.varKinds.let){let a=this._scope.toName(t);return this._for(new Ps(o,a,r,n),()=>i(a))}forOf(t,r,n,i=wt.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let a=r instanceof z.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,z._)`${a}.length`,s=>{this.var(o,(0,z._)`${a}[${s}]`),n(o)})}return this._for(new fo("of",i,o,r),()=>n(o))}forIn(t,r,n,i=this.opts.es5?wt.varKinds.var:wt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,z._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new fo("in",i,o,r),()=>n(o))}endFor(){return this._endBlockNode(br)}label(t){return this._leafNode(new bs(t))}break(t){return this._leafNode(new ks(t))}return(t){let r=new Jn;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Jn)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Ns;if(this._blockNode(i),this.code(t),r){let o=this.name("e");this._currNode=i.catch=new Wn(o),r(o)}return n&&(this._currNode=i.finally=new Kn,this.code(n)),this._endBlockNode(Wn,Kn)}throw(t){return this._leafNode(new _s(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=z.nil,n,i){return this._blockNode(new Gn(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Gn)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof vr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};F.CodeGen=Os;function kr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function mo(e,t){return t instanceof z._CodeOrName?kr(e,t.names):e}function an(e,t,r){if(e instanceof z.Name)return n(e);if(!i(e))return e;return new z._Code(e._items.reduce((o,a)=>(a instanceof z.Name&&(a=n(a)),a instanceof z._Code?o.push(...a._items):o.push(a),o),[]));function n(o){let a=r[o.str];return a===void 0||t[o.str]!==1?o:(delete t[o.str],a)}function i(o){return o instanceof z._Code&&o._items.some(a=>a instanceof z.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function ow(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function dp(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,z._)`!${Ss(e)}`}F.not=dp;var aw=pp(F.operators.AND);function sw(...e){return e.reduce(aw)}F.and=sw;var cw=pp(F.operators.OR);function lw(...e){return e.reduce(cw)}F.or=lw;function pp(e){return(t,r)=>t===z.nil?r:r===z.nil?t:(0,z._)`${Ss(t)} ${e} ${Ss(r)}`}function Ss(e){return e instanceof z.Name?e:(0,z._)`(${e})`}});var q=E(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var oe=x(),dw=Bn();function pw(e){let t={};for(let r of e)t[r]=!0;return t}U.toHash=pw;function uw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(mp(e,t),!gp(t,e.self.RULES.all))}U.alwaysValidSchema=uw;function mp(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let o in t)i[o]||wp(e,`unknown keyword: "${o}"`)}U.checkUnknownRules=mp;function gp(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}U.schemaHasRules=gp;function fw(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}U.schemaHasRulesButRef=fw;function mw({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,oe._)`${r}`}return(0,oe._)`${e}${t}${(0,oe.getProperty)(n)}`}U.schemaRefOrVal=mw;function gw(e){return yp(decodeURIComponent(e))}U.unescapeFragment=gw;function yw(e){return encodeURIComponent(js(e))}U.escapeFragment=yw;function js(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=js;function yp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=yp;function hw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}U.eachItem=hw;function up({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,o,a,s)=>{let c=a===void 0?o:a instanceof oe.Name?(o instanceof oe.Name?e(i,o,a):t(i,o,a),a):o instanceof oe.Name?(t(i,a,o),o):r(o,a);return s===oe.Name&&!(c instanceof oe.Name)?n(i,c):c}}U.mergeEvaluated={props:up({mergeNames:(e,t,r)=>e.if((0,oe._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,oe._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,oe._)`${r} || {}`).code((0,oe._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,oe._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,oe._)`${r} || {}`),Cs(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:hp}),items:up({mergeNames:(e,t,r)=>e.if((0,oe._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,oe._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,oe._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,oe._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function hp(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,oe._)`{}`);return t!==void 0&&Cs(e,r,t),r}U.evaluatedPropsToName=hp;function Cs(e,t,r){Object.keys(r).forEach(n=>e.assign((0,oe._)`${t}${(0,oe.getProperty)(n)}`,!0))}U.setEvaluated=Cs;var fp={};function ww(e,t){return e.scopeValue("func",{ref:t,code:fp[t.code]||(fp[t.code]=new dw._Code(t.code))})}U.useFunc=ww;var Ds;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Ds||(U.Type=Ds={}));function Iw(e,t,r){if(e instanceof oe.Name){let n=t===Ds.Num;return r?n?(0,oe._)`"[" + ${e} + "]"`:(0,oe._)`"['" + ${e} + "']"`:n?(0,oe._)`"/" + ${e}`:(0,oe._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,oe.getProperty)(e).toString():"/"+js(e)}U.getErrorPath=Iw;function wp(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}U.checkStrictMode=wp});var st=E($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var xe=x(),vw={data:new xe.Name("data"),valCxt:new xe.Name("valCxt"),instancePath:new xe.Name("instancePath"),parentData:new xe.Name("parentData"),parentDataProperty:new xe.Name("parentDataProperty"),rootData:new xe.Name("rootData"),dynamicAnchors:new xe.Name("dynamicAnchors"),vErrors:new xe.Name("vErrors"),errors:new xe.Name("errors"),this:new xe.Name("this"),self:new xe.Name("self"),scope:new xe.Name("scope"),json:new xe.Name("json"),jsonPos:new xe.Name("jsonPos"),jsonLen:new xe.Name("jsonLen"),jsonPart:new xe.Name("jsonPart")};$s.default=vw});var Yn=E(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.extendErrors=Ve.resetErrorsCount=Ve.reportExtraError=Ve.reportError=Ve.keyword$DataError=Ve.keywordError=void 0;var J=x(),yo=q(),Be=st();Ve.keywordError={message:({keyword:e})=>(0,J.str)`must pass "${e}" keyword validation`};Ve.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,J.str)`"${e}" keyword must be ${t} ($data)`:(0,J.str)`"${e}" keyword is invalid ($data)`};function bw(e,t=Ve.keywordError,r,n){let{it:i}=e,{gen:o,compositeRule:a,allErrors:s}=i,c=bp(e,t,r);n??(a||s)?Ip(o,c):vp(i,(0,J._)`[${c}]`)}Ve.reportError=bw;function kw(e,t=Ve.keywordError,r){let{it:n}=e,{gen:i,compositeRule:o,allErrors:a}=n,s=bp(e,t,r);Ip(i,s),o||a||vp(n,Be.default.vErrors)}Ve.reportExtraError=kw;function _w(e,t){e.assign(Be.default.errors,t),e.if((0,J._)`${Be.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,J._)`${Be.default.vErrors}.length`,t),()=>e.assign(Be.default.vErrors,null)))}Ve.resetErrorsCount=_w;function Aw({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:o}){if(i===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",i,Be.default.errors,s=>{e.const(a,(0,J._)`${Be.default.vErrors}[${s}]`),e.if((0,J._)`${a}.instancePath === undefined`,()=>e.assign((0,J._)`${a}.instancePath`,(0,J.strConcat)(Be.default.instancePath,o.errorPath))),e.assign((0,J._)`${a}.schemaPath`,(0,J.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,J._)`${a}.schema`,r),e.assign((0,J._)`${a}.data`,n))})}Ve.extendErrors=Aw;function Ip(e,t){let r=e.const("err",t);e.if((0,J._)`${Be.default.vErrors} === null`,()=>e.assign(Be.default.vErrors,(0,J._)`[${r}]`),(0,J._)`${Be.default.vErrors}.push(${r})`),e.code((0,J._)`${Be.default.errors}++`)}function vp(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,J._)`new ${e.ValidationError}(${t})`):(r.assign((0,J._)`${n}.errors`,t),r.return(!1))}var _r={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function bp(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,J._)`{}`:Rw(e,t,r)}function Rw(e,t,r={}){let{gen:n,it:i}=e,o=[Ew(i,r),Pw(e,r)];return Nw(e,t,o),n.object(...o)}function Ew({errorPath:e},{instancePath:t}){let r=t?(0,J.str)`${e}${(0,yo.getErrorPath)(t,yo.Type.Str)}`:e;return[Be.default.instancePath,(0,J.strConcat)(Be.default.instancePath,r)]}function Pw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,J.str)`${t}/${e}`;return r&&(i=(0,J.str)`${i}${(0,yo.getErrorPath)(r,yo.Type.Str)}`),[_r.schemaPath,i]}function Nw(e,{params:t,message:r},n){let{keyword:i,data:o,schemaValue:a,it:s}=e,{opts:c,propertyName:l,topSchemaRef:d,schemaPath:p}=s;n.push([_r.keyword,i],[_r.params,typeof t=="function"?t(e):t||(0,J._)`{}`]),c.messages&&n.push([_r.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([_r.schema,a],[_r.parentSchema,(0,J._)`${d}${p}`],[Be.default.data,o]),l&&n.push([_r.propertyName,l])}});var _p=E(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.boolOrEmptySchema=sn.topBoolOrEmptySchema=void 0;var Ow=Yn(),Sw=x(),Dw=st(),jw={message:"boolean schema is false"};function Cw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?kp(e,!1):typeof r=="object"&&r.$async===!0?t.return(Dw.default.data):(t.assign((0,Sw._)`${n}.errors`,null),t.return(!0))}sn.topBoolOrEmptySchema=Cw;function $w(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),kp(e)):r.var(t,!0)}sn.boolOrEmptySchema=$w;function kp(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Ow.reportError)(i,jw,void 0,t)}});var Ts=E(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getRules=cn.isJSONType=void 0;var Tw=["string","number","integer","boolean","null","object","array"],Lw=new Set(Tw);function xw(e){return typeof e=="string"&&Lw.has(e)}cn.isJSONType=xw;function Vw(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}cn.getRules=Vw});var Ls=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.shouldUseRule=Zt.shouldUseGroup=Zt.schemaHasRulesForType=void 0;function Mw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Ap(e,n)}Zt.schemaHasRulesForType=Mw;function Ap(e,t){return t.rules.some(r=>Rp(e,r))}Zt.shouldUseGroup=Ap;function Rp(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Zt.shouldUseRule=Rp});var Hn=E(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.reportTypeError=Me.checkDataTypes=Me.checkDataType=Me.coerceAndCheckDataType=Me.getJSONTypes=Me.getSchemaTypes=Me.DataType=void 0;var Fw=Ts(),Uw=Ls(),qw=Yn(),V=x(),Ep=q(),ln;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ln||(Me.DataType=ln={}));function Bw(e){let t=Pp(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}Me.getSchemaTypes=Bw;function Pp(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Fw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Me.getJSONTypes=Pp;function zw(e,t){let{gen:r,data:n,opts:i}=e,o=Gw(t,i.coerceTypes),a=t.length>0&&!(o.length===0&&t.length===1&&(0,Uw.schemaHasRulesForType)(e,t[0]));if(a){let s=Vs(t,n,i.strictNumbers,ln.Wrong);r.if(s,()=>{o.length?Jw(e,t,o):Ms(e)})}return a}Me.coerceAndCheckDataType=zw;var Np=new Set(["string","number","integer","boolean","null"]);function Gw(e,t){return t?e.filter(r=>Np.has(r)||t==="array"&&r==="array"):[]}function Jw(e,t,r){let{gen:n,data:i,opts:o}=e,a=n.let("dataType",(0,V._)`typeof ${i}`),s=n.let("coerced",(0,V._)`undefined`);o.coerceTypes==="array"&&n.if((0,V._)`${a} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,V._)`${i}[0]`).assign(a,(0,V._)`typeof ${i}`).if(Vs(t,i,o.strictNumbers),()=>n.assign(s,i))),n.if((0,V._)`${s} !== undefined`);for(let l of r)(Np.has(l)||l==="array"&&o.coerceTypes==="array")&&c(l);n.else(),Ms(e),n.endIf(),n.if((0,V._)`${s} !== undefined`,()=>{n.assign(i,s),Ww(e,s)});function c(l){switch(l){case"string":n.elseIf((0,V._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,V._)`"" + ${i}`).elseIf((0,V._)`${i} === null`).assign(s,(0,V._)`""`);return;case"number":n.elseIf((0,V._)`${a} == "boolean" || ${i} === null
|
|
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 Ww({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,V._)`${t} !== undefined`,()=>e.assign((0,V._)`${t}[${r}]`,n))}function xs(e,t,r,n=ln.Correct){let i=n===ln.Correct?V.operators.EQ:V.operators.NEQ,o;switch(e){case"null":return(0,V._)`${t} ${i} null`;case"array":o=(0,V._)`Array.isArray(${t})`;break;case"object":o=(0,V._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a((0,V._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return(0,V._)`typeof ${t} ${i} ${e}`}return n===ln.Correct?o:(0,V.not)(o);function a(s=V.nil){return(0,V.and)((0,V._)`typeof ${t} == "number"`,s,r?(0,V._)`isFinite(${t})`:V.nil)}}Me.checkDataType=xs;function Vs(e,t,r,n){if(e.length===1)return xs(e[0],t,r,n);let i,o=(0,Ep.toHash)(e);if(o.array&&o.object){let a=(0,V._)`typeof ${t} != "object"`;i=o.null?a:(0,V._)`!${t} || ${a}`,delete o.null,delete o.array,delete o.object}else i=V.nil;o.number&&delete o.integer;for(let a in o)i=(0,V.and)(i,xs(a,t,r,n));return i}Me.checkDataTypes=Vs;var Kw={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,V._)`{type: ${e}}`:(0,V._)`{type: ${t}}`};function Ms(e){let t=Yw(e);(0,qw.reportError)(t,Kw)}Me.reportTypeError=Ms;function Yw(e){let{gen:t,data:r,schema:n}=e,i=(0,Ep.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var Sp=E(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.assignDefaults=void 0;var dn=x(),Hw=q();function Xw(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Op(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,o)=>Op(e,o,i.default))}ho.assignDefaults=Xw;function Op(e,t,r){let{gen:n,compositeRule:i,data:o,opts:a}=e;if(r===void 0)return;let s=(0,dn._)`${o}${(0,dn.getProperty)(t)}`;if(i){(0,Hw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,dn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,dn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,dn._)`${s} = ${(0,dn.stringify)(r)}`)}});var ct=E(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var fe=x(),Fs=q(),Qt=st(),Zw=q();function Qw(e,t){let{gen:r,data:n,it:i}=e;r.if(qs(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,fe._)`${t}`},!0),e.error()})}ne.checkReportMissingProp=Qw;function eI({gen:e,data:t,it:{opts:r}},n,i){return(0,fe.or)(...n.map(o=>(0,fe.and)(qs(e,t,o,r.ownProperties),(0,fe._)`${i} = ${o}`)))}ne.checkMissingProp=eI;function tI(e,t){e.setParams({missingProperty:t},!0),e.error()}ne.reportMissingProp=tI;function Dp(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,fe._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=Dp;function Us(e,t,r){return(0,fe._)`${Dp(e)}.call(${t}, ${r})`}ne.isOwnProperty=Us;function rI(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} !== undefined`;return n?(0,fe._)`${i} && ${Us(e,t,r)}`:i}ne.propertyInData=rI;function qs(e,t,r,n){let i=(0,fe._)`${t}${(0,fe.getProperty)(r)} === undefined`;return n?(0,fe.or)(i,(0,fe.not)(Us(e,t,r))):i}ne.noPropertyInData=qs;function jp(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ne.allSchemaProperties=jp;function nI(e,t){return jp(t).filter(r=>!(0,Fs.alwaysValidSchema)(e,t[r]))}ne.schemaProperties=nI;function iI({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:o},it:a},s,c,l){let d=l?(0,fe._)`${e}, ${t}, ${n}${i}`:t,p=[[Qt.default.instancePath,(0,fe.strConcat)(Qt.default.instancePath,o)],[Qt.default.parentData,a.parentData],[Qt.default.parentDataProperty,a.parentDataProperty],[Qt.default.rootData,Qt.default.rootData]];a.opts.dynamicRef&&p.push([Qt.default.dynamicAnchors,Qt.default.dynamicAnchors]);let f=(0,fe._)`${d}, ${r.object(...p)}`;return c!==fe.nil?(0,fe._)`${s}.call(${c}, ${f})`:(0,fe._)`${s}(${f})`}ne.callValidateCode=iI;var oI=(0,fe._)`new RegExp`;function aI({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,o=i(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,fe._)`${i.code==="new RegExp"?oI:(0,Zw.useFunc)(e,i)}(${r}, ${n})`})}ne.usePattern=aI;function sI(e){let{gen:t,data:r,keyword:n,it:i}=e,o=t.name("valid");if(i.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(o,!0),a(()=>t.break()),o;function a(s){let c=t.const("len",(0,fe._)`${r}.length`);t.forRange("i",0,c,l=>{e.subschema({keyword:n,dataProp:l,dataPropType:Fs.Type.Num},o),t.if((0,fe.not)(o),s)})}}ne.validateArray=sI;function cI(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Fs.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,l)=>{let d=e.subschema({keyword:n,schemaProp:l,compositeRule:!0},s);t.assign(a,(0,fe._)`${a} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,fe.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ne.validateUnion=cI});var Tp=E(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.validateKeywordUsage=St.validSchemaType=St.funcKeywordCode=St.macroKeywordCode=void 0;var ze=x(),Ar=st(),lI=ct(),dI=Yn();function pI(e,t){let{gen:r,keyword:n,schema:i,parentSchema:o,it:a}=e,s=t.macro.call(a.self,i,o,a),c=$p(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let l=r.name("valid");e.subschema({schema:s,schemaPath:ze.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),e.pass(l,()=>e.error(!0))}St.macroKeywordCode=pI;function uI(e,t){var r;let{gen:n,keyword:i,schema:o,parentSchema:a,$data:s,it:c}=e;mI(c,t);let l=!s&&t.compile?t.compile.call(c.self,o,a,c):t.validate,d=$p(n,i,l),p=n.let("valid");e.block$data(p,f),e.ok((r=t.valid)!==null&&r!==void 0?r:p);function f(){if(t.errors===!1)g(),t.modifying&&Cp(e),y(()=>e.error());else{let w=t.async?u():m();t.modifying&&Cp(e),y(()=>fI(e,w))}}function u(){let w=n.let("ruleErrs",null);return n.try(()=>g((0,ze._)`await `),A=>n.assign(p,!1).if((0,ze._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(w,(0,ze._)`${A}.errors`),()=>n.throw(A))),w}function m(){let w=(0,ze._)`${d}.errors`;return n.assign(w,null),g(ze.nil),w}function g(w=t.async?(0,ze._)`await `:ze.nil){let A=c.opts.passContext?Ar.default.this:Ar.default.self,b=!("compile"in t&&!s||t.schema===!1);n.assign(p,(0,ze._)`${w}${(0,lI.callValidateCode)(e,d,A,b)}`,t.modifying)}function y(w){var A;n.if((0,ze.not)((A=t.valid)!==null&&A!==void 0?A:p),w)}}St.funcKeywordCode=uI;function Cp(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,ze._)`${n.parentData}[${n.parentDataProperty}]`))}function fI(e,t){let{gen:r}=e;r.if((0,ze._)`Array.isArray(${t})`,()=>{r.assign(Ar.default.vErrors,(0,ze._)`${Ar.default.vErrors} === null ? ${t} : ${Ar.default.vErrors}.concat(${t})`).assign(Ar.default.errors,(0,ze._)`${Ar.default.vErrors}.length`),(0,dI.extendErrors)(e)},()=>e.error())}function mI({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function $p(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,ze.stringify)(r)})}function gI(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}St.validSchemaType=gI;function yI({schema:e,opts:t,self:r,errSchemaPath:n},i,o){if(Array.isArray(i.keyword)?!i.keyword.includes(o):i.keyword!==o)throw new Error("ajv implementation error");let a=i.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${o}: ${a.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[o])){let c=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}St.validateKeywordUsage=yI});var xp=E(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.extendSubschemaMode=er.extendSubschemaData=er.getSubschema=void 0;var Dt=x(),Lp=q();function hI(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:o,topSchemaRef:a}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,Dt._)`${e.schemaPath}${(0,Dt.getProperty)(t)}${(0,Dt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Lp.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||o===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:a,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}er.getSubschema=hI;function wI(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:o,propertyName:a}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:l,dataPathArr:d,opts:p}=t,f=s.let("data",(0,Dt._)`${t.data}${(0,Dt.getProperty)(r)}`,!0);c(f),e.errorPath=(0,Dt.str)`${l}${(0,Lp.getErrorPath)(r,n,p.jsPropertySyntax)}`,e.parentDataProperty=(0,Dt._)`${r}`,e.dataPathArr=[...d,e.parentDataProperty]}if(i!==void 0){let l=i instanceof Dt.Name?i:s.let("data",i,!0);c(l),a!==void 0&&(e.propertyName=a)}o&&(e.dataTypes=o);function c(l){e.data=l,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,l]}}er.extendSubschemaData=wI;function II(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:o}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}er.extendSubschemaMode=II});var Bs=E((PO,Vp)=>{"use strict";Vp.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;i--!==0;){var a=o[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var Fp=E((NO,Mp)=>{"use strict";var tr=Mp.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};wo(t,n,i,e,"",e)};tr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};tr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};tr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};tr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function wo(e,t,r,n,i,o,a,s,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,o,a,s,c,l);for(var d in n){var p=n[d];if(Array.isArray(p)){if(d in tr.arrayKeywords)for(var f=0;f<p.length;f++)wo(e,t,r,p[f],i+"/"+d+"/"+f,o,i,d,n,f)}else if(d in tr.propsKeywords){if(p&&typeof p=="object")for(var u in p)wo(e,t,r,p[u],i+"/"+d+"/"+vI(u),o,i,d,n,u)}else(d in tr.keywords||e.allKeys&&!(d in tr.skipKeywords))&&wo(e,t,r,p,i+"/"+d,o,i,d,n)}r(n,i,o,a,s,c,l)}}function vI(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Xn=E(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.getSchemaRefs=Xe.resolveUrl=Xe.normalizeId=Xe._getFullPath=Xe.getFullPath=Xe.inlineRef=void 0;var bI=q(),kI=Bs(),_I=Fp(),AI=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RI(e,t=!0){return typeof e=="boolean"?!0:t===!0?!zs(e):t?Up(e)<=t:!1}Xe.inlineRef=RI;var EI=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function zs(e){for(let t in e){if(EI.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(zs)||typeof r=="object"&&zs(r))return!0}return!1}function Up(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!AI.has(r)&&(typeof e[r]=="object"&&(0,bI.eachItem)(e[r],n=>t+=Up(n)),t===1/0))return 1/0}return t}function qp(e,t="",r){r!==!1&&(t=pn(t));let n=e.parse(t);return Bp(e,n)}Xe.getFullPath=qp;function Bp(e,t){return e.serialize(t).split("#")[0]+"#"}Xe._getFullPath=Bp;var PI=/#\/?$/;function pn(e){return e?e.replace(PI,""):""}Xe.normalizeId=pn;function NI(e,t,r){return r=pn(r),e.resolve(t,r)}Xe.resolveUrl=NI;var OI=/^[a-z_][-a-z0-9._]*$/i;function SI(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=pn(e[r]||t),o={"":i},a=qp(n,i,!1),s={},c=new Set;return _I(e,{allKeys:!0},(p,f,u,m)=>{if(m===void 0)return;let g=a+f,y=o[m];typeof p[r]=="string"&&(y=w.call(this,p[r])),A.call(this,p.$anchor),A.call(this,p.$dynamicAnchor),o[f]=y;function w(b){let R=this.opts.uriResolver.resolve;if(b=pn(y?R(y,b):b),c.has(b))throw d(b);c.add(b);let I=this.refs[b];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?l(p,I.schema,b):b!==pn(g)&&(b[0]==="#"?(l(p,s[b],b),s[b]=p):this.refs[b]=g),b}function A(b){if(typeof b=="string"){if(!OI.test(b))throw new Error(`invalid anchor "${b}"`);w.call(this,`#${b}`)}}}),s;function l(p,f,u){if(f!==void 0&&!kI(p,f))throw d(u)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}Xe.getSchemaRefs=SI});var ei=E(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.getData=rr.KeywordCxt=rr.validateFunctionCode=void 0;var Kp=_p(),zp=Hn(),Js=Ls(),Io=Hn(),DI=Sp(),Qn=Tp(),Gs=xp(),O=x(),L=st(),jI=Xn(),Mt=q(),Zn=Yn();function CI(e){if(Xp(e)&&(Zp(e),Hp(e))){LI(e);return}Yp(e,()=>(0,Kp.topBoolOrEmptySchema)(e))}rr.validateFunctionCode=CI;function Yp({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},o){i.code.es5?e.func(t,(0,O._)`${L.default.data}, ${L.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${Gp(r,i)}`),TI(e,i),e.code(o)}):e.func(t,(0,O._)`${L.default.data}, ${$I(i)}`,n.$async,()=>e.code(Gp(r,i)).code(o))}function $I(e){return(0,O._)`{${L.default.instancePath}="", ${L.default.parentData}, ${L.default.parentDataProperty}, ${L.default.rootData}=${L.default.data}${e.dynamicRef?(0,O._)`, ${L.default.dynamicAnchors}={}`:O.nil}}={}`}function TI(e,t){e.if(L.default.valCxt,()=>{e.var(L.default.instancePath,(0,O._)`${L.default.valCxt}.${L.default.instancePath}`),e.var(L.default.parentData,(0,O._)`${L.default.valCxt}.${L.default.parentData}`),e.var(L.default.parentDataProperty,(0,O._)`${L.default.valCxt}.${L.default.parentDataProperty}`),e.var(L.default.rootData,(0,O._)`${L.default.valCxt}.${L.default.rootData}`),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`${L.default.valCxt}.${L.default.dynamicAnchors}`)},()=>{e.var(L.default.instancePath,(0,O._)`""`),e.var(L.default.parentData,(0,O._)`undefined`),e.var(L.default.parentDataProperty,(0,O._)`undefined`),e.var(L.default.rootData,L.default.data),t.dynamicRef&&e.var(L.default.dynamicAnchors,(0,O._)`{}`)})}function LI(e){let{schema:t,opts:r,gen:n}=e;Yp(e,()=>{r.$comment&&t.$comment&&eu(e),UI(e),n.let(L.default.vErrors,null),n.let(L.default.errors,0),r.unevaluated&&xI(e),Qp(e),zI(e)})}function xI(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,O._)`${r}.evaluated`),t.if((0,O._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,O._)`${e.evaluated}.props`,(0,O._)`undefined`)),t.if((0,O._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,O._)`${e.evaluated}.items`,(0,O._)`undefined`))}function Gp(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function VI(e,t){if(Xp(e)&&(Zp(e),Hp(e))){MI(e,t);return}(0,Kp.boolOrEmptySchema)(e,t)}function Hp({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Xp(e){return typeof e.schema!="boolean"}function MI(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&eu(e),qI(e),BI(e);let o=n.const("_errs",L.default.errors);Qp(e,o),n.var(t,(0,O._)`${o} === ${L.default.errors}`)}function Zp(e){(0,Mt.checkUnknownRules)(e),FI(e)}function Qp(e,t){if(e.opts.jtd)return Jp(e,[],!1,t);let r=(0,zp.getSchemaTypes)(e.schema),n=(0,zp.coerceAndCheckDataType)(e,r);Jp(e,r,!n,t)}function FI(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Mt.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function UI(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Mt.checkStrictMode)(e,"default is ignored in the schema root")}function qI(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,jI.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function BI(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function eu({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let o=r.$comment;if(i.$comment===!0)e.code((0,O._)`${L.default.self}.logger.log(${o})`);else if(typeof i.$comment=="function"){let a=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${L.default.self}.opts.$comment(${o}, ${a}, ${s}.schema)`)}}function zI(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:o}=e;r.$async?t.if((0,O._)`${L.default.errors} === 0`,()=>t.return(L.default.data),()=>t.throw((0,O._)`new ${i}(${L.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,L.default.vErrors),o.unevaluated&&GI(e),t.return((0,O._)`${L.default.errors} === 0`))}function GI({gen:e,evaluated:t,props:r,items:n}){r instanceof O.Name&&e.assign((0,O._)`${t}.props`,r),n instanceof O.Name&&e.assign((0,O._)`${t}.items`,n)}function Jp(e,t,r,n){let{gen:i,schema:o,data:a,allErrors:s,opts:c,self:l}=e,{RULES:d}=l;if(o.$ref&&(c.ignoreKeywordsWithRef||!(0,Mt.schemaHasRulesButRef)(o,d))){i.block(()=>ru(e,"$ref",d.all.$ref.definition));return}c.jtd||JI(e,t),i.block(()=>{for(let f of d.rules)p(f);p(d.post)});function p(f){(0,Js.shouldUseGroup)(o,f)&&(f.type?(i.if((0,Io.checkDataType)(f.type,a,c.strictNumbers)),Wp(e,f),t.length===1&&t[0]===f.type&&r&&(i.else(),(0,Io.reportTypeError)(e)),i.endIf()):Wp(e,f),s||i.if((0,O._)`${L.default.errors} === ${n||0}`))}}function Wp(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,DI.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,Js.shouldUseRule)(n,o)&&ru(e,o.keyword,o.definition,t.type)})}function JI(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(WI(e,t),e.opts.allowUnionTypes||KI(e,t),YI(e,e.dataTypes))}function WI(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{tu(e.dataTypes,r)||Ws(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),XI(e,t)}}function KI(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ws(e,"use allowUnionTypes to allow union type keyword")}function YI(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Js.shouldUseRule)(e.schema,i)){let{type:o}=i.definition;o.length&&!o.some(a=>HI(t,a))&&Ws(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function HI(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function tu(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function XI(e,t){let r=[];for(let n of e.dataTypes)tu(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Ws(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Mt.checkStrictMode)(e,t,e.opts.strictTypes)}var vo=class{constructor(t,r,n){if((0,Qn.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Mt.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",nu(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Qn.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",L.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Zn.reportExtraError:Zn.reportError)(this,this.def.error,r)}$dataError(){(0,Zn.reportError)(this,this.def.$dataError||Zn.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Zn.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=O.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:o,def:a}=this;n.if((0,O.or)((0,O._)`${i} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(o.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:o}=this;return(0,O.or)(a(),s());function a(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,Io.checkDataTypes)(c,r,o.opts.strictNumbers,Io.DataType.Wrong)}`}return O.nil}function s(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,Gs.getSubschema)(this.it,t);(0,Gs.extendSubschemaData)(n,this.it,t),(0,Gs.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return VI(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Mt.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Mt.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};rr.KeywordCxt=vo;function ru(e,t,r,n){let i=new vo(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Qn.funcKeywordCode)(i,r):"macro"in r?(0,Qn.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Qn.funcKeywordCode)(i,r)}var ZI=/^\/(?:[^~]|~0|~1)*$/,QI=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function nu(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,o;if(e==="")return L.default.rootData;if(e[0]==="/"){if(!ZI.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,o=L.default.rootData}else{let l=QI.exec(e);if(!l)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+l[1];if(i=l[2],i==="#"){if(d>=t)throw new Error(c("property/index",d));return n[t-d]}if(d>t)throw new Error(c("data",d));if(o=r[t-d],!i)return o}let a=o,s=i.split("/");for(let l of s)l&&(o=(0,O._)`${o}${(0,O.getProperty)((0,Mt.unescapeJsonPointer)(l))}`,a=(0,O._)`${a} && ${o}`);return a;function c(l,d){return`Cannot access ${l} ${d} levels up, current level is ${t}`}}rr.getData=nu});var bo=E(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var Ks=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ys.default=Ks});var ti=E(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Hs=Xn(),Xs=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Hs.resolveUrl)(t,r,n),this.missingSchema=(0,Hs.normalizeId)((0,Hs.getFullPath)(t,this.missingRef))}};Zs.default=Xs});var ri=E(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.resolveSchema=lt.getCompilingSchema=lt.resolveRef=lt.compileSchema=lt.SchemaEnv=void 0;var It=x(),ev=bo(),Rr=st(),vt=Xn(),iu=q(),tv=ei(),un=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,vt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};lt.SchemaEnv=un;function ec(e){let t=ou.call(this,e);if(t)return t;let r=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:o}=this.opts,a=new It.CodeGen(this.scope,{es5:n,lines:i,ownProperties:o}),s;e.$async&&(s=a.scopeValue("Error",{ref:ev.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:Rr.default.data,parentData:Rr.default.parentData,parentDataProperty:Rr.default.parentDataProperty,dataNames:[Rr.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,It.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:It.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,tv.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();d=`${a.scopeRefs(Rr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let u=new Function(`${Rr.default.self}`,`${Rr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:u}),u.errors=null,u.schema=e.schema,u.schemaEnv=e,e.$async&&(u.$async=!0),this.opts.code.source===!0&&(u.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:m,items:g}=l;u.evaluated={props:m instanceof It.Name?void 0:m,items:g instanceof It.Name?void 0:g,dynamicProps:m instanceof It.Name,dynamicItems:g instanceof It.Name},u.source&&(u.source.evaluated=(0,It.stringify)(u.evaluated))}return e.validate=u,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}lt.compileSchema=ec;function rv(e,t,r){var n;r=(0,vt.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let o=ov.call(this,e,r);if(o===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(o=new un({schema:a,schemaId:s,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=nv.call(this,o)}lt.resolveRef=rv;function nv(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ec.call(this,e)}function ou(e){for(let t of this._compilations)if(iv(t,e))return t}lt.getCompilingSchema=ou;function iv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function ov(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||ko.call(this,e,t)}function ko(e,t){let r=this.opts.uriResolver.parse(t),n=(0,vt._getFullPath)(this.opts.uriResolver,r),i=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return Qs.call(this,r,e);let o=(0,vt.normalizeId)(n),a=this.refs[o]||this.schemas[o];if(typeof a=="string"){let s=ko.call(this,e,a);return typeof s?.schema!="object"?void 0:Qs.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||ec.call(this,a),o===(0,vt.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,l=s[c];return l&&(i=(0,vt.resolveUrl)(this.opts.uriResolver,i,l)),new un({schema:s,schemaId:c,root:e,baseId:i})}return Qs.call(this,r,a)}}lt.resolveSchema=ko;var av=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Qs(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,iu.unescapeFragment)(s)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!av.has(s)&&l&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,l))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,iu.schemaHasRulesButRef)(r,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=ko.call(this,n,s)}let{schemaId:a}=this.opts;if(o=o||new un({schema:r,schemaId:a,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var au=E(($O,sv)=>{sv.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var nc=E((TO,uu)=>{"use strict";var cv=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),cu=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),tc=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),lu=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),lv=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function rc(e){let t="",r=0,n=0;for(n=0;n<e.length;n++)if(r=e[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n<e.length;n++){if(r=e[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var dv=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function su(e){return e.length=0,!0}function pv(e,t,r){if(e.length){let n=rc(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function uv(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],o=!1,a=!1,s=pv;for(let c=0;c<e.length;c++){let l=e[c];if(!(l==="["||l==="]"))if(l===":"){if(o===!0&&(a=!0),!s(i,n,r))break;if(++t>7){r.error=!0;break}c>0&&e[c-1]===":"&&(o=!0),n.push(":");continue}else if(l==="%"){if(!s(i,n,r))break;s=su}else{i.push(l);continue}}return i.length&&(s===su?r.zone=i.join(""):a?n.push(i.join("")):n.push(rc(i))),r.address=n.join(""),r}function du(e){if(fv(e,":")<2)return{host:e,isIPV6:!1};let t=uv(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function fv(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function mv(e){let t=e,r=[],n=-1,i=0;for(;i=t.length;){if(i===1){if(t===".")break;if(t==="/"){r.push("/");break}else{r.push(t);break}}else if(i===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){r.push("/");break}}else if(i===3&&t==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),r.length!==0&&r.pop();continue}}if((n=t.indexOf("/",1))===-1){r.push(t);break}else r.push(t.slice(0,n)),t=t.slice(n)}return r.join("")}var gv={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},yv=/[@/?#:]/g,hv=/[@/?#]/g;function pu(e,t){let r=t?hv:yv;return r.lastIndex=0,e.replace(r,n=>gv[n])}function wv(e,t=!1){if(e.indexOf("%")===-1)return e;let r="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let i=e.slice(n+1,n+3);if(tc(i)){let o=i.toUpperCase(),a=String.fromCharCode(parseInt(o,16));t&&lu(a)?r+=a:r+="%"+o,n+=2;continue}}r+=e[n]}return r}function Iv(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(tc(n)){let i=n.toUpperCase(),o=String.fromCharCode(parseInt(i,16));o!=="."&&lu(o)?t+=o:t+="%"+i,r+=2;continue}}lv(e[r])?t+=e[r]:t+=escape(e[r])}return t}function vv(e){let t="";for(let r=0;r<e.length;r++){if(e[r]==="%"&&r+2<e.length){let n=e.slice(r+1,r+3);if(tc(n)){t+="%"+n.toUpperCase(),r+=2;continue}}t+=escape(e[r])}return t}function bv(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let r=unescape(e.host);if(!cu(r)){let n=du(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=pu(r,!1)}t.push(r)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}uu.exports={nonSimpleDomain:dv,recomposeAuthority:bv,reescapeHostDelimiters:pu,normalizePercentEncoding:wv,normalizePathEncoding:Iv,escapePreservingEscapes:vv,removeDotSegments:mv,isIPv4:cu,isUUID:cv,normalizeIPv6:du,stringArrayToHexStripped:rc}});var hu=E((LO,yu)=>{"use strict";var{isUUID:kv}=nc(),_v=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Av=["http","https","ws","wss","urn","urn:uuid"];function Rv(e){return Av.indexOf(e)!==-1}function ic(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function fu(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function mu(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function Ev(e){return e.secure=ic(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Pv(e){if((e.port===(ic(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function Nv(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(_v);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,o=oc(i);e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Ov(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),i=`${r}:${t.nid||n}`,o=oc(i);o&&(e=o.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function Sv(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!kv(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Dv(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var gu={scheme:"http",domainHost:!0,parse:fu,serialize:mu},jv={scheme:"https",domainHost:gu.domainHost,parse:fu,serialize:mu},_o={scheme:"ws",domainHost:!0,parse:Ev,serialize:Pv},Cv={scheme:"wss",domainHost:_o.domainHost,parse:_o.parse,serialize:_o.serialize},$v={scheme:"urn",parse:Nv,serialize:Ov,skipNormalize:!0},Tv={scheme:"urn:uuid",parse:Sv,serialize:Dv,skipNormalize:!0},Ao={http:gu,https:jv,ws:_o,wss:Cv,urn:$v,"urn:uuid":Tv};Object.setPrototypeOf(Ao,null);function oc(e){return e&&(Ao[e]||Ao[e.toLowerCase()])||void 0}yu.exports={wsIsSecure:ic,SCHEMES:Ao,isValidSchemeName:Rv,getSchemeHandler:oc}});var ku=E((xO,Po)=>{"use strict";var{normalizeIPv6:Lv,removeDotSegments:ni,recomposeAuthority:xv,normalizePercentEncoding:Vv,normalizePathEncoding:Mv,escapePreservingEscapes:Fv,reescapeHostDelimiters:Uv,isIPv4:qv,nonSimpleDomain:Bv}=nc(),{SCHEMES:zv,getSchemeHandler:Iu}=hu();function Gv(e,t){return typeof e=="string"?e=Zv(e,t):typeof e=="object"&&(e=Eo(Er(e,t),t)),e}function Jv(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:o}=Ro(e,n),{parsed:a,malformedAuthorityOrPort:s}=Ro(t,n);if(o||s)throw new Error(i.error||a.error||"URI is malformed.");let c=vu(i,a,n,!0);return n.skipEscape=!0,Er(c,n)}function vu(e,t,r,n){let i={};return n||(e=Eo(Er(e,r),r),t=Eo(Er(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=ni(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=ni(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=ni(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Wv(e,t,r){let n=wu(e,r),i=wu(t,r);return n!==void 0&&i!==void 0&&n.toLowerCase()===i.toLowerCase()}function Er(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),i=[],o=Iu(n.scheme||r.scheme);o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Vv(r.path):(r.path=Fv(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let a=xv(r);if(a!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(a),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(s=ni(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var Kv=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Yv=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,Hv=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Xv(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function Ro(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1,o=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let a=e.match(Yv);a!==null&&a[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",i=!0);let s=e.match(Hv);if(s!==null){let l=s[1],d=l.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",i=!0):l.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",i=!0))}let c=e.match(Kv);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let l=Xv(n,c);if(l!==void 0&&(n.error=n.error||l,i=!0),n.host)if(qv(n.host)===!1){let f=Lv(n.host);n.host=f.host.toLowerCase(),o=f.isIPV6}else o=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=Iu(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&o===!1&&Bv(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(p){n.error=n.error||"Host's domain name can not be converted to ASCII: "+p}if((!d||d&&!d.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=Uv(unescape(n.host),o))),n.path&&(n.path=Mv(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:i}}function Eo(e,t){return Ro(e,t).parsed}function Zv(e,t){return bu(e,t).normalized}function bu(e,t){let{parsed:r,malformedAuthorityOrPort:n}=Ro(e,t);return{normalized:n?e:Er(r,t),malformedAuthorityOrPort:n}}function wu(e,t){if(typeof e=="string"){let{normalized:r,malformedAuthorityOrPort:n}=bu(e,t);return n?void 0:r}if(typeof e=="object")return Er(e,t)}var ac={SCHEMES:zv,normalize:Gv,resolve:Jv,resolveComponent:vu,equal:Wv,serialize:Er,parse:Eo};Po.exports=ac;Po.exports.default=ac;Po.exports.fastUri=ac});var Au=E(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});var _u=ku();_u.code='require("ajv/dist/runtime/uri").default';sc.default=_u});var ju=E(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var Qv=ei();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return Qv.KeywordCxt}});var fn=x();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return fn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return fn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return fn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return fn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return fn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return fn.CodeGen}});var eb=bo(),Ou=ti(),tb=Ts(),ii=ri(),rb=x(),oi=Xn(),No=Hn(),lc=q(),Ru=au(),nb=Au(),Su=(e,t)=>new RegExp(e,t);Su.code="new RegExp";var ib=["removeAdditional","useDefaults","coerceTypes"],ob=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ab={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},sb={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Eu=200;function cb(e){var t,r,n,i,o,a,s,c,l,d,p,f,u,m,g,y,w,A,b,R,I,_,S,T,ue;let $=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,Z=P===!0||P===void 0?1:P||0,se=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Su,ot=(i=e.uriResolver)!==null&&i!==void 0?i:nb.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:$)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:$)!==null&&c!==void 0?c:!0,strictTypes:(d=(l=e.strictTypes)!==null&&l!==void 0?l:$)!==null&&d!==void 0?d:"log",strictTuples:(f=(p=e.strictTuples)!==null&&p!==void 0?p:$)!==null&&f!==void 0?f:"log",strictRequired:(m=(u=e.strictRequired)!==null&&u!==void 0?u:$)!==null&&m!==void 0?m:!1,code:e.code?{...e.code,optimize:Z,regExp:se}:{optimize:Z,regExp:se},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:Eu,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:Eu,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=e.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(I=e.addUsedSchema)!==null&&I!==void 0?I:!0,validateSchema:(_=e.validateSchema)!==null&&_!==void 0?_:!0,validateFormats:(S=e.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(T=e.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(ue=e.int32range)!==null&&ue!==void 0?ue:!0,uriResolver:ot}}var ai=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...cb(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new rb.ValueScope({scope:{},prefixes:ob,es5:r,lines:n}),this.logger=mb(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,tb.getRules)(),Pu.call(this,ab,t,"NOT SUPPORTED"),Pu.call(this,sb,t,"DEPRECATED","warn"),this._metaOpts=ub.call(this),t.formats&&db.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&pb.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),lb.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Ru;n==="id"&&(i={...Ru},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,t,r);async function i(d,p){await o.call(this,d.$schema);let f=this._addSchema(d,p);return f.validate||a.call(this,f)}async function o(d){d&&!this.getSchema(d)&&await i.call(this,{$ref:d},!0)}async function a(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof Ou.default))throw p;return s.call(this,p),await c.call(this,p.missingSchema),a.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function c(d){let p=await l.call(this,d);this.refs[d]||await o.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,r)}async function l(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,i);return this}let o;if(typeof t=="object"){let{schemaId:a}=this.opts;if(o=t[a],o!==void 0&&typeof o!="string")throw new Error(`schema ${a} must be string`)}return r=(0,oi.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,t);if(!i&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return i}getSchema(t){let r;for(;typeof(r=Nu.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new ii.SchemaEnv({schema:{},schemaId:n});if(r=ii.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Nu.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,oi.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(yb.call(this,n,r),!r)return(0,lc.eachItem)(n,o=>cc.call(this,o)),this;wb.call(this,r);let i={...r,type:(0,No.getJSONTypes)(r.type),schemaType:(0,No.getJSONTypes)(r.schemaType)};return(0,lc.eachItem)(n,i.type.length===0?o=>cc.call(this,o,i):o=>i.type.forEach(a=>cc.call(this,o,i,a))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let i=n.rules.findIndex(o=>o.keyword===t);i>=0&&n.rules.splice(i,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,o)=>i+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let o=i.split("/").slice(1),a=t;for(let s of o)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:l}=c.definition,d=a[s];l&&d&&(a[s]=Du(d))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,o=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,oi.normalizeId)(a||n);let l=oi.getSchemaRefs.call(this,t,n);return c=new ii.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):ii.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{ii.compileSchema.call(this,t)}finally{this.opts=r}}};ai.ValidationError=eb.default;ai.MissingRefError=Ou.default;Se.default=ai;function Pu(e,t,r,n="error"){for(let i in e){let o=i;o in t&&this.logger[n](`${r}: option ${i}. ${e[o]}`)}}function Nu(e){return e=(0,oi.normalizeId)(e),this.schemas[e]||this.refs[e]}function lb(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function db(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function pb(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function ub(){let e={...this.opts};for(let t of ib)delete e[t];return e}var fb={log(){},warn(){},error(){}};function mb(e){if(e===!1)return fb;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var gb=/^[a-z_$][a-z0-9_$:-]*$/i;function yb(e,t){let{RULES:r}=this;if((0,lc.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!gb.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function cc(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,a=i?o.post:o.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},o.rules.push(a)),o.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,No.getJSONTypes)(t.type),schemaType:(0,No.getJSONTypes)(t.schemaType)}};t.before?hb.call(this,a,s,t.before):a.rules.push(s),o.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function hb(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function wb(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Du(t)),e.validateSchema=this.compile(t,!0))}var Ib={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Du(e){return{anyOf:[e,Ib]}}});var Cu=E(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var vb={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};dc.default=vb});var Do=E(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.callRef=Pr.getValidate=void 0;var bb=ti(),$u=ct(),Ze=x(),mn=st(),Tu=ri(),Oo=q(),kb={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:o,validateName:a,opts:s,self:c}=n,{root:l}=o;if((r==="#"||r==="#/")&&i===l.baseId)return p();let d=Tu.resolveRef.call(c,l,i,r);if(d===void 0)throw new bb.default(n.opts.uriResolver,i,r);if(d instanceof Tu.SchemaEnv)return f(d);return u(d);function p(){if(o===l)return So(e,a,o,o.$async);let m=t.scopeValue("root",{ref:l});return So(e,(0,Ze._)`${m}.validate`,l,l.$async)}function f(m){let g=Lu(e,m);So(e,g,m,m.$async)}function u(m){let g=t.scopeValue("schema",s.code.source===!0?{ref:m,code:(0,Ze.stringify)(m)}:{ref:m}),y=t.name("valid"),w=e.subschema({schema:m,dataTypes:[],schemaPath:Ze.nil,topSchemaRef:g,errSchemaPath:r},y);e.mergeEvaluated(w),e.ok(y)}}};function Lu(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Ze._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Pr.getValidate=Lu;function So(e,t,r,n){let{gen:i,it:o}=e,{allErrors:a,schemaEnv:s,opts:c}=o,l=c.passContext?mn.default.this:Ze.nil;n?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,Ze._)`await ${(0,$u.callValidateCode)(e,t,l)}`),u(t),a||i.assign(m,!0)},g=>{i.if((0,Ze._)`!(${g} instanceof ${o.ValidationError})`,()=>i.throw(g)),f(g),a||i.assign(m,!1)}),e.ok(m)}function p(){e.result((0,$u.callValidateCode)(e,t,l),()=>u(t),()=>f(t))}function f(m){let g=(0,Ze._)`${m}.errors`;i.assign(mn.default.vErrors,(0,Ze._)`${mn.default.vErrors} === null ? ${g} : ${mn.default.vErrors}.concat(${g})`),i.assign(mn.default.errors,(0,Ze._)`${mn.default.vErrors}.length`)}function u(m){var g;if(!o.opts.unevaluated)return;let y=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(o.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(o.props=Oo.mergeEvaluated.props(i,y.props,o.props));else{let w=i.var("props",(0,Ze._)`${m}.evaluated.props`);o.props=Oo.mergeEvaluated.props(i,w,o.props,Ze.Name)}if(o.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(o.items=Oo.mergeEvaluated.items(i,y.items,o.items));else{let w=i.var("items",(0,Ze._)`${m}.evaluated.items`);o.items=Oo.mergeEvaluated.items(i,w,o.items,Ze.Name)}}}Pr.callRef=So;Pr.default=kb});var xu=E(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});var _b=Cu(),Ab=Do(),Rb=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",_b.default,Ab.default];pc.default=Rb});var Vu=E(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var jo=x(),nr=jo.operators,Co={maximum:{okStr:"<=",ok:nr.LTE,fail:nr.GT},minimum:{okStr:">=",ok:nr.GTE,fail:nr.LT},exclusiveMaximum:{okStr:"<",ok:nr.LT,fail:nr.GTE},exclusiveMinimum:{okStr:">",ok:nr.GT,fail:nr.LTE}},Eb={message:({keyword:e,schemaCode:t})=>(0,jo.str)`must be ${Co[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,jo._)`{comparison: ${Co[e].okStr}, limit: ${t}}`},Pb={keyword:Object.keys(Co),type:"number",schemaType:"number",$data:!0,error:Eb,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,jo._)`${r} ${Co[t].fail} ${n} || isNaN(${r})`)}};uc.default=Pb});var Mu=E(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});var si=x(),Nb={message:({schemaCode:e})=>(0,si.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,si._)`{multipleOf: ${e}}`},Ob={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Nb,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,o=i.opts.multipleOfPrecision,a=t.let("res"),s=o?(0,si._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${o}`:(0,si._)`${a} !== parseInt(${a})`;e.fail$data((0,si._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};fc.default=Ob});var Uu=E(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});function Fu(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}mc.default=Fu;Fu.code='require("ajv/dist/runtime/ucs2length").default'});var qu=E(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Nr=x(),Sb=q(),Db=Uu(),jb={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Nr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Nr._)`{limit: ${e}}`},Cb={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:jb,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,o=t==="maxLength"?Nr.operators.GT:Nr.operators.LT,a=i.opts.unicode===!1?(0,Nr._)`${r}.length`:(0,Nr._)`${(0,Sb.useFunc)(e.gen,Db.default)}(${r})`;e.fail$data((0,Nr._)`${a} ${o} ${n}`)}};gc.default=Cb});var Bu=E(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});var $b=ct(),Tb=q(),gn=x(),Lb={message:({schemaCode:e})=>(0,gn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,gn._)`{pattern: ${e}}`},xb={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Lb,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,gn._)`new RegExp`:(0,Tb.useFunc)(t,c),d=t.let("valid");t.try(()=>t.assign(d,(0,gn._)`${l}(${o}, ${s}).test(${r})`),()=>t.assign(d,!1)),e.fail$data((0,gn._)`!${d}`)}else{let c=(0,$b.usePattern)(e,i);e.fail$data((0,gn._)`!${c}.test(${r})`)}}};yc.default=xb});var zu=E(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var ci=x(),Vb={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ci.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ci._)`{limit: ${e}}`},Mb={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Vb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?ci.operators.GT:ci.operators.LT;e.fail$data((0,ci._)`Object.keys(${r}).length ${i} ${n}`)}};hc.default=Mb});var Gu=E(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});var li=ct(),di=x(),Fb=q(),Ub={message:({params:{missingProperty:e}})=>(0,di.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,di._)`{missingProperty: ${e}}`},qb={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Ub,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:o,it:a}=e,{opts:s}=a;if(!o&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?l():d(),s.strictRequired){let u=e.parentSchema.properties,{definedProperties:m}=e.it;for(let g of r)if(u?.[g]===void 0&&!m.has(g)){let y=a.schemaEnv.baseId+a.errSchemaPath,w=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,Fb.checkStrictMode)(a,w,a.opts.strictRequired)}}function l(){if(c||o)e.block$data(di.nil,p);else for(let u of r)(0,li.checkReportMissingProp)(e,u)}function d(){let u=t.let("missing");if(c||o){let m=t.let("valid",!0);e.block$data(m,()=>f(u,m)),e.ok(m)}else t.if((0,li.checkMissingProp)(e,r,u)),(0,li.reportMissingProp)(e,u),t.else()}function p(){t.forOf("prop",n,u=>{e.setParams({missingProperty:u}),t.if((0,li.noPropertyInData)(t,i,u,s.ownProperties),()=>e.error())})}function f(u,m){e.setParams({missingProperty:u}),t.forOf(u,n,()=>{t.assign(m,(0,li.propertyInData)(t,i,u,s.ownProperties)),t.if((0,di.not)(m),()=>{e.error(),t.break()})},di.nil)}}};wc.default=qb});var Ju=E(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var pi=x(),Bb={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,pi.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,pi._)`{limit: ${e}}`},zb={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Bb,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?pi.operators.GT:pi.operators.LT;e.fail$data((0,pi._)`${r}.length ${i} ${n}`)}};Ic.default=zb});var $o=E(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var Wu=Bs();Wu.code='require("ajv/dist/runtime/equal").default';vc.default=Wu});var Ku=E(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var bc=Hn(),De=x(),Gb=q(),Jb=$o(),Wb={message:({params:{i:e,j:t}})=>(0,De.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,De._)`{i: ${e}, j: ${t}}`},Kb={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Wb,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:o,schemaCode:a,it:s}=e;if(!n&&!i)return;let c=t.let("valid"),l=o.items?(0,bc.getSchemaTypes)(o.items):[];e.block$data(c,d,(0,De._)`${a} === false`),e.ok(c);function d(){let m=t.let("i",(0,De._)`${r}.length`),g=t.let("j");e.setParams({i:m,j:g}),t.assign(c,!0),t.if((0,De._)`${m} > 1`,()=>(p()?f:u)(m,g))}function p(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let y=t.name("item"),w=(0,bc.checkDataTypes)(l,y,s.opts.strictNumbers,bc.DataType.Wrong),A=t.const("indices",(0,De._)`{}`);t.for((0,De._)`;${m}--;`,()=>{t.let(y,(0,De._)`${r}[${m}]`),t.if(w,(0,De._)`continue`),l.length>1&&t.if((0,De._)`typeof ${y} == "string"`,(0,De._)`${y} += "_"`),t.if((0,De._)`typeof ${A}[${y}] == "number"`,()=>{t.assign(g,(0,De._)`${A}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,De._)`${A}[${y}] = ${m}`)})}function u(m,g){let y=(0,Gb.useFunc)(t,Jb.default),w=t.name("outer");t.label(w).for((0,De._)`;${m}--;`,()=>t.for((0,De._)`${g} = ${m}; ${g}--;`,()=>t.if((0,De._)`${y}(${r}[${m}], ${r}[${g}])`,()=>{e.error(),t.assign(c,!1).break(w)})))}}};kc.default=Kb});var Yu=E(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var _c=x(),Yb=q(),Hb=$o(),Xb={message:"must be equal to constant",params:({schemaCode:e})=>(0,_c._)`{allowedValue: ${e}}`},Zb={keyword:"const",$data:!0,error:Xb,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,_c._)`!${(0,Yb.useFunc)(t,Hb.default)}(${r}, ${i})`):e.fail((0,_c._)`${o} !== ${r}`)}};Ac.default=Zb});var Hu=E(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});var ui=x(),Qb=q(),ek=$o(),tk={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ui._)`{allowedValues: ${e}}`},rk={keyword:"enum",schemaType:"array",$data:!0,error:tk,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:o,it:a}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,Qb.useFunc)(t,ek.default)),d;if(s||n)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let u=t.const("vSchema",o);d=(0,ui.or)(...i.map((m,g)=>f(u,g)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",o,u=>t.if((0,ui._)`${l()}(${r}, ${u})`,()=>t.assign(d,!0).break()))}function f(u,m){let g=i[m];return typeof g=="object"&&g!==null?(0,ui._)`${l()}(${r}, ${u}[${m}])`:(0,ui._)`${r} === ${g}`}}};Rc.default=rk});var Xu=E(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});var nk=Vu(),ik=Mu(),ok=qu(),ak=Bu(),sk=zu(),ck=Gu(),lk=Ju(),dk=Ku(),pk=Yu(),uk=Hu(),fk=[nk.default,ik.default,ok.default,ak.default,sk.default,ck.default,lk.default,dk.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},pk.default,uk.default];Ec.default=fk});var Nc=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.validateAdditionalItems=void 0;var Or=x(),Pc=q(),mk={message:({params:{len:e}})=>(0,Or.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Or._)`{limit: ${e}}`},gk={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:mk,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Pc.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Zu(e,n)}};function Zu(e,t){let{gen:r,schema:n,data:i,keyword:o,it:a}=e;a.items=!0;let s=r.const("len",(0,Or._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Or._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Pc.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,Or._)`${s} <= ${t.length}`);r.if((0,Or.not)(l),()=>c(l)),e.ok(l)}function c(l){r.forRange("i",t.length,s,d=>{e.subschema({keyword:o,dataProp:d,dataPropType:Pc.Type.Num},l),a.allErrors||r.if((0,Or.not)(l),()=>r.break())})}}fi.validateAdditionalItems=Zu;fi.default=gk});var Oc=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateTuple=void 0;var Qu=x(),To=q(),yk=ct(),hk={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return ef(e,"additionalItems",t);r.items=!0,!(0,To.alwaysValidSchema)(r,t)&&e.ok((0,yk.validateArray)(e))}};function ef(e,t,r=e.schema){let{gen:n,parentSchema:i,data:o,keyword:a,it:s}=e;d(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=To.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),l=n.const("len",(0,Qu._)`${o}.length`);r.forEach((p,f)=>{(0,To.alwaysValidSchema)(s,p)||(n.if((0,Qu._)`${l} > ${f}`,()=>e.subschema({keyword:a,schemaProp:f,dataProp:f},c)),e.ok(c))});function d(p){let{opts:f,errSchemaPath:u}=s,m=r.length,g=m===p.minItems&&(m===p.maxItems||p[t]===!1);if(f.strictTuples&&!g){let y=`"${a}" is ${m}-tuple, but minItems or maxItems/${t} are not specified or different at path "${u}"`;(0,To.checkStrictMode)(s,y,f.strictTuples)}}}mi.validateTuple=ef;mi.default=hk});var tf=E(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var wk=Oc(),Ik={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,wk.validateTuple)(e,"items")};Sc.default=Ik});var nf=E(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var rf=x(),vk=q(),bk=ct(),kk=Nc(),_k={message:({params:{len:e}})=>(0,rf.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,rf._)`{limit: ${e}}`},Ak={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:_k,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,vk.alwaysValidSchema)(n,t)&&(i?(0,kk.validateAdditionalItems)(e,i):e.ok((0,bk.validateArray)(e)))}};Dc.default=Ak});var of=E(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var dt=x(),Lo=q(),Rk={message:({params:{min:e,max:t}})=>t===void 0?(0,dt.str)`must contain at least ${e} valid item(s)`:(0,dt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,dt._)`{minContains: ${e}}`:(0,dt._)`{minContains: ${e}, maxContains: ${t}}`},Ek={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Rk,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e,a,s,{minContains:c,maxContains:l}=n;o.opts.next?(a=c===void 0?1:c,s=l):a=1;let d=t.const("len",(0,dt._)`${i}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,Lo.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,Lo.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,Lo.alwaysValidSchema)(o,r)){let g=(0,dt._)`${d} >= ${a}`;s!==void 0&&(g=(0,dt._)`${g} && ${d} <= ${s}`),e.pass(g);return}o.items=!0;let p=t.name("valid");s===void 0&&a===1?u(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,dt._)`${i}.length > 0`,f)):(t.let(p,!1),f()),e.result(p,()=>e.reset());function f(){let g=t.name("_valid"),y=t.let("count",0);u(g,()=>t.if(g,()=>m(y)))}function u(g,y){t.forRange("i",0,d,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:Lo.Type.Num,compositeRule:!0},g),y()})}function m(g){t.code((0,dt._)`${g}++`),s===void 0?t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,dt._)`${g} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,dt._)`${g} >= ${a}`,()=>t.assign(p,!0)))}}};jc.default=Ek});var xo=E(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.validateSchemaDeps=jt.validatePropertyDeps=jt.error=void 0;var Cc=x(),Pk=q(),gi=ct();jt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Cc.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Cc._)`{property: ${e},
|
|
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 Nk={keyword:"dependencies",type:"object",schemaType:"object",error:jt.error,code(e){let[t,r]=Ok(e);af(e,t),sf(e,r)}};function Ok({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function af(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,gi.propertyInData)(r,n,a,i.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let l of s)(0,gi.checkReportMissingProp)(e,l)}):(r.if((0,Cc._)`${c} && (${(0,gi.checkMissingProp)(e,s,o)})`),(0,gi.reportMissingProp)(e,o),r.else())}}jt.validatePropertyDeps=af;function sf(e,t=e.schema){let{gen:r,data:n,keyword:i,it:o}=e,a=r.name("valid");for(let s in t)(0,Pk.alwaysValidSchema)(o,t[s])||(r.if((0,gi.propertyInData)(r,n,s,o.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}jt.validateSchemaDeps=sf;jt.default=Nk});var lf=E($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});var cf=x(),Sk=q(),Dk={message:"property name must be valid",params:({params:e})=>(0,cf._)`{propertyName: ${e.propertyName}}`},jk={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Dk,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,Sk.alwaysValidSchema)(i,r))return;let o=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},o),t.if((0,cf.not)(o),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(o)}};$c.default=jk});var Lc=E(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Vo=ct(),bt=x(),Ck=st(),Mo=q(),$k={message:"must NOT have additional properties",params:({params:e})=>(0,bt._)`{additionalProperty: ${e.additionalProperty}}`},Tk={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:$k,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:o,it:a}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Mo.alwaysValidSchema)(a,r))return;let l=(0,Vo.allSchemaProperties)(n.properties),d=(0,Vo.allSchemaProperties)(n.patternProperties);p(),e.ok((0,bt._)`${o} === ${Ck.default.errors}`);function p(){t.forIn("key",i,y=>{!l.length&&!d.length?m(y):t.if(f(y),()=>m(y))})}function f(y){let w;if(l.length>8){let A=(0,Mo.schemaRefOrVal)(a,n.properties,"properties");w=(0,Vo.isOwnProperty)(t,A,y)}else l.length?w=(0,bt.or)(...l.map(A=>(0,bt._)`${y} === ${A}`)):w=bt.nil;return d.length&&(w=(0,bt.or)(w,...d.map(A=>(0,bt._)`${(0,Vo.usePattern)(e,A)}.test(${y})`))),(0,bt.not)(w)}function u(y){t.code((0,bt._)`delete ${i}[${y}]`)}function m(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){u(y);return}if(r===!1){e.setParams({additionalProperty:y}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,Mo.alwaysValidSchema)(a,r)){let w=t.name("valid");c.removeAdditional==="failing"?(g(y,w,!1),t.if((0,bt.not)(w),()=>{e.reset(),u(y)})):(g(y,w),s||t.if((0,bt.not)(w),()=>t.break()))}}function g(y,w,A){let b={keyword:"additionalProperties",dataProp:y,dataPropType:Mo.Type.Str};A===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(b,w)}}};Tc.default=Tk});var uf=E(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});var Lk=ei(),df=ct(),xc=q(),pf=Lc(),xk={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&pf.default.code(new Lk.KeywordCxt(o,pf.default,"additionalProperties"));let a=(0,df.allSchemaProperties)(r);for(let p of a)o.definedProperties.add(p);o.opts.unevaluated&&a.length&&o.props!==!0&&(o.props=xc.mergeEvaluated.props(t,(0,xc.toHash)(a),o.props));let s=a.filter(p=>!(0,xc.alwaysValidSchema)(o,r[p]));if(s.length===0)return;let c=t.name("valid");for(let p of s)l(p)?d(p):(t.if((0,df.propertyInData)(t,i,p,o.opts.ownProperties)),d(p),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(c);function l(p){return o.opts.useDefaults&&!o.compositeRule&&r[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};Vc.default=xk});var yf=E(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});var ff=ct(),Fo=x(),mf=q(),gf=q(),Vk={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:o}=e,{opts:a}=o,s=(0,ff.allSchemaProperties)(r),c=s.filter(g=>(0,mf.alwaysValidSchema)(o,r[g]));if(s.length===0||c.length===s.length&&(!o.opts.unevaluated||o.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&i.properties,d=t.name("valid");o.props!==!0&&!(o.props instanceof Fo.Name)&&(o.props=(0,gf.evaluatedPropsToName)(t,o.props));let{props:p}=o;f();function f(){for(let g of s)l&&u(g),o.allErrors?m(g):(t.var(d,!0),m(g),t.if(d))}function u(g){for(let y in l)new RegExp(g).test(y)&&(0,mf.checkStrictMode)(o,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function m(g){t.forIn("key",n,y=>{t.if((0,Fo._)`${(0,ff.usePattern)(e,g)}.test(${y})`,()=>{let w=c.includes(g);w||e.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:gf.Type.Str},d),o.opts.unevaluated&&p!==!0?t.assign((0,Fo._)`${p}[${y}]`,!0):!w&&!o.allErrors&&t.if((0,Fo.not)(d),()=>t.break())})})}}};Mc.default=Vk});var hf=E(Fc=>{"use strict";Object.defineProperty(Fc,"__esModule",{value:!0});var Mk=q(),Fk={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,Mk.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Fc.default=Fk});var wf=E(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});var Uk=ct(),qk={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Uk.validateUnion,error:{message:"must match a schema in anyOf"}};Uc.default=qk});var If=E(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});var Uo=x(),Bk=q(),zk={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Uo._)`{passingSchemas: ${e.passing}}`},Gk={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:zk,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let o=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(l),e.result(a,()=>e.reset(),()=>e.error(!0));function l(){o.forEach((d,p)=>{let f;(0,Bk.alwaysValidSchema)(i,d)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&t.if((0,Uo._)`${c} && ${a}`).assign(a,!1).assign(s,(0,Uo._)`[${s}, ${p}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,p),f&&e.mergeEvaluated(f,Uo.Name)})})}}};qc.default=Gk});var vf=E(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});var Jk=q(),Wk={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=t.name("valid");r.forEach((o,a)=>{if((0,Jk.alwaysValidSchema)(n,o))return;let s=e.subschema({keyword:"allOf",schemaProp:a},i);e.ok(i),e.mergeEvaluated(s)})}};Bc.default=Wk});var _f=E(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});var qo=x(),kf=q(),Kk={message:({params:e})=>(0,qo.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,qo._)`{failingKeyword: ${e.ifClause}}`},Yk={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Kk,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,kf.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=bf(n,"then"),o=bf(n,"else");if(!i&&!o)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),i&&o){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,l("then",d),l("else",d))}else i?t.if(s,l("then")):t.if((0,qo.not)(s),l("else"));e.pass(a,()=>e.error(!0));function c(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function l(d,p){return()=>{let f=e.subschema({keyword:d},s);t.assign(a,s),e.mergeValidEvaluated(f,a),p?t.assign(p,(0,qo._)`${d}`):e.setParams({ifClause:d})}}}};function bf(e,t){let r=e.schema[t];return r!==void 0&&!(0,kf.alwaysValidSchema)(e,r)}zc.default=Yk});var Af=E(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});var Hk=q(),Xk={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,Hk.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Gc.default=Xk});var Rf=E(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});var Zk=Nc(),Qk=tf(),e_=Oc(),t_=nf(),r_=of(),n_=xo(),i_=lf(),o_=Lc(),a_=uf(),s_=yf(),c_=hf(),l_=wf(),d_=If(),p_=vf(),u_=_f(),f_=Af();function m_(e=!1){let t=[c_.default,l_.default,d_.default,p_.default,u_.default,f_.default,i_.default,o_.default,n_.default,a_.default,s_.default];return e?t.push(Qk.default,t_.default):t.push(Zk.default,e_.default),t.push(r_.default),t}Jc.default=m_});var Kc=E(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.dynamicAnchor=void 0;var Wc=x(),g_=st(),Ef=ri(),y_=Do(),h_={keyword:"$dynamicAnchor",schemaType:"string",code:e=>Pf(e,e.schema)};function Pf(e,t){let{gen:r,it:n}=e;n.schemaEnv.root.dynamicAnchors[t]=!0;let i=(0,Wc._)`${g_.default.dynamicAnchors}${(0,Wc.getProperty)(t)}`,o=n.errSchemaPath==="#"?n.validateName:w_(e);r.if((0,Wc._)`!${i}`,()=>r.assign(i,o))}yi.dynamicAnchor=Pf;function w_(e){let{schemaEnv:t,schema:r,self:n}=e.it,{root:i,baseId:o,localRefs:a,meta:s}=t.root,{schemaId:c}=n.opts,l=new Ef.SchemaEnv({schema:r,schemaId:c,root:i,baseId:o,localRefs:a,meta:s});return Ef.compileSchema.call(n,l),(0,y_.getValidate)(e,l)}yi.default=h_});var Yc=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.dynamicRef=void 0;var Nf=x(),I_=st(),Of=Do(),v_={keyword:"$dynamicRef",schemaType:"string",code:e=>Sf(e,e.schema)};function Sf(e,t){let{gen:r,keyword:n,it:i}=e;if(t[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let o=t.slice(1);if(i.allErrors)a();else{let c=r.let("valid",!1);a(c),e.ok(c)}function a(c){if(i.schemaEnv.root.dynamicAnchors[o]){let l=r.let("_v",(0,Nf._)`${I_.default.dynamicAnchors}${(0,Nf.getProperty)(o)}`);r.if(l,s(l,c),s(i.validateName,c))}else s(i.validateName,c)()}function s(c,l){return l?()=>r.block(()=>{(0,Of.callRef)(e,c),r.let(l,!0)}):()=>(0,Of.callRef)(e,c)}}hi.dynamicRef=Sf;hi.default=v_});var Df=E(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});var b_=Kc(),k_=q(),__={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,b_.dynamicAnchor)(e,""):(0,k_.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};Hc.default=__});var jf=E(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});var A_=Yc(),R_={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,A_.dynamicRef)(e,e.schema)};Xc.default=R_});var Cf=E(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});var E_=Kc(),P_=Yc(),N_=Df(),O_=jf(),S_=[E_.default,P_.default,N_.default,O_.default];Zc.default=S_});var Tf=E(Qc=>{"use strict";Object.defineProperty(Qc,"__esModule",{value:!0});var $f=xo(),D_={keyword:"dependentRequired",type:"object",schemaType:"object",error:$f.error,code:e=>(0,$f.validatePropertyDeps)(e)};Qc.default=D_});var Lf=E(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});var j_=xo(),C_={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,j_.validateSchemaDeps)(e)};el.default=C_});var xf=E(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});var $_=q(),T_={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,$_.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}};tl.default=T_});var Vf=E(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});var L_=Tf(),x_=Lf(),V_=xf(),M_=[L_.default,x_.default,V_.default];rl.default=M_});var Ff=E(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var ir=x(),Mf=q(),F_=st(),U_={message:"must NOT have unevaluated properties",params:({params:e})=>(0,ir._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},q_={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:U_,code(e){let{gen:t,schema:r,data:n,errsCount:i,it:o}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:a,props:s}=o;s instanceof ir.Name?t.if((0,ir._)`${s} !== true`,()=>t.forIn("key",n,p=>t.if(l(s,p),()=>c(p)))):s!==!0&&t.forIn("key",n,p=>s===void 0?c(p):t.if(d(s,p),()=>c(p))),o.props=!0,e.ok((0,ir._)`${i} === ${F_.default.errors}`);function c(p){if(r===!1){e.setParams({unevaluatedProperty:p}),e.error(),a||t.break();return}if(!(0,Mf.alwaysValidSchema)(o,r)){let f=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:p,dataPropType:Mf.Type.Str},f),a||t.if((0,ir.not)(f),()=>t.break())}}function l(p,f){return(0,ir._)`!${p} || !${p}[${f}]`}function d(p,f){let u=[];for(let m in p)p[m]===!0&&u.push((0,ir._)`${f} !== ${m}`);return(0,ir.and)(...u)}}};nl.default=q_});var qf=E(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});var Sr=x(),Uf=q(),B_={message:({params:{len:e}})=>(0,Sr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Sr._)`{limit: ${e}}`},z_={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:B_,code(e){let{gen:t,schema:r,data:n,it:i}=e,o=i.items||0;if(o===!0)return;let a=t.const("len",(0,Sr._)`${n}.length`);if(r===!1)e.setParams({len:o}),e.fail((0,Sr._)`${a} > ${o}`);else if(typeof r=="object"&&!(0,Uf.alwaysValidSchema)(i,r)){let c=t.var("valid",(0,Sr._)`${a} <= ${o}`);t.if((0,Sr.not)(c),()=>s(c,o)),e.ok(c)}i.items=!0;function s(c,l){t.forRange("i",l,a,d=>{e.subschema({keyword:"unevaluatedItems",dataProp:d,dataPropType:Uf.Type.Num},c),i.allErrors||t.if((0,Sr.not)(c),()=>t.break())})}}};il.default=z_});var Bf=E(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var G_=Ff(),J_=qf(),W_=[G_.default,J_.default];ol.default=W_});var zf=E(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});var ke=x(),K_={message:({schemaCode:e})=>(0,ke.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ke._)`{format: ${e}}`},Y_={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:K_,code(e,t){let{gen:r,data:n,$data:i,schema:o,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:l,schemaEnv:d,self:p}=s;if(!c.validateFormats)return;i?f():u();function f(){let m=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,ke._)`${m}[${a}]`),y=r.let("fType"),w=r.let("format");r.if((0,ke._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,ke._)`${g}.type || "string"`).assign(w,(0,ke._)`${g}.validate`),()=>r.assign(y,(0,ke._)`"string"`).assign(w,g)),e.fail$data((0,ke.or)(A(),b()));function A(){return c.strictSchema===!1?ke.nil:(0,ke._)`${a} && !${w}`}function b(){let R=d.$async?(0,ke._)`(${g}.async ? await ${w}(${n}) : ${w}(${n}))`:(0,ke._)`${w}(${n})`,I=(0,ke._)`(typeof ${w} == "function" ? ${R} : ${w}.test(${n}))`;return(0,ke._)`${w} && ${w} !== true && ${y} === ${t} && !${I}`}}function u(){let m=p.formats[o];if(!m){A();return}if(m===!0)return;let[g,y,w]=b(m);g===t&&e.pass(R());function A(){if(c.strictSchema===!1){p.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${o}" ignored in schema at path "${l}"`}}function b(I){let _=I instanceof RegExp?(0,ke.regexpCode)(I):c.code.formats?(0,ke._)`${c.code.formats}${(0,ke.getProperty)(o)}`:void 0,S=r.scopeValue("formats",{key:o,ref:I,code:_});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,ke._)`${S}.validate`]:["string",I,S]}function R(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,ke._)`await ${w}(${n})`}return typeof y=="function"?(0,ke._)`${w}(${n})`:(0,ke._)`${w}.test(${n})`}}}};al.default=Y_});var Gf=E(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});var H_=zf(),X_=[H_.default];sl.default=X_});var Jf=E(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.contentVocabulary=yn.metadataVocabulary=void 0;yn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Kf=E(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var Z_=xu(),Q_=Xu(),eA=Rf(),tA=Cf(),rA=Vf(),nA=Bf(),iA=Gf(),Wf=Jf(),oA=[tA.default,Z_.default,Q_.default,(0,eA.default)(!0),iA.default,Wf.metadataVocabulary,Wf.contentVocabulary,rA.default,nA.default];cl.default=oA});var Hf=E(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.DiscrError=void 0;var Yf;(function(e){e.Tag="tag",e.Mapping="mapping"})(Yf||(Bo.DiscrError=Yf={}))});var Zf=E(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var hn=x(),ll=Hf(),Xf=ri(),aA=ti(),sA=q(),cA={message:({params:{discrError:e,tagName:t}})=>e===ll.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,hn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},lA={keyword:"discriminator",type:"object",schemaType:"object",error:cA,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:o}=e,{oneOf:a}=i;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,hn._)`${r}${(0,hn.getProperty)(s)}`);t.if((0,hn._)`typeof ${l} == "string"`,()=>d(),()=>e.error(!1,{discrError:ll.DiscrError.Tag,tag:l,tagName:s})),e.ok(c);function d(){let u=f();t.if(!1);for(let m in u)t.elseIf((0,hn._)`${l} === ${m}`),t.assign(c,p(u[m]));t.else(),e.error(!1,{discrError:ll.DiscrError.Mapping,tag:l,tagName:s}),t.endIf()}function p(u){let m=t.name("valid"),g=e.subschema({keyword:"oneOf",schemaProp:u},m);return e.mergeEvaluated(g,hn.Name),m}function f(){var u;let m={},g=w(i),y=!0;for(let R=0;R<a.length;R++){let I=a[R];if(I?.$ref&&!(0,sA.schemaHasRulesButRef)(I,o.self.RULES)){let S=I.$ref;if(I=Xf.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,S),I instanceof Xf.SchemaEnv&&(I=I.schema),I===void 0)throw new aA.default(o.opts.uriResolver,o.baseId,S)}let _=(u=I?.properties)===null||u===void 0?void 0:u[s];if(typeof _!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);y=y&&(g||w(I)),A(_,R)}if(!y)throw new Error(`discriminator: "${s}" must be required`);return m;function w({required:R}){return Array.isArray(R)&&R.includes(s)}function A(R,I){if(R.const)b(R.const,I);else if(R.enum)for(let _ of R.enum)b(_,I);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function b(R,I){if(typeof R!="string"||R in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[R]=I}}}};dl.default=lA});var Qf=E((xS,dA)=>{dA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var em=E((VS,pA)=>{pA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var tm=E((MS,uA)=>{uA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var rm=E((FS,fA)=>{fA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var nm=E((US,mA)=>{mA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var im=E((qS,gA)=>{gA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var om=E((BS,yA)=>{yA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var am=E((zS,hA)=>{hA.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var sm=E(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var wA=Qf(),IA=em(),vA=tm(),bA=rm(),kA=nm(),_A=im(),AA=om(),RA=am(),EA=["/properties"];function PA(e){return[wA,IA,vA,bA,kA,t(this,_A),AA,t(this,RA)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function t(r,n){return e?r.$dataMetaSchema(n,EA):n}}pl.default=PA});var Dr=E((me,fl)=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var NA=ju(),OA=Kf(),SA=Zf(),DA=sm(),ul="https://json-schema.org/draft/2020-12/schema",wn=class extends NA.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),OA.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(SA.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:r}=this.opts;r&&(DA.default.call(this,t),this.refs["http://json-schema.org/schema"]=ul)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ul)?ul:void 0)}};me.Ajv2020=wn;fl.exports=me=wn;fl.exports.Ajv2020=wn;Object.defineProperty(me,"__esModule",{value:!0});me.default=wn;var jA=ei();Object.defineProperty(me,"KeywordCxt",{enumerable:!0,get:function(){return jA.KeywordCxt}});var In=x();Object.defineProperty(me,"_",{enumerable:!0,get:function(){return In._}});Object.defineProperty(me,"str",{enumerable:!0,get:function(){return In.str}});Object.defineProperty(me,"stringify",{enumerable:!0,get:function(){return In.stringify}});Object.defineProperty(me,"nil",{enumerable:!0,get:function(){return In.nil}});Object.defineProperty(me,"Name",{enumerable:!0,get:function(){return In.Name}});Object.defineProperty(me,"CodeGen",{enumerable:!0,get:function(){return In.CodeGen}});var CA=bo();Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return CA.default}});var $A=ti();Object.defineProperty(me,"MissingRefError",{enumerable:!0,get:function(){return $A.default}})});import be from"node:process";import et from"node:path";import{spawnSync as lO}from"node:child_process";import{readFile as dO}from"node:fs/promises";var te="^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$",Ot="^sha256:[a-f0-9]{64}$";import{constants as ca}from"node:fs";import{lstat as dR,mkdir as Nn,open as Am,readFile as Ri,realpath as Vr,rename as pR,unlink as Sl}from"node:fs/promises";import{randomUUID as Dl}from"node:crypto";import Ne from"node:path";var cm=nn(Dr(),1);var je={type:"string",pattern:Ot},TA={type:"string",pattern:"^[a-z][a-z0-9.-]{2,127}$"},ml={type:"string",format:"date-time"},gl={enum:["typescript.typecheck","vitest.run","typescript.build","npm.pack-dry-run","workspace.structure","capability.assets","node.application-smoke","web.application-build","web.application-smoke","expo.application-config","expo.application-export","react.library-build","next.application-test","next.application-build","next.application-package","next.application-smoke","application.config-contract"]},lm={type:"object",additionalProperties:!1,required:["node","pnpm","typescript"],properties:{node:{type:"string",minLength:1,maxLength:64},pnpm:{type:"string",minLength:1,maxLength:64},typescript:{type:"string",minLength:1,maxLength:64}}},yl={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","consumerProfile","compatibility","assets","verifiers","exit"],properties:{schemaVersion:{const:1},capabilityId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,consumerProfile:{enum:["blank-typescript-library","standalone-npm-package","react-component-library","nextjs-full-stack-application","workspace-root","workspace-npm-package","workspace-node-application","workspace-web-application","workspace-expo-application","any-project"]},kind:{enum:["profile","engineering-feature","integration-feature","domain-extension"]},dependencies:{type:"object",additionalProperties:!1,required:["profiles"],properties:{profiles:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}},capabilities:{type:"array",minItems:1,uniqueItems:!0,items:{type:"string",pattern:te}}}},compatibility:lm,integration:{type:"object",additionalProperties:!1,required:["title","purpose","packages","codeAssets"],properties:{title:{type:"string",minLength:1,maxLength:128},purpose:{type:"string",minLength:1,maxLength:512},packages:{type:"array",items:{type:"object",additionalProperties:!1,required:["packageName","version","usage","imports"],properties:{packageName:{type:"string",minLength:1,maxLength:214},version:{type:"string",minLength:1,maxLength:128},usage:{enum:["runtime","development","build","test"]},imports:{type:"array",items:{type:"object",additionalProperties:!1,required:["importFrom","symbol"],properties:{importFrom:{type:"string",minLength:1,maxLength:214},symbol:{type:"string",minLength:1,maxLength:128},referencePath:{type:"string",minLength:1,maxLength:512}}}}}}},codeAssets:{type:"array",items:{type:"object",additionalProperties:!1,required:["sourcePath","targetPath","ownership"],properties:{sourcePath:{type:"string",minLength:1,maxLength:512},targetPath:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]}}}}}},assets:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["path","ownership","digest","mode"],properties:{path:{type:"string",minLength:1,maxLength:512},ownership:{enum:["owned-file","managed-region","seed-file"]},digest:je,mode:{type:"integer",minimum:0,maximum:511},regionId:{type:"string",pattern:te},renderer:{enum:["npm-package-json-v1","npm-package-json-v2","react-component-package-json-v1","nextjs-application-package-json-v1","workspace-root-package-json-v1","node-application-package-json-v1","web-application-package-json-v1","expo-application-package-json-v1","application-config-contract-v1","application-config-binding-v1"]}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:te}},required:["regionId"]},else:{not:{required:["regionId"]}}}]}},verifiers:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["id"],properties:{id:gl}}},exit:{type:"object",additionalProperties:!1,required:["ownedAssets"],properties:{ownedAssets:{type:"array",items:{type:"string",minLength:1,maxLength:512}}}}}},dm={type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",pattern:"^registry\\.[a-z0-9][a-z0-9.-]{1,126}$"},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",maxLength:214},version:{type:"string",pattern:"^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",maxLength:64},integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]{86}==$"},tarballDigest:je,deliveryReceiptId:je,usage:{enum:["runtime","development"]}}},{$id:WS,...pm}=yl,LA={...pm,$id:"https://schemas.dyyto.dev/platform/capability-bundle-release-v2.json",required:[...yl.required,"availability","packageSources"],properties:{...yl.properties,schemaVersion:{const:2},availability:{oneOf:[{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"local-artifact"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"candidate"},visibility:{const:"maintainers-only"},sourceState:{const:"development-registry"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","sourceState"],properties:{maturity:{const:"available"},visibility:{const:"catalog-consumers"},sourceState:{const:"registry-verified"}}},{type:"object",additionalProperties:!1,required:["maturity","visibility","reasonCode"],properties:{maturity:{const:"withdrawn"},visibility:{const:"existing-locks-only"},reasonCode:{type:"string",pattern:"^[A-Z][A-Z0-9_]{2,63}$"}}}]},packageSources:{type:"array",maxItems:128,items:dm}}},xA={$id:"https://schemas.dyyto.dev/platform/capability-bundle-release.json",oneOf:[pm,(()=>{let{$id:e,...t}=LA;return t})()]},zo={$id:"https://schemas.dyyto.dev/platform/verification-result-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","verifierId","result","issuer","commandId","exitCode","stdoutDigest","stderrDigest","startedAt","completedAt","projectStateDigest","runtime"],properties:{schemaVersion:{const:1},verifierId:gl,result:{enum:["passed","failed"]},issuer:{enum:["dyyto-cli","test-harness","external-ci"]},commandId:gl,exitCode:{type:"integer",minimum:0,maximum:255},stdoutDigest:je,stderrDigest:je,startedAt:ml,completedAt:ml,projectStateDigest:je,runtime:lm}},VA={...zo,$id:"https://schemas.dyyto.dev/platform/adoption-evidence-v1.json",required:[...zo.required,"evidenceId","capabilityId","capabilityVersion","capabilityIntegrity"],properties:{...zo.properties,evidenceId:je,capabilityId:{type:"string",pattern:te},capabilityVersion:{type:"string",minLength:1,maxLength:128},capabilityIntegrity:je}},MA={$id:"https://schemas.dyyto.dev/platform/project-adoption-lock.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{enum:[1,2]},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","consumerProfile","appliedPlanId","projectStateDigest","assets","evidenceIds","committedAt"],properties:{capabilityId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128},integrity:je,consumerProfile:{type:"string",minLength:1,maxLength:128},appliedPlanId:je,projectStateDigest:je,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:{type:"string",minLength:1,maxLength:512},digest:je,ownership:{enum:["owned-file","managed-region","seed-file"]},regionId:{type:"string",pattern:te}},allOf:[{if:{properties:{ownership:{const:"managed-region"}},required:["ownership"]},then:{properties:{regionId:{type:"string",pattern:te}},required:["regionId"]}}]}},evidenceIds:{type:"array",items:je},committedAt:ml,packageAdoption:{type:"object",additionalProperties:!1,required:["registryRevisions","sources","packageJsonDigest","lockfileDigest"],properties:{sourceChannel:{enum:["production","development"]},registryRevisions:{type:"array",items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:TA,revision:je}}},sources:{type:"array",minItems:1,maxItems:128,items:dm},packageJsonDigest:je,lockfileDigest:je}}}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{capabilities:{type:"array",items:{type:"object",not:{type:"object",properties:{packageAdoption:{}},required:["packageAdoption"]}}}}}}]},wi=new cm.Ajv2020({allErrors:!0,strict:!0});wi.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var Jo={capabilityBundleRelease:wi.compile(xA),verificationResult:wi.compile(zo),adoptionEvidence:wi.compile(VA),projectAdoptionLock:wi.compile(MA)},Go=class extends Error{contract;issues;code="ADOPTION_CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Wo(e,t,r){if(!t(r))throw new Go(e,t.errors??[]);return r}var um=e=>{let t=Wo("capabilityBundleRelease",Jo.capabilityBundleRelease,e);if(t.schemaVersion===2){let r=()=>{throw new Go("capabilityBundleRelease",[])},n=t.packageSources;(t.availability.maturity==="candidate"&&t.availability.sourceState==="local-artifact"&&n.length!==0||t.availability.maturity==="candidate"&&t.availability.sourceState==="development-registry"&&n.length===0||t.availability.maturity!=="candidate"&&n.length===0)&&r();let i="",o=new Set;for(let s of n){let c=`${s.packageName}@${s.version}`;(c.localeCompare(i)<=0||o.has(c))&&r(),i=c,o.add(c)}let a=t.integration?.packages??[];(t.availability.maturity!=="candidate"||t.availability.sourceState==="development-registry")&&(a.length!==n.length||a.some(s=>!n.some(c=>c.packageName===s.packageName&&c.version===s.version&&c.usage===s.usage)))&&r()}return t},fm=e=>Wo("verificationResult",Jo.verificationResult,e),Ii=e=>Wo("adoptionEvidence",Jo.adoptionEvidence,e),Ge=e=>Wo("projectAdoptionLock",Jo.projectAdoptionLock,e);import{lstat as KA,readFile as vl,realpath as bl}from"node:fs/promises";import bn from"node:path";import{createHash as FA}from"node:crypto";function h(e){return`sha256:${FA("sha256").update(e).digest("hex")}`}function k(e){return Array.isArray(e)?`[${e.map(k).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${k(n)}`).join(",")}}`:JSON.stringify(e)}var Ct=class extends Error{code="MANAGED_REGION_INVALID";constructor(t){super(t)}};function mm(e){if(!new RegExp(te).test(e))throw new Ct("Region identity is invalid");return{begin:`<!-- dyyto:begin ${e} -->`,end:`<!-- dyyto:end ${e} -->`}}function Ko(e,t){if(e.includes("\r"))throw new Ct("Managed regions require LF newlines");let{begin:r,end:n}=mm(t),i=e.split(r).length-1,o=e.split(n).length-1;if(i!==1||o!==1)throw new Ct("Managed region markers are unavailable or ambiguous");let a=e.indexOf(r)+r.length,s=e.indexOf(n,a),c=e.slice(a,s);if(/<!-- dyyto:(?:begin|end) /.test(c))throw new Ct("Managed regions cannot overlap");return`${c.replace(/^\n+|\n+$/g,"")}
|
|
9
|
-
`}function
|
|
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
|
-
${r}`;if(n===0){let
|
|
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,l=e.source.slice(s+t.length,c-r.length);if(/<!-- dyyto:(?:begin|end) /.test(l))throw new Ct("Managed regions cannot overlap");return`${e.source.slice(0,s)}${a}${e.source.slice(c)}`}import ym from"node:path";var or=class extends Error{assetPath;code="PLAN_PRECONDITION_FAILED";constructor(t,r){super(t),this.assetPath=r}};function Yo(e){if(e.length===0||ym.posix.isAbsolute(e)||ym.win32.isAbsolute(e)||e.includes("\\")||e.split("/").some(t=>t===".."||t==="."))throw new or("Asset path must be a normalized project-relative POSIX path",e)}function UA(e,t){Yo(e.path);let r=e.kind==="merge"&&e.ownership==="managed-region"&&e.regionId!==void 0&&new RegExp(te).test(e.regionId);if((e.kind==="merge"||e.ownership==="managed-region"||e.regionId!==void 0)&&!r)throw new or("Managed regions require merge ownership and a valid region identity",e.path);if(e.ownership==="user-file")return{...e,disposition:"conflict",conflictCode:"USER_OWNED"};let n=t?.exists??!1,i=t?.digest;return e.kind==="create"?n?e.desiredDigest!==void 0&&i===e.desiredDigest?{...e,disposition:"noop"}:{...e,disposition:"conflict",conflictCode:"UNEXPECTED_EXISTING"}:{...e,disposition:"ready"}:e.kind==="remove"&&!n?{...e,disposition:"noop"}:e.kind!=="remove"&&n&&e.desiredDigest===i?{...e,disposition:"noop"}:!n||e.baseDigest===void 0||i!==e.baseDigest?{...e,disposition:"conflict",conflictCode:"BASE_DIGEST_MISMATCH"}:{...e,disposition:"ready"}}function Pe(e){if(Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt)))throw new or("Plan timestamps must be valid ISO date-time values");if(Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new or("Plan expiry must be later than generation time");let t=new Map;for(let s of e.observedAssets){if(Yo(s.path),t.has(s.path))throw new or("Observed asset paths must be unique",s.path);t.set(s.path,s)}let r=new Set,n=e.changes.map(s=>{if(r.has(s.path))throw new or("Proposed change paths must be unique",s.path);return r.add(s.path),UA(s,t.get(s.path))}).sort((s,c)=>s.path.localeCompare(c.path)),i={action:e.action,capability:{capabilityId:e.capability.capabilityId,version:e.capability.version,integrity:e.capability.integrity},changes:e.changes,observedAssets:e.observedAssets,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}},o=h(k(i)),a={schemaVersion:1,action:e.action,state:n.some(s=>s.disposition==="conflict")?"conflicted":"reviewable",capability:i.capability,generatedAt:e.generatedAt,expiresAt:e.expiresAt,inputDigest:o,operations:n,...e.packageAdoption===void 0?{}:{packageAdoption:e.packageAdoption}};return{...a,planId:h(k(a))}}function Ho(e){return h(k(e))}var hm=nn(Dr(),1);var re={type:"string",pattern:Ot},vn={type:"string",pattern:te},$r={type:"string",minLength:1,maxLength:128},Cr={type:"string",minLength:1,maxLength:512,pattern:"^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"},qA={$id:"https://schemas.dyyto.dev/platform/capability-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilityId","version","integrity","assets","verifiers"],properties:{schemaVersion:{const:1},capabilityId:vn,version:$r,integrity:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","ownership"],properties:{path:Cr,ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re}}},verifiers:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","kind"],properties:{id:{type:"string",minLength:1,maxLength:128},kind:{enum:["command","file-digest"]}}}}}},BA={$id:"https://schemas.dyyto.dev/platform/project-manifest-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},template:{type:"object",additionalProperties:!1,required:["id","version"],properties:{id:vn,version:$r}},profile:{type:"object",additionalProperties:!1,required:["id","parameters"],properties:{id:{type:"string",pattern:te},parameters:{type:"object",minProperties:0,maxProperties:32,propertyNames:{pattern:"^[a-z][A-Za-z0-9]*$"},additionalProperties:{type:"string",maxLength:256}}}},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:vn,version:$r}}}}},zA={$id:"https://schemas.dyyto.dev/platform/project-lock-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","capabilities"],properties:{schemaVersion:{const:1},capabilities:{type:"array",items:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity","appliedPlanId","assets","evidenceIds"],properties:{capabilityId:vn,version:$r,integrity:re,appliedPlanId:re,assets:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","digest"],properties:{path:Cr,digest:re}}},evidenceIds:{type:"array",items:{type:"string",minLength:1,maxLength:256}}}}}}},GA={$id:"https://schemas.dyyto.dev/platform/evidence-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","evidenceId","capabilityId","capabilityVersion","verifierId","result","observedAt"],properties:{schemaVersion:{const:1},evidenceId:{type:"string",minLength:1,maxLength:256},capabilityId:vn,capabilityVersion:$r,verifierId:{type:"string",minLength:1,maxLength:128},result:{enum:["passed","failed"]},observedAt:{type:"string",format:"date-time"}}},JA={$id:"https://schemas.dyyto.dev/platform/change-plan-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","planId","action","state","capability","generatedAt","expiresAt","inputDigest","operations"],properties:{schemaVersion:{const:1},planId:re,action:{enum:["adopt","upgrade","remove"]},state:{enum:["reviewable","conflicted"]},capability:{type:"object",additionalProperties:!1,required:["capabilityId","version","integrity"],properties:{capabilityId:vn,version:$r,integrity:re}},generatedAt:{type:"string",format:"date-time"},expiresAt:{type:"string",format:"date-time"},inputDigest:re,packageAdoption:{type:"object",additionalProperties:!1,required:["schemaVersion","packageJsonPreimageDigest","desiredPackageJsonDigest","lockfilePreimage","desiredLockfileDigest","registryRevisions","endpointBindings","sources","installPolicy"],properties:{schemaVersion:{enum:[1,2]},sourceChannel:{enum:["production","development"]},packageJsonPreimageDigest:re,desiredPackageJsonDigest:re,lockfilePreimage:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest"],properties:{kind:{const:"present"},digest:re}}]},desiredLockfileDigest:re,registryRevisions:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","revision"],properties:{registryId:{type:"string",minLength:1,maxLength:128},revision:re}}},endpointBindings:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","registryConfigRevision","bindingDigest","expiresAt"],properties:{registryId:{type:"string",minLength:1,maxLength:128},registryConfigRevision:re,bindingDigest:re,expiresAt:{type:"string",format:"date-time"}}}},sources:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["registryId","packageName","version","integrity","tarballDigest","deliveryReceiptId","usage"],properties:{registryId:{type:"string",minLength:1,maxLength:128},packageName:{type:"string",pattern:"^@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$"},version:$r,integrity:{type:"string",pattern:"^sha512-[A-Za-z0-9+/]+={0,2}$"},tarballDigest:re,deliveryReceiptId:re,usage:{enum:["runtime","development"]}}}},installPolicy:{type:"object",additionalProperties:!1,required:["ignoreScripts","allowWorkspaceProtocol","allowPublicRegistryFallback"],properties:{ignoreScripts:{const:!0},allowWorkspaceProtocol:{const:!1},allowPublicRegistryFallback:{const:!1}}},topology:{type:"object",additionalProperties:!1,required:["mode","unitRelativeRoot","unitImporterId","lockfilePath"],properties:{mode:{enum:["standalone","pnpm-shared-lockfile"]},unitRelativeRoot:Cr,unitImporterId:Cr,lockfilePath:{const:"pnpm-lock.yaml"},workspaceManifestPath:{const:"pnpm-workspace.yaml"},workspaceManifestDigest:re}},preservedDependencies:{type:"array",items:{type:"object",additionalProperties:!1,required:["section","packageName","specifier"],properties:{section:{enum:["dependencies","devDependencies","optionalDependencies"]},packageName:{type:"string",minLength:1,maxLength:214},specifier:{type:"string",minLength:1,maxLength:512}}}},preservedImporterDigests:{type:"array",items:{type:"object",additionalProperties:!1,required:["importerId","preimageDigest","desiredDigest"],properties:{importerId:Cr,preimageDigest:re,desiredDigest:re}}}},allOf:[{if:{properties:{schemaVersion:{const:1}},required:["schemaVersion"]},then:{properties:{topology:!1,preservedDependencies:!1,preservedImporterDigests:!1}}},{if:{properties:{schemaVersion:{const:2}},required:["schemaVersion"]},then:{required:["topology","preservedDependencies","preservedImporterDigests"]}}]},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["path","kind","ownership","disposition"],properties:{path:Cr,kind:{enum:["create","replace","merge","remove"]},ownership:{enum:["owned-file","managed-region","seed-file","shared-file","user-file"]},desiredDigest:re,baseDigest:re,regionId:{type:"string",pattern:te},disposition:{enum:["ready","noop","conflict"]},conflictCode:{enum:["USER_OWNED","UNEXPECTED_EXISTING","BASE_DIGEST_MISMATCH"]}}}}}},WA={$id:"https://schemas.dyyto.dev/platform/transaction-journal-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","transactionId","planId","approvedPlanId","projectRootDigest","state","createdAt","updatedAt","operations","journalDigest"],properties:{schemaVersion:{const:1},transactionId:{type:"string",minLength:1,maxLength:128},planId:re,approvedPlanId:re,projectRootDigest:re,state:{enum:["preparing","prepared","applying","applied","recovery-required","recovering","recovered"]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"},operations:{type:"array",items:{type:"object",additionalProperties:!1,required:["index","path","kind","before","status"],properties:{index:{type:"integer",minimum:0},path:Cr,kind:{enum:["create","replace","merge","remove"]},before:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"absent"}}},{type:"object",additionalProperties:!1,required:["kind","digest","mode","preimageDigest"],properties:{kind:{const:"present"},digest:re,mode:{type:"integer",minimum:0,maximum:511},preimageDigest:re}}]},desiredDigest:re,status:{enum:["pending","applied","restored"]}}}},failure:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",minLength:1,maxLength:128},operationIndex:{type:"integer",minimum:0}}},journalDigest:re}},jr=new hm.Ajv2020({allErrors:!0,strict:!0});jr.addFormat("date-time",{type:"string",validate:e=>!Number.isNaN(Date.parse(e))});var wl={capabilityRelease:jr.compile(qA),projectManifest:jr.compile(BA),projectLock:jr.compile(zA),evidence:jr.compile(GA),changePlan:jr.compile(JA),transactionJournal:jr.compile(WA)},hl=class extends Error{contract;issues;code="CONTRACT_INVALID";constructor(t,r){super(`Invalid ${t} contract`),this.contract=t,this.issues=r}};function Il(e,t,r){if(!t(r))throw new hl(e,t.errors??[]);return r}var W=e=>Il("projectManifest",wl.projectManifest,e);var ar=e=>Il("changePlan",wl.changePlan,e),wm=e=>Il("transactionJournal",wl.transactionJournal,e);var M=class extends Error{code;assetPath;constructor(t,r,n){super(r),this.code=t,this.assetPath=n}};async function Xo(e){if(e.currentLock!==void 0){let o=await Zo({...e,manifest:{schemaVersion:1,capabilities:[{capabilityId:e.release.release.capabilityId,version:e.release.release.version}]}});return{state:o.plan.state==="conflicted"?"drifted":"adopted",operations:o.plan.operations}}let t=await bl(bn.resolve(e.projectRoot)),r=[],n=0,i=0;for(let o of e.release.release.assets){let a=await kl(t,o.path);a.exists&&(n+=1),a.digest===o.digest&&(i+=1),r.push({path:o.path,kind:"create",ownership:o.ownership,desiredDigest:o.ownership==="seed-file"&&a.digest?a.digest:o.digest,disposition:a.exists?o.ownership==="seed-file"||a.digest===o.digest?"noop":"conflict":"ready",...a.exists&&a.digest!==o.digest?{conflictCode:"UNEXPECTED_EXISTING"}:{}})}return n===0?{state:"planned",operations:r}:i===e.release.release.assets.length?{state:"applied-unverified",operations:r}:{state:"drifted",operations:r}}async function kl(e,t){let r=bn.join(e,...t.split("/"));try{let n=await KA(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Blank profile target must be a regular file",t);return{path:t,exists:!0,digest:h(await vl(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}async function Tr(e){let t=await bl(bn.resolve(e.projectRoot)),r=[];for(let n of e.expectedAssets){let i=await kl(t,n.path),o=i.exists&&i.digest===n.digest;if(n.ownership==="managed-region"&&n.regionId!==void 0&&i.exists)try{o=h(Ko(await vl(bn.join(t,...n.path.split("/")),"utf8"),n.regionId))===n.digest}catch{o=!1}if(!o)throw new M("PROJECT_STATE_INVALID","A managed project asset does not match the approved plan",n.path);r.push({path:n.path,digest:n.digest,...n.ownership===void 0?{}:{ownership:n.ownership},...n.regionId===void 0?{}:{regionId:n.regionId}})}return{assets:r,projectStateDigest:h(k(r))}}async function Zo(e){let t=W(e.manifest);if(t.capabilities.filter(d=>d.capabilityId===e.release.release.capabilityId&&d.version===e.release.release.version).length!==1||t.capabilities.length!==1)throw new M("RELEASE_NOT_FOUND","Manifest must select exactly the loaded M3 capability release");let i=(e.currentLock===void 0?void 0:Ge(e.currentLock))?.capabilities.find(d=>d.capabilityId===e.release.release.capabilityId);if(i!==void 0&&(i.version!==e.release.release.version||i.integrity!==e.release.release.integrity))throw new M("CONSUMER_PROFILE_UNSUPPORTED","M3 does not support upgrading a different locked release");let o=await bl(bn.resolve(e.projectRoot)),a=[],s=[],c=new Map(e.release.contents);for(let d of e.release.release.assets){let p=await kl(o,d.path);if(a.push(p),p.exists&&i===void 0&&d.ownership!=="seed-file")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Blank profile cannot adopt over an existing file without a lock",d.path);let f=d.ownership==="seed-file"&&p.digest?p.digest:d.digest;d.ownership==="seed-file"&&p.exists&&c.set(d.path,await vl(bn.join(o,...d.path.split("/")))),s.push({path:d.path,kind:"create",ownership:d.ownership,desiredDigest:f})}let l={schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:e.release.release.assets.map(d=>({path:d.path,ownership:d.ownership,desiredDigest:d.digest})),verifiers:e.release.release.verifiers.map(d=>({id:d.id,kind:"command"}))};return{manifest:t,release:e.release,plan:Pe({action:"adopt",capability:l,changes:s,observedAssets:a,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),desiredContents:c}}import{chmod as HA,lstat as ia,mkdir as kn,open as bm,readFile as oa,realpath as XA,rename as ra,rm as _l,unlink as Lr}from"node:fs/promises";import{constants as ea}from"node:fs";import{homedir as ZA}from"node:os";import K from"node:path";import{randomUUID as Rn}from"node:crypto";function YA(e){let t=e?.code;return typeof t=="string"&&/^[A-Z0-9_]+$/.test(t)?t:"UNKNOWN"}async function pt(e){let t=process.hrtime.bigint();try{let r=await e.run();return await Im(e.context,e.operation,e.bytes??0,t,"succeeded"),r}catch(r){throw await Im(e.context,e.operation,e.bytes??0,t,"failed",YA(r)),r}}async function Im(e,t,r,n,i,o){if(e?.sink===void 0)return;let a=process.hrtime.bigint(),s={schemaVersion:1,phase:e.phase,operation:t,pathCategory:e.pathCategory,bytes:r,barrierId:e.barrierId,startedMonotonicNs:n.toString(),completedMonotonicNs:a.toString(),result:i,...o===void 0?{}:{errorCategory:o}},c=Object.freeze({...s,eventId:h(k(s))});try{await e.sink(c)}catch{}}var km=Symbol("prepared-transaction"),sr=new Map,QA=5*1024*1024,eR=25*1024*1024,vm=8,na=class extends Error{};async function Qo(e,t,r){try{await e?.onCheckpoint?.(t,r)}catch(n){throw new na("Simulated prepare crash",{cause:n})}}var C=class extends Error{code;relativePath;operationIndex;constructor(t,r,n,i){super(r),this.code=t,this.relativePath=n,this.operationIndex=i}};function vi(e,t){let r=K.join(e,".dyyto"),n=K.join(r,"transactions",t);return{platformDirectory:r,lock:K.join(r,"transaction-lock.json"),transactionDirectory:n,journal:K.join(n,"journal.json"),preimages:K.join(n,"preimages"),quarantine:K.join(n,"quarantine")}}async function Ft(e){try{return await ia(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function En(e,t=!1){if(e?.sink!==void 0)return{sink:e.sink,phase:e.phase,pathCategory:t?"directory":e.category,barrierId:e.barrierId}}function kt(e,t,r,n){return e===void 0?void 0:{sink:e,phase:t,category:r,barrierId:n}}async function ut(e,t){let r=await bm(e,ea.O_RDONLY);try{await pt({context:En(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function bi(e,t,r=384,n){let i=await bm(e,ea.O_CREAT|ea.O_EXCL|ea.O_WRONLY,r);try{await pt({context:En(n),operation:"write",bytes:t.byteLength,run:()=>i.writeFile(t)}),await pt({context:En(n),operation:"file-sync",bytes:t.byteLength,run:()=>i.sync()})}finally{await i.close()}}async function Al(e,t,r){let n=K.dirname(e),i=K.join(n,`.tmp-${Rn()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
15
|
-
`);await
|
|
16
|
-
`),384,r),await ut(K.dirname(e),r)}catch(n){throw n.code==="EEXIST"?new C("TRANSACTION_ACTIVE","Another platform transaction is active"):n}}async function ta(e){try{let t=JSON.parse(await oa(e,"utf8"));if(t.schemaVersion!==1||typeof t.transactionId!="string"||typeof t.planId!="string"||typeof t.startedAt!="string"||typeof t.nonce!="string")throw new Error("invalid lock");return t}catch{throw new C("JOURNAL_CORRUPTED","Transaction lock is invalid")}}function iR(e,t,r){return{[km]:!0,projectRoot:e,plan:t,transactionId:r}}async function oR(e,t){rR(e.plan,e.approvedPlanId,e.now);let r=await aa(e.projectRoot),n=nR(e.plan),i=new Set(e.plan.operations.filter(u=>u.kind!=="remove"&&u.disposition!=="conflict").map(u=>u.path));for(let u of e.desiredContents.keys())if(!i.has(u))throw new C("DESIRED_CONTENT_MISMATCH","Desired content is not declared by the plan",u);for(let u of n)if(Pn(r,u.path),await _n(r,u.path),u.kind!=="remove"){let m=e.desiredContents.get(u.path);if(m===void 0||h(m)!==u.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired content digest does not match the plan",u.path)}let o=vi(r,e.plan.planId);await kn(o.platformDirectory,{recursive:!0,mode:448}),await _n(r,".dyyto");let a=Rn();await Pl(o.lock,{schemaVersion:1,transactionId:a,planId:e.plan.planId,startedAt:e.now,nonce:Rn()},kt(t?.durabilityTrace,"prepare","lock",`${a}:prepare-lock`));let s=e.limits?.maxFileBytes??QA,c=e.limits?.maxTransactionBytes??eR,l=0,d=[],p=[],f=!1;try{if(await Qo(t,"lock-created"),await Ft(o.transactionDirectory))throw new C("PLAN_PRECONDITION_FAILED","This plan already has a transaction record");await kn(o.preimages,{recursive:!0,mode:448}),await kn(o.quarantine,{recursive:!0,mode:448}),f=!0;for(let[m,g]of n.entries()){let y=Pn(r,g.path);await _n(r,g.path);let w=await An(y);if(g.kind==="create"){if(w!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target now exists",g.path,m)}else if(w===void 0||w.digest!==g.baseDigest)throw new C("PLAN_PRECONDITION_FAILED","Target no longer matches plan base digest",g.path,m);let A={kind:"absent"};if(w!==void 0){if(l+=w.bytes.byteLength,w.bytes.byteLength>s||l>c)throw new C("PREIMAGE_LIMIT_EXCEEDED","Preimage size limit exceeded",g.path,m);let b=K.join(o.preimages,`${m}.bin`);await bi(b,w.bytes,384,kt(t?.durabilityTrace,"prepare","preimage",`${a}:preimage:${m}`)),p.push(m),await Qo(t,"preimage-written-pending-directory-sync",m),A={kind:"present",digest:w.digest,mode:w.mode,preimageDigest:h(w.bytes)}}d.push({index:m,path:g.path,kind:g.kind,before:A,...g.desiredDigest===void 0?{}:{desiredDigest:g.desiredDigest},status:"pending"})}if(p.length>0){await ut(o.preimages,kt(t?.durabilityTrace,"prepare","directory",`${a}:preimages-directory-batch`));for(let m of p)await Qo(t,"preimage-persisted",m)}let u=Rl({schemaVersion:1,transactionId:a,planId:e.plan.planId,approvedPlanId:e.approvedPlanId,projectRootDigest:h(r),state:"prepared",createdAt:e.now,updatedAt:e.now,operations:d});return await Al(o.journal,u,kt(t?.durabilityTrace,"prepare","journal",`${a}:journal-prepared`)),sr.set(a,{desiredContents:e.desiredContents,journal:u}),await Qo(t,"journal-prepared"),iR(r,e.plan,a)}catch(u){if(u instanceof na)throw sr.delete(a),new C("RECOVERY_REQUIRED","Prepare was interrupted; recovery is required");try{f&&await _l(o.transactionDirectory,{recursive:!0,force:!0}),await Lr(o.lock),await ut(o.platformDirectory)}catch{throw new C("RECOVERY_REQUIRED","Prepare failed and transaction lock could not be released")}throw u}}async function lr(e){return oR(e)}async function aR(e,t,r,n){return cr(e.journal,{...t,state:"recovery-required",updatedAt:new Date().toISOString(),failure:{code:"APPLY_INTERRUPTED",...r===void 0?{}:{operationIndex:r}}},kt(n,"apply","journal",`${t.transactionId}:recovery-required`))}async function sR(e,t,r,n,i,o){let a=Pn(e,n.path);await _n(e,n.path);let s=await An(a);if(n.before.kind==="absent"){if(s!==void 0)throw new C("PLAN_PRECONDITION_FAILED","Create target changed after prepare",n.path,n.index)}else if(s===void 0||s.digest!==n.before.digest)throw new C("PLAN_PRECONDITION_FAILED","Target changed after prepare",n.path,n.index);if(n.kind==="remove"){let p=K.join(t.quarantine,`${n.index}.bin`),f=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await pt({context:En(f),operation:"rename",run:()=>ra(a,p)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a),t.quarantine]}let c=i.get(n.path);if(c===void 0||h(c)!==n.desiredDigest)throw new C("DESIRED_CONTENT_MISMATCH","Desired bytes are missing or changed",n.path,n.index);await kn(K.dirname(a),{recursive:!0}),await _n(e,n.path);let l=K.join(K.dirname(a),`.dyyto-${r}-${n.index}.tmp`),d=kt(o?.durabilityTrace,"apply","target",`${r}:target:${n.index}`);return await bi(l,c,n.before.kind==="present"?n.before.mode&511:420,d),await o?.onCheckpoint?.("temporary-file-synced",n.index),await pt({context:En(d),operation:"rename",bytes:c.byteLength,run:()=>ra(l,a)}),await o?.onCheckpoint?.("target-renamed-pending-directory-sync",n.index),[K.dirname(a)]}async function cR(e,t){let r=sr.get(e.transactionId);if(r===void 0||e[km]!==!0)throw new C("PLAN_PRECONDITION_FAILED","Prepared transaction is not active");let n=vi(e.projectRoot,e.plan.planId),i=await cr(n.journal,{...r.journal,state:"applying",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applying`));try{await t?.onCheckpoint?.("prepared");let o=new Map;for(let a=0;a<i.operations.length;a+=vm){let s=i.operations.slice(a,a+vm),c=await Promise.allSettled(s.map(d=>sR(e.projectRoot,n,e.transactionId,d,r.desiredContents,t))),l=c.find(d=>d.status==="rejected");if(l?.status==="rejected")throw l.reason;for(let d of c)if(d.status==="fulfilled")for(let p of d.value)o.has(p)||o.set(p,kt(t?.durabilityTrace,"apply","directory",`${e.transactionId}:target-directory-batch`))}for(let[a,s]of o)await ut(a,s);for(let a of i.operations)await t?.onCheckpoint?.("target-renamed",a.index),a.status="applied",await t?.onCheckpoint?.("operation-applied",a.index);i=await cr(n.journal,{...i,operations:i.operations,updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:operation-batch`));for(let a of i.operations)await t?.onCheckpoint?.("operation-journaled",a.index);return i=await cr(n.journal,{...i,state:"applied",updatedAt:new Date().toISOString()},kt(t?.durabilityTrace,"apply","journal",`${e.transactionId}:applied`)),await t?.onCheckpoint?.("applied"),await Lr(n.lock),await ut(n.platformDirectory),sr.delete(e.transactionId),xr(i)}catch(o){throw i=await aR(n,i,o instanceof C?o.operationIndex:void 0,t?.durabilityTrace),sr.set(e.transactionId,{desiredContents:r.desiredContents,journal:i}),new C("RECOVERY_REQUIRED","Apply was interrupted; recovery is required")}}async function dr(e){return cR(e)}function xr(e){return{transactionId:e.transactionId,planId:e.planId,state:e.state,operations:e.operations}}async function Ut(e){let t=await aa(e.projectRoot),r=vi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))return null;let n=await ta(r.lock);return n.planId!==e.planId?null:{transactionId:n.transactionId,planId:n.planId,state:"preparing",operations:[]}}return xr(await El(r.journal))}async function lR(e,t,r){await kn(K.dirname(e),{recursive:!0});let n=K.join(K.dirname(e),`.dyyto-recover-${Rn()}.tmp`);await bi(n,t,r&511),await ra(n,e),await HA(e,r&511),await ut(K.dirname(e))}async function _m(e){let t=await aa(e.projectRoot),r=vi(t,e.planId);if(!await Ft(r.journal)){if(!await Ft(r.lock))throw new C("JOURNAL_CORRUPTED","No transaction record exists");let i=await ta(r.lock);if(i.planId!==e.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another plan");await _l(r.transactionDirectory,{recursive:!0,force:!0}),await kn(r.transactionDirectory,{recursive:!0,mode:448});let o=Rl({schemaVersion:1,transactionId:i.transactionId,planId:i.planId,approvedPlanId:i.planId,projectRootDigest:h(t),state:"recovered",createdAt:i.startedAt,updatedAt:e.now,operations:[]});return await Al(r.journal,o),await Lr(r.lock),await ut(r.platformDirectory),xr(o)}let n=await El(r.journal);if(n.state==="recovered")return xr(n);if(n.state==="applied"){for(let i of n.operations){let o=await An(Pn(t,i.path));if(!(i.kind==="remove"?o===void 0:o?.digest===i.desiredDigest))throw new C("RECOVERY_CONFLICT","Completed transaction target changed before lock cleanup",i.path,i.index)}if(await Ft(r.lock)){let i=await ta(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction");await Lr(r.lock),await ut(r.platformDirectory)}return sr.delete(n.transactionId),xr(n)}if(n.projectRootDigest!==h(t))throw new C("JOURNAL_CORRUPTED","Journal belongs to a different project root");if(await Ft(r.lock)){let i=await ta(r.lock);if(i.transactionId!==n.transactionId||i.planId!==n.planId)throw new C("TRANSACTION_ACTIVE","Transaction lock belongs to another transaction")}else await Pl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()});n=await cr(r.journal,{...n,state:"recovering",updatedAt:e.now});for(let i of[...n.operations].reverse()){if(i.status==="restored")continue;let o=Pn(t,i.path);if(await _n(t,i.path),i.kind!=="remove"){let s=K.join(K.dirname(o),`.dyyto-${n.transactionId}-${i.index}.tmp`);if(await Ft(s)){if((await An(s))?.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Transaction temporary file was modified externally",i.path,i.index);await Lr(s),await ut(K.dirname(s))}}let a=await An(o);if(i.before.kind==="absent"){if(a!==void 0){if(a.digest!==i.desiredDigest)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);await Lr(o),await ut(K.dirname(o))}}else if(a?.digest!==i.before.digest){let s=K.join(r.quarantine,`${i.index}.bin`),c=a?.digest===i.desiredDigest,l=i.kind==="remove"&&a===void 0&&await Ft(s),d=e.approvedConflicts?.find(f=>f.path===i.path&&f.currentDigest===a?.digest);if(!c&&!l&&!d)throw new C("RECOVERY_CONFLICT","Recovery would overwrite external content",i.path,i.index);let p=await oa(K.join(r.preimages,`${i.index}.bin`));if(h(p)!==i.before.preimageDigest)throw new C("JOURNAL_CORRUPTED","Preimage digest is invalid",i.path,i.index);await lR(o,p,i.before.mode),l&&await _l(s,{force:!0})}i.status="restored",n=await cr(r.journal,{...n,operations:n.operations,updatedAt:e.now}),await e.hooks?.onCheckpoint?.("operation-journaled",i.index)}return n=await cr(r.journal,{...n,state:"recovered",updatedAt:e.now}),await Lr(r.lock),await ut(r.platformDirectory),sr.delete(n.transactionId),xr(n)}async function ki(e){return _m(e)}async function Nl(e){if(e.approvedConflicts.length===0||new Set(e.approvedConflicts.map(t=>t.path)).size!==e.approvedConflicts.length||e.approvedConflicts.some(t=>!/^sha256:[a-f0-9]{64}$/u.test(t.currentDigest)))throw new C("PLAN_PRECONDITION_FAILED","Recovery override conflicts are invalid");return _m(e)}async function Ol(e){let t=await aa(e.projectRoot),r=vi(t,e.planId),n=await El(r.journal);if(n.state==="recovered")return xr(n);if(n.state!=="applied")throw new C("PLAN_PRECONDITION_FAILED","Only an applied transaction can be rolled back");let i;for(let o of n.operations){let a=await An(Pn(t,o.path)),s=o.kind==="remove"?a===void 0:a?.digest===o.desiredDigest,c=o.before.kind==="absent"?a===void 0:a?.digest===o.before.digest;if(!s&&!c){i=o;break}}if(await Pl(r.lock,{schemaVersion:1,transactionId:n.transactionId,planId:n.planId,startedAt:e.now,nonce:Rn()}),n=await cr(r.journal,{...n,state:"recovery-required",updatedAt:e.now,failure:{code:e.failureCode}}),i!==void 0)throw new C("RECOVERY_CONFLICT","Rollback would overwrite external content",i.path,i.index);return sr.set(n.transactionId,{desiredContents:new Map,journal:n}),ki({projectRoot:t,planId:e.planId,now:e.now})}var Ae=class extends Error{code;constructor(t,r){super(r),this.code=t}},_i=class extends Error{};function Ei(e,t){let r=Ne.join(e,".dyyto"),n=Ne.join(r,"metadata-transactions",t);return{platformDirectory:r,evidenceDirectory:Ne.join(r,"evidence"),lockFile:Ne.join(r,"project-lock.json"),transactionLock:Ne.join(r,"metadata-lock.json"),transactionDirectory:n,journal:Ne.join(n,"journal.json")}}async function pr(e){try{return await dR(e),!0}catch(t){if(t.code==="ENOENT")return!1;throw t}}function qt(e,t,r){return e===void 0?void 0:{sink:e,category:t,barrierId:r}}function da(e,t=!1){if(e!==void 0)return{sink:e.sink,phase:"metadata",pathCategory:t?"directory":e.category,barrierId:e.barrierId}}async function pa(e,t){let r=await Am(e,ca.O_RDONLY);try{await pt({context:da(t,!0),operation:"directory-sync",run:()=>r.sync()})}finally{await r.close()}}async function jl(e,t,r){let n=await Am(e,ca.O_CREAT|ca.O_EXCL|ca.O_WRONLY,384);try{await pt({context:da(r),operation:"write",bytes:t.byteLength,run:()=>n.writeFile(t)}),await pt({context:da(r),operation:"file-sync",bytes:t.byteLength,run:()=>n.sync()})}finally{await n.close()}}async function Ai(e,t,r){let n=Ne.dirname(e),i=Ne.join(n,`.tmp-${Dl()}`),o=Buffer.from(`${JSON.stringify(t,null,2)}
|
|
17
|
-
`);await
|
|
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=ar(JSON.parse(await Fl(i,"utf8")));if(Pi(a),k(a)!==k(r))throw new Ie("PLAN_INTEGRITY_INVALID","Plan ID content mismatch")}return i}function jm(e){return k({action:e.action,state:e.state,capability:e.capability,operations:e.operations,packageAdoption:e.packageAdoption})}async function Bt(e){let t=await Tt(ce.resolve(e.projectRoot)),r=e.transactionRoot===void 0?t:await Tt(ce.resolve(e.transactionRoot)),n=ar(e.plan);Pi(n);let i=ce.join(t,".dyyto","plans"),o=await ua(i).catch(s=>{if(s.code==="ENOENT")return[];throw s}),a=[];for(let s of o.filter(c=>c.endsWith(".json")).sort()){let c=ar(JSON.parse(await Fl(ce.join(i,s),"utf8")));Pi(c),!await $t(ce.join(r,".dyyto","transactions",c.planId)).then(()=>!0).catch(d=>d.code==="ENOENT"?!1:Promise.reject(d))&&Date.parse(c.expiresAt)>Date.parse(e.now)&&jm(c)===jm(n)&&a.push(c)}return a.sort((s,c)=>s.generatedAt.localeCompare(c.generatedAt)),a[0]!==void 0?a[0]:(await RR({projectRoot:t,plan:n}),n)}async function Mr(e){let t=await Tt(ce.resolve(e.projectRoot)),r=ce.join(t,".dyyto","plans",`${e.planId}.json`);try{let n=ar(JSON.parse(await Fl(r,"utf8")));if(Pi(n),n.planId!==e.planId)throw new Ie("PLAN_INTEGRITY_INVALID","Saved plan identity mismatch");return n}catch(n){throw n.code==="ENOENT"?new Ie("PLAN_NOT_FOUND","Saved plan was not found"):n}}async function ma(e,t=[],r,n=[]){let i=await Tt(ce.resolve(e)),o=r===void 0?i:await Tt(ce.resolve(r)),a=ce.join(i,".dyyto","plans"),s=await ua(a).catch(d=>{if(d.code==="ENOENT")return[];throw d}),c=[];for(let d of s.filter(p=>p.endsWith(".json")).sort()){let p=d.slice(0,-5),f=await Mr({projectRoot:i,planId:p}),u=await Ut({projectRoot:o,planId:p}),m=await $t(ce.join(i,".dyyto","metadata-transactions",p)).then(()=>!0).catch(g=>g.code==="ENOENT"?!1:Promise.reject(g));u?.state==="applied"&&!m&&!t.includes(f.planId)&&(!n.includes(f.capability.capabilityId)||f.action==="upgrade"||f.action==="remove"||f.action==="adopt"&&f.operations.every(g=>g.disposition==="noop"))&&c.push(f)}let l=ER(c);if(l===void 0)throw new Ie("PLAN_NOT_FOUND",c.length===0?"No applied plan is available for verification":"More than one applied plan requires inspection before verification");return l}function ER(e){if(e.length===1)return e[0];if(e.length===0)return;let t=e[0]?.capability.capabilityId;if(!(t===void 0||e.some(r=>r.capability.capabilityId!==t)))return[...e].sort((r,n)=>r.generatedAt.localeCompare(n.generatedAt)).at(-1)}async function Ul(e){let t=await Tt(ce.resolve(e)),r=ce.join(t,".dyyto","plans"),n=await ua(r).catch(o=>{if(o.code==="ENOENT")return[];throw o}),i=[];for(let o of n.filter(a=>a.endsWith(".json")).sort())i.push(await Mr({projectRoot:t,planId:o.slice(0,-5)}));return i}import{lstat as Vm,readFile as PR,readdir as NR,realpath as OR}from"node:fs/promises";import Ce from"node:path";import{homedir as Mm}from"node:os";var ft=class extends Error{code;constructor(t){super(t),this.code=t,this.name="WorkspaceTopologyError"}};async function Fm(e){let t=Ce.resolve(e),r=await Vm(t).catch(()=>null);if(!r?.isDirectory()||r.isSymbolicLink()||t===Ce.parse(t).root||t===Ce.resolve(Mm()))throw new ft("WORKSPACE_PATH_UNSAFE");let n=await OR(t);if(n!==t)throw new ft("WORKSPACE_PATH_UNSAFE");return n}async function Fr(e){let t=await Vm(e).catch(()=>null);if(t!==null){if(!t.isFile()||t.isSymbolicLink())throw new ft("WORKSPACE_PATH_UNSAFE");return PR(e)}}function Um(e){let t=e.split(/\r?\n/u),r=[],n=!1;for(let i of t){if(/^packages:\s*(?:#.*)?$/u.test(i)){n=!0;continue}if(!n)continue;let o=/^\s+-\s+["']?([^"'#]+?)["']?\s*(?:#.*)?$/u.exec(i);if(o){r.push(o[1].trim().replace(/^\.\//u,"").replace(/\/$/u,""));continue}if(i.trim()&&!/^\s/u.test(i))break}if(r.length===0)throw new ft("WORKSPACE_MANIFEST_INVALID");return r}function SR(e,t){if(e.includes("**")){let r=e.split("**",1)[0].replace(/\/$/u,"");return t===r||t.startsWith(`${r}/`)}if(e.endsWith("/*")){let r=e.slice(0,-2);return t.startsWith(`${r}/`)&&!t.slice(r.length+1).includes("/")}return e===t}async function On(e){let t=await Fm(e),r=await Fr(Ce.join(t,"pnpm-workspace.yaml"));if(!r)throw new ft("WORKSPACE_OWNER_MISSING");let n=new Map;for(let i of Um(r.toString("utf8"))){let o=[];if(i.endsWith("/*")&&!i.slice(0,-2).includes("*")){let a=i.slice(0,-2),s=await NR(Ce.join(t,...a.split("/")),{withFileTypes:!0}).catch(()=>[]);for(let c of s)c.isDirectory()&&!c.isSymbolicLink()&&o.push(`${a}/${c.name}`)}else if(!i.includes("*"))o.push(i);else throw new ft("WORKSPACE_MANIFEST_INVALID");for(let a of o){let s=await Fr(Ce.join(t,...a.split("/"),"package.json"));s&&n.set(a,s)}}return Object.freeze([...n].sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>Object.freeze({relativeRoot:i,bytes:o})))}async function zt(e){let t=await Fm(e);if(await Fr(Ce.join(t,"pnpm-lock.yaml")))return Object.freeze({schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"});if(await Fr(Ce.join(t,"pnpm-workspace.yaml")))throw new ft("WORKSPACE_NESTED_UNSUPPORTED");let r=Ce.dirname(t),n;for(;r!==Ce.parse(r).root&&r!==Ce.resolve(Mm());){let o=await Fr(Ce.join(r,"pnpm-workspace.yaml"));if(o){if(n)throw new ft("WORKSPACE_NESTED_UNSUPPORTED");n={root:r,manifest:o};break}r=Ce.dirname(r)}if(!n||!await Fr(Ce.join(n.root,"pnpm-lock.yaml"))||!await Fr(Ce.join(n.root,"project-capabilities.json")))throw new ft("WORKSPACE_OWNER_MISSING");let i=Ce.relative(n.root,t).split(Ce.sep).join("/");if(!i||i.startsWith("../")||Um(n.manifest.toString("utf8")).filter(o=>SR(o,i)).length!==1)throw new ft("WORKSPACE_UNIT_NOT_DECLARED");return Object.freeze({schemaVersion:1,mode:"pnpm-shared-lockfile",transactionRoot:n.root,unitRoot:t,unitRelativeRoot:i,unitImporterId:i,workspaceManifestPath:"pnpm-workspace.yaml",workspaceManifestDigest:h(n.manifest),lockfilePath:"pnpm-lock.yaml"})}var qm=new Set(["preparing","prepared","applying","recovery-required","recovering"]);async function ql(e){let t=await Ul(e);for(let r of t){let n=await Ut({projectRoot:e,planId:r.planId});if(n!==null&&qm.has(n.state))return{required:!0,kind:"filesystem",planId:r.planId,state:n.state}}for(let r of t){let n=await Ml({projectRoot:e,planId:r.planId});if(n!==null&&n.state!=="committed")return{required:!0,kind:"metadata",planId:r.planId,state:n.state}}return{required:!1}}async function DR(e){let t=await ql(e.projectRoot);if(!t.required)return{kind:"none",state:"not-required"};if(t.kind==="filesystem"){let r=await ki({projectRoot:e.projectRoot,planId:t.planId,now:e.now});return{kind:"filesystem",planId:t.planId,state:r.state}}return await Vl({projectRoot:e.projectRoot,planId:t.planId}),{kind:"metadata",planId:t.planId,state:"committed"}}async function Bm(e){let t=await DR(e);if(t.kind!=="none")return t;let r=await zt(e.projectRoot).catch(()=>{});if(r?.mode!=="pnpm-shared-lockfile")return t;let n=new Set((await Ul(e.projectRoot)).map(c=>c.planId)),i=await import("node:fs/promises").then(({readFile:c})=>c(`${r.transactionRoot}/.dyyto/transaction-lock.json`,"utf8")).catch(c=>c.code==="ENOENT"?void 0:Promise.reject(c));if(!i)return t;let o;try{let c=JSON.parse(i);if(typeof c.planId!="string"||!/^sha256:[a-f0-9]{64}$/u.test(c.planId)||!n.has(c.planId))return t;o=c.planId}catch{return t}let a=await Ut({projectRoot:r.transactionRoot,planId:o});if(!a||!qm.has(a.state))return t;let s=await ki({projectRoot:r.transactionRoot,planId:o,now:e.now});return{kind:"filesystem",planId:o,state:s.state}}import{lstat as jR,readFile as Bl,realpath as zm}from"node:fs/promises";import Ni from"node:path";var CR=new Set(["MIT","Apache-2.0","UNLICENSED"]),$R=new Set(["public","restricted","private"]),TR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,LR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function xR(e){let t;try{t=new URL(e)}catch{throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL")}if(t.protocol!=="https:"||t.username.length>0||t.password.length>0||t.search.length>0||t.hash.length>0||t.pathname==="/"||t.pathname.includes(".."))throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository must be a canonical public HTTPS URL");t.pathname=t.pathname.replace(/\/$/,"").replace(/\.git$/,"");let r=t.href.replace(/\/$/,"");if(r!==e)throw new M("CONSUMER_PROFILE_UNSUPPORTED","repository URL must already be canonical");return r}function Ur(e){if(e.profile?.id!=="workspace-node-application"&&e.profile?.id!=="workspace-web-application"&&e.profile?.id!=="workspace-expo-application"&&e.profile?.id!=="nextjs-full-stack-application")throw new M("CONSUMER_PROFILE_UNSUPPORTED","Manifest must select a workspace application profile");let t=Object.keys(e.profile.parameters),r=e.profile.parameters.name;if(t.length!==1||t[0]!=="name"||r===void 0||r.length>128||!/^[a-z0-9][a-z0-9._-]*$/.test(r))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Application parameters must contain one valid lowercase name");return{name:r}}function fr(e,t="standalone-npm-package"){if(e.profile?.id!==t)throw new M("CONSUMER_PROFILE_UNSUPPORTED",`Manifest must select ${t} profile`);let r=e.profile.parameters,n=Object.keys(r).sort(),i=e.capabilities.find(f=>f.capabilityId===`foundation.${t}`)?.version,o=i==="1.1.0"||i==="1.2.0"||t==="react-component-library",a=o?["license","name","publishAccess","repository","version"]:["license","name","publishAccess","version"];if(n.length!==a.length||n.some((f,u)=>f!==a[u]))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Standalone npm profile parameters must be exact");let{name:s,version:c,license:l,publishAccess:d,repository:p}=r;if(s===void 0||s.length>214||!TR.test(s))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package name must be a valid lowercase name");if(c===void 0||!LR.test(c))throw new M("CONSUMER_PROFILE_UNSUPPORTED","npm package version must be a stable SemVer");if(l===void 0||!CR.has(l))throw new M("CONSUMER_PROFILE_UNSUPPORTED","license must be MIT, Apache-2.0, or UNLICENSED");if(d===void 0||!$R.has(d))throw new M("CONSUMER_PROFILE_UNSUPPORTED","publish access must be public, restricted, or private");if(d==="restricted"&&!s.startsWith("@"))throw new M("CONSUMER_PROFILE_UNSUPPORTED","restricted access requires a scoped package name");return{name:s,version:c,license:l,publishAccess:d,...o?{repository:xR(p)}:{}}}function zl(e){let t={name:e.name,version:e.version,...e.publishAccess==="private"?{private:!0}:{},license:e.license,...e.repository===void 0?{}:{repository:{type:"git",url:e.repository}},type:"module",sideEffects:!1,main:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"}},files:["dist"],engines:{node:">=24.18.0 <25",pnpm:"11.21.0"},packageManager:"pnpm@11.21.0",scripts:{build:"tsc -p tsconfig.build.json",typecheck:"tsc --noEmit -p tsconfig.json",test:"vitest run",check:"corepack pnpm typecheck && corepack pnpm test",prepack:"corepack pnpm check && corepack pnpm build"},...e.publishAccess==="private"?{}:{publishConfig:{access:e.publishAccess}},devDependencies:{"@types/node":"24.10.13",typescript:"6.0.3",vitest:"4.1.10"}};return Buffer.from(`${JSON.stringify(t,null,2)}
|
|
24
|
-
`)}function
|
|
25
|
-
`)}function
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
28
|
-
`)}function
|
|
29
|
-
`)}async function
|
|
30
|
-
`),c=n.plan.operations.map(({disposition:u,conflictCode:m,...g})=>g);c.push({path:o,kind:"replace",ownership:"owned-file",baseDigest:h(a),desiredDigest:h(s)});let l=await Promise.all(c.map(u=>Gm(i,u.path))),d=Pe({action:"adopt",capability:{schemaVersion:1,capabilityId:e.release.release.capabilityId,version:e.release.release.version,integrity:e.release.release.integrity,assets:c.filter(u=>u.path!==o).map(u=>({path:u.path,ownership:u.ownership,desiredDigest:u.desiredDigest})),verifiers:e.release.release.verifiers.map(({id:u})=>({id:u,kind:"command"}))},changes:c,observedAssets:l,generatedAt:e.generatedAt,expiresAt:e.expiresAt}),p=new Map([...n.desiredContents,[o,s]]),f=new Map;for(let u of d.operations)u.disposition==="ready"&&u.kind!=="remove"&&f.set(u.path,p.get(u.path));return{...n,manifest:r,plan:d,desiredContents:f}}function Di(e){return qr(e,"workspace-npm-package")}function ji(e){return qr(e,"workspace-node-application")}function Ci(e){return qr(e,"workspace-web-application")}function $i(e){return qr(e,"workspace-expo-application")}async function Jm(e){if(e.currentLock!==void 0){let n=await Oi(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Oi({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Wm(e){if(e.currentLock!==void 0){let n=await Si(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Si({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Km(e){if(e.currentLock!==void 0){let n=await Sn(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Sn({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Ym(e){if(e.currentLock!==void 0){let n=await Di(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Di({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Hm(e){if(e.currentLock!==void 0){let n=await ji(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await ji({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Xm(e){if(e.currentLock!==void 0){let n=await Ci(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await Ci({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}async function Zm(e){if(e.currentLock!==void 0){let n=await $i(e);return{state:n.plan.state==="conflicted"?"drifted":"adopted",operations:n.plan.operations}}let t=await $i({...e,allowExistingWithoutLock:!0});return t.plan.operations.filter(n=>n.disposition!=="ready").length===0?{state:"planned",operations:t.plan.operations}:t.plan.operations.every(n=>n.disposition==="noop")?{state:"applied-unverified",operations:t.plan.operations}:{state:"drifted",operations:t.plan.operations}}import{lstat as lE,readFile as Da,realpath as dE}from"node:fs/promises";import Fi from"node:path";var At=class extends Error{code;constructor(t,r){super(r),this.code=t}},Br=/^sha256:[a-f0-9]{64}$/,qR=/^sha512-[A-Za-z0-9+/]{86}==$/,BR=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/,eg=/^registry\.[a-z0-9][a-z0-9.-]{1,126}$/,zR=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/,Qm=/^[a-z][a-z0-9._:-]{2,127}$/;function zr(e,t){let r=Object.keys(e).sort();return r.length===t.length&&r.every((n,i)=>n===[...t].sort()[i])}function GR(e){if(!zr(e,["registryId","tenantId","origin","scopes","authentication","capabilities","status"])||!eg.test(e.registryId)||!Qm.test(e.tenantId)||e.scopes.length===0||e.scopes.length>32||e.scopes.some((n,i)=>!/^@[a-z0-9][a-z0-9._-]*$/.test(n)||e.scopes.indexOf(n)!==i)||!zr(e.authentication,e.authentication.credentialRef===void 0?["kind"]:["kind","credentialRef"])||!zr(e.capabilities,["read","write","provenance","staging"])||!["workload-identity","short-lived-token","restricted-token","anonymous-test"].includes(e.authentication.kind)||e.authentication.kind==="anonymous-test"!=(e.authentication.credentialRef===void 0)||e.authentication.credentialRef!==void 0&&!Qm.test(e.authentication.credentialRef))return!1;let t;try{t=new URL(e.origin)}catch{return!1}if(t.username||t.password||t.search||t.hash||!t.pathname.endsWith("/")||t.pathname.includes("..")||/%2f|%5c/iu.test(t.pathname))return!1;let r=t.hostname==="127.0.0.1"||t.hostname==="localhost"||t.hostname==="[::1]";return e.authentication.kind==="anonymous-test"&&(!r||t.protocol!=="http:")||e.authentication.kind!=="anonymous-test"&&t.protocol!=="https:"?!1:typeof e.capabilities.read=="boolean"&&typeof e.capabilities.write=="boolean"&&typeof e.capabilities.provenance=="boolean"&&typeof e.capabilities.staging=="boolean"&&(e.status==="enabled"||e.status==="disabled")}function Wl(e){if(!GR(e))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,scopes:Object.freeze([...e.scopes]),authentication:Object.freeze({...e.authentication}),capabilities:Object.freeze({...e.capabilities}),revision:h(k(t))})}function Ti(e){let t=e;if(typeof t!="object"||t===null||!zr(t,["schemaVersion","revision","registryId","tenantId","origin","scopes","authentication","capabilities","status"])||t.schemaVersion!==1||!Br.test(t.revision))throw new At("REGISTRY_CONFIG_INVALID","Registry configuration is invalid");let{schemaVersion:r,revision:n,...i}=t;if(Wl(i).revision!==n)throw new At("REGISTRY_CONFIG_INVALID","Registry configuration has been modified");return t}function JR(e,t){let r,n;try{r=new URL(e.origin),n=new URL(t)}catch{return!1}return n.username||n.password||n.search||n.hash||n.pathname!==r.pathname||n.protocol!==r.protocol||n.hostname!==r.hostname?!1:e.authentication.kind==="anonymous-test"||n.port===r.port}function Kl(e,t){let r=Ti(t);if(!zr(e,["registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||e.registryId!==r.registryId||e.registryConfigRevision!==r.revision||!JR(r,e.origin)||Number.isNaN(Date.parse(e.resolvedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.resolvedAt))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let n={schemaVersion:1,...e};return Object.freeze({...n,bindingDigest:h(k(n))})}function tg(e,t){let r=e;if(typeof r!="object"||r===null||!zr(r,["schemaVersion","bindingDigest","registryId","registryConfigRevision","origin","resolvedAt","expiresAt"])||r.schemaVersion!==1||!Br.test(r.bindingDigest))throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding is invalid");let{schemaVersion:n,bindingDigest:i,...o}=r;if(Kl(o,t).bindingDigest!==i)throw new At("REGISTRY_ENDPOINT_BINDING_INVALID","Registry endpoint binding has been modified");return r}function WR(e){let t=["registryId","registryConfigRevision","packageName","version","integrity","tarballDigest","access","provenance","sourceDeliveryReceiptId","verifiedAt",...e.verificationIdentityDigest===void 0?[]:["verificationIdentityDigest"]];return zr(e,t)&&eg.test(e.registryId)&&Br.test(e.registryConfigRevision)&&zR.test(e.packageName)&&BR.test(e.version)&&qR.test(e.integrity)&&Br.test(e.tarballDigest)&&Br.test(e.sourceDeliveryReceiptId)&&!Number.isNaN(Date.parse(e.verifiedAt))&&(e.access==="restricted"||e.access==="private")&&["registry-attested","external-attested","local-readback-verified","development-readback-verified","registry-verified-no-attestation"].includes(e.provenance)&&(e.provenance!=="registry-verified-no-attestation"?e.verificationIdentityDigest!==void 0&&Br.test(e.verificationIdentityDigest):e.verificationIdentityDigest===void 0)}function Yl(e){if(!WR(e))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function rg(e){let t=e;if(typeof t!="object"||t===null||t.schemaVersion!==1||!Br.test(t.receiptId))throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt is invalid");let{schemaVersion:r,receiptId:n,...i}=t;if(Yl(i).receiptId!==n)throw new At("PACKAGE_RECEIPT_INVALID","Package delivery receipt has been modified");return t}var Oe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionEvidenceError"}};function Li(e){return h(k(e))}var Hl=/^sha256:[a-f0-9]{64}$/u,KR=/^sha512-[A-Za-z0-9+/]{86}==$/u,YR=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u,ga=/^[a-z0-9][a-z0-9._/-]{0,255}$/u,HR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,XR=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*@[0-9][a-zA-Z0-9.+()_@/-]*$/u;function ya(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function ng(e){return h(k(e))}function ig(e){let t=Buffer.from(e.desiredLockfile),r=h(t),n={schemaVersion:1,workerReleaseId:e.workerReleaseId,workerStateRevision:e.workerStateRevision,requestDigest:e.requestDigest,pnpmVersion:e.pnpmVersion,desiredLockDigest:r,importerFacts:e.importerFacts.map(a=>({...a})),packageFacts:e.packageFacts.map(a=>({...a})),snapshotClosureDigest:e.snapshotClosureDigest,networkObservationDigest:e.networkObservationDigest,cacheObservation:{...e.cacheObservation},commandDigest:e.commandDigest,completedAt:e.completedAt,expiresAt:e.expiresAt},i={...n,jobId:ng(n),desiredLockfile:t};og(i);let o={...i,importerFacts:Object.freeze(i.importerFacts.map(a=>Object.freeze({...a}))),packageFacts:Object.freeze(i.packageFacts.map(a=>Object.freeze({...a}))),cacheObservation:Object.freeze({...i.cacheObservation})};return Object.freeze(o)}function og(e){if(!ya(e,["schemaVersion","jobId","workerReleaseId","workerStateRevision","requestDigest","pnpmVersion","desiredLockfile","desiredLockDigest","importerFacts","packageFacts","snapshotClosureDigest","networkObservationDigest","cacheObservation","commandDigest","completedAt","expiresAt"])||e.schemaVersion!==1||e.pnpmVersion!=="11.21.0")throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(![e.jobId,e.workerStateRevision,e.requestDigest,e.desiredLockDigest,e.snapshotClosureDigest,e.networkObservationDigest,e.commandDigest,e.cacheObservation.preimageRevision,e.cacheObservation.desiredRevision,e.cacheObservation.writesDigest].every(i=>Hl.test(i)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!ga.test(e.workerReleaseId)||!ga.test(e.cacheObservation.namespace)||e.desiredLockfile.byteLength===0||h(e.desiredLockfile)!==e.desiredLockDigest||Number.isNaN(Date.parse(e.completedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.completedAt))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(!ya(e.cacheObservation,["namespace","preimageRevision","desiredRevision","writesDigest"])||e.importerFacts.length===0||e.packageFacts.length===0)throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.importerFacts.some(i=>!ya(i,["importerId","manifestDigest","preimageDigest","desiredDigest"])||i.importerId!=="."&&!ga.test(i.importerId)||![i.manifestDigest,i.preimageDigest,i.desiredDigest].every(o=>Hl.test(o))))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(e.packageFacts.some(i=>!ya(i,["identity","packageName","version","integrity","registryId","managed","edgesDigest"])||!XR.test(i.identity)||!HR.test(i.packageName)||!ga.test(i.registryId)||!YR.test(i.version)||!KR.test(i.integrity)||typeof i.managed!="boolean"||!Hl.test(i.edgesDigest)))throw new Oe("RESOLUTION_EVIDENCE_INVALID");if(new Set(e.importerFacts.map(i=>i.importerId)).size!==e.importerFacts.length||new Set(e.packageFacts.map(i=>i.identity)).size!==e.packageFacts.length)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let{jobId:t,desiredLockfile:r,...n}=e;if(ng(n)!==e.jobId)throw new Oe("RESOLUTION_EVIDENCE_INVALID")}function Xl(e,t){if(og(e),Date.parse(t.now)>Date.parse(e.expiresAt))throw new Oe("RESOLUTION_EVIDENCE_EXPIRED");if(e.requestDigest!==t.requestDigest||e.pnpmVersion!==t.pnpmVersion||e.workerReleaseId!==t.workerReleaseId)throw new Oe("RESOLUTION_EVIDENCE_INVALID");let r=e.importerFacts.find(n=>n.importerId===t.targetImporterId);if(!r||r.manifestDigest!==t.targetManifestDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT");for(let n of t.preservedImporterDigests){let i=e.importerFacts.find(o=>o.importerId===n.importerId);if(!i||i.preimageDigest!==n.preimageDigest||i.desiredDigest!==n.preimageDigest)throw new Oe("RESOLUTION_EVIDENCE_IMPORTER_DRIFT")}for(let n of t.managedSources){let i=e.packageFacts.filter(o=>o.managed&&o.packageName===n.packageName);if(i.length!==1||i[0].registryId!==n.registryId||i[0].version!==n.version||i[0].integrity!==n.integrity)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH")}if(e.packageFacts.filter(n=>n.managed).length!==t.managedSources.length)throw new Oe("RESOLUTION_EVIDENCE_SOURCE_MISMATCH");return e}var H=class extends Error{code;constructor(t,r){super(t,r),this.code=t,this.name="PackageAdoptionError"}};function Ia(e){let t={sourceChannel:e.sourceChannel,packageJsonPreimageDigest:e.packageJsonPreimageDigest,desiredPackageJsonDigest:e.desiredPackageJsonDigest,lockfilePreimage:{...e.lockfilePreimage},desiredLockfileDigest:e.desiredLockfileDigest,registryRevisions:e.registryRevisions.map(r=>({...r})),endpointBindings:e.endpointBindings.map(({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:o})=>({registryId:r,registryConfigRevision:n,bindingDigest:i,expiresAt:o})),sources:e.sources.map(r=>({...r})),installPolicy:{...e.installPolicy}};if(e.schemaVersion===1)return{schemaVersion:1,...t};if(!e.topology||!e.preservedDependencies||!e.preservedImporterDigests)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return{schemaVersion:2,...t,topology:{...e.topology},preservedDependencies:e.preservedDependencies.map(r=>({...r})),preservedImporterDigests:e.preservedImporterDigests.map(r=>({...r}))}}var ha=/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u,ag=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;function Zl(e){return Array.isArray(e)?`[${e.map(Zl).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Zl(r)}`).join(",")}}`:JSON.stringify(e)}function Gt(e){let t;try{t=JSON.parse(Buffer.from(e).toString("utf8"))}catch{throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}if(!t||typeof t!="object"||Array.isArray(t))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return t}function mt(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let t=Object.entries(e);if(t.some(([,r])=>typeof r!="string"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");return Object.fromEntries(t)}function wa(e){for(let t of[mt(e.dependencies),mt(e.devDependencies),mt(e.optionalDependencies)])for(let[r,n]of Object.entries(t))if(r.startsWith("@aipt/")&&(!ha.test(n)||ag.test(n)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}var ZR=["dependencies","devDependencies","optionalDependencies"];function va(e,t){let r=[];for(let n of ZR)for(let[i,o]of Object.entries(mt(e[n]))){if(t.has(i)){if(!ha.test(o))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");continue}if(/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(o))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");r.push({section:n,packageName:i,specifier:o})}return r.sort((n,i)=>`${n.section}:${n.packageName}`.localeCompare(`${i.section}:${i.packageName}`))}function Ql(e){let t=Gt(e.packageJson);wa(t);let r=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="runtime").map(({packageName:o,version:a})=>[o,a])),n=Object.fromEntries(e.release.packageSources.filter(({usage:o})=>o==="development").map(({packageName:o,version:a})=>[o,a])),i={...t,...Object.keys(r).length?{dependencies:{...mt(t.dependencies),...r}}:{},...Object.keys(n).length?{devDependencies:{...mt(t.devDependencies),...n}}:{}};return Buffer.from(`${JSON.stringify(i,null,2)}
|
|
31
|
-
`)}function
|
|
32
|
-
`)}function
|
|
33
|
-
`)}function
|
|
34
|
-
`)}function
|
|
35
|
-
`),c=e.endpointBindings.filter(
|
|
36
|
-
`),p=g=>`${e.topology.unitRelativeRoot}/${g}`,f=e.endpointBindings.filter(g=>n.some(y=>y.registryId===g.registryId)),u=[{path:p("project-capabilities.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.projectManifest),desiredDigest:h(d)},{path:p("package.json"),kind:"replace",ownership:"owned-file",baseDigest:h(e.packageJson),desiredDigest:h(i)},{path:e.topology.lockfilePath,kind:"replace",ownership:"owned-file",baseDigest:h(e.currentLockfile),desiredDigest:s.desiredLockDigest},...t.assets.map(g=>({path:p(g.path),kind:"remove",ownership:g.ownership??"owned-file",baseDigest:g.digest}))];return{plan:Pe({action:"remove",capability:{schemaVersion:1,capabilityId:e.release.capabilityId,version:e.release.version,integrity:e.release.integrity,assets:t.assets.map(g=>({path:g.path,ownership:g.ownership??"owned-file",desiredDigest:g.digest})),verifiers:e.release.verifiers.map(g=>({id:g.id,kind:"file-digest"}))},changes:u,observedAssets:[...e.observedAssets],generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageAdoption:{schemaVersion:2,sourceChannel:t.packageAdoption.sourceChannel??"production",packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(i),lockfilePreimage:{kind:"present",digest:h(e.currentLockfile)},desiredLockfileDigest:s.desiredLockDigest,registryRevisions:t.packageAdoption.registryRevisions.map(g=>({...g})),endpointBindings:f.map(({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})=>({registryId:g,registryConfigRevision:y,bindingDigest:w,expiresAt:A})),sources:n.map(g=>({...g})),installPolicy:{ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1},topology:a,preservedDependencies:va(Gt(i),new Set(e.remainingSources.map(g=>g.packageName))),preservedImporterDigests:e.preservedImporterDigests.map(g=>({...g}))}}),desiredContents:new Map([[p("project-capabilities.json"),d],[p("package.json"),i],[e.topology.lockfilePath,s.desiredLockfile]]),removedSources:n,transactionRoot:e.transactionRoot}}function ba(e,t){let r=e.release.availability,n=r.maturity==="available"&&r.visibility==="catalog-consumers"&&r.sourceState==="registry-verified",i=r.maturity==="candidate"&&r.visibility==="maintainers-only"&&r.sourceState==="development-registry";if((t==="production"?!n:!i)||e.release.packageSources.length===0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let o=Gt(e.packageJson),a=e.desiredBasePackageJson??e.packageJson,s=Gt(a),c="topology"in e,l=c?va(s,new Set(e.release.packageSources.map(I=>I.packageName))):void 0;c||wa(o),c||wa(s);let d=new Map(e.registryConfigs.map(I=>{let _=Ti(I);return[_.registryId,_]})),p=new Map(e.endpointBindings.map(I=>{let _=d.get(I.registryId);if(_===void 0)throw new H("PACKAGE_SOURCE_NOT_FOUND");let S=tg(I,_);return[S.registryId,S]})),f=new Map(e.receipts.map(I=>{let _=rg(I);return[_.receiptId,_]})),u=new Map(e.inspections.map(I=>[`${I.registryId}:${I.packageName}@${I.version}`,I])),m=new Map(e.release.packageSources.map(I=>[I.packageName,I])),g=c?Xl(e.resolutionEvidence,{requestDigest:Li({schemaVersion:1,pnpmVersion:"11.21.0",topology:e.topology,currentLockfileDigest:e.currentLockfile===void 0?null:h(e.currentLockfile),desiredPackageJsonDigest:h(xi({release:e.release,packageJson:a})),sources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_}))}),pnpmVersion:"11.21.0",workerReleaseId:e.resolutionWorkerReleaseId,targetImporterId:e.topology.unitImporterId,targetManifestDigest:h(xi({release:e.release,packageJson:a})),preservedImporterDigests:e.preservedImporterDigests.map(({importerId:I,preimageDigest:_})=>({importerId:I,preimageDigest:_})),managedSources:e.release.packageSources.map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T})),now:e.generatedAt}):void 0,y=c?{lockfile:g.desiredLockfile,packages:g.packageFacts.filter(I=>I.managed).map(({registryId:I,packageName:_,version:S,integrity:T})=>({registryId:I,packageName:_,version:S,integrity:T}))}:e.lockResolution;if(y.lockfile.byteLength===0||y.packages.length!==e.release.packageSources.length)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`managed resolution count ${y.packages.length}/${e.release.packageSources.length}`)});let w=new Map(y.packages.map(I=>[I.packageName,I]));for(let I of e.release.packageSources){let _=d.get(I.registryId),S=p.get(I.registryId),T=f.get(I.deliveryReceiptId),ue=u.get(`${I.registryId}:${I.packageName}@${I.version}`),$=w.get(I.packageName);if(T!==void 0&&(t==="production"&&T.provenance==="development-readback-verified"||t==="development"&&T.provenance!=="development-readback-verified"))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");if(!_||!S||Date.parse(S.expiresAt)<=Date.parse(e.expiresAt)||_.status!=="enabled"||!_.scopes.some(P=>I.packageName.startsWith(`${P}/`))||!T||!ue||!$)throw new H("PACKAGE_SOURCE_NOT_FOUND");if(T.registryId!==I.registryId||T.registryConfigRevision!==_.revision||T.packageName!==I.packageName||T.version!==I.version||T.integrity!==I.integrity||T.tarballDigest!==I.tarballDigest||ue.integrity!==I.integrity||ue.tarballDigest!==I.tarballDigest||ue.deliveryReceiptId!==I.deliveryReceiptId||$.registryId!==I.registryId||$.version!==I.version||$.integrity!==I.integrity)throw new H("PACKAGE_SOURCE_INTEGRITY_MISMATCH");if(!ha.test(I.version)||ue.lifecycleScripts.length>0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");for(let[P,Z]of Object.entries(ue.dependencies)){let se=m.get(P);if(P.startsWith("@aipt/")&&(!se||se.version!==Z||!ha.test(Z)))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION",{cause:new Error(`undeclared internal dependency ${I.packageName}->${P}@${Z}`)});if(ag.test(Z))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}}let A=c?xi({release:e.release,packageJson:a}):Ql({release:e.release,packageJson:a}),b={schemaVersion:c?2:1,sourceChannel:t,capabilityId:e.release.capabilityId,capabilityVersion:e.release.version,capabilityIntegrity:e.release.integrity,consumerProfile:e.consumerProfile,generatedAt:e.generatedAt,expiresAt:e.expiresAt,packageJsonPreimageDigest:h(e.packageJson),desiredPackageJsonDigest:h(A),lockfilePreimage:Object.freeze(e.currentLockfile===void 0?{kind:"absent"}:{kind:"present",digest:h(e.currentLockfile)}),desiredLockfileDigest:h(y.lockfile),registryRevisions:Object.freeze([...d.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,revision:_})=>Object.freeze({registryId:I,revision:_})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),endpointBindings:Object.freeze([...p.values()].filter(I=>e.release.packageSources.some(_=>_.registryId===I.registryId)).map(({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:T})=>Object.freeze({registryId:I,registryConfigRevision:_,bindingDigest:S,expiresAt:T})).sort((I,_)=>I.registryId.localeCompare(_.registryId))),sources:Object.freeze(e.release.packageSources.map(I=>Object.freeze({...I}))),installPolicy:Object.freeze({ignoreScripts:!0,allowWorkspaceProtocol:!1,allowPublicRegistryFallback:!1}),...c?{topology:Object.freeze({...e.topology}),preservedDependencies:Object.freeze(l.map(I=>Object.freeze({...I}))),preservedImporterDigests:Object.freeze(e.preservedImporterDigests.map(I=>Object.freeze({...I})))}:{}},R=h(Zl(b));return Object.freeze({...b,planId:R,desiredPackageJson:A,desiredLockfile:y.lockfile})}function ka(e){return ba(e,"production")}function _a(e){return ba(e,"development")}function Aa(e){return ba(e,"production")}function Ra(e){return ba(e,"development")}function QR(e){let t=e.packageAdoption;if(t===void 0)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let r=t.schemaVersion===2&&t.topology.mode==="pnpm-shared-lockfile"?`${t.topology.unitRelativeRoot}/package.json`:"package.json",n=t.schemaVersion===2?t.topology.lockfilePath:"pnpm-lock.yaml",i=e.operations.filter(({path:d})=>d===r),o=e.operations.filter(({path:d})=>d===n);if(i.length!==1||o.length!==1)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let a=i[0],s=o[0],c=a.kind==="replace"&&a.baseDigest===t.packageJsonPreimageDigest&&a.desiredDigest===t.desiredPackageJsonDigest&&a.disposition==="ready",l=s.kind===(t.lockfilePreimage.kind==="absent"?"create":"replace")&&(t.lockfilePreimage.kind==="absent"?s.baseDigest===void 0:s.baseDigest===t.lockfilePreimage.digest)&&s.desiredDigest===t.desiredLockfileDigest&&s.disposition==="ready";if(!c||!l)throw new H("PACKAGE_SOURCE_POLICY_VIOLATION")}async function lg(e){QR(e.plan);let t=!1;try{await e.packageManager.prepare({projectRoot:e.projectRoot,plan:e.plan});let r=await lr({projectRoot:e.projectRoot,plan:e.plan,approvedPlanId:e.approvedPlanId,desiredContents:e.desiredContents,now:e.now}),n=await dr(r);return t=!0,await e.packageManager.install({projectRoot:e.projectRoot,plan:e.plan}),await e.packageManager.verify({projectRoot:e.projectRoot,plan:e.plan}),n}catch(r){if(t){await Ol({projectRoot:e.projectRoot,planId:e.plan.planId,now:new Date().toISOString(),failureCode:"PACKAGE_INSTALL_FAILED"});try{await e.packageManager.restore({projectRoot:e.projectRoot,plan:e.plan})}catch(n){throw new H("PACKAGE_INSTALL_RECOVERY_REQUIRED",{cause:n})}}throw r}finally{await e.packageManager.cleanup({projectRoot:e.projectRoot,plan:e.plan})}}var fg=nn(Dr(),1);var mg=["workspace-node-application","workspace-web-application","nextjs-full-stack-application"],gg="^[a-z0-9][a-z0-9._-]{0,127}$",rd="^[A-Z][A-Z0-9_]{0,127}$",dg="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*[\\u0000-\\u001f]).+$",eE={$id:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",type:"object",additionalProperties:!1,required:["$schema","schemaVersion","kind","application","configDirectory","bindings"],properties:{$schema:{const:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json"},schemaVersion:{const:1},kind:{const:"ApplicationConfigContract"},application:{type:"object",additionalProperties:!1,required:["id","profile"],properties:{id:{type:"string",pattern:gg},profile:{enum:mg}}},configDirectory:{type:"object",additionalProperties:!1,required:["rootEnvironmentVariable","relativeDirectory","environmentFile","materializationOwner"],properties:{rootEnvironmentVariable:{const:"IDP_CONFIG_DIR"},relativeDirectory:{type:"string",pattern:"^applications/[a-z0-9][a-z0-9._-]{0,127}$"},environmentFile:{const:".env"},materializationOwner:{const:"external-deployment-control-plane"}}},bindings:{type:"array",maxItems:128,items:{oneOf:[{type:"object",additionalProperties:!1,required:["name","kind","required"],properties:{name:{type:"string",pattern:rd},kind:{const:"value"},required:{type:"boolean"},default:{type:"string",maxLength:1024}}},{type:"object",additionalProperties:!1,required:["name","kind","required","file"],properties:{name:{type:"string",pattern:rd},kind:{const:"secret-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:dg},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:rd},kind:{const:"certificate-file"},required:{type:"boolean"},file:{type:"string",maxLength:512,pattern:dg}}}]}}}},pg=new fg.Ajv2020({allErrors:!0,strict:!0}).compile(eE),ug=/(?:^|_)(?:PASSWORD|PASSWD|TOKEN|SECRET|PRIVATE_KEY|ACCESS_KEY|API_KEY|DATABASE_URL|CONNECTION_STRING|DSN|AUTHORIZATION|CREDENTIALS?)(?:_|$)/u,tE=/(?:^|_)(?:PRIVATE_KEY|PRIVATE|KEYPAIR|KEYSTORE|PKCS12|P12|PFX|KEY)(?:_|$)/u,Je=class extends Error{code;issues;constructor(t,r,n=[]){super(r),this.code=t,this.issues=n}};function yg(e){let t=W(e),r=t.profile?.id;if(!mg.includes(r))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","\u73AF\u5883\u914D\u7F6E\u5951\u7EA6\u53EA\u652F\u6301\u53EF\u90E8\u7F72 Application Profile\u3002");let n=t.profile?.parameters??{},i=n.name;if(Object.keys(n).length!==1||typeof i!="string"||!new RegExp(gg,"u").test(i))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","Application Manifest \u5FC5\u987B\u5305\u542B\u552F\u4E00\u4E14\u5408\u6CD5\u7684 name \u53C2\u6570\u3002");return{id:i,profile:r}}function Ea(e,t){if(!pg(e))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","Application ConfigContract \u4E0D\u7B26\u5408 v1 Schema\u3002",pg.errors??[]);let r=e;if(r.configDirectory.relativeDirectory!==`applications/${r.application.id}`)throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID","Config Dir \u76F8\u5BF9\u76EE\u5F55\u5FC5\u987B\u7531 Application identity \u552F\u4E00\u786E\u5B9A\u3002");let n=new Set,i=new Set;for(let l of r.bindings){if(n.has(l.name))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u73AF\u5883 Binding \u540D\u79F0\u91CD\u590D\uFF1A${l.name}`);if(n.add(l.name),l.kind==="value"){if(ug.test(l.name))throw new Je("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 Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6587\u4EF6 Binding ${l.name} \u5FC5\u987B\u4EE5 _FILE \u7ED3\u5C3E\u3002`);let d=l.kind==="secret-file"?"secrets/":"certs/";if(l.kind==="certificate-file"&&(ug.test(l.name)||tE.test(l.name)))throw new Je("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 p=l.file.split("/");if(!l.file.startsWith(d)||p.some(f=>f===""||f==="."||f===".."))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`${l.name} \u5FC5\u987B\u4F4D\u4E8E ${d} \u4E0B\u7684\u5177\u4F53\u6587\u4EF6\u3002`);if(i.has(l.file))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u914D\u7F6E\u6587\u4EF6 Binding \u8DEF\u5F84\u91CD\u590D\uFF1A${l.file}`);i.add(l.file)}let o=new Map(r.bindings.map(l=>[l.name,l])),a=new Set,s=new Set,c=l=>{if(s.has(l))return;if(a.has(l))throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`\u6D3E\u751F\u914D\u7F6E\u5B58\u5728\u5FAA\u73AF\u5F15\u7528\uFF1A${l}`);a.add(l);let d=o.get(l);if(d?.kind==="secret-file"&&d.provisioning?.strategy==="derived")for(let p of d.provisioning.template.matchAll(/\$\{([A-Z][A-Z0-9_]{0,127})\}/gu)){let f=p[1],u=o.get(f);if(!u||u.kind==="certificate-file")throw new Je("APPLICATION_CONFIG_CONTRACT_INVALID",`${l}\u5F15\u7528\u672A\u77E5\u6216\u4E0D\u5141\u8BB8\u7684\u914D\u7F6E\uFF1A${f}`);c(f)}a.delete(l),s.add(l)};for(let l of o.keys())c(l);if(t!==void 0){let l=yg(t);if(r.application.id!==l.id||r.application.profile!==l.profile)throw new Je("APPLICATION_CONFIG_IDENTITY_MISMATCH","ConfigContract \u7684\u5E94\u7528\u8EAB\u4EFD\u6216 Profile \u4E0E Project Manifest \u4E0D\u4E00\u81F4\u3002")}return r}function Pa(e){let t=yg(e),r=t.profile==="workspace-web-application"?[]:[{name:"PORT",kind:"value",required:!1,default:"3000"}],n={$schema:"https://schemas.dyyto.dev/platform/application-config-contract-v1.json",schemaVersion:1,kind:"ApplicationConfigContract",application:t,configDirectory:{rootEnvironmentVariable:"IDP_CONFIG_DIR",relativeDirectory:`applications/${t.id}`,environmentFile:".env",materializationOwner:"external-deployment-control-plane"},bindings:r};return Ea(n,e),Buffer.from(`${JSON.stringify(n,null,2)}
|
|
37
|
-
`)}import{createHash as
|
|
38
|
-
`)}function Ig(e,t){let r=e;if(r?.$schema!=="https://schemas.dyyto.dev/platform/application-config-binding-v1.json"||r.schemaVersion!==1||r.kind!=="ApplicationConfigBinding"||r.environment?.name!=="local"||r.configDirectory?.rootEnvironmentVariable!=="APP_CONFIG_DIR"||r.configDirectory.scope!=="application-environment"||r.contract?.path!=="config/application-config.json"||r.materializationOwner!=="external-deployment-control-plane")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u4E0D\u7B26\u5408v1\u5408\u540C\u3002");if(!r.application||typeof r.application.id!="string"||typeof r.application.profile!="string")throw new he("APPLICATION_CONFIG_BINDING_INVALID","ApplicationConfigBinding\u5E94\u7528\u8EAB\u4EFD\u65E0\u6548\u3002");if(t!==void 0){let n=wg(t);if(r.application.id!==n.id||r.application.profile!==n.profile)throw new he("APPLICATION_CONFIG_BINDING_IDENTITY_MISMATCH","ApplicationConfigBinding\u4E0EProject Manifest\u8EAB\u4EFD\u4E0D\u4E00\u81F4\u3002")}return r}function iE(e){let t={};for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(!i||i.startsWith("#"))continue;let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i),a=o?.[1],s=o?.[2];if(!a||s===void 0||a in t)throw new he("APPLICATION_CONFIG_ENV_INVALID",`.env:${r+1}\u683C\u5F0F\u65E0\u6548\u6216\u53D8\u91CF\u91CD\u590D\u3002`);t[a]=s.trim().replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/u,"$1$2")}return t}function Oa(e){return`sha256:${rE("sha256").update(e).digest("hex")}`}async function hg(e,t,r){let n=await Vi(e).catch(()=>null);if(!n||!n.isFile()||n.isSymbolicLink()||n.nlink!==1||!r&&n.size===0||(n.mode&511&-385)!==0)throw new he("APPLICATION_CONFIG_FILE_INVALID",`${t}\u4E0D\u5B58\u5728\u3001\u4E3A\u7A7A\u3001\u4E0D\u662F\u5B89\u5168\u666E\u901A\u6587\u4EF6\u6216\u6743\u9650\u8D85\u8FC70600\u3002`);return n}var oE=new Set(["APPLICATION_CONFIG_FILE_INVALID","APPLICATION_CONFIG_REFERENCE_CHANGED"]),aE=new Set(["APP_CONFIG_DIR_REQUIRED","ENOENT"]);async function nd({projectRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e)),n=X.join(r,"config/application-config.json");if(!await Vi(n).catch(()=>null))return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"not-declared",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_CONTRACT_NOT_DECLARED",entries:[]};try{let[o,a]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(n)]),s=JSON.parse(o.toString("utf8")),c=Ea(JSON.parse(a.toString("utf8")),s),l=await gt(X.join(r,".dyyto/application-config-binding.json")).catch(p=>{if(p.code==="ENOENT")return null;throw p});if(!l)return{schemaVersion:1,application:c.application.id,environment:"local",configDirectory:null,contractDigest:Oa(a),state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:"APPLICATION_CONFIG_BINDING_NOT_DECLARED",entries:[]};let d=Ig(JSON.parse(l.toString("utf8")),s);try{let p=await Mi({projectRoot:r,environment:t}),f=p.entries.filter(m=>m.required&&!m.configured).map(m=>m.name),u=f.length?"incomplete":"ready";return{schemaVersion:1,...p,state:u,needsConfigInit:u==="incomplete",missingBindings:f}}catch(p){let f=p instanceof he?p.code:p.code??"APPLICATION_CONFIG_UNKNOWN",u=aE.has(f)?"missing":oE.has(f)?"incomplete":"invalid",m=await bg(r,d.application.id,t).catch(()=>{});return{schemaVersion:1,application:d.application.id,environment:"local",configDirectory:m??null,contractDigest:Oa(a),state:u,needsConfigInit:u==="missing"||u==="incomplete",missingBindings:u==="missing"?c.bindings.filter(g=>g.required).map(g=>g.name):[],issueCode:f,entries:[]}}}catch(o){let a=o instanceof he||o instanceof Error&&"code"in o?String(o.code):"APPLICATION_CONFIG_INVALID";return{schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:a,entries:[]}}}var sE=new Set(["workspace-node-application","workspace-web-application","workspace-expo-application","nextjs-full-stack-application"]);async function vg({workspaceRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e));if(W(JSON.parse(await gt(X.join(r,"project-capabilities.json"),"utf8"))).profile?.id!=="workspace-root")throw new he("APPLICATION_CONFIG_WORKSPACE_INVALID","\u914D\u7F6E\u5C31\u7EEA\u5EA6\u5DE5\u4F5C\u533A\u5FC5\u987B\u91C7\u7528workspace-root Profile\u3002");let i=await On(r),o=[];for(let s of i){let c=X.join(r,...s.relativeRoot.split("/")),l=X.join(c,"project-capabilities.json"),d=await gt(l,"utf8").catch(()=>null),p=await Vi(X.join(c,"config/application-config.json")).then(m=>m.isFile()&&!m.isSymbolicLink()).catch(()=>!1),f="";if(d!==null)try{f=W(JSON.parse(d)).profile?.id??""}catch{p&&(f="invalid-application")}if(!sE.has(f)&&!p)continue;let u=await nd({projectRoot:c,environment:t}).catch(m=>({schemaVersion:1,application:null,environment:"local",configDirectory:null,contractDigest:null,state:"invalid",needsConfigInit:!1,missingBindings:[],issueCode:m instanceof Error&&"code"in m?String(m.code):"APPLICATION_CONFIG_UNIT_INSPECTION_FAILED",entries:[]}));o.push({unit:s.relativeRoot,readiness:u})}let a=s=>o.filter(c=>c.readiness.state===s).length;return Object.freeze({schemaVersion:1,scope:"workspace",workspaceRoot:r,summary:Object.freeze({total:o.length,ready:a("ready"),missing:a("missing"),incomplete:a("incomplete"),invalid:a("invalid"),notDeclared:a("not-declared"),needsConfigInit:o.filter(s=>s.readiness.needsConfigInit).length}),applications:Object.freeze(o.map(s=>Object.freeze(s)))})}async function cE(e,t,r){let n=X.dirname(e);for(;n!==X.dirname(n);){try{if(JSON.parse(await gt(X.join(n,"project-capabilities.json"),"utf8")).profile?.id==="workspace-root"){let o=X.relative(n,e);if(!/^(?:apps|packages)[/\\][a-z0-9][a-z0-9._-]*$/u.test(o))throw new he("APPLICATION_CONFIG_WORKSPACE_UNIT_INVALID","Workspace\u5E94\u7528\u5FC5\u987B\u4F4D\u4E8Eapps/<name>\u6216packages/<name>\u3002");return X.join(X.basename(n),o,r)}}catch(i){if(i instanceof he)throw i}n=X.dirname(n)}return X.join(t,r)}async function bg(e,t,r){let n=r.DYYTO_WORKBENCH_PROJECT_BINDINGS_FILE;if(n){if(!X.isAbsolute(n))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84\u3002");let o=await Vi(n).catch(()=>null);if(!o?.isFile()||o.isSymbolicLink()||o.nlink!==1||(o.mode&511&-385)!==0)throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u6587\u4EF6\u4E0D\u5B89\u5168\u3002");let a=JSON.parse(await gt(n,"utf8"));if(a.schemaVersion!==1||!Array.isArray(a.projects))throw new he("WORKBENCH_PROJECT_BINDINGS_INVALID","\u5DE5\u4F5C\u53F0\u9879\u76EEBinding\u7248\u672C\u65E0\u6548\u3002");let s=a.projects.filter(c=>typeof c.containerPath=="string"&&typeof c.configDirectory=="string"&&(e===c.containerPath||e.startsWith(`${c.containerPath}${X.sep}`))).sort((c,l)=>l.containerPath.length-c.containerPath.length);if(s[0])return s[0].configDirectory}let i=r.APP_CONFIG_DIR;if(i){if(!X.isAbsolute(i))throw new he("APP_CONFIG_DIR_REQUIRED","APP_CONFIG_DIR\u5FC5\u987B\u662F\u7EDD\u5BF9\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\u3002");return X.join(i,await cE(e,t,r.DYYTO_APPLICATION_ENVIRONMENT??"local"))}}async function Mi({projectRoot:e,environment:t=process.env}){let r=await Na(X.resolve(e)),[n,i,o]=await Promise.all([gt(X.join(r,"project-capabilities.json")),gt(X.join(r,".dyyto/application-config-binding.json")),gt(X.join(r,"config/application-config.json"))]),a=JSON.parse(n.toString("utf8")),s=Ig(JSON.parse(i.toString("utf8")),a),c=Ea(JSON.parse(o.toString("utf8")),a),l=await bg(r,s.application.id,t);if(!l||!X.isAbsolute(l))throw new he("APP_CONFIG_DIR_REQUIRED","\u8BF7\u4E3A\u5F53\u524D\u9879\u76EE\u8BBE\u7F6E\u7EDD\u5BF9APP_CONFIG_DIR\u3002");let d=await Na(l),p=await Vi(d);if(!p.isDirectory()||p.isSymbolicLink()||(p.mode&511&-449)!==0)throw new he("APP_CONFIG_DIR_INVALID","APP_CONFIG_DIR\u5FC5\u987B\u662F\u6743\u9650\u4E0D\u8D85\u8FC70700\u7684\u666E\u901A\u76EE\u5F55\u3002");let f=X.relative(r,d);if(f===""||!f.startsWith("..")&&!X.isAbsolute(f))throw new he("APP_CONFIG_DIR_INSIDE_PROJECT","APP_CONFIG_DIR\u4E0D\u80FD\u4F4D\u4E8E\u9879\u76EE\u4ED3\u5E93\u5185\u3002");let u=X.join(d,".env");await hg(u,"\u5E94\u7528.env",c.bindings.length===0);let m=iE(await gt(u,"utf8")),g=[];for(let y of c.bindings){if(y.kind==="value"){let T=m[y.name]??"";g.push({name:y.name,kind:y.kind,required:y.required,configured:T.length>0,source:"APP_CONFIG_DIR",display:T});continue}if(m[y.name]!==y.file)throw new he("APPLICATION_CONFIG_REFERENCE_CHANGED",`${y.name}\u672A\u4FDD\u6301\u5408\u540C\u6587\u4EF6\u5F15\u7528\u3002`);let A=X.resolve(d,y.file),b=X.relative(d,A);if(!b||b.startsWith("..")||X.isAbsolute(b))throw new he("APPLICATION_CONFIG_REFERENCE_ESCAPE",`${y.name}\u9003\u9038APP_CONFIG_DIR\u3002`);let R=await hg(A,y.name,!y.required),I=await gt(A),_=I.length>0,S;if(_&&y.kind==="certificate-file")try{let T=new nE(I);S={subject:T.subject,issuer:T.issuer,validFrom:T.validFrom,validTo:T.validTo}}catch{throw new he("APPLICATION_CERTIFICATE_INVALID",`${y.name}\u4E0D\u662F\u6709\u6548X.509\u8BC1\u4E66\u3002`)}g.push({name:y.name,kind:y.kind,required:y.required,configured:_,source:"APP_CONFIG_DIR",display:_?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E",..._?{fingerprint:Oa(I),updatedAt:R.mtime.toISOString()}:{},...S?{certificate:S}:{}})}return{application:s.application.id,environment:"local",configDirectory:d,contractDigest:Oa(o),entries:g}}var Gr="project-capabilities.json",kg=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function pE(e,t){if(!kg.test(e)||!kg.test(t))throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade requires stable SemVer releases");let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let i=0;i<3;i+=1)if(r[i]!==n[i])return r[i]-n[i];return 0}async function uE(e,t){let r=Fi.join(e,...t.split("/"));try{let n=await lE(r);if(!n.isFile()||n.isSymbolicLink())throw new M("PROJECT_STATE_INVALID","Managed upgrade target must be a regular file",t);return{path:t,exists:!0,digest:h(await Da(r))}}catch(n){if(n.code==="ENOENT")return{path:t,exists:!1};throw n}}function ja(e,t){let r=W(e),n=t.release,i=n.assets.find(a=>a.path==="package.json");if((n.consumerProfile==="standalone-npm-package"||n.consumerProfile==="workspace-npm-package")&&i?.renderer?.startsWith("npm-package-json-")===!0)return zl(fr(r,n.consumerProfile));if(n.consumerProfile==="react-component-library"&&i?.renderer==="react-component-package-json-v1")return Gl(fr(r,n.consumerProfile));let o=t.contents.get("package.json");if(o===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");return o}async function id(e){let t=W(e.manifest),r=Ge(e.currentLock),n=e.sourceRelease.release,i=e.targetRelease.release,o=t.capabilities.find(P=>P.capabilityId===n.capabilityId),a=r.capabilities.find(P=>P.capabilityId===n.capabilityId),s=i.capabilityId!==n.capabilityId&&i.dependencies?.capabilities?.includes(n.capabilityId)===!0;if(o===void 0||a===void 0||o.capabilityId!==a.capabilityId||o.version!==a.version||n.capabilityId!==a.capabilityId||n.version!==a.version||n.integrity!==a.integrity||!s&&i.capabilityId!==a.capabilityId||i.consumerProfile!==a.consumerProfile||n.consumerProfile!==i.consumerProfile)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade source, target, Manifest, and Lock must describe one compatible capability");if(!s&&pE(i.version,n.version)<=0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Upgrade target must be newer than the locked release");let c=await dE(Fi.resolve(e.projectRoot)),l={...t,...e.targetTemplate===void 0?{}:{template:e.targetTemplate},capabilities:t.capabilities.map(P=>P.capabilityId===n.capabilityId?{capabilityId:i.capabilityId,version:i.version}:P)},d=new Map(e.targetRelease.contents);i.assets.some(P=>P.path==="package.json")&&d.set("package.json",ja(l,e.targetRelease));for(let P of i.assets)P.renderer==="application-config-contract-v1"&&d.set(P.path,Pa(l)),P.renderer==="application-config-binding-v1"&&d.set(P.path,Sa(l));let p,f=c,u="package.json",m;if(i.schemaVersion===2&&i.availability.maturity!=="withdrawn"&&(i.packageSources?.length??0)>0){if(e.packageSource===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Profile transition requires verified Package Source facts");let P=d.get("package.json");if(P===void 0)throw new M("RELEASE_NOT_FOUND","Transition target package.json is unavailable");let Z=await Da(Fi.join(c,"package.json")),se=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:c,unitRoot:c,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"};f=se.transactionRoot,u=se.mode==="pnpm-shared-lockfile"?`${se.unitRelativeRoot}/package.json`:"package.json",m=se.lockfilePath;let ot={release:i,registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections,consumerProfile:i.consumerProfile,packageJson:Z,desiredBasePackageJson:P,...e.packageSource.currentLockfile===void 0?{}:{currentLockfile:e.packageSource.currentLockfile},generatedAt:e.generatedAt,expiresAt:e.expiresAt};try{let ht=se.mode==="pnpm-shared-lockfile"?(e.packageChannel==="development"?Ra:Aa)({...ot,topology:{mode:se.mode,unitRelativeRoot:se.unitRelativeRoot,unitImporterId:se.unitImporterId,lockfilePath:se.lockfilePath,workspaceManifestPath:se.workspaceManifestPath,workspaceManifestDigest:se.workspaceManifestDigest},preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?_a:ka)({...ot,lockResolution:e.packageSource.lockResolution});p=Ia(ht),d.set("package.json",ht.desiredPackageJson),d.set(m,ht.desiredLockfile)}catch(ht){throw ht instanceof H?new M("CONSUMER_PROFILE_UNSUPPORTED",ht.code):ht}}let g=new Map(a.assets.filter(P=>P.path!==Gr).map(P=>[P.path,P.digest])),y=new Map(i.assets.filter(P=>P.path!==Gr).map(P=>{let Z=d.get(P.path);if(Z===void 0)throw new M("RELEASE_NOT_FOUND","Upgrade target asset content is unavailable",P.path);return[P.path,h(Z)]})),w=[...new Set([...g.keys(),...y.keys()])].sort(),A=[],b=[];for(let P of w){let Z=await uE(c,P);A.push(Z);let se=g.get(P),ot=y.get(P),ht=i.assets.find(Yh=>Yh.path===P);if(ht?.ownership==="seed-file"&&Z.exists&&Z.digest!==void 0){y.set(P,Z.digest),d.set(P,await Da(Fi.join(c,...P.split("/")))),b.push({path:P,kind:"replace",ownership:"seed-file",baseDigest:Z.digest,desiredDigest:Z.digest});continue}if(se===void 0){if(ot===void 0)throw new M("RELEASE_NOT_FOUND","Target asset digest is unavailable",P);b.push({path:P,kind:"create",ownership:ht?.ownership??"owned-file",desiredDigest:ot})}else ot===void 0?b.push({path:P,kind:"remove",ownership:"owned-file",baseDigest:se}):b.push({path:P,kind:"replace",ownership:ht?.ownership??"owned-file",baseDigest:se,desiredDigest:ot})}if(p!==void 0&&m!==void 0){let P=e.packageSource?.currentLockfile;if(P===void 0)throw new M("CONSUMER_PROFILE_UNSUPPORTED","Transition lockfile preimage is unavailable");let Z=d.get(m);A.push({path:m,exists:!0,digest:h(P)}),b.push({path:m,kind:"replace",ownership:"owned-file",baseDigest:h(P),desiredDigest:h(Z)})}let R=await Da(Fi.join(c,Gr)),I=Buffer.from(`${JSON.stringify(l,null,2)}
|
|
39
|
-
`);
|
|
40
|
-
`,"utf8"),await i.sync()}finally{await i.close()}try{await fE(n,e),await hE(n),await wE(r)}catch(o){throw await yE(n,{force:!0}),o}}async function Ng(e){let t=await Et(ge.resolve(e.projectRoot)),r=od(e.plan),n=ge.join(t,".dyyto","delivery","plans",`${r.planId}.json`);try{await Ui(n,r)}catch(i){if(i.code!=="EEXIST")throw i;if(k(od(JSON.parse(await Rt(n,"utf8"))))!==k(r))throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan content does not match its identity")}return r}async function Jt(e){if(!$e(e.planId))throw new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=od(JSON.parse(await Rt(ge.join(t,".dyyto","delivery","plans",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_PRECONDITION_FAILED","Stored Delivery Plan identity does not match its path");return r}catch(r){throw r.code==="ENOENT"?new D("DELIVERY_PLAN_NOT_FOUND","Delivery Plan was not found"):r}}async function dd(e){let t=await Et(ge.resolve(e.projectRoot)),r=cd(e.receipt),n=await Jt({projectRoot:t,planId:r.planId});if(r.kind!==n.kind||r.adapterId!==n.target.adapterId||r.artifactDigest!==n.artifact.digest||r.target!==n.target.location)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt does not match its immutable Plan");if(r.schemaVersion===2){let o=await jn({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.publication===void 0||o===null||r.npm.stageId!==o.stageId||r.npm.tarballDigest!==o.artifactDigest||r.npm.tag!==n.publication.tag||r.npm.access!==n.publication.access)throw new D("DELIVERY_RECEIPT_INVALID","Verified npm Receipt does not match its Plan and Stage Record")}let i=ge.join(t,".dyyto","delivery","receipts",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=cd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Receipt already exists for this Plan");return a}return r}async function Dn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Receipt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=cd(JSON.parse(await Rt(ge.join(t,".dyyto","delivery","receipts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Receipt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Og(e){let t=await Et(ge.resolve(e.projectRoot)),r=Ca(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Record does not match an npm Plan v2");let i=ge.join(t,".dyyto","delivery","attempts",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=Ca(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Attempt Record already exists for this Plan");return a}return r}async function Sg(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Attempt Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=Ca(JSON.parse(await Rt(ge.join(t,".dyyto","delivery","attempts",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Attempt identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Dg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ge.join(t,".dyyto","delivery","attempts"),n;try{n=await gE(r)}catch(i){if(i.code==="ENOENT")return null;throw i}for(let i of n.sort()){if(!i.endsWith(".json"))continue;let o=Ca(JSON.parse(await Rt(ge.join(r,i),"utf8")));if((await Jt({projectRoot:t,planId:o.planId})).artifact.identity!==e.artifactIdentity)continue;let[s,c]=await Promise.all([jn({projectRoot:t,planId:o.planId}),Dn({projectRoot:t,planId:o.planId})]);if(s===null&&c===null)return o}return null}async function jg(e){let t=await Et(ge.resolve(e.projectRoot)),r=ad(e.record),n=await Jt({projectRoot:t,planId:r.planId});if(n.schemaVersion!==2||n.kind!=="npm-publish"||n.publication===void 0||r.artifactDigest!==n.artifact.digest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Record does not match an npm Plan v2");let i=ge.join(t,".dyyto","delivery","stages",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=ad(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Record already exists for this Plan");return a}return r}async function jn(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=ad(JSON.parse(await Rt(ge.join(t,".dyyto","delivery","stages",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}async function Cg(e){let t=await Et(ge.resolve(e.projectRoot)),r=sd(e.record),n=await jn({projectRoot:t,planId:r.planId});if(n===null||r.stageId!==n.stageId||r.artifactDigest!==n.artifactDigest)throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Record does not match its immutable Stage Record");let i=ge.join(t,".dyyto","delivery","stage-reviews",`${r.planId}.json`);try{await Ui(i,r)}catch(o){if(o.code!=="EEXIST")throw o;let a=sd(JSON.parse(await Rt(i,"utf8")));if(k(a)!==k(r))throw new D("DELIVERY_RECEIPT_INVALID","A different Stage Review Record already exists for this Plan");return a}return r}async function $g(e){if(!$e(e.planId))throw new D("DELIVERY_RECEIPT_INVALID","Delivery Stage Review Plan identity is invalid");let t=await Et(ge.resolve(e.projectRoot));try{let r=sd(JSON.parse(await Rt(ge.join(t,".dyyto","delivery","stage-reviews",`${e.planId}.json`),"utf8")));if(r.planId!==e.planId)throw new D("DELIVERY_RECEIPT_INVALID","Stored Delivery Stage Review identity does not match its path");return r}catch(r){if(r.code==="ENOENT")return null;throw r}}import{readFile as Zg,readdir as nP}from"node:fs/promises";import md from"node:path";import{mkdir as pd,open as Va,readFile as Bi,readdir as ud,rename as Ma,rm as Yg}from"node:fs/promises";import ve from"node:path";var IE=44;var Tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",vE=new Uint8Array(64),xg=new Uint8Array(128);for(let e=0;e<Tg.length;e++){let t=Tg.charCodeAt(e);vE[e]=t,xg[t]=e}function qi(e,t){let r=0,n=0,i=0;do{let a=e.next();i=xg[a],r|=(i&31)<<n,n+=5}while(i&32);let o=r&1;return r>>>=1,o&&(r=-2147483648|-r),t+r}function Lg(e,t){return e.pos>=t?!1:e.peek()!==IE}var Qj=1024*16;var bE=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:r}=this,n=t.indexOf(e,r);return n===-1?t.length:n}};function Vg(e){let{length:t}=e,r=new bE(e),n=[],i=0,o=0,a=0,s=0,c=0;do{let l=r.indexOf(";"),d=[],p=!0,f=0;for(i=0;r.pos<l;){let u;i=qi(r,i),i<f&&(p=!1),f=i,Lg(r,l)?(o=qi(r,o),a=qi(r,a),s=qi(r,s),Lg(r,l)?(c=qi(r,c),u=[i,o,a,s,c]):u=[i,o,a,s]):u=[i],d.push(u),r.pos++}p||kE(d),n.push(d),r.pos=l+1}while(r.pos<=t);return n}function kE(e){e.sort(_E)}function _E(e,t){return e[0]-t[0]}var AE=/^[\w+.-]+:\/\//,RE=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,EE=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function PE(e){return AE.test(e)}function NE(e){return e.startsWith("//")}function Ug(e){return e.startsWith("/")}function OE(e){return e.startsWith("file:")}function Mg(e){return/^[.?#]/.test(e)}function Ta(e){let t=RE.exec(e);return qg(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function SE(e){let t=EE.exec(e),r=t[2];return qg("file:","",t[1]||"","",Ug(r)?r:"/"+r,t[3]||"",t[4]||"")}function qg(e,t,r,n,i,o,a){return{scheme:e,user:t,host:r,port:n,path:i,query:o,hash:a,type:7}}function Fg(e){if(NE(e)){let r=Ta("http:"+e);return r.scheme="",r.type=6,r}if(Ug(e)){let r=Ta("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(OE(e))return SE(e);if(PE(e))return Ta(e);let t=Ta("http://foo.com/"+e);return t.scheme="",t.host="",t.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,t}function DE(e){if(e.endsWith("/.."))return e;let t=e.lastIndexOf("/");return e.slice(0,t+1)}function jE(e,t){Bg(t,t.type),e.path==="/"?e.path=t.path:e.path=DE(t.path)+e.path}function Bg(e,t){let r=t<=4,n=e.path.split("/"),i=1,o=0,a=!1;for(let c=1;c<n.length;c++){let l=n[c];if(!l){a=!0;continue}if(a=!1,l!=="."){if(l===".."){o?(a=!0,o--,i--):r&&(n[i++]=l);continue}n[i++]=l,o++}}let s="";for(let c=1;c<i;c++)s+="/"+n[c];(!s||a&&!s.endsWith("/.."))&&(s+="/"),e.path=s}function zg(e,t){if(!e&&!t)return"";let r=Fg(e),n=r.type;if(t&&n!==7){let o=Fg(t),a=o.type;switch(n){case 1:r.hash=o.hash;case 2:r.query=o.query;case 3:case 4:jE(r,o);case 5:r.user=o.user,r.host=o.host,r.port=o.port;case 6:r.scheme=o.scheme}a>n&&(n=a)}Bg(r,n);let i=r.query+r.hash;switch(n){case 2:case 3:return i;case 4:{let o=r.path.slice(1);return o?Mg(t||e)&&!Mg(o)?"./"+o+i:o+i:i||"."}case 5:return r.path+i;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+i}}function CE(e){if(!e)return"";let t=e.lastIndexOf("/");return e.slice(0,t+1)}function $E(e,t){let r=CE(e),n=t?t+"/":"";return i=>zg(n+(i||""),r)}var mr=0,TE=1,LE=2,xE=3,VE=4;function ME(e,t){let r=Gg(e,0);if(r===e.length)return e;t||(e=e.slice());for(let n=r;n<e.length;n=Gg(e,n+1))e[n]=UE(e[n],t);return e}function Gg(e,t){for(let r=t;r<e.length;r++)if(!FE(e[r]))return r;return e.length}function FE(e){for(let t=1;t<e.length;t++)if(e[t][mr]<e[t-1][mr])return!1;return!0}function UE(e,t){return t||(e=e.slice()),e.sort(qE)}function qE(e,t){return e[mr]-t[mr]}var xa=!1;function BE(e,t,r,n){for(;r<=n;){let i=r+(n-r>>1),o=e[i][mr]-t;if(o===0)return xa=!0,i;o<0?r=i+1:n=i-1}return xa=!1,r-1}function zE(e,t,r){for(let n=r+1;n<e.length&&e[n][mr]===t;r=n++);return r}function GE(e,t,r){for(let n=r-1;n>=0&&e[n][mr]===t;r=n--);return r}function JE(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}function WE(e,t,r,n){let{lastKey:i,lastNeedle:o,lastIndex:a}=r,s=0,c=e.length-1;if(n===i){if(t===o)return xa=a!==-1&&e[a][mr]===t,a;t>=o?s=a===-1?0:a:c=a}return r.lastKey=n,r.lastNeedle=t,r.lastIndex=BE(e,t,s,c)}function KE(e){return typeof e=="string"?JSON.parse(e):e}var YE="`line` must be greater than 0 (lines start at line 1)",HE="`column` must be greater than or equal to 0 (columns start at column 0)",Jg=-1,XE=1,Wg=class{constructor(e,t){let r=typeof e=="string";if(!r&&e._decodedMemo)return e;let n=KE(e),{version:i,file:o,names:a,sourceRoot:s,sources:c,sourcesContent:l}=n;this.version=i,this.file=o,this.names=a||[],this.sourceRoot=s,this.sources=c,this.sourcesContent=l,this.ignoreList=n.ignoreList||n.x_google_ignoreList||void 0;let d=$E(t,s);this.resolvedSources=c.map(d);let{mappings:p}=n;if(typeof p=="string")this._encoded=p,this._decoded=void 0;else if(Array.isArray(p))this._encoded=void 0,this._decoded=ME(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=JE(),this._bySources=void 0,this._bySourceMemos=void 0}};function ZE(e){var t;return(t=e)._decoded||(t._decoded=Vg(e._encoded))}function Kg(e,t){let{line:r,column:n,bias:i}=t;if(r--,r<0)throw new Error(YE);if(n<0)throw new Error(HE);let o=ZE(e);if(r>=o.length)return La(null,null,null,null);let a=o[r],s=QE(a,e._decodedMemo,r,n,i||XE);if(s===-1)return La(null,null,null,null);let c=a[s];if(c.length===1)return La(null,null,null,null);let{names:l,resolvedSources:d}=e;return La(d[c[TE]],c[LE]+1,c[xE],c.length===5?l[c[VE]]:null)}function La(e,t,r,n){return{source:e,line:t,column:r,name:n}}function QE(e,t,r,n,i){let o=WE(e,n,t,r);return xa?o=(i===Jg?zE:GE)(e,n,o):i===Jg&&o++,o===-1||o===e.length?-1:o}var ae=class extends Error{code;constructor(t,r){super(r),this.code=t,this.name="RuntimeObservabilityError"}},fd=/^sha256:[a-f0-9]{64}$/,Hg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,eP=/^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$/,Fa=(e,t)=>Object.keys(e).every(r=>t.includes(r)),zi=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Cn=(e,t)=>e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/([a-z]+:\/\/)[^/@\s]+@/gi,"$1").slice(0,t);async function Xg(e,t){if(t.releaseId===void 0&&t.deploymentId===void 0)return"unknown";if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t.applicationId))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error application identity is unavailable");let r=ve.join(ve.resolve(e),"apps",t.applicationId);if(t.deploymentId!==void 0)try{let n=await Jt({projectRoot:r,planId:t.deploymentId}),i=await Dn({projectRoot:r,planId:n.planId});if(i===null||n.kind!=="application-deploy"||n.artifact.type!=="web-application"||n.artifact.identity!==t.applicationId||n.artifact.digest!==t.releaseId||i.artifactDigest!==n.artifact.digest)throw new Error("mismatch");return"deployment-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error deployment identity does not resolve to a matching verified delivery")}try{return await ud(ve.join(ve.resolve(e),".dyyto","observability","releases",t.releaseId)),"release-verified"}catch{throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error release identity is not registered")}}function tP(e){if(!zi(e)||!Fa(e,["schemaVersion","eventId","occurredAt","applicationId","releaseId","deploymentId","kind","error","page","traceparent"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope contains unknown fields");if(!zi(e.error)||!zi(e.page)||!Fa(e.error,["type","message","frames"])||!Fa(e.page,["origin","path"]))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope structure is invalid");if(e.schemaVersion!==1||typeof e.eventId!="string"||!Hg.test(e.eventId)||typeof e.occurredAt!="string"||Number.isNaN(Date.parse(e.occurredAt))||typeof e.applicationId!="string"||e.applicationId.length<1||e.applicationId.length>128)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error Envelope identity is invalid");if(!["uncaught-error","unhandled-rejection","reported-error"].includes(e.kind))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error kind is invalid");for(let n of[e.releaseId,e.deploymentId])if(n!==void 0&&(typeof n!="string"||!fd.test(n)))throw new ae("RUNTIME_ERROR_IDENTITY_UNKNOWN","Runtime Error correlation identity is invalid");if(e.traceparent!==void 0&&(typeof e.traceparent!="string"||!eP.test(e.traceparent)))throw new ae("RUNTIME_ERROR_INVALID","traceparent is invalid");if(typeof e.error.type!="string"||typeof e.error.message!="string"||!Array.isArray(e.error.frames)||e.error.frames.length>50||typeof e.page.origin!="string"||typeof e.page.path!="string")throw new ae("RUNTIME_ERROR_INVALID","Runtime Error content is invalid");if(e.error.message.length>4096||e.error.type.length>256||e.page.path.length>2048)throw new ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error content exceeds a hard limit");let t=e.error.frames.map(n=>{if(!zi(n)||!Fa(n,["file","line","column","function"])||typeof n.file!="string"||n.file.length>2048)throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack frame is invalid");for(let i of[n.line,n.column])if(i!==void 0&&(!Number.isSafeInteger(i)||Number(i)<1))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack location is invalid");if(n.function!==void 0&&(typeof n.function!="string"||n.function.length>256))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error stack function is invalid");return n}),r;try{r=new URL(e.page.origin)}catch{throw new ae("RUNTIME_ERROR_INVALID","Runtime Error page origin is invalid")}if(r.origin!==e.page.origin||!e.page.path.startsWith("/")||e.page.path.includes("?")||e.page.path.includes("#"))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error page must contain only origin and path");return{...e,error:{...e.error,frames:t}}}function rP(e,t,r="unknown"){let n=e.error.frames.map(a=>({file:Cn(a.file,2048),...a.line===void 0?{}:{line:a.line},...a.column===void 0?{}:{column:a.column},...a.function===void 0?{}:{function:Cn(a.function,256)}})),i={type:Cn(e.error.type,256),message:Cn(e.error.message,4096),frames:n},o=h(k({type:i.type,message:i.message,frames:n.slice(0,5).map(({file:a,line:s,column:c})=>({file:a,line:s,column:c}))}));return{schemaVersion:1,eventId:e.eventId,occurredAt:e.occurredAt,receivedAt:t,applicationId:Cn(e.applicationId,128),...e.releaseId===void 0?{}:{releaseId:e.releaseId},...e.deploymentId===void 0?{}:{deploymentId:e.deploymentId},kind:e.kind,error:i,page:{origin:e.page.origin,path:Cn(e.page.path,2048)},...e.traceparent===void 0?{}:{traceparent:e.traceparent},fingerprint:o,state:e.releaseId===void 0?"persisted":"map-missing",correlation:r}}var Wt=class{workspaceRoot;adapterId="observability.local";#e=Promise.resolve();constructor(t){this.workspaceRoot=t}directory(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","events")}releases(){return ve.join(ve.resolve(this.workspaceRoot),".dyyto","observability","releases")}async accept(t,r){let n=tP(t);if(!r.allowedOrigins.includes(n.page.origin))throw new ae("RUNTIME_ERROR_INVALID","Runtime Error origin is not registered");let i=r.resolveCorrelation===void 0?"unknown":await r.resolveCorrelation(n),o=rP(n,r.receivedAt,i);return this.#t(async()=>{let a=this.directory();await pd(a,{recursive:!0,mode:448});let s=ve.join(a,`${o.eventId}.json`);try{let f=JSON.parse(await Bi(s,"utf8")),u={...f,correlation:f.correlation??"unknown"};if(k({...u,receivedAt:o.receivedAt})!==k(o))throw new ae("RUNTIME_ERROR_INVALID","eventId is already used for different content");return{eventId:o.eventId,state:u.state,duplicate:!0}}catch(f){if(f.code!=="ENOENT")throw f}let c=`${s}.tmp-${process.pid}-${crypto.randomUUID()}`,l=await Va(c,"wx",384);try{await l.writeFile(`${k(o)}
|
|
41
|
-
`,"utf8"),await
|
|
42
|
-
`),await c.sync()}finally{await c.close()}return await
|
|
43
|
-
`),await
|
|
44
|
-
`),s=await
|
|
45
|
-
`),g=await Wi(o,u);if(!g.exists||g.digest===void 0)throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The project manifest is unavailable");let y=[{path:u,kind:"replace",ownership:"owned-file",baseDigest:g.digest,desiredDigest:h(m)}],w=new Map([[u,m]]),A;if(n.schemaVersion===2&&n.packageSources.length>0){if(e.packageSource===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires verified package source facts");let _;try{_=await Ji(Jr.join(t,"package.json"))}catch{throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","\u9879\u76EE package.json \u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u751F\u6210\u5305\u91C7\u7528\u8BA1\u5212")}try{let S=e.packageSource.currentLockfile??await Ji(Jr.join(t,"pnpm-lock.yaml")).catch(se=>se.code==="ENOENT"?void 0:Promise.reject(se)),T=e.packageSource.topology??{schemaVersion:1,mode:"standalone",transactionRoot:t,unitRoot:t,unitRelativeRoot:".",unitImporterId:".",lockfilePath:"pnpm-lock.yaml"},ue=T.mode==="pnpm-shared-lockfile",$={mode:T.mode,unitRelativeRoot:T.unitRelativeRoot,unitImporterId:T.unitImporterId,lockfilePath:T.lockfilePath,...T.workspaceManifestPath?{workspaceManifestPath:T.workspaceManifestPath,workspaceManifestDigest:T.workspaceManifestDigest}:{}},P={registryConfigs:e.packageSource.registryConfigs,endpointBindings:e.packageSource.endpointBindings,receipts:e.packageSource.receipts,inspections:e.packageSource.inspections};if(ue&&(!e.packageSource.resolutionEvidence||!e.packageSource.resolutionWorkerReleaseId))throw new H("PACKAGE_SOURCE_POLICY_VIOLATION");let Z=ue?(e.packageChannel==="development"?Ra:Aa)({release:n,...P,consumerProfile:c,packageJson:_,currentLockfile:S,generatedAt:e.generatedAt,expiresAt:e.expiresAt,topology:$,preservedImporterDigests:e.packageSource.preservedImporterDigests??[],resolutionEvidence:e.packageSource.resolutionEvidence,resolutionWorkerReleaseId:e.packageSource.resolutionWorkerReleaseId}):(e.packageChannel==="development"?_a:ka)({release:n,...P,lockResolution:e.packageSource.lockResolution,consumerProfile:c,packageJson:_,...S===void 0?{}:{currentLockfile:S},generatedAt:e.generatedAt,expiresAt:e.expiresAt});A=Ia(Z),y.push({path:a("package.json"),kind:"replace",ownership:"owned-file",baseDigest:Z.packageJsonPreimageDigest,desiredDigest:Z.desiredPackageJsonDigest}),w.set(a("package.json"),Z.desiredPackageJson),y.push({path:T.lockfilePath,kind:S===void 0?"create":"replace",ownership:"owned-file",...S===void 0?{}:{baseDigest:h(S)},desiredDigest:Z.desiredLockfileDigest}),w.set(T.lockfilePath,Z.desiredLockfile)}catch(S){throw S instanceof H?new le("CAPABILITY_PACKAGE_SOURCE_INVALID",S.code):S}}for(let _ of n.assets){let S=e.release.contents.get(_.path);if(S===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Capability asset content is unavailable");let T=_.renderer==="application-config-contract-v1"?Pa(r):_.renderer==="application-config-binding-v1"?Sa(r):S;if(_.ownership==="managed-region"){if(_.regionId===void 0)throw new le("CAPABILITY_KIND_UNSUPPORTED","Managed region identity is unavailable");let ue;try{ue=await Ji(Jr.join(t,..._.path.split("/")))}catch{throw new le("CAPABILITY_DEPENDENCY_UNSATISFIED","The managed shared file is unavailable")}let $=Buffer.from(gm({source:ue.toString("utf8"),regionId:_.regionId,content:Buffer.from(T).toString("utf8")}));y.push({path:a(_.path),kind:"merge",ownership:"managed-region",regionId:_.regionId,baseDigest:h(ue),desiredDigest:h($)}),w.set(a(_.path),$)}else{let ue=await Wi(t,_.path);if(_.ownership==="seed-file"&&ue.exists){let $=await Ji(Jr.join(t,..._.path.split("/")));y.push({path:a(_.path),kind:"create",ownership:"seed-file",desiredDigest:h($)}),w.set(a(_.path),$)}else y.push({path:a(_.path),kind:"create",ownership:_.ownership,desiredDigest:h(T)}),w.set(a(_.path),T)}}let b=await Promise.all(y.map(_=>Wi(o,_.path))),R={schemaVersion:1,capabilityId:n.capabilityId,version:n.version,integrity:n.integrity,assets:y.filter(_=>_.path!==u&&_.path!==i?.lockfilePath).map(_=>({path:i?.mode==="pnpm-shared-lockfile"?_.path.slice(i.unitRelativeRoot.length+1):_.path,ownership:_.ownership,desiredDigest:_.desiredDigest})),verifiers:n.verifiers.map(_=>({id:_.id,kind:"file-digest"}))};return{plan:Pe({action:"adopt",capability:R,changes:y,observedAssets:b,generatedAt:e.generatedAt,expiresAt:e.expiresAt,...A===void 0?{}:{packageAdoption:A}}),manifest:f,desiredContents:w,transactionRoot:o,dependency:{profile:c,satisfied:!0}}}var ny=nn(Dr(),1);var iP={$id:"https://schemas.dyyto.dev/platform/solution-catalog-entry-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","solutionId","version","integrity","title","summary","maturity","members","integration","exit"],properties:{schemaVersion:{const:1},solutionId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},maturity:{enum:["guided","automated"]},members:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","role","required"],properties:{capabilityId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128},role:{type:"string",minLength:1,maxLength:80},required:{type:"boolean"}}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","steps","verification","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},steps:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["label","command"],properties:{label:{type:"string",minLength:1,maxLength:80},command:{type:"string",minLength:1,maxLength:2e3}}}},verification:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:1e3}},result:{type:"string",minLength:1,maxLength:400}}},exit:{type:"object",additionalProperties:!1,required:["summary"],properties:{summary:{type:"string",minLength:1,maxLength:400}}}}},DC=new ny.Ajv2020({allErrors:!0,strict:!0}).compile(iP);var cy=nn(Dr(),1);import{readFile as oP,realpath as aP}from"node:fs/promises";import iy from"node:path";var oy="^[a-z0-9]+(?:[.-][a-z0-9]+)*$",ay="^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\)[^\\u0000]+$",sP={$id:"https://schemas.dyyto.dev/platform/example-recipe-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","recipeId","version","integrity","title","locale","rootProfile","capabilities","expectedEntrypoint","verifiers","manualAcceptance","cleanup"],properties:{schemaVersion:{const:1},recipeId:{type:"string",pattern:oy},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},title:{type:"string",minLength:1,maxLength:80},locale:{const:"zh-CN"},rootProfile:{type:"object",additionalProperties:!1,required:["capabilityId","version"],properties:{capabilityId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128}}},capabilities:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["capabilityId","version","channel"],properties:{capabilityId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128},channel:{const:"development"}}}},expectedEntrypoint:{type:"string",pattern:ay,maxLength:240},verifiers:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",pattern:oy}},manualAcceptance:{type:"array",minItems:1,maxItems:32,items:{type:"string",minLength:1,maxLength:240}},cleanup:{type:"object",additionalProperties:!1,required:["ownedStateDirectories"],properties:{ownedStateDirectories:{type:"array",maxItems:8,uniqueItems:!0,items:{type:"string",pattern:ay,maxLength:240}}}}}},sy=new cy.Ajv2020({allErrors:!0,strict:!0}).compile(sP),Wr=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function cP(e){return h(k(e))}function lP(e){if(!sy(e))throw new Wr("EXAMPLE_RECIPE_INVALID",sy.errors??[]);let t=e,r=[t.rootProfile.capabilityId,...t.capabilities.map(n=>n.capabilityId)];if(new Set(r).size!==r.length||t.capabilities.some(n=>n.version.includes("workspace:")||n.capabilityId.includes("ai-education-poc")))throw new Wr("EXAMPLE_RECIPE_INVALID");return t}async function ly(e){let t=await aP(iy.resolve(e)),r;try{r=lP(JSON.parse(await oP(iy.join(t,"recipe.json"),"utf8")))}catch(o){throw o instanceof Wr?o:new Wr("EXAMPLE_RECIPE_INVALID")}let{integrity:n,...i}=r;if(cP(i)!==n)throw new Wr("EXAMPLE_RECIPE_INTEGRITY_MISMATCH");return r}var uy=nn(Dr(),1);import{readFile as dP,realpath as pP}from"node:fs/promises";import dy from"node:path";var uP={$id:"https://schemas.dyyto.dev/platform/engineering-template-release-v1.json",type:"object",additionalProperties:!1,required:["schemaVersion","templateId","version","integrity","title","summary","status","profile","parameters","commands","technology","support","integration","metrics"],properties:{schemaVersion:{const:1},templateId:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:128},integrity:{type:"string",pattern:Ot},title:{type:"string",minLength:1,maxLength:80},summary:{type:"string",minLength:1,maxLength:240},status:{enum:["candidate","recommended","deprecated"]},profile:{type:"object",additionalProperties:!1,required:["id","capability"],properties:{id:{type:"string",pattern:te},capability:{type:"string",pattern:`${te.slice(1,-1)}@[0-9]+\\.[0-9]+\\.[0-9]+$`}}},parameters:{type:"array",minItems:0,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","required","description"],properties:{id:{type:"string",pattern:"^[a-z][A-Za-z0-9]*$"},required:{type:"boolean"},description:{type:"string",minLength:1,maxLength:160}}}},commands:{type:"object",minProperties:1,additionalProperties:!1,properties:{dev:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},build:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},test:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"},package:{type:"string",pattern:"^[a-z][a-z0-9.:-]*$"}}},technology:{type:"array",minItems:1,maxItems:32,items:{type:"object",additionalProperties:!1,required:["id","version","policy","verifiedAt","rationale","alternative","exit"],properties:{id:{type:"string",pattern:te},version:{type:"string",minLength:1,maxLength:64},policy:{enum:["recommended","allowed"]},verifiedAt:{type:"string",format:"date"},rationale:{type:"string",minLength:1,maxLength:240},alternative:{type:"string",minLength:1,maxLength:160},exit:{type:"string",minLength:1,maxLength:240}}}},support:{type:"object",additionalProperties:!1,required:["owner","tier","supportedFrom","supportedUntil","upgradeCadence","eolNoticeDays"],properties:{owner:{type:"string",pattern:te},tier:{const:"production"},supportedFrom:{type:"string",format:"date"},supportedUntil:{type:"string",format:"date"},upgradeCadence:{type:"string",minLength:1,maxLength:80},eolNoticeDays:{type:"integer",minimum:30,maximum:730}}},integration:{type:"object",additionalProperties:!1,required:["prerequisites","createCommand","result"],properties:{prerequisites:{type:"array",minItems:1,maxItems:16,items:{type:"string",minLength:1,maxLength:200}},createCommand:{type:"string",minLength:1,maxLength:2e3},result:{type:"string",minLength:1,maxLength:400}}},metrics:{type:"array",minItems:1,uniqueItems:!0,items:{enum:["time-to-green-build","time-to-first-business-commit","manual-engineering-edits","upgrade-conflicts"]}}}},py=new uy.Ajv2020({allErrors:!0,strict:!0,formats:{date:/^\d{4}-\d{2}-\d{2}$/}}).compile(uP),Kt=class extends Error{code;issues;constructor(t,r=[]){super(t),this.code=t,this.issues=r}};function fP(e){return h(k(e))}function mP(e){if(!py(e))throw new Kt("TEMPLATE_INVALID",py.errors??[]);let t=e;if(new Set(t.parameters.map(r=>r.id)).size!==t.parameters.length||new Set(t.technology.map(r=>r.id)).size!==t.technology.length)throw new Kt("TEMPLATE_INVALID");if(Date.parse(t.support.supportedUntil)<=Date.parse(t.support.supportedFrom))throw new Kt("TEMPLATE_INVALID");return t}async function Ki(e,t=new Date){let r=await pP(dy.resolve(e)),n;try{n=mP(JSON.parse(await dP(dy.join(r,"template.json"),"utf8")))}catch(a){throw a instanceof Kt?a:new Kt("TEMPLATE_INVALID")}let{integrity:i,...o}=n;if(fP(o)!==i)throw new Kt("TEMPLATE_INTEGRITY_MISMATCH");if(n.status==="recommended"&&Date.parse(n.support.supportedUntil)<t.getTime())throw new Kt("TEMPLATE_SUPPORT_EXPIRED");return n}import{readFile as fy}from"node:fs/promises";import my from"node:path";var gP=/^[A-Z][A-Z0-9_]*$/u,yP=/(?:API_KEY|ACCESS_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY|DATABASE_URL|POSTGRES_URL)$/u;function hP(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||!gP.test(n[1]))continue;let i=n[1],o=n[2].trim();t.set(i,{name:i,requirement:o.length===0?"conditional":"optional",secret:yP.test(i),configured:!1,source:".env.example",configuredSource:null})}return[...t.values()]}async function gy(e){let t=await fy(my.join(e.projectRoot,".env.example"),"utf8").then(()=>".env.example").catch(()=>null),r=t?await fy(my.join(e.projectRoot,t),"utf8"):"",n=await Mi({projectRoot:e.projectRoot}).catch(()=>null);return{commands:["dev","build","test","package"].flatMap(o=>e.commands[o]?[{id:o,script:e.commands[o],mode:o==="dev"?"managed-process":"foreground-task"}]:[]),environment:n?n.entries.map(o=>({name:o.name,requirement:o.required?"conditional":"optional",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}:{}})):hP(r),environmentExample:t,productionValidation:{contract:!0,live:["provider-read","oss-write-read-delete"]}}}var yy={change:new Set(["plan","apply","upgrade","recover","baseline-next","add-package","add-application","add-feature"]),quality:new Set(["inspect","verify","doctor","maintenance","test","build"]),delivery:new Set(["package","delivery-plan","delivery-apply","delivery-inspect"])},hy=new Set(["queued","running","succeeded","failed","outcome-unknown","cancelled"]);function wy(e,t){if(!yy[t.plane]||t.state&&!hy.has(t.state)||t.limit!==void 0&&(!Number.isSafeInteger(t.limit)||t.limit<1||t.limit>200))throw new Error("OPERATION_FILTER_INVALID");let r=yy[t.plane],n=t.from?Date.parse(t.from):null,i=t.to?Date.parse(t.to):null;if(n!==null&&Number.isNaN(n)||i!==null&&Number.isNaN(i)||n!==null&&i!==null&&n>i)throw new Error("OPERATION_FILTER_INVALID");let o=e.filter(l=>r.has(l.operation)),a=[...new Map(o.map(l=>[l.projectId,{id:l.projectId,name:l.projectName}])).values()].sort((l,d)=>l.name.localeCompare(d.name)),s=o.filter(l=>(!t.projectId||l.projectId===t.projectId)&&(!t.state||l.state===t.state)&&(!t.kind||l.operation===t.kind)&&(n===null||Date.parse(l.createdAt)>=n)&&(i===null||Date.parse(l.createdAt)<=i)).sort((l,d)=>d.updatedAt.localeCompare(l.updatedAt)),c={total:s.length,running:s.filter(l=>l.state==="running"||l.state==="queued").length,succeeded:s.filter(l=>l.state==="succeeded").length,attention:s.filter(l=>l.state==="failed"||l.state==="outcome-unknown").length};return Object.freeze({schemaVersion:1,plane:t.plane,summary:Object.freeze(c),facets:Object.freeze({projects:Object.freeze(a),states:Object.freeze([...hy]),kinds:Object.freeze([...r])}),items:Object.freeze(s.slice(0,t.limit??50).map(Object.freeze)),hasMore:s.length>(t.limit??50)})}var rt=class extends Error{code;constructor(t){super(t),this.code=t}},wP=/^@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/u,Iy=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/u,IP=/^sha512-[A-Za-z0-9+/]{86}==$/u,Ua=/^sha256:[a-f0-9]{64}$/u,vP=/^[a-z0-9][a-z0-9._-]{1,214}\.tgz$/u,bP=/^(?:workspace:|file:|link:|git(?:\+|:)|https?:|ssh:|github:)/u,kP=new Set(["preinstall","install","postinstall","prepublish","prepare"]);function Kr(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function _P(e){if(!Kr(e,["packageName","version","assetName","integrity","tarballDigest","dependencies","lifecycleScripts"])||!wP.test(e.packageName)||!Iy.test(e.version)||!vP.test(e.assetName)||!IP.test(e.integrity)||!Ua.test(e.tarballDigest)||typeof e.dependencies!="object"||e.dependencies===null||Array.isArray(e.dependencies)||e.lifecycleScripts.length>0)return!1;let t=Object.entries(e.dependencies);return t.length>256||t.some(([r,n])=>!/^(@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u.test(r)||!Iy.test(n)||bP.test(n))?!1:e.lifecycleScripts.every(r=>kP.has(r))}function hd(e){if(!Kr(e,["artifacts"])||e.artifacts.length===0||e.artifacts.length>128)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let t=e.artifacts.map(o=>Object.freeze({...o,dependencies:Object.freeze({...o.dependencies}),lifecycleScripts:Object.freeze([...o.lifecycleScripts])}));if(t.some(o=>!_P(o)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let r=t.map(o=>o.packageName+"@"+o.version);if(new Set(r).size!==r.length||r.some((o,a)=>a>0&&o.localeCompare(r[a-1])<=0))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");let n=new Set(t.map(o=>o.packageName));for(let o of t)for(let[a,s]of Object.entries(o.dependencies))if(a.startsWith("@aipt/")&&(!n.has(a)||!t.some(c=>c.packageName===a&&c.version===s)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");let i={schemaVersion:1,channel:"development",artifacts:t};return Object.freeze({...i,bundleId:h(k(i))})}function Yr(e){let t=e;if(typeof t!="object"||t===null||!Kr(t,["schemaVersion","bundleId","channel","artifacts"])||t.schemaVersion!==1||t.channel!=="development"||!Ua.test(t.bundleId)||!Array.isArray(t.artifacts))throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");if(hd({artifacts:t.artifacts}).bundleId!==t.bundleId)throw new rt("LOCAL_ARTIFACT_BUNDLE_INVALID");return t}function wd(e){if(!Kr(e,["packageInputs","bundle","generatedAt","expiresAt"])||e.packageInputs.length!==e.bundle.artifacts.length||e.packageInputs.length===0||Number.isNaN(Date.parse(e.generatedAt))||Number.isNaN(Date.parse(e.expiresAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let t=e.packageInputs.map(i=>Object.freeze({...i}));if(t.some(i=>!Kr(i,["relativeRoot","manifestDigest"])||!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i.relativeRoot)||!Ua.test(i.manifestDigest))||new Set(t.map(i=>i.relativeRoot)).size!==t.length)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");let r=Yr(e.bundle),n={schemaVersion:1,state:"awaiting-approval",packageInputs:t,bundle:r,targetPreimage:{kind:"absent"},generatedAt:e.generatedAt,expiresAt:e.expiresAt};return Object.freeze({...n,planId:h(k(n))})}function vy(e){let t=e;if(typeof t!="object"||t===null||!Kr(t,["schemaVersion","planId","state","packageInputs","bundle","targetPreimage","generatedAt","expiresAt"])||t.schemaVersion!==1||t.state!=="awaiting-approval"||!Ua.test(t.planId)||!Kr(t.targetPreimage,["kind"])||t.targetPreimage.kind!=="absent")throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");if(wd({packageInputs:t.packageInputs,bundle:t.bundle,generatedAt:t.generatedAt,expiresAt:t.expiresAt}).planId!==t.planId)throw new rt("LOCAL_ARTIFACT_PLAN_INVALID");return t}function by(e){let t=Yr(e.bundle),r=Ti(e.registry);if(r.authentication.kind!=="anonymous-test"||r.status!=="enabled"||!r.capabilities.read||Number.isNaN(Date.parse(e.verifiedAt)))throw new rt("LOCAL_ARTIFACT_POLICY_VIOLATION");return Object.freeze(t.artifacts.map(n=>Yl({registryId:r.registryId,registryConfigRevision:r.revision,packageName:n.packageName,version:n.version,integrity:n.integrity,tarballDigest:n.tarballDigest,access:"private",provenance:"development-readback-verified",verificationIdentityDigest:t.bundleId,sourceDeliveryReceiptId:t.bundleId,verifiedAt:e.verifiedAt})))}var Qe=class extends Error{code;constructor(t){super(t),this.code=t,this.name="ResolutionWorkerBuildError"}},ky=/^sha256:[a-f0-9]{64}$/u,qa=/^[a-z0-9][a-z0-9._/-]{0,255}$/u;function Id(e){if(!qa.test(e.workerReleaseId)||e.pnpmVersion!=="11.21.0"||![e.workspaceManifestDigest,e.rootLockDigest].every(r=>ky.test(r))||!qa.test(e.cacheNamespace)||!Number.isSafeInteger(e.maximumBytes)||e.maximumBytes<1||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,planId:h(k(t))})}function _y(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let r=Id({workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,workspaceManifestDigest:t.workspaceManifestDigest,rootLockDigest:t.rootLockDigest,cacheNamespace:t.cacheNamespace,maximumBytes:t.maximumBytes,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");return r}function vd(e){if(![e.planId,e.cacheDigest,e.commandDigest].every(r=>ky.test(r))||!qa.test(e.workerReleaseId)||!qa.test(e.cacheNamespace)||e.pnpmVersion!=="11.21.0"||!Number.isSafeInteger(e.cacheBytes)||e.cacheBytes<0||Number.isNaN(Date.parse(e.completedAt)))throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let t={schemaVersion:1,...e};return Object.freeze({...t,receiptId:h(k(t))})}function Ba(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==10)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");let r=vd({planId:t.planId,workerReleaseId:t.workerReleaseId,pnpmVersion:t.pnpmVersion,cacheNamespace:t.cacheNamespace,cacheDigest:t.cacheDigest,cacheBytes:t.cacheBytes,commandDigest:t.commandDigest,completedAt:t.completedAt});if(t.schemaVersion!==1||t.receiptId!==r.receiptId)throw new Qe("RESOLUTION_WORKER_BUILD_INVALID");return r}var Yi=class extends Error{code;constructor(t){super(t),this.code=t,this.name="RecoveryOverrideError"}},bd=/^sha256:[a-f0-9]{64}$/u,AP=/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[a-zA-Z0-9._@:/-]+$/u;function kd(e){if(![e.transactionPlanId,e.transactionRootDigest].every(r=>bd.test(r))||e.conflicts.length===0||new Set(e.conflicts.map(r=>r.path)).size!==e.conflicts.length||e.conflicts.some(r=>!AP.test(r.path)||!bd.test(r.currentDigest)||!bd.test(r.preimageDigest))||Number.isNaN(Date.parse(e.generatedAt))||Date.parse(e.expiresAt)<=Date.parse(e.generatedAt))throw new Yi("RECOVERY_OVERRIDE_INVALID");let t={schemaVersion:1,...e,conflicts:e.conflicts.map(r=>({...r})).sort((r,n)=>r.path.localeCompare(n.path))};return Object.freeze({...t,planId:h(k(t))})}function Ay(e){let t=e;if(!t||typeof t!="object"||Object.keys(t).length!==7)throw new Yi("RECOVERY_OVERRIDE_INVALID");let r=kd({transactionPlanId:t.transactionPlanId,transactionRootDigest:t.transactionRootDigest,conflicts:t.conflicts,generatedAt:t.generatedAt,expiresAt:t.expiresAt});if(t.schemaVersion!==1||t.planId!==r.planId)throw new Yi("RECOVERY_OVERRIDE_INVALID");return r}var Hi=class extends Error{code;constructor(t,r){super(r),this.code=t}},Ad=/^sha256:[a-f0-9]{64}$/u,RP=/^sha512-[A-Za-z0-9+/]{86}==$/u,EP=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/u,PP=/^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$/u,NP=/[\u0000-\u001f\u007f]/u;function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}function Tn(e,t){let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,o)=>i===n[o])}function Yt(e,t=500){return typeof e=="string"&&e.length>0&&e.length<=t&&!NP.test(e)}function _d(e){return Yt(e,500)&&!e.startsWith("/")&&!e.startsWith("../")&&!e.includes("/../")&&!e.includes("\\")}function Ry(e,t=128){return Array.isArray(e)&&e.length<=t&&e.every(r=>Yt(r,500))&&e.every((r,n)=>n===0||e[n-1]<r)}function OP(e){return e===null?!0:!$n(e)||!Tn(e,["fileName","digest","integrity","fileCount","unpackedBytes"])?!1:_d(e.fileName)&&Ad.test(String(e.digest))&&RP.test(String(e.integrity))&&Number.isSafeInteger(e.fileCount)&&Number(e.fileCount)>0&&Number.isSafeInteger(e.unpackedBytes)&&Number(e.unpackedBytes)>0}function SP(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"||!EP.test(e.packageName)||!PP.test(e.version)||!Yt(e.title,120)||!Yt(e.summary,1e3)||!["candidate","stable","deprecated"].includes(e.maturity)||!$n(e.source)||!Tn(e.source,["repository","path","revision","treeDigest"])||!Yt(e.source.repository)||!_d(e.source.path)||!Yt(e.source.revision,200)||!Ad.test(String(e.source.treeDigest))||!OP(e.artifact)||!$n(e.compatibility)||!Tn(e.compatibility,["node","packageManager"])||!Yt(e.compatibility.node,100)||!Yt(e.compatibility.packageManager,100)||!Ry(e.exports)||!Ry(e.consumerEvidence)||!$n(e.documentation))return!1;let t=e.documentation.knowledgeRef===void 0?["readme"]:["readme","knowledgeRef"];return!Tn(e.documentation,t)||!_d(e.documentation.readme)||e.documentation.knowledgeRef!==void 0&&!Yt(e.documentation.knowledgeRef,500)?!1:e.artifact!==null||e.maturity!=="stable"}function DP(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(!SP(t))throw new Hi("PACKAGE_RELEASE_INVALID","PackageRelease \u5185\u5BB9\u65E0\u6548");return Object.freeze({...t,releaseDigest:h(k(t))})}function Ey(e){if(!$n(e)||!Tn(e,["schemaVersion","kind","packageName","version","title","summary","maturity","source","artifact","compatibility","exports","documentation","consumerEvidence","releaseDigest"])||!Ad.test(String(e.releaseDigest)))throw new Hi("PACKAGE_RELEASE_INVALID","PackageRelease \u7ED3\u6784\u65E0\u6548");let{releaseDigest:t,schemaVersion:r,kind:n,...i}=e,o=DP(i);if(o.releaseDigest!==t)throw new Hi("PACKAGE_RELEASE_MODIFIED","PackageRelease \u5DF2\u88AB\u4FEE\u6539");return o}import{lstat as jP,readFile as CP,realpath as $P}from"node:fs/promises";import Py from"node:path";async function Ny(e){let t=await $P(Py.resolve(e.projectRoot)),r=new Set(e.excludeCapabilityIds??[]),n=new Map,i=[...e.lock.capabilities].sort((a,s)=>a.committedAt.localeCompare(s.committedAt)||a.capabilityId.localeCompare(s.capabilityId));for(let a of i)if(!r.has(a.capabilityId))for(let s of a.assets){let c=s.ownership??"owned-file",l=`${s.path}\0`;if(c==="managed-region")n.delete(l);else for(let p of n.keys())p.startsWith(l)&&n.delete(p);let d=c==="managed-region"?`${l}${s.regionId??""}`:l;n.set(d,{capabilityId:a.capabilityId,path:s.path,digest:s.digest,ownership:c,...s.regionId===void 0?{}:{regionId:s.regionId}})}let o=[];for(let a of[...n.values()].sort((s,c)=>s.path.localeCompare(c.path)||(s.regionId??"").localeCompare(c.regionId??"")||s.capabilityId.localeCompare(c.capabilityId))){let s=Py.join(t,...a.path.split("/")),l=await jP(s).then(async d=>{if(!d.isFile()||d.isSymbolicLink())return;let p=await CP(s);if(a.ownership!=="managed-region")return h(p);if(a.regionId!==void 0)try{return h(Ko(p.toString("utf8"),a.regionId))}catch{return}}).catch(d=>d.code==="ENOENT"?void 0:Promise.reject(d))===a.digest;o.push({capabilityId:a.capabilityId,path:a.path,kind:"create",ownership:a.ownership,...a.regionId===void 0?{}:{regionId:a.regionId},desiredDigest:a.digest,disposition:l?"noop":"conflict",...l?{}:{conflictCode:"BASE_DIGEST_MISMATCH"}})}return o}import{createHash as TP}from"node:crypto";var LP=/[\u0000-\u001f\u007f]/u,za=e=>`sha256:${TP("sha256").update(Rd(e)).digest("hex")}`,Rd=e=>Array.isArray(e)?`[${e.map(Rd).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>`${JSON.stringify(t)}:${Rd(r)}`).join(",")}}`:JSON.stringify(e),gr=(e,t)=>{if(!e.trim()||e.length>500||LP.test(e))throw new Error(`DEVELOPMENT_${t.toUpperCase()}_INVALID`);return e.trim()},xP=e=>Object.freeze({repository:gr(e.repository,"repository"),branch:gr(e.branch,"branch"),commit:gr(e.commit,"commit")});function Oy(e){if(e.source==="requirement-task"&&(!e.requirementId||!e.taskId))throw new Error("DEVELOPMENT_REQUIREMENT_TASK_REQUIRED");if(e.source==="direct"&&(e.requirementId!==null||e.taskId!==null))throw new Error("DEVELOPMENT_DIRECT_LINK_INVALID");let t={schemaVersion:1,kind:"DevelopmentIntent",source:e.source,intentId:gr(e.intentId,"intent_id"),title:gr(e.title,"title"),summary:gr(e.summary,"summary"),repository:xP(e.repository),requirementId:e.requirementId,taskId:e.taskId,acceptance:Object.freeze(e.acceptance.map(r=>gr(r,"acceptance")))};return Object.freeze({...t,intentDigest:za(t)})}function Sy(e){let t={intentDigest:e.intent.intentDigest,repository:e.intent.repository,worktreePath:gr(e.worktreePath,"worktree"),startedAt:e.startedAt},r={schemaVersion:1,kind:"DevelopmentSession",sessionId:za(t),revision:1,state:"active",intent:e.intent,worktree:Object.freeze({path:t.worktreePath,writable:!0}),engineeringContextDigest:e.engineeringContextDigest,knowledgeContextDigest:e.knowledgeContextDigest??null,startedAt:e.startedAt,finishedAt:null};return Object.freeze({...r,sessionDigest:za(r)})}function Dy(e,t){if(e.state!=="active")throw new Error("DEVELOPMENT_SESSION_NOT_ACTIVE");let r={...e,revision:e.revision+1,state:"finished",worktree:Object.freeze({...e.worktree,writable:!1}),finishedAt:t},{sessionDigest:n,...i}=r;return Object.freeze({...i,sessionDigest:za(i)})}import{readFile as ie,readdir as Jy,realpath as Pt}from"node:fs/promises";import{execFile as ZP,spawn as QP}from"node:child_process";import N from"node:path";import{parseArgs as de,promisify as eN}from"node:util";import{lstat as jy,mkdir as Pd,readFile as Cy,realpath as Ed,rm as VP,writeFile as $y}from"node:fs/promises";import nt from"node:path";var it=class extends Error{constructor(r,n){super(r,n===void 0?void 0:{cause:n});this.code=r}code},MP=e=>k(e),Ty=e=>h(MP(e));async function Ly(e,t){let r=await Ed(nt.resolve(e)),n=nt.join(r,".examples");await Pd(n,{recursive:!0});let i=await Ed(n),o=nt.resolve(r,t);if(nt.dirname(o)!==i||nt.basename(o).startsWith(".")||nt.basename(o).length<1)throw new it("SCAFFOLD_ARGUMENT_INVALID");if(await jy(o).then(()=>!0).catch(a=>a.code==="ENOENT"?!1:Promise.reject(a)))throw new it("SCAFFOLD_TARGET_CONFLICT");return{workspaceRoot:r,output:o,outputRelativePath:nt.relative(r,o)}}async function xy(e){let t=e.artifactFallbackBundles??[];if(!/^sha256:[a-f0-9]{64}$/u.test(e.artifactBundle)||t.some(c=>!/^sha256:[a-f0-9]{64}$/u.test(c))||new Set([e.artifactBundle,...t]).size!==1+t.length||!Number.isSafeInteger(e.artifactPort)||e.artifactPort<1||e.artifactPort>65535)throw new it("SCAFFOLD_ARGUMENT_INVALID");let r=await Ly(e.workspaceRoot,e.output),n=e.now??new Date().toISOString(),i={schemaVersion:1,state:"reviewable",recipeId:e.recipe.recipeId,recipeVersion:e.recipe.version,recipeIntegrity:e.recipe.integrity,workspaceRoot:r.workspaceRoot,outputRelativePath:r.outputRelativePath,locale:e.recipe.locale,channel:"development",artifactBundle:e.artifactBundle,artifactFallbackBundles:t,artifactPort:e.artifactPort,generatedAt:n,expiresAt:new Date(Date.parse(n)+30*6e4).toISOString()},o={...i,planId:Ty(i)},a=nt.join(r.workspaceRoot,".dyyto","scaffold-plans");await Pd(a,{recursive:!0});let s=nt.join(a,`${o.planId}.json`);return await $y(s,`${k(o)}
|
|
46
|
-
`,{flag:"wx",mode:384}).catch(async c=>{if(c.code!=="EEXIST"||await
|
|
47
|
-
`)throw new
|
|
48
|
-
`,{flag:"wx",mode:384}),{evidenceId:o,output:r.output,receipts:n}}import{lstat as Xi,readFile as Nd,readdir as UP,realpath as Od}from"node:fs/promises";import ye from"node:path";var My={capabilities:ye.resolve(import.meta.dirname,"catalog"),packages:ye.resolve(import.meta.dirname,"package-releases")};function Uy(e,t){return e<t?-1:e>t?1:0}function Ja(e){return Array.isArray(e)?`[${e.filter(t=>t!==void 0).map(Ja).join(",")}]`:e!==null&&typeof e=="object"?`{${Object.entries(e).filter(([,t])=>t!==void 0).sort(([t],[r])=>Uy(t,r)).map(([t,r])=>`${JSON.stringify(t)}:${Ja(r)}`).join(",")}}`:JSON.stringify(e)??"null"}function qP(e){let t=new Map;for(let[r,n]of e.split(/\r?\n/u).entries()){let i=n.trim();if(i===""||i.startsWith("#"))continue;if(i.startsWith("export "))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u4F7F\u7528 export`);let o=/^([A-Z][A-Z0-9_]*)=(.*)$/u.exec(i);if(!o)throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u662F\u4E25\u683C KEY=VALUE \u683C\u5F0F`);if(t.has(o[1]))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u5305\u542B\u91CD\u590D\u53D8\u91CF ${o[1]}`);let a=o[2].trim();if((a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),/[`$][({]?/u.test(a))throw new Error(`Dyyto \u7EC4\u4EF6 .env:${r+1} \u4E0D\u5141\u8BB8\u547D\u4EE4\u6216\u53D8\u91CF\u5C55\u5F00`);t.set(o[1],a)}return t}async function Fy(e,t){let r=await Xi(e);if(!r.isFile()||r.isSymbolicLink()||r.nlink!==1)throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u975E\u94FE\u63A5\u6587\u4EF6`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-385)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80600`)}async function Ga(e,t){let r=await Xi(e);if(!r.isDirectory()||r.isSymbolicLink())throw new Error(`${t}\u5FC5\u987B\u662F\u666E\u901A\u76EE\u5F55\u4E14\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5`);if(typeof process.getuid=="function"&&r.uid!==process.getuid())throw new Error(`${t}\u5FC5\u987B\u7531\u5F53\u524D\u7528\u6237\u62E5\u6709`);if((r.mode&511&-449)!==0)throw new Error(`${t}\u6743\u9650\u8FC7\u5BBD\uFF0C\u6700\u5927\u5141\u8BB80700`);return Od(e)}async function BP(e){let t=e;for(;;){if(await Xi(ye.join(t,".git")).then(()=>!0).catch(n=>n.code==="ENOENT"?!1:Promise.reject(n)))throw new Error(`IDP_CONFIG_DIR \u5FC5\u987B\u4F4D\u4E8E Git \u4ED3\u5E93\u5916\uFF1A${t}`);let r=ye.dirname(t);if(r===t)return;t=r}}async function zP(e){if(!ye.isAbsolute(e))throw new Error("IDP_CONFIG_DIR \u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let t=await Ga(e,"IDP_CONFIG_DIR");await BP(t);let r=await Ga(ye.join(t,"components"),"components"),n=await Ga(ye.join(r,"dyyto"),"Dyyto \u914D\u7F6E\u76EE\u5F55"),i=ye.relative(t,n);if(i.startsWith("..")||ye.isAbsolute(i))throw new Error("Dyyto \u914D\u7F6E\u76EE\u5F55\u8D8A\u8FC7 IDP_CONFIG_DIR");let o=ye.join(n,".env");await Fy(o,"Dyyto \u7EC4\u4EF6 .env");let a=qP(await Nd(o,"utf8")).get("DYYTO_PACKAGE_CATALOG_DIRS_FILE");if(a===void 0||a==="")return[];if(ye.isAbsolute(a)||a.includes("\0")||/[*?{}[\]]/u.test(a))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u662F\u7EC4\u4EF6\u76EE\u5F55\u5185\u7684\u666E\u901A\u76F8\u5BF9\u6587\u4EF6\u8DEF\u5F84");let s=ye.resolve(n,a),c=ye.relative(n,s);if(c===""||c.startsWith("..")||ye.isAbsolute(c))throw new Error("DYYTO_PACKAGE_CATALOG_DIRS_FILE \u5FC5\u987B\u4F4D\u4E8E\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55\u5185");let l=n;for(let u of c.split(ye.sep).slice(0,-1))l=await Ga(ye.join(l,u),"Package Catalog Binding \u7236\u76EE\u5F55");let d=await Od(ye.dirname(s)),p=ye.relative(n,d);if(p.startsWith("..")||ye.isAbsolute(p))throw new Error("Package Catalog Binding \u89E3\u6790\u540E\u8D8A\u8FC7\u7EC4\u4EF6\u914D\u7F6E\u76EE\u5F55");await Fy(s,"Package Catalog Binding");let f=[];for(let u of(await Nd(s,"utf8")).split(/\r?\n/u)){let m=u.trim();if(m===""||m.startsWith("#"))continue;if(!ye.isAbsolute(m))throw new Error("Package Catalog Binding \u4E2D\u7684\u8DEF\u5F84\u5FC5\u987B\u662F\u7EDD\u5BF9\u8DEF\u5F84");let g=await Xi(m);if(!g.isDirectory()||g.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");let y=await Od(m),w=await Xi(y);if(!w.isDirectory()||w.isSymbolicLink())throw new Error("Package Catalog Binding \u5FC5\u987B\u6307\u5411\u666E\u901A\u76EE\u5F55");f.includes(y)||f.push(y)}return f.sort()}async function GP(){let e=process.env.IDP_CONFIG_DIR,t=e===void 0?[]:await zP(e);return{capabilities:My.capabilities,packages:[My.packages,...t]}}async function Wa(e){return(await UP(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&!t.isSymbolicLink()).map(t=>t.name).sort()}function JP(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 WP(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 KP(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 YP(e){let t=[];for(let r of await Wa(e))for(let n of await Wa(ye.join(e,r))){let i=`capability:${r}@${n}`;t.push(Re(ye.join(e,r,n)).then(o=>({entry:{item:WP(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 HP(e){let t=[];for(let r of await Wa(e))for(let n of await Wa(ye.join(e,r))){let i=ye.join(e,r,n,"release.json"),o=`package:${r}@${n}`;t.push(Nd(i,"utf8").then(a=>{let s=Ey(JSON.parse(a));return{entry:{item:KP(s),release:s}}}).catch(()=>({diagnostic:{ref:o,code:"CATALOG_RELEASE_INVALID",message:"PackageRelease \u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C"}})))}return(await Promise.all(t)).reduce((r,n)=>(n.entry!==void 0&&r.entries.push(n.entry),n.diagnostic!==void 0&&r.diagnostics.push(n.diagnostic),r),{entries:[],diagnostics:[]})}async function Sd(e){let t=e??await GP(),r=typeof t.packages=="string"?[t.packages]:[...t.packages],[n,...i]=await Promise.all([YP(t.capabilities),...r.map(HP)]),o=[...n.entries,...i.flatMap(l=>l.entries)].sort((l,d)=>l.item.ref.localeCompare(d.item.ref)),a=[],s=new Set,c=[];for(let l of o)s.has(l.item.ref)?c.push({ref:l.item.ref,code:"CATALOG_RELEASE_DUPLICATE",message:"\u591A\u4E2A Catalog Source \u58F0\u660E\u4E86\u540C\u4E00\u4E0D\u53EF\u53D8\u53D1\u884C ref"}):(s.add(l.item.ref),a.push(l));return{entries:a,diagnostics:[...n.diagnostics,...i.flatMap(l=>l.diagnostics),...c].sort((l,d)=>l.ref.localeCompare(d.ref))}}async function Ka(e){let t=(e.query??"").trim().toLocaleLowerCase("zh-CN"),r=await Sd(e.roots),n=new Map;for(let{item:a}of r.entries){if(e.kind!==void 0&&a.kind!==e.kind)continue;let s=[a.id,a.version,a.title,a.summary,a.maturity].join(" ").toLocaleLowerCase("zh-CN");if(t!==""&&!s.includes(t))continue;let c=`${a.kind}:${a.id}`,l=n.get(c);(l===void 0||JP(l.version,a.version)<0)&&n.set(c,a)}let i=[...n.values()].sort((a,s)=>a.ref.localeCompare(s.ref)),o=e.limit??50;return{query:t,total:i.length,items:i.slice(0,o),diagnostics:r.diagnostics}}async function Ya(e){let t=e.ref.startsWith("package:")||e.ref.startsWith("capability:")?e.ref:`${e.ref.startsWith("@")?"package":"capability"}:${e.ref}`,r=await Sd(e.roots),n=r.entries.find(({item:o})=>o.ref===t),i=r.diagnostics.find(o=>o.ref===t);if(i?.code==="CATALOG_RELEASE_DUPLICATE")throw new Error(`\u53D1\u884C ref \u5728\u591A\u4E2A Catalog Source \u4E2D\u91CD\u590D\uFF1A${e.ref}`);if(n===void 0&&i!==void 0)throw new Error(`\u53D1\u884C\u672A\u901A\u8FC7\u5B8C\u6574\u6027\u6821\u9A8C\uFF1A${e.ref}`);if(n===void 0)throw new Error(`\u76EE\u5F55\u4E2D\u4E0D\u5B58\u5728\u53D1\u884C\uFF1A${e.ref}`);return n}function XP(e){let t=new Map;for(let{item:r,release:n}of e){if(r.kind!=="capability"||typeof n!="object"||n===null)continue;let i=n;if(typeof i.capabilityId!="string"||typeof i.version!="string"||!Array.isArray(i.integration?.packages))continue;let o=`capability:${i.capabilityId}@${i.version}`;for(let a of i.integration.packages){if(typeof a!="object"||a===null)continue;let s=a;if(typeof s.packageName!="string"||typeof s.version!="string")continue;let c=`${s.packageName}@${s.version}`,l=t.get(c)??new Set;l.add(o),t.set(c,l)}}return t}async function qy(e){let t=new Date(e.generatedAt);if(Number.isNaN(t.getTime())||t.toISOString()!==e.generatedAt)throw new Error("generatedAt \u5FC5\u987B\u662F\u89C4\u8303 ISO-8601 UTC \u65F6\u95F4");let r=await Sd(e.roots);if(r.diagnostics.length>0)throw new Error(`Catalog \u5B58\u5728 ${r.diagnostics.length} \u4E2A\u65E0\u6548\u6216\u91CD\u590D\u53D1\u884C\uFF0C\u7981\u6B62\u5BFC\u51FA\u751F\u4EA7\u6295\u5F71`);let n=XP(r.entries),i=r.entries.filter(({item:a})=>a.kind==="package").map(({release:a})=>{let s=a;return Object.freeze({kind:"package",ref:`package:${s.packageName}@${s.version}`,packageName:s.packageName,version:s.version,releaseDigest:s.releaseDigest,capabilities:Object.freeze([...n.get(`${s.packageName}@${s.version}`)??[]].sort())})}).sort((a,s)=>Uy(a.ref,s.ref)),o={schemaVersion:1,generatedAt:e.generatedAt,items:Object.freeze(i)};return Object.freeze({...o,sourceDigest:h(Ja(o))})}function By(e){let{sourceDigest:t,...r}=e;if(!/^sha256:[a-f0-9]{64}$/u.test(t)||h(Ja(r))!==t)throw new Error("Dyyto Package Catalog Snapshot \u6458\u8981\u65E0\u6548");return`${JSON.stringify(e,null,2)}
|
|
49
|
-
`}var Zi={"typescript-library":"foundation.typescript-quality@1.0.0","standalone-npm-package":"foundation.standalone-npm-package@1.2.0","workspace-root":"foundation.workspace-root@1.1.0","workspace-npm-package":"foundation.workspace-npm-package@1.2.0","workspace-node-application":"foundation.workspace-node-application@1.1.0","workspace-web-application":"foundation.workspace-web-application@1.1.0","workspace-expo-application":"foundation.workspace-expo-application@1.0.0","react-component-library":"foundation.react-component-library@1.1.0","workspace-react-component-library":"foundation.workspace-react-component-library@1.2.0","nextjs-full-stack-application":"foundation.nextjs-full-stack-application@1.0.0"},Wy=eN(ZP),tN=new Set(["template.typescript-library@1.0.0","template.typescript-library@1.1.0","template.react-component-library@1.0.0","template.react-component-library@1.1.0","template.nextjs-full-stack-application@1.0.0","template.expo-react-native-application@1.0.0","template.node-api-application@1.0.0","template.workspace-root@1.0.0","template.workspace-root@1.1.0","template.workspace-root@1.2.0","template.workspace-npm-package@1.0.0","template.workspace-react-component-library@1.0.0","template.workspace-react-component-library@1.1.0","template.workspace-react-component-library@1.2.0","template.web-frontend-application@1.0.0"]),Ky=(e,t)=>e==="foundation.workspace-root"&&t==="1.4.0"?{id:"template.workspace-root",version:"1.1.0"}:e==="foundation.workspace-root"&&t==="1.5.0"?{id:"template.workspace-root",version:"1.2.0"}:void 0,Ha={"workspace-npm-package":{id:"template.workspace-npm-package",version:"1.0.0"},"react-component-library":{id:"template.workspace-react-component-library",version:"1.2.0"},"workspace-web-application":{id:"template.web-frontend-application",version:"1.0.0"},"workspace-node-application":{id:"template.node-api-application",version:"1.0.0"},"workspace-expo-application":{id:"template.expo-react-native-application",version:"1.0.0"},"nextjs-full-stack-application":{id:"template.nextjs-full-stack-application",version:"1.0.0"}};function Yy(e){return e.capabilities.flatMap(t=>t.assets).filter(t=>t.ownership!=="seed-file")}async function Xa(e,t,r,n){if(t.release.schemaVersion!==2||t.release.packageSources.length===0)return;if(r.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Capability Release v2 requires a trusted Package Source Provider");let i=await ie(N.join(e,"package.json")),o=await r.packageSourceProvider.inspect({projectRoot:e,release:t.release}),{resolvePnpmLock:a}=await import("./optional-runtime.js"),s=await zt(e),c=await ie(N.join(s.transactionRoot,s.lockfilePath)).catch(p=>p.code==="ENOENT"?void 0:Promise.reject(p));if(s.mode==="pnpm-shared-lockfile"){if(!c)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Workspace shared lockfile is unavailable");if(!r.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package adoption requires verified Resolution Worker Evidence");let p=xi({release:t.release,packageJson:n??i}),f=new Date,u=new Date(f.getTime()+1800*1e3).toISOString(),m=await r.resolutionWorkerProvider.resolveWorkspace({topology:s,desiredPackageJson:p,currentLockfile:c,sources:t.release.packageSources,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:f.toISOString(),expiresAt:u});return{...o,lockResolution:{lockfile:m.evidence.desiredLockfile,packages:m.evidence.packageFacts.filter(g=>g.managed).map(({registryId:g,packageName:y,version:w,integrity:A})=>({registryId:g,packageName:y,version:w,integrity:A}))},resolutionEvidence:m.evidence,resolutionWorkerReleaseId:m.workerReleaseId,topology:s,currentLockfile:c,preservedImporterDigests:m.preservedImporterDigests}}let l=Ql({release:t.release,packageJson:n??i}),d=await a({desiredPackageJson:l,...c===void 0?{}:{currentLockfile:c},sources:t.release.packageSources,registries:o.registryConfigs,endpointBindings:o.endpointBindings});return{...o,lockResolution:d,topology:s,...c===void 0?{}:{currentLockfile:c},preservedImporterDigests:[]}}async function Hy(e,t,r,n){let i=r.capabilities.find(b=>b.capabilityId===t.release.capabilityId&&b.version===t.release.version);if(i&&!i.packageAdoption){let b=JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")),R=new Date;return ry({projectRoot:e,manifest:b,release:t,currentLock:r,generatedAt:R.toISOString(),expiresAt:new Date(R.getTime()+30*6e4).toISOString()})}if(t.release.schemaVersion!==2||n.packageSourceProvider===void 0)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires a trusted Package Source Provider");if(!i?.packageAdoption)throw new le("CAPABILITY_RELEASE_VERSION_UNSUPPORTED","Package removal requires Lock v2 ownership facts");let o=await n.packageSourceProvider.inspect({projectRoot:e,release:t.release}),a=await ie(N.join(e,"package.json")),s=await ie(N.join(e,"project-capabilities.json")),c=await zt(e),l=await ie(N.join(c.transactionRoot,c.lockfilePath)),d=new Set(r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources.map(R=>R.packageName)??[])),p=i.packageAdoption.sources.filter(b=>!d.has(b.packageName)),f=c.mode==="pnpm-shared-lockfile"?td({packageJson:a,remove:p}):ed({packageJson:a,remove:p}),u=r.capabilities.filter(b=>b!==i).flatMap(b=>b.packageAdoption?.sources??[]),m=new Date,g=new Date(m.getTime()+1800*1e3).toISOString();if(c.mode==="pnpm-shared-lockfile"){if(!n.resolutionWorkerProvider)throw new le("CAPABILITY_PACKAGE_SOURCE_INVALID","Shared workspace package removal requires verified Resolution Worker Evidence");let b=await n.resolutionWorkerProvider.resolveWorkspace({topology:c,desiredPackageJson:f,currentLockfile:l,sources:u,registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings,generatedAt:m.toISOString(),expiresAt:g}),R=[`${c.unitRelativeRoot}/project-capabilities.json`,`${c.unitRelativeRoot}/package.json`,c.lockfilePath,...i.assets.map(_=>`${c.unitRelativeRoot}/${_.path}`)],I=await Promise.all(R.map(async _=>ie(N.join(c.transactionRoot,..._.split("/"))).then(S=>({path:_,exists:!0,digest:h(S)})).catch(S=>S.code==="ENOENT"?{path:_,exists:!1}:Promise.reject(S))));return{...cg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,endpointBindings:o.endpointBindings,observedAssets:I,topology:c,transactionRoot:c.transactionRoot,preservedImporterDigests:b.preservedImporterDigests,resolutionEvidence:b.evidence,resolutionWorkerReleaseId:b.workerReleaseId,remainingSources:u,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}let{resolvePnpmLock:y}=await import("./optional-runtime.js"),w=await y({desiredPackageJson:f,currentLockfile:l,sources:u,registrySources:[...u,...i.packageAdoption.sources],registries:o.registryConfigs,endpointBindings:o.endpointBindings}),A=await Promise.all(["project-capabilities.json","package.json","pnpm-lock.yaml",...i.assets.map(b=>b.path)].map(async b=>ie(N.join(e,...b.split("/"))).then(R=>({path:b,exists:!0,digest:h(R)})).catch(R=>R.code==="ENOENT"?{path:b,exists:!1}:Promise.reject(R))));return{...sg({release:t.release,currentLock:r,projectManifest:s,packageJson:a,currentLockfile:l,desiredLockfile:w.lockfile,endpointBindings:o.endpointBindings,observedAssets:A,generatedAt:m.toISOString(),expiresAt:g}),registryConfigs:o.registryConfigs,endpointBindings:o.endpointBindings}}function B(e){return e.includes("--json")?"json":"human"}function v(e){throw new j({code:"CLI_ARGUMENT_INVALID",message:e,exitCode:2,nextStep:"Run dyyto --help."})}function Te(e,t){return!/^[a-z0-9][a-z0-9.-]*$/u.test(e)||!/^\d+\.\d+\.\d+$/u.test(t)?v("The selected capability release identifier is invalid."):N.resolve(import.meta.dirname,"catalog",e,t)}function Za(e,t){return tN.has(`${e}@${t}`)?N.resolve(import.meta.dirname,"templates",e,t):v("The selected template release is not bundled with this CLI.")}function rN(e,t){return!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(e)||!/^\d+\.\d+\.\d+$/.test(t)?v("The selected example recipe identity or version is invalid."):N.resolve(import.meta.dirname,"recipes",e,t)}function ee(e){let t=N.relative(process.cwd(),e);return t.length>0&&t!==".."&&!t.startsWith(`..${N.sep}`)?t:N.basename(e)}async function Qa(e){let t=JSON.parse(await ie(N.join(e,"project-capabilities.json"),"utf8")),r=t.capabilities?.[0];if(r===void 0)return v("Project manifest must select one capability.");let n=await Re(Te(r.capabilityId,r.version)),i=await Fe(e).catch(()=>null),o=new Date,s=await(t.profile?.id==="standalone-npm-package"?Oi:t.profile?.id==="react-component-library"?Si:t.profile?.id==="nextjs-full-stack-application"?Sn:t.profile?.id==="workspace-npm-package"?Di:t.profile?.id==="workspace-node-application"?ji:t.profile?.id==="workspace-web-application"?Ci:t.profile?.id==="workspace-expo-application"?$i:Zo)({projectRoot:e,manifest:t,release:n,...i===null?{}:{currentLock:i},generatedAt:o.toISOString(),expiresAt:new Date(o.getTime()+1800*1e3).toISOString()});return Bt({projectRoot:e,plan:s.plan,now:o.toISOString()})}async function Xy(e){let t;try{t=de({args:[...e],allowPositionals:!0,strict:!0,options:{json:{type:"boolean"},profile:{type:"string"},template:{type:"string"},capability:{type:"string"},name:{type:"string"},version:{type:"string"},license:{type:"string"},"publish-access":{type:"string"},repository:{type:"string"}}})}catch{return v("Create arguments are invalid.")}if(t.positionals.length!==1)return v("Create requires exactly one directory.");let r=t.values.template,n;if(typeof r=="string"){let[g,y]=r.split("@");n=await Ki(Za(g,y))}let i=n?.profile.id??t.values.profile;if(i!=="typescript-library"&&i!=="standalone-npm-package"&&i!=="react-component-library"&&i!=="nextjs-full-stack-application"&&i!=="workspace-root")return v("Create requires a supported --profile.");let o=t.values.capability,a=i==="workspace-root"&&o==="foundation.workspace-root@1.0.0"||i==="standalone-npm-package"&&o==="foundation.standalone-npm-package@1.0.0",s=n?.profile.capability??(a?o:Zi[i]);if(n!==void 0&&s.split("@")[0]!==Zi[i].split("@")[0])return v(`Template ${n.templateId} is adopted with dyyto add, not dyyto create.`);if(n===void 0&&o!==s)return v(`Create requires --capability ${s}.`);if(n!==void 0&&o!==void 0)return v("Create with --template does not accept --capability.");let[c,l]=s.split("@"),d={};if(i==="standalone-npm-package"||i==="react-component-library"){let g=t.values.name,y=t.values.version,w=t.values.license,A=t.values["publish-access"],b=t.values.repository;if([g,y,w,A].some(R=>typeof R!="string")||l==="1.1.0"&&typeof b!="string")return v(`Standalone npm package requires --name, --version, --license, --publish-access${l==="1.1.0"?", and --repository":""}.`);d={name:String(g),version:String(y),license:String(w),publishAccess:String(A),...typeof b=="string"?{repository:b}:{}}}else if(i==="nextjs-full-stack-application"){if(typeof t.values.name!="string")return v("Next.js application requires --name.");d={name:t.values.name}}let p={schemaVersion:1,...n===void 0?{}:{template:{id:n.templateId,version:n.version}},profile:{id:i,parameters:d},capabilities:[{capabilityId:c,version:l}]};(i==="standalone-npm-package"||i==="react-component-library")&&fr(W(p),i),i==="nextjs-full-stack-application"&&Ur(W(p));let f=await fa({projectRoot:t.positionals[0],manifest:p}),u=await Qa(f.projectRoot),m=ee(f.projectRoot);return{outputMode:B(e),human:`Project '${m}' initialized.
|
|
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 ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function
|
|
52
|
+
Next: dyyto apply --project ${m} --approve ${u.planId}`,value:{schemaVersion:1,ok:!0,command:"create",result:{project:m,profile:i,...n===void 0?{}:{template:`${n.templateId}@${n.version}`},capability:s,plan:u}}}}async function 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
53
|
Plan: ${m.planId}
|
|
54
54
|
State: ${m.state}
|
|
55
55
|
Files: project-capabilities.json
|
|
56
|
-
Next: dyyto retrofit apply --project ${
|
|
57
|
-
Plan: ${
|
|
56
|
+
Next: dyyto retrofit apply --project ${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:
|
|
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
|
-
Dependency: ${
|
|
67
|
+
Dependency: ${l.dependency.profile} satisfied
|
|
68
|
+
Plan: ${d.planId}
|
|
69
|
+
State: ${d.state}
|
|
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"}
|
|
68
73
|
Plan: ${p.planId}
|
|
69
74
|
State: ${p.state}
|
|
70
|
-
Next: dyyto apply --project ${
|
|
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
|
-
Plan: ${l.planId}
|
|
74
|
-
State: ${l.state}
|
|
75
|
-
Next: dyyto apply --project ${d} --approve ${l.planId}`,value:{schemaVersion:1,ok:!0,command:"remove-feature",result:{project:d,capability:r.values.capability,removedSources:c.removedSources,plan:l}}}}async function cN(e){let t;try{t=de({args:[...e],allowPositionals:!1,strict:!0,options:{json:{type:"boolean"},project:{type:"string"}}})}catch{return v("Plan arguments are invalid.")}if(typeof t.values.project!="string")return v("Plan requires --project <directory>.");let r=N.resolve(t.values.project),n=await Qa(r),i=ee(r),o=n.state==="reviewable"?`Next: dyyto apply --project ${i} --approve ${n.planId}`:"Resolve the reported conflicts before applying.";return{outputMode:B(e),human:`Project: ${i}
|
|
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 ${
|
|
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 ${f} && corepack pnpm install`:`Next: dyyto verify --project ${f}`),value:{schemaVersion:1,ok:!0,command:"apply",result:{project:f,planId:a.planId,transaction:
|
|
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
|
|
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
95
|
Evidence\uFF1A${f.evidenceId}
|
|
96
|
-
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function
|
|
96
|
+
\u72B6\u6001\uFF1Aadopted`,value:{schemaVersion:1,ok:!0,command:"scaffold-example-apply",result:f}}}function 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
|
-
${
|
|
105
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"verify",result:{project:
|
|
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
107
|
`+f.summaries.map(y=>`${y.verifierId}: ${y.result}`).join(`
|
|
108
|
-
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function
|
|
108
|
+
`),value:{schemaVersion:1,ok:!0,command:"verify",result:{project:g,state:"adopted",verifiers:f.summaries,lock:m}}}}async function 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
|
|
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
|
|
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,48 +130,49 @@ Findings: ${i.findings.length}
|
|
|
130
130
|
Unmanaged platform dependencies: ${i.platformDependencies.length} (workspace ${s("workspace")} / registry ${s("registry")} / other ${s("other")})
|
|
131
131
|
|
|
132
132
|
${[...a,...c].join(`
|
|
133
|
-
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function
|
|
134
|
-
\u6765\u6E90\uFF1A${
|
|
135
|
-
Registry\uFF1A${
|
|
136
|
-
\u72B6\u6001\uFF1A${
|
|
137
|
-
Plan\uFF1A${
|
|
138
|
-
Packages\uFF1A${
|
|
139
|
-
\u53D8\u66F4\uFF1A${
|
|
140
|
-
\u5DF2\u5199\u5165\uFF1A${
|
|
133
|
+
`)}`,value:{schemaVersion:1,ok:!0,command:"integrations",result:{project:o,...i,projectRoot:void 0}}}}async function 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
|
+
\u6765\u6E90\uFF1A${l.source}
|
|
135
|
+
Registry\uFF1A${l.registry??"workspace protocol"}
|
|
136
|
+
\u72B6\u6001\uFF1A${l.state}
|
|
137
|
+
Plan\uFF1A${l.planId}
|
|
138
|
+
Packages\uFF1A${l.packages.length}
|
|
139
|
+
\u53D8\u66F4\uFF1A${l.changes.length}
|
|
140
|
+
\u5DF2\u5199\u5165\uFF1A${l.written?"\u662F":"\u5426"}
|
|
141
141
|
|
|
142
142
|
${f.join(`
|
|
143
143
|
`)}${f.length>0?`
|
|
144
144
|
|
|
145
|
-
`:""}\u4E0B\u4E00\u6B65\uFF1A${u}`,value:{schemaVersion:1,ok:!0,command:"packages switch",result:{project:
|
|
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},...
|
|
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
197
|
Receipt: ${f.receiptId}
|
|
197
|
-
External: ${f.externalIdentity}`,value:{schemaVersion:1,ok:!0,command:"delivery-apply",result:{project:o,receipt:f}}}}async function
|
|
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 ts(e,t={}){let r=e[0]==="--"?e.slice(1):e,n=B(r);if(r[0]==="--version"&&r.every(a=>a==="--version"||a==="--json"))return{outputMode:n,human:Fn,value:{schemaVersion:1,ok:!0,command:"version",result:{version:Fn}}};if(r.length===0||r[0]==="--help"||r[0]==="-h")return{outputMode:n,human:np,value:{schemaVersion:1,ok:!0,command:"help",result:{usage:"dyyto <command> [options]"}}};let[i,...o]=r;return i==="catalog"&&o[0]==="search"?PN(o.slice(1)):i==="catalog"&&o[0]==="show"?NN(o.slice(1)):i==="create"?Xy(o):i==="scaffold"&&o[0]==="example"?pN(o.slice(1),t):i==="retrofit"?nN(o):i==="dev"||i==="build"||i==="test"||i==="package"?iN(i,o):i==="add"&&o[0]==="package"?oN(o.slice(1)):i==="add"&&o[0]==="application"?aN(o.slice(1)):i==="add"&&o[0]==="feature"?Zy(o.slice(1),t):i==="remove"&&o[0]==="feature"?sN(o.slice(1),t):i==="plan"?cN(o):i==="upgrade"?dN(o,t):i==="apply"?Dd(o,t):i==="verify"?jd(o):i==="inspect"?Cd(o):i==="doctor"?vN(o):i==="recover"?uN(o):i==="lifecycle"&&typeof o[0]=="string"?fN(o[0],o.slice(1)):i==="packages"&&o[0]==="switch"?gN(o.slice(1)):i==="integrations"?mN(o):i==="maintenance"?yN(o):i==="config"&&o[0]==="inspect"?hN(o.slice(1)):i==="config"&&o[0]==="readiness"?wN(o.slice(1)):i==="operations"?IN(o):i==="baseline"?lN(o):i==="delivery"&&o[0]==="plan"?bN(o.slice(1)):i==="delivery"&&o[0]==="apply"?kN(o.slice(1)):i==="delivery"&&o[0]==="inspect"?_N(o.slice(1)):i==="observe"&&o[0]==="errors"?AN(o.slice(1)):i==="observe"&&o[0]==="error"?RN(o.slice(1)):i==="observe"&&o[0]==="release"&&o[1]==="register"?EN(o.slice(2)):v(`Unknown command '${i}'.`)}import{createServer as ON}from"node:http";import{readFile as SN,readdir as OT,rm as ST}from"node:fs/promises";import{execFile as DN}from"node:child_process";import{promisify as jN}from"node:util";import CN from"node:path";var TT=jN(DN),Td=class{constructor(t=10,r=20,n=Date.now){this.rate=t;this.burst=r;this.now=n}rate;burst;now;buckets=new Map;take(t){let r=this.now(),n=this.buckets.get(t)??{tokens:this.burst,updatedAt:r};return n.tokens=Math.min(this.burst,n.tokens+Math.max(0,r-n.updatedAt)/1e3*this.rate),n.updatedAt=r,n.tokens<1?(this.buckets.set(t,n),{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((1-n.tokens)/this.rate))}):(n.tokens-=1,this.buckets.set(t,n),{allowed:!0})}};async function $N(e){try{let t=JSON.parse(await SN(CN.join(e,".dyyto","observability","config.json"),"utf8"));return!Array.isArray(t.allowedOrigins)||!t.allowedOrigins.every(r=>typeof r=="string")?[]:t.allowedOrigins}catch{return[]}}async function th(e){let t=new Wt(e.workspaceRoot),r=[...e.allowedOrigins??await $N(e.workspaceRoot)],n=new Td,i={accepted:0,rejectedInvalid:0,rejectedOrigin:0,rateLimited:0,storeFailed:0},o=ON(async(s,c)=>{if(c.setHeader("cache-control","no-store"),c.setHeader("content-type","application/json; charset=utf-8"),s.method==="GET"&&s.url==="/health"){c.end(JSON.stringify({status:"healthy"}));return}if(s.method!=="POST"||s.url!=="/v1/runtime-errors"){c.statusCode=404,c.end(JSON.stringify({error:{code:"NOT_FOUND"}}));return}let l=s.headers.origin;if(typeof l!="string"||!r.includes(l)){i.rejectedOrigin+=1,c.statusCode=403,c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_INVALID"}}));return}let d=n.take(l);if(!d.allowed){i.rateLimited+=1,c.statusCode=429,c.setHeader("retry-after",String(d.retryAfterSeconds)),c.end(JSON.stringify({error:{code:"RUNTIME_ERROR_RATE_LIMITED"}}));return}let p=[],f=0;try{for await(let m of s){let g=Buffer.from(m);if(f+=g.length,f>64*1024)throw new ae("RUNTIME_ERROR_TOO_LARGE","Runtime Error request exceeds 64 KiB");p.push(g)}let u=await t.accept(JSON.parse(Buffer.concat(p).toString("utf8")),{receivedAt:new Date().toISOString(),allowedOrigins:r,resolveCorrelation:m=>Xg(e.workspaceRoot,m)});i.accepted+=1,c.statusCode=202,c.end(JSON.stringify({accepted:u}))}catch(u){let m=u instanceof ae?u:null;m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"||m?.code==="RUNTIME_ERROR_TOO_LARGE"?i.rejectedInvalid+=1:i.storeFailed+=1,c.statusCode=m?.code==="RUNTIME_ERROR_TOO_LARGE"?413:m?.code==="RUNTIME_ERROR_RATE_LIMITED"?429:m?.code==="RUNTIME_ERROR_INVALID"||m?.code==="RUNTIME_ERROR_IDENTITY_UNKNOWN"?400:500,c.end(JSON.stringify({error:{code:m?.code??"OBSERVABILITY_STORE_FAILED"}}))}});await new Promise((s,c)=>{o.once("error",c),o.listen(e.port??4318,"127.0.0.1",()=>{o.off("error",c),s()})});let a=o.address();if(a===null||typeof a=="string")throw new Error("Collector did not expose a TCP address");return{server:o,origin:`http://127.0.0.1:${a.port}`,snapshot:()=>({...i}),close:()=>new Promise((s,c)=>o.close(l=>l?c(l):s()))}}import{createHash as TN}from"node:crypto";import{createServer as LN}from"node:http";import{readFile as rh,realpath as nh}from"node:fs/promises";import rs from"node:path";var Ue=class extends Error{constructor(r){super(r);this.code=r}code};function xN(e){return"sha512-"+TN("sha512").update(e).digest("base64")}async function eo(e){let t=await nh(e).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),r=await rh(rs.join(t,"index.json"),"utf8").catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}),n;try{n=Yr(JSON.parse(r))}catch{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}let i=new Map;for(let o of n.artifacts){let a=rs.join(t,o.assetName),s=rs.relative(t,await nh(a).catch(()=>{throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID")}));if(!s||s.startsWith("..")||rs.isAbsolute(s))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=await rh(a);if(h(c)!==o.tarballDigest||xN(c)!==o.integrity)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");i.set(o.assetName,c)}return{root:t,bundle:n,assets:i}}function VN(e){return new Promise((t,r)=>e.close(n=>n?r(n):t()))}function ih(e){return JSON.stringify({packageName:e.packageName,version:e.version,assetName:e.assetName,integrity:e.integrity,tarballDigest:e.tarballDigest,dependencies:e.dependencies,lifecycleScripts:e.lifecycleScripts})}function MN(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 FN(e,t){let r=new Map,n=new Map;for(let i of[e,...t])for(let o of i.bundle.artifacts){let a=`${o.packageName}@${o.version}`,s=r.get(a);if(s!==void 0&&ih(s)!==ih(o))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let c=i.assets.get(o.assetName);if(c===void 0)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let l=n.get(o.assetName);if(l!==void 0&&!Buffer.from(l).equals(c))throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");r.set(a,o),n.set(o.assetName,c)}return{artifacts:[...r.values()],assets:n}}async function oh(e){if(!Number.isSafeInteger(e.port)||e.port<1||e.port>65535||e.hostname!==void 0&&e.hostname!=="127.0.0.1")throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID");let t=await eo(e.bundleRoot),r=await Promise.all((e.fallbackBundleRoots??[]).map(eo)),n=[t.bundle.bundleId,...r.map(s=>s.bundle.bundleId)];if(new Set(n).size!==n.length)throw new Ue("LOCAL_ARTIFACT_BUNDLE_INVALID");let i=FN(t,r),o=e.hostname??"127.0.0.1",a=LN((s,c)=>{let l=s.method??"";if(l!=="GET"&&l!=="HEAD"){c.statusCode=405,c.setHeader("allow","GET, HEAD"),c.end();return}let d=new URL(s.url??"/","http://127.0.0.1").pathname,p=decodeURIComponent(d.slice(1)),f=i.artifacts.filter(u=>u.packageName===p).sort((u,m)=>MN(u.version,m.version));if(f.length>0){let u="http://"+o+":"+e.port,m=Object.fromEntries(f.map(w=>[w.version,{name:w.packageName,version:w.version,dependencies:w.dependencies,dist:{integrity:w.integrity,tarball:u+"/tarballs/"+w.assetName}}])),g=f.at(-1),y=Buffer.from(JSON.stringify({name:g.packageName,versions:m,"dist-tags":{latest:g.version}}));c.statusCode=200,c.setHeader("content-type","application/json"),c.setHeader("content-length",String(y.byteLength)),c.end(l==="HEAD"?void 0:y);return}if(d.startsWith("/tarballs/")){let u=d.slice(10),m=i.assets.get(u);if(m!==void 0){c.statusCode=200,c.setHeader("content-type","application/octet-stream"),c.setHeader("content-length",String(m.byteLength)),c.end(l==="HEAD"?void 0:m);return}}c.statusCode=404,c.setHeader("content-type","application/json"),c.end(l==="HEAD"?void 0:JSON.stringify({error:"not_found"}))});return await new Promise((s,c)=>{a.once("error",c),a.listen(e.port,o,s)}).catch(()=>{throw new Ue("LOCAL_ARTIFACT_SERVER_INVALID")}),Object.freeze({origin:"http://"+o+":"+e.port+"/",bundle:t.bundle,fallbackBundles:Object.freeze(r.map(s=>s.bundle)),close:()=>VN(a)})}import{createHash as UN}from"node:crypto";import{execFile as qN}from"node:child_process";import{cp as BN,mkdir as ah,mkdtemp as Ld,readFile as os,realpath as to,rename as zN,rm as sh,stat as GN,writeFile as is}from"node:fs/promises";import{tmpdir as JN}from"node:os";import Le from"node:path";import{promisify as WN}from"node:util";import{gunzipSync as KN}from"node:zlib";var YN=WN(qN),HN=["preinstall","install","postinstall","prepublish","prepare"],G=class extends Error{constructor(r){super(r);this.code=r}code};function XN(e){return"sha512-"+UN("sha512").update(e).digest("base64")}async function ZN(e,t){let r=await to(e).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")});if(t.length===0||t.length>128||new Set(t).size!==t.length)throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let n=[];for(let i of t){if(!/^(?:packages|fixtures)\/[a-z0-9][a-z0-9._-]{1,127}$/u.test(i))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let o=await to(Le.join(r,i)).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),a=Le.relative(r,o);if(a!==i||a.startsWith("..")||Le.isAbsolute(a))throw new G("LOCAL_ARTIFACT_INPUT_INVALID");let s=await os(Le.join(o,"package.json")).catch(()=>{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}),c;try{c=JSON.parse(Buffer.from(s).toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_INPUT_INVALID")}if(typeof c.name!="string"||typeof c.version!="string")throw new G("LOCAL_ARTIFACT_INPUT_INVALID");n.push({relativeRoot:i,root:o,manifestBytes:s,manifest:c})}return n}function QN(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 e0(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 t0(e,t,r){let n;try{n=KN(e)}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let i=e0(n,"package/package.json");if(i===void 0)throw new G("LOCAL_ARTIFACT_PACK_FAILED");let o;try{o=JSON.parse(i.toString("utf8"))}catch{throw new G("LOCAL_ARTIFACT_PACK_FAILED")}let a=o.dependencies===void 0?{}:o.dependencies;if(typeof a!="object"||a===null||Array.isArray(a))throw new G("LOCAL_ARTIFACT_PACK_FAILED");let s=Object.fromEntries(Object.entries(a).sort(([c],[l])=>c.localeCompare(l)));if(o.name!==t.name||o.version!==t.version||JSON.stringify(s)!==JSON.stringify(r))throw new G("LOCAL_ARTIFACT_PACK_FAILED")}function r0(e,t){return e.dependencies===void 0?!1:Object.entries(e.dependencies).some(([r,n])=>t[r]!==n)}async function n0(e,t,r){let n=Le.join(await Ld(Le.join(r,"stage-")),"package");await BN(e.root,n,{recursive:!0,filter:o=>Le.basename(o)!=="node_modules"});let i=JSON.parse(Buffer.from(e.manifestBytes).toString("utf8"));return await is(Le.join(n,"package.json"),`${JSON.stringify({...i,dependencies:t},null,2)}
|
|
221
|
-
`),n}async function
|
|
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=
|
|
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.40","@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(l=>` ${l}`).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,12 +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
|
-
`,
|
|
283
|
-
|
|
284
|
-
`;
|
|
285
|
-
|
|
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:e2f5831b53b3afc3c7a9ecd6cbccb83494d0992acbd2666ecb50257ec405dbb7"},{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
|
|
286
299
|
|
|
287
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
|
|
288
301
|
`,"idp-integration":`# IDP \u96C6\u6210
|
|
@@ -303,14 +316,17 @@ APP_CONFIG_DIR \u662F\u4E1A\u52A1\u914D\u7F6E\u603B\u6839\uFF1B\u591A\u5E94\u752
|
|
|
303
316
|
`,"idpctl-troubleshooting":`# idpctl \u8BCA\u65AD
|
|
304
317
|
|
|
305
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
|
|
306
|
-
`})[e];import{createHash as
|
|
307
|
-
`)),u}async function
|
|
308
|
-
`)),s}import{createHash as
|
|
309
|
-
`,{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})}
|
|
310
323
|
`:`${JSON.stringify(a,null,2)}
|
|
311
|
-
`,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})}
|
|
312
328
|
`:`Agent\u9002\u914D\u5668\u79FB\u9664${e.includes("--apply")?"\u5B8C\u6210":"Plan\u5DF2\u751F\u6210"}\uFF1A${o.plan.planId}
|
|
313
|
-
`,stderr:""});return}if(e[0]==="bootstrap"||e[0]==="agents"&&e[1]==="sync"){let n=e.indexOf("--project"),i=n<0?
|
|
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})}
|
|
314
330
|
`:a?`\u5DE5\u7A0B\u4E0A\u4E0B\u6587\u5DF2\u521D\u59CB\u5316\u5E76\u9A8C\u8BC1\u3002
|
|
315
331
|
Plan\uFF1A${o.plan.planId}
|
|
316
332
|
\u53D8\u66F4\uFF1A${s.changed.join("\u3001")||"\u65E0"}
|
|
@@ -319,7 +335,7 @@ Next\uFF1Adyyto context --project ${i}
|
|
|
319
335
|
\u6587\u4EF6\uFF1A${o.planFile}
|
|
320
336
|
\u53D8\u66F4\uFF1A${o.changed.join("\u3001")||"\u65E0"}
|
|
321
337
|
Next\uFF1A\u589E\u52A0 --apply \u660E\u786E\u5E94\u7528\u8BE5Plan\u3002
|
|
322
|
-
`,stderr:""});return}if(e[0]==="context"){if(e[1]!==void 0&&e[1]!=="resolve"&&!e[1].startsWith("--"))throw new j({code:"CLI_ARGUMENT_INVALID",message:"context \u53EA\u652F\u6301 resolve \u5B50\u547D\u4EE4\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto context resolve --project <\u7EDD\u5BF9\u8DEF\u5F84>\u3002"});let n=e.indexOf("--project"),i=n<0?
|
|
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})}
|
|
323
339
|
`:`\u4E0A\u4E0B\u6587\uFF1A${o.contextDigest}
|
|
324
340
|
\u5206\u652F\uFF1A${o.repository.branch??"\u672A\u8BC6\u522B"}
|
|
325
341
|
\u63D0\u4EA4\uFF1A${o.repository.commit??"\u672A\u8BC6\u522B"}
|
|
@@ -334,52 +350,52 @@ ${o.requiredBeforeCoding.map(a=>`- ${a}`).join(`
|
|
|
334
350
|
\u7981\u6B62\u4E8B\u9879\uFF1A
|
|
335
351
|
${o.prohibitions.map(a=>`- ${a}`).join(`
|
|
336
352
|
`)}
|
|
337
|
-
`,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})}
|
|
338
354
|
`:`${y==="ready"?"\u2713":y==="attention"?"!":"\u2717"} \u5F00\u53D1\u5C31\u7EEA\u72B6\u6001\uFF1A${y}
|
|
339
355
|
\u4E0A\u4E0B\u6587\uFF1A${a.contextDigest}
|
|
340
356
|
Bootstrap\uFF1A${a.bootstrap.status}
|
|
341
357
|
\u914D\u7F6E\uFF1A${g?"ready":"blocked"}
|
|
342
358
|
\u5DE5\u7A0B\u68C0\u67E5\uFF1A${m===0?"\u901A\u8FC7":"\u963B\u585E"}
|
|
343
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"}
|
|
344
|
-
`,stderr:""}),
|
|
345
|
-
`:o,stderr:""});return}if(e[0]==="package"&&e[1]==="publish"||e[0]==="publish"){let n=e[0]==="publish"?1:2,i=e.slice(n),o=i[0];if(!new Set(["plan","apply","inspect"]).has(o??""))throw new
|
|
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})}
|
|
346
362
|
`:`${o==="plan"?"\u53D1\u5E03Plan\u5DF2\u751F\u6210":o==="apply"?"\u53D1\u5E03Apply\u5DF2\u5B8C\u6210":"\u53D1\u5E03\u72B6\u6001\u5DF2\u68C0\u67E5"}\u3002
|
|
347
363
|
${JSON.stringify(f,null,2)}
|
|
348
|
-
`,stderr:""});return}if(e[0]==="mcp"&&e[1]==="serve"){if(e.length!==2)throw new j({code:"CLI_ARGUMENT_INVALID",message:"mcp serve \u4E0D\u63A5\u53D7\u989D\u5916\u53C2\u6570\u3002",exitCode:2,nextStep:"\u8FD0\u884C dyyto mcp serve\uFF0C\u5E76\u901A\u8FC7 stdin/stdout \u4F7F\u7528 JSON-RPC\u3002"});await
|
|
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})}
|
|
349
365
|
`:`\u62D3\u6251\u8FC1\u79FB Plan\uFF1A${o.plan.planId}
|
|
350
366
|
\u72B6\u6001\uFF1A${o.plan.state}
|
|
351
367
|
Next\uFF1Adyyto topology apply --project ${i} --approve ${o.plan.planId}
|
|
352
|
-
`,stderr:""});return}if(e[0]==="topology"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({code:"CLI_ARGUMENT_INVALID",message:"\u62D3\u6251\u8FC1\u79FB Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u5BA1\u6838\u5E76\u4F7F\u7528\u7CBE\u786E Plan ID\u3002"});let s=await
|
|
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})}
|
|
353
369
|
`:`\u62D3\u6251\u8FC1\u79FB\u5DF2 Apply\uFF1A${s.planId}
|
|
354
370
|
Next\uFF1Adyyto topology inspect --project ${i}
|
|
355
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="plan"){let n=e.indexOf("--project"),i=e[n+1];if(n<0||!i)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Plan \u9700\u8981 --project\u3002",exitCode:2,nextStep:"\u6307\u5B9A\u53D1\u751F\u5171\u4EAB\u4E8B\u52A1\u51B2\u7A81\u7684\u5355\u5143\u9879\u76EE\u3002"});let o=await
|
|
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}})}
|
|
356
372
|
`:`Recovery Override Plan\uFF1A${o.planId}
|
|
357
373
|
\u51B2\u7A81\uFF1A${o.conflicts.length}
|
|
358
|
-
`,stderr:""});return}if(e[0]==="recovery-override"&&e[1]==="apply"){let n=e.indexOf("--project"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||!i||o<0||!a)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Recovery Override Apply \u9700\u8981 --project \u4E0E --approve\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u7CBE\u786E Recovery Override Plan ID\u3002"});let s=await
|
|
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}})}
|
|
359
375
|
`:`Recovery Override \u5DF2\u5B8C\u6210\uFF1A${s.state}
|
|
360
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--maximum-bytes"),a=Number(e[o+1]);if(n<0||i===void 0||o<0||!Number.isSafeInteger(a)||a<1)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Plan \u9700\u8981 --workspace \u548C\u6B63\u6574\u6570 --maximum-bytes\u3002",exitCode:2,nextStep:"\u4F7F\u7528\u5DF2\u6279\u51C6\u7684\u5BB9\u91CF\u4E0A\u9650\u91CD\u65B0\u751F\u6210 Build Plan\u3002"});let s=await
|
|
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}})}
|
|
361
377
|
`:`Resolution Worker Build Plan \u5DF2\u751F\u6210\uFF1A${s.planId}
|
|
362
378
|
\u5BB9\u91CF\u4E0A\u9650\uFF1A${s.maximumBytes} bytes
|
|
363
379
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u5DF2\u6388\u6743\u9636\u6BB5\u6267\u884C
|
|
364
|
-
`,stderr:""});return}if(e[0]==="resolution-worker"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({code:"CLI_ARGUMENT_INVALID",message:"Resolution Worker Apply \u9700\u8981 --workspace \u548C\u7CBE\u786E --approve Plan ID\u3002",exitCode:2,nextStep:"\u68C0\u67E5\u4E0D\u53EF\u53D8 Build Plan\u3002"});let s=await
|
|
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}})}
|
|
365
381
|
`:`Resolution Worker \u5DF2\u9884\u70ED\uFF1A${s.receiptId}
|
|
366
382
|
\u7F13\u5B58\uFF1A${s.cacheBytes} bytes
|
|
367
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="plan"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.flatMap((s,c)=>s==="--package-dir"&&e[c+1]!==void 0?[e[c+1]]:[]);if(n<0||i===void 0||o.length===0)throw new j({code:"CLI_ARGUMENT_INVALID",message:"Artifacts plan requires --workspace and at least one --package-dir.",exitCode:2,nextStep:"Run dyyto --help."});let a=await
|
|
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}})}
|
|
368
384
|
`:`\u672C\u5730\u5236\u54C1 Plan \u5DF2\u751F\u6210\uFF1A${a.planId}
|
|
369
385
|
Bundle\uFF1A${a.bundle.bundleId}
|
|
370
386
|
\u72B6\u6001\uFF1A\u7B49\u5F85\u660E\u786E\u6279\u51C6
|
|
371
387
|
Next\uFF1Adyyto artifacts apply --workspace ${i} --approve ${a.planId}
|
|
372
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="apply"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--approve"),a=e[o+1];if(n<0||i===void 0||o<0||a===void 0||!/^sha256:[a-f0-9]{64}$/u.test(a))throw new j({code:"CLI_ARGUMENT_INVALID",message:"Artifacts apply requires --workspace and an exact --approve Plan ID.",exitCode:2,nextStep:"Review and approve the immutable Artifact Plan."});let s=await
|
|
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"}})}
|
|
373
389
|
`:`\u672C\u5730\u5236\u54C1 Bundle \u5DF2\u5199\u5165\uFF1A${s.bundleId}
|
|
374
390
|
Channel\uFF1Adevelopment
|
|
375
391
|
Next\uFF1Adyyto artifacts serve --workspace ${i} --bundle ${s.bundleId} --port 4873
|
|
376
|
-
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--bundle"),a=e[o+1],s=e.flatMap((f,u)=>f==="--fallback-bundle"&&e[u+1]!==void 0?[e[u+1]]:[]),c=e.indexOf("--port"),
|
|
377
|
-
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${
|
|
378
|
-
\u4E3B Bundle\uFF1A${
|
|
379
|
-
Fallback Bundles\uFF1A${
|
|
392
|
+
`,stderr:""});return}if(e[0]==="artifacts"&&e[1]==="serve"){let n=e.indexOf("--workspace"),i=e[n+1],o=e.indexOf("--bundle"),a=e[o+1],s=e.flatMap((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"}})}
|
|
393
|
+
`:`\u672C\u5730\u53EA\u8BFB\u5236\u54C1\u670D\u52A1\u5DF2\u542F\u52A8\uFF1A${l.origin}
|
|
394
|
+
\u4E3B Bundle\uFF1A${l.bundle.bundleId}
|
|
395
|
+
Fallback Bundles\uFF1A${l.fallbackBundles.map(f=>f.bundleId).join(", ")||"\u65E0"}
|
|
380
396
|
Channel\uFF1Adevelopment
|
|
381
|
-
`,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}})}
|
|
382
398
|
`:`\u672C\u5730\u91C7\u96C6\u7AEF\u5DF2\u542F\u52A8\uFF1A${s.origin}
|
|
383
|
-
`,stderr:""});let c=async()=>{await s.close(),
|
|
384
|
-
Cause: ${
|
|
385
|
-
`)}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};
|