faf-cli 7.1.2 → 7.1.4
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 +77 -266
- package/dist/cli.js +227 -227
- package/dist/cli.js.map +14 -13
- package/dist/core/version.d.ts +10 -0
- package/dist/index.js +98 -98
- package/dist/index.js.map +8 -7
- package/package.json +3 -2
- package/project.faf +44 -3
package/dist/index.js
CHANGED
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
import{createRequire as
|
|
2
|
-
`)}}u.defaultYaml={explicit:!1,version:"1.2"};u.defaultTags={"!!":"tag:yaml.org,2002:"};
|
|
3
|
-
`)?
|
|
1
|
+
import{createRequire as Q6}from"node:module";var Z6=Object.defineProperty;var R=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var U6=($)=>$;function X6($,Z){this[$]=U6.bind(null,Z)}var z6=($,Z)=>{for(var U in Z)Z6($,U,{get:Z[U],enumerable:!0,configurable:!0,set:X6.bind(Z,U)})};var h0=Q6(import.meta.url);var b=R((A6)=>{var D2=Symbol.for("yaml.alias"),a9=Symbol.for("yaml.document"),R$=Symbol.for("yaml.map"),i9=Symbol.for("yaml.pair"),I2=Symbol.for("yaml.scalar"),M$=Symbol.for("yaml.seq"),s=Symbol.for("yaml.node.type"),I6=($)=>!!$&&typeof $==="object"&&$[s]===D2,R6=($)=>!!$&&typeof $==="object"&&$[s]===a9,M6=($)=>!!$&&typeof $==="object"&&$[s]===R$,P6=($)=>!!$&&typeof $==="object"&&$[s]===i9,s9=($)=>!!$&&typeof $==="object"&&$[s]===I2,T6=($)=>!!$&&typeof $==="object"&&$[s]===M$;function r9($){if($&&typeof $==="object")switch($[s]){case R$:case M$:return!0}return!1}function F6($){if($&&typeof $==="object")switch($[s]){case D2:case R$:case I2:case M$:return!0}return!1}var K6=($)=>(s9($)||r9($))&&!!$.anchor;A6.ALIAS=D2;A6.DOC=a9;A6.MAP=R$;A6.NODE_TYPE=s;A6.PAIR=i9;A6.SCALAR=I2;A6.SEQ=M$;A6.hasAnchor=K6;A6.isAlias=I6;A6.isCollection=r9;A6.isDocument=R6;A6.isMap=M6;A6.isNode=F6;A6.isPair=P6;A6.isScalar=s9;A6.isSeq=T6});var p0=R((p6)=>{var f=b(),h=Symbol("break visit"),n9=Symbol("skip children"),c=Symbol("remove node");function P$($,Z){let U=o9(Z);if(f.isDocument($)){if(M0(null,$.contents,U,Object.freeze([$]))===c)$.contents=null}else M0(null,$,U,Object.freeze([]))}P$.BREAK=h;P$.SKIP=n9;P$.REMOVE=c;function M0($,Z,U,X){let z=t9($,Z,U,X);if(f.isNode(z)||f.isPair(z))return e9($,X,z),M0($,z,U,X);if(typeof z!=="symbol"){if(f.isCollection(Z)){X=Object.freeze(X.concat(Z));for(let Q=0;Q<Z.items.length;++Q){let J=M0(Q,Z.items[Q],U,X);if(typeof J==="number")Q=J-1;else if(J===h)return h;else if(J===c)Z.items.splice(Q,1),Q-=1}}else if(f.isPair(Z)){X=Object.freeze(X.concat(Z));let Q=M0("key",Z.key,U,X);if(Q===h)return h;else if(Q===c)Z.key=null;let J=M0("value",Z.value,U,X);if(J===h)return h;else if(J===c)Z.value=null}}return z}async function T$($,Z){let U=o9(Z);if(f.isDocument($)){if(await P0(null,$.contents,U,Object.freeze([$]))===c)$.contents=null}else await P0(null,$,U,Object.freeze([]))}T$.BREAK=h;T$.SKIP=n9;T$.REMOVE=c;async function P0($,Z,U,X){let z=await t9($,Z,U,X);if(f.isNode(z)||f.isPair(z))return e9($,X,z),P0($,z,U,X);if(typeof z!=="symbol"){if(f.isCollection(Z)){X=Object.freeze(X.concat(Z));for(let Q=0;Q<Z.items.length;++Q){let J=await P0(Q,Z.items[Q],U,X);if(typeof J==="number")Q=J-1;else if(J===h)return h;else if(J===c)Z.items.splice(Q,1),Q-=1}}else if(f.isPair(Z)){X=Object.freeze(X.concat(Z));let Q=await P0("key",Z.key,U,X);if(Q===h)return h;else if(Q===c)Z.key=null;let J=await P0("value",Z.value,U,X);if(J===h)return h;else if(J===c)Z.value=null}}return z}function o9($){if(typeof $==="object"&&($.Collection||$.Node||$.Value))return Object.assign({Alias:$.Node,Map:$.Node,Scalar:$.Node,Seq:$.Node},$.Value&&{Map:$.Value,Scalar:$.Value,Seq:$.Value},$.Collection&&{Map:$.Collection,Seq:$.Collection},$);return $}function t9($,Z,U,X){if(typeof U==="function")return U($,Z,X);if(f.isMap(Z))return U.Map?.($,Z,X);if(f.isSeq(Z))return U.Seq?.($,Z,X);if(f.isPair(Z))return U.Pair?.($,Z,X);if(f.isScalar(Z))return U.Scalar?.($,Z,X);if(f.isAlias(Z))return U.Alias?.($,Z,X);return}function e9($,Z,U){let X=Z[Z.length-1];if(f.isCollection(X))X.items[$]=U;else if(f.isPair(X))if($==="key")X.key=U;else X.value=U;else if(f.isDocument(X))X.contents=U;else{let z=f.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${z} parent`)}}p6.visit=P$;p6.visitAsync=T$});var R2=R((s6)=>{var $3=b(),c6=p0(),a6={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},i6=($)=>$.replace(/[!,[\]{}]/g,(Z)=>a6[Z]);class u{constructor($,Z){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},u.defaultYaml,$),this.tags=Object.assign({},u.defaultTags,Z)}clone(){let $=new u(this.yaml,this.tags);return $.docStart=this.docStart,$}atDocument(){let $=new u(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:u.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},u.defaultTags);break}return $}add($,Z){if(this.atNextDocument)this.yaml={explicit:u.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},u.defaultTags),this.atNextDocument=!1;let U=$.trim().split(/[ \t]+/),X=U.shift();switch(X){case"%TAG":{if(U.length!==2){if(Z(0,"%TAG directive should contain exactly two parts"),U.length<2)return!1}let[z,Q]=U;return this.tags[z]=Q,!0}case"%YAML":{if(this.yaml.explicit=!0,U.length!==1)return Z(0,"%YAML directive should contain exactly one part"),!1;let[z]=U;if(z==="1.1"||z==="1.2")return this.yaml.version=z,!0;else{let Q=/^\d+\.\d+$/.test(z);return Z(6,`Unsupported YAML version ${z}`,Q),!1}}default:return Z(0,`Unknown directive ${X}`,!0),!1}}tagName($,Z){if($==="!")return"!";if($[0]!=="!")return Z(`Not a valid tag: ${$}`),null;if($[1]==="<"){let Q=$.slice(2,-1);if(Q==="!"||Q==="!!")return Z(`Verbatim tags aren't resolved, so ${$} is invalid.`),null;if($[$.length-1]!==">")Z("Verbatim tags must end with a >");return Q}let[,U,X]=$.match(/^(.*!)([^!]*)$/s);if(!X)Z(`The ${$} tag has no suffix`);let z=this.tags[U];if(z)try{return z+decodeURIComponent(X)}catch(Q){return Z(String(Q)),null}if(U==="!")return $;return Z(`Could not resolve tag: ${$}`),null}tagString($){for(let[Z,U]of Object.entries(this.tags))if($.startsWith(U))return Z+i6($.substring(U.length));return $[0]==="!"?$:`!<${$}>`}toString($){let Z=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],U=Object.entries(this.tags),X;if($&&U.length>0&&$3.isNode($.contents)){let z={};c6.visit($.contents,(Q,J)=>{if($3.isNode(J)&&J.tag)z[J.tag]=!0}),X=Object.keys(z)}else X=[];for(let[z,Q]of U){if(z==="!!"&&Q==="tag:yaml.org,2002:")continue;if(!$||X.some((J)=>J.startsWith(Q)))Z.push(`%TAG ${z} ${Q}`)}return Z.join(`
|
|
2
|
+
`)}}u.defaultYaml={explicit:!1,version:"1.2"};u.defaultTags={"!!":"tag:yaml.org,2002:"};s6.Directives=u});var F$=R((e6)=>{var Z3=b(),n6=p0();function o6($){if(/[\x00-\x19\s,[\]{}]/.test($)){let U=`Anchor must not contain whitespace or control characters: ${JSON.stringify($)}`;throw Error(U)}return!0}function U3($){let Z=new Set;return n6.visit($,{Value(U,X){if(X.anchor)Z.add(X.anchor)}}),Z}function X3($,Z){for(let U=1;;++U){let X=`${$}${U}`;if(!Z.has(X))return X}}function t6($,Z){let U=[],X=new Map,z=null;return{onAnchor:(Q)=>{U.push(Q),z??(z=U3($));let J=X3(Z,z);return z.add(J),J},setAnchors:()=>{for(let Q of U){let J=X.get(Q);if(typeof J==="object"&&J.anchor&&(Z3.isScalar(J.node)||Z3.isCollection(J.node)))J.node.anchor=J.anchor;else{let H=Error("Failed to resolve repeated object (this should not happen)");throw H.source=Q,H}}},sourceObjects:X}}e6.anchorIsValid=o6;e6.anchorNames=U3;e6.createNodeAnchors=t6;e6.findNewAnchor=X3});var M2=R((zZ)=>{function l0($,Z,U,X){if(X&&typeof X==="object")if(Array.isArray(X))for(let z=0,Q=X.length;z<Q;++z){let J=X[z],H=l0($,X,String(z),J);if(H===void 0)delete X[z];else if(H!==J)X[z]=H}else if(X instanceof Map)for(let z of Array.from(X.keys())){let Q=X.get(z),J=l0($,X,z,Q);if(J===void 0)X.delete(z);else if(J!==Q)X.set(z,J)}else if(X instanceof Set)for(let z of Array.from(X)){let Q=l0($,X,z,z);if(Q===void 0)X.delete(z);else if(Q!==z)X.delete(z),X.add(Q)}else for(let[z,Q]of Object.entries(X)){let J=l0($,X,z,Q);if(J===void 0)delete X[z];else if(J!==Q)X[z]=J}return $.call(Z,U,X)}zZ.applyReviver=l0});var t=R((HZ)=>{var JZ=b();function z3($,Z,U){if(Array.isArray($))return $.map((X,z)=>z3(X,String(z),U));if($&&typeof $.toJSON==="function"){if(!U||!JZ.hasAnchor($))return $.toJSON(Z,U);let X={aliasCount:0,count:1,res:void 0};U.anchors.set($,X),U.onCreate=(Q)=>{X.res=Q,delete U.onCreate};let z=$.toJSON(Z,U);if(U.onCreate)U.onCreate(z);return z}if(typeof $==="bigint"&&!U?.keep)return Number($);return $}HZ.toJS=z3});var K$=R((BZ)=>{var GZ=M2(),Q3=b(),YZ=t();class J3{constructor($){Object.defineProperty(this,Q3.NODE_TYPE,{value:$})}clone(){let $=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)$.range=this.range.slice();return $}toJS($,{mapAsMap:Z,maxAliasCount:U,onAnchor:X,reviver:z}={}){if(!Q3.isDocument($))throw TypeError("A document argument is required");let Q={anchors:new Map,doc:$,keep:!0,mapAsMap:Z===!0,mapKeyWarned:!1,maxAliasCount:typeof U==="number"?U:100},J=YZ.toJS(this,"",Q);if(typeof X==="function")for(let{count:H,res:q}of Q.anchors.values())X(q,H);return typeof z==="function"?GZ.applyReviver(z,{"":J},"",J):J}}BZ.NodeBase=J3});var d0=R((DZ)=>{var WZ=F$(),OZ=p0(),T0=b(),LZ=K$(),_Z=t();class H3 extends LZ.NodeBase{constructor($){super(T0.ALIAS);this.source=$,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve($,Z){let U;if(Z?.aliasResolveCache)U=Z.aliasResolveCache;else if(U=[],OZ.visit($,{Node:(z,Q)=>{if(T0.isAlias(Q)||T0.hasAnchor(Q))U.push(Q)}}),Z)Z.aliasResolveCache=U;let X=void 0;for(let z of U){if(z===this)break;if(z.anchor===this.source)X=z}return X}toJSON($,Z){if(!Z)return{source:this.source};let{anchors:U,doc:X,maxAliasCount:z}=Z,Q=this.resolve(X,Z);if(!Q){let H=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(H)}let J=U.get(Q);if(!J)_Z.toJS(Q,null,Z),J=U.get(Q);if(J?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(z>=0){if(J.count+=1,J.aliasCount===0)J.aliasCount=A$(X,Q,U);if(J.count*J.aliasCount>z)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return J.res}toString($,Z,U){let X=`*${this.source}`;if($){if(WZ.anchorIsValid(this.source),$.options.verifyAliasOrder&&!$.anchors.has(this.source)){let z=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(z)}if($.implicitKey)return`${X} `}return X}}function A$($,Z,U){if(T0.isAlias(Z)){let X=Z.resolve($),z=U&&X&&U.get(X);return z?z.count*z.aliasCount:0}else if(T0.isCollection(Z)){let X=0;for(let z of Z.items){let Q=A$($,z,U);if(Q>X)X=Q}return X}else if(T0.isPair(Z)){let X=A$($,Z.key,U),z=A$($,Z.value,U);return Math.max(X,z)}return 1}DZ.Alias=H3});var g=R((FZ)=>{var RZ=b(),MZ=K$(),PZ=t(),TZ=($)=>!$||typeof $!=="function"&&typeof $!=="object";class q0 extends MZ.NodeBase{constructor($){super(RZ.SCALAR);this.value=$}toJSON($,Z){return Z?.keep?this.value:PZ.toJS(this.value,$,Z)}toString(){return String(this.value)}}q0.BLOCK_FOLDED="BLOCK_FOLDED";q0.BLOCK_LITERAL="BLOCK_LITERAL";q0.PLAIN="PLAIN";q0.QUOTE_DOUBLE="QUOTE_DOUBLE";q0.QUOTE_SINGLE="QUOTE_SINGLE";FZ.Scalar=q0;FZ.isScalarValue=TZ});var c0=R((jZ)=>{var NZ=d0(),G0=b(),q3=g(),wZ="tag:yaml.org,2002:";function bZ($,Z,U){if(Z){let X=U.filter((Q)=>Q.tag===Z),z=X.find((Q)=>!Q.format)??X[0];if(!z)throw Error(`Tag ${Z} not found`);return z}return U.find((X)=>X.identify?.($)&&!X.format)}function CZ($,Z,U){if(G0.isDocument($))$=$.contents;if(G0.isNode($))return $;if(G0.isPair($)){let Y=U.schema[G0.MAP].createNode?.(U.schema,null,U);return Y.items.push($),Y}if($ instanceof String||$ instanceof Number||$ instanceof Boolean||typeof BigInt<"u"&&$ instanceof BigInt)$=$.valueOf();let{aliasDuplicateObjects:X,onAnchor:z,onTagObj:Q,schema:J,sourceObjects:H}=U,q=void 0;if(X&&$&&typeof $==="object")if(q=H.get($),q)return q.anchor??(q.anchor=z($)),new NZ.Alias(q.anchor);else q={anchor:null,node:null},H.set($,q);if(Z?.startsWith("!!"))Z=wZ+Z.slice(2);let G=bZ($,Z,J.tags);if(!G){if($&&typeof $.toJSON==="function")$=$.toJSON();if(!$||typeof $!=="object"){let Y=new q3.Scalar($);if(q)q.node=Y;return Y}G=$ instanceof Map?J[G0.MAP]:(Symbol.iterator in Object($))?J[G0.SEQ]:J[G0.MAP]}if(Q)Q(G),delete U.onTagObj;let W=G?.createNode?G.createNode(U.schema,$,U):typeof G?.nodeClass?.from==="function"?G.nodeClass.from(U.schema,$,U):new q3.Scalar($);if(Z)W.tag=Z;else if(!G.default)W.tag=G.tag;if(q)q.node=W;return W}jZ.createNode=CZ});var N$=R((fZ)=>{var EZ=c0(),a=b(),gZ=K$();function P2($,Z,U){let X=U;for(let z=Z.length-1;z>=0;--z){let Q=Z[z];if(typeof Q==="number"&&Number.isInteger(Q)&&Q>=0){let J=[];J[Q]=X,X=J}else X=new Map([[Q,X]])}return EZ.createNode(X,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:$,sourceObjects:new Map})}var G3=($)=>$==null||typeof $==="object"&&!!$[Symbol.iterator]().next().done;class Y3 extends gZ.NodeBase{constructor($,Z){super($);Object.defineProperty(this,"schema",{value:Z,configurable:!0,enumerable:!1,writable:!0})}clone($){let Z=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if($)Z.schema=$;if(Z.items=Z.items.map((U)=>a.isNode(U)||a.isPair(U)?U.clone($):U),this.range)Z.range=this.range.slice();return Z}addIn($,Z){if(G3($))this.add(Z);else{let[U,...X]=$,z=this.get(U,!0);if(a.isCollection(z))z.addIn(X,Z);else if(z===void 0&&this.schema)this.set(U,P2(this.schema,X,Z));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${X}`)}}deleteIn($){let[Z,...U]=$;if(U.length===0)return this.delete(Z);let X=this.get(Z,!0);if(a.isCollection(X))return X.deleteIn(U);else throw Error(`Expected YAML collection at ${Z}. Remaining path: ${U}`)}getIn($,Z){let[U,...X]=$,z=this.get(U,!0);if(X.length===0)return!Z&&a.isScalar(z)?z.value:z;else return a.isCollection(z)?z.getIn(X,Z):void 0}hasAllNullValues($){return this.items.every((Z)=>{if(!a.isPair(Z))return!1;let U=Z.value;return U==null||$&&a.isScalar(U)&&U.value==null&&!U.commentBefore&&!U.comment&&!U.tag})}hasIn($){let[Z,...U]=$;if(U.length===0)return this.has(Z);let X=this.get(Z,!0);return a.isCollection(X)?X.hasIn(U):!1}setIn($,Z){let[U,...X]=$;if(X.length===0)this.set(U,Z);else{let z=this.get(U,!0);if(a.isCollection(z))z.setIn(X,Z);else if(z===void 0&&this.schema)this.set(U,P2(this.schema,X,Z));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${X}`)}}}fZ.Collection=Y3;fZ.collectionFromPath=P2;fZ.isEmptyPath=G3});var a0=R((vZ)=>{var uZ=($)=>$.replace(/^(?!$)(?: $)?/gm,"#");function T2($,Z){if(/^\n+$/.test($))return $.substring(1);return Z?$.replace(/^(?! *$)/gm,Z):$}var kZ=($,Z,U)=>$.endsWith(`
|
|
3
|
+
`)?T2(U,Z):U.includes(`
|
|
4
4
|
`)?`
|
|
5
|
-
`+
|
|
6
|
-
`){if(U==="block")B=B3($,B,Z.length);Y=B+Z.length+
|
|
5
|
+
`+T2(U,Z):($.endsWith(" ")?"":" ")+U;vZ.indentComment=T2;vZ.lineComment=kZ;vZ.stringifyComment=uZ});var V3=R((cZ)=>{function dZ($,Z,U="flow",{indentAtStart:X,lineWidth:z=80,minContentWidth:Q=20,onFold:J,onOverflow:H}={}){if(!z||z<0)return $;if(z<Q)Q=0;let q=Math.max(1+Q,1+z-Z.length);if($.length<=q)return $;let G=[],W={},Y=z-Z.length;if(typeof X==="number")if(X>z-Math.max(2,Q))G.push(0);else Y=z-X;let V=void 0,O=void 0,_=!1,B=-1,L=-1,I=-1;if(U==="block"){if(B=B3($,B,Z.length),B!==-1)Y=B+q}for(let F;F=$[B+=1];){if(U==="quoted"&&F==="\\"){switch(L=B,$[B+1]){case"x":B+=3;break;case"u":B+=5;break;case"U":B+=9;break;default:B+=1}I=B}if(F===`
|
|
6
|
+
`){if(U==="block")B=B3($,B,Z.length);Y=B+Z.length+q,V=void 0}else{if(F===" "&&O&&O!==" "&&O!==`
|
|
7
7
|
`&&O!=="\t"){let A=$[B+1];if(A&&A!==" "&&A!==`
|
|
8
|
-
`&&A!=="\t")V=B}if(B>=Y)if(V)G.push(V),Y=V+
|
|
9
|
-
${Z}${$.slice(0,
|
|
10
|
-
${Z}${$.slice(A+1,
|
|
11
|
-
`);X=Z,z=Z+1,Q=$[z]}return X}
|
|
12
|
-
`){if(Q-J>X)return!0;if(J=Q+1,z-J<=X)return!1}return!0}function i0($,Z){let U=JSON.stringify($);if(Z.options.doubleQuotedAsJSON)return U;let{implicitKey:X}=Z,z=Z.options.doubleQuotedMinMultiLineLength,Q=Z.indent||(C$($)?" ":""),J="",
|
|
8
|
+
`&&A!=="\t")V=B}if(B>=Y)if(V)G.push(V),Y=V+q,V=void 0;else if(U==="quoted"){while(O===" "||O==="\t")O=F,F=$[B+=1],_=!0;let A=B>I+1?B-2:L-1;if(W[A])return $;G.push(A),W[A]=!0,Y=A+q,V=void 0}else _=!0}O=F}if(_&&H)H();if(G.length===0)return $;if(J)J();let M=$.slice(0,G[0]);for(let F=0;F<G.length;++F){let A=G[F],K=G[F+1]||$.length;if(A===0)M=`
|
|
9
|
+
${Z}${$.slice(0,K)}`;else{if(U==="quoted"&&W[A])M+=`${$[A]}\\`;M+=`
|
|
10
|
+
${Z}${$.slice(A+1,K)}`}}return M}function B3($,Z,U){let X=Z,z=Z+1,Q=$[z];while(Q===" "||Q==="\t")if(Z<z+U)Q=$[++Z];else{do Q=$[++Z];while(Q&&Q!==`
|
|
11
|
+
`);X=Z,z=Z+1,Q=$[z]}return X}cZ.FOLD_BLOCK="block";cZ.FOLD_FLOW="flow";cZ.FOLD_QUOTED="quoted";cZ.foldFlowLines=dZ});var s0=R((eZ)=>{var v=g(),e=V3(),b$=($,Z)=>({indentAtStart:Z?$.indent.length:$.indentAtStart,lineWidth:$.options.lineWidth,minContentWidth:$.options.minContentWidth}),C$=($)=>/^(%|---|\.\.\.)/m.test($);function nZ($,Z,U){if(!Z||Z<0)return!1;let X=Z-U,z=$.length;if(z<=X)return!1;for(let Q=0,J=0;Q<z;++Q)if($[Q]===`
|
|
12
|
+
`){if(Q-J>X)return!0;if(J=Q+1,z-J<=X)return!1}return!0}function i0($,Z){let U=JSON.stringify($);if(Z.options.doubleQuotedAsJSON)return U;let{implicitKey:X}=Z,z=Z.options.doubleQuotedMinMultiLineLength,Q=Z.indent||(C$($)?" ":""),J="",H=0;for(let q=0,G=U[q];G;G=U[++q]){if(G===" "&&U[q+1]==="\\"&&U[q+2]==="n")J+=U.slice(H,q)+"\\ ",q+=1,H=q,G="\\";if(G==="\\")switch(U[q+1]){case"u":{J+=U.slice(H,q);let W=U.substr(q+2,4);switch(W){case"0000":J+="\\0";break;case"0007":J+="\\a";break;case"000b":J+="\\v";break;case"001b":J+="\\e";break;case"0085":J+="\\N";break;case"00a0":J+="\\_";break;case"2028":J+="\\L";break;case"2029":J+="\\P";break;default:if(W.substr(0,2)==="00")J+="\\x"+W.substr(2);else J+=U.substr(q,6)}q+=5,H=q+1}break;case"n":if(X||U[q+2]==='"'||U.length<z)q+=1;else{J+=U.slice(H,q)+`
|
|
13
13
|
|
|
14
|
-
`;while(U[
|
|
15
|
-
`,
|
|
14
|
+
`;while(U[q+2]==="\\"&&U[q+3]==="n"&&U[q+4]!=='"')J+=`
|
|
15
|
+
`,q+=2;if(J+=Q,U[q+2]===" ")J+="\\";q+=1,H=q+1}break;default:q+=1}}return J=H?J+U.slice(H):U,X?J:e.foldFlowLines(J,Q,e.FOLD_QUOTED,b$(Z,!1))}function F2($,Z){if(Z.options.singleQuote===!1||Z.implicitKey&&$.includes(`
|
|
16
16
|
`)||/[ \t]\n|\n[ \t]/.test($))return i0($,Z);let U=Z.indent||(C$($)?" ":""),X="'"+$.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
17
|
-
${U}`)+"'";return Z.implicitKey?X:e.foldFlowLines(X,U,e.FOLD_FLOW,b$(Z,!1))}function
|
|
17
|
+
${U}`)+"'";return Z.implicitKey?X:e.foldFlowLines(X,U,e.FOLD_FLOW,b$(Z,!1))}function F0($,Z){let{singleQuote:U}=Z.options,X;if(U===!1)X=i0;else{let z=$.includes('"'),Q=$.includes("'");if(z&&!Q)X=F2;else if(Q&&!z)X=i0;else X=U?F2:i0}return X($,Z)}var K2;try{K2=new RegExp(`(^|(?<!
|
|
18
18
|
))
|
|
19
19
|
+(?!
|
|
20
|
-
|$)`,"g")}catch{
|
|
20
|
+
|$)`,"g")}catch{K2=/\n+(?!\n|$)/g}function w$({comment:$,type:Z,value:U},X,z,Q){let{blockQuote:J,commentString:H,lineWidth:q}=X.options;if(!J||/\n[\t ]+$/.test(U))return F0(U,X);let G=X.indent||(X.forceBlockIndent||C$(U)?" ":""),W=J==="literal"?!0:J==="folded"||Z===v.Scalar.BLOCK_FOLDED?!1:Z===v.Scalar.BLOCK_LITERAL?!0:!nZ(U,q,G.length);if(!U)return W?`|
|
|
21
21
|
`:`>
|
|
22
|
-
`;let Y,V;for(V=U.length;V>0;--V){let
|
|
23
|
-
`&&
|
|
22
|
+
`;let Y,V;for(V=U.length;V>0;--V){let K=U[V-1];if(K!==`
|
|
23
|
+
`&&K!=="\t"&&K!==" ")break}let O=U.substring(V),_=O.indexOf(`
|
|
24
24
|
`);if(_===-1)Y="-";else if(U===O||_!==O.length-1){if(Y="+",Q)Q()}else Y="";if(O){if(U=U.slice(0,-O.length),O[O.length-1]===`
|
|
25
|
-
`)O=O.slice(0,-1);O=O.replace(
|
|
26
|
-
`)I=L;else break}let M=U.substring(0,I<L?I+1:L);if(M)U=U.substring(M.length),M=M.replace(/\n+/g,`$&${G}`);let A=(B?G?"2":"1":"")+Y;if($){if(A+=" "+
|
|
27
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${G}`),N=!1,C=b$(X,!0);if(J!=="folded"&&Z!==v.Scalar.BLOCK_FOLDED)C.onOverflow=()=>{N=!0};let D=e.foldFlowLines(`${M}${
|
|
25
|
+
`)O=O.slice(0,-1);O=O.replace(K2,`$&${G}`)}let B=!1,L,I=-1;for(L=0;L<U.length;++L){let K=U[L];if(K===" ")B=!0;else if(K===`
|
|
26
|
+
`)I=L;else break}let M=U.substring(0,I<L?I+1:L);if(M)U=U.substring(M.length),M=M.replace(/\n+/g,`$&${G}`);let A=(B?G?"2":"1":"")+Y;if($){if(A+=" "+H($.replace(/ ?[\r\n]+/g," ")),z)z()}if(!W){let K=U.replace(/\n+/g,`
|
|
27
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${G}`),N=!1,C=b$(X,!0);if(J!=="folded"&&Z!==v.Scalar.BLOCK_FOLDED)C.onOverflow=()=>{N=!0};let D=e.foldFlowLines(`${M}${K}${O}`,G,e.FOLD_BLOCK,C);if(!N)return`>${A}
|
|
28
28
|
${G}${D}`}return U=U.replace(/\n+/g,`$&${G}`),`|${A}
|
|
29
|
-
${G}${M}${U}${O}`}function
|
|
30
|
-
`)||W&&/[[\]{},]/.test(Q))return
|
|
31
|
-
`)?
|
|
32
|
-
`))return w$($,Z,U,X);if(C$(Q)){if(
|
|
33
|
-
${
|
|
34
|
-
${Z.indent}${
|
|
35
|
-
${
|
|
29
|
+
${G}${M}${U}${O}`}function oZ($,Z,U,X){let{type:z,value:Q}=$,{actualString:J,implicitKey:H,indent:q,indentStep:G,inFlow:W}=Z;if(H&&Q.includes(`
|
|
30
|
+
`)||W&&/[[\]{},]/.test(Q))return F0(Q,Z);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(Q))return H||W||!Q.includes(`
|
|
31
|
+
`)?F0(Q,Z):w$($,Z,U,X);if(!H&&!W&&z!==v.Scalar.PLAIN&&Q.includes(`
|
|
32
|
+
`))return w$($,Z,U,X);if(C$(Q)){if(q==="")return Z.forceBlockIndent=!0,w$($,Z,U,X);else if(H&&q===G)return F0(Q,Z)}let Y=Q.replace(/\n+/g,`$&
|
|
33
|
+
${q}`);if(J){let V=(B)=>B.default&&B.tag!=="tag:yaml.org,2002:str"&&B.test?.test(Y),{compat:O,tags:_}=Z.doc.schema;if(_.some(V)||O?.some(V))return F0(Q,Z)}return H?Y:e.foldFlowLines(Y,q,e.FOLD_FLOW,b$(Z,!1))}function tZ($,Z,U,X){let{implicitKey:z,inFlow:Q}=Z,J=typeof $.value==="string"?$:Object.assign({},$,{value:String($.value)}),{type:H}=$;if(H!==v.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(J.value))H=v.Scalar.QUOTE_DOUBLE}let q=(W)=>{switch(W){case v.Scalar.BLOCK_FOLDED:case v.Scalar.BLOCK_LITERAL:return z||Q?F0(J.value,Z):w$(J,Z,U,X);case v.Scalar.QUOTE_DOUBLE:return i0(J.value,Z);case v.Scalar.QUOTE_SINGLE:return F2(J.value,Z);case v.Scalar.PLAIN:return oZ(J,Z,U,X);default:return null}},G=q(H);if(G===null){let{defaultKeyType:W,defaultStringType:Y}=Z.options,V=z&&W||Y;if(G=q(V),G===null)throw Error(`Unsupported default string type ${V}`)}return G}eZ.stringifyString=tZ});var r0=R((q5)=>{var Z5=F$(),$0=b(),U5=a0(),X5=s0();function z5($,Z){let U=Object.assign({blockQuote:!0,commentString:U5.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},$.schema.toStringOptions,Z),X;switch(U.collectionStyle){case"block":X=!1;break;case"flow":X=!0;break;default:X=null}return{anchors:new Set,doc:$,flowCollectionPadding:U.flowCollectionPadding?" ":"",indent:"",indentStep:typeof U.indent==="number"?" ".repeat(U.indent):" ",inFlow:X,options:U}}function Q5($,Z){if(Z.tag){let z=$.filter((Q)=>Q.tag===Z.tag);if(z.length>0)return z.find((Q)=>Q.format===Z.format)??z[0]}let U=void 0,X;if($0.isScalar(Z)){X=Z.value;let z=$.filter((Q)=>Q.identify?.(X));if(z.length>1){let Q=z.filter((J)=>J.test);if(Q.length>0)z=Q}U=z.find((Q)=>Q.format===Z.format)??z.find((Q)=>!Q.format)}else X=Z,U=$.find((z)=>z.nodeClass&&X instanceof z.nodeClass);if(!U){let z=X?.constructor?.name??(X===null?"null":typeof X);throw Error(`Tag not resolved for ${z} value`)}return U}function J5($,Z,{anchors:U,doc:X}){if(!X.directives)return"";let z=[],Q=($0.isScalar($)||$0.isCollection($))&&$.anchor;if(Q&&Z5.anchorIsValid(Q))U.add(Q),z.push(`&${Q}`);let J=$.tag??(Z.default?null:Z.tag);if(J)z.push(X.directives.tagString(J));return z.join(" ")}function H5($,Z,U,X){if($0.isPair($))return $.toString(Z,U,X);if($0.isAlias($)){if(Z.doc.directives)return $.toString(Z);if(Z.resolvedAliases?.has($))throw TypeError("Cannot stringify circular structure without alias nodes");else{if(Z.resolvedAliases)Z.resolvedAliases.add($);else Z.resolvedAliases=new Set([$]);$=$.resolve(Z.doc)}}let z=void 0,Q=$0.isNode($)?$:Z.doc.createNode($,{onTagObj:(q)=>z=q});z??(z=Q5(Z.doc.schema.tags,Q));let J=J5(Q,z,Z);if(J.length>0)Z.indentAtStart=(Z.indentAtStart??0)+J.length+1;let H=typeof z.stringify==="function"?z.stringify(Q,Z,U,X):$0.isScalar(Q)?X5.stringifyString(Q,Z,U,X):Q.toString(Z,U,X);if(!J)return H;return $0.isScalar(Q)||H[0]==="{"||H[0]==="["?`${J} ${H}`:`${J}
|
|
34
|
+
${Z.indent}${H}`}q5.createStringifyContext=z5;q5.stringify=H5});var L3=R((V5)=>{var r=b(),W3=g(),O3=r0(),n0=a0();function B5({key:$,value:Z},U,X,z){let{allNullValues:Q,doc:J,indent:H,indentStep:q,options:{commentString:G,indentSeq:W,simpleKeys:Y}}=U,V=r.isNode($)&&$.comment||null;if(Y){if(V)throw Error("With simple keys, key nodes cannot have comments");if(r.isCollection($)||!r.isNode($)&&typeof $==="object")throw Error("With simple keys, collection cannot be used as a key value")}let O=!Y&&(!$||V&&Z==null&&!U.inFlow||r.isCollection($)||(r.isScalar($)?$.type===W3.Scalar.BLOCK_FOLDED||$.type===W3.Scalar.BLOCK_LITERAL:typeof $==="object"));U=Object.assign({},U,{allNullValues:!1,implicitKey:!O&&(Y||!Q),indent:H+q});let _=!1,B=!1,L=O3.stringify($,U,()=>_=!0,()=>B=!0);if(!O&&!U.inFlow&&L.length>1024){if(Y)throw Error("With simple keys, single line scalar must not span more than 1024 characters");O=!0}if(U.inFlow){if(Q||Z==null){if(_&&X)X();return L===""?"?":O?`? ${L}`:L}}else if(Q&&!Y||Z==null&&O){if(L=`? ${L}`,V&&!_)L+=n0.lineComment(L,U.indent,G(V));else if(B&&z)z();return L}if(_)V=null;if(O){if(V)L+=n0.lineComment(L,U.indent,G(V));L=`? ${L}
|
|
35
|
+
${H}:`}else if(L=`${L}:`,V)L+=n0.lineComment(L,U.indent,G(V));let I,M,F;if(r.isNode(Z))I=!!Z.spaceBefore,M=Z.commentBefore,F=Z.comment;else if(I=!1,M=null,F=null,Z&&typeof Z==="object")Z=J.createNode(Z);if(U.implicitKey=!1,!O&&!V&&r.isScalar(Z))U.indentAtStart=L.length+1;if(B=!1,!W&&q.length>=2&&!U.inFlow&&!O&&r.isSeq(Z)&&!Z.flow&&!Z.tag&&!Z.anchor)U.indent=U.indent.substring(2);let A=!1,K=O3.stringify(Z,U,()=>A=!0,()=>B=!0),N=" ";if(V||I||M){if(N=I?`
|
|
36
36
|
`:"",M){let C=G(M);N+=`
|
|
37
|
-
${n0.indentComment(C,U.indent)}`}if(
|
|
38
|
-
`&&
|
|
37
|
+
${n0.indentComment(C,U.indent)}`}if(K===""&&!U.inFlow){if(N===`
|
|
38
|
+
`&&F)N=`
|
|
39
39
|
|
|
40
40
|
`}else N+=`
|
|
41
|
-
${U.indent}`}else if(!O&&r.isCollection(Z)){let C=
|
|
42
|
-
`),w=D!==-1,l=U.inFlow??Z.flow??Z.items.length===0;if(w||!l){let d=!1;if(w&&(C==="&"||C==="!")){let E=
|
|
43
|
-
${U.indent}`}}else if(
|
|
44
|
-
`)N="";if(L+=N+
|
|
45
|
-
${
|
|
41
|
+
${U.indent}`}else if(!O&&r.isCollection(Z)){let C=K[0],D=K.indexOf(`
|
|
42
|
+
`),w=D!==-1,l=U.inFlow??Z.flow??Z.items.length===0;if(w||!l){let d=!1;if(w&&(C==="&"||C==="!")){let E=K.indexOf(" ");if(C==="&"&&E!==-1&&E<D&&K[E+1]==="!")E=K.indexOf(" ",E+1);if(E===-1||D<E)d=!0}if(!d)N=`
|
|
43
|
+
${U.indent}`}}else if(K===""||K[0]===`
|
|
44
|
+
`)N="";if(L+=N+K,U.inFlow){if(A&&X)X()}else if(F&&!A)L+=n0.lineComment(L,U.indent,G(F));else if(B&&z)z();return L}V5.stringifyPair=B5});var A2=R((_5)=>{var _3=h0("process");function O5($,...Z){if($==="debug")console.log(...Z)}function L5($,Z){if($==="debug"||$==="warn")if(typeof _3.emitWarning==="function")_3.emitWarning(Z);else console.warn(Z)}_5.debug=O5;_5.warn=L5});var E$=R((M5)=>{var o0=b(),D3=g(),j$="<<",S$={identify:($)=>$===j$||typeof $==="symbol"&&$.description===j$,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new D3.Scalar(Symbol(j$)),{addToJSMap:I3}),stringify:()=>j$},R5=($,Z)=>(S$.identify(Z)||o0.isScalar(Z)&&(!Z.type||Z.type===D3.Scalar.PLAIN)&&S$.identify(Z.value))&&$?.doc.schema.tags.some((U)=>U.tag===S$.tag&&U.default);function I3($,Z,U){if(U=$&&o0.isAlias(U)?U.resolve($.doc):U,o0.isSeq(U))for(let X of U.items)N2($,Z,X);else if(Array.isArray(U))for(let X of U)N2($,Z,X);else N2($,Z,U)}function N2($,Z,U){let X=$&&o0.isAlias(U)?U.resolve($.doc):U;if(!o0.isMap(X))throw Error("Merge sources must be maps or map aliases");let z=X.toJSON(null,$,Map);for(let[Q,J]of z)if(Z instanceof Map){if(!Z.has(Q))Z.set(Q,J)}else if(Z instanceof Set)Z.add(Q);else if(!Object.prototype.hasOwnProperty.call(Z,Q))Object.defineProperty(Z,Q,{value:J,writable:!0,enumerable:!0,configurable:!0});return Z}M5.addMergeToJSMap=I3;M5.isMergeKey=R5;M5.merge=S$});var b2=R((b5)=>{var K5=A2(),R3=E$(),A5=r0(),M3=b(),w2=t();function N5($,Z,{key:U,value:X}){if(M3.isNode(U)&&U.addToJSMap)U.addToJSMap($,Z,X);else if(R3.isMergeKey($,U))R3.addMergeToJSMap($,Z,X);else{let z=w2.toJS(U,"",$);if(Z instanceof Map)Z.set(z,w2.toJS(X,z,$));else if(Z instanceof Set)Z.add(z);else{let Q=w5(U,z,$),J=w2.toJS(X,Q,$);if(Q in Z)Object.defineProperty(Z,Q,{value:J,writable:!0,enumerable:!0,configurable:!0});else Z[Q]=J}}return Z}function w5($,Z,U){if(Z===null)return"";if(typeof Z!=="object")return String(Z);if(M3.isNode($)&&U?.doc){let X=A5.createStringifyContext(U.doc,{});X.anchors=new Set;for(let Q of U.anchors.keys())X.anchors.add(Q.anchor);X.inFlow=!0,X.inStringifyKey=!0;let z=$.toString(X);if(!U.mapKeyWarned){let Q=JSON.stringify(z);if(Q.length>40)Q=Q.substring(0,36)+'..."';K5.warn(U.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${Q}. Set mapAsMap: true to use object keys.`),U.mapKeyWarned=!0}return z}return JSON.stringify(Z)}b5.addPairToJSMap=N5});var Z0=R((g5)=>{var P3=c0(),j5=L3(),S5=b2(),g$=b();function E5($,Z,U){let X=P3.createNode($,void 0,U),z=P3.createNode(Z,void 0,U);return new f$(X,z)}class f${constructor($,Z=null){Object.defineProperty(this,g$.NODE_TYPE,{value:g$.PAIR}),this.key=$,this.value=Z}clone($){let{key:Z,value:U}=this;if(g$.isNode(Z))Z=Z.clone($);if(g$.isNode(U))U=U.clone($);return new f$(Z,U)}toJSON($,Z){let U=Z?.mapAsMap?new Map:{};return S5.addPairToJSMap(Z,U,this)}toString($,Z,U){return $?.doc?j5.stringifyPair(this,$,Z,U):JSON.stringify(this)}}g5.Pair=f$;g5.createPair=E5});var C2=R((k5)=>{var Y0=b(),T3=r0(),y$=a0();function x5($,Z,U){return(Z.inFlow??$.flow?u5:h5)($,Z,U)}function h5({comment:$,items:Z},U,{blockItemPrefix:X,flowChars:z,itemIndent:Q,onChompKeep:J,onComment:H}){let{indent:q,options:{commentString:G}}=U,W=Object.assign({},U,{indent:Q,type:null}),Y=!1,V=[];for(let _=0;_<Z.length;++_){let B=Z[_],L=null;if(Y0.isNode(B)){if(!Y&&B.spaceBefore)V.push("");if(x$(U,V,B.commentBefore,Y),B.comment)L=B.comment}else if(Y0.isPair(B)){let M=Y0.isNode(B.key)?B.key:null;if(M){if(!Y&&M.spaceBefore)V.push("");x$(U,V,M.commentBefore,Y)}}Y=!1;let I=T3.stringify(B,W,()=>L=null,()=>Y=!0);if(L)I+=y$.lineComment(I,Q,G(L));if(Y&&L)Y=!1;V.push(X+I)}let O;if(V.length===0)O=z.start+z.end;else{O=V[0];for(let _=1;_<V.length;++_){let B=V[_];O+=B?`
|
|
45
|
+
${q}${B}`:`
|
|
46
46
|
`}}if($){if(O+=`
|
|
47
|
-
`+y$.indentComment(G($),
|
|
48
|
-
`)))G
|
|
47
|
+
`+y$.indentComment(G($),q),H)H()}else if(Y&&J)J();return O}function u5({items:$},Z,{flowChars:U,itemIndent:X}){let{indent:z,indentStep:Q,flowCollectionPadding:J,options:{commentString:H}}=Z;X+=Q;let q=Object.assign({},Z,{indent:X,inFlow:!0,type:null}),G=!1,W=0,Y=[];for(let _=0;_<$.length;++_){let B=$[_],L=null;if(Y0.isNode(B)){if(B.spaceBefore)Y.push("");if(x$(Z,Y,B.commentBefore,!1),B.comment)L=B.comment}else if(Y0.isPair(B)){let M=Y0.isNode(B.key)?B.key:null;if(M){if(M.spaceBefore)Y.push("");if(x$(Z,Y,M.commentBefore,!1),M.comment)G=!0}let F=Y0.isNode(B.value)?B.value:null;if(F){if(F.comment)L=F.comment;if(F.commentBefore)G=!0}else if(B.value==null&&M?.comment)L=M.comment}if(L)G=!0;let I=T3.stringify(B,q,()=>L=null);if(G||(G=Y.length>W||I.includes(`
|
|
48
|
+
`)),_<$.length-1)I+=",";else if(Z.options.trailingComma){if(Z.options.lineWidth>0)G||(G=Y.reduce((M,F)=>M+F.length+2,2)+(I.length+2)>Z.options.lineWidth);if(G)I+=","}if(L)I+=y$.lineComment(I,X,H(L));Y.push(I),W=Y.length}let{start:V,end:O}=U;if(Y.length===0)return V+O;else{if(!G){let _=Y.reduce((B,L)=>B+L.length+2,2);G=Z.options.lineWidth>0&&_>Z.options.lineWidth}if(G){let _=V;for(let B of Y)_+=B?`
|
|
49
49
|
${Q}${z}${B}`:`
|
|
50
50
|
`;return`${_}
|
|
51
|
-
${z}${O}`}else return`${V}${J}${Y.join(" ")}${J}${O}`}}function x$({indent:$,options:{commentString:Z}},U,X,z){if(X&&z)X=X.replace(/^\n+/,"");if(X){let Q=y$.indentComment(Z(X),$);U.push(Q.trimStart())}}
|
|
52
|
-
`:" ")}return
|
|
51
|
+
${z}${O}`}else return`${V}${J}${Y.join(" ")}${J}${O}`}}function x$({indent:$,options:{commentString:Z}},U,X,z){if(X&&z)X=X.replace(/^\n+/,"");if(X){let Q=y$.indentComment(Z(X),$);U.push(Q.trimStart())}}k5.stringifyCollection=x5});var X0=R((c5)=>{var m5=C2(),p5=b2(),l5=N$(),U0=b(),h$=Z0(),d5=g();function t0($,Z){let U=U0.isScalar(Z)?Z.value:Z;for(let X of $)if(U0.isPair(X)){if(X.key===Z||X.key===U)return X;if(U0.isScalar(X.key)&&X.key.value===U)return X}return}class F3 extends l5.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor($){super(U0.MAP,$);this.items=[]}static from($,Z,U){let{keepUndefined:X,replacer:z}=U,Q=new this($),J=(H,q)=>{if(typeof z==="function")q=z.call(Z,H,q);else if(Array.isArray(z)&&!z.includes(H))return;if(q!==void 0||X)Q.items.push(h$.createPair(H,q,U))};if(Z instanceof Map)for(let[H,q]of Z)J(H,q);else if(Z&&typeof Z==="object")for(let H of Object.keys(Z))J(H,Z[H]);if(typeof $.sortMapEntries==="function")Q.items.sort($.sortMapEntries);return Q}add($,Z){let U;if(U0.isPair($))U=$;else if(!$||typeof $!=="object"||!("key"in $))U=new h$.Pair($,$?.value);else U=new h$.Pair($.key,$.value);let X=t0(this.items,U.key),z=this.schema?.sortMapEntries;if(X){if(!Z)throw Error(`Key ${U.key} already set`);if(U0.isScalar(X.value)&&d5.isScalarValue(U.value))X.value.value=U.value;else X.value=U.value}else if(z){let Q=this.items.findIndex((J)=>z(U,J)<0);if(Q===-1)this.items.push(U);else this.items.splice(Q,0,U)}else this.items.push(U)}delete($){let Z=t0(this.items,$);if(!Z)return!1;return this.items.splice(this.items.indexOf(Z),1).length>0}get($,Z){let X=t0(this.items,$)?.value;return(!Z&&U0.isScalar(X)?X.value:X)??void 0}has($){return!!t0(this.items,$)}set($,Z){this.add(new h$.Pair($,Z),!0)}toJSON($,Z,U){let X=U?new U:Z?.mapAsMap?new Map:{};if(Z?.onCreate)Z.onCreate(X);for(let z of this.items)p5.addPairToJSMap(Z,X,z);return X}toString($,Z,U){if(!$)return JSON.stringify(this);for(let X of this.items)if(!U0.isPair(X))throw Error(`Map items must all be pairs; found ${JSON.stringify(X)} instead`);if(!$.allNullValues&&this.hasAllNullValues(!1))$=Object.assign({},$,{allNullValues:!0});return m5.stringifyCollection(this,$,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:$.indent||"",onChompKeep:U,onComment:Z})}}c5.YAMLMap=F3;c5.findPair=t0});var K0=R((n5)=>{var s5=b(),K3=X0(),r5={collection:"map",default:!0,nodeClass:K3.YAMLMap,tag:"tag:yaml.org,2002:map",resolve($,Z){if(!s5.isMap($))Z("Expected a mapping for this tag");return $},createNode:($,Z,U)=>K3.YAMLMap.from($,Z,U)};n5.map=r5});var z0=R((X1)=>{var t5=c0(),e5=C2(),$1=N$(),k$=b(),Z1=g(),U1=t();class A3 extends $1.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor($){super(k$.SEQ,$);this.items=[]}add($){this.items.push($)}delete($){let Z=u$($);if(typeof Z!=="number")return!1;return this.items.splice(Z,1).length>0}get($,Z){let U=u$($);if(typeof U!=="number")return;let X=this.items[U];return!Z&&k$.isScalar(X)?X.value:X}has($){let Z=u$($);return typeof Z==="number"&&Z<this.items.length}set($,Z){let U=u$($);if(typeof U!=="number")throw Error(`Expected a valid index, not ${$}.`);let X=this.items[U];if(k$.isScalar(X)&&Z1.isScalarValue(Z))X.value=Z;else this.items[U]=Z}toJSON($,Z){let U=[];if(Z?.onCreate)Z.onCreate(U);let X=0;for(let z of this.items)U.push(U1.toJS(z,String(X++),Z));return U}toString($,Z,U){if(!$)return JSON.stringify(this);return e5.stringifyCollection(this,$,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:($.indent||"")+" ",onChompKeep:U,onComment:Z})}static from($,Z,U){let{replacer:X}=U,z=new this($);if(Z&&Symbol.iterator in Object(Z)){let Q=0;for(let J of Z){if(typeof X==="function"){let H=Z instanceof Set?J:String(Q++);J=X.call(Z,H,J)}z.items.push(t5.createNode(J,void 0,U))}}return z}}function u$($){let Z=k$.isScalar($)?$.value:$;if(Z&&typeof Z==="string")Z=Number(Z);return typeof Z==="number"&&Number.isInteger(Z)&&Z>=0?Z:null}X1.YAMLSeq=A3});var A0=R((H1)=>{var Q1=b(),N3=z0(),J1={collection:"seq",default:!0,nodeClass:N3.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve($,Z){if(!Q1.isSeq($))Z("Expected a sequence for this tag");return $},createNode:($,Z,U)=>N3.YAMLSeq.from($,Z,U)};H1.seq=J1});var e0=R((B1)=>{var G1=s0(),Y1={identify:($)=>typeof $==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:($)=>$,stringify($,Z,U,X){return Z=Object.assign({actualString:!0},Z),G1.stringifyString($,Z,U,X)}};B1.string=Y1});var v$=R((W1)=>{var w3=g(),b3={identify:($)=>$==null,createNode:()=>new w3.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new w3.Scalar(null),stringify:({source:$},Z)=>typeof $==="string"&&b3.test.test($)?$:Z.options.nullStr};W1.nullTag=b3});var j2=R((_1)=>{var L1=g(),C3={identify:($)=>typeof $==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:($)=>new L1.Scalar($[0]==="t"||$[0]==="T"),stringify({source:$,value:Z},U){if($&&C3.test.test($)){let X=$[0]==="t"||$[0]==="T";if(Z===X)return $}return Z?U.options.trueStr:U.options.falseStr}};_1.boolTag=C3});var N0=R((R1)=>{function I1({format:$,minFractionDigits:Z,tag:U,value:X}){if(typeof X==="bigint")return String(X);let z=typeof X==="number"?X:Number(X);if(!isFinite(z))return isNaN(z)?".nan":z<0?"-.inf":".inf";let Q=Object.is(X,-0)?"-0":JSON.stringify(X);if(!$&&Z&&(!U||U==="tag:yaml.org,2002:float")&&/^\d/.test(Q)){let J=Q.indexOf(".");if(J<0)J=Q.length,Q+=".";let H=Z-(Q.length-J-1);while(H-- >0)Q+="0"}return Q}R1.stringifyNumber=I1});var E2=R((A1)=>{var P1=g(),S2=N0(),T1={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:($)=>$.slice(-3).toLowerCase()==="nan"?NaN:$[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:S2.stringifyNumber},F1={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:($)=>parseFloat($),stringify($){let Z=Number($.value);return isFinite(Z)?Z.toExponential():S2.stringifyNumber($)}},K1={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve($){let Z=new P1.Scalar(parseFloat($)),U=$.indexOf(".");if(U!==-1&&$[$.length-1]==="0")Z.minFractionDigits=$.length-U-1;return Z},stringify:S2.stringifyNumber};A1.float=K1;A1.floatExp=F1;A1.floatNaN=T1});var f2=R((E1)=>{var j3=N0(),m$=($)=>typeof $==="bigint"||Number.isInteger($),g2=($,Z,U,{intAsBigInt:X})=>X?BigInt($):parseInt($.substring(Z),U);function S3($,Z,U){let{value:X}=$;if(m$(X)&&X>=0)return U+X.toString(Z);return j3.stringifyNumber($)}var C1={identify:($)=>m$($)&&$>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:($,Z,U)=>g2($,2,8,U),stringify:($)=>S3($,8,"0o")},j1={identify:m$,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:($,Z,U)=>g2($,0,10,U),stringify:j3.stringifyNumber},S1={identify:($)=>m$($)&&$>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:($,Z,U)=>g2($,2,16,U),stringify:($)=>S3($,16,"0x")};E1.int=j1;E1.intHex=S1;E1.intOct=C1});var E3=R((p1)=>{var x1=K0(),h1=v$(),u1=A0(),k1=e0(),v1=j2(),y2=E2(),x2=f2(),m1=[x1.map,u1.seq,k1.string,h1.nullTag,v1.boolTag,x2.intOct,x2.int,x2.intHex,y2.floatNaN,y2.floatExp,y2.float];p1.schema=m1});var f3=R((n1)=>{var d1=g(),c1=K0(),a1=A0();function g3($){return typeof $==="bigint"||Number.isInteger($)}var p$=({value:$})=>JSON.stringify($),i1=[{identify:($)=>typeof $==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:($)=>$,stringify:p$},{identify:($)=>$==null,createNode:()=>new d1.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:p$},{identify:($)=>typeof $==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:($)=>$==="true",stringify:p$},{identify:g3,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:($,Z,{intAsBigInt:U})=>U?BigInt($):parseInt($,10),stringify:({value:$})=>g3($)?$.toString():JSON.stringify($)},{identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:($)=>parseFloat($),stringify:p$}],s1={default:!0,tag:"",test:/^/,resolve($,Z){return Z(`Unresolved plain scalar ${JSON.stringify($)}`),$}},r1=[c1.map,a1.seq].concat(i1,s1);n1.schema=r1});var u2=R(($7)=>{var $$=h0("buffer"),h2=g(),t1=s0(),e1={identify:($)=>$ instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve($,Z){if(typeof $$.Buffer==="function")return $$.Buffer.from($,"base64");else if(typeof atob==="function"){let U=atob($.replace(/[\n\r]/g,"")),X=new Uint8Array(U.length);for(let z=0;z<U.length;++z)X[z]=U.charCodeAt(z);return X}else return Z("This environment does not support reading binary tags; either Buffer or atob is required"),$},stringify({comment:$,type:Z,value:U},X,z,Q){if(!U)return"";let J=U,H;if(typeof $$.Buffer==="function")H=J instanceof $$.Buffer?J.toString("base64"):$$.Buffer.from(J.buffer).toString("base64");else if(typeof btoa==="function"){let q="";for(let G=0;G<J.length;++G)q+=String.fromCharCode(J[G]);H=btoa(q)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(Z??(Z=h2.Scalar.BLOCK_LITERAL),Z!==h2.Scalar.QUOTE_DOUBLE){let q=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),G=Math.ceil(H.length/q),W=Array(G);for(let Y=0,V=0;Y<G;++Y,V+=q)W[Y]=H.substr(V,q);H=W.join(Z===h2.Scalar.BLOCK_LITERAL?`
|
|
52
|
+
`:" ")}return t1.stringifyString({comment:$,type:Z,value:H},X,z,Q)}};$7.binary=e1});var d$=R((Q7)=>{var l$=b(),k2=Z0(),U7=g(),X7=z0();function y3($,Z){if(l$.isSeq($))for(let U=0;U<$.items.length;++U){let X=$.items[U];if(l$.isPair(X))continue;else if(l$.isMap(X)){if(X.items.length>1)Z("Each pair must have its own sequence indicator");let z=X.items[0]||new k2.Pair(new U7.Scalar(null));if(X.commentBefore)z.key.commentBefore=z.key.commentBefore?`${X.commentBefore}
|
|
53
53
|
${z.key.commentBefore}`:X.commentBefore;if(X.comment){let Q=z.value??z.key;Q.comment=Q.comment?`${X.comment}
|
|
54
|
-
${Q.comment}`:X.comment}X=z}$.items[U]=l$.isPair(X)?X:new k9.Pair(X)}else Z("Expected a sequence for this tag");return $}function x3($,Z,U){let{replacer:X}=U,z=new U7.YAMLSeq($);z.tag="tag:yaml.org,2002:pairs";let Q=0;if(Z&&Symbol.iterator in Object(Z))for(let J of Z){if(typeof X==="function")J=X.call(Z,String(Q++),J);let q,H;if(Array.isArray(J))if(J.length===2)q=J[0],H=J[1];else throw TypeError(`Expected [key, value] tuple: ${J}`);else if(J&&J instanceof Object){let G=Object.keys(J);if(G.length===1)q=G[0],H=J[q];else throw TypeError(`Expected tuple with one key, not ${G.length} keys`)}else q=J;z.items.push(k9.createPair(q,H,U))}return z}var X7={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:y3,createNode:x3};z7.createPairs=x3;z7.pairs=X7;z7.resolvePairs=y3});var m9=R((Y7)=>{var h3=b(),v9=t(),Z$=X0(),H7=z0(),u3=d$();class B0 extends H7.YAMLSeq{constructor(){super();this.add=Z$.YAMLMap.prototype.add.bind(this),this.delete=Z$.YAMLMap.prototype.delete.bind(this),this.get=Z$.YAMLMap.prototype.get.bind(this),this.has=Z$.YAMLMap.prototype.has.bind(this),this.set=Z$.YAMLMap.prototype.set.bind(this),this.tag=B0.tag}toJSON($,Z){if(!Z)return super.toJSON($);let U=new Map;if(Z?.onCreate)Z.onCreate(U);for(let X of this.items){let z,Q;if(h3.isPair(X))z=v9.toJS(X.key,"",Z),Q=v9.toJS(X.value,z,Z);else z=v9.toJS(X,"",Z);if(U.has(z))throw Error("Ordered maps must not include duplicate keys");U.set(z,Q)}return U}static from($,Z,U){let X=u3.createPairs($,Z,U),z=new this;return z.items=X.items,z}}B0.tag="tag:yaml.org,2002:omap";var G7={collection:"seq",identify:($)=>$ instanceof Map,nodeClass:B0,default:!1,tag:"tag:yaml.org,2002:omap",resolve($,Z){let U=u3.resolvePairs($,Z),X=[];for(let{key:z}of U.items)if(h3.isScalar(z))if(X.includes(z.value))Z(`Ordered maps must not include duplicate keys: ${z.value}`);else X.push(z.value);return Object.assign(new B0,U)},createNode:($,Z,U)=>B0.from($,Z,U)};Y7.YAMLOMap=B0;Y7.omap=G7});var l3=R((W7)=>{var k3=g();function v3({value:$,source:Z},U){if(Z&&($?m3:p3).test.test(Z))return Z;return $?U.options.trueStr:U.options.falseStr}var m3={identify:($)=>$===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new k3.Scalar(!0),stringify:v3},p3={identify:($)=>$===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new k3.Scalar(!1),stringify:v3};W7.falseTag=p3;W7.trueTag=m3});var d3=R((M7)=>{var _7=g(),p9=N0(),D7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:($)=>$.slice(-3).toLowerCase()==="nan"?NaN:$[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:p9.stringifyNumber},I7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:($)=>parseFloat($.replace(/_/g,"")),stringify($){let Z=Number($.value);return isFinite(Z)?Z.toExponential():p9.stringifyNumber($)}},R7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve($){let Z=new _7.Scalar(parseFloat($.replace(/_/g,""))),U=$.indexOf(".");if(U!==-1){let X=$.substring(U+1).replace(/_/g,"");if(X[X.length-1]==="0")Z.minFractionDigits=X.length}return Z},stringify:p9.stringifyNumber};M7.float=R7;M7.floatExp=I7;M7.floatNaN=D7});var a3=R((b7)=>{var c3=N0(),U$=($)=>typeof $==="bigint"||Number.isInteger($);function c$($,Z,U,{intAsBigInt:X}){let z=$[0];if(z==="-"||z==="+")Z+=1;if($=$.substring(Z).replace(/_/g,""),X){switch(U){case 2:$=`0b${$}`;break;case 8:$=`0o${$}`;break;case 16:$=`0x${$}`;break}let J=BigInt($);return z==="-"?BigInt(-1)*J:J}let Q=parseInt($,U);return z==="-"?-1*Q:Q}function l9($,Z,U){let{value:X}=$;if(U$(X)){let z=X.toString(Z);return X<0?"-"+U+z.substr(1):U+z}return c3.stringifyNumber($)}var T7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:($,Z,U)=>c$($,2,2,U),stringify:($)=>l9($,2,"0b")},A7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:($,Z,U)=>c$($,1,8,U),stringify:($)=>l9($,8,"0")},N7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:($,Z,U)=>c$($,0,10,U),stringify:c3.stringifyNumber},w7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:($,Z,U)=>c$($,2,16,U),stringify:($)=>l9($,16,"0x")};b7.int=N7;b7.intBin=T7;b7.intHex=w7;b7.intOct=A7});var d9=R((f7)=>{var s$=b(),a$=Z0(),i$=X0();class V0 extends i$.YAMLMap{constructor($){super($);this.tag=V0.tag}add($){let Z;if(s$.isPair($))Z=$;else if($&&typeof $==="object"&&"key"in $&&"value"in $&&$.value===null)Z=new a$.Pair($.key,null);else Z=new a$.Pair($,null);if(!i$.findPair(this.items,Z.key))this.items.push(Z)}get($,Z){let U=i$.findPair(this.items,$);return!Z&&s$.isPair(U)?s$.isScalar(U.key)?U.key.value:U.key:U}set($,Z){if(typeof Z!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof Z}`);let U=i$.findPair(this.items,$);if(U&&!Z)this.items.splice(this.items.indexOf(U),1);else if(!U&&Z)this.items.push(new a$.Pair($))}toJSON($,Z){return super.toJSON($,Z,Set)}toString($,Z,U){if(!$)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},$,{allNullValues:!0}),Z,U);else throw Error("Set items must all have null values")}static from($,Z,U){let{replacer:X}=U,z=new this($);if(Z&&Symbol.iterator in Object(Z))for(let Q of Z){if(typeof X==="function")Q=X.call(Z,Q,Q);z.items.push(a$.createPair(Q,null,U))}return z}}V0.tag="tag:yaml.org,2002:set";var g7={collection:"map",identify:($)=>$ instanceof Set,nodeClass:V0,default:!1,tag:"tag:yaml.org,2002:set",createNode:($,Z,U)=>V0.from($,Z,U),resolve($,Z){if(s$.isMap($))if($.hasAllNullValues(!0))return Object.assign(new V0,$);else Z("Set items must all have null values");else Z("Expected a mapping for this tag");return $}};f7.YAMLSet=V0;f7.set=g7});var a9=R((v7)=>{var h7=N0();function c9($,Z){let U=$[0],X=U==="-"||U==="+"?$.substring(1):$,z=(J)=>Z?BigInt(J):Number(J),Q=X.replace(/_/g,"").split(":").reduce((J,q)=>J*z(60)+z(q),z(0));return U==="-"?z(-1)*Q:Q}function i3($){let{value:Z}=$,U=(J)=>J;if(typeof Z==="bigint")U=(J)=>BigInt(J);else if(isNaN(Z)||!isFinite(Z))return h7.stringifyNumber($);let X="";if(Z<0)X="-",Z*=U(-1);let z=U(60),Q=[Z%z];if(Z<60)Q.unshift(0);else if(Z=(Z-Q[0])/z,Q.unshift(Z%z),Z>=60)Z=(Z-Q[0])/z,Q.unshift(Z);return X+Q.map((J)=>String(J).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var u7={identify:($)=>typeof $==="bigint"||Number.isInteger($),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:($,Z,{intAsBigInt:U})=>c9($,U),stringify:i3},k7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:($)=>c9($,!1),stringify:i3},s3={identify:($)=>$ instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve($){let Z=$.match(s3.test);if(!Z)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,U,X,z,Q,J,q]=Z.map(Number),H=Z[7]?Number((Z[7]+"00").substr(1,3)):0,G=Date.UTC(U,X-1,z,Q||0,J||0,q||0,H),W=Z[8];if(W&&W!=="Z"){let Y=c9(W,!1);if(Math.abs(Y)<30)Y*=60;G-=60000*Y}return new Date(G)},stringify:({value:$})=>$?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};v7.floatTime=k7;v7.intTime=u7;v7.timestamp=s3});var n3=R(($U)=>{var d7=T0(),c7=v$(),a7=A0(),i7=e0(),s7=u9(),r3=l3(),i9=d3(),r$=a3(),r7=E$(),n7=m9(),o7=d$(),t7=d9(),s9=a9(),e7=[d7.map,a7.seq,i7.string,c7.nullTag,r3.trueTag,r3.falseTag,r$.intBin,r$.intOct,r$.int,r$.intHex,i9.floatNaN,i9.floatExp,i9.float,s7.binary,r7.merge,n7.omap,o7.pairs,t7.set,s9.intTime,s9.floatTime,s9.timestamp];$U.schema=e7});var J8=R((GU)=>{var $8=T0(),UU=v$(),Z8=A0(),XU=e0(),zU=j9(),r9=E9(),n9=f9(),QU=E3(),JU=f3(),U8=u9(),X$=E$(),X8=m9(),z8=d$(),o3=n3(),Q8=d9(),n$=a9(),t3=new Map([["core",QU.schema],["failsafe",[$8.map,Z8.seq,XU.string]],["json",JU.schema],["yaml11",o3.schema],["yaml-1.1",o3.schema]]),e3={binary:U8.binary,bool:zU.boolTag,float:r9.float,floatExp:r9.floatExp,floatNaN:r9.floatNaN,floatTime:n$.floatTime,int:n9.int,intHex:n9.intHex,intOct:n9.intOct,intTime:n$.intTime,map:$8.map,merge:X$.merge,null:UU.nullTag,omap:X8.omap,pairs:z8.pairs,seq:Z8.seq,set:Q8.set,timestamp:n$.timestamp},qU={"tag:yaml.org,2002:binary":U8.binary,"tag:yaml.org,2002:merge":X$.merge,"tag:yaml.org,2002:omap":X8.omap,"tag:yaml.org,2002:pairs":z8.pairs,"tag:yaml.org,2002:set":Q8.set,"tag:yaml.org,2002:timestamp":n$.timestamp};function HU($,Z,U){let X=t3.get(Z);if(X&&!$)return U&&!X.includes(X$.merge)?X.concat(X$.merge):X.slice();let z=X;if(!z)if(Array.isArray($))z=[];else{let Q=Array.from(t3.keys()).filter((J)=>J!=="yaml11").map((J)=>JSON.stringify(J)).join(", ");throw Error(`Unknown schema "${Z}"; use one of ${Q} or define customTags array`)}if(Array.isArray($))for(let Q of $)z=z.concat(Q);else if(typeof $==="function")z=$(z.slice());if(U)z=z.concat(X$.merge);return z.reduce((Q,J)=>{let q=typeof J==="string"?e3[J]:J;if(!q){let H=JSON.stringify(J),G=Object.keys(e3).map((W)=>JSON.stringify(W)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${G}`)}if(!Q.includes(q))Q.push(q);return Q},[])}GU.coreKnownTags=qU;GU.getTags=HU});var e9=R((_U)=>{var o9=b(),VU=T0(),WU=A0(),OU=e0(),o$=J8(),LU=($,Z)=>$.key<Z.key?-1:$.key>Z.key?1:0;class t9{constructor({compat:$,customTags:Z,merge:U,resolveKnownTags:X,schema:z,sortMapEntries:Q,toStringDefaults:J}){this.compat=Array.isArray($)?o$.getTags($,"compat"):$?o$.getTags(null,$):null,this.name=typeof z==="string"&&z||"core",this.knownTags=X?o$.coreKnownTags:{},this.tags=o$.getTags(Z,this.name,U),this.toStringOptions=J??null,Object.defineProperty(this,o9.MAP,{value:VU.map}),Object.defineProperty(this,o9.SCALAR,{value:OU.string}),Object.defineProperty(this,o9.SEQ,{value:WU.seq}),this.sortMapEntries=typeof Q==="function"?Q:Q===!0?LU:null}clone(){let $=Object.create(t9.prototype,Object.getOwnPropertyDescriptors(this));return $.tags=this.tags.slice(),$}}_U.Schema=t9});var q8=R((MU)=>{var IU=b(),$2=r0(),z$=a0();function RU($,Z){let U=[],X=Z.directives===!0;if(Z.directives!==!1&&$.directives){let H=$.directives.toString($);if(H)U.push(H),X=!0;else if($.directives.docStart)X=!0}if(X)U.push("---");let z=$2.createStringifyContext($,Z),{commentString:Q}=z.options;if($.commentBefore){if(U.length!==1)U.unshift("");let H=Q($.commentBefore);U.unshift(z$.indentComment(H,""))}let J=!1,q=null;if($.contents){if(IU.isNode($.contents)){if($.contents.spaceBefore&&X)U.push("");if($.contents.commentBefore){let W=Q($.contents.commentBefore);U.push(z$.indentComment(W,""))}z.forceBlockIndent=!!$.comment,q=$.contents.comment}let H=q?void 0:()=>J=!0,G=$2.stringify($.contents,z,()=>q=null,H);if(q)G+=z$.lineComment(G,"",Q(q));if((G[0]==="|"||G[0]===">")&&U[U.length-1]==="---")U[U.length-1]=`--- ${G}`;else U.push(G)}else U.push($2.stringify($.contents,z));if($.directives?.docEnd)if($.comment){let H=Q($.comment);if(H.includes(`
|
|
55
|
-
`))U.push("..."),U.push(z$.indentComment(
|
|
54
|
+
${Q.comment}`:X.comment}X=z}$.items[U]=l$.isPair(X)?X:new k2.Pair(X)}else Z("Expected a sequence for this tag");return $}function x3($,Z,U){let{replacer:X}=U,z=new X7.YAMLSeq($);z.tag="tag:yaml.org,2002:pairs";let Q=0;if(Z&&Symbol.iterator in Object(Z))for(let J of Z){if(typeof X==="function")J=X.call(Z,String(Q++),J);let H,q;if(Array.isArray(J))if(J.length===2)H=J[0],q=J[1];else throw TypeError(`Expected [key, value] tuple: ${J}`);else if(J&&J instanceof Object){let G=Object.keys(J);if(G.length===1)H=G[0],q=J[H];else throw TypeError(`Expected tuple with one key, not ${G.length} keys`)}else H=J;z.items.push(k2.createPair(H,q,U))}return z}var z7={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:y3,createNode:x3};Q7.createPairs=x3;Q7.pairs=z7;Q7.resolvePairs=y3});var m2=R((B7)=>{var h3=b(),v2=t(),Z$=X0(),G7=z0(),u3=d$();class B0 extends G7.YAMLSeq{constructor(){super();this.add=Z$.YAMLMap.prototype.add.bind(this),this.delete=Z$.YAMLMap.prototype.delete.bind(this),this.get=Z$.YAMLMap.prototype.get.bind(this),this.has=Z$.YAMLMap.prototype.has.bind(this),this.set=Z$.YAMLMap.prototype.set.bind(this),this.tag=B0.tag}toJSON($,Z){if(!Z)return super.toJSON($);let U=new Map;if(Z?.onCreate)Z.onCreate(U);for(let X of this.items){let z,Q;if(h3.isPair(X))z=v2.toJS(X.key,"",Z),Q=v2.toJS(X.value,z,Z);else z=v2.toJS(X,"",Z);if(U.has(z))throw Error("Ordered maps must not include duplicate keys");U.set(z,Q)}return U}static from($,Z,U){let X=u3.createPairs($,Z,U),z=new this;return z.items=X.items,z}}B0.tag="tag:yaml.org,2002:omap";var Y7={collection:"seq",identify:($)=>$ instanceof Map,nodeClass:B0,default:!1,tag:"tag:yaml.org,2002:omap",resolve($,Z){let U=u3.resolvePairs($,Z),X=[];for(let{key:z}of U.items)if(h3.isScalar(z))if(X.includes(z.value))Z(`Ordered maps must not include duplicate keys: ${z.value}`);else X.push(z.value);return Object.assign(new B0,U)},createNode:($,Z,U)=>B0.from($,Z,U)};B7.YAMLOMap=B0;B7.omap=Y7});var l3=R((O7)=>{var k3=g();function v3({value:$,source:Z},U){if(Z&&($?m3:p3).test.test(Z))return Z;return $?U.options.trueStr:U.options.falseStr}var m3={identify:($)=>$===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new k3.Scalar(!0),stringify:v3},p3={identify:($)=>$===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new k3.Scalar(!1),stringify:v3};O7.falseTag=p3;O7.trueTag=m3});var d3=R((P7)=>{var D7=g(),p2=N0(),I7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:($)=>$.slice(-3).toLowerCase()==="nan"?NaN:$[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:p2.stringifyNumber},R7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:($)=>parseFloat($.replace(/_/g,"")),stringify($){let Z=Number($.value);return isFinite(Z)?Z.toExponential():p2.stringifyNumber($)}},M7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve($){let Z=new D7.Scalar(parseFloat($.replace(/_/g,""))),U=$.indexOf(".");if(U!==-1){let X=$.substring(U+1).replace(/_/g,"");if(X[X.length-1]==="0")Z.minFractionDigits=X.length}return Z},stringify:p2.stringifyNumber};P7.float=M7;P7.floatExp=R7;P7.floatNaN=I7});var a3=R((C7)=>{var c3=N0(),U$=($)=>typeof $==="bigint"||Number.isInteger($);function c$($,Z,U,{intAsBigInt:X}){let z=$[0];if(z==="-"||z==="+")Z+=1;if($=$.substring(Z).replace(/_/g,""),X){switch(U){case 2:$=`0b${$}`;break;case 8:$=`0o${$}`;break;case 16:$=`0x${$}`;break}let J=BigInt($);return z==="-"?BigInt(-1)*J:J}let Q=parseInt($,U);return z==="-"?-1*Q:Q}function l2($,Z,U){let{value:X}=$;if(U$(X)){let z=X.toString(Z);return X<0?"-"+U+z.substr(1):U+z}return c3.stringifyNumber($)}var A7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:($,Z,U)=>c$($,2,2,U),stringify:($)=>l2($,2,"0b")},N7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:($,Z,U)=>c$($,1,8,U),stringify:($)=>l2($,8,"0")},w7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:($,Z,U)=>c$($,0,10,U),stringify:c3.stringifyNumber},b7={identify:U$,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:($,Z,U)=>c$($,2,16,U),stringify:($)=>l2($,16,"0x")};C7.int=w7;C7.intBin=A7;C7.intHex=b7;C7.intOct=N7});var d2=R((y7)=>{var s$=b(),a$=Z0(),i$=X0();class V0 extends i$.YAMLMap{constructor($){super($);this.tag=V0.tag}add($){let Z;if(s$.isPair($))Z=$;else if($&&typeof $==="object"&&"key"in $&&"value"in $&&$.value===null)Z=new a$.Pair($.key,null);else Z=new a$.Pair($,null);if(!i$.findPair(this.items,Z.key))this.items.push(Z)}get($,Z){let U=i$.findPair(this.items,$);return!Z&&s$.isPair(U)?s$.isScalar(U.key)?U.key.value:U.key:U}set($,Z){if(typeof Z!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof Z}`);let U=i$.findPair(this.items,$);if(U&&!Z)this.items.splice(this.items.indexOf(U),1);else if(!U&&Z)this.items.push(new a$.Pair($))}toJSON($,Z){return super.toJSON($,Z,Set)}toString($,Z,U){if(!$)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},$,{allNullValues:!0}),Z,U);else throw Error("Set items must all have null values")}static from($,Z,U){let{replacer:X}=U,z=new this($);if(Z&&Symbol.iterator in Object(Z))for(let Q of Z){if(typeof X==="function")Q=X.call(Z,Q,Q);z.items.push(a$.createPair(Q,null,U))}return z}}V0.tag="tag:yaml.org,2002:set";var f7={collection:"map",identify:($)=>$ instanceof Set,nodeClass:V0,default:!1,tag:"tag:yaml.org,2002:set",createNode:($,Z,U)=>V0.from($,Z,U),resolve($,Z){if(s$.isMap($))if($.hasAllNullValues(!0))return Object.assign(new V0,$);else Z("Set items must all have null values");else Z("Expected a mapping for this tag");return $}};y7.YAMLSet=V0;y7.set=f7});var a2=R((m7)=>{var u7=N0();function c2($,Z){let U=$[0],X=U==="-"||U==="+"?$.substring(1):$,z=(J)=>Z?BigInt(J):Number(J),Q=X.replace(/_/g,"").split(":").reduce((J,H)=>J*z(60)+z(H),z(0));return U==="-"?z(-1)*Q:Q}function i3($){let{value:Z}=$,U=(J)=>J;if(typeof Z==="bigint")U=(J)=>BigInt(J);else if(isNaN(Z)||!isFinite(Z))return u7.stringifyNumber($);let X="";if(Z<0)X="-",Z*=U(-1);let z=U(60),Q=[Z%z];if(Z<60)Q.unshift(0);else if(Z=(Z-Q[0])/z,Q.unshift(Z%z),Z>=60)Z=(Z-Q[0])/z,Q.unshift(Z);return X+Q.map((J)=>String(J).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var k7={identify:($)=>typeof $==="bigint"||Number.isInteger($),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:($,Z,{intAsBigInt:U})=>c2($,U),stringify:i3},v7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:($)=>c2($,!1),stringify:i3},s3={identify:($)=>$ instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve($){let Z=$.match(s3.test);if(!Z)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,U,X,z,Q,J,H]=Z.map(Number),q=Z[7]?Number((Z[7]+"00").substr(1,3)):0,G=Date.UTC(U,X-1,z,Q||0,J||0,H||0,q),W=Z[8];if(W&&W!=="Z"){let Y=c2(W,!1);if(Math.abs(Y)<30)Y*=60;G-=60000*Y}return new Date(G)},stringify:({value:$})=>$?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};m7.floatTime=v7;m7.intTime=k7;m7.timestamp=s3});var n3=R((ZU)=>{var c7=K0(),a7=v$(),i7=A0(),s7=e0(),r7=u2(),r3=l3(),i2=d3(),r$=a3(),n7=E$(),o7=m2(),t7=d$(),e7=d2(),s2=a2(),$U=[c7.map,i7.seq,s7.string,a7.nullTag,r3.trueTag,r3.falseTag,r$.intBin,r$.intOct,r$.int,r$.intHex,i2.floatNaN,i2.floatExp,i2.float,r7.binary,n7.merge,o7.omap,t7.pairs,e7.set,s2.intTime,s2.floatTime,s2.timestamp];ZU.schema=$U});var J8=R((YU)=>{var $8=K0(),XU=v$(),Z8=A0(),zU=e0(),QU=j2(),r2=E2(),n2=f2(),JU=E3(),HU=f3(),U8=u2(),X$=E$(),X8=m2(),z8=d$(),o3=n3(),Q8=d2(),n$=a2(),t3=new Map([["core",JU.schema],["failsafe",[$8.map,Z8.seq,zU.string]],["json",HU.schema],["yaml11",o3.schema],["yaml-1.1",o3.schema]]),e3={binary:U8.binary,bool:QU.boolTag,float:r2.float,floatExp:r2.floatExp,floatNaN:r2.floatNaN,floatTime:n$.floatTime,int:n2.int,intHex:n2.intHex,intOct:n2.intOct,intTime:n$.intTime,map:$8.map,merge:X$.merge,null:XU.nullTag,omap:X8.omap,pairs:z8.pairs,seq:Z8.seq,set:Q8.set,timestamp:n$.timestamp},qU={"tag:yaml.org,2002:binary":U8.binary,"tag:yaml.org,2002:merge":X$.merge,"tag:yaml.org,2002:omap":X8.omap,"tag:yaml.org,2002:pairs":z8.pairs,"tag:yaml.org,2002:set":Q8.set,"tag:yaml.org,2002:timestamp":n$.timestamp};function GU($,Z,U){let X=t3.get(Z);if(X&&!$)return U&&!X.includes(X$.merge)?X.concat(X$.merge):X.slice();let z=X;if(!z)if(Array.isArray($))z=[];else{let Q=Array.from(t3.keys()).filter((J)=>J!=="yaml11").map((J)=>JSON.stringify(J)).join(", ");throw Error(`Unknown schema "${Z}"; use one of ${Q} or define customTags array`)}if(Array.isArray($))for(let Q of $)z=z.concat(Q);else if(typeof $==="function")z=$(z.slice());if(U)z=z.concat(X$.merge);return z.reduce((Q,J)=>{let H=typeof J==="string"?e3[J]:J;if(!H){let q=JSON.stringify(J),G=Object.keys(e3).map((W)=>JSON.stringify(W)).join(", ");throw Error(`Unknown custom tag ${q}; use one of ${G}`)}if(!Q.includes(H))Q.push(H);return Q},[])}YU.coreKnownTags=qU;YU.getTags=GU});var e2=R((DU)=>{var o2=b(),WU=K0(),OU=A0(),LU=e0(),o$=J8(),_U=($,Z)=>$.key<Z.key?-1:$.key>Z.key?1:0;class t2{constructor({compat:$,customTags:Z,merge:U,resolveKnownTags:X,schema:z,sortMapEntries:Q,toStringDefaults:J}){this.compat=Array.isArray($)?o$.getTags($,"compat"):$?o$.getTags(null,$):null,this.name=typeof z==="string"&&z||"core",this.knownTags=X?o$.coreKnownTags:{},this.tags=o$.getTags(Z,this.name,U),this.toStringOptions=J??null,Object.defineProperty(this,o2.MAP,{value:WU.map}),Object.defineProperty(this,o2.SCALAR,{value:LU.string}),Object.defineProperty(this,o2.SEQ,{value:OU.seq}),this.sortMapEntries=typeof Q==="function"?Q:Q===!0?_U:null}clone(){let $=Object.create(t2.prototype,Object.getOwnPropertyDescriptors(this));return $.tags=this.tags.slice(),$}}DU.Schema=t2});var H8=R((PU)=>{var RU=b(),$9=r0(),z$=a0();function MU($,Z){let U=[],X=Z.directives===!0;if(Z.directives!==!1&&$.directives){let q=$.directives.toString($);if(q)U.push(q),X=!0;else if($.directives.docStart)X=!0}if(X)U.push("---");let z=$9.createStringifyContext($,Z),{commentString:Q}=z.options;if($.commentBefore){if(U.length!==1)U.unshift("");let q=Q($.commentBefore);U.unshift(z$.indentComment(q,""))}let J=!1,H=null;if($.contents){if(RU.isNode($.contents)){if($.contents.spaceBefore&&X)U.push("");if($.contents.commentBefore){let W=Q($.contents.commentBefore);U.push(z$.indentComment(W,""))}z.forceBlockIndent=!!$.comment,H=$.contents.comment}let q=H?void 0:()=>J=!0,G=$9.stringify($.contents,z,()=>H=null,q);if(H)G+=z$.lineComment(G,"",Q(H));if((G[0]==="|"||G[0]===">")&&U[U.length-1]==="---")U[U.length-1]=`--- ${G}`;else U.push(G)}else U.push($9.stringify($.contents,z));if($.directives?.docEnd)if($.comment){let q=Q($.comment);if(q.includes(`
|
|
55
|
+
`))U.push("..."),U.push(z$.indentComment(q,""));else U.push(`... ${q}`)}else U.push("...");else{let q=$.comment;if(q&&J)q=q.replace(/^\n+/,"");if(q){if((!J||H)&&U[U.length-1]!=="")U.push("");U.push(z$.indentComment(Q(q),""))}}return U.join(`
|
|
56
56
|
`)+`
|
|
57
|
-
`}
|
|
58
|
-
`;J=
|
|
57
|
+
`}PU.stringifyDocument=MU});var Q$=R((jU)=>{var FU=d0(),w0=N$(),k=b(),KU=Z0(),AU=t(),NU=e2(),wU=H8(),Z9=F$(),bU=M2(),CU=c0(),U9=R2();class X9{constructor($,Z,U){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,k.NODE_TYPE,{value:k.DOC});let X=null;if(typeof Z==="function"||Array.isArray(Z))X=Z;else if(U===void 0&&Z)U=Z,Z=void 0;let z=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},U);this.options=z;let{version:Q}=z;if(U?._directives){if(this.directives=U._directives.atDocument(),this.directives.yaml.explicit)Q=this.directives.yaml.version}else this.directives=new U9.Directives({version:Q});this.setSchema(Q,U),this.contents=$===void 0?null:this.createNode($,X,U)}clone(){let $=Object.create(X9.prototype,{[k.NODE_TYPE]:{value:k.DOC}});if($.commentBefore=this.commentBefore,$.comment=this.comment,$.errors=this.errors.slice(),$.warnings=this.warnings.slice(),$.options=Object.assign({},this.options),this.directives)$.directives=this.directives.clone();if($.schema=this.schema.clone(),$.contents=k.isNode(this.contents)?this.contents.clone($.schema):this.contents,this.range)$.range=this.range.slice();return $}add($){if(b0(this.contents))this.contents.add($)}addIn($,Z){if(b0(this.contents))this.contents.addIn($,Z)}createAlias($,Z){if(!$.anchor){let U=Z9.anchorNames(this);$.anchor=!Z||U.has(Z)?Z9.findNewAnchor(Z||"a",U):Z}return new FU.Alias($.anchor)}createNode($,Z,U){let X=void 0;if(typeof Z==="function")$=Z.call({"":$},"",$),X=Z;else if(Array.isArray(Z)){let B=(I)=>typeof I==="number"||I instanceof String||I instanceof Number,L=Z.filter(B).map(String);if(L.length>0)Z=Z.concat(L);X=Z}else if(U===void 0&&Z)U=Z,Z=void 0;let{aliasDuplicateObjects:z,anchorPrefix:Q,flow:J,keepUndefined:H,onTagObj:q,tag:G}=U??{},{onAnchor:W,setAnchors:Y,sourceObjects:V}=Z9.createNodeAnchors(this,Q||"a"),O={aliasDuplicateObjects:z??!0,keepUndefined:H??!1,onAnchor:W,onTagObj:q,replacer:X,schema:this.schema,sourceObjects:V},_=CU.createNode($,G,O);if(J&&k.isCollection(_))_.flow=!0;return Y(),_}createPair($,Z,U={}){let X=this.createNode($,null,U),z=this.createNode(Z,null,U);return new KU.Pair(X,z)}delete($){return b0(this.contents)?this.contents.delete($):!1}deleteIn($){if(w0.isEmptyPath($)){if(this.contents==null)return!1;return this.contents=null,!0}return b0(this.contents)?this.contents.deleteIn($):!1}get($,Z){return k.isCollection(this.contents)?this.contents.get($,Z):void 0}getIn($,Z){if(w0.isEmptyPath($))return!Z&&k.isScalar(this.contents)?this.contents.value:this.contents;return k.isCollection(this.contents)?this.contents.getIn($,Z):void 0}has($){return k.isCollection(this.contents)?this.contents.has($):!1}hasIn($){if(w0.isEmptyPath($))return this.contents!==void 0;return k.isCollection(this.contents)?this.contents.hasIn($):!1}set($,Z){if(this.contents==null)this.contents=w0.collectionFromPath(this.schema,[$],Z);else if(b0(this.contents))this.contents.set($,Z)}setIn($,Z){if(w0.isEmptyPath($))this.contents=Z;else if(this.contents==null)this.contents=w0.collectionFromPath(this.schema,Array.from($),Z);else if(b0(this.contents))this.contents.setIn($,Z)}setSchema($,Z={}){if(typeof $==="number")$=String($);let U;switch($){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new U9.Directives({version:"1.1"});U={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=$;else this.directives=new U9.Directives({version:$});U={resolveKnownTags:!0,schema:"core"};break;case null:if(this.directives)delete this.directives;U=null;break;default:{let X=JSON.stringify($);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${X}`)}}if(Z.schema instanceof Object)this.schema=Z.schema;else if(U)this.schema=new NU.Schema(Object.assign(U,Z));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:$,jsonArg:Z,mapAsMap:U,maxAliasCount:X,onAnchor:z,reviver:Q}={}){let J={anchors:new Map,doc:this,keep:!$,mapAsMap:U===!0,mapKeyWarned:!1,maxAliasCount:typeof X==="number"?X:100},H=AU.toJS(this.contents,Z??"",J);if(typeof z==="function")for(let{count:q,res:G}of J.anchors.values())z(G,q);return typeof Q==="function"?bU.applyReviver(Q,{"":H},"",H):H}toJSON($,Z){return this.toJS({json:!0,jsonArg:$,mapAsMap:!1,onAnchor:Z})}toString($={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in $&&(!Number.isInteger($.indent)||Number($.indent)<=0)){let Z=JSON.stringify($.indent);throw Error(`"indent" option must be a positive integer, not ${Z}`)}return wU.stringifyDocument(this,$)}}function b0($){if(k.isCollection($))return!0;throw Error("Expected a YAML collection as document contents")}jU.Document=X9});var J$=R((gU)=>{class t$ extends Error{constructor($,Z,U,X){super();this.name=$,this.code=U,this.message=X,this.pos=Z}}class q8 extends t${constructor($,Z,U){super("YAMLParseError",$,Z,U)}}class G8 extends t${constructor($,Z,U){super("YAMLWarning",$,Z,U)}}var EU=($,Z)=>(U)=>{if(U.pos[0]===-1)return;U.linePos=U.pos.map((H)=>Z.linePos(H));let{line:X,col:z}=U.linePos[0];U.message+=` at line ${X}, column ${z}`;let Q=z-1,J=$.substring(Z.lineStarts[X-1],Z.lineStarts[X]).replace(/[\n\r]+$/,"");if(Q>=60&&J.length>80){let H=Math.min(Q-39,J.length-79);J="…"+J.substring(H),Q-=H-1}if(J.length>80)J=J.substring(0,79)+"…";if(X>1&&/^ *$/.test(J.substring(0,Q))){let H=$.substring(Z.lineStarts[X-2],Z.lineStarts[X-1]);if(H.length>80)H=H.substring(0,79)+`…
|
|
58
|
+
`;J=H+J}if(/[^ ]/.test(J)){let H=1,q=U.linePos[1];if(q?.line===X&&q.col>z)H=Math.max(1,Math.min(q.col-z,80-Q));let G=" ".repeat(Q)+"^".repeat(H);U.message+=`:
|
|
59
59
|
|
|
60
60
|
${J}
|
|
61
61
|
${G}
|
|
62
|
-
`}};
|
|
63
|
-
`))return!0;if($.end){for(let Z of $.end)if(Z.type==="newline")return!0}return!1;case"flow-collection":for(let Z of $.items){for(let U of Z.start)if(U.type==="newline")return!0;if(Z.sep){for(let U of Z.sep)if(U.type==="newline")return!0}if(
|
|
64
|
-
`+B.comment;else
|
|
65
|
-
`+
|
|
66
|
-
`+N.comment;else G.comment=N.comment;Y=N.end;continue}if(!J&&U.options.strict&&
|
|
67
|
-
`+C;else D.comment=C;N.comment=N.comment.substring(C.length+1)}}}if(!J&&!A&&!N.found){let C=
|
|
68
|
-
`+w.comment;else D.comment=w.comment;let d=new
|
|
69
|
-
`+L.comment;else G.comment=L.comment;G.range=[X.offset,B,L.offset]}else G.range=[X.offset,B,B];return G}
|
|
70
|
-
`.repeat(Math.max(1,J.length-1)):"",L=X+z.length;if(Z.source)L+=Z.source.length;return{value:B,type:Q,comment:z.comment,range:[X,L,L]}}let
|
|
71
|
-
`;for(let B=W;B<
|
|
72
|
-
`;else if(L.length>
|
|
62
|
+
`}};gU.YAMLError=t$;gU.YAMLParseError=q8;gU.YAMLWarning=G8;gU.prettifyError=EU});var H$=R((kU)=>{function uU($,{flow:Z,indicator:U,next:X,offset:z,onError:Q,parentIndent:J,startOnNewline:H}){let q=!1,G=H,W=H,Y="",V="",O=!1,_=!1,B=null,L=null,I=null,M=null,F=null,A=null,K=null;for(let D of $){if(_){if(D.type!=="space"&&D.type!=="newline"&&D.type!=="comma")Q(D.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");_=!1}if(B){if(G&&D.type!=="comment"&&D.type!=="newline")Q(B,"TAB_AS_INDENT","Tabs are not allowed as indentation");B=null}switch(D.type){case"space":if(!Z&&(U!=="doc-start"||X?.type!=="flow-collection")&&D.source.includes("\t"))B=D;W=!0;break;case"comment":{if(!W)Q(D,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let w=D.source.substring(1)||" ";if(!Y)Y=w;else Y+=V+w;V="",G=!1;break}case"newline":if(G){if(Y)Y+=D.source;else if(!A||U!=="seq-item-ind")q=!0}else V+=D.source;if(G=!0,O=!0,L||I)M=D;W=!0;break;case"anchor":if(L)Q(D,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(D.source.endsWith(":"))Q(D.offset+D.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);L=D,K??(K=D.offset),G=!1,W=!1,_=!0;break;case"tag":{if(I)Q(D,"MULTIPLE_TAGS","A node can have at most one tag");I=D,K??(K=D.offset),G=!1,W=!1,_=!0;break}case U:if(L||I)Q(D,"BAD_PROP_ORDER",`Anchors and tags must be after the ${D.source} indicator`);if(A)Q(D,"UNEXPECTED_TOKEN",`Unexpected ${D.source} in ${Z??"collection"}`);A=D,G=U==="seq-item-ind"||U==="explicit-key-ind",W=!1;break;case"comma":if(Z){if(F)Q(D,"UNEXPECTED_TOKEN",`Unexpected , in ${Z}`);F=D,G=!1,W=!1;break}default:Q(D,"UNEXPECTED_TOKEN",`Unexpected ${D.type} token`),G=!1,W=!1}}let N=$[$.length-1],C=N?N.offset+N.source.length:z;if(_&&X&&X.type!=="space"&&X.type!=="newline"&&X.type!=="comma"&&(X.type!=="scalar"||X.source!==""))Q(X.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(B&&(G&&B.indent<=J||X?.type==="block-map"||X?.type==="block-seq"))Q(B,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:F,found:A,spaceBefore:q,comment:Y,hasNewline:O,anchor:L,tag:I,newlineAfterProp:M,end:C,start:K??C}}kU.resolveProps=uU});var e$=R((mU)=>{function z9($){if(!$)return null;switch($.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if($.source.includes(`
|
|
63
|
+
`))return!0;if($.end){for(let Z of $.end)if(Z.type==="newline")return!0}return!1;case"flow-collection":for(let Z of $.items){for(let U of Z.start)if(U.type==="newline")return!0;if(Z.sep){for(let U of Z.sep)if(U.type==="newline")return!0}if(z9(Z.key)||z9(Z.value))return!0}return!1;default:return!0}}mU.containsNewline=z9});var Q9=R((cU)=>{var lU=e$();function dU($,Z,U){if(Z?.type==="flow-collection"){let X=Z.end[0];if(X.indent===$&&(X.source==="]"||X.source==="}")&&lU.containsNewline(Z))U(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}cU.flowIndentCheck=dU});var J9=R((sU)=>{var Y8=b();function iU($,Z,U){let{uniqueKeys:X}=$.options;if(X===!1)return!1;let z=typeof X==="function"?X:(Q,J)=>Q===J||Y8.isScalar(Q)&&Y8.isScalar(J)&&Q.value===J.value;return Z.some((Q)=>z(Q.key,U))}sU.mapIncludes=iU});var L8=R(($X)=>{var B8=Z0(),nU=X0(),V8=H$(),oU=e$(),W8=Q9(),tU=J9(),O8="All mapping items must start at the same column";function eU({composeNode:$,composeEmptyNode:Z},U,X,z,Q){let H=new(Q?.nodeClass??nU.YAMLMap)(U.schema);if(U.atRoot)U.atRoot=!1;let q=X.offset,G=null;for(let W of X.items){let{start:Y,key:V,sep:O,value:_}=W,B=V8.resolveProps(Y,{indicator:"explicit-key-ind",next:V??O?.[0],offset:q,onError:z,parentIndent:X.indent,startOnNewline:!0}),L=!B.found;if(L){if(V){if(V.type==="block-seq")z(q,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in V&&V.indent!==X.indent)z(q,"BAD_INDENT",O8)}if(!B.anchor&&!B.tag&&!O){if(G=B.end,B.comment)if(H.comment)H.comment+=`
|
|
64
|
+
`+B.comment;else H.comment=B.comment;continue}if(B.newlineAfterProp||oU.containsNewline(V))z(V??Y[Y.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(B.found?.indent!==X.indent)z(q,"BAD_INDENT",O8);U.atKey=!0;let I=B.end,M=V?$(U,V,B,z):Z(U,I,Y,null,B,z);if(U.schema.compat)W8.flowIndentCheck(X.indent,V,z);if(U.atKey=!1,tU.mapIncludes(U,H.items,M))z(I,"DUPLICATE_KEY","Map keys must be unique");let F=V8.resolveProps(O??[],{indicator:"map-value-ind",next:_,offset:M.range[2],onError:z,parentIndent:X.indent,startOnNewline:!V||V.type==="block-scalar"});if(q=F.end,F.found){if(L){if(_?.type==="block-map"&&!F.hasNewline)z(q,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(U.options.strict&&B.start<F.found.offset-1024)z(M.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let A=_?$(U,_,F,z):Z(U,q,O,null,F,z);if(U.schema.compat)W8.flowIndentCheck(X.indent,_,z);q=A.range[2];let K=new B8.Pair(M,A);if(U.options.keepSourceTokens)K.srcToken=W;H.items.push(K)}else{if(L)z(M.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(F.comment)if(M.comment)M.comment+=`
|
|
65
|
+
`+F.comment;else M.comment=F.comment;let A=new B8.Pair(M);if(U.options.keepSourceTokens)A.srcToken=W;H.items.push(A)}}if(G&&G<q)z(G,"IMPOSSIBLE","Map comment with trailing content");return H.range=[X.offset,q,G??q],H}$X.resolveBlockMap=eU});var _8=R((JX)=>{var UX=z0(),XX=H$(),zX=Q9();function QX({composeNode:$,composeEmptyNode:Z},U,X,z,Q){let H=new(Q?.nodeClass??UX.YAMLSeq)(U.schema);if(U.atRoot)U.atRoot=!1;if(U.atKey)U.atKey=!1;let q=X.offset,G=null;for(let{start:W,value:Y}of X.items){let V=XX.resolveProps(W,{indicator:"seq-item-ind",next:Y,offset:q,onError:z,parentIndent:X.indent,startOnNewline:!0});if(!V.found)if(V.anchor||V.tag||Y)if(Y?.type==="block-seq")z(V.end,"BAD_INDENT","All sequence items must start at the same column");else z(q,"MISSING_CHAR","Sequence item without - indicator");else{if(G=V.end,V.comment)H.comment=V.comment;continue}let O=Y?$(U,Y,V,z):Z(U,V.end,W,null,V,z);if(U.schema.compat)zX.flowIndentCheck(X.indent,Y,z);q=O.range[2],H.items.push(O)}return H.range=[X.offset,q,G??q],H}JX.resolveBlockSeq=QX});var C0=R((GX)=>{function qX($,Z,U,X){let z="";if($){let Q=!1,J="";for(let H of $){let{source:q,type:G}=H;switch(G){case"space":Q=!0;break;case"comment":{if(U&&!Q)X(H,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let W=q.substring(1)||" ";if(!z)z=W;else z+=J+W;J="";break}case"newline":if(z)J+=q;Q=!0;break;default:X(H,"UNEXPECTED_TOKEN",`Unexpected ${G} at node end`)}Z+=q.length}}return{comment:z,offset:Z}}GX.resolveEnd=qX});var R8=R((IX)=>{var BX=b(),VX=Z0(),D8=X0(),WX=z0(),OX=C0(),I8=H$(),LX=e$(),_X=J9(),H9="Block collections are not allowed within flow collections",q9=($)=>$&&($.type==="block-map"||$.type==="block-seq");function DX({composeNode:$,composeEmptyNode:Z},U,X,z,Q){let J=X.start.source==="{",H=J?"flow map":"flow sequence",G=new(Q?.nodeClass??(J?D8.YAMLMap:WX.YAMLSeq))(U.schema);G.flow=!0;let W=U.atRoot;if(W)U.atRoot=!1;if(U.atKey)U.atKey=!1;let Y=X.offset+X.start.source.length;for(let L=0;L<X.items.length;++L){let I=X.items[L],{start:M,key:F,sep:A,value:K}=I,N=I8.resolveProps(M,{flow:H,indicator:"explicit-key-ind",next:F??A?.[0],offset:Y,onError:z,parentIndent:X.indent,startOnNewline:!1});if(!N.found){if(!N.anchor&&!N.tag&&!A&&!K){if(L===0&&N.comma)z(N.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${H}`);else if(L<X.items.length-1)z(N.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${H}`);if(N.comment)if(G.comment)G.comment+=`
|
|
66
|
+
`+N.comment;else G.comment=N.comment;Y=N.end;continue}if(!J&&U.options.strict&&LX.containsNewline(F))z(F,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(L===0){if(N.comma)z(N.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${H}`)}else{if(!N.comma)z(N.start,"MISSING_CHAR",`Missing , between ${H} items`);if(N.comment){let C="";$:for(let D of M)switch(D.type){case"comma":case"space":break;case"comment":C=D.source.substring(1);break $;default:break $}if(C){let D=G.items[G.items.length-1];if(BX.isPair(D))D=D.value??D.key;if(D.comment)D.comment+=`
|
|
67
|
+
`+C;else D.comment=C;N.comment=N.comment.substring(C.length+1)}}}if(!J&&!A&&!N.found){let C=K?$(U,K,N,z):Z(U,N.end,A,null,N,z);if(G.items.push(C),Y=C.range[2],q9(K))z(C.range,"BLOCK_IN_FLOW",H9)}else{U.atKey=!0;let C=N.end,D=F?$(U,F,N,z):Z(U,C,M,null,N,z);if(q9(F))z(D.range,"BLOCK_IN_FLOW",H9);U.atKey=!1;let w=I8.resolveProps(A??[],{flow:H,indicator:"map-value-ind",next:K,offset:D.range[2],onError:z,parentIndent:X.indent,startOnNewline:!1});if(w.found){if(!J&&!N.found&&U.options.strict){if(A)for(let E of A){if(E===w.found)break;if(E.type==="newline"){z(E,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(N.start<w.found.offset-1024)z(w.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(K)if("source"in K&&K.source?.[0]===":")z(K,"MISSING_CHAR",`Missing space after : in ${H}`);else z(w.start,"MISSING_CHAR",`Missing , or : between ${H} items`);let l=K?$(U,K,w,z):w.found?Z(U,w.end,A,null,w,z):null;if(l){if(q9(K))z(l.range,"BLOCK_IN_FLOW",H9)}else if(w.comment)if(D.comment)D.comment+=`
|
|
68
|
+
`+w.comment;else D.comment=w.comment;let d=new VX.Pair(D,l);if(U.options.keepSourceTokens)d.srcToken=I;if(J){let E=G;if(_X.mapIncludes(U,E.items,D))z(C,"DUPLICATE_KEY","Map keys must be unique");E.items.push(d)}else{let E=new D8.YAMLMap(U.schema);E.flow=!0,E.items.push(d);let x0=(l??D).range;E.range=[D.range[0],x0[1],x0[2]],G.items.push(E)}Y=l?l.range[2]:w.end}}let V=J?"}":"]",[O,..._]=X.end,B=Y;if(O?.source===V)B=O.offset+O.source.length;else{let L=H[0].toUpperCase()+H.substring(1),I=W?`${L} must end with a ${V}`:`${L} in block collection must be sufficiently indented and end with a ${V}`;if(z(Y,W?"MISSING_CHAR":"BAD_INDENT",I),O&&O.source.length!==1)_.unshift(O)}if(_.length>0){let L=OX.resolveEnd(_,B,U.options.strict,z);if(L.comment)if(G.comment)G.comment+=`
|
|
69
|
+
`+L.comment;else G.comment=L.comment;G.range=[X.offset,B,L.offset]}else G.range=[X.offset,B,B];return G}IX.resolveFlowCollection=DX});var M8=R((bX)=>{var MX=b(),PX=g(),TX=X0(),FX=z0(),KX=L8(),AX=_8(),NX=R8();function G9($,Z,U,X,z,Q){let J=U.type==="block-map"?KX.resolveBlockMap($,Z,U,X,Q):U.type==="block-seq"?AX.resolveBlockSeq($,Z,U,X,Q):NX.resolveFlowCollection($,Z,U,X,Q),H=J.constructor;if(z==="!"||z===H.tagName)return J.tag=H.tagName,J;if(z)J.tag=z;return J}function wX($,Z,U,X,z){let Q=X.tag,J=!Q?null:Z.directives.tagName(Q.source,(V)=>z(Q,"TAG_RESOLVE_FAILED",V));if(U.type==="block-seq"){let{anchor:V,newlineAfterProp:O}=X,_=V&&Q?V.offset>Q.offset?V:Q:V??Q;if(_&&(!O||O.offset<_.offset))z(_,"MISSING_CHAR","Missing newline after block sequence props")}let H=U.type==="block-map"?"map":U.type==="block-seq"?"seq":U.start.source==="{"?"map":"seq";if(!Q||!J||J==="!"||J===TX.YAMLMap.tagName&&H==="map"||J===FX.YAMLSeq.tagName&&H==="seq")return G9($,Z,U,z,J);let q=Z.schema.tags.find((V)=>V.tag===J&&V.collection===H);if(!q){let V=Z.schema.knownTags[J];if(V?.collection===H)Z.schema.tags.push(Object.assign({},V,{default:!1})),q=V;else{if(V)z(Q,"BAD_COLLECTION_TYPE",`${V.tag} used for ${H} collection, but expects ${V.collection??"scalar"}`,!0);else z(Q,"TAG_RESOLVE_FAILED",`Unresolved tag: ${J}`,!0);return G9($,Z,U,z,J)}}let G=G9($,Z,U,z,J,q),W=q.resolve?.(G,(V)=>z(Q,"TAG_RESOLVE_FAILED",V),Z.options)??G,Y=MX.isNode(W)?W:new PX.Scalar(W);if(Y.range=G.range,Y.tag=J,q?.format)Y.format=q.format;return Y}bX.composeCollection=wX});var B9=R((gX)=>{var Y9=g();function jX($,Z,U){let X=Z.offset,z=SX(Z,$.options.strict,U);if(!z)return{value:"",type:null,comment:"",range:[X,X,X]};let Q=z.mode===">"?Y9.Scalar.BLOCK_FOLDED:Y9.Scalar.BLOCK_LITERAL,J=Z.source?EX(Z.source):[],H=J.length;for(let B=J.length-1;B>=0;--B){let L=J[B][1];if(L===""||L==="\r")H=B;else break}if(H===0){let B=z.chomp==="+"&&J.length>0?`
|
|
70
|
+
`.repeat(Math.max(1,J.length-1)):"",L=X+z.length;if(Z.source)L+=Z.source.length;return{value:B,type:Q,comment:z.comment,range:[X,L,L]}}let q=Z.indent+z.indent,G=Z.offset+z.length,W=0;for(let B=0;B<H;++B){let[L,I]=J[B];if(I===""||I==="\r"){if(z.indent===0&&L.length>q)q=L.length}else{if(L.length<q)U(G+L.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(z.indent===0)q=L.length;if(W=B,q===0&&!$.atRoot)U(G,"BAD_INDENT","Block scalar values in collections must be indented");break}G+=L.length+I.length+1}for(let B=J.length-1;B>=H;--B)if(J[B][0].length>q)H=B+1;let Y="",V="",O=!1;for(let B=0;B<W;++B)Y+=J[B][0].slice(q)+`
|
|
71
|
+
`;for(let B=W;B<H;++B){let[L,I]=J[B];G+=L.length+I.length+1;let M=I[I.length-1]==="\r";if(M)I=I.slice(0,-1);if(I&&L.length<q){let A=`Block scalar lines must not be less indented than their ${z.indent?"explicit indentation indicator":"first line"}`;U(G-I.length-(M?2:1),"BAD_INDENT",A),L=""}if(Q===Y9.Scalar.BLOCK_LITERAL)Y+=V+L.slice(q)+I,V=`
|
|
72
|
+
`;else if(L.length>q||I[0]==="\t"){if(V===" ")V=`
|
|
73
73
|
`;else if(!O&&V===`
|
|
74
74
|
`)V=`
|
|
75
75
|
|
|
76
|
-
`;Y+=V+L.slice(
|
|
76
|
+
`;Y+=V+L.slice(q)+I,V=`
|
|
77
77
|
`,O=!0}else if(I==="")if(V===`
|
|
78
78
|
`)Y+=`
|
|
79
79
|
`;else V=`
|
|
80
|
-
`;else Y+=V+I,V=" ",O=!1}switch(z.chomp){case"-":break;case"+":for(let B=
|
|
81
|
-
`+J[B][0].slice(
|
|
80
|
+
`;else Y+=V+I,V=" ",O=!1}switch(z.chomp){case"-":break;case"+":for(let B=H;B<J.length;++B)Y+=`
|
|
81
|
+
`+J[B][0].slice(q);if(Y[Y.length-1]!==`
|
|
82
82
|
`)Y+=`
|
|
83
83
|
`;break;default:Y+=`
|
|
84
|
-
`}let _=X+z.length+Z.source.length;return{value:Y,type:Q,comment:z.comment,range:[X,_,_]}}function
|
|
84
|
+
`}let _=X+z.length+Z.source.length;return{value:Y,type:Q,comment:z.comment,range:[X,_,_]}}function SX({offset:$,props:Z},U,X){if(Z[0].type!=="block-scalar-header")return X(Z[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:z}=Z[0],Q=z[0],J=0,H="",q=-1;for(let V=1;V<z.length;++V){let O=z[V];if(!H&&(O==="-"||O==="+"))H=O;else{let _=Number(O);if(!J&&_)J=_;else if(q===-1)q=$+V}}if(q!==-1)X(q,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${z}`);let G=!1,W="",Y=z.length;for(let V=1;V<Z.length;++V){let O=Z[V];switch(O.type){case"space":G=!0;case"newline":Y+=O.source.length;break;case"comment":if(U&&!G)X(O,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");Y+=O.source.length,W=O.source.substring(1);break;case"error":X(O,"UNEXPECTED_TOKEN",O.message),Y+=O.source.length;break;default:{let _=`Unexpected token in block scalar header: ${O.type}`;X(O,"UNEXPECTED_TOKEN",_);let B=O.source;if(B&&typeof B==="string")Y+=B.length}}}return{mode:Q,indent:J,chomp:H,comment:W,length:Y}}function EX($){let Z=$.split(/\n( *)/),U=Z[0],X=U.match(/^( *)/),Q=[X?.[1]?[X[1],U.slice(X[1].length)]:["",U]];for(let J=1;J<Z.length;J+=2)Q.push([Z[J],Z[J+1]]);return Q}gX.resolveBlockScalar=jX});var W9=R((lX)=>{var V9=g(),yX=C0();function xX($,Z,U){let{offset:X,type:z,source:Q,end:J}=$,H,q,G=(V,O,_)=>U(X+V,O,_);switch(z){case"scalar":H=V9.Scalar.PLAIN,q=hX(Q,G);break;case"single-quoted-scalar":H=V9.Scalar.QUOTE_SINGLE,q=uX(Q,G);break;case"double-quoted-scalar":H=V9.Scalar.QUOTE_DOUBLE,q=kX(Q,G);break;default:return U($,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${z}`),{value:"",type:null,comment:"",range:[X,X+Q.length,X+Q.length]}}let W=X+Q.length,Y=yX.resolveEnd(J,W,Z,U);return{value:q,type:H,comment:Y.comment,range:[X,W,Y.offset]}}function hX($,Z){let U="";switch($[0]){case"\t":U="a tab character";break;case",":U="flow indicator character ,";break;case"%":U="directive indicator character %";break;case"|":case">":{U=`block scalar indicator ${$[0]}`;break}case"@":case"`":{U=`reserved character ${$[0]}`;break}}if(U)Z(0,"BAD_SCALAR_START",`Plain value cannot start with ${U}`);return P8($)}function uX($,Z){if($[$.length-1]!=="'"||$.length===1)Z($.length,"MISSING_CHAR","Missing closing 'quote");return P8($.slice(1,-1)).replace(/''/g,"'")}function P8($){let Z,U;try{Z=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
85
85
|
`,"sy"),U=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
86
86
|
`,"sy")}catch{Z=/(.*?)[ \t]*\r?\n/sy,U=/[ \t]*(.*?)[ \t]*\r?\n/sy}let X=Z.exec($);if(!X)return $;let z=X[1],Q=" ",J=Z.lastIndex;U.lastIndex=J;while(X=U.exec($)){if(X[1]==="")if(Q===`
|
|
87
87
|
`)z+=Q;else Q=`
|
|
88
|
-
`;else z+=Q+X[1],Q=" ";J=U.lastIndex}let
|
|
88
|
+
`;else z+=Q+X[1],Q=" ";J=U.lastIndex}let H=/[ \t]*(.*)/sy;return H.lastIndex=J,X=H.exec($),z+Q+(X?.[1]??"")}function kX($,Z){let U="";for(let X=1;X<$.length-1;++X){let z=$[X];if(z==="\r"&&$[X+1]===`
|
|
89
89
|
`)continue;if(z===`
|
|
90
|
-
`){let{fold:Q,offset:J}=
|
|
90
|
+
`){let{fold:Q,offset:J}=vX($,X);U+=Q,X=J}else if(z==="\\"){let Q=$[++X],J=mX[Q];if(J)U+=J;else if(Q===`
|
|
91
91
|
`){Q=$[X+1];while(Q===" "||Q==="\t")Q=$[++X+1]}else if(Q==="\r"&&$[X+1]===`
|
|
92
|
-
`){Q=$[++X+1];while(Q===" "||Q==="\t")Q=$[++X+1]}else if(Q==="x"||Q==="u"||Q==="U"){let
|
|
92
|
+
`){Q=$[++X+1];while(Q===" "||Q==="\t")Q=$[++X+1]}else if(Q==="x"||Q==="u"||Q==="U"){let H={x:2,u:4,U:8}[Q];U+=pX($,X+1,H,Z),X+=H}else{let H=$.substr(X-1,2);Z(X-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${H}`),U+=H}}else if(z===" "||z==="\t"){let Q=X,J=$[X+1];while(J===" "||J==="\t")J=$[++X+1];if(J!==`
|
|
93
93
|
`&&!(J==="\r"&&$[X+2]===`
|
|
94
|
-
`))U+=X>Q?$.slice(Q,X+1):z}else U+=z}if($[$.length-1]!=='"'||$.length===1)Z($.length,"MISSING_CHAR",'Missing closing "quote');return U}function
|
|
94
|
+
`))U+=X>Q?$.slice(Q,X+1):z}else U+=z}if($[$.length-1]!=='"'||$.length===1)Z($.length,"MISSING_CHAR",'Missing closing "quote');return U}function vX($,Z){let U="",X=$[Z+1];while(X===" "||X==="\t"||X===`
|
|
95
95
|
`||X==="\r"){if(X==="\r"&&$[Z+2]!==`
|
|
96
96
|
`)break;if(X===`
|
|
97
97
|
`)U+=`
|
|
98
|
-
`;Z+=1,X=$[Z+1]}if(!U)U=" ";return{fold:U,offset:Z}}var
|
|
99
|
-
`,r:"\r",t:"\t",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function
|
|
98
|
+
`;Z+=1,X=$[Z+1]}if(!U)U=" ";return{fold:U,offset:Z}}var mX={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
99
|
+
`,r:"\r",t:"\t",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function pX($,Z,U,X){let z=$.substr(Z,U),J=z.length===U&&/^[0-9a-fA-F]+$/.test(z)?parseInt(z,16):NaN;if(isNaN(J)){let H=$.substr(Z-2,U+2);return X(Z-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${H}`),H}return String.fromCodePoint(J)}lX.resolveFlowScalar=xX});var F8=R((nX)=>{var W0=b(),T8=g(),cX=B9(),aX=W9();function iX($,Z,U,X){let{value:z,type:Q,comment:J,range:H}=Z.type==="block-scalar"?cX.resolveBlockScalar($,Z,X):aX.resolveFlowScalar(Z,$.options.strict,X),q=U?$.directives.tagName(U.source,(Y)=>X(U,"TAG_RESOLVE_FAILED",Y)):null,G;if($.options.stringKeys&&$.atKey)G=$.schema[W0.SCALAR];else if(q)G=sX($.schema,z,q,U,X);else if(Z.type==="scalar")G=rX($,z,Z,X);else G=$.schema[W0.SCALAR];let W;try{let Y=G.resolve(z,(V)=>X(U??Z,"TAG_RESOLVE_FAILED",V),$.options);W=W0.isScalar(Y)?Y:new T8.Scalar(Y)}catch(Y){let V=Y instanceof Error?Y.message:String(Y);X(U??Z,"TAG_RESOLVE_FAILED",V),W=new T8.Scalar(z)}if(W.range=H,W.source=z,Q)W.type=Q;if(q)W.tag=q;if(G.format)W.format=G.format;if(J)W.comment=J;return W}function sX($,Z,U,X,z){if(U==="!")return $[W0.SCALAR];let Q=[];for(let H of $.tags)if(!H.collection&&H.tag===U)if(H.default&&H.test)Q.push(H);else return H;for(let H of Q)if(H.test?.test(Z))return H;let J=$.knownTags[U];if(J&&!J.collection)return $.tags.push(Object.assign({},J,{default:!1,test:void 0})),J;return z(X,"TAG_RESOLVE_FAILED",`Unresolved tag: ${U}`,U!=="tag:yaml.org,2002:str"),$[W0.SCALAR]}function rX({atKey:$,directives:Z,schema:U},X,z,Q){let J=U.tags.find((H)=>(H.default===!0||$&&H.default==="key")&&H.test?.test(X))||U[W0.SCALAR];if(U.compat){let H=U.compat.find((q)=>q.default&&q.test?.test(X))??U[W0.SCALAR];if(J.tag!==H.tag){let q=Z.tagString(J.tag),G=Z.tagString(H.tag),W=`Value may be parsed as either ${q} or ${G}`;Q(z,"TAG_RESOLVE_FAILED",W,!0)}}return J}nX.composeScalar=iX});var K8=R((eX)=>{function tX($,Z,U){if(Z){U??(U=Z.length);for(let X=U-1;X>=0;--X){let z=Z[X];switch(z.type){case"space":case"comment":case"newline":$-=z.source.length;continue}z=Z[++X];while(z?.type==="space")$+=z.source.length,z=Z[++X];break}}return $}eX.emptyScalarPosition=tX});var w8=R((qz)=>{var Zz=d0(),Uz=b(),Xz=M8(),A8=F8(),zz=C0(),Qz=K8(),Jz={composeNode:N8,composeEmptyNode:O9};function N8($,Z,U,X){let z=$.atKey,{spaceBefore:Q,comment:J,anchor:H,tag:q}=U,G,W=!0;switch(Z.type){case"alias":if(G=Hz($,Z,X),H||q)X(Z,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":if(G=A8.composeScalar($,Z,q,X),H)G.anchor=H.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(G=Xz.composeCollection(Jz,$,Z,U,X),H)G.anchor=H.source.substring(1)}catch(Y){let V=Y instanceof Error?Y.message:String(Y);X(Z,"RESOURCE_EXHAUSTION",V)}break;default:{let Y=Z.type==="error"?Z.message:`Unsupported token (type: ${Z.type})`;X(Z,"UNEXPECTED_TOKEN",Y),W=!1}}if(G??(G=O9($,Z.offset,void 0,null,U,X)),H&&G.anchor==="")X(H,"BAD_ALIAS","Anchor cannot be an empty string");if(z&&$.options.stringKeys&&(!Uz.isScalar(G)||typeof G.value!=="string"||G.tag&&G.tag!=="tag:yaml.org,2002:str"))X(q??Z,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(Q)G.spaceBefore=!0;if(J)if(Z.type==="scalar"&&Z.source==="")G.comment=J;else G.commentBefore=J;if($.options.keepSourceTokens&&W)G.srcToken=Z;return G}function O9($,Z,U,X,{spaceBefore:z,comment:Q,anchor:J,tag:H,end:q},G){let W={type:"scalar",offset:Qz.emptyScalarPosition(Z,U,X),indent:-1,source:""},Y=A8.composeScalar($,W,H,G);if(J){if(Y.anchor=J.source.substring(1),Y.anchor==="")G(J,"BAD_ALIAS","Anchor cannot be an empty string")}if(z)Y.spaceBefore=!0;if(Q)Y.comment=Q,Y.range[2]=q;return Y}function Hz({options:$},{offset:Z,source:U,end:X},z){let Q=new Zz.Alias(U.substring(1));if(Q.source==="")z(Z,"BAD_ALIAS","Alias cannot be an empty string");if(Q.source.endsWith(":"))z(Z+U.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let J=Z+U.length,H=zz.resolveEnd(X,J,$.strict,z);if(Q.range=[Z,J,H.offset],H.comment)Q.comment=H.comment;return Q}qz.composeEmptyNode=O9;qz.composeNode=N8});var C8=R((Lz)=>{var Bz=Q$(),b8=w8(),Vz=C0(),Wz=H$();function Oz($,Z,{offset:U,start:X,value:z,end:Q},J){let H=Object.assign({_directives:Z},$),q=new Bz.Document(void 0,H),G={atKey:!1,atRoot:!0,directives:q.directives,options:q.options,schema:q.schema},W=Wz.resolveProps(X,{indicator:"doc-start",next:z??Q?.[0],offset:U,onError:J,parentIndent:0,startOnNewline:!0});if(W.found){if(q.directives.docStart=!0,z&&(z.type==="block-map"||z.type==="block-seq")&&!W.hasNewline)J(W.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}q.contents=z?b8.composeNode(G,z,W,J):b8.composeEmptyNode(G,W.end,X,null,W,J);let Y=q.contents.range[2],V=Vz.resolveEnd(Q,Y,!1,J);if(V.comment)q.comment=V.comment;return q.range=[U,Y,V.offset],q}Lz.composeDoc=Oz});var L9=R((Tz)=>{var Dz=h0("process"),Iz=R2(),Rz=Q$(),q$=J$(),j8=b(),Mz=C8(),Pz=C0();function G$($){if(typeof $==="number")return[$,$+1];if(Array.isArray($))return $.length===2?$:[$[0],$[1]];let{offset:Z,source:U}=$;return[Z,Z+(typeof U==="string"?U.length:1)]}function S8($){let Z="",U=!1,X=!1;for(let z=0;z<$.length;++z){let Q=$[z];switch(Q[0]){case"#":Z+=(Z===""?"":X?`
|
|
100
100
|
|
|
101
101
|
`:`
|
|
102
|
-
`)+(Q.substring(1)||" "),U=!0,X=!1;break;case"%":if($[z+1]?.[0]!=="#")z+=1;U=!1;break;default:if(!U)X=!0;U=!1}}return{comment:Z,afterEmptyLine:X}}class E8{constructor($={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(Z,U,X,z)=>{let Q=G$(Z);if(z)this.warnings.push(new
|
|
102
|
+
`)+(Q.substring(1)||" "),U=!0,X=!1;break;case"%":if($[z+1]?.[0]!=="#")z+=1;U=!1;break;default:if(!U)X=!0;U=!1}}return{comment:Z,afterEmptyLine:X}}class E8{constructor($={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(Z,U,X,z)=>{let Q=G$(Z);if(z)this.warnings.push(new q$.YAMLWarning(Q,U,X));else this.errors.push(new q$.YAMLParseError(Q,U,X))},this.directives=new Iz.Directives({version:$.version||"1.2"}),this.options=$}decorate($,Z){let{comment:U,afterEmptyLine:X}=S8(this.prelude);if(U){let z=$.contents;if(Z)$.comment=$.comment?`${$.comment}
|
|
103
103
|
${U}`:U;else if(X||$.directives.docStart||!z)$.commentBefore=U;else if(j8.isCollection(z)&&!z.flow&&z.items.length>0){let Q=z.items[0];if(j8.isPair(Q))Q=Q.key;let J=Q.commentBefore;Q.commentBefore=J?`${U}
|
|
104
104
|
${J}`:U}else{let Q=z.commentBefore;z.commentBefore=Q?`${U}
|
|
105
|
-
${Q}`:U}}if(Z)Array.prototype.push.apply($.errors,this.errors),Array.prototype.push.apply($.warnings,this.warnings);else $.errors=this.errors,$.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:S8(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose($,Z=!1,U=-1){for(let X of $)yield*this.next(X);yield*this.end(Z,U)}*next($){if(
|
|
106
|
-
${Z.comment}`:Z.comment}this.doc.range[2]=Z.offset;break}default:this.errors.push(new
|
|
107
|
-
`}];switch(
|
|
108
|
-
`),W=
|
|
109
|
-
`,V=[{type:"block-scalar-header",offset:Q,indent:X,source:W}];if(!f8(V,
|
|
110
|
-
`});return{type:"block-scalar",offset:Q,indent:X,props:V,source:Y}}case'"':return{type:"double-quoted-scalar",offset:Q,indent:X,source:
|
|
105
|
+
${Q}`:U}}if(Z)Array.prototype.push.apply($.errors,this.errors),Array.prototype.push.apply($.warnings,this.warnings);else $.errors=this.errors,$.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:S8(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose($,Z=!1,U=-1){for(let X of $)yield*this.next(X);yield*this.end(Z,U)}*next($){if(Dz.env.LOG_STREAM)console.dir($,{depth:null});switch($.type){case"directive":this.directives.add($.source,(Z,U,X)=>{let z=G$($);z[0]+=Z,this.onError(z,"BAD_DIRECTIVE",U,X)}),this.prelude.push($.source),this.atDirectives=!0;break;case"document":{let Z=Mz.composeDoc(this.options,this.directives,$,this.onError);if(this.atDirectives&&!Z.directives.docStart)this.onError($,"MISSING_CHAR","Missing directives-end/doc-start indicator line");if(this.decorate(Z,!1),this.doc)yield this.doc;this.doc=Z,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push($.source);break;case"error":{let Z=$.source?`${$.message}: ${JSON.stringify($.source)}`:$.message,U=new q$.YAMLParseError(G$($),"UNEXPECTED_TOKEN",Z);if(this.atDirectives||!this.doc)this.errors.push(U);else this.doc.errors.push(U);break}case"doc-end":{if(!this.doc){this.errors.push(new q$.YAMLParseError(G$($),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let Z=Pz.resolveEnd($.end,$.offset+$.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),Z.comment){let U=this.doc.comment;this.doc.comment=U?`${U}
|
|
106
|
+
${Z.comment}`:Z.comment}this.doc.range[2]=Z.offset;break}default:this.errors.push(new q$.YAMLParseError(G$($),"UNEXPECTED_TOKEN",`Unsupported token ${$.type}`))}}*end($=!1,Z=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if($){let U=Object.assign({_directives:this.directives},this.options),X=new Rz.Document(void 0,U);if(this.atDirectives)this.onError(Z,"MISSING_CHAR","Missing directives-end indicator line");X.range=[0,Z,Z],this.decorate(X,!1),yield X}}}Tz.Composer=E8});var y8=R((Sz)=>{var Kz=B9(),Az=W9(),Nz=J$(),g8=s0();function wz($,Z=!0,U){if($){let X=(z,Q,J)=>{let H=typeof z==="number"?z:Array.isArray(z)?z[0]:z.offset;if(U)U(H,Q,J);else throw new Nz.YAMLParseError([H,H+1],Q,J)};switch($.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Az.resolveFlowScalar($,Z,X);case"block-scalar":return Kz.resolveBlockScalar({options:{strict:Z}},$,X)}}return null}function bz($,Z){let{implicitKey:U=!1,indent:X,inFlow:z=!1,offset:Q=-1,type:J="PLAIN"}=Z,H=g8.stringifyString({type:J,value:$},{implicitKey:U,indent:X>0?" ".repeat(X):"",inFlow:z,options:{blockQuote:!0,lineWidth:-1}}),q=Z.end??[{type:"newline",offset:-1,indent:X,source:`
|
|
107
|
+
`}];switch(H[0]){case"|":case">":{let G=H.indexOf(`
|
|
108
|
+
`),W=H.substring(0,G),Y=H.substring(G+1)+`
|
|
109
|
+
`,V=[{type:"block-scalar-header",offset:Q,indent:X,source:W}];if(!f8(V,q))V.push({type:"newline",offset:-1,indent:X,source:`
|
|
110
|
+
`});return{type:"block-scalar",offset:Q,indent:X,props:V,source:Y}}case'"':return{type:"double-quoted-scalar",offset:Q,indent:X,source:H,end:q};case"'":return{type:"single-quoted-scalar",offset:Q,indent:X,source:H,end:q};default:return{type:"scalar",offset:Q,indent:X,source:H,end:q}}}function Cz($,Z,U={}){let{afterKey:X=!1,implicitKey:z=!1,inFlow:Q=!1,type:J}=U,H="indent"in $?$.indent:null;if(X&&typeof H==="number")H+=2;if(!J)switch($.type){case"single-quoted-scalar":J="QUOTE_SINGLE";break;case"double-quoted-scalar":J="QUOTE_DOUBLE";break;case"block-scalar":{let G=$.props[0];if(G.type!=="block-scalar-header")throw Error("Invalid block scalar header");J=G.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:J="PLAIN"}let q=g8.stringifyString({type:J,value:Z},{implicitKey:z||H===null,indent:H!==null&&H>0?" ".repeat(H):"",inFlow:Q,options:{blockQuote:!0,lineWidth:-1}});switch(q[0]){case"|":case">":jz($,q);break;case'"':_9($,q,"double-quoted-scalar");break;case"'":_9($,q,"single-quoted-scalar");break;default:_9($,q,"scalar")}}function jz($,Z){let U=Z.indexOf(`
|
|
111
111
|
`),X=Z.substring(0,U),z=Z.substring(U+1)+`
|
|
112
|
-
`;if($.type==="block-scalar"){let Q=$.props[0];if(Q.type!=="block-scalar-header")throw Error("Invalid block scalar header");Q.source=X,$.source=z}else{let{offset:Q}=$,J="indent"in $?$.indent:-1,
|
|
113
|
-
`});for(let
|
|
114
|
-
`};delete $.items,Object.assign($,{type:U,source:Z,end:[z]});break}default:{let X="indent"in $?$.indent:-1,z="end"in $&&Array.isArray($.end)?$.end.filter((Q)=>Q.type==="space"||Q.type==="comment"||Q.type==="newline"):[];for(let Q of Object.keys($))if(Q!=="type"&&Q!=="offset")delete $[Q];Object.assign($,{type:U,indent:X,source:Z,end:z})}}}
|
|
112
|
+
`;if($.type==="block-scalar"){let Q=$.props[0];if(Q.type!=="block-scalar-header")throw Error("Invalid block scalar header");Q.source=X,$.source=z}else{let{offset:Q}=$,J="indent"in $?$.indent:-1,H=[{type:"block-scalar-header",offset:Q,indent:J,source:X}];if(!f8(H,"end"in $?$.end:void 0))H.push({type:"newline",offset:-1,indent:J,source:`
|
|
113
|
+
`});for(let q of Object.keys($))if(q!=="type"&&q!=="offset")delete $[q];Object.assign($,{type:"block-scalar",indent:J,props:H,source:z})}}function f8($,Z){if(Z)for(let U of Z)switch(U.type){case"space":case"comment":$.push(U);break;case"newline":return $.push(U),!0}return!1}function _9($,Z,U){switch($.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":$.type=U,$.source=Z;break;case"block-scalar":{let X=$.props.slice(1),z=Z.length;if($.props[0].type==="block-scalar-header")z-=$.props[0].source.length;for(let Q of X)Q.offset+=z;delete $.props,Object.assign($,{type:U,source:Z,end:X});break}case"block-map":case"block-seq":{let z={type:"newline",offset:$.offset+Z.length,indent:$.indent,source:`
|
|
114
|
+
`};delete $.items,Object.assign($,{type:U,source:Z,end:[z]});break}default:{let X="indent"in $?$.indent:-1,z="end"in $&&Array.isArray($.end)?$.end.filter((Q)=>Q.type==="space"||Q.type==="comment"||Q.type==="newline"):[];for(let Q of Object.keys($))if(Q!=="type"&&Q!=="offset")delete $[Q];Object.assign($,{type:U,indent:X,source:Z,end:z})}}}Sz.createScalarToken=bz;Sz.resolveAsScalar=wz;Sz.setScalarValue=Cz});var x8=R((xz)=>{var yz=($)=>("type"in $)?Z2($):$2($);function Z2($){switch($.type){case"block-scalar":{let Z="";for(let U of $.props)Z+=Z2(U);return Z+$.source}case"block-map":case"block-seq":{let Z="";for(let U of $.items)Z+=$2(U);return Z}case"flow-collection":{let Z=$.start.source;for(let U of $.items)Z+=$2(U);for(let U of $.end)Z+=U.source;return Z}case"document":{let Z=$2($);if($.end)for(let U of $.end)Z+=U.source;return Z}default:{let Z=$.source;if("end"in $&&$.end)for(let U of $.end)Z+=U.source;return Z}}}function $2({start:$,key:Z,sep:U,value:X}){let z="";for(let Q of $)z+=Q.source;if(Z)z+=Z2(Z);if(U)for(let Q of U)z+=Q.source;if(X)z+=Z2(X);return z}xz.stringify=yz});var k8=R((kz)=>{var D9=Symbol("break visit"),uz=Symbol("skip children"),h8=Symbol("remove item");function O0($,Z){if("type"in $&&$.type==="document")$={start:$.start,value:$.value};u8(Object.freeze([]),$,Z)}O0.BREAK=D9;O0.SKIP=uz;O0.REMOVE=h8;O0.itemAtPath=($,Z)=>{let U=$;for(let[X,z]of Z){let Q=U?.[X];if(Q&&"items"in Q)U=Q.items[z];else return}return U};O0.parentCollection=($,Z)=>{let U=O0.itemAtPath($,Z.slice(0,-1)),X=Z[Z.length-1][0],z=U?.[X];if(z&&"items"in z)return z;throw Error("Parent collection not found")};function u8($,Z,U){let X=U(Z,$);if(typeof X==="symbol")return X;for(let z of["key","value"]){let Q=Z[z];if(Q&&"items"in Q){for(let J=0;J<Q.items.length;++J){let H=u8(Object.freeze($.concat([[z,J]])),Q.items[J],U);if(typeof H==="number")J=H-1;else if(H===D9)return D9;else if(H===h8)Q.items.splice(J,1),J-=1}if(typeof X==="function"&&z==="key")X=X(Z,$)}}return typeof X==="function"?X(Z,$):X}kz.visit=O0});var U2=R((iz)=>{var I9=y8(),mz=x8(),pz=k8(),R9="\uFEFF",M9="\x02",P9="\x18",T9="\x1F",lz=($)=>!!$&&("items"in $),dz=($)=>!!$&&($.type==="scalar"||$.type==="single-quoted-scalar"||$.type==="double-quoted-scalar"||$.type==="block-scalar");function cz($){switch($){case R9:return"<BOM>";case M9:return"<DOC>";case P9:return"<FLOW_END>";case T9:return"<SCALAR>";default:return JSON.stringify($)}}function az($){switch($){case R9:return"byte-order-mark";case M9:return"doc-mode";case P9:return"flow-error-end";case T9:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
115
115
|
`:case`\r
|
|
116
|
-
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch($[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}
|
|
117
|
-
`:case"\r":case"\t":return!0;default:return!1}}var v8=new Set("0123456789ABCDEFabcdef"),
|
|
118
|
-
\r `),
|
|
116
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch($[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}iz.createScalarToken=I9.createScalarToken;iz.resolveAsScalar=I9.resolveAsScalar;iz.setScalarValue=I9.setScalarValue;iz.stringify=mz.stringify;iz.visit=pz.visit;iz.BOM=R9;iz.DOCUMENT=M9;iz.FLOW_END=P9;iz.SCALAR=T9;iz.isCollection=lz;iz.isScalar=dz;iz.prettyToken=cz;iz.tokenType=az});var K9=R((GQ)=>{var Y$=U2();function m($){switch($){case void 0:case" ":case`
|
|
117
|
+
`:case"\r":case"\t":return!0;default:return!1}}var v8=new Set("0123456789ABCDEFabcdef"),HQ=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),X2=new Set(",[]{}"),qQ=new Set(` ,[]{}
|
|
118
|
+
\r `),F9=($)=>!$||qQ.has($);class m8{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex($,Z=!1){if($){if(typeof $!=="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+$:$,this.lineEndPos=null}this.atEnd=!Z;let U=this.next??"stream";while(U&&(Z||this.hasChars(1)))U=yield*this.parseNext(U)}atLineEnd(){let $=this.pos,Z=this.buffer[$];while(Z===" "||Z==="\t")Z=this.buffer[++$];if(!Z||Z==="#"||Z===`
|
|
119
119
|
`)return!0;if(Z==="\r")return this.buffer[$+1]===`
|
|
120
120
|
`;return!1}charAt($){return this.buffer[this.pos+$]}continueScalar($){let Z=this.buffer[$];if(this.indentNext>0){let U=0;while(Z===" ")Z=this.buffer[++U+$];if(Z==="\r"){let X=this.buffer[U+$+1];if(X===`
|
|
121
121
|
`||!X&&!this.atEnd)return $+U+1}return Z===`
|
|
122
122
|
`||U>=this.indentNext||!Z&&!this.atEnd?$+U:-1}if(Z==="-"||Z==="."){let U=this.buffer.substr($,3);if((U==="---"||U==="...")&&m(this.buffer[$+3]))return-1}return $}getLine(){let $=this.lineEndPos;if(typeof $!=="number"||$!==-1&&$<this.pos)$=this.buffer.indexOf(`
|
|
123
|
-
`,this.pos),this.lineEndPos=$;if($===-1)return this.atEnd?this.buffer.substring(this.pos):null;if(this.buffer[$-1]==="\r")$-=1;return this.buffer.substring(this.pos,$)}hasChars($){return this.pos+$<=this.buffer.length}setNext($){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=$,null}peek($){return this.buffer.substr(this.pos,$)}*parseNext($){switch($){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let $=this.getLine();if($===null)return this.setNext("stream");if($[0]===Y$.BOM)yield*this.pushCount(1),$=$.substring(1);if($[0]==="%"){let Z=$.length,U=$.indexOf("#");while(U!==-1){let z=$[U-1];if(z===" "||z==="\t"){Z=U-1;break}else U=$.indexOf("#",U+1)}while(!0){let z=$[Z-1];if(z===" "||z==="\t")Z-=1;else break}let X=(yield*this.pushCount(Z))+(yield*this.pushSpaces(!0));return yield*this.pushCount($.length-X),this.pushNewline(),"stream"}if(this.atLineEnd()){let Z=yield*this.pushSpaces(!0);return yield*this.pushCount($.length-Z),yield*this.pushNewline(),"stream"}return yield Y$.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let $=this.charAt(0);if(!$&&!this.atEnd)return this.setNext("line-start");if($==="-"||$==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let Z=this.peek(3);if((Z==="---"||Z==="...")&&m(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,Z==="---"?"doc":"stream"}if(this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!m(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){let[$,Z]=this.peek(2);if(!Z&&!this.atEnd)return this.setNext("block-start");if(($==="-"||$==="?"||$===":")&&m(Z)){let U=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=U,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let $=this.getLine();if($===null)return this.setNext("doc");let Z=yield*this.pushIndicators();switch($[Z]){case"#":yield*this.pushCount($.length-Z);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(
|
|
123
|
+
`,this.pos),this.lineEndPos=$;if($===-1)return this.atEnd?this.buffer.substring(this.pos):null;if(this.buffer[$-1]==="\r")$-=1;return this.buffer.substring(this.pos,$)}hasChars($){return this.pos+$<=this.buffer.length}setNext($){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=$,null}peek($){return this.buffer.substr(this.pos,$)}*parseNext($){switch($){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let $=this.getLine();if($===null)return this.setNext("stream");if($[0]===Y$.BOM)yield*this.pushCount(1),$=$.substring(1);if($[0]==="%"){let Z=$.length,U=$.indexOf("#");while(U!==-1){let z=$[U-1];if(z===" "||z==="\t"){Z=U-1;break}else U=$.indexOf("#",U+1)}while(!0){let z=$[Z-1];if(z===" "||z==="\t")Z-=1;else break}let X=(yield*this.pushCount(Z))+(yield*this.pushSpaces(!0));return yield*this.pushCount($.length-X),this.pushNewline(),"stream"}if(this.atLineEnd()){let Z=yield*this.pushSpaces(!0);return yield*this.pushCount($.length-Z),yield*this.pushNewline(),"stream"}return yield Y$.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let $=this.charAt(0);if(!$&&!this.atEnd)return this.setNext("line-start");if($==="-"||$==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let Z=this.peek(3);if((Z==="---"||Z==="...")&&m(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,Z==="---"?"doc":"stream"}if(this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!m(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){let[$,Z]=this.peek(2);if(!Z&&!this.atEnd)return this.setNext("block-start");if(($==="-"||$==="?"||$===":")&&m(Z)){let U=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=U,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let $=this.getLine();if($===null)return this.setNext("doc");let Z=yield*this.pushIndicators();switch($[Z]){case"#":yield*this.pushCount($.length-Z);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(F9),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return Z+=yield*this.parseBlockScalarHeader(),Z+=yield*this.pushSpaces(!0),yield*this.pushCount($.length-Z),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let $,Z,U=-1;do{if($=yield*this.pushNewline(),$>0)Z=yield*this.pushSpaces(!1),this.indentValue=U=Z;else Z=0;Z+=yield*this.pushSpaces(!0)}while($+Z>0);let X=this.getLine();if(X===null)return this.setNext("flow");if(U!==-1&&U<this.indentNext&&X[0]!=="#"||U===0&&(X.startsWith("---")||X.startsWith("..."))&&m(X[3])){if(!(U===this.indentNext-1&&this.flowLevel===1&&(X[0]==="]"||X[0]==="}")))return this.flowLevel=0,yield Y$.FLOW_END,yield*this.parseLineStart()}let z=0;while(X[z]===",")z+=yield*this.pushCount(1),z+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(z+=yield*this.pushIndicators(),X[z]){case void 0:return"flow";case"#":return yield*this.pushCount(X.length-z),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(F9),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let Q=this.charAt(1);if(this.flowKey||m(Q)||Q===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let $=this.charAt(0),Z=this.buffer.indexOf($,this.pos+1);if($==="'")while(Z!==-1&&this.buffer[Z+1]==="'")Z=this.buffer.indexOf("'",Z+2);else while(Z!==-1){let z=0;while(this.buffer[Z-1-z]==="\\")z+=1;if(z%2===0)break;Z=this.buffer.indexOf('"',Z+1)}let U=this.buffer.substring(0,Z),X=U.indexOf(`
|
|
124
124
|
`,this.pos);if(X!==-1){while(X!==-1){let z=this.continueScalar(X+1);if(z===-1)break;X=U.indexOf(`
|
|
125
125
|
`,z)}if(X!==-1)Z=X-(U[X-1]==="\r"?2:1)}if(Z===-1){if(!this.atEnd)return this.setNext("quoted-scalar");Z=this.buffer.length}return yield*this.pushToIndex(Z+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let $=this.pos;while(!0){let Z=this.buffer[++$];if(Z==="+")this.blockScalarKeep=!0;else if(Z>"0"&&Z<="9")this.blockScalarIndent=Number(Z)-1;else if(Z!=="-")break}return yield*this.pushUntil((Z)=>m(Z)||Z==="#")}*parseBlockScalar(){let $=this.pos-1,Z=0,U;$:for(let z=this.pos;U=this.buffer[z];++z)switch(U){case" ":Z+=1;break;case`
|
|
126
126
|
`:$=z,Z=0;break;case"\r":{let Q=this.buffer[z+1];if(!Q&&!this.atEnd)return this.setNext("block-scalar");if(Q===`
|
|
127
127
|
`)break}default:break $}if(!U&&!this.atEnd)return this.setNext("block-scalar");if(Z>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=Z;else this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let z=this.continueScalar($+1);if(z===-1)break;$=this.buffer.indexOf(`
|
|
128
128
|
`,z)}while($!==-1);if($===-1){if(!this.atEnd)return this.setNext("block-scalar");$=this.buffer.length}}let X=$+1;U=this.buffer[X];while(U===" ")U=this.buffer[++X];if(U==="\t"){while(U==="\t"||U===" "||U==="\r"||U===`
|
|
129
129
|
`)U=this.buffer[++X];$=X-1}else if(!this.blockScalarKeep)do{let z=$-1,Q=this.buffer[z];if(Q==="\r")Q=this.buffer[--z];let J=z;while(Q===" ")Q=this.buffer[--z];if(Q===`
|
|
130
|
-
`&&z>=this.pos&&z+1+Z>J)$=z;else break}while(!0);return yield Y$.SCALAR,yield*this.pushToIndex($+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let $=this.flowLevel>0,Z=this.pos-1,U=this.pos-1,X;while(X=this.buffer[++U])if(X===":"){let z=this.buffer[U+1];if(m(z)||$&&
|
|
130
|
+
`&&z>=this.pos&&z+1+Z>J)$=z;else break}while(!0);return yield Y$.SCALAR,yield*this.pushToIndex($+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let $=this.flowLevel>0,Z=this.pos-1,U=this.pos-1,X;while(X=this.buffer[++U])if(X===":"){let z=this.buffer[U+1];if(m(z)||$&&X2.has(z))break;Z=U}else if(m(X)){let z=this.buffer[U+1];if(X==="\r")if(z===`
|
|
131
131
|
`)U+=1,X=`
|
|
132
|
-
`,z=this.buffer[U+1];else Z=U;if(z==="#"||$&&
|
|
133
|
-
`){let Q=this.continueScalar(U+1);if(Q===-1)break;U=Math.max(U,Q-2)}}else{if($&&
|
|
132
|
+
`,z=this.buffer[U+1];else Z=U;if(z==="#"||$&&X2.has(z))break;if(X===`
|
|
133
|
+
`){let Q=this.continueScalar(U+1);if(Q===-1)break;U=Math.max(U,Q-2)}}else{if($&&X2.has(X))break;Z=U}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield Y$.SCALAR,yield*this.pushToIndex(Z+1,!0),$?"flow":"doc"}*pushCount($){if($>0)return yield this.buffer.substr(this.pos,$),this.pos+=$,$;return 0}*pushToIndex($,Z){let U=this.buffer.slice(this.pos,$);if(U)return yield U,this.pos+=U.length,U.length;else if(Z)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(F9))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let $=this.flowLevel>0,Z=this.charAt(1);if(m(Z)||$&&X2.has(Z)){if(!$)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=!1;return(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let $=this.pos+2,Z=this.buffer[$];while(!m(Z)&&Z!==">")Z=this.buffer[++$];return yield*this.pushToIndex(Z===">"?$+1:$,!1)}else{let $=this.pos+1,Z=this.buffer[$];while(Z)if(HQ.has(Z))Z=this.buffer[++$];else if(Z==="%"&&v8.has(this.buffer[$+1])&&v8.has(this.buffer[$+2]))Z=this.buffer[$+=3];else break;return yield*this.pushToIndex($,!1)}}*pushNewline(){let $=this.buffer[this.pos];if($===`
|
|
134
134
|
`)return yield*this.pushCount(1);else if($==="\r"&&this.charAt(1)===`
|
|
135
|
-
`)return yield*this.pushCount(2);else return 0}*pushSpaces($){let Z=this.pos-1,U;do U=this.buffer[++Z];while(U===" "||$&&U==="\t");let X=Z-this.pos;if(X>0)yield this.buffer.substr(this.pos,X),this.pos=Z;return X}*pushUntil($){let Z=this.pos,U=this.buffer[Z];while(!$(U))U=this.buffer[++Z];return yield*this.pushToIndex(Z,!1)}}
|
|
135
|
+
`)return yield*this.pushCount(2);else return 0}*pushSpaces($){let Z=this.pos-1,U;do U=this.buffer[++Z];while(U===" "||$&&U==="\t");let X=Z-this.pos;if(X>0)yield this.buffer.substr(this.pos,X),this.pos=Z;return X}*pushUntil($){let Z=this.pos,U=this.buffer[Z];while(!$(U))U=this.buffer[++Z];return yield*this.pushToIndex(Z,!1)}}GQ.Lexer=m8});var A9=R((BQ)=>{class p8{constructor(){this.lineStarts=[],this.addNewLine=($)=>this.lineStarts.push($),this.linePos=($)=>{let Z=0,U=this.lineStarts.length;while(Z<U){let z=Z+U>>1;if(this.lineStarts[z]<$)Z=z+1;else U=z}if(this.lineStarts[Z]===$)return{line:Z+1,col:1};if(Z===0)return{line:0,col:$};let X=this.lineStarts[Z-1];return{line:Z,col:$-X+1}}}}BQ.LineCounter=p8});var N9=R((LQ)=>{var WQ=h0("process"),l8=U2(),OQ=K9();function Q0($,Z){for(let U=0;U<$.length;++U)if($[U].type===Z)return!0;return!1}function d8($){for(let Z=0;Z<$.length;++Z)switch($[Z].type){case"space":case"comment":case"newline":break;default:return Z}return-1}function a8($){switch($?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function z2($){switch($.type){case"document":return $.start;case"block-map":{let Z=$.items[$.items.length-1];return Z.sep??Z.start}case"block-seq":return $.items[$.items.length-1].start;default:return[]}}function j0($){if($.length===0)return[];let Z=$.length;$:while(--Z>=0)switch($[Z].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break $}while($[++Z]?.type==="space");return $.splice(Z,$.length)}function c8($){if($.start.type==="flow-seq-start"){for(let Z of $.items)if(Z.sep&&!Z.value&&!Q0(Z.start,"explicit-key-ind")&&!Q0(Z.sep,"map-value-ind")){if(Z.key)Z.value=Z.key;if(delete Z.key,a8(Z.value))if(Z.value.end)Array.prototype.push.apply(Z.value.end,Z.sep);else Z.value.end=Z.sep;else Array.prototype.push.apply(Z.start,Z.sep);delete Z.sep}}}class i8{constructor($){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new OQ.Lexer,this.onNewLine=$}*parse($,Z=!1){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(let U of this.lexer.lex($,Z))yield*this.next(U);if(!Z)yield*this.end()}*next($){if(this.source=$,WQ.env.LOG_TOKENS)console.log("|",l8.prettyToken($));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=$.length;return}let Z=l8.tokenType($);if(!Z){let U=`Not a YAML token: ${$}`;yield*this.pop({type:"error",offset:this.offset,message:U,source:$}),this.offset+=$.length}else if(Z==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=Z,yield*this.step(),Z){case"newline":if(this.atNewLine=!0,this.indent=0,this.onNewLine)this.onNewLine(this.offset+$.length);break;case"space":if(this.atNewLine&&$[0]===" ")this.indent+=$.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=$.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=$.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let $=this.peek(1);if(this.type==="doc-end"&&$?.type!=="doc-end"){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!$)return yield*this.stream();switch($.type){case"document":return yield*this.document($);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar($);case"block-scalar":return yield*this.blockScalar($);case"block-map":return yield*this.blockMap($);case"block-seq":return yield*this.blockSequence($);case"flow-collection":return yield*this.flowCollection($);case"doc-end":return yield*this.documentEnd($)}yield*this.pop()}peek($){return this.stack[this.stack.length-$]}*pop($){let Z=$??this.stack.pop();if(!Z)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield Z;else{let U=this.peek(1);if(Z.type==="block-scalar")Z.indent="indent"in U?U.indent:0;else if(Z.type==="flow-collection"&&U.type==="document")Z.indent=0;if(Z.type==="flow-collection")c8(Z);switch(U.type){case"document":U.value=Z;break;case"block-scalar":U.props.push(Z);break;case"block-map":{let X=U.items[U.items.length-1];if(X.value){U.items.push({start:[],key:Z,sep:[]}),this.onKeyLine=!0;return}else if(X.sep)X.value=Z;else{Object.assign(X,{key:Z,sep:[]}),this.onKeyLine=!X.explicitKey;return}break}case"block-seq":{let X=U.items[U.items.length-1];if(X.value)U.items.push({start:[],value:Z});else X.value=Z;break}case"flow-collection":{let X=U.items[U.items.length-1];if(!X||X.value)U.items.push({start:[],key:Z,sep:[]});else if(X.sep)X.value=Z;else Object.assign(X,{key:Z,sep:[]});return}default:yield*this.pop(),yield*this.pop(Z)}if((U.type==="document"||U.type==="block-map"||U.type==="block-seq")&&(Z.type==="block-map"||Z.type==="block-seq")){let X=Z.items[Z.items.length-1];if(X&&!X.sep&&!X.value&&X.start.length>0&&d8(X.start)===-1&&(Z.indent===0||X.start.every((z)=>z.type!=="comment"||z.indent<Z.indent))){if(U.type==="document")U.end=X.start;else U.items.push({start:X.start});Z.items.splice(-1,1)}}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let $={type:"document",offset:this.offset,start:[]};if(this.type==="doc-start")$.start.push(this.sourceToken);this.stack.push($);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document($){if($.value)return yield*this.lineEnd($);switch(this.type){case"doc-start":{if(d8($.start)!==-1)yield*this.pop(),yield*this.step();else $.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":$.start.push(this.sourceToken);return}let Z=this.startBlockValue($);if(Z)this.stack.push(Z);else yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar($){if(this.type==="map-value-ind"){let Z=z2(this.peek(2)),U=j0(Z),X;if($.end)X=$.end,X.push(this.sourceToken),delete $.end;else X=[this.sourceToken];let z={type:"block-map",offset:$.offset,indent:$.indent,items:[{start:U,key:$,sep:X}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=z}else yield*this.lineEnd($)}*blockScalar($){switch(this.type){case"space":case"comment":case"newline":$.props.push(this.sourceToken);return;case"scalar":if($.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let Z=this.source.indexOf(`
|
|
136
136
|
`)+1;while(Z!==0)this.onNewLine(this.offset+Z),Z=this.source.indexOf(`
|
|
137
|
-
`,Z)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap($){let Z=$.items[$.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,Z.value){let U="end"in Z.value?Z.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else $.items.push({start:[this.sourceToken]})}else if(Z.sep)Z.sep.push(this.sourceToken);else Z.start.push(this.sourceToken);return;case"space":case"comment":if(Z.value)$.items.push({start:[this.sourceToken]});else if(Z.sep)Z.sep.push(this.sourceToken);else{if(this.atIndentedComment(Z.start,$.indent)){let X=$.items[$.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,Z.start),X.push(this.sourceToken),$.items.pop();return}}Z.start.push(this.sourceToken)}return}if(this.indent>=$.indent){let U=!this.onKeyLine&&this.indent===$.indent,X=U&&(Z.sep||Z.explicitKey)&&this.type!=="seq-item-ind",z=[];if(X&&Z.sep&&!Z.value){let Q=[];for(let J=0;J<Z.sep.length;++J){let
|
|
137
|
+
`,Z)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap($){let Z=$.items[$.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,Z.value){let U="end"in Z.value?Z.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else $.items.push({start:[this.sourceToken]})}else if(Z.sep)Z.sep.push(this.sourceToken);else Z.start.push(this.sourceToken);return;case"space":case"comment":if(Z.value)$.items.push({start:[this.sourceToken]});else if(Z.sep)Z.sep.push(this.sourceToken);else{if(this.atIndentedComment(Z.start,$.indent)){let X=$.items[$.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,Z.start),X.push(this.sourceToken),$.items.pop();return}}Z.start.push(this.sourceToken)}return}if(this.indent>=$.indent){let U=!this.onKeyLine&&this.indent===$.indent,X=U&&(Z.sep||Z.explicitKey)&&this.type!=="seq-item-ind",z=[];if(X&&Z.sep&&!Z.value){let Q=[];for(let J=0;J<Z.sep.length;++J){let H=Z.sep[J];switch(H.type){case"newline":Q.push(J);break;case"space":break;case"comment":if(H.indent>$.indent)Q.length=0;break;default:Q.length=0}}if(Q.length>=2)z=Z.sep.splice(Q[1])}switch(this.type){case"anchor":case"tag":if(X||Z.value)z.push(this.sourceToken),$.items.push({start:z}),this.onKeyLine=!0;else if(Z.sep)Z.sep.push(this.sourceToken);else Z.start.push(this.sourceToken);return;case"explicit-key-ind":if(!Z.sep&&!Z.explicitKey)Z.start.push(this.sourceToken),Z.explicitKey=!0;else if(X||Z.value)z.push(this.sourceToken),$.items.push({start:z,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if(Z.explicitKey)if(!Z.sep)if(Q0(Z.start,"newline"))Object.assign(Z,{key:null,sep:[this.sourceToken]});else{let Q=j0(Z.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:Q,key:null,sep:[this.sourceToken]}]})}else if(Z.value)$.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Q0(Z.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:z,key:null,sep:[this.sourceToken]}]});else if(a8(Z.key)&&!Q0(Z.sep,"newline")){let Q=j0(Z.start),J=Z.key,H=Z.sep;H.push(this.sourceToken),delete Z.key,delete Z.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:Q,key:J,sep:H}]})}else if(z.length>0)Z.sep=Z.sep.concat(z,this.sourceToken);else Z.sep.push(this.sourceToken);else if(!Z.sep)Object.assign(Z,{key:null,sep:[this.sourceToken]});else if(Z.value||X)$.items.push({start:z,key:null,sep:[this.sourceToken]});else if(Q0(Z.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else Z.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let Q=this.flowScalar(this.type);if(X||Z.value)$.items.push({start:z,key:Q,sep:[]}),this.onKeyLine=!0;else if(Z.sep)this.stack.push(Q);else Object.assign(Z,{key:Q,sep:[]}),this.onKeyLine=!0;return}default:{let Q=this.startBlockValue($);if(Q){if(Q.type==="block-seq"){if(!Z.explicitKey&&Z.sep&&!Q0(Z.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(U)$.items.push({start:z});this.stack.push(Q);return}}}}yield*this.pop(),yield*this.step()}*blockSequence($){let Z=$.items[$.items.length-1];switch(this.type){case"newline":if(Z.value){let U="end"in Z.value?Z.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else $.items.push({start:[this.sourceToken]})}else Z.start.push(this.sourceToken);return;case"space":case"comment":if(Z.value)$.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(Z.start,$.indent)){let X=$.items[$.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,Z.start),X.push(this.sourceToken),$.items.pop();return}}Z.start.push(this.sourceToken)}return;case"anchor":case"tag":if(Z.value||this.indent<=$.indent)break;Z.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==$.indent)break;if(Z.value||Q0(Z.start,"seq-item-ind"))$.items.push({start:[this.sourceToken]});else Z.start.push(this.sourceToken);return}if(this.indent>$.indent){let U=this.startBlockValue($);if(U){this.stack.push(U);return}}yield*this.pop(),yield*this.step()}*flowCollection($){let Z=$.items[$.items.length-1];if(this.type==="flow-error-end"){let U;do yield*this.pop(),U=this.peek(1);while(U?.type==="flow-collection")}else if($.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!Z||Z.sep)$.items.push({start:[this.sourceToken]});else Z.start.push(this.sourceToken);return;case"map-value-ind":if(!Z||Z.value)$.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Z.sep)Z.sep.push(this.sourceToken);else Object.assign(Z,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!Z||Z.value)$.items.push({start:[this.sourceToken]});else if(Z.sep)Z.sep.push(this.sourceToken);else Z.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let X=this.flowScalar(this.type);if(!Z||Z.value)$.items.push({start:[],key:X,sep:[]});else if(Z.sep)this.stack.push(X);else Object.assign(Z,{key:X,sep:[]});return}case"flow-map-end":case"flow-seq-end":$.end.push(this.sourceToken);return}let U=this.startBlockValue($);if(U)this.stack.push(U);else yield*this.pop(),yield*this.step()}else{let U=this.peek(2);if(U.type==="block-map"&&(this.type==="map-value-ind"&&U.indent===$.indent||this.type==="newline"&&!U.items[U.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&U.type!=="flow-collection"){let X=z2(U),z=j0(X);c8($);let Q=$.end.splice(1,$.end.length);Q.push(this.sourceToken);let J={type:"block-map",offset:$.offset,indent:$.indent,items:[{start:z,key:$,sep:Q}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=J}else yield*this.lineEnd($)}}flowScalar($){if(this.onNewLine){let Z=this.source.indexOf(`
|
|
138
138
|
`)+1;while(Z!==0)this.onNewLine(this.offset+Z),Z=this.source.indexOf(`
|
|
139
|
-
`,Z)+1}return{type:$,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue($){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let Z=z9($),U=j0(Z);return U.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let Z=z9($),U=j0(Z);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment($,Z){if(this.type!=="comment")return!1;if(this.indent<=Z)return!1;return $.every((U)=>U.type==="newline"||U.type==="space")}*documentEnd($){if(this.type!=="doc-mode"){if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd($){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}OQ.Parser=i8});var t8=R((KQ)=>{var s8=L2(),_Q=Q$(),B$=J$(),DQ=A9(),IQ=b(),RQ=A2(),r8=N2();function n8($){let Z=$.prettyErrors!==!1;return{lineCounter:$.lineCounter||Z&&new RQ.LineCounter||null,prettyErrors:Z}}function MQ($,Z={}){let{lineCounter:U,prettyErrors:X}=n8(Z),z=new r8.Parser(U?.addNewLine),Q=new s8.Composer(Z),J=Array.from(Q.compose(z.parse($)));if(X&&U)for(let q of J)q.errors.forEach(B$.prettifyError($,U)),q.warnings.forEach(B$.prettifyError($,U));if(J.length>0)return J;return Object.assign([],{empty:!0},Q.streamInfo())}function o8($,Z={}){let{lineCounter:U,prettyErrors:X}=n8(Z),z=new r8.Parser(U?.addNewLine),Q=new s8.Composer(Z),J=null;for(let q of Q.compose(z.parse($),!0,$.length))if(!J)J=q;else if(J.options.logLevel!=="silent"){J.errors.push(new B$.YAMLParseError(q.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&U)J.errors.forEach(B$.prettifyError($,U)),J.warnings.forEach(B$.prettifyError($,U));return J}function PQ($,Z,U){let X=void 0;if(typeof Z==="function")X=Z;else if(U===void 0&&Z&&typeof Z==="object")U=Z;let z=o8($,U);if(!z)return null;if(z.warnings.forEach((Q)=>DQ.warn(z.options.logLevel,Q)),z.errors.length>0)if(z.options.logLevel!=="silent")throw z.errors[0];else z.errors=[];return z.toJS(Object.assign({reviver:X},U))}function FQ($,Z,U){let X=null;if(typeof Z==="function"||Array.isArray(Z))X=Z;else if(U===void 0&&Z)U=Z;if(typeof U==="string")U=U.length;if(typeof U==="number"){let z=Math.round(U);U=z<1?void 0:z>8?{indent:8}:{indent:z}}if($===void 0){let{keepUndefined:z}=U??Z??{};if(!z)return}if(IQ.isDocument($)&&!X)return $.toString(U);return new _Q.Document($,X,U).toString(U)}KQ.parse=PQ;KQ.parseAllDocuments=MQ;KQ.parseDocument=o8;KQ.stringify=FQ});var y=[{index:1,path:"project.name",label:"Name",description:"Project name",category:"project"},{index:2,path:"project.goal",label:"Goal",description:"Goal (use case)",category:"project"},{index:3,path:"project.main_language",label:"Language",description:"Primary language",category:"project"},{index:4,path:"human_context.who",label:"Who",description:"Who is this for?",category:"human"},{index:5,path:"human_context.what",label:"What",description:"What are they building",category:"human"},{index:6,path:"human_context.why",label:"Why",description:"Why does it exist",category:"human"},{index:7,path:"human_context.where",label:"Where",description:"Where does it run",category:"human"},{index:8,path:"human_context.when",label:"When",description:"When was it started / timeline",category:"human"},{index:9,path:"human_context.how",label:"How",description:"How is it built",category:"human"},{index:10,path:"stack.frontend",canonical:"stack.framework",label:"Framework",description:"Framework (React, Svelte, etc.)",category:"frontend"},{index:11,path:"stack.css_framework",canonical:"stack.css",label:"CSS",description:"CSS framework",category:"frontend"},{index:12,path:"stack.ui_library",label:"UI Library",description:"UI component library",category:"frontend"},{index:13,path:"stack.state_management",canonical:"stack.state",label:"State",description:"State management",category:"frontend"},{index:14,path:"stack.backend",label:"Backend",description:"Backend framework",category:"backend"},{index:15,path:"stack.api_type",canonical:"stack.api",label:"API",description:"API style (REST, GraphQL, etc.)",category:"backend"},{index:16,path:"stack.runtime",label:"Runtime",description:"Runtime (Node, Bun, Python, etc.)",category:"backend"},{index:17,path:"stack.database",canonical:"stack.db",label:"Database",description:"Database",category:"backend"},{index:18,path:"stack.connection",label:"Connection",description:"Connection method (Prisma, etc.)",category:"backend"},{index:19,path:"stack.hosting",label:"Hosting",description:"Hosting platform",category:"universal"},{index:20,path:"stack.build",label:"Build",description:"Build tool",category:"universal"},{index:21,path:"stack.cicd",label:"CI/CD",description:"CI/CD",category:"universal"},{index:22,path:"stack.monorepo_tool",label:"Monorepo",description:"Monorepo tool",category:"enterprise_infra"},{index:23,path:"stack.package_manager",canonical:"stack.pkg_manager",label:"Package Manager",description:"Package manager",category:"enterprise_infra"},{index:24,path:"stack.workspaces",label:"Workspaces",description:"Workspace configuration",category:"enterprise_infra"},{index:25,path:"monorepo.packages_count",label:"Packages",description:"Number of packages",category:"enterprise_infra"},{index:26,path:"monorepo.build_orchestrator",label:"Build Orchestrator",description:"Build orchestration tool",category:"enterprise_infra"},{index:27,path:"stack.admin",label:"Admin",description:"Admin panel",category:"enterprise_app"},{index:28,path:"stack.cache",label:"Cache",description:"Caching layer",category:"enterprise_app"},{index:29,path:"stack.search",label:"Search",description:"Search engine",category:"enterprise_app"},{index:30,path:"stack.storage",label:"Storage",description:"Object storage",category:"enterprise_app"},{index:31,path:"monorepo.versioning_strategy",label:"Versioning",description:"Version strategy",category:"enterprise_ops"},{index:32,path:"monorepo.shared_configs",label:"Shared Configs",description:"Shared configs",category:"enterprise_ops"},{index:33,path:"monorepo.remote_cache",label:"Remote Cache",description:"Remote build cache",category:"enterprise_ops"}],u0=new Map(y.flatMap(($)=>$.canonical?[[$.path,$],[$.canonical,$]]:[[$.path,$]])),QH=new Map(y.filter(($)=>$.canonical).map(($)=>[$.canonical,$.path])),JH=new Map(y.filter(($)=>$.canonical).map(($)=>[$.path,$.canonical]));function d2($,Z){let U=(z)=>{let Q=z.split("."),J=$;for(let q of Q)if(J&&typeof J==="object"&&q in J)J=J[q];else return;return J},X=U(Z.path);if(X!==void 0)return X;if(Z.canonical)return U(Z.canonical);return}function Q6($){return y.filter((Z)=>Z.category===$)}var J6=y.filter(($)=>$.index<=21),q6=y,_$=new Set(["describe your project goal","development teams","cloud platform","null","none","unknown","n/a","not applicable"]);function q0($){if($===null||$===void 0||$==="")return!0;if(typeof $==="string")return _$.has($.toLowerCase().trim());if(Array.isArray($)&&$.length===0)return!0;if(typeof $==="object"&&Object.keys($).length===0)return!0;return!1}var I0={about:[],documentation:["project","human"],intent:["project","human"],encyclopedia:["project","human"],cli:["project","human","universal"],library:["project","human","universal"],sdk:["project","human","universal"],wasm:["project","human","universal"],html:["project","human","universal"],"server-card":["project","human","universal"],frontend:["project","frontend","human","universal"],website:["project","frontend","human","universal"],mobile:["project","frontend","human","universal"],extension:["project","frontend","human","universal"],mcp:["project","backend","human","universal"],backend:["project","backend","universal","human"],"data-science":["project","backend","human","universal"],fullstack:["project","frontend","backend","universal","human"],svelte:["project","frontend","backend","universal","human"],framework:["project","frontend","backend","universal","human"],"monorepo-root":["project","human","enterprise_infra","enterprise_app","enterprise_ops"],mcpaas:["project","backend","universal","human","enterprise_app","enterprise_ops"],saas:["project","frontend","backend","universal","human","enterprise_app"],enterprise:["project","frontend","backend","universal","human","enterprise_infra","enterprise_app","enterprise_ops"]};var B9=($)=>(Z)=>`\x1B[${$}m${Z}\x1B[0m`,D$=B9("1"),k0=B9("2"),HH=B9("3"),v0={cyan:"#00D4D4",cyanDeep:"#0E8C8C",orange:"#FF6B35"},I$=($)=>`\x1B[38;2;0;212;212m${$}\x1B[0m`,V9=($)=>`\x1B[38;2;14;140;140m${$}\x1B[0m`,R0=($)=>`\x1B[38;5;208m${$}\x1B[0m`;var i=[{name:"TROPHY",indicator:`${R0("\uD83C\uDFC6")} ${R0("TROPHY")}`,threshold:100},{name:"GOLD",indicator:`${R0(D$("★"))} ${R0("GOLD")}`,threshold:99},{name:"SILVER",indicator:`${I$("◆")} ${I$("SILVER")}`,threshold:95},{name:"BRONZE",indicator:`${V9("◇")} ${V9("BRONZE")}`,threshold:85},{name:"GREEN",indicator:`${D$("●")} GREEN`,threshold:70},{name:"YELLOW",indicator:`${k0("●")} YELLOW`,threshold:55},{name:"RED",indicator:`${k0("○")} RED`,threshold:1},{name:"WHITE",indicator:`${k0("♡")}`,threshold:0}];function m0($){for(let Z of i)if($>=Z.threshold)return Z;return i[i.length-1]}function H6($){let Z=m0($),U=i.indexOf(Z);return U>0?i[U-1]:null}var L9={};X6(L9,{validate:()=>Y6,sdkVersion:()=>L6,scoreFafb:()=>O6,scoreEnterprise:()=>G6,score:()=>O9,fafbInfo:()=>W6,decompile:()=>V6,compile:()=>B6});var W9=null;function o(){if(W9)return W9;try{let $=h0("faf-scoring-kernel");return W9=$,$}catch{throw Error(`faf-scoring-kernel not installed.
|
|
139
|
+
`,Z)+1}return{type:$,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue($){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let Z=z2($),U=j0(Z);return U.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let Z=z2($),U=j0(Z);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment($,Z){if(this.type!=="comment")return!1;if(this.indent<=Z)return!1;return $.every((U)=>U.type==="newline"||U.type==="space")}*documentEnd($){if(this.type!=="doc-mode"){if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd($){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}LQ.Parser=i8});var t8=R((KQ)=>{var s8=L9(),DQ=Q$(),B$=J$(),IQ=A2(),RQ=b(),MQ=A9(),r8=N9();function n8($){let Z=$.prettyErrors!==!1;return{lineCounter:$.lineCounter||Z&&new MQ.LineCounter||null,prettyErrors:Z}}function PQ($,Z={}){let{lineCounter:U,prettyErrors:X}=n8(Z),z=new r8.Parser(U?.addNewLine),Q=new s8.Composer(Z),J=Array.from(Q.compose(z.parse($)));if(X&&U)for(let H of J)H.errors.forEach(B$.prettifyError($,U)),H.warnings.forEach(B$.prettifyError($,U));if(J.length>0)return J;return Object.assign([],{empty:!0},Q.streamInfo())}function o8($,Z={}){let{lineCounter:U,prettyErrors:X}=n8(Z),z=new r8.Parser(U?.addNewLine),Q=new s8.Composer(Z),J=null;for(let H of Q.compose(z.parse($),!0,$.length))if(!J)J=H;else if(J.options.logLevel!=="silent"){J.errors.push(new B$.YAMLParseError(H.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&U)J.errors.forEach(B$.prettifyError($,U)),J.warnings.forEach(B$.prettifyError($,U));return J}function TQ($,Z,U){let X=void 0;if(typeof Z==="function")X=Z;else if(U===void 0&&Z&&typeof Z==="object")U=Z;let z=o8($,U);if(!z)return null;if(z.warnings.forEach((Q)=>IQ.warn(z.options.logLevel,Q)),z.errors.length>0)if(z.options.logLevel!=="silent")throw z.errors[0];else z.errors=[];return z.toJS(Object.assign({reviver:X},U))}function FQ($,Z,U){let X=null;if(typeof Z==="function"||Array.isArray(Z))X=Z;else if(U===void 0&&Z)U=Z;if(typeof U==="string")U=U.length;if(typeof U==="number"){let z=Math.round(U);U=z<1?void 0:z>8?{indent:8}:{indent:z}}if($===void 0){let{keepUndefined:z}=U??Z??{};if(!z)return}if(RQ.isDocument($)&&!X)return $.toString(U);return new DQ.Document($,X,U).toString(U)}KQ.parse=TQ;KQ.parseAllDocuments=PQ;KQ.parseDocument=o8;KQ.stringify=FQ});var y=[{index:1,path:"project.name",label:"Name",description:"Project name",category:"project"},{index:2,path:"project.goal",label:"Goal",description:"Goal (use case)",category:"project"},{index:3,path:"project.main_language",label:"Language",description:"Primary language",category:"project"},{index:4,path:"human_context.who",label:"Who",description:"Who is this for?",category:"human"},{index:5,path:"human_context.what",label:"What",description:"What are they building",category:"human"},{index:6,path:"human_context.why",label:"Why",description:"Why does it exist",category:"human"},{index:7,path:"human_context.where",label:"Where",description:"Where does it run",category:"human"},{index:8,path:"human_context.when",label:"When",description:"When was it started / timeline",category:"human"},{index:9,path:"human_context.how",label:"How",description:"How is it built",category:"human"},{index:10,path:"stack.frontend",canonical:"stack.framework",label:"Framework",description:"Framework (React, Svelte, etc.)",category:"frontend"},{index:11,path:"stack.css_framework",canonical:"stack.css",label:"CSS",description:"CSS framework",category:"frontend"},{index:12,path:"stack.ui_library",label:"UI Library",description:"UI component library",category:"frontend"},{index:13,path:"stack.state_management",canonical:"stack.state",label:"State",description:"State management",category:"frontend"},{index:14,path:"stack.backend",label:"Backend",description:"Backend framework",category:"backend"},{index:15,path:"stack.api_type",canonical:"stack.api",label:"API",description:"API style (REST, GraphQL, etc.)",category:"backend"},{index:16,path:"stack.runtime",label:"Runtime",description:"Runtime (Node, Bun, Python, etc.)",category:"backend"},{index:17,path:"stack.database",canonical:"stack.db",label:"Database",description:"Database",category:"backend"},{index:18,path:"stack.connection",label:"Connection",description:"Connection method (Prisma, etc.)",category:"backend"},{index:19,path:"stack.hosting",label:"Hosting",description:"Hosting platform",category:"universal"},{index:20,path:"stack.build",label:"Build",description:"Build tool",category:"universal"},{index:21,path:"stack.cicd",label:"CI/CD",description:"CI/CD",category:"universal"},{index:22,path:"stack.monorepo_tool",label:"Monorepo",description:"Monorepo tool",category:"enterprise_infra"},{index:23,path:"stack.package_manager",canonical:"stack.pkg_manager",label:"Package Manager",description:"Package manager",category:"enterprise_infra"},{index:24,path:"stack.workspaces",label:"Workspaces",description:"Workspace configuration",category:"enterprise_infra"},{index:25,path:"monorepo.packages_count",label:"Packages",description:"Number of packages",category:"enterprise_infra"},{index:26,path:"monorepo.build_orchestrator",label:"Build Orchestrator",description:"Build orchestration tool",category:"enterprise_infra"},{index:27,path:"stack.admin",label:"Admin",description:"Admin panel",category:"enterprise_app"},{index:28,path:"stack.cache",label:"Cache",description:"Caching layer",category:"enterprise_app"},{index:29,path:"stack.search",label:"Search",description:"Search engine",category:"enterprise_app"},{index:30,path:"stack.storage",label:"Storage",description:"Object storage",category:"enterprise_app"},{index:31,path:"monorepo.versioning_strategy",label:"Versioning",description:"Version strategy",category:"enterprise_ops"},{index:32,path:"monorepo.shared_configs",label:"Shared Configs",description:"Shared configs",category:"enterprise_ops"},{index:33,path:"monorepo.remote_cache",label:"Remote Cache",description:"Remote build cache",category:"enterprise_ops"}],u0=new Map(y.flatMap(($)=>$.canonical?[[$.path,$],[$.canonical,$]]:[[$.path,$]])),Jq=new Map(y.filter(($)=>$.canonical).map(($)=>[$.canonical,$.path])),Hq=new Map(y.filter(($)=>$.canonical).map(($)=>[$.path,$.canonical]));function d9($,Z){let U=(z)=>{let Q=z.split("."),J=$;for(let H of Q)if(J&&typeof J==="object"&&H in J)J=J[H];else return;return J},X=U(Z.path);if(X!==void 0)return X;if(Z.canonical)return U(Z.canonical);return}function J6($){return y.filter((Z)=>Z.category===$)}var H6=y.filter(($)=>$.index<=21),q6=y,_$=new Set(["describe your project goal","development teams","cloud platform","null","none","unknown","n/a","not applicable"]);function H0($){if($===null||$===void 0||$==="")return!0;if(typeof $==="string")return _$.has($.toLowerCase().trim());if(Array.isArray($)&&$.length===0)return!0;if(typeof $==="object"&&Object.keys($).length===0)return!0;return!1}var I0={about:[],documentation:["project","human"],intent:["project","human"],encyclopedia:["project","human"],cli:["project","human","universal"],library:["project","human","universal"],sdk:["project","human","universal"],wasm:["project","human","universal"],html:["project","human","universal"],"server-card":["project","human","universal"],frontend:["project","frontend","human","universal"],website:["project","frontend","human","universal"],mobile:["project","frontend","human","universal"],extension:["project","frontend","human","universal"],mcp:["project","backend","human","universal"],backend:["project","backend","universal","human"],"data-science":["project","backend","human","universal"],fullstack:["project","frontend","backend","universal","human"],svelte:["project","frontend","backend","universal","human"],framework:["project","frontend","backend","universal","human"],"monorepo-root":["project","human","enterprise_infra","enterprise_app","enterprise_ops"],mcpaas:["project","backend","universal","human","enterprise_app","enterprise_ops"],saas:["project","frontend","backend","universal","human","enterprise_app"],enterprise:["project","frontend","backend","universal","human","enterprise_infra","enterprise_app","enterprise_ops"]};var B2=($)=>(Z)=>`\x1B[${$}m${Z}\x1B[0m`,D$=B2("1"),k0=B2("2"),Gq=B2("3"),v0={cyan:"#00D4D4",cyanDeep:"#0E8C8C",orange:"#FF6B35"},I$=($)=>`\x1B[38;2;0;212;212m${$}\x1B[0m`,V2=($)=>`\x1B[38;2;14;140;140m${$}\x1B[0m`,R0=($)=>`\x1B[38;5;208m${$}\x1B[0m`;var i=[{name:"TROPHY",indicator:`${R0("\uD83C\uDFC6")} ${R0("TROPHY")}`,threshold:100},{name:"GOLD",indicator:`${R0(D$("★"))} ${R0("GOLD")}`,threshold:99},{name:"SILVER",indicator:`${I$("◆")} ${I$("SILVER")}`,threshold:95},{name:"BRONZE",indicator:`${V2("◇")} ${V2("BRONZE")}`,threshold:85},{name:"GREEN",indicator:`${D$("●")} GREEN`,threshold:70},{name:"YELLOW",indicator:`${k0("●")} YELLOW`,threshold:55},{name:"RED",indicator:`${k0("○")} RED`,threshold:1},{name:"WHITE",indicator:`${k0("♡")}`,threshold:0}];function m0($){for(let Z of i)if($>=Z.threshold)return Z;return i[i.length-1]}function G6($){let Z=m0($),U=i.indexOf(Z);return U>0?i[U-1]:null}var L2={};z6(L2,{validate:()=>B6,sdkVersion:()=>_6,scoreFafb:()=>L6,scoreEnterprise:()=>Y6,score:()=>O2,fafbInfo:()=>O6,decompile:()=>W6,compile:()=>V6});var W2=null;function o(){if(W2)return W2;try{let $=h0("faf-scoring-kernel");return W2=$,$}catch{throw Error(`faf-scoring-kernel not installed.
|
|
140
140
|
|
|
141
141
|
Run: npm install faf-scoring-kernel
|
|
142
|
-
`)}}function
|
|
143
|
-
`)}function G4($,Z,U="project.faf"){let X=S0($.project?.name??"Project"),z=Z.tier?.name??"WHITE",Q=
|
|
142
|
+
`)}}function O2($){return JSON.parse(o().score_faf($))}function Y6($){return JSON.parse(o().score_faf_enterprise($))}function B6($){return o().validate_faf($)}function V6($){return o().compile_fafb($)}function W6($){return JSON.parse(o().decompile_fafb($))}function O6($){return JSON.parse(o().fafb_info($))}function L6($){return JSON.parse(o().score_fafb($))}function _6(){return o().sdk_version()}function c9($){return{score:$.score,tier:m0($.score),populated:$.populated,empty:$.empty,ignored:$.ignored,active:$.active,total:$.total,slots:$.slots}}function _2($){if(/^\s*app_type:\s*about\s*$/m.test($)){let U=$.match(/^\s+source_score:\s*(\d+)\s*$/m),X=U?parseInt(U[1],10):-1,z=X>=0&&X<=100?X:-1,Q=$.match(/^\s+represents:\s*(\S+)\s*$/m),J=Q?Q[1]:void 0;return{score:z,tier:z>=0?m0(z):i[i.length-1],populated:0,empty:0,ignored:0,active:0,total:0,slots:{},inherited:!0,represents:J}}return c9(O2($))}function D6($){let Z=[];if(!$||typeof $!=="object")return Z.push("File is not a valid YAML mapping"),{valid:!1,errors:Z};let U=$;if(!U.faf_version)Z.push("Missing required field: faf_version");if(!U.project?.name)Z.push("Missing required field: project.name");if(U.app_type==="about"){if(!U.about?.represents)Z.push("app_type 'about' requires about.represents (owner/repo of the source codebase)");else if(!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(U.about.represents))Z.push(`about.represents must be "owner/repo" format (got: ${U.about.represents})`);if(U.about?.source_score!==void 0){let X=U.about.source_score;if(typeof X!=="number"||X<0||X>100)Z.push(`about.source_score must be a number 0-100 (got: ${X})`)}}return{valid:Z.length===0,errors:Z}}import{readFileSync as X4,writeFileSync as xG,existsSync as Z4}from"fs";import{join as U4,dirname as VJ,basename as uG}from"path";var CQ=L9(),jQ=Q$(),SQ=e2(),w9=J$(),EQ=d0(),J0=b(),gQ=Z0(),fQ=g(),yQ=X0(),xQ=z0(),gG=U2(),hQ=K9(),uQ=A9(),kQ=N9(),Q2=t8(),e8=p0();var vQ=CQ.Composer,mQ=jQ.Document,pQ=SQ.Schema,lQ=w9.YAMLError,dQ=w9.YAMLParseError,cQ=w9.YAMLWarning,aQ=EQ.Alias,iQ=J0.isAlias,sQ=J0.isCollection,rQ=J0.isDocument,nQ=J0.isMap,oQ=J0.isNode,tQ=J0.isPair,eQ=J0.isScalar,$J=J0.isSeq,ZJ=gQ.Pair,UJ=fQ.Scalar,XJ=yQ.YAMLMap,zJ=xQ.YAMLSeq;var QJ=hQ.Lexer,JJ=uQ.LineCounter,HJ=kQ.Parser,V$=Q2.parse,qJ=Q2.parseAllDocuments,GJ=Q2.parseDocument,$4=Q2.stringify,YJ=e8.visit,BJ=e8.visitAsync;function WJ($){let Z=X4($,"utf-8");return V$(Z)}function z4($){return X4($,"utf-8")}function Q4($=process.cwd()){let Z=["project.faf",".faf"];for(let X of Z){let z=U4($,X);if(Z4(z))return z}let U=VJ($);if(U!==$)for(let X of Z){let z=U4(U,X);if(Z4(z))return z}return null}import{writeFileSync as OJ}from"fs";import{join as LJ}from"path";var J4=v0.orange,_J=v0.cyan,DJ=v0.cyanDeep,IJ="#FF9500",RJ="#FF3B30",MJ="#E6EDF3",PJ="#6E7681",H4={TROPHY:{glyph:"\uD83C\uDFC6",color:J4},GOLD:{glyph:"★",color:J4},SILVER:{glyph:"◆",color:_J},BRONZE:{glyph:"◇",color:DJ},GREEN:{glyph:"●",color:MJ},YELLOW:{glyph:"●",color:IJ},RED:{glyph:"○",color:RJ},WHITE:{glyph:"♡",color:PJ}};function S0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var q4=["who","what","why","where","when","how"];function J2($){return $.filter(([,Z])=>Z!==void 0&&Z!==null&&String(Z).trim()!=="").map(([Z,U])=>`<div class="row"><div class="k">${S0(Z)}</div><div class="v">${S0(U)}</div></div>`).join(`
|
|
143
|
+
`)}function G4($,Z,U="project.faf"){let X=S0($.project?.name??"Project"),z=Z.tier?.name??"WHITE",Q=H4[z]??H4.WHITE,J=Z.inherited?Z.represents?`inherited from ${S0(Z.represents)}`:"inherited":`${Z.score}%`,H=z==="TROPHY"&&!Z.inherited,q=$.human_context??{},G=q4.map((B)=>[B,q[B]]),W=Object.entries(q).filter(([B])=>!q4.includes(B)),Y=[["goal",$.project?.goal],["main_language",$.project?.main_language],["type",$.project?.type],["framework",$.project?.framework],["faf_version",$.faf_version]],V=Object.entries($.stack??{}),O=V.filter(([,B])=>B&&B!=="slotignored"&&String(B).trim()!==""),_=V.filter(([,B])=>B==="slotignored").length;return`<!DOCTYPE html>
|
|
144
144
|
<html lang="en">
|
|
145
145
|
<head>
|
|
146
146
|
<meta charset="UTF-8">
|
|
@@ -185,22 +185,22 @@ footer strong{color:#e6edf3}
|
|
|
185
185
|
<span class="score">${J}</span>
|
|
186
186
|
</header>
|
|
187
187
|
<div class="meter"><span></span></div>
|
|
188
|
-
${
|
|
188
|
+
${H?'<p class="award statline"><span class="awd-pre">✅ All Required slots filled.</span> <span class="awd-win">100% Trophy \uD83C\uDFC6 Awarded</span></p>':`<p class="muted statline">${Z.populated}/${Z.active} slots populated · ${Z.total} total${_?` · ${_} N/A`:""}</p>`}
|
|
189
189
|
|
|
190
190
|
<section>
|
|
191
191
|
<h2>The 6 W's</h2>
|
|
192
|
-
${
|
|
193
|
-
${W.length?
|
|
192
|
+
${J2(G)||'<p class="muted">No human_context yet.</p>'}
|
|
193
|
+
${W.length?J2(W):""}
|
|
194
194
|
</section>
|
|
195
195
|
|
|
196
196
|
<section>
|
|
197
197
|
<h2>Project</h2>
|
|
198
|
-
${
|
|
198
|
+
${J2(Y)||'<p class="muted">—</p>'}
|
|
199
199
|
</section>
|
|
200
200
|
|
|
201
201
|
<section>
|
|
202
202
|
<h2>Stack</h2>
|
|
203
|
-
${O.length?
|
|
203
|
+
${O.length?J2(O):'<p class="muted">No active stack slots.</p>'}
|
|
204
204
|
</section>
|
|
205
205
|
|
|
206
206
|
<footer>
|
|
@@ -210,17 +210,17 @@ Rendered on-demand from your current <strong>${S0(U)}</strong><br>
|
|
|
210
210
|
</div>
|
|
211
211
|
</body>
|
|
212
212
|
</html>
|
|
213
|
-
`}function
|
|
214
|
-
`,"utf-8"),z}var R4="faf-interview/1",E0="(terse — 3-4 words)",C2=[{path:"project.name",question:"What is the name of this project?",header:"Name",type:"text",required:!0},{path:"project.goal",question:"What does this project do? (one sentence)",header:"Goal",type:"text",required:!0},{path:"human_context.who",question:`Who is this for? ${E0}`,header:"Who",type:"text",required:!0},{path:"human_context.what",question:`What are they building? ${E0}`,header:"What",type:"text",required:!0},{path:"human_context.why",question:`Why does it exist? ${E0}`,header:"Why",type:"text",required:!0},{path:"human_context.where",question:`Where does it run or ship? ${E0}`,header:"Where",type:"text",required:!0},{path:"human_context.when",question:`When — timeline or stage? ${E0}`,header:"When",type:"text",required:!0},{path:"human_context.how",question:`How is it built or used? ${E0}`,header:"How",type:"text",required:!0}],M4=[{path:"project.main_language",question:"What is the primary programming language?",header:"Language",type:"select",required:!0,options:[{label:"TypeScript",value:"TypeScript",description:"JavaScript with types"},{label:"JavaScript",value:"JavaScript",description:"Vanilla JS or Node.js"},{label:"Python",value:"Python",description:"Python 3.x"},{label:"Rust",value:"Rust",description:"Systems programming"},{label:"Go",value:"Go",description:"Golang"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.frontend",question:"What frontend framework does it use?",header:"Frontend",type:"select",required:!1,options:[{label:"React",value:"React",description:"React.js"},{label:"Vue",value:"Vue",description:"Vue.js"},{label:"Svelte",value:"Svelte",description:"Svelte/SvelteKit"},{label:"Next.js",value:"Next.js",description:"React framework"},{label:"None",value:"None",description:"No frontend"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.backend",question:"What backend framework does it use?",header:"Backend",type:"select",required:!1,options:[{label:"Express",value:"Express",description:"Node.js Express"},{label:"Fastify",value:"Fastify",description:"Node.js Fastify"},{label:"Django",value:"Django",description:"Python Django"},{label:"FastAPI",value:"FastAPI",description:"Python FastAPI"},{label:"None",value:"None",description:"No backend"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.database",question:"What database does it use?",header:"Database",type:"select",required:!1,options:[{label:"PostgreSQL",value:"PostgreSQL",description:"Postgres"},{label:"MySQL",value:"MySQL",description:"MySQL/MariaDB"},{label:"SQLite",value:"SQLite",description:"Embedded SQL"},{label:"MongoDB",value:"MongoDB",description:"Document store"},{label:"None",value:"None",description:"No database"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.runtime",question:"What runtime does it run on?",header:"Runtime",type:"text",required:!1},{path:"stack.hosting",question:"Where is it hosted or distributed?",header:"Hosting",type:"text",required:!1},{path:"stack.build",question:"What is the build tool?",header:"Build",type:"text",required:!1},{path:"stack.cicd",question:"What CI/CD does it use?",header:"CI/CD",type:"text",required:!1}],g0=[...C2,...M4],P4=new Map(g0.map(($)=>[$.path,$])),SJ=Object.fromEntries(g0.map(($)=>[$.path,$]));function j2($){let Z=P4.get($);if(Z)return Z.question;let U=u0.get($)??y.find((X)=>X.canonical===$);return U?`${U.description}?`.replace(/\?\?$/,"?"):`${$}?`}function EJ($,Z){return g0.filter((U)=>{let X=U.path.split("."),z=$;for(let Q of X)if(z&&typeof z==="object"&&Q in z)z=z[Q];else{z=void 0;break}if(z==="slotignored")return!1;return Z(z)})}var gJ=new Set(["developers","development teams","development team","teams","development","cloud platform","web platform","platform","best practices","improve development efficiency","development efficiency","modern development practices","modern development","test-driven development","production/stable","production","stable","app","project","tool"]),fJ=[["npm",/\bnpm\b/i],["PyPI",/\bpypi\b/i],["crates.io",/\bcrates\.io\b/i],["Homebrew",/\bhomebrew\b/i],["Docker",/\bdocker\b/i],["Cloudflare",/\bcloudflare\b/i],["Vercel",/\bvercel\b/i],["Netlify",/\bnetlify\b/i],["AWS",/\baws\b/i],["Cloud Run",/\bcloud run\b/i],["edge",/\bedge\b/i],["browser",/\bbrowser\b/i],["WASM",/\bwasm\b/i],["GitHub",/\bgithub\b/i],["MCP Registry",/\bmcp registry\b/i],["Chrome Web Store",/\bchrome web store\b/i],["Smithery",/\bsmithery\b/i]],L4=($)=>gJ.has($.toLowerCase().trim()),yJ=/^(?:with|and|or|using|for|to|that|who|whom|whose|the|a|an|in|on|of|via|by|&)$/i;function _4($,Z=5){let U=$.trim().split(/\s+/).filter(Boolean).slice(0,Z);while(U.length&&yJ.test(U[U.length-1].replace(/[.,;:]+$/,"")))U.pop();return U.join(" ")}function F4($){let Z={};if(!$||typeof $!=="string")return Z;let U=$.trim(),X=U.replace(/^[^A-Za-z0-9]+/,"").split(/\s+(?:for|that|which|to)\s+|\s+[—–]\s+|\s-\s|:\s|\.\s|,\s/)[0].trim(),z=_4(X);if(z.split(/\s+/).filter(Boolean).length>=2&&!L4(z))Z.what=z;let Q=fJ.filter(([,H])=>H.test(U)).map(([H])=>H);if(Q.length)Z.where=Q.slice(0,4).join(", ");let J=U.match(/\bfor ((?:[A-Za-z][\w./+-]* )?(?:any |all )?(?:developers?|teams?|engineers?|builders?|users?|integrators?)\b[^.,;:—]*)/i),q=_4((J?.[1]||"").trim().replace(/\s+/g," "));if(q&&!L4(q))Z.who=q;return Z}function D4($,Z){let U=$;for(let X of Z.split("."))if(U&&typeof U==="object"&&X in U)U=U[X];else return;return U}function I4($){if(typeof $!=="string")return!1;let Z=$.trim();if(!Z||Z==="slotignored")return!1;return!q0(Z)}function xJ($,Z={}){let U=$&&typeof $==="object"?$:{},X=D4(U,"project.goal"),z=(I4(X)?String(X).trim():"")||(Z.goal??"").trim(),Q=F4(z),J=Z.detailed??{},q={"project.goal":z||void 0,"human_context.what":Q.what,"human_context.where":Q.where,"human_context.who":Q.who},H=(O)=>{let _=q[O];if(_)return{value:_,source:"project goal",confidence:0.9};let B=O.startsWith("human_context.")?O.slice(14):"",L=B?J[B]:void 0;return L?{value:L.value,source:L.source,confidence:L.confidence}:void 0},G=C2.map((O,_)=>{let B={n:_+1,path:O.path,header:O.header,question:O.question},L=D4(U,O.path);if(I4(L))return{...B,value:String(L).trim(),status:"filled",seeded:!1};let I=H(O.path);if(I)return{...B,value:I.value,status:"seeded",seeded:!0,source:I.source,confidence:I.confidence};return{...B,value:"",status:"empty",seeded:!1}}),W=G.filter((O)=>O.status==="filled").length,Y=G.filter((O)=>O.status==="seeded").length,V=G.filter((O)=>O.status==="empty").length;return{version:R4,rows:G,filledCount:W,seededCount:Y,emptyCount:V,complete:V===0}}function q9($){if($===null||$===void 0)return!0;if(typeof $==="string"){let Z=$.trim();return Z===""||q0(Z)}return!1}function hJ($,Z){let U=$;for(let X of Z.split("."))if(U&&typeof U==="object"&&X in U)U=U[X];else return;return U}function K4($){if($==="project.goal")return!0;return u0.get($)?.category==="human"}function T4($,Z=q9){let U=[],X=[];for(let z of g0){let Q=hJ($,z.path);if(Q==="slotignored")continue;if(!Z(Q))continue;(K4(z.path)?U:X).push(z.path)}return{human:U,sourceable:X}}function A4($,Z,U=q9){let X=T4(Z,U),z;if($>=100||X.human.length===0&&X.sourceable.length===0)z="done";else if(X.sourceable.length>0)z="can-source";else z="needs-human";let Q=z==="needs-human"?S2(X):[];return{status:z,score:$,gaps:X,ask:Q}}function S2($){return $.human.map((Z)=>({path:Z,question:j2(Z)}))}function uJ($,Z={}){let U=Math.max(1,Z.maxRounds??5),X=Z.isEmpty??q9,z=[],Q=0;for(let q=0;q<=U;q++){let H=$.read();if(!H)return{status:"no-faf",score:0,rounds:Q,history:z,ask:[]};let G=$.score(H.yaml);z.push(G);let W=A4(G,H.data,X);if(W.status==="done")return{status:"done",score:G,rounds:Q,history:z,ask:[]};if(W.status==="needs-human")return{status:"needs-human",score:G,rounds:Q,history:z,ask:W.ask};if(z.length>=2&&G<=z[z.length-2])return W.gaps.human.length?{status:"needs-human",score:G,rounds:Q,history:z,ask:S2(W.gaps)}:{status:"stuck",score:G,rounds:Q,history:z,ask:[]};if(Q>=U)return{status:"capped",score:G,rounds:Q,history:z,ask:S2(W.gaps)};$.runAuto(),Q++}return{status:"capped",score:z[z.length-1]??0,rounds:Q,history:z,ask:[]}}import{createHash as w4}from"crypto";var E2="faf-bench/1",kJ={"project.name":"What is the project's name?","project.goal":"What is the project's goal — what is it for?","project.main_language":"What is the primary programming language?","human_context.who":"Who is this project for?","human_context.what":"What are they building?","human_context.why":"Why does this project exist?","human_context.where":"Where does it run or get distributed?","human_context.when":"When — what is the project's timeline or stage?","human_context.how":"How is it built or used?"};function vJ($,Z){return kJ[$]??`What is the project's ${Z.replace(/\s*\(.*\)$/,"").toLowerCase()}?`}var b4=[["typescript","ts"],["javascript","js"],["python","py","python3"],["node","nodejs","node js","node.js"],["github actions","gh actions","actions"],["postgresql","postgres","pg"],["kubernetes","k8s"],["npm","npm registry"],["cloudflare workers","cf workers","workers"],["google cloud run","cloud run","gcp cloud run"]],W$=new Map;b4.forEach(($,Z)=>$.forEach((U)=>W$.set(U,Z)));var mJ=new Set(["a","an","the","and","or","of","for","to","in","on","with","is","it","its","their","your","via","by","using","use","used"]);function H9($){return $.toLowerCase().replace(/[^a-z0-9\s.+#-]/g," ").replace(/\.(?=\s|$)/g," ").replace(/\s+/g," ").trim()}function N4($){return H9($).split(" ").filter((Z)=>Z&&!mJ.has(Z))}function C4($,Z){let U=H9($),X=H9(Z);if(!U||!X)return!1;if(U===X)return!0;let z=W$.get(U);if(z!==void 0&&W$.get(X)===z)return!0;let Q=N4($);if(Q.length===0)return!1;let J=new Set(N4(Z));return Q.every((q)=>{if(J.has(q))return!0;let H=W$.get(q);return H!==void 0&&[...J].some((G)=>W$.get(G)===H)})}function pJ($){let Z=_9($),U=V$($),X=[],z={},Q=0;for(let H of y){if(Z.slots[H.path]!=="populated")continue;let G=d2(U,H);if(typeof G!=="string")continue;let W=G.trim();if(!W||_$.has(W.toLowerCase()))continue;Q+=1,X.push({n:Q,path:H.path,question:vJ(H.path,H.description)}),z[Q]=W}let J=JSON.stringify({v:E2,q:X.map((H)=>[H.path,H.question])}),q=w4("sha256").update(J).digest("hex").slice(0,12);return{version:E2,qsetHash:q,questions:X,answers:z}}function lJ($){return{version:$.version,qsetHash:$.qsetHash,questions:$.questions}}function dJ($,Z){let U=$.questions.map((z)=>{let Q=Z[String(z.n)]??Z[z.path]??"";return{n:z.n,path:z.path,ok:typeof Q==="string"&&Q.trim()!==""&&C4($.answers[z.n],Q)}}),X=$.questions.filter((z)=>!U[z.n-1].ok);return{correct:U.filter((z)=>z.ok).length,total:$.questions.length,misses:X,perQuestion:U}}function cJ($,Z){let U=JSON.stringify({v:$.version,repo:Z??null,qset:$.qsetHash,protocol:$.protocol,cold:$.cold??null,faf:$.faf??null});return{projection:U,hash:w4("sha256").update(U).digest("hex")}}import{existsSync as Zq,readdirSync as S4,readFileSync as Uq}from"fs";import{join as y2,dirname as Xq,extname as zq,resolve as Qq}from"path";var g2={"package.json":{frameworks:["Node.js","JavaScript","TypeScript"],slots:{packageManager:"npm/yarn/pnpm",mainLanguage:"JavaScript/TypeScript"},priority:35,intelligence:"ultra-high"},"README.md":{frameworks:[],slots:{targetUser:"developers",coreProblem:"understanding project",missionPurpose:"project documentation"},priority:25,intelligence:"high"},"requirements.txt":{frameworks:["Python"],slots:{packageManager:"pip",mainLanguage:"Python"},priority:35,intelligence:"ultra-high"},Pipfile:{frameworks:["Python"],slots:{packageManager:"pipenv",mainLanguage:"Python"},priority:35,intelligence:"ultra-high"},"pyproject.toml":{frameworks:["Python"],slots:{mainLanguage:"Python",runtime:"Python",backend:"Python"},priority:36,intelligence:"ultra-high"},Gemfile:{frameworks:["Ruby","Rails"],slots:{packageManager:"bundler",mainLanguage:"Ruby"},priority:35,intelligence:"ultra-high"},"composer.json":{frameworks:["PHP","Laravel","Symfony"],slots:{packageManager:"composer",mainLanguage:"PHP"},priority:35,intelligence:"ultra-high"},"Cargo.toml":{frameworks:["Rust"],slots:{packageManager:"cargo",mainLanguage:"Rust",buildTool:"cargo"},priority:36,intelligence:"ultra-high"},"go.mod":{frameworks:["Go"],slots:{packageManager:"go modules",mainLanguage:"Go",buildTool:"go build"},priority:36,intelligence:"ultra-high"},"pubspec.yaml":{frameworks:["Dart"],slots:{packageManager:"pub",mainLanguage:"Dart"},priority:35,intelligence:"ultra-high"},"pom.xml":{frameworks:["Java","Spring","Maven"],slots:{packageManager:"maven",mainLanguage:"Java",buildTool:"maven"},priority:35,intelligence:"ultra-high"},"build.gradle":{frameworks:["Java","Kotlin","Spring","Gradle"],slots:{packageManager:"gradle",mainLanguage:"Java/Kotlin",buildTool:"gradle"},priority:35,intelligence:"ultra-high"},"next.config.js":{frameworks:["Next.js"],slots:{framework:"Next.js",runtime:"Node.js",buildTool:"Next.js",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"next.config.mjs":{frameworks:["Next.js"],slots:{framework:"Next.js",runtime:"Node.js",buildTool:"Next.js",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"next.config.ts":{frameworks:["Next.js 13+"],slots:{framework:"Next.js 13+",runtime:"Node.js",buildTool:"Next.js",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"nuxt.config.js":{frameworks:["Nuxt 2"],slots:{framework:"Nuxt 2",runtime:"Node.js",buildTool:"Nuxt",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"nuxt.config.ts":{frameworks:["Nuxt 3"],slots:{framework:"Nuxt 3",runtime:"Node.js",buildTool:"Nuxt",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"svelte.config.js":{frameworks:["SvelteKit"],slots:{framework:"SvelteKit",buildTool:"Vite",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"angular.json":{frameworks:["Angular"],slots:{framework:"Angular",buildTool:"Angular CLI",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"manifest.json":{frameworks:["Chrome Extension","Browser Extension"],slots:{framework:"Chrome Extension",runtime:"Chrome/Browser",mainLanguage:"JavaScript",hosting:"Chrome Web Store",apiType:"Chrome APIs"},priority:35,intelligence:"ultra-high",confirmWith:["popup.html","background.js","content.js"]},"vue.config.js":{frameworks:["Vue"],slots:{framework:"Vue",buildTool:"Vue CLI",mainLanguage:"JavaScript"},priority:30,intelligence:"high"},"remix.config.js":{frameworks:["Remix"],slots:{framework:"Remix",runtime:"Node.js",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"gatsby-config.js":{frameworks:["Gatsby"],slots:{framework:"Gatsby",buildTool:"Gatsby",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"gatsby-config.ts":{frameworks:["Gatsby"],slots:{framework:"Gatsby",buildTool:"Gatsby",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"astro.config.mjs":{frameworks:["Astro"],slots:{framework:"Astro",buildTool:"Vite",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"redwood.toml":{frameworks:["RedwoodJS"],slots:{framework:"RedwoodJS",buildTool:"Webpack",mainLanguage:"JavaScript/TypeScript",server:"Node.js",database:"Prisma"},priority:30,intelligence:"high"},"blitz.config.ts":{frameworks:["Blitz.js"],slots:{framework:"Blitz.js",buildTool:"Next.js",mainLanguage:"TypeScript",server:"Node.js",database:"Prisma"},priority:30,intelligence:"high"},"qwik.config.ts":{frameworks:["Qwik"],slots:{framework:"Qwik",buildTool:"Vite",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"manage.py":{frameworks:["Django"],slots:{framework:"Django",backend:"Django",mainLanguage:"Python",server:"Django",apiType:"Django Views"},priority:30,intelligence:"high"},artisan:{frameworks:["Laravel"],slots:{framework:"Laravel",backend:"Laravel",mainLanguage:"PHP",server:"PHP",apiType:"Laravel Routes"},priority:30,intelligence:"high"},"mix.exs":{frameworks:["Phoenix","Elixir"],slots:{framework:"Phoenix",backend:"Phoenix",mainLanguage:"Elixir",server:"BEAM"},priority:30,intelligence:"high"},"nest-cli.json":{frameworks:["NestJS"],slots:{framework:"NestJS",backend:"NestJS",mainLanguage:"TypeScript",server:"Node.js",apiType:"REST API"},priority:30,intelligence:"high"},"strapi.config.js":{frameworks:["Strapi"],slots:{backend:"Strapi",apiType:"REST API",database:"Required",server:"Node.js"},priority:30,intelligence:"high"},Dockerfile:{frameworks:["Docker"],slots:{hosting:"Docker",connection:"Containerized"},priority:30,intelligence:"high"},"docker-compose.yml":{frameworks:["Docker Compose"],slots:{hosting:"Docker",connection:"Multi-container"},priority:30,intelligence:"high"},"docker-compose.yaml":{frameworks:["Docker Compose"],slots:{hosting:"Docker",connection:"Multi-container"},priority:30,intelligence:"high"},"kubernetes.yml":{frameworks:["Kubernetes"],slots:{hosting:"Kubernetes",connection:"Orchestrated"},priority:30,intelligence:"high"},"k8s.yaml":{frameworks:["Kubernetes"],slots:{hosting:"Kubernetes",connection:"Orchestrated"},priority:30,intelligence:"high"},"vercel.json":{frameworks:["Vercel"],slots:{hosting:"Vercel",cicd:"Vercel"},priority:30,intelligence:"high"},"netlify.toml":{frameworks:["Netlify"],slots:{hosting:"Netlify",cicd:"Netlify"},priority:30,intelligence:"high"},"render.yaml":{frameworks:["Render"],slots:{hosting:"Render",cicd:"Render"},priority:30,intelligence:"high"},"fly.toml":{frameworks:["Fly.io"],slots:{hosting:"Fly.io",cicd:"Fly.io"},priority:30,intelligence:"high"},"railway.json":{frameworks:["Railway"],slots:{hosting:"Railway",cicd:"Railway"},priority:30,intelligence:"high"},"railway.toml":{frameworks:["Railway"],slots:{hosting:"Railway",cicd:"Railway"},priority:30,intelligence:"high"},"app.yaml":{frameworks:["Google App Engine"],slots:{hosting:"Google Cloud",cicd:"Google Cloud"},priority:30,intelligence:"high"},Procfile:{frameworks:["Heroku"],slots:{hosting:"Heroku",cicd:"Heroku"},priority:30,intelligence:"high"},"vite.config.js":{frameworks:["Vite"],slots:{buildTool:"Vite"},priority:25,intelligence:"medium"},"vite.config.ts":{frameworks:["Vite"],slots:{buildTool:"Vite",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"webpack.config.js":{frameworks:["Webpack"],slots:{buildTool:"Webpack"},priority:25,intelligence:"medium"},"rollup.config.js":{frameworks:["Rollup"],slots:{buildTool:"Rollup"},priority:25,intelligence:"medium"},"esbuild.config.js":{frameworks:["esbuild"],slots:{buildTool:"esbuild"},priority:25,intelligence:"medium"},"parcel.config.js":{frameworks:["Parcel"],slots:{buildTool:"Parcel"},priority:25,intelligence:"medium"},"snowpack.config.js":{frameworks:["Snowpack"],slots:{buildTool:"Snowpack"},priority:25,intelligence:"medium"},"tsconfig.json":{frameworks:["TypeScript"],slots:{mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"jsconfig.json":{frameworks:["JavaScript"],slots:{mainLanguage:"JavaScript"},priority:20,intelligence:"medium"},"babel.config.js":{frameworks:["Babel"],slots:{buildTool:"Babel"},priority:20,intelligence:"medium"},".babelrc":{frameworks:["Babel"],slots:{buildTool:"Babel"},priority:20,intelligence:"medium"},"jest.config.js":{frameworks:["Jest"],slots:{cicd:"Jest"},priority:25,intelligence:"medium"},"jest.config.ts":{frameworks:["Jest"],slots:{cicd:"Jest",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"vitest.config.ts":{frameworks:["Vitest"],slots:{cicd:"Vitest",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"cypress.config.js":{frameworks:["Cypress"],slots:{cicd:"Cypress"},priority:25,intelligence:"medium"},"playwright.config.ts":{frameworks:["Playwright"],slots:{cicd:"Playwright",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"karma.conf.js":{frameworks:["Karma"],slots:{cicd:"Karma"},priority:20,intelligence:"medium"},"mocha.opts":{frameworks:["Mocha"],slots:{cicd:"Mocha"},priority:20,intelligence:"medium"},".rspec":{frameworks:["RSpec"],slots:{cicd:"RSpec",mainLanguage:"Ruby"},priority:25,intelligence:"medium"},"pytest.ini":{frameworks:["Pytest"],slots:{cicd:"Pytest",mainLanguage:"Python"},priority:25,intelligence:"medium"},"phpunit.xml":{frameworks:["PHPUnit"],slots:{cicd:"PHPUnit",mainLanguage:"PHP"},priority:25,intelligence:"medium"},"schema.prisma":{frameworks:["Prisma"],slots:{database:"Prisma ORM",connection:"Prisma"},priority:25,intelligence:"medium"},"drizzle.config.ts":{frameworks:["Drizzle"],slots:{database:"Drizzle ORM",connection:"Drizzle",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"ormconfig.js":{frameworks:["TypeORM"],slots:{database:"TypeORM",connection:"TypeORM"},priority:25,intelligence:"medium"},"knexfile.js":{frameworks:["Knex.js"],slots:{database:"Knex.js",connection:"Knex.js"},priority:25,intelligence:"medium"},"sequelize.config.js":{frameworks:["Sequelize"],slots:{database:"Sequelize",connection:"Sequelize"},priority:25,intelligence:"medium"},"alembic.ini":{frameworks:["Alembic"],slots:{database:"Alembic",mainLanguage:"Python"},priority:25,intelligence:"medium"},".github/workflows":{frameworks:["GitHub Actions"],slots:{cicd:"GitHub Actions"},priority:25,intelligence:"medium"},".gitlab-ci.yml":{frameworks:["GitLab CI"],slots:{cicd:"GitLab CI"},priority:25,intelligence:"medium"},Jenkinsfile:{frameworks:["Jenkins"],slots:{cicd:"Jenkins"},priority:25,intelligence:"medium"},".circleci/config.yml":{frameworks:["CircleCI"],slots:{cicd:"CircleCI"},priority:25,intelligence:"medium"},".travis.yml":{frameworks:["Travis CI"],slots:{cicd:"Travis CI"},priority:25,intelligence:"medium"},"azure-pipelines.yml":{frameworks:["Azure DevOps"],slots:{cicd:"Azure DevOps"},priority:25,intelligence:"medium"},"bitbucket-pipelines.yml":{frameworks:["Bitbucket Pipelines"],slots:{cicd:"Bitbucket Pipelines"},priority:25,intelligence:"medium"},"tailwind.config.js":{frameworks:["Tailwind CSS"],slots:{cssFramework:"Tailwind CSS"},priority:20,intelligence:"medium"},"tailwind.config.ts":{frameworks:["Tailwind CSS"],slots:{cssFramework:"Tailwind CSS",mainLanguage:"TypeScript"},priority:20,intelligence:"medium"},"postcss.config.js":{frameworks:["PostCSS"],slots:{cssFramework:"PostCSS"},priority:20,intelligence:"medium"},"uno.config.ts":{frameworks:["UnoCSS"],slots:{cssFramework:"UnoCSS",mainLanguage:"TypeScript"},priority:20,intelligence:"medium"},"styled-components.config.js":{frameworks:["styled-components"],slots:{cssFramework:"styled-components",uiLibrary:"styled-components"},priority:20,intelligence:"medium"},"emotion.config.js":{frameworks:["Emotion"],slots:{cssFramework:"Emotion",uiLibrary:"Emotion"},priority:20,intelligence:"medium"},"metro.config.js":{frameworks:["React Native"],slots:{framework:"React Native",mainLanguage:"JavaScript"},priority:25,intelligence:"medium"},"expo.config.js":{frameworks:["Expo"],slots:{framework:"React Native",buildTool:"Expo"},priority:25,intelligence:"medium"},"app.json":{frameworks:["React Native","Expo"],slots:{framework:"React Native"},priority:20,intelligence:"medium",confirmWith:["expo"]},"capacitor.config.ts":{frameworks:["Capacitor"],slots:{framework:"Capacitor",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"ionic.config.json":{frameworks:["Ionic"],slots:{framework:"Ionic",uiLibrary:"Ionic"},priority:25,intelligence:"medium"},"nx.json":{frameworks:["Nx"],slots:{buildTool:"Nx"},priority:25,intelligence:"medium"},"turbo.json":{frameworks:["Turborepo"],slots:{buildTool:"Turborepo"},priority:25,intelligence:"medium"},"lerna.json":{frameworks:["Lerna"],slots:{buildTool:"Lerna"},priority:25,intelligence:"medium"},"rush.json":{frameworks:["Rush"],slots:{buildTool:"Rush"},priority:25,intelligence:"medium"},"pnpm-workspace.yaml":{frameworks:["pnpm workspaces"],slots:{packageManager:"pnpm",buildTool:"pnpm workspaces"},priority:25,intelligence:"medium"},"*.svelte":{frameworks:["Svelte","SvelteKit"],slots:{framework:"Svelte"},priority:15,intelligence:"low"},"*.vue":{frameworks:["Vue"],slots:{framework:"Vue"},priority:15,intelligence:"low"},"*.jsx":{frameworks:["React"],slots:{framework:"React",mainLanguage:"JavaScript"},priority:15,intelligence:"low"},"*.ts":{frameworks:["TypeScript"],slots:{mainLanguage:"TypeScript"},priority:15,intelligence:"low"},"*.tsx":{frameworks:["React","TypeScript"],slots:{framework:"React",mainLanguage:"TypeScript"},priority:15,intelligence:"low"},"*.py":{frameworks:["Python"],slots:{mainLanguage:"Python"},priority:15,intelligence:"low"},"*.rb":{frameworks:["Ruby"],slots:{mainLanguage:"Ruby"},priority:15,intelligence:"low"},"*.php":{frameworks:["PHP"],slots:{mainLanguage:"PHP"},priority:15,intelligence:"low"},"*.java":{frameworks:["Java"],slots:{mainLanguage:"Java"},priority:15,intelligence:"low"},"*.kt":{frameworks:["Kotlin"],slots:{mainLanguage:"Kotlin"},priority:15,intelligence:"low"},"*.swift":{frameworks:["Swift"],slots:{mainLanguage:"Swift"},priority:15,intelligence:"low"},"*.go":{frameworks:["Go"],slots:{mainLanguage:"Go"},priority:15,intelligence:"low"},"*.rs":{frameworks:["Rust"],slots:{mainLanguage:"Rust"},priority:15,intelligence:"low"},"*.dart":{frameworks:["Flutter","Dart"],slots:{mainLanguage:"Dart"},priority:15,intelligence:"low"},"*.ex":{frameworks:["Elixir"],slots:{mainLanguage:"Elixir"},priority:15,intelligence:"low"},"*.exs":{frameworks:["Elixir"],slots:{mainLanguage:"Elixir"},priority:15,intelligence:"low"},"*.scala":{frameworks:["Scala"],slots:{mainLanguage:"Scala"},priority:15,intelligence:"low"},"*.clj":{frameworks:["Clojure"],slots:{mainLanguage:"Clojure"},priority:15,intelligence:"low"},"*.lua":{frameworks:["Lua"],slots:{mainLanguage:"Lua"},priority:15,intelligence:"low"},"*.r":{frameworks:["R"],slots:{mainLanguage:"R"},priority:15,intelligence:"low"},"*.R":{frameworks:["R"],slots:{mainLanguage:"R"},priority:15,intelligence:"low"},"*.jl":{frameworks:["Julia"],slots:{mainLanguage:"Julia"},priority:15,intelligence:"low"},"*.nim":{frameworks:["Nim"],slots:{mainLanguage:"Nim"},priority:15,intelligence:"low"},"*.zig":{frameworks:["Zig"],slots:{mainLanguage:"Zig"},priority:15,intelligence:"low"},"build.zig":{frameworks:["Zig"],slots:{packageManager:"Zig Package Manager",mainLanguage:"Zig",buildTool:"zig build",framework:"Zig",build:"zig build"},priority:35,intelligence:"ultra-high"},"openapi.json":{frameworks:["OpenAPI"],slots:{apiType:"REST API",backend:"API Server"},priority:30,intelligence:"high"},"openapi.yaml":{frameworks:["OpenAPI"],slots:{apiType:"REST API",backend:"API Server"},priority:30,intelligence:"high"},"swagger.json":{frameworks:["Swagger"],slots:{apiType:"REST API",backend:"API Server"},priority:30,intelligence:"high"},"graphql.schema":{frameworks:["GraphQL"],slots:{apiType:"GraphQL",backend:"GraphQL Server"},priority:30,intelligence:"high"},"schema.graphql":{frameworks:["GraphQL"],slots:{apiType:"GraphQL",backend:"GraphQL Server"},priority:30,intelligence:"high"},".graphqlconfig":{frameworks:["GraphQL"],slots:{apiType:"GraphQL"},priority:25,intelligence:"medium"},"redux.config.js":{frameworks:["Redux"],slots:{stateManagement:"Redux"},priority:20,intelligence:"medium"},"mobx.config.js":{frameworks:["MobX"],slots:{stateManagement:"MobX"},priority:20,intelligence:"medium"},"vuex.config.js":{frameworks:["Vuex"],slots:{stateManagement:"Vuex",framework:"Vue"},priority:20,intelligence:"medium"},"pinia.config.js":{frameworks:["Pinia"],slots:{stateManagement:"Pinia",framework:"Vue"},priority:20,intelligence:"medium"},"zustand.config.js":{frameworks:["Zustand"],slots:{stateManagement:"Zustand"},priority:20,intelligence:"medium"},".eslintrc.js":{frameworks:["ESLint"],slots:{},priority:15,intelligence:"low"},".eslintrc.json":{frameworks:["ESLint"],slots:{},priority:15,intelligence:"low"},".prettierrc":{frameworks:["Prettier"],slots:{},priority:15,intelligence:"low"},".prettierrc.json":{frameworks:["Prettier"],slots:{},priority:15,intelligence:"low"},"biome.json":{frameworks:["Biome"],slots:{},priority:15,intelligence:"low"},".editorconfig":{frameworks:["EditorConfig"],slots:{},priority:10,intelligence:"low"},"serverless.yml":{frameworks:["Serverless Framework"],slots:{hosting:"AWS Lambda/Azure/GCP",backend:"Serverless",apiType:"API Gateway"},priority:30,intelligence:"high"},"serverless.yaml":{frameworks:["Serverless Framework"],slots:{hosting:"AWS Lambda/Azure/GCP",backend:"Serverless",apiType:"API Gateway"},priority:30,intelligence:"high"},"sam.yaml":{frameworks:["AWS SAM"],slots:{hosting:"AWS Lambda",backend:"AWS SAM",cicd:"AWS SAM CLI"},priority:30,intelligence:"high"},"template.yaml":{frameworks:["AWS SAM","CloudFormation"],slots:{hosting:"AWS",backend:"AWS SAM/CloudFormation",cicd:"AWS"},priority:25,intelligence:"medium",confirmWith:["samconfig.toml"]},"amplify.yml":{frameworks:["AWS Amplify"],slots:{hosting:"AWS Amplify",backend:"AWS Amplify",cicd:"AWS Amplify"},priority:30,intelligence:"high"},Podfile:{frameworks:["CocoaPods","iOS"],slots:{packageManager:"CocoaPods",mainLanguage:"Swift/Objective-C",framework:"iOS Native"},priority:30,intelligence:"high"},"build.gradle.kts":{frameworks:["Gradle Kotlin DSL","Android","Kotlin"],slots:{packageManager:"Gradle",mainLanguage:"Kotlin",buildTool:"Gradle Kotlin DSL",framework:"Android"},priority:30,intelligence:"high"},"*.ipynb":{frameworks:["Jupyter","Python"],slots:{mainLanguage:"Python",framework:"Jupyter Notebook"},priority:30,intelligence:"high"},MLproject:{frameworks:["MLflow"],slots:{mainLanguage:"Python",framework:"MLflow",backend:"MLflow",cicd:"MLflow"},priority:30,intelligence:"high"},"dvc.yaml":{frameworks:["DVC","Data Version Control"],slots:{mainLanguage:"Python",framework:"DVC",cicd:"DVC Pipelines"},priority:30,intelligence:"high"},"dvc.lock":{frameworks:["DVC"],slots:{framework:"DVC"},priority:20,intelligence:"medium"},"wrangler.toml":{frameworks:["Cloudflare Workers","Cloudflare"],slots:{hosting:"Cloudflare Workers",backend:"Cloudflare Workers",runtime:"V8 Isolates"},priority:30,intelligence:"high"},"deno.json":{frameworks:["Deno"],slots:{runtime:"Deno",mainLanguage:"TypeScript",packageManager:"Deno"},priority:30,intelligence:"high"},"bun.lockb":{frameworks:["Bun"],slots:{runtime:"Bun",packageManager:"Bun",mainLanguage:"TypeScript/JavaScript"},priority:30,intelligence:"high"},"codecov.yml":{frameworks:["Codecov"],slots:{cicd:"Codecov"},priority:25,intelligence:"high"},"dependabot.yml":{frameworks:["Dependabot","GitHub"],slots:{cicd:"Dependabot"},priority:25,intelligence:"high"},"renovate.json":{frameworks:["Renovate"],slots:{cicd:"Renovate"},priority:25,intelligence:"high"},Makefile:{frameworks:["Make","GNU Make"],slots:{buildTool:"Make"},priority:30,intelligence:"high"},"CMakeLists.txt":{frameworks:["CMake","C","C++"],slots:{buildTool:"CMake",mainLanguage:"C/C++"},priority:30,intelligence:"high"},"meson.build":{frameworks:["Meson","C","C++"],slots:{buildTool:"Meson",mainLanguage:"C/C++"},priority:30,intelligence:"high"},"*.c":{frameworks:["C"],slots:{mainLanguage:"C"},priority:30,intelligence:"high"},"*.cpp":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:30,intelligence:"high"},"*.cc":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:30,intelligence:"high"},"*.cxx":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:25,intelligence:"high"},"*.h":{frameworks:["C","C++"],slots:{mainLanguage:"C/C++"},priority:25,intelligence:"high"},"*.hpp":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:25,intelligence:"high"},"*.hxx":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:20,intelligence:"medium"},".env":{frameworks:[],slots:{},priority:20,intelligence:"medium"},".env.example":{frameworks:[],slots:{},priority:25,intelligence:"high"},".env.local":{frameworks:[],slots:{},priority:20,intelligence:"medium"},".env.development":{frameworks:[],slots:{},priority:20,intelligence:"medium"},".env.production":{frameworks:[],slots:{},priority:20,intelligence:"medium"},"skaffold.yaml":{frameworks:["Skaffold","Kubernetes"],slots:{hosting:"Kubernetes",cicd:"Skaffold"},priority:30,intelligence:"high"},"Chart.yaml":{frameworks:["Helm","Kubernetes"],slots:{hosting:"Kubernetes",backend:"Helm"},priority:30,intelligence:"high"},"values.yaml":{frameworks:["Helm","Kubernetes"],slots:{hosting:"Kubernetes"},priority:25,intelligence:"high",confirmWith:["Chart.yaml"]},"pulumi.yaml":{frameworks:["Pulumi"],slots:{hosting:"Cloud",cicd:"Pulumi"},priority:30,intelligence:"high"},"Pulumi.yaml":{frameworks:["Pulumi"],slots:{hosting:"Cloud",cicd:"Pulumi"},priority:30,intelligence:"high"},"terragrunt.hcl":{frameworks:["Terragrunt","Terraform"],slots:{hosting:"Cloud",cicd:"Terragrunt"},priority:30,intelligence:"high"},"ansible.yml":{frameworks:["Ansible"],slots:{cicd:"Ansible"},priority:30,intelligence:"high"},"playbook.yml":{frameworks:["Ansible"],slots:{cicd:"Ansible"},priority:25,intelligence:"high"},"*.cs":{frameworks:["C#",".NET","Unity"],slots:{mainLanguage:"C#"},priority:30,intelligence:"high"},"*.m":{frameworks:["Objective-C","iOS"],slots:{mainLanguage:"Objective-C"},priority:25,intelligence:"high"},".nvmrc":{frameworks:["Node.js","nvm"],slots:{runtime:"Node.js"},priority:25,intelligence:"high"},".tool-versions":{frameworks:["asdf"],slots:{},priority:25,intelligence:"high"},".ruby-version":{frameworks:["Ruby","rbenv"],slots:{mainLanguage:"Ruby",runtime:"Ruby"},priority:25,intelligence:"high"},".python-version":{frameworks:["Python","pyenv"],slots:{mainLanguage:"Python",runtime:"Python"},priority:25,intelligence:"high"},".dockerignore":{frameworks:["Docker"],slots:{},priority:20,intelligence:"medium"},".gitattributes":{frameworks:["Git"],slots:{},priority:15,intelligence:"low"},".npmrc":{frameworks:["npm","Node.js"],slots:{packageManager:"npm"},priority:20,intelligence:"medium"},"sonar-project.properties":{frameworks:["SonarQube","SonarCloud"],slots:{cicd:"SonarQube"},priority:25,intelligence:"high"},"*.fs":{frameworks:["F#",".NET"],slots:{mainLanguage:"F#"},priority:25,intelligence:"high"},"*.mm":{frameworks:["Objective-C++","iOS","macOS"],slots:{mainLanguage:"Objective-C++"},priority:25,intelligence:"high"},"build.zig.zon":{frameworks:["Zig"],slots:{mainLanguage:"Zig",packageManager:"Zig Package Manager",buildTool:"zig build"},priority:35,intelligence:"ultra-high"},"gleam.toml":{frameworks:["Gleam","BEAM","Erlang"],slots:{mainLanguage:"Gleam",runtime:"BEAM",packageManager:"Gleam"},priority:30,intelligence:"high"},"bunfig.toml":{frameworks:["Bun"],slots:{runtime:"Bun",packageManager:"Bun",buildTool:"Bun"},priority:30,intelligence:"high"},"mise.toml":{frameworks:["mise"],slots:{},priority:25,intelligence:"high"},".mise.toml":{frameworks:["mise"],slots:{},priority:25,intelligence:"high"},"manifest.toml":{frameworks:["Flox","Nix"],slots:{},priority:25,intelligence:"high",confirmWith:[".flox"]},justfile:{frameworks:["Just"],slots:{buildTool:"Just"},priority:25,intelligence:"high"},".pre-commit-config.yaml":{frameworks:["pre-commit"],slots:{cicd:"pre-commit"},priority:25,intelligence:"high"},"CLAUDE.md":{frameworks:["Claude Code"],slots:{},priority:30,intelligence:"high",confirmWith:[".claude"]}};import{existsSync as j4,readFileSync as iJ,readdirSync as sJ}from"fs";import{join as f2}from"path";var f0={version:1,_doc:"SINGLE SOURCE of Dart/Flutter detection KNOWLEDGE (A+B hybrid, the Truth-is-faf-cli spec). faf-cli imports this directly; faf-python-sdk vendors a synced copy (phase 2); MCPs consume the SDK (phase 3). To bolster Dart/Flutter support — a new state library, server framework, MCP dep — edit THIS file and every engine inherits it. The thin per-language LOGIC (pubspec parse, app-vs-package heuristic, priority branching) lives in code, not here.",flutterDeps:["flutter"],mcpDeps:["dart_mcp","mcp_server","mcp_dart","dart_mcp_server","mcp"],serverFrameworks:[["serverpod","Serverpod"],["dart_frog","Dart Frog"],["conduit","Conduit"],["angel3_framework","Angel3"],["alfred","Alfred"],["shelf","Shelf"]],stateManagement:[["flutter_riverpod","Riverpod"],["hooks_riverpod","Riverpod"],["riverpod","Riverpod"],["flutter_bloc","Bloc"],["bloc","Bloc"],["provider","Provider"],["get","GetX"],["flutter_mobx","MobX"],["mobx","MobX"],["signals","Signals"]],routing:[["go_router","go_router"],["auto_route","auto_route"]]};var rJ=f0.flutterDeps,nJ=f0.mcpDeps,oJ=f0.serverFrameworks,tJ=f0.stateManagement,eJ=f0.routing;function $q($){let Z=new Set,U=!1;for(let X of $.split(`
|
|
215
|
-
`)){if(/^(dependencies|dev_dependencies|dependency_overrides):\s*$/.test(X)){U=!0;continue}if(/^\S/.test(X))U=!1;if(U){let z=X.match(/^\s{2}([a-zA-Z0-9_]+):/);if(z)Z.add(z[1].toLowerCase())}}return Z}function
|
|
213
|
+
`}function TJ($,Z,U,X="project.faf"){OJ(LJ($,"project.html"),G4(Z,U,X),"utf-8")}import{writeFileSync as FJ}from"fs";import{join as KJ}from"path";var Y4="application/vnd.faf+yaml",AJ="https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",NJ=/^[a-zA-Z0-9.-]+\/[a-zA-Z0-9._-]+$/;function V4($){let Z=String($.project?.name??"project").trim();if(Z.includes("/")&&NJ.test(Z))return Z;let U=$.project?.homepage??$.project?.website??$.project?.url,X="local";if(U)try{X=new URL(U).hostname.replace(/^www\./,"").split(".").reverse().join(".")}catch{}let z=Z.replace(/[^a-zA-Z0-9._-]/g,"-").replace(/^-+|-+$/g,"")||"project";return`${X}/${z}`}function wJ($){let Z=String($.project?.goal??$.context??$.project?.name??"MCP server").replace(/\s+/g," ").trim();if(!Z)return"MCP server";return Z.length<=100?Z:Z.slice(0,97).trimEnd()+"..."}function b9($,Z={}){return{faf:Z.fafPointer??"./project.faf",mediaType:Y4,iana:`https://www.iana.org/assignments/media-types/${Y4}`,deterministic:!0,...Z.scoreEndpoint?{scoreEndpoint:Z.scoreEndpoint}:{},generated:$.generated??Z.now??new Date().toISOString()}}function W4($,Z={}){let U={$schema:AJ,name:V4($),version:String($.project?.version??"0.1.0"),description:wJ($)},X=jJ($)??$.project?.name;if(X&&X.length<=100)U.title=X;let z=$.project?.homepage??$.project?.website??$.project?.url;if(z)U.websiteUrl=z;if(Z.remoteUrl)U.remotes=[{type:"streamable-http",url:Z.remoteUrl}];return U._meta={"one.faf/context":b9($,Z)},U}var O4="io.modelcontextprotocol.registry/publisher-provided",B4=4096;function bJ($,Z={}){let U={"one.faf/context":b9($,Z)},X=new TextEncoder().encode(JSON.stringify(U)).length;if(X>B4)throw Error(`publisher-provided _meta is ${X}B — exceeds the registry ${B4}B cap`);return{[O4]:U}}function CJ($){return V4($)}function jJ($){let Z=$.project?.title;if(typeof Z==="string"){let U=Z.trim();if(U&&U.length<=100)return U}return}function SJ($,Z,U={}){let X=W4(Z,U),z=KJ($,"server-card");return FJ(z,JSON.stringify(X,null,2)+`
|
|
214
|
+
`,"utf-8"),z}var R4="faf-interview/1",E0="(terse — 3-4 words)",C9=[{path:"project.name",question:"What is the name of this project?",header:"Name",type:"text",required:!0},{path:"project.goal",question:"What does this project do? (one sentence)",header:"Goal",type:"text",required:!0},{path:"human_context.who",question:`Who is this for? ${E0}`,header:"Who",type:"text",required:!0},{path:"human_context.what",question:`What are they building? ${E0}`,header:"What",type:"text",required:!0},{path:"human_context.why",question:`Why does it exist? ${E0}`,header:"Why",type:"text",required:!0},{path:"human_context.where",question:`Where does it run or ship? ${E0}`,header:"Where",type:"text",required:!0},{path:"human_context.when",question:`When — timeline or stage? ${E0}`,header:"When",type:"text",required:!0},{path:"human_context.how",question:`How is it built or used? ${E0}`,header:"How",type:"text",required:!0}],M4=[{path:"project.main_language",question:"What is the primary programming language?",header:"Language",type:"select",required:!0,options:[{label:"TypeScript",value:"TypeScript",description:"JavaScript with types"},{label:"JavaScript",value:"JavaScript",description:"Vanilla JS or Node.js"},{label:"Python",value:"Python",description:"Python 3.x"},{label:"Rust",value:"Rust",description:"Systems programming"},{label:"Go",value:"Go",description:"Golang"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.frontend",question:"What frontend framework does it use?",header:"Frontend",type:"select",required:!1,options:[{label:"React",value:"React",description:"React.js"},{label:"Vue",value:"Vue",description:"Vue.js"},{label:"Svelte",value:"Svelte",description:"Svelte/SvelteKit"},{label:"Next.js",value:"Next.js",description:"React framework"},{label:"None",value:"None",description:"No frontend"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.backend",question:"What backend framework does it use?",header:"Backend",type:"select",required:!1,options:[{label:"Express",value:"Express",description:"Node.js Express"},{label:"Fastify",value:"Fastify",description:"Node.js Fastify"},{label:"Django",value:"Django",description:"Python Django"},{label:"FastAPI",value:"FastAPI",description:"Python FastAPI"},{label:"None",value:"None",description:"No backend"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.database",question:"What database does it use?",header:"Database",type:"select",required:!1,options:[{label:"PostgreSQL",value:"PostgreSQL",description:"Postgres"},{label:"MySQL",value:"MySQL",description:"MySQL/MariaDB"},{label:"SQLite",value:"SQLite",description:"Embedded SQL"},{label:"MongoDB",value:"MongoDB",description:"Document store"},{label:"None",value:"None",description:"No database"},{label:"Other",value:"Other",description:"Specify manually"}]},{path:"stack.runtime",question:"What runtime does it run on?",header:"Runtime",type:"text",required:!1},{path:"stack.hosting",question:"Where is it hosted or distributed?",header:"Hosting",type:"text",required:!1},{path:"stack.build",question:"What is the build tool?",header:"Build",type:"text",required:!1},{path:"stack.cicd",question:"What CI/CD does it use?",header:"CI/CD",type:"text",required:!1}],g0=[...C9,...M4],P4=new Map(g0.map(($)=>[$.path,$])),EJ=Object.fromEntries(g0.map(($)=>[$.path,$]));function j9($){let Z=P4.get($);if(Z)return Z.question;let U=u0.get($)??y.find((X)=>X.canonical===$);return U?`${U.description}?`.replace(/\?\?$/,"?"):`${$}?`}function gJ($,Z){return g0.filter((U)=>{let X=U.path.split("."),z=$;for(let Q of X)if(z&&typeof z==="object"&&Q in z)z=z[Q];else{z=void 0;break}if(z==="slotignored")return!1;return Z(z)})}var fJ=new Set(["developers","development teams","development team","teams","development","cloud platform","web platform","platform","best practices","improve development efficiency","development efficiency","modern development practices","modern development","test-driven development","production/stable","production","stable","app","project","tool"]),yJ=[["npm",/\bnpm\b/i],["PyPI",/\bpypi\b/i],["crates.io",/\bcrates\.io\b/i],["Homebrew",/\bhomebrew\b/i],["Docker",/\bdocker\b/i],["Cloudflare",/\bcloudflare\b/i],["Vercel",/\bvercel\b/i],["Netlify",/\bnetlify\b/i],["AWS",/\baws\b/i],["Cloud Run",/\bcloud run\b/i],["edge",/\bedge\b/i],["browser",/\bbrowser\b/i],["WASM",/\bwasm\b/i],["GitHub",/\bgithub\b/i],["MCP Registry",/\bmcp registry\b/i],["Chrome Web Store",/\bchrome web store\b/i],["Smithery",/\bsmithery\b/i]],L4=($)=>fJ.has($.toLowerCase().trim()),xJ=/^(?:with|and|or|using|for|to|that|who|whom|whose|the|a|an|in|on|of|via|by|&)$/i;function _4($,Z=5){let U=$.trim().split(/\s+/).filter(Boolean).slice(0,Z);while(U.length&&xJ.test(U[U.length-1].replace(/[.,;:]+$/,"")))U.pop();return U.join(" ")}function T4($){let Z={};if(!$||typeof $!=="string")return Z;let U=$.trim(),X=U.replace(/^[^A-Za-z0-9]+/,"").split(/\s+(?:for|that|which|to)\s+|\s+[—–]\s+|\s-\s|:\s|\.\s|,\s/)[0].trim(),z=_4(X);if(z.split(/\s+/).filter(Boolean).length>=2&&!L4(z))Z.what=z;let Q=yJ.filter(([,q])=>q.test(U)).map(([q])=>q);if(Q.length)Z.where=Q.slice(0,4).join(", ");let J=U.match(/\bfor ((?:[A-Za-z][\w./+-]* )?(?:any |all )?(?:developers?|teams?|engineers?|builders?|users?|integrators?)\b[^.,;:—]*)/i),H=_4((J?.[1]||"").trim().replace(/\s+/g," "));if(H&&!L4(H))Z.who=H;return Z}function D4($,Z){let U=$;for(let X of Z.split("."))if(U&&typeof U==="object"&&X in U)U=U[X];else return;return U}function I4($){if(typeof $!=="string")return!1;let Z=$.trim();if(!Z||Z==="slotignored")return!1;return!H0(Z)}function hJ($,Z={}){let U=$&&typeof $==="object"?$:{},X=D4(U,"project.goal"),z=(I4(X)?String(X).trim():"")||(Z.goal??"").trim(),Q=T4(z),J=Z.detailed??{},H={"project.goal":z||void 0,"human_context.what":Q.what,"human_context.where":Q.where,"human_context.who":Q.who},q=(O)=>{let _=H[O];if(_)return{value:_,source:"project goal",confidence:0.9};let B=O.startsWith("human_context.")?O.slice(14):"",L=B?J[B]:void 0;return L?{value:L.value,source:L.source,confidence:L.confidence}:void 0},G=C9.map((O,_)=>{let B={n:_+1,path:O.path,header:O.header,question:O.question},L=D4(U,O.path);if(I4(L))return{...B,value:String(L).trim(),status:"filled",seeded:!1};let I=q(O.path);if(I)return{...B,value:I.value,status:"seeded",seeded:!0,source:I.source,confidence:I.confidence};return{...B,value:"",status:"empty",seeded:!1}}),W=G.filter((O)=>O.status==="filled").length,Y=G.filter((O)=>O.status==="seeded").length,V=G.filter((O)=>O.status==="empty").length;return{version:R4,rows:G,filledCount:W,seededCount:Y,emptyCount:V,complete:V===0}}function H2($){if($===null||$===void 0)return!0;if(typeof $==="string"){let Z=$.trim();return Z===""||H0(Z)}return!1}function uJ($,Z){let U=$;for(let X of Z.split("."))if(U&&typeof U==="object"&&X in U)U=U[X];else return;return U}function F4($){if($==="project.goal")return!0;return u0.get($)?.category==="human"}function K4($,Z=H2){let U=[],X=[];for(let z of g0){let Q=uJ($,z.path);if(Q==="slotignored")continue;if(!Z(Q))continue;(F4(z.path)?U:X).push(z.path)}return{human:U,sourceable:X}}function A4($,Z,U=H2){let X=K4(Z,U),z;if($>=100||X.human.length===0&&X.sourceable.length===0)z="done";else if(X.sourceable.length>0)z="can-source";else z="needs-human";let Q=z==="needs-human"?S9(X):[];return{status:z,score:$,gaps:X,ask:Q}}function S9($){return $.human.map((Z)=>({path:Z,question:j9(Z)}))}function kJ($,Z={}){let U=Math.max(1,Z.maxRounds??5),X=Z.isEmpty??H2,z=[],Q=0;for(let H=0;H<=U;H++){let q=$.read();if(!q)return{status:"no-faf",score:0,rounds:Q,history:z,ask:[]};let G=$.score(q.yaml);z.push(G);let W=A4(G,q.data,X);if(W.status==="done")return{status:"done",score:G,rounds:Q,history:z,ask:[]};if(W.status==="needs-human")return{status:"needs-human",score:G,rounds:Q,history:z,ask:W.ask};if(z.length>=2&&G<=z[z.length-2])return W.gaps.human.length?{status:"needs-human",score:G,rounds:Q,history:z,ask:S9(W.gaps)}:{status:"stuck",score:G,rounds:Q,history:z,ask:[]};if(Q>=U)return{status:"capped",score:G,rounds:Q,history:z,ask:S9(W.gaps)};$.runAuto(),Q++}return{status:"capped",score:z[z.length-1]??0,rounds:Q,history:z,ask:[]}}import{createHash as w4}from"crypto";var E9="faf-bench/1",vJ={"project.name":"What is the project's name?","project.goal":"What is the project's goal — what is it for?","project.main_language":"What is the primary programming language?","human_context.who":"Who is this project for?","human_context.what":"What are they building?","human_context.why":"Why does this project exist?","human_context.where":"Where does it run or get distributed?","human_context.when":"When — what is the project's timeline or stage?","human_context.how":"How is it built or used?"};function mJ($,Z){return vJ[$]??`What is the project's ${Z.replace(/\s*\(.*\)$/,"").toLowerCase()}?`}var b4=[["typescript","ts"],["javascript","js"],["python","py","python3"],["node","nodejs","node js","node.js"],["github actions","gh actions","actions"],["postgresql","postgres","pg"],["kubernetes","k8s"],["npm","npm registry"],["cloudflare workers","cf workers","workers"],["google cloud run","cloud run","gcp cloud run"]],W$=new Map;b4.forEach(($,Z)=>$.forEach((U)=>W$.set(U,Z)));var pJ=new Set(["a","an","the","and","or","of","for","to","in","on","with","is","it","its","their","your","via","by","using","use","used"]);function q2($){return $.toLowerCase().replace(/[^a-z0-9\s.+#-]/g," ").replace(/\.(?=\s|$)/g," ").replace(/\s+/g," ").trim()}function N4($){return q2($).split(" ").filter((Z)=>Z&&!pJ.has(Z))}function C4($,Z){let U=q2($),X=q2(Z);if(!U||!X)return!1;if(U===X)return!0;let z=W$.get(U);if(z!==void 0&&W$.get(X)===z)return!0;let Q=N4($);if(Q.length===0)return!1;let J=new Set(N4(Z));return Q.every((H)=>{if(J.has(H))return!0;let q=W$.get(H);return q!==void 0&&[...J].some((G)=>W$.get(G)===q)})}function lJ($){let Z=_2($),U=V$($),X=[],z={},Q=0;for(let q of y){if(Z.slots[q.path]!=="populated")continue;let G=d9(U,q);if(typeof G!=="string")continue;let W=G.trim();if(!W||_$.has(W.toLowerCase()))continue;Q+=1,X.push({n:Q,path:q.path,question:mJ(q.path,q.description)}),z[Q]=W}let J=JSON.stringify({v:E9,q:X.map((q)=>[q.path,q.question])}),H=w4("sha256").update(J).digest("hex").slice(0,12);return{version:E9,qsetHash:H,questions:X,answers:z}}function dJ($){return{version:$.version,qsetHash:$.qsetHash,questions:$.questions}}function cJ($,Z){let U=$.questions.map((z)=>{let Q=Z[String(z.n)]??Z[z.path]??"";return{n:z.n,path:z.path,ok:typeof Q==="string"&&Q.trim()!==""&&C4($.answers[z.n],Q)}}),X=$.questions.filter((z)=>!U[z.n-1].ok);return{correct:U.filter((z)=>z.ok).length,total:$.questions.length,misses:X,perQuestion:U}}function aJ($,Z){let U=JSON.stringify({v:$.version,repo:Z??null,qset:$.qsetHash,protocol:$.protocol,cold:$.cold??null,faf:$.faf??null});return{projection:U,hash:w4("sha256").update(U).digest("hex")}}import{existsSync as UH,readdirSync as S4,readFileSync as XH}from"fs";import{join as y9,dirname as zH,extname as QH,resolve as JH}from"path";var g9={"package.json":{frameworks:["Node.js","JavaScript","TypeScript"],slots:{packageManager:"npm/yarn/pnpm",mainLanguage:"JavaScript/TypeScript"},priority:35,intelligence:"ultra-high"},"README.md":{frameworks:[],slots:{targetUser:"developers",coreProblem:"understanding project",missionPurpose:"project documentation"},priority:25,intelligence:"high"},"requirements.txt":{frameworks:["Python"],slots:{packageManager:"pip",mainLanguage:"Python"},priority:35,intelligence:"ultra-high"},Pipfile:{frameworks:["Python"],slots:{packageManager:"pipenv",mainLanguage:"Python"},priority:35,intelligence:"ultra-high"},"pyproject.toml":{frameworks:["Python"],slots:{mainLanguage:"Python",runtime:"Python",backend:"Python"},priority:36,intelligence:"ultra-high"},Gemfile:{frameworks:["Ruby","Rails"],slots:{packageManager:"bundler",mainLanguage:"Ruby"},priority:35,intelligence:"ultra-high"},"composer.json":{frameworks:["PHP","Laravel","Symfony"],slots:{packageManager:"composer",mainLanguage:"PHP"},priority:35,intelligence:"ultra-high"},"Cargo.toml":{frameworks:["Rust"],slots:{packageManager:"cargo",mainLanguage:"Rust",buildTool:"cargo"},priority:36,intelligence:"ultra-high"},"go.mod":{frameworks:["Go"],slots:{packageManager:"go modules",mainLanguage:"Go",buildTool:"go build"},priority:36,intelligence:"ultra-high"},"pubspec.yaml":{frameworks:["Dart"],slots:{packageManager:"pub",mainLanguage:"Dart"},priority:35,intelligence:"ultra-high"},"pom.xml":{frameworks:["Java","Spring","Maven"],slots:{packageManager:"maven",mainLanguage:"Java",buildTool:"maven"},priority:35,intelligence:"ultra-high"},"build.gradle":{frameworks:["Java","Kotlin","Spring","Gradle"],slots:{packageManager:"gradle",mainLanguage:"Java/Kotlin",buildTool:"gradle"},priority:35,intelligence:"ultra-high"},"next.config.js":{frameworks:["Next.js"],slots:{framework:"Next.js",runtime:"Node.js",buildTool:"Next.js",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"next.config.mjs":{frameworks:["Next.js"],slots:{framework:"Next.js",runtime:"Node.js",buildTool:"Next.js",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"next.config.ts":{frameworks:["Next.js 13+"],slots:{framework:"Next.js 13+",runtime:"Node.js",buildTool:"Next.js",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"nuxt.config.js":{frameworks:["Nuxt 2"],slots:{framework:"Nuxt 2",runtime:"Node.js",buildTool:"Nuxt",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"nuxt.config.ts":{frameworks:["Nuxt 3"],slots:{framework:"Nuxt 3",runtime:"Node.js",buildTool:"Nuxt",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"svelte.config.js":{frameworks:["SvelteKit"],slots:{framework:"SvelteKit",buildTool:"Vite",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"angular.json":{frameworks:["Angular"],slots:{framework:"Angular",buildTool:"Angular CLI",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"manifest.json":{frameworks:["Chrome Extension","Browser Extension"],slots:{framework:"Chrome Extension",runtime:"Chrome/Browser",mainLanguage:"JavaScript",hosting:"Chrome Web Store",apiType:"Chrome APIs"},priority:35,intelligence:"ultra-high",confirmWith:["popup.html","background.js","content.js"]},"vue.config.js":{frameworks:["Vue"],slots:{framework:"Vue",buildTool:"Vue CLI",mainLanguage:"JavaScript"},priority:30,intelligence:"high"},"remix.config.js":{frameworks:["Remix"],slots:{framework:"Remix",runtime:"Node.js",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"gatsby-config.js":{frameworks:["Gatsby"],slots:{framework:"Gatsby",buildTool:"Gatsby",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"gatsby-config.ts":{frameworks:["Gatsby"],slots:{framework:"Gatsby",buildTool:"Gatsby",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"astro.config.mjs":{frameworks:["Astro"],slots:{framework:"Astro",buildTool:"Vite",mainLanguage:"JavaScript",server:"Node.js"},priority:30,intelligence:"high"},"redwood.toml":{frameworks:["RedwoodJS"],slots:{framework:"RedwoodJS",buildTool:"Webpack",mainLanguage:"JavaScript/TypeScript",server:"Node.js",database:"Prisma"},priority:30,intelligence:"high"},"blitz.config.ts":{frameworks:["Blitz.js"],slots:{framework:"Blitz.js",buildTool:"Next.js",mainLanguage:"TypeScript",server:"Node.js",database:"Prisma"},priority:30,intelligence:"high"},"qwik.config.ts":{frameworks:["Qwik"],slots:{framework:"Qwik",buildTool:"Vite",mainLanguage:"TypeScript",server:"Node.js"},priority:30,intelligence:"high"},"manage.py":{frameworks:["Django"],slots:{framework:"Django",backend:"Django",mainLanguage:"Python",server:"Django",apiType:"Django Views"},priority:30,intelligence:"high"},artisan:{frameworks:["Laravel"],slots:{framework:"Laravel",backend:"Laravel",mainLanguage:"PHP",server:"PHP",apiType:"Laravel Routes"},priority:30,intelligence:"high"},"mix.exs":{frameworks:["Phoenix","Elixir"],slots:{framework:"Phoenix",backend:"Phoenix",mainLanguage:"Elixir",server:"BEAM"},priority:30,intelligence:"high"},"nest-cli.json":{frameworks:["NestJS"],slots:{framework:"NestJS",backend:"NestJS",mainLanguage:"TypeScript",server:"Node.js",apiType:"REST API"},priority:30,intelligence:"high"},"strapi.config.js":{frameworks:["Strapi"],slots:{backend:"Strapi",apiType:"REST API",database:"Required",server:"Node.js"},priority:30,intelligence:"high"},Dockerfile:{frameworks:["Docker"],slots:{hosting:"Docker",connection:"Containerized"},priority:30,intelligence:"high"},"docker-compose.yml":{frameworks:["Docker Compose"],slots:{hosting:"Docker",connection:"Multi-container"},priority:30,intelligence:"high"},"docker-compose.yaml":{frameworks:["Docker Compose"],slots:{hosting:"Docker",connection:"Multi-container"},priority:30,intelligence:"high"},"kubernetes.yml":{frameworks:["Kubernetes"],slots:{hosting:"Kubernetes",connection:"Orchestrated"},priority:30,intelligence:"high"},"k8s.yaml":{frameworks:["Kubernetes"],slots:{hosting:"Kubernetes",connection:"Orchestrated"},priority:30,intelligence:"high"},"vercel.json":{frameworks:["Vercel"],slots:{hosting:"Vercel",cicd:"Vercel"},priority:30,intelligence:"high"},"netlify.toml":{frameworks:["Netlify"],slots:{hosting:"Netlify",cicd:"Netlify"},priority:30,intelligence:"high"},"render.yaml":{frameworks:["Render"],slots:{hosting:"Render",cicd:"Render"},priority:30,intelligence:"high"},"fly.toml":{frameworks:["Fly.io"],slots:{hosting:"Fly.io",cicd:"Fly.io"},priority:30,intelligence:"high"},"railway.json":{frameworks:["Railway"],slots:{hosting:"Railway",cicd:"Railway"},priority:30,intelligence:"high"},"railway.toml":{frameworks:["Railway"],slots:{hosting:"Railway",cicd:"Railway"},priority:30,intelligence:"high"},"app.yaml":{frameworks:["Google App Engine"],slots:{hosting:"Google Cloud",cicd:"Google Cloud"},priority:30,intelligence:"high"},Procfile:{frameworks:["Heroku"],slots:{hosting:"Heroku",cicd:"Heroku"},priority:30,intelligence:"high"},"vite.config.js":{frameworks:["Vite"],slots:{buildTool:"Vite"},priority:25,intelligence:"medium"},"vite.config.ts":{frameworks:["Vite"],slots:{buildTool:"Vite",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"webpack.config.js":{frameworks:["Webpack"],slots:{buildTool:"Webpack"},priority:25,intelligence:"medium"},"rollup.config.js":{frameworks:["Rollup"],slots:{buildTool:"Rollup"},priority:25,intelligence:"medium"},"esbuild.config.js":{frameworks:["esbuild"],slots:{buildTool:"esbuild"},priority:25,intelligence:"medium"},"parcel.config.js":{frameworks:["Parcel"],slots:{buildTool:"Parcel"},priority:25,intelligence:"medium"},"snowpack.config.js":{frameworks:["Snowpack"],slots:{buildTool:"Snowpack"},priority:25,intelligence:"medium"},"tsconfig.json":{frameworks:["TypeScript"],slots:{mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"jsconfig.json":{frameworks:["JavaScript"],slots:{mainLanguage:"JavaScript"},priority:20,intelligence:"medium"},"babel.config.js":{frameworks:["Babel"],slots:{buildTool:"Babel"},priority:20,intelligence:"medium"},".babelrc":{frameworks:["Babel"],slots:{buildTool:"Babel"},priority:20,intelligence:"medium"},"jest.config.js":{frameworks:["Jest"],slots:{cicd:"Jest"},priority:25,intelligence:"medium"},"jest.config.ts":{frameworks:["Jest"],slots:{cicd:"Jest",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"vitest.config.ts":{frameworks:["Vitest"],slots:{cicd:"Vitest",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"cypress.config.js":{frameworks:["Cypress"],slots:{cicd:"Cypress"},priority:25,intelligence:"medium"},"playwright.config.ts":{frameworks:["Playwright"],slots:{cicd:"Playwright",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"karma.conf.js":{frameworks:["Karma"],slots:{cicd:"Karma"},priority:20,intelligence:"medium"},"mocha.opts":{frameworks:["Mocha"],slots:{cicd:"Mocha"},priority:20,intelligence:"medium"},".rspec":{frameworks:["RSpec"],slots:{cicd:"RSpec",mainLanguage:"Ruby"},priority:25,intelligence:"medium"},"pytest.ini":{frameworks:["Pytest"],slots:{cicd:"Pytest",mainLanguage:"Python"},priority:25,intelligence:"medium"},"phpunit.xml":{frameworks:["PHPUnit"],slots:{cicd:"PHPUnit",mainLanguage:"PHP"},priority:25,intelligence:"medium"},"schema.prisma":{frameworks:["Prisma"],slots:{database:"Prisma ORM",connection:"Prisma"},priority:25,intelligence:"medium"},"drizzle.config.ts":{frameworks:["Drizzle"],slots:{database:"Drizzle ORM",connection:"Drizzle",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"ormconfig.js":{frameworks:["TypeORM"],slots:{database:"TypeORM",connection:"TypeORM"},priority:25,intelligence:"medium"},"knexfile.js":{frameworks:["Knex.js"],slots:{database:"Knex.js",connection:"Knex.js"},priority:25,intelligence:"medium"},"sequelize.config.js":{frameworks:["Sequelize"],slots:{database:"Sequelize",connection:"Sequelize"},priority:25,intelligence:"medium"},"alembic.ini":{frameworks:["Alembic"],slots:{database:"Alembic",mainLanguage:"Python"},priority:25,intelligence:"medium"},".github/workflows":{frameworks:["GitHub Actions"],slots:{cicd:"GitHub Actions"},priority:25,intelligence:"medium"},".gitlab-ci.yml":{frameworks:["GitLab CI"],slots:{cicd:"GitLab CI"},priority:25,intelligence:"medium"},Jenkinsfile:{frameworks:["Jenkins"],slots:{cicd:"Jenkins"},priority:25,intelligence:"medium"},".circleci/config.yml":{frameworks:["CircleCI"],slots:{cicd:"CircleCI"},priority:25,intelligence:"medium"},".travis.yml":{frameworks:["Travis CI"],slots:{cicd:"Travis CI"},priority:25,intelligence:"medium"},"azure-pipelines.yml":{frameworks:["Azure DevOps"],slots:{cicd:"Azure DevOps"},priority:25,intelligence:"medium"},"bitbucket-pipelines.yml":{frameworks:["Bitbucket Pipelines"],slots:{cicd:"Bitbucket Pipelines"},priority:25,intelligence:"medium"},"tailwind.config.js":{frameworks:["Tailwind CSS"],slots:{cssFramework:"Tailwind CSS"},priority:20,intelligence:"medium"},"tailwind.config.ts":{frameworks:["Tailwind CSS"],slots:{cssFramework:"Tailwind CSS",mainLanguage:"TypeScript"},priority:20,intelligence:"medium"},"postcss.config.js":{frameworks:["PostCSS"],slots:{cssFramework:"PostCSS"},priority:20,intelligence:"medium"},"uno.config.ts":{frameworks:["UnoCSS"],slots:{cssFramework:"UnoCSS",mainLanguage:"TypeScript"},priority:20,intelligence:"medium"},"styled-components.config.js":{frameworks:["styled-components"],slots:{cssFramework:"styled-components",uiLibrary:"styled-components"},priority:20,intelligence:"medium"},"emotion.config.js":{frameworks:["Emotion"],slots:{cssFramework:"Emotion",uiLibrary:"Emotion"},priority:20,intelligence:"medium"},"metro.config.js":{frameworks:["React Native"],slots:{framework:"React Native",mainLanguage:"JavaScript"},priority:25,intelligence:"medium"},"expo.config.js":{frameworks:["Expo"],slots:{framework:"React Native",buildTool:"Expo"},priority:25,intelligence:"medium"},"app.json":{frameworks:["React Native","Expo"],slots:{framework:"React Native"},priority:20,intelligence:"medium",confirmWith:["expo"]},"capacitor.config.ts":{frameworks:["Capacitor"],slots:{framework:"Capacitor",mainLanguage:"TypeScript"},priority:25,intelligence:"medium"},"ionic.config.json":{frameworks:["Ionic"],slots:{framework:"Ionic",uiLibrary:"Ionic"},priority:25,intelligence:"medium"},"nx.json":{frameworks:["Nx"],slots:{buildTool:"Nx"},priority:25,intelligence:"medium"},"turbo.json":{frameworks:["Turborepo"],slots:{buildTool:"Turborepo"},priority:25,intelligence:"medium"},"lerna.json":{frameworks:["Lerna"],slots:{buildTool:"Lerna"},priority:25,intelligence:"medium"},"rush.json":{frameworks:["Rush"],slots:{buildTool:"Rush"},priority:25,intelligence:"medium"},"pnpm-workspace.yaml":{frameworks:["pnpm workspaces"],slots:{packageManager:"pnpm",buildTool:"pnpm workspaces"},priority:25,intelligence:"medium"},"*.svelte":{frameworks:["Svelte","SvelteKit"],slots:{framework:"Svelte"},priority:15,intelligence:"low"},"*.vue":{frameworks:["Vue"],slots:{framework:"Vue"},priority:15,intelligence:"low"},"*.jsx":{frameworks:["React"],slots:{framework:"React",mainLanguage:"JavaScript"},priority:15,intelligence:"low"},"*.ts":{frameworks:["TypeScript"],slots:{mainLanguage:"TypeScript"},priority:15,intelligence:"low"},"*.tsx":{frameworks:["React","TypeScript"],slots:{framework:"React",mainLanguage:"TypeScript"},priority:15,intelligence:"low"},"*.py":{frameworks:["Python"],slots:{mainLanguage:"Python"},priority:15,intelligence:"low"},"*.rb":{frameworks:["Ruby"],slots:{mainLanguage:"Ruby"},priority:15,intelligence:"low"},"*.php":{frameworks:["PHP"],slots:{mainLanguage:"PHP"},priority:15,intelligence:"low"},"*.java":{frameworks:["Java"],slots:{mainLanguage:"Java"},priority:15,intelligence:"low"},"*.kt":{frameworks:["Kotlin"],slots:{mainLanguage:"Kotlin"},priority:15,intelligence:"low"},"*.swift":{frameworks:["Swift"],slots:{mainLanguage:"Swift"},priority:15,intelligence:"low"},"*.go":{frameworks:["Go"],slots:{mainLanguage:"Go"},priority:15,intelligence:"low"},"*.rs":{frameworks:["Rust"],slots:{mainLanguage:"Rust"},priority:15,intelligence:"low"},"*.dart":{frameworks:["Flutter","Dart"],slots:{mainLanguage:"Dart"},priority:15,intelligence:"low"},"*.ex":{frameworks:["Elixir"],slots:{mainLanguage:"Elixir"},priority:15,intelligence:"low"},"*.exs":{frameworks:["Elixir"],slots:{mainLanguage:"Elixir"},priority:15,intelligence:"low"},"*.scala":{frameworks:["Scala"],slots:{mainLanguage:"Scala"},priority:15,intelligence:"low"},"*.clj":{frameworks:["Clojure"],slots:{mainLanguage:"Clojure"},priority:15,intelligence:"low"},"*.lua":{frameworks:["Lua"],slots:{mainLanguage:"Lua"},priority:15,intelligence:"low"},"*.r":{frameworks:["R"],slots:{mainLanguage:"R"},priority:15,intelligence:"low"},"*.R":{frameworks:["R"],slots:{mainLanguage:"R"},priority:15,intelligence:"low"},"*.jl":{frameworks:["Julia"],slots:{mainLanguage:"Julia"},priority:15,intelligence:"low"},"*.nim":{frameworks:["Nim"],slots:{mainLanguage:"Nim"},priority:15,intelligence:"low"},"*.zig":{frameworks:["Zig"],slots:{mainLanguage:"Zig"},priority:15,intelligence:"low"},"build.zig":{frameworks:["Zig"],slots:{packageManager:"Zig Package Manager",mainLanguage:"Zig",buildTool:"zig build",framework:"Zig",build:"zig build"},priority:35,intelligence:"ultra-high"},"openapi.json":{frameworks:["OpenAPI"],slots:{apiType:"REST API",backend:"API Server"},priority:30,intelligence:"high"},"openapi.yaml":{frameworks:["OpenAPI"],slots:{apiType:"REST API",backend:"API Server"},priority:30,intelligence:"high"},"swagger.json":{frameworks:["Swagger"],slots:{apiType:"REST API",backend:"API Server"},priority:30,intelligence:"high"},"graphql.schema":{frameworks:["GraphQL"],slots:{apiType:"GraphQL",backend:"GraphQL Server"},priority:30,intelligence:"high"},"schema.graphql":{frameworks:["GraphQL"],slots:{apiType:"GraphQL",backend:"GraphQL Server"},priority:30,intelligence:"high"},".graphqlconfig":{frameworks:["GraphQL"],slots:{apiType:"GraphQL"},priority:25,intelligence:"medium"},"redux.config.js":{frameworks:["Redux"],slots:{stateManagement:"Redux"},priority:20,intelligence:"medium"},"mobx.config.js":{frameworks:["MobX"],slots:{stateManagement:"MobX"},priority:20,intelligence:"medium"},"vuex.config.js":{frameworks:["Vuex"],slots:{stateManagement:"Vuex",framework:"Vue"},priority:20,intelligence:"medium"},"pinia.config.js":{frameworks:["Pinia"],slots:{stateManagement:"Pinia",framework:"Vue"},priority:20,intelligence:"medium"},"zustand.config.js":{frameworks:["Zustand"],slots:{stateManagement:"Zustand"},priority:20,intelligence:"medium"},".eslintrc.js":{frameworks:["ESLint"],slots:{},priority:15,intelligence:"low"},".eslintrc.json":{frameworks:["ESLint"],slots:{},priority:15,intelligence:"low"},".prettierrc":{frameworks:["Prettier"],slots:{},priority:15,intelligence:"low"},".prettierrc.json":{frameworks:["Prettier"],slots:{},priority:15,intelligence:"low"},"biome.json":{frameworks:["Biome"],slots:{},priority:15,intelligence:"low"},".editorconfig":{frameworks:["EditorConfig"],slots:{},priority:10,intelligence:"low"},"serverless.yml":{frameworks:["Serverless Framework"],slots:{hosting:"AWS Lambda/Azure/GCP",backend:"Serverless",apiType:"API Gateway"},priority:30,intelligence:"high"},"serverless.yaml":{frameworks:["Serverless Framework"],slots:{hosting:"AWS Lambda/Azure/GCP",backend:"Serverless",apiType:"API Gateway"},priority:30,intelligence:"high"},"sam.yaml":{frameworks:["AWS SAM"],slots:{hosting:"AWS Lambda",backend:"AWS SAM",cicd:"AWS SAM CLI"},priority:30,intelligence:"high"},"template.yaml":{frameworks:["AWS SAM","CloudFormation"],slots:{hosting:"AWS",backend:"AWS SAM/CloudFormation",cicd:"AWS"},priority:25,intelligence:"medium",confirmWith:["samconfig.toml"]},"amplify.yml":{frameworks:["AWS Amplify"],slots:{hosting:"AWS Amplify",backend:"AWS Amplify",cicd:"AWS Amplify"},priority:30,intelligence:"high"},Podfile:{frameworks:["CocoaPods","iOS"],slots:{packageManager:"CocoaPods",mainLanguage:"Swift/Objective-C",framework:"iOS Native"},priority:30,intelligence:"high"},"build.gradle.kts":{frameworks:["Gradle Kotlin DSL","Android","Kotlin"],slots:{packageManager:"Gradle",mainLanguage:"Kotlin",buildTool:"Gradle Kotlin DSL",framework:"Android"},priority:30,intelligence:"high"},"*.ipynb":{frameworks:["Jupyter","Python"],slots:{mainLanguage:"Python",framework:"Jupyter Notebook"},priority:30,intelligence:"high"},MLproject:{frameworks:["MLflow"],slots:{mainLanguage:"Python",framework:"MLflow",backend:"MLflow",cicd:"MLflow"},priority:30,intelligence:"high"},"dvc.yaml":{frameworks:["DVC","Data Version Control"],slots:{mainLanguage:"Python",framework:"DVC",cicd:"DVC Pipelines"},priority:30,intelligence:"high"},"dvc.lock":{frameworks:["DVC"],slots:{framework:"DVC"},priority:20,intelligence:"medium"},"wrangler.toml":{frameworks:["Cloudflare Workers","Cloudflare"],slots:{hosting:"Cloudflare Workers",backend:"Cloudflare Workers",runtime:"V8 Isolates"},priority:30,intelligence:"high"},"deno.json":{frameworks:["Deno"],slots:{runtime:"Deno",mainLanguage:"TypeScript",packageManager:"Deno"},priority:30,intelligence:"high"},"bun.lockb":{frameworks:["Bun"],slots:{runtime:"Bun",packageManager:"Bun",mainLanguage:"TypeScript/JavaScript"},priority:30,intelligence:"high"},"codecov.yml":{frameworks:["Codecov"],slots:{cicd:"Codecov"},priority:25,intelligence:"high"},"dependabot.yml":{frameworks:["Dependabot","GitHub"],slots:{cicd:"Dependabot"},priority:25,intelligence:"high"},"renovate.json":{frameworks:["Renovate"],slots:{cicd:"Renovate"},priority:25,intelligence:"high"},Makefile:{frameworks:["Make","GNU Make"],slots:{buildTool:"Make"},priority:30,intelligence:"high"},"CMakeLists.txt":{frameworks:["CMake","C","C++"],slots:{buildTool:"CMake",mainLanguage:"C/C++"},priority:30,intelligence:"high"},"meson.build":{frameworks:["Meson","C","C++"],slots:{buildTool:"Meson",mainLanguage:"C/C++"},priority:30,intelligence:"high"},"*.c":{frameworks:["C"],slots:{mainLanguage:"C"},priority:30,intelligence:"high"},"*.cpp":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:30,intelligence:"high"},"*.cc":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:30,intelligence:"high"},"*.cxx":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:25,intelligence:"high"},"*.h":{frameworks:["C","C++"],slots:{mainLanguage:"C/C++"},priority:25,intelligence:"high"},"*.hpp":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:25,intelligence:"high"},"*.hxx":{frameworks:["C++"],slots:{mainLanguage:"C++"},priority:20,intelligence:"medium"},".env":{frameworks:[],slots:{},priority:20,intelligence:"medium"},".env.example":{frameworks:[],slots:{},priority:25,intelligence:"high"},".env.local":{frameworks:[],slots:{},priority:20,intelligence:"medium"},".env.development":{frameworks:[],slots:{},priority:20,intelligence:"medium"},".env.production":{frameworks:[],slots:{},priority:20,intelligence:"medium"},"skaffold.yaml":{frameworks:["Skaffold","Kubernetes"],slots:{hosting:"Kubernetes",cicd:"Skaffold"},priority:30,intelligence:"high"},"Chart.yaml":{frameworks:["Helm","Kubernetes"],slots:{hosting:"Kubernetes",backend:"Helm"},priority:30,intelligence:"high"},"values.yaml":{frameworks:["Helm","Kubernetes"],slots:{hosting:"Kubernetes"},priority:25,intelligence:"high",confirmWith:["Chart.yaml"]},"pulumi.yaml":{frameworks:["Pulumi"],slots:{hosting:"Cloud",cicd:"Pulumi"},priority:30,intelligence:"high"},"Pulumi.yaml":{frameworks:["Pulumi"],slots:{hosting:"Cloud",cicd:"Pulumi"},priority:30,intelligence:"high"},"terragrunt.hcl":{frameworks:["Terragrunt","Terraform"],slots:{hosting:"Cloud",cicd:"Terragrunt"},priority:30,intelligence:"high"},"ansible.yml":{frameworks:["Ansible"],slots:{cicd:"Ansible"},priority:30,intelligence:"high"},"playbook.yml":{frameworks:["Ansible"],slots:{cicd:"Ansible"},priority:25,intelligence:"high"},"*.cs":{frameworks:["C#",".NET","Unity"],slots:{mainLanguage:"C#"},priority:30,intelligence:"high"},"*.m":{frameworks:["Objective-C","iOS"],slots:{mainLanguage:"Objective-C"},priority:25,intelligence:"high"},".nvmrc":{frameworks:["Node.js","nvm"],slots:{runtime:"Node.js"},priority:25,intelligence:"high"},".tool-versions":{frameworks:["asdf"],slots:{},priority:25,intelligence:"high"},".ruby-version":{frameworks:["Ruby","rbenv"],slots:{mainLanguage:"Ruby",runtime:"Ruby"},priority:25,intelligence:"high"},".python-version":{frameworks:["Python","pyenv"],slots:{mainLanguage:"Python",runtime:"Python"},priority:25,intelligence:"high"},".dockerignore":{frameworks:["Docker"],slots:{},priority:20,intelligence:"medium"},".gitattributes":{frameworks:["Git"],slots:{},priority:15,intelligence:"low"},".npmrc":{frameworks:["npm","Node.js"],slots:{packageManager:"npm"},priority:20,intelligence:"medium"},"sonar-project.properties":{frameworks:["SonarQube","SonarCloud"],slots:{cicd:"SonarQube"},priority:25,intelligence:"high"},"*.fs":{frameworks:["F#",".NET"],slots:{mainLanguage:"F#"},priority:25,intelligence:"high"},"*.mm":{frameworks:["Objective-C++","iOS","macOS"],slots:{mainLanguage:"Objective-C++"},priority:25,intelligence:"high"},"build.zig.zon":{frameworks:["Zig"],slots:{mainLanguage:"Zig",packageManager:"Zig Package Manager",buildTool:"zig build"},priority:35,intelligence:"ultra-high"},"gleam.toml":{frameworks:["Gleam","BEAM","Erlang"],slots:{mainLanguage:"Gleam",runtime:"BEAM",packageManager:"Gleam"},priority:30,intelligence:"high"},"bunfig.toml":{frameworks:["Bun"],slots:{runtime:"Bun",packageManager:"Bun",buildTool:"Bun"},priority:30,intelligence:"high"},"mise.toml":{frameworks:["mise"],slots:{},priority:25,intelligence:"high"},".mise.toml":{frameworks:["mise"],slots:{},priority:25,intelligence:"high"},"manifest.toml":{frameworks:["Flox","Nix"],slots:{},priority:25,intelligence:"high",confirmWith:[".flox"]},justfile:{frameworks:["Just"],slots:{buildTool:"Just"},priority:25,intelligence:"high"},".pre-commit-config.yaml":{frameworks:["pre-commit"],slots:{cicd:"pre-commit"},priority:25,intelligence:"high"},"CLAUDE.md":{frameworks:["Claude Code"],slots:{},priority:30,intelligence:"high",confirmWith:[".claude"]}};import{existsSync as j4,readFileSync as sJ,readdirSync as rJ}from"fs";import{join as f9}from"path";var f0={version:1,_doc:"SINGLE SOURCE of Dart/Flutter detection KNOWLEDGE (A+B hybrid, the Truth-is-faf-cli spec). faf-cli imports this directly; faf-python-sdk vendors a synced copy (phase 2); MCPs consume the SDK (phase 3). To bolster Dart/Flutter support — a new state library, server framework, MCP dep — edit THIS file and every engine inherits it. The thin per-language LOGIC (pubspec parse, app-vs-package heuristic, priority branching) lives in code, not here.",flutterDeps:["flutter"],mcpDeps:["dart_mcp","mcp_server","mcp_dart","dart_mcp_server","mcp"],serverFrameworks:[["serverpod","Serverpod"],["dart_frog","Dart Frog"],["conduit","Conduit"],["angel3_framework","Angel3"],["alfred","Alfred"],["shelf","Shelf"]],stateManagement:[["flutter_riverpod","Riverpod"],["hooks_riverpod","Riverpod"],["riverpod","Riverpod"],["flutter_bloc","Bloc"],["bloc","Bloc"],["provider","Provider"],["get","GetX"],["flutter_mobx","MobX"],["mobx","MobX"],["signals","Signals"]],routing:[["go_router","go_router"],["auto_route","auto_route"]]};var nJ=f0.flutterDeps,oJ=f0.mcpDeps,tJ=f0.serverFrameworks,eJ=f0.stateManagement,$H=f0.routing;function ZH($){let Z=new Set,U=!1;for(let X of $.split(`
|
|
215
|
+
`)){if(/^(dependencies|dev_dependencies|dependency_overrides):\s*$/.test(X)){U=!0;continue}if(/^\S/.test(X))U=!1;if(U){let z=X.match(/^\s{2}([a-zA-Z0-9_]+):/);if(z)Z.add(z[1].toLowerCase())}}return Z}function G2($){let Z=f9($,"pubspec.yaml");if(!j4(Z))return null;let U;try{U=sJ(Z,"utf-8")}catch{return null}let X=ZH(U),z=(F)=>X.has(F.toLowerCase()),Q=nJ.some(z)||/^flutter:\s*$/m.test(U)||/\bsdk:\s*flutter\b/.test(U),J=oJ.find(z),H=tJ.find(([F])=>z(F)),q=eJ.find(([F])=>z(F)),G=q?q[1]:"",W=$H.find(([F])=>z(F)),Y=W?W[1]:"",V=z("flutter_test")?"flutter_test":z("test")?"test":"",O=/^executables:\s*$/m.test(U),_=!1;try{_=rJ(f9($,"bin")).some((F)=>F.endsWith(".dart"))}catch{}let B=O||_,L,I="",M;if(Q)if(I="Flutter",j4(f9($,"lib","main.dart"))||/^publish_to:\s*['"]?none\b/m.test(U))L="mobile",M="pubspec.yaml (Flutter app)";else L="library",M="pubspec.yaml (Flutter package)";else if(J)L="mcp",M=`pubspec.yaml + ${J} (Dart MCP server)`;else if(H)L="backend",I=H[1],M=`pubspec.yaml + ${H[0]} (Dart backend)`;else if(B)L="cli",M=O?"pubspec.yaml executables: (Dart CLI)":"pubspec.yaml + bin/*.dart (Dart CLI)";else L="library",M="pubspec.yaml (Dart package)";return{appType:L,isFlutter:Q,framework:I,stateManagement:G,routing:Y,testing:V,found:M}}var HH=new Set(["node_modules",".git","dist","build","venv",".venv","__pycache__","target","coverage",".next",".svelte-kit","vendor"]),qH=new Set([".py",".ts",".tsx",".js",".jsx",".svelte",".vue",".rb",".go",".rs",".php",".java",".kt",".swift"]),GH={mainLanguage:["project","main_language"],main_language:["project","main_language"],framework:["stack","frontend"],cssFramework:["stack","css_framework"],css:["stack","css_framework"],uiLibrary:["stack","ui_library"],ui_library:["stack","ui_library"],stateManagement:["stack","state_management"],state:["stack","state_management"],backend:["stack","backend"],apiType:["stack","api_type"],api:["stack","api_type"],runtime:["stack","runtime"],database:["stack","database"],db:["stack","database"],connection:["stack","connection"],hosting:["stack","hosting"],buildTool:["stack","build"],build_tool:["stack","build"],build:["stack","build"],packageManager:["stack","package_manager"],pkg_manager:["stack","package_manager"],cicd:["stack","cicd"]},YH=[["packageManager","package-manager"],["pkg_manager","package-manager"],["mainLanguage","language"],["main_language","language"],["framework","framework"],["backend","backend"],["database","database"],["db","database"],["cicd","ci-cd"],["hosting","hosting"],["buildTool","build"],["build_tool","build"],["build","build"],["runtime","runtime"],["cssFramework","css"],["css","css"],["uiLibrary","ui-library"],["stateManagement","state-management"],["apiType","api"],["api","api"]];function BH($,Z){for(let[U,X]of YH)if(U in $)return X;return Z.length>0?"framework":"config"}function VH($){try{let Z=JSON.parse(XH($,"utf-8")),U=["background","content_scripts","action","browser_action","permissions"].some((X)=>(X in Z));if(typeof Z.manifest_version==="number"&&U)return"chrome";return"other"}catch{return"other"}}function WH($){let Z=[],U=JH($),X=UH(y9($,".git"));for(let z=0;z<10;z++){let Q;try{Q=S4(U)}catch{break}for(let H of Q){let q=g9[H];if(!q)continue;if(H==="manifest.json"&&VH(y9(U,H))!=="chrome")continue;if(H==="pubspec.yaml"){let G=G2(U);if(G){let W={mainLanguage:"Dart",packageManager:"pub"};if(G.isFlutter){if(W.framework="Flutter",G.stateManagement)W.stateManagement=G.stateManagement}else if(G.appType==="backend"&&G.framework)W.backend=G.framework;else if(G.appType==="mcp")W.apiType="MCP";Z.push({slots:W,priority:q.priority,frameworks:G.isFlutter?["Flutter","Dart"]:["Dart"],fileName:H});continue}}Z.push({slots:q.slots||{},priority:q.priority,frameworks:q.frameworks,fileName:H})}if(X&&z===0)break;let J=zH(U);if(J===U)break;U=J}return Z}function OH($){let Z=[];for(let U of g4($,2,{count:0})){let X=g9[`*${U}`],z=X?.slots?.mainLanguage;if(z)Z.push({slots:{mainLanguage:z},priority:X.priority,frameworks:X.frameworks})}return Z}function E4($){let Z=[...WH($),...OH($)],U={},X={},z=new Set;for(let G of Z){G.frameworks.forEach((W)=>z.add(W));for(let[W,Y]of Object.entries(G.slots))if(Y&&!Y.includes("/")&&(!(W in U)||G.priority>X[W]))U[W]=Y,X[W]=G.priority}let Q=new Map;for(let G of Z){if(!G.fileName)continue;if(!Q.has(G.fileName))Q.set(G.fileName,{fileName:G.fileName,category:BH(G.slots,G.frameworks),priority:G.priority})}let J=[...Q.values()].sort((G,W)=>W.priority-G.priority||G.fileName.localeCompare(W.fileName)),H=[];if(U.mainLanguage)H.push(U.mainLanguage.toLowerCase());if(U.framework)H.push(U.framework.toLowerCase());let q=H.length>0?H.join("-"):"unknown-stack";return{slotFills:U,frameworks:[...z],confirmedCount:Z.length,discoveredFormats:J,stackSignature:q}}function x9($){let{slotFills:Z}=E4($),U={};for(let[X,z]of Object.entries(Z)){let Q=GH[X];if(!Q||!z)continue;let[J,H]=Q;if(J==="project")(U.project??={})[H]=z;else(U.stack??={})[H]=z}return U}function g4($,Z,U){let X=new Set;if(Z<0||U.count>400)return X;let z;try{z=S4($,{withFileTypes:!0})}catch{return X}for(let Q of z){if(U.count++>400)break;if(!Q.isDirectory()){let J=QH(Q.name);if(qH.has(J))X.add(J);continue}if(HH.has(Q.name)||Q.name.startsWith("."))continue;for(let J of g4(y9($,Q.name),Z-1,U))X.add(J)}return X}import{existsSync as f4,readFileSync as y4}from"fs";import{join as x4}from"path";var x=($,Z,U)=>({value:$,source:Z,confidence:U});function h4($){let Z=LH($),U=_H($),X={},z=(Q,J)=>{if(J)X[Q]=J};return z("what",DH(Z,U)),z("who",IH(U)),z("why",RH(U)),z("where",MH(Z,U)),z("when",PH(U)),z("how",TH(Z,U)),X}function h9($){let Z=h4($),U={};return Object.keys(Z).forEach((X)=>{let z=Z[X];if(z)U[X]=z.value}),U}function LH($){let Z=x4($,"package.json");if(!f4(Z))return null;try{return JSON.parse(y4(Z,"utf-8"))}catch{return null}}function _H($){let Z=x4($,"README.md");if(!f4(Z))return"";let U;try{U=y4(Z,"utf-8")}catch{return""}return U.split(`
|
|
216
216
|
`).filter((X)=>!/^\s*\[!\[/.test(X)&&!/^\s*!\[/.test(X)).join(`
|
|
217
|
-
`).replace(/<[^>]+>/g,"").replace(/!\[[^\]]*\]\([^)]*\)/g,"").trim()}function L0($){return $.replace(/\s+/g," ").replace(/[#*`>]/g,"").trim().slice(0,280)}function y0($,Z){let U=new RegExp(`##?\\s+(${Z})\\s*\\n+([\\s\\S]+?)(?:\\n\\n|\\n##?|$)`,"i"),X=$.match(U);return X&&X[2]&&X[2].trim().length>20?{body:L0(X[2]),heading:X[1].trim()}:null}function O$($,Z,U=30){for(let X of Z){let z=$.match(X);if(z&&z[1]&&z[1].trim().length>=U)return L0(z[1])}return null}function _q($,Z){if($?.description&&$.description.length>20)return x(L0($.description),"package.json:description",0.95);let U=y0(Z,"Purpose|What|About|Overview|Description");if(U)return x(U.body,`README:## ${U.heading}`,0.8);let X=Z.split(/\n\s*\n/).map((Q)=>Q.trim()).find((Q)=>Q.length>30&&!Q.startsWith("#"));if(X)return x(L0(X),"README:first-paragraph",0.5);let z=O$(Z,[/(?:core|main|primary)\s+(?:problem|challenge)(?:\s+is)?\s*:?\s*([^.\n]{30,})/i,/solves?\s+(?:the\s+)?(?:problem\s+of\s+)?([^.\n]{30,})/i]);return z?x(z,"README:problem-heuristic",0.6):null}function Dq($){let Z=y0($,"Audience|Who|Who is this for|Who it.s for");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=O$($,[/\b(?:designed|built|made)\s+for\s+((?:[a-z][a-z-]*\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\n]{0,80})/i,/\bfor\s+((?:[a-z][a-z-]*\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\n]{0,80})/i],8);return U?x(U,"README:audience-heuristic",0.6):null}function Iq($){let Z=y0($,"Why|Mission|Motivation|Rationale|Vision");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=O$($,[/(?:our\s+|the\s+)?(?:mission|purpose|goal)\s+is\s+([^.\n]{30,})/i,/\b(?:mission|purpose|goal)\s*:\s*([^.\n]{30,})/i,/(?:built|created|designed)\s+(?:because|to)\s+([^.\n]{30,})/i]);return U?x(U,"README:mission-heuristic",0.6):null}function Rq($,Z){let U=typeof $?.repository==="string"?$.repository:$?.repository?.url;if(U)return x(L0(U.replace(/^git\+/,"").replace(/\.git$/,"")),"package.json:repository",0.95);if($?.homepage)return x(L0($.homepage),"package.json:homepage",0.9);let X=O$(Z,[/\b(?:deployed|hosted|available|published)\s+(?:on|at|via)\s+([^.\n]{3,80})/i],3);return X?x(X,"README:deploy-heuristic",0.6):null}function Mq($){let Z=y0($,"Timeline|Status|Release|Roadmap");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=O$($,[/\b(production\s+since\s+[^.\n]{4,60})/i,/\b((?:in\s+)?(?:production|beta|alpha|development)\s+since\s+[^.\n]{4,60})/i,/\bsince\s+((?:[A-Z][a-z]+\s+)?\d{4}[^.\n]{0,40})/],4);return U?x(U,"README:since-heuristic",0.6):null}function Pq($,Z){let U=$?.scripts?Object.keys($.scripts):[],X=["start","dev","build"].filter((J)=>U.includes(J));if(X.length)return x(L0(X.map((J)=>`npm run ${J}`).join(", ")),"package.json:scripts",0.9);let z=y0(Z,"Usage|Getting Started|Install|Installation|Quick Start");if(z)return x(z.body,`README:## ${z.heading}`,0.8);let Q=y0(Z,"Architecture|Approach|How it works|Methodology|How");return Q?x(Q.body,`README:## ${Q.heading}`,0.7):null}import{existsSync as F,readFileSync as n,readdirSync as k4}from"fs";import{join as P}from"path";var u4=[{name:"Next.js",slug:"nextjs",category:"frontend",signals:[{type:"dependency",key:"next"},{type:"file",pattern:"next.config.*"}]},{name:"React",slug:"react",category:"frontend",signals:[{type:"dependency",key:"react"}]},{name:"SvelteKit",slug:"sveltekit",category:"frontend",signals:[{type:"dependency",key:"@sveltejs/kit"},{type:"file",pattern:"svelte.config.*"}]},{name:"Svelte",slug:"svelte",category:"frontend",signals:[{type:"dependency",key:"svelte"},{type:"devDependency",key:"svelte"}]},{name:"Vue.js",slug:"vue",category:"frontend",signals:[{type:"dependency",key:"vue"}]},{name:"Nuxt",slug:"nuxt",category:"frontend",signals:[{type:"dependency",key:"nuxt"},{type:"file",pattern:"nuxt.config.*"}]},{name:"Angular",slug:"angular",category:"frontend",signals:[{type:"dependency",key:"@angular/core"},{type:"file",pattern:"angular.json"}]},{name:"Astro",slug:"astro",category:"frontend",signals:[{type:"dependency",key:"astro"},{type:"file",pattern:"astro.config.*"}]},{name:"Solid",slug:"solid",category:"frontend",signals:[{type:"dependency",key:"solid-js"}]},{name:"Remix",slug:"remix",category:"frontend",signals:[{type:"dependency",key:"@remix-run/react"}]},{name:"Gatsby",slug:"gatsby",category:"frontend",signals:[{type:"dependency",key:"gatsby"},{type:"file",pattern:"gatsby-config.*"}]},{name:"Qwik",slug:"qwik",category:"frontend",signals:[{type:"dependency",key:"@builder.io/qwik"}]},{name:"Vercel (SvelteKit)",slug:"adapter-vercel",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-vercel"},{type:"devDependency",key:"@sveltejs/adapter-vercel"}]},{name:"Node (SvelteKit)",slug:"adapter-node",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-node"},{type:"devDependency",key:"@sveltejs/adapter-node"}]},{name:"Static (SvelteKit)",slug:"adapter-static",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-static"},{type:"devDependency",key:"@sveltejs/adapter-static"}]},{name:"Cloudflare (SvelteKit)",slug:"adapter-cloudflare",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-cloudflare"},{type:"devDependency",key:"@sveltejs/adapter-cloudflare"}]},{name:"Netlify (SvelteKit)",slug:"adapter-netlify",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-netlify"},{type:"devDependency",key:"@sveltejs/adapter-netlify"}]},{name:"Tailwind CSS",slug:"tailwind",category:"css",signals:[{type:"dependency",key:"tailwindcss"},{type:"devDependency",key:"tailwindcss"},{type:"file",pattern:"tailwind.config.*"}]},{name:"Bootstrap",slug:"bootstrap",category:"css",signals:[{type:"dependency",key:"bootstrap"}]},{name:"Styled Components",slug:"styled-components",category:"css",signals:[{type:"dependency",key:"styled-components"}]},{name:"shadcn/ui",slug:"shadcn",category:"ui",signals:[{type:"file",pattern:"components.json"},{type:"dependency",key:"@radix-ui/react-dialog"}]},{name:"Material UI",slug:"mui",category:"ui",signals:[{type:"dependency",key:"@mui/material"}]},{name:"Chakra UI",slug:"chakra",category:"ui",signals:[{type:"dependency",key:"@chakra-ui/react"}]},{name:"Ant Design",slug:"antd",category:"ui",signals:[{type:"dependency",key:"antd"}]},{name:"Redux",slug:"redux",category:"state",signals:[{type:"dependency",key:"@reduxjs/toolkit"}]},{name:"Zustand",slug:"zustand",category:"state",signals:[{type:"dependency",key:"zustand"}]},{name:"Jotai",slug:"jotai",category:"state",signals:[{type:"dependency",key:"jotai"}]},{name:"Pinia",slug:"pinia",category:"state",signals:[{type:"dependency",key:"pinia"}]},{name:"Express",slug:"express",category:"backend",signals:[{type:"dependency",key:"express"}]},{name:"Fastify",slug:"fastify",category:"backend",signals:[{type:"dependency",key:"fastify"}]},{name:"Hono",slug:"hono",category:"backend",signals:[{type:"dependency",key:"hono"}]},{name:"Elysia",slug:"elysia",category:"backend",signals:[{type:"dependency",key:"elysia"}]},{name:"NestJS",slug:"nestjs",category:"backend",signals:[{type:"dependency",key:"@nestjs/core"}]},{name:"Koa",slug:"koa",category:"backend",signals:[{type:"dependency",key:"koa"}]},{name:"Django",slug:"django",category:"backend",signals:[{type:"file",pattern:"manage.py"},{type:"file",pattern:"settings.py"}]},{name:"Flask",slug:"flask",category:"backend",signals:[{type:"file",pattern:"app.py"}]},{name:"FastAPI",slug:"fastapi",category:"backend",signals:[{type:"file",pattern:"main.py"}]},{name:"Rails",slug:"rails",category:"backend",signals:[{type:"file",pattern:"Gemfile"},{type:"file",pattern:"config/routes.rb"}]},{name:"Spring Boot",slug:"spring",category:"backend",signals:[{type:"file",pattern:"pom.xml"},{type:"file",pattern:"build.gradle"}]},{name:"Prisma",slug:"prisma",category:"database",signals:[{type:"dependency",key:"prisma"},{type:"devDependency",key:"prisma"},{type:"file",pattern:"prisma/schema.prisma"}]},{name:"Drizzle",slug:"drizzle",category:"database",signals:[{type:"dependency",key:"drizzle-orm"},{type:"file",pattern:"drizzle.config.*"}]},{name:"TypeORM",slug:"typeorm",category:"database",signals:[{type:"dependency",key:"typeorm"}]},{name:"Mongoose",slug:"mongoose",category:"database",signals:[{type:"dependency",key:"mongoose"}]},{name:"Vite",slug:"vite",category:"build",signals:[{type:"dependency",key:"vite"},{type:"devDependency",key:"vite"},{type:"file",pattern:"vite.config.*"}]},{name:"webpack",slug:"webpack",category:"build",signals:[{type:"dependency",key:"webpack"},{type:"devDependency",key:"webpack"},{type:"file",pattern:"webpack.config.*"}]},{name:"esbuild",slug:"esbuild",category:"build",signals:[{type:"dependency",key:"esbuild"},{type:"devDependency",key:"esbuild"}]},{name:"Turbopack",slug:"turbopack",category:"build",signals:[{type:"file",pattern:"turbo.json"}]},{name:"Jest",slug:"jest",category:"testing",signals:[{type:"devDependency",key:"jest"},{type:"file",pattern:"jest.config.*"}]},{name:"Vitest",slug:"vitest",category:"testing",signals:[{type:"devDependency",key:"vitest"}]},{name:"Playwright",slug:"playwright",category:"testing",signals:[{type:"devDependency",key:"@playwright/test"},{type:"file",pattern:"playwright.config.*"}]},{name:"Cypress",slug:"cypress",category:"testing",signals:[{type:"devDependency",key:"cypress"},{type:"file",pattern:"cypress.config.*"}]},{name:"Turborepo",slug:"turborepo",category:"monorepo",signals:[{type:"devDependency",key:"turbo"},{type:"file",pattern:"turbo.json"}]},{name:"Nx",slug:"nx",category:"monorepo",signals:[{type:"devDependency",key:"nx"},{type:"file",pattern:"nx.json"}]},{name:"Lerna",slug:"lerna",category:"monorepo",signals:[{type:"devDependency",key:"lerna"},{type:"file",pattern:"lerna.json"}]},{name:"MCP SDK",slug:"mcp",category:"ai",signals:[{type:"dependency",key:"@modelcontextprotocol/sdk"}]},{name:"Anthropic SDK",slug:"anthropic",category:"ai",signals:[{type:"dependency",key:"@anthropic-ai/sdk"}]},{name:"OpenAI SDK",slug:"openai",category:"ai",signals:[{type:"dependency",key:"openai"}]},{name:"LangChain",slug:"langchain",category:"ai",signals:[{type:"dependency",key:"langchain"}]},{name:"Vercel",slug:"vercel",category:"hosting",signals:[{type:"file",pattern:"vercel.json"}]},{name:"Netlify",slug:"netlify",category:"hosting",signals:[{type:"file",pattern:"netlify.toml"}]},{name:"Docker",slug:"docker",category:"hosting",signals:[{type:"file",pattern:"Dockerfile"},{type:"file",pattern:"docker-compose.yml"}]},{name:"Cloudflare Workers",slug:"cloudflare",category:"hosting",signals:[{type:"file",pattern:"wrangler.toml"},{type:"dependency",key:"wrangler"}]},{name:"GitHub Actions",slug:"github-actions",category:"cicd",signals:[{type:"file",pattern:".github/workflows/*.yml"}]},{name:"Commander.js",slug:"commander",category:"cli",signals:[{type:"dependency",key:"commander"}]}];function Fq($){let Z=P($,"Cargo.toml");if(!F(Z))return null;try{let X=n(Z,"utf-8").match(/^\s*\[package\][\s\S]*?^\s*name\s*=\s*"([^"]+)"/m);return X?X[1]:null}catch{return null}}function Kq($){let Z=P($,"Cargo.toml");if(!F(Z))return!1;try{let U=n(Z,"utf-8");return/^\s*\[\[bin\]\]/m.test(U)}catch{return!1}}function Tq($,Z){if(Z?.keywords?.some((X)=>/^sdk(?:\s|-|$)|\-sdk$/i.test(X)))return'package.json keywords contains "sdk"';if(Z?.name&&/(?:^|[-_/])sdk(?:[-_/]|$)/i.test(Z.name))return`package.json name "${Z.name}" → sdk`;let U=Fq($);if(U&&/(?:^|[-_])sdk(?:[-_]|$)/i.test(U))return`Cargo.toml name "${U}" → sdk`;return null}function Aq($){let Z=["manifest.json","public/manifest.json","src/manifest.json","app/manifest.json","extension/manifest.json","dist/manifest.json"];for(let U of Z){let X=P($,U);if(!F(X))continue;try{let z=JSON.parse(n(X,"utf-8"));if(typeof z.manifest_version==="number")return`${U} manifest_version ${z.manifest_version} (browser extension)`}catch{}}return null}function Nq($){let Z=/(numpy|pandas|jupyter|scikit-learn|sklearn|pytorch|tensorflow|matplotlib|scipy)/i,U=P($,"pyproject.toml");if(F(U))try{let Q=n(U,"utf-8").match(Z);if(Q)return`pyproject.toml depends on ${Q[1]}`}catch{}let X=P($,"requirements.txt");if(F(X))try{let Q=n(X,"utf-8").match(Z);if(Q)return`requirements.txt contains ${Q[1]}`}catch{}return null}function wq($,Z){let U=["react-native","expo","@capacitor/core","@ionic/core"];if(Z){for(let X of U)if(Z.dependencies?.[X]||Z.devDependencies?.[X])return`${X} dependency`}if(F(P($,"ios"))&&F(P($,"android")))return"ios/ + android/ dirs";return null}function bq($,Z){let U=P($,"Cargo.toml");if(F(U))try{let z=n(U,"utf-8");if(/crate-type\s*=\s*\[[^\]]*"cdylib"/.test(z))return'Cargo.toml crate-type = ["cdylib"]';if(/wasm-bindgen|wasm-pack/i.test(z))return"Cargo.toml wasm-bindgen/wasm-pack"}catch{}let X=P($,"build.zig");if(F(X))try{let z=n(X,"utf-8");if(/\.wasm\b|wasm32|setOutputFormat\(\.wasm/i.test(z))return"build.zig wasm target"}catch{}if(Z?.keywords?.some((z)=>/^wasm(?:-|$)|webassembly/i.test(z)))return'package.json keywords contains "wasm"';return null}function Cq($,Z){if(!F(P($,"index.html")))return null;if(Z?.dependencies||Z?.devDependencies){let U={...Z.dependencies??{},...Z.devDependencies??{}};if(["react","vue","svelte","@sveltejs/kit","next","nuxt","astro","gatsby","solid-js","qwik"].some((z)=>U[z]))return null}return"index.html (vanilla, no frontend framework)"}function jq($,Z){if(Z?.name&&/specification|^@.*\/spec/i.test(Z.name))return`package name "${Z.name}" → documentation`;if(Z?.keywords?.some((U)=>/^(specification|format-spec|standard)$/i.test(U)))return'package keywords contains "specification"';if(Z?.files&&Z.files.length>0){let U=/^(dist|src|lib|build|bin)\/|\.(js|ts|tsx|jsx|mjs|cjs|py|rs|go)$/,X=Z.files.some((Q)=>U.test(Q)),z=Z.files.some((Q)=>/\.(md|MD)|examples?\//.test(Q));if(!X&&z)return"package.json files = docs/examples only (no source)"}return null}function Sq($,Z,U){let X=U.find((z)=>z.slug==="astro"||z.slug==="gatsby");if(X)return`${X.name} (static-site framework)`;if(Z?.keywords?.some((z)=>/^(website|marketing|landing|brochure|portfolio)$/i.test(z)))return'package keywords contains "website"/"marketing"/"landing"';return null}function Eq($,Z){if(!Z)return null;let U={...Z.dependencies??{},...Z.devDependencies??{}},X=["@clerk/nextjs","@clerk/clerk-react","next-auth","@auth/core","auth0","@auth0/nextjs-auth0"],z=["stripe","@stripe/stripe-js","lemonsqueezy"],Q=X.some((q)=>U[q]),J=z.some((q)=>U[q]);if(Q&&J)return"auth + payment dependencies";return null}function gq($,Z,U){if(Z?.keywords?.some((Q)=>/mcpaas/i.test(Q)))return'package keywords contains "mcpaas"';if(Z?.name&&/mcpaas/i.test(Z.name))return`package name "${Z.name}" → mcpaas`;let X=U.some((Q)=>Q.slug==="mcp"),z=U.some((Q)=>Q.category==="database");if(X&&z&&Z?.dependencies&&Object.keys(Z.dependencies).length>10)return"MCP + database + complex deps (platform shape)";return null}function fq($,Z){if(!Z?.private)return null;if(!(!!Z.workspaces||F(P($,"pnpm-workspace.yaml"))))return null;return"private workspace + multi-package"}function _0($){let Z=P($,"package.json");if(!F(Z))return null;try{return JSON.parse(n(Z,"utf-8"))}catch{return null}}function yq($,Z){if(!Z.includes("*"))return F(P($,Z));let U=Z.split("/");if(U.length===1){let q=Z.split("*")[0];try{return k4($).some((H)=>H.startsWith(q))}catch{return!1}}let X=P($,...U.slice(0,-1)),z=U[U.length-1],Q=z.split("*")[0],J=z.split("*")[1]||"";try{return k4(X).some((q)=>q.startsWith(Q)&&q.endsWith(J))}catch{return!1}}function xq($,Z,U){switch($.type){case"dependency":return!!Z?.dependencies?.[$.key];case"devDependency":return!!Z?.devDependencies?.[$.key];case"file":return yq(U,$.pattern);default:return!1}}function u2($){let Z=_0($);return u4.map((U)=>{let z=U.signals.filter((Q)=>xq(Q,Z,$)).length/U.signals.length;return{name:U.name,slug:U.slug,category:U.category,confidence:z}}).filter((U)=>U.confidence>0).sort((U,X)=>X.confidence-U.confidence)}function v4($){let Z=_0($);if(Z?.devDependencies?.typescript||Z?.dependencies?.typescript)return"TypeScript";if(F(P($,"tsconfig.json")))return"TypeScript";if(F(P($,"Cargo.toml")))return"Rust";if(F(P($,"go.mod")))return"Go";if(F(P($,"pyproject.toml"))||F(P($,"setup.py")))return"Python";if(F(P($,"Gemfile")))return"Ruby";if(F(P($,"pom.xml"))||F(P($,"build.gradle")))return"Java";if(F(P($,"Package.swift")))return"Swift";if(F(P($,"build.zig")))return"Zig";if(F(P($,"pubspec.yaml")))return"Dart";if(Z)return"JavaScript";return"Unknown"}function m4($){let Z=_0($),U=u2($),X=[],z=jq($,Z);if(z)return X.push(z),{type:"documentation",found:X};let Q=Tq($,Z);if(Q)return X.push(Q),{type:"sdk",found:X};let J=Aq($);if(J)return X.push(J),{type:"extension",found:X};let q=gq($,Z,U);if(q)return X.push(q),{type:"mcpaas",found:X};let H=Eq($,Z);if(H)return X.push(H),{type:"saas",found:X};let G=bq($,Z);if(G)return X.push(G),{type:"wasm",found:X};let W=G9($);if(W)return X.push(W.found),{type:W.appType,found:X};let Y=wq($,Z);if(Y)return X.push(Y),{type:"mobile",found:X};if(U.some((D)=>D.slug==="mcp"))return X.push("MCP SDK signal"),{type:"mcp",found:X};if(Z?.bin)return X.push("package.json bin"),{type:"cli",found:X};if(Kq($))return X.push("Cargo.toml [[bin]]"),{type:"cli",found:X};if(F(P($,"build.zig"))){if(X.push("build.zig"),F(P($,"src/main.zig")))return X.push("src/main.zig"),{type:"cli",found:X};if(F(P($,"src/root.zig")))return X.push("src/root.zig"),{type:"library",found:X}}let O=U.some((D)=>D.slug==="svelte"||D.slug==="sveltekit");if(Z?.private===!0&&(F(P($,"pnpm-workspace.yaml"))||Z?.workspaces!==void 0)&&O)return X.push("private workspace","Svelte"),{type:"framework",found:X};if(O)return X.push("Svelte/SvelteKit"),{type:"svelte",found:X};let B=U.some((D)=>D.category==="frontend"),L=U.some((D)=>D.category==="backend");if(Z?.private&&(Z.workspaces||F(P($,"pnpm-workspace.yaml")))&&B&&L)return X.push("private workspace + frontend + backend frameworks"),{type:"enterprise",found:X};let I=fq($,Z);if(I)return X.push(I),{type:"monorepo-root",found:X};let M=Sq($,Z,U);if(M)return X.push(M),{type:"website",found:X};if(U.some((D)=>D.slug==="nextjs"||D.slug==="nuxt"))return X.push(U.find((D)=>D.slug==="nextjs")?"Next.js":"Nuxt"),{type:"fullstack",found:X};let A=U.some((D)=>D.category==="frontend"),T=U.some((D)=>D.category==="backend");if(A&&T)return X.push("frontend framework","backend framework"),{type:"fullstack",found:X};if(A)return X.push("frontend framework"),{type:"frontend",found:X};if(T)return X.push("backend framework"),{type:"backend",found:X};let N=Nq($);if(N)return X.push(N),{type:"data-science",found:X};let C=Cq($,Z);if(C)return X.push(C),{type:"html",found:X};if(Z?.main&&!Z?.bin)return X.push("package.json main (no bin)"),{type:"library",found:X};return X.push("no classifying signals — fallback"),{type:"library",found:X}}function p4($){if(F(P($,"bunfig.toml")))return"Bun";if(F(P($,"deno.json"))||F(P($,"deno.jsonc")))return"Deno";if(_0($))return"Node.js";if(F(P($,"Cargo.toml")))return"Rust";if(F(P($,"go.mod")))return"Go";if(F(P($,"pubspec.yaml")))return"Dart";return"Unknown"}function l4($){if(F(P($,"pubspec.yaml")))return"pub";if(F(P($,"bun.lockb"))||F(P($,"bun.lock")))return"bun";if(F(P($,"pnpm-lock.yaml")))return"pnpm";if(F(P($,"yarn.lock")))return"yarn";if(F(P($,"package-lock.json")))return"npm";return"npm"}function d4($){if(F(P($,".github/workflows")))return"GitHub Actions";if(F(P($,".gitlab-ci.yml")))return"GitLab CI";if(F(P($,".circleci")))return"CircleCI";if(F(P($,"Jenkinsfile")))return"Jenkins";return null}function c4($){if(F(P($,"vercel.json")))return"Vercel";if(F(P($,"netlify.toml")))return"Netlify";if(F(P($,"wrangler.toml")))return"Cloudflare";if(F(P($,"Dockerfile")))return"Docker";if(F(P($,"fly.toml")))return"Fly.io";if(F(P($,"render.yaml")))return"Render";return null}function a4($){let Z=P($,"svelte.config.js");if(!F(Z))return null;try{let X=n(Z,"utf-8").match(/@sveltejs\/adapter-(\w+)/);if(X){let z=X[1];switch(z){case"vercel":return"Vercel";case"node":return"Node";case"static":return"Static";case"cloudflare":return"Cloudflare";case"netlify":return"Netlify";case"auto":return"Auto";default:return z}}return null}catch{return null}}function i4($){let Z=_0($);if(Z?.devDependencies?.vite||Z?.dependencies?.vite)return"Vite";if(Z?.devDependencies?.webpack||Z?.dependencies?.webpack)return"webpack";if(Z?.devDependencies?.esbuild||Z?.dependencies?.esbuild)return"esbuild";if(F(P($,"tsconfig.json"))&&Z?.devDependencies?.typescript)return"TypeScript (tsc)";return null}function s4($){return["package.json","Cargo.toml","pyproject.toml","go.mod","build.zig","build.zig.zon","src/index.ts","src/index.js","src/main.ts","src/cli.ts","src/main.rs","src/lib.rs","src/main.zig","src/root.zig","src/__init__.py","main.py","__main__.py","main.go","cmd/main.go","README.md","SPECIFICATION.md","BINARY-FORMAT.md","tsconfig.json","wrangler.toml","vercel.json"].filter((U)=>F(P($,U)))}function r4($,Z){let U={};if(Z?.scripts){for(let X of["build","test","lint","dev","start"])if(Z.scripts[X]){let z=F(P($,"bun.lock"))||F(P($,"bun.lockb"))?"bun run":"npm run";U[X]=`${z} ${X}`}}if(F(P($,"Cargo.toml"))){if(!U.build)U.build="cargo build --release";if(!U.test)U.test="cargo test";if(!U.lint)U.lint="cargo clippy"}if(F(P($,"build.zig"))){if(!U.build)U.build="zig build";if(!U.test)U.test="zig build test"}if(F(P($,"go.mod"))){if(!U.build)U.build="go build ./...";if(!U.test)U.test="go test ./..."}if(F(P($,"pyproject.toml"))||F(P($,"pytest.ini"))){if(!U.test)U.test="pytest"}return U}function n4($,Z,U,X){let z=[];if(X&&X!=="Unknown")z.push(X);let Q=new Set(["frontend","backend","database","build","css","state","monorepo"]);for(let J of U)if(Q.has(J.category))z.push(J.name);if(F(P($,"bunfig.toml")))z.push("Bun");else if(F(P($,"deno.json"))||F(P($,"deno.jsonc")))z.push("Deno");if(z.length<3&&Z?.dependencies){let J=Object.keys(Z.dependencies).slice(0,5);for(let q of J)if(!z.some((H)=>H.toLowerCase().includes(q.toLowerCase())))z.push(q)}return z}function o4($){let Z=_0($),U=u2($),X=v4($),z=m4($),Q=z.type,J=p4($),q=l4($),H=d4($),G=c4($),W=i4($),Y=U.find((j)=>j.category==="frontend"),V=U.find((j)=>j.category==="css"),O=U.find((j)=>j.category==="ui"),_=U.find((j)=>j.category==="state"),B=U.find((j)=>j.category==="backend"),L=U.find((j)=>j.category==="database"),I=I0[Q]||I0.library,M=Q==="framework",K=U.some((j)=>j.slug==="svelte"||j.slug==="sveltekit"),A=M&&K?"svelte":M?null:null,T=Q==="svelte"||A==="svelte",N=T?a4($):null,C=T&&U.some((j)=>j.slug==="sveltekit"),D=new Set(["css_framework","ui_library","database","connection","hosting"]),w={},l=y.filter((j)=>j.path.startsWith("stack."));for(let j of l){let S=j.path.replace("stack.","");if(!I.includes(j.category)){w[S]="slotignored";continue}if(M&&D.has(S)){w[S]="slotignored";continue}switch(S){case"frontend":w[S]=Y?.name??(Q==="cli"?"CLI":"");break;case"css_framework":w[S]=V?.name??"";break;case"ui_library":w[S]=O?.name??"";break;case"state_management":w[S]=T?_?.name??"Runes":_?.name??"";break;case"backend":w[S]=T?C?"SvelteKit":B?.name??"":B?.name??"";break;case"api_type":w[S]=C?"Server Routes":"";break;case"runtime":w[S]=J!=="Unknown"?J:"";break;case"database":w[S]=L?.name??"";break;case"connection":w[S]=L?.name??"";break;case"hosting":if(T&&N)w[S]=N;else w[S]=G??"";break;case"build":w[S]=T?"Vite":W??"";break;case"cicd":w[S]=H??"";break;case"package_manager":w[S]=q;break;default:w[S]="";break}}let d={},E=y.filter((j)=>j.path.startsWith("monorepo."));for(let j of E){let S=j.path.replace("monorepo.","");if(!I.includes(j.category))d[S]="slotignored";else d[S]=""}let x0={name:Z?.name??$.split("/").pop()??"project",goal:Z?.description??"",main_language:X,type:Q};if(M&&A)x0.framework=A;let m2=n4($,Z,U,X),p2=s4($),l2=r4($,Z),L$={faf_version:"2.5.0",project:x0,stack:w,human_context:{who:"",what:Z?.description??"",why:"",where:"",when:"",how:""},monorepo:d,_meta:{found:z.found}};if(m2.length>0)L$.tech_stack=m2;if(p2.length>0)L$.key_files=p2;if(Object.keys(l2).length>0)L$.commands=l2;return L$}import{existsSync as uq,readFileSync as kq}from"fs";import{join as vq}from"path";var t4={MIN_LENGTH:8,MAX_LENGTH:280},hq=[/^(see|see\s+the?)\s+readme/i,/^(tbd|todo|fixme|coming\s+soon)\b/i,/^(software|application|app|project|tool|library|framework)\.?$/i,/^(for\s+users|for\s+developers)\.?$/i,/^(description|goal|name|title)\.?$/i,/^lorem\s+ipsum/i,/^example(\s+\w+)?\.?$/i];function p($){let Z=$.trim();if(Z.length<t4.MIN_LENGTH)return!1;if(Z.length>t4.MAX_LENGTH)return!1;if(hq.some((U)=>U.test(Z)))return!1;if(/^[\s|\-*+]/.test(Z))return!1;if(Z.split(`
|
|
218
|
-
`).length>4)return!1;return!0}function
|
|
217
|
+
`).replace(/<[^>]+>/g,"").replace(/!\[[^\]]*\]\([^)]*\)/g,"").trim()}function L0($){return $.replace(/\s+/g," ").replace(/[#*`>]/g,"").trim().slice(0,280)}function y0($,Z){let U=new RegExp(`##?\\s+(${Z})\\s*\\n+([\\s\\S]+?)(?:\\n\\n|\\n##?|$)`,"i"),X=$.match(U);return X&&X[2]&&X[2].trim().length>20?{body:L0(X[2]),heading:X[1].trim()}:null}function O$($,Z,U=30){for(let X of Z){let z=$.match(X);if(z&&z[1]&&z[1].trim().length>=U)return L0(z[1])}return null}function DH($,Z){if($?.description&&$.description.length>20)return x(L0($.description),"package.json:description",0.95);let U=y0(Z,"Purpose|What|About|Overview|Description");if(U)return x(U.body,`README:## ${U.heading}`,0.8);let X=Z.split(/\n\s*\n/).map((Q)=>Q.trim()).find((Q)=>Q.length>30&&!Q.startsWith("#"));if(X)return x(L0(X),"README:first-paragraph",0.5);let z=O$(Z,[/(?:core|main|primary)\s+(?:problem|challenge)(?:\s+is)?\s*:?\s*([^.\n]{30,})/i,/solves?\s+(?:the\s+)?(?:problem\s+of\s+)?([^.\n]{30,})/i]);return z?x(z,"README:problem-heuristic",0.6):null}function IH($){let Z=y0($,"Audience|Who|Who is this for|Who it.s for");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=O$($,[/\b(?:designed|built|made)\s+for\s+((?:[a-z][a-z-]*\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\n]{0,80})/i,/\bfor\s+((?:[a-z][a-z-]*\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\n]{0,80})/i],8);return U?x(U,"README:audience-heuristic",0.6):null}function RH($){let Z=y0($,"Why|Mission|Motivation|Rationale|Vision");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=O$($,[/(?:our\s+|the\s+)?(?:mission|purpose|goal)\s+is\s+([^.\n]{30,})/i,/\b(?:mission|purpose|goal)\s*:\s*([^.\n]{30,})/i,/(?:built|created|designed)\s+(?:because|to)\s+([^.\n]{30,})/i]);return U?x(U,"README:mission-heuristic",0.6):null}function MH($,Z){let U=typeof $?.repository==="string"?$.repository:$?.repository?.url;if(U)return x(L0(U.replace(/^git\+/,"").replace(/\.git$/,"")),"package.json:repository",0.95);if($?.homepage)return x(L0($.homepage),"package.json:homepage",0.9);let X=O$(Z,[/\b(?:deployed|hosted|available|published)\s+(?:on|at|via)\s+([^.\n]{3,80})/i],3);return X?x(X,"README:deploy-heuristic",0.6):null}function PH($){let Z=y0($,"Timeline|Status|Release|Roadmap");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=O$($,[/\b(production\s+since\s+[^.\n]{4,60})/i,/\b((?:in\s+)?(?:production|beta|alpha|development)\s+since\s+[^.\n]{4,60})/i,/\bsince\s+((?:[A-Z][a-z]+\s+)?\d{4}[^.\n]{0,40})/],4);return U?x(U,"README:since-heuristic",0.6):null}function TH($,Z){let U=$?.scripts?Object.keys($.scripts):[],X=["start","dev","build"].filter((J)=>U.includes(J));if(X.length)return x(L0(X.map((J)=>`npm run ${J}`).join(", ")),"package.json:scripts",0.9);let z=y0(Z,"Usage|Getting Started|Install|Installation|Quick Start");if(z)return x(z.body,`README:## ${z.heading}`,0.8);let Q=y0(Z,"Architecture|Approach|How it works|Methodology|How");return Q?x(Q.body,`README:## ${Q.heading}`,0.7):null}var u4="3.0";import{existsSync as T,readFileSync as n,readdirSync as v4}from"fs";import{join as P}from"path";var k4=[{name:"Next.js",slug:"nextjs",category:"frontend",signals:[{type:"dependency",key:"next"},{type:"file",pattern:"next.config.*"}]},{name:"React",slug:"react",category:"frontend",signals:[{type:"dependency",key:"react"}]},{name:"SvelteKit",slug:"sveltekit",category:"frontend",signals:[{type:"dependency",key:"@sveltejs/kit"},{type:"file",pattern:"svelte.config.*"}]},{name:"Svelte",slug:"svelte",category:"frontend",signals:[{type:"dependency",key:"svelte"},{type:"devDependency",key:"svelte"}]},{name:"Vue.js",slug:"vue",category:"frontend",signals:[{type:"dependency",key:"vue"}]},{name:"Nuxt",slug:"nuxt",category:"frontend",signals:[{type:"dependency",key:"nuxt"},{type:"file",pattern:"nuxt.config.*"}]},{name:"Angular",slug:"angular",category:"frontend",signals:[{type:"dependency",key:"@angular/core"},{type:"file",pattern:"angular.json"}]},{name:"Astro",slug:"astro",category:"frontend",signals:[{type:"dependency",key:"astro"},{type:"file",pattern:"astro.config.*"}]},{name:"Solid",slug:"solid",category:"frontend",signals:[{type:"dependency",key:"solid-js"}]},{name:"Remix",slug:"remix",category:"frontend",signals:[{type:"dependency",key:"@remix-run/react"}]},{name:"Gatsby",slug:"gatsby",category:"frontend",signals:[{type:"dependency",key:"gatsby"},{type:"file",pattern:"gatsby-config.*"}]},{name:"Qwik",slug:"qwik",category:"frontend",signals:[{type:"dependency",key:"@builder.io/qwik"}]},{name:"Vercel (SvelteKit)",slug:"adapter-vercel",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-vercel"},{type:"devDependency",key:"@sveltejs/adapter-vercel"}]},{name:"Node (SvelteKit)",slug:"adapter-node",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-node"},{type:"devDependency",key:"@sveltejs/adapter-node"}]},{name:"Static (SvelteKit)",slug:"adapter-static",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-static"},{type:"devDependency",key:"@sveltejs/adapter-static"}]},{name:"Cloudflare (SvelteKit)",slug:"adapter-cloudflare",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-cloudflare"},{type:"devDependency",key:"@sveltejs/adapter-cloudflare"}]},{name:"Netlify (SvelteKit)",slug:"adapter-netlify",category:"hosting",signals:[{type:"dependency",key:"@sveltejs/adapter-netlify"},{type:"devDependency",key:"@sveltejs/adapter-netlify"}]},{name:"Tailwind CSS",slug:"tailwind",category:"css",signals:[{type:"dependency",key:"tailwindcss"},{type:"devDependency",key:"tailwindcss"},{type:"file",pattern:"tailwind.config.*"}]},{name:"Bootstrap",slug:"bootstrap",category:"css",signals:[{type:"dependency",key:"bootstrap"}]},{name:"Styled Components",slug:"styled-components",category:"css",signals:[{type:"dependency",key:"styled-components"}]},{name:"shadcn/ui",slug:"shadcn",category:"ui",signals:[{type:"file",pattern:"components.json"},{type:"dependency",key:"@radix-ui/react-dialog"}]},{name:"Material UI",slug:"mui",category:"ui",signals:[{type:"dependency",key:"@mui/material"}]},{name:"Chakra UI",slug:"chakra",category:"ui",signals:[{type:"dependency",key:"@chakra-ui/react"}]},{name:"Ant Design",slug:"antd",category:"ui",signals:[{type:"dependency",key:"antd"}]},{name:"Redux",slug:"redux",category:"state",signals:[{type:"dependency",key:"@reduxjs/toolkit"}]},{name:"Zustand",slug:"zustand",category:"state",signals:[{type:"dependency",key:"zustand"}]},{name:"Jotai",slug:"jotai",category:"state",signals:[{type:"dependency",key:"jotai"}]},{name:"Pinia",slug:"pinia",category:"state",signals:[{type:"dependency",key:"pinia"}]},{name:"Express",slug:"express",category:"backend",signals:[{type:"dependency",key:"express"}]},{name:"Fastify",slug:"fastify",category:"backend",signals:[{type:"dependency",key:"fastify"}]},{name:"Hono",slug:"hono",category:"backend",signals:[{type:"dependency",key:"hono"}]},{name:"Elysia",slug:"elysia",category:"backend",signals:[{type:"dependency",key:"elysia"}]},{name:"NestJS",slug:"nestjs",category:"backend",signals:[{type:"dependency",key:"@nestjs/core"}]},{name:"Koa",slug:"koa",category:"backend",signals:[{type:"dependency",key:"koa"}]},{name:"Django",slug:"django",category:"backend",signals:[{type:"file",pattern:"manage.py"},{type:"file",pattern:"settings.py"}]},{name:"Flask",slug:"flask",category:"backend",signals:[{type:"file",pattern:"app.py"}]},{name:"FastAPI",slug:"fastapi",category:"backend",signals:[{type:"file",pattern:"main.py"}]},{name:"Rails",slug:"rails",category:"backend",signals:[{type:"file",pattern:"Gemfile"},{type:"file",pattern:"config/routes.rb"}]},{name:"Spring Boot",slug:"spring",category:"backend",signals:[{type:"file",pattern:"pom.xml"},{type:"file",pattern:"build.gradle"}]},{name:"Prisma",slug:"prisma",category:"database",signals:[{type:"dependency",key:"prisma"},{type:"devDependency",key:"prisma"},{type:"file",pattern:"prisma/schema.prisma"}]},{name:"Drizzle",slug:"drizzle",category:"database",signals:[{type:"dependency",key:"drizzle-orm"},{type:"file",pattern:"drizzle.config.*"}]},{name:"TypeORM",slug:"typeorm",category:"database",signals:[{type:"dependency",key:"typeorm"}]},{name:"Mongoose",slug:"mongoose",category:"database",signals:[{type:"dependency",key:"mongoose"}]},{name:"Vite",slug:"vite",category:"build",signals:[{type:"dependency",key:"vite"},{type:"devDependency",key:"vite"},{type:"file",pattern:"vite.config.*"}]},{name:"webpack",slug:"webpack",category:"build",signals:[{type:"dependency",key:"webpack"},{type:"devDependency",key:"webpack"},{type:"file",pattern:"webpack.config.*"}]},{name:"esbuild",slug:"esbuild",category:"build",signals:[{type:"dependency",key:"esbuild"},{type:"devDependency",key:"esbuild"}]},{name:"Turbopack",slug:"turbopack",category:"build",signals:[{type:"file",pattern:"turbo.json"}]},{name:"Jest",slug:"jest",category:"testing",signals:[{type:"devDependency",key:"jest"},{type:"file",pattern:"jest.config.*"}]},{name:"Vitest",slug:"vitest",category:"testing",signals:[{type:"devDependency",key:"vitest"}]},{name:"Playwright",slug:"playwright",category:"testing",signals:[{type:"devDependency",key:"@playwright/test"},{type:"file",pattern:"playwright.config.*"}]},{name:"Cypress",slug:"cypress",category:"testing",signals:[{type:"devDependency",key:"cypress"},{type:"file",pattern:"cypress.config.*"}]},{name:"Turborepo",slug:"turborepo",category:"monorepo",signals:[{type:"devDependency",key:"turbo"},{type:"file",pattern:"turbo.json"}]},{name:"Nx",slug:"nx",category:"monorepo",signals:[{type:"devDependency",key:"nx"},{type:"file",pattern:"nx.json"}]},{name:"Lerna",slug:"lerna",category:"monorepo",signals:[{type:"devDependency",key:"lerna"},{type:"file",pattern:"lerna.json"}]},{name:"MCP SDK",slug:"mcp",category:"ai",signals:[{type:"dependency",key:"@modelcontextprotocol/sdk"}]},{name:"Anthropic SDK",slug:"anthropic",category:"ai",signals:[{type:"dependency",key:"@anthropic-ai/sdk"}]},{name:"OpenAI SDK",slug:"openai",category:"ai",signals:[{type:"dependency",key:"openai"}]},{name:"LangChain",slug:"langchain",category:"ai",signals:[{type:"dependency",key:"langchain"}]},{name:"Vercel",slug:"vercel",category:"hosting",signals:[{type:"file",pattern:"vercel.json"}]},{name:"Netlify",slug:"netlify",category:"hosting",signals:[{type:"file",pattern:"netlify.toml"}]},{name:"Docker",slug:"docker",category:"hosting",signals:[{type:"file",pattern:"Dockerfile"},{type:"file",pattern:"docker-compose.yml"}]},{name:"Cloudflare Workers",slug:"cloudflare",category:"hosting",signals:[{type:"file",pattern:"wrangler.toml"},{type:"dependency",key:"wrangler"}]},{name:"GitHub Actions",slug:"github-actions",category:"cicd",signals:[{type:"file",pattern:".github/workflows/*.yml"}]},{name:"Commander.js",slug:"commander",category:"cli",signals:[{type:"dependency",key:"commander"}]}];function FH($){let Z=P($,"Cargo.toml");if(!T(Z))return null;try{let X=n(Z,"utf-8").match(/^\s*\[package\][\s\S]*?^\s*name\s*=\s*"([^"]+)"/m);return X?X[1]:null}catch{return null}}function KH($){let Z=P($,"Cargo.toml");if(!T(Z))return!1;try{let U=n(Z,"utf-8");return/^\s*\[\[bin\]\]/m.test(U)}catch{return!1}}function AH($,Z){if(Z?.keywords?.some((X)=>/^sdk(?:\s|-|$)|\-sdk$/i.test(X)))return'package.json keywords contains "sdk"';if(Z?.name&&/(?:^|[-_/])sdk(?:[-_/]|$)/i.test(Z.name))return`package.json name "${Z.name}" → sdk`;let U=FH($);if(U&&/(?:^|[-_])sdk(?:[-_]|$)/i.test(U))return`Cargo.toml name "${U}" → sdk`;return null}function NH($){let Z=["manifest.json","public/manifest.json","src/manifest.json","app/manifest.json","extension/manifest.json","dist/manifest.json"];for(let U of Z){let X=P($,U);if(!T(X))continue;try{let z=JSON.parse(n(X,"utf-8"));if(typeof z.manifest_version==="number")return`${U} manifest_version ${z.manifest_version} (browser extension)`}catch{}}return null}function wH($){let Z=/(numpy|pandas|jupyter|scikit-learn|sklearn|pytorch|tensorflow|matplotlib|scipy)/i,U=P($,"pyproject.toml");if(T(U))try{let Q=n(U,"utf-8").match(Z);if(Q)return`pyproject.toml depends on ${Q[1]}`}catch{}let X=P($,"requirements.txt");if(T(X))try{let Q=n(X,"utf-8").match(Z);if(Q)return`requirements.txt contains ${Q[1]}`}catch{}return null}function bH($,Z){let U=["react-native","expo","@capacitor/core","@ionic/core"];if(Z){for(let X of U)if(Z.dependencies?.[X]||Z.devDependencies?.[X])return`${X} dependency`}if(T(P($,"ios"))&&T(P($,"android")))return"ios/ + android/ dirs";return null}function CH($,Z){let U=P($,"Cargo.toml");if(T(U))try{let z=n(U,"utf-8");if(/crate-type\s*=\s*\[[^\]]*"cdylib"/.test(z))return'Cargo.toml crate-type = ["cdylib"]';if(/wasm-bindgen|wasm-pack/i.test(z))return"Cargo.toml wasm-bindgen/wasm-pack"}catch{}let X=P($,"build.zig");if(T(X))try{let z=n(X,"utf-8");if(/\.wasm\b|wasm32|setOutputFormat\(\.wasm/i.test(z))return"build.zig wasm target"}catch{}if(Z?.keywords?.some((z)=>/^wasm(?:-|$)|webassembly/i.test(z)))return'package.json keywords contains "wasm"';return null}function jH($,Z){if(!T(P($,"index.html")))return null;if(Z?.dependencies||Z?.devDependencies){let U={...Z.dependencies??{},...Z.devDependencies??{}};if(["react","vue","svelte","@sveltejs/kit","next","nuxt","astro","gatsby","solid-js","qwik"].some((z)=>U[z]))return null}return"index.html (vanilla, no frontend framework)"}function SH($,Z){if(Z?.name&&/specification|^@.*\/spec/i.test(Z.name))return`package name "${Z.name}" → documentation`;if(Z?.keywords?.some((U)=>/^(specification|format-spec|standard)$/i.test(U)))return'package keywords contains "specification"';if(Z?.files&&Z.files.length>0){let U=/^(dist|src|lib|build|bin)\/|\.(js|ts|tsx|jsx|mjs|cjs|py|rs|go)$/,X=Z.files.some((Q)=>U.test(Q)),z=Z.files.some((Q)=>/\.(md|MD)|examples?\//.test(Q));if(!X&&z)return"package.json files = docs/examples only (no source)"}return null}function EH($,Z,U){let X=U.find((z)=>z.slug==="astro"||z.slug==="gatsby");if(X)return`${X.name} (static-site framework)`;if(Z?.keywords?.some((z)=>/^(website|marketing|landing|brochure|portfolio)$/i.test(z)))return'package keywords contains "website"/"marketing"/"landing"';return null}function gH($,Z){if(!Z)return null;let U={...Z.dependencies??{},...Z.devDependencies??{}},X=["@clerk/nextjs","@clerk/clerk-react","next-auth","@auth/core","auth0","@auth0/nextjs-auth0"],z=["stripe","@stripe/stripe-js","lemonsqueezy"],Q=X.some((H)=>U[H]),J=z.some((H)=>U[H]);if(Q&&J)return"auth + payment dependencies";return null}function fH($,Z,U){if(Z?.keywords?.some((Q)=>/mcpaas/i.test(Q)))return'package keywords contains "mcpaas"';if(Z?.name&&/mcpaas/i.test(Z.name))return`package name "${Z.name}" → mcpaas`;let X=U.some((Q)=>Q.slug==="mcp"),z=U.some((Q)=>Q.category==="database");if(X&&z&&Z?.dependencies&&Object.keys(Z.dependencies).length>10)return"MCP + database + complex deps (platform shape)";return null}function yH($,Z){if(!Z?.private)return null;if(!(!!Z.workspaces||T(P($,"pnpm-workspace.yaml"))))return null;return"private workspace + multi-package"}function _0($){let Z=P($,"package.json");if(!T(Z))return null;try{return JSON.parse(n(Z,"utf-8"))}catch{return null}}function xH($,Z){if(!Z.includes("*"))return T(P($,Z));let U=Z.split("/");if(U.length===1){let H=Z.split("*")[0];try{return v4($).some((q)=>q.startsWith(H))}catch{return!1}}let X=P($,...U.slice(0,-1)),z=U[U.length-1],Q=z.split("*")[0],J=z.split("*")[1]||"";try{return v4(X).some((H)=>H.startsWith(Q)&&H.endsWith(J))}catch{return!1}}function hH($,Z,U){switch($.type){case"dependency":return!!Z?.dependencies?.[$.key];case"devDependency":return!!Z?.devDependencies?.[$.key];case"file":return xH(U,$.pattern);default:return!1}}function u9($){let Z=_0($);return k4.map((U)=>{let z=U.signals.filter((Q)=>hH(Q,Z,$)).length/U.signals.length;return{name:U.name,slug:U.slug,category:U.category,confidence:z}}).filter((U)=>U.confidence>0).sort((U,X)=>X.confidence-U.confidence)}function m4($){let Z=_0($);if(Z?.devDependencies?.typescript||Z?.dependencies?.typescript)return"TypeScript";if(T(P($,"tsconfig.json")))return"TypeScript";if(T(P($,"Cargo.toml")))return"Rust";if(T(P($,"go.mod")))return"Go";if(T(P($,"pyproject.toml"))||T(P($,"setup.py")))return"Python";if(T(P($,"Gemfile")))return"Ruby";if(T(P($,"pom.xml"))||T(P($,"build.gradle")))return"Java";if(T(P($,"Package.swift")))return"Swift";if(T(P($,"build.zig")))return"Zig";if(T(P($,"pubspec.yaml")))return"Dart";if(Z)return"JavaScript";return"Unknown"}function p4($){let Z=_0($),U=u9($),X=[],z=SH($,Z);if(z)return X.push(z),{type:"documentation",found:X};let Q=AH($,Z);if(Q)return X.push(Q),{type:"sdk",found:X};let J=NH($);if(J)return X.push(J),{type:"extension",found:X};let H=fH($,Z,U);if(H)return X.push(H),{type:"mcpaas",found:X};let q=gH($,Z);if(q)return X.push(q),{type:"saas",found:X};let G=CH($,Z);if(G)return X.push(G),{type:"wasm",found:X};let W=G2($);if(W)return X.push(W.found),{type:W.appType,found:X};let Y=bH($,Z);if(Y)return X.push(Y),{type:"mobile",found:X};if(U.some((D)=>D.slug==="mcp"))return X.push("MCP SDK signal"),{type:"mcp",found:X};if(Z?.bin)return X.push("package.json bin"),{type:"cli",found:X};if(KH($))return X.push("Cargo.toml [[bin]]"),{type:"cli",found:X};if(T(P($,"build.zig"))){if(X.push("build.zig"),T(P($,"src/main.zig")))return X.push("src/main.zig"),{type:"cli",found:X};if(T(P($,"src/root.zig")))return X.push("src/root.zig"),{type:"library",found:X}}let O=U.some((D)=>D.slug==="svelte"||D.slug==="sveltekit");if(Z?.private===!0&&(T(P($,"pnpm-workspace.yaml"))||Z?.workspaces!==void 0)&&O)return X.push("private workspace","Svelte"),{type:"framework",found:X};if(O)return X.push("Svelte/SvelteKit"),{type:"svelte",found:X};let B=U.some((D)=>D.category==="frontend"),L=U.some((D)=>D.category==="backend");if(Z?.private&&(Z.workspaces||T(P($,"pnpm-workspace.yaml")))&&B&&L)return X.push("private workspace + frontend + backend frameworks"),{type:"enterprise",found:X};let I=yH($,Z);if(I)return X.push(I),{type:"monorepo-root",found:X};let M=EH($,Z,U);if(M)return X.push(M),{type:"website",found:X};if(U.some((D)=>D.slug==="nextjs"||D.slug==="nuxt"))return X.push(U.find((D)=>D.slug==="nextjs")?"Next.js":"Nuxt"),{type:"fullstack",found:X};let A=U.some((D)=>D.category==="frontend"),K=U.some((D)=>D.category==="backend");if(A&&K)return X.push("frontend framework","backend framework"),{type:"fullstack",found:X};if(A)return X.push("frontend framework"),{type:"frontend",found:X};if(K)return X.push("backend framework"),{type:"backend",found:X};let N=wH($);if(N)return X.push(N),{type:"data-science",found:X};let C=jH($,Z);if(C)return X.push(C),{type:"html",found:X};if(Z?.main&&!Z?.bin)return X.push("package.json main (no bin)"),{type:"library",found:X};return X.push("no classifying signals — fallback"),{type:"library",found:X}}function l4($){if(T(P($,"bunfig.toml")))return"Bun";if(T(P($,"deno.json"))||T(P($,"deno.jsonc")))return"Deno";if(_0($))return"Node.js";if(T(P($,"Cargo.toml")))return"Rust";if(T(P($,"go.mod")))return"Go";if(T(P($,"pubspec.yaml")))return"Dart";return"Unknown"}function d4($){if(T(P($,"pubspec.yaml")))return"pub";if(T(P($,"bun.lockb"))||T(P($,"bun.lock")))return"bun";if(T(P($,"pnpm-lock.yaml")))return"pnpm";if(T(P($,"yarn.lock")))return"yarn";if(T(P($,"package-lock.json")))return"npm";return"npm"}function c4($){if(T(P($,".github/workflows")))return"GitHub Actions";if(T(P($,".gitlab-ci.yml")))return"GitLab CI";if(T(P($,".circleci")))return"CircleCI";if(T(P($,"Jenkinsfile")))return"Jenkins";return null}function a4($){if(T(P($,"vercel.json")))return"Vercel";if(T(P($,"netlify.toml")))return"Netlify";if(T(P($,"wrangler.toml")))return"Cloudflare";if(T(P($,"Dockerfile")))return"Docker";if(T(P($,"fly.toml")))return"Fly.io";if(T(P($,"render.yaml")))return"Render";return null}function i4($){let Z=P($,"svelte.config.js");if(!T(Z))return null;try{let X=n(Z,"utf-8").match(/@sveltejs\/adapter-(\w+)/);if(X){let z=X[1];switch(z){case"vercel":return"Vercel";case"node":return"Node";case"static":return"Static";case"cloudflare":return"Cloudflare";case"netlify":return"Netlify";case"auto":return"Auto";default:return z}}return null}catch{return null}}function s4($){let Z=_0($);if(Z?.devDependencies?.vite||Z?.dependencies?.vite)return"Vite";if(Z?.devDependencies?.webpack||Z?.dependencies?.webpack)return"webpack";if(Z?.devDependencies?.esbuild||Z?.dependencies?.esbuild)return"esbuild";if(T(P($,"tsconfig.json"))&&Z?.devDependencies?.typescript)return"TypeScript (tsc)";return null}function r4($){return["package.json","Cargo.toml","pyproject.toml","go.mod","build.zig","build.zig.zon","src/index.ts","src/index.js","src/main.ts","src/cli.ts","src/main.rs","src/lib.rs","src/main.zig","src/root.zig","src/__init__.py","main.py","__main__.py","main.go","cmd/main.go","README.md","SPECIFICATION.md","BINARY-FORMAT.md","tsconfig.json","wrangler.toml","vercel.json"].filter((U)=>T(P($,U)))}function n4($,Z){let U={};if(Z?.scripts){for(let X of["build","test","lint","dev","start"])if(Z.scripts[X]){let z=T(P($,"bun.lock"))||T(P($,"bun.lockb"))?"bun run":"npm run";U[X]=`${z} ${X}`}}if(T(P($,"Cargo.toml"))){if(!U.build)U.build="cargo build --release";if(!U.test)U.test="cargo test";if(!U.lint)U.lint="cargo clippy"}if(T(P($,"build.zig"))){if(!U.build)U.build="zig build";if(!U.test)U.test="zig build test"}if(T(P($,"go.mod"))){if(!U.build)U.build="go build ./...";if(!U.test)U.test="go test ./..."}if(T(P($,"pyproject.toml"))||T(P($,"pytest.ini"))){if(!U.test)U.test="pytest"}return U}function o4($,Z,U,X){let z=[];if(X&&X!=="Unknown")z.push(X);let Q=new Set(["frontend","backend","database","build","css","state","monorepo"]);for(let J of U)if(Q.has(J.category))z.push(J.name);if(T(P($,"bunfig.toml")))z.push("Bun");else if(T(P($,"deno.json"))||T(P($,"deno.jsonc")))z.push("Deno");if(z.length<3&&Z?.dependencies){let J=Object.keys(Z.dependencies).slice(0,5);for(let H of J)if(!z.some((q)=>q.toLowerCase().includes(H.toLowerCase())))z.push(H)}return z}function t4($){let Z=_0($),U=u9($),X=m4($),z=p4($),Q=z.type,J=l4($),H=d4($),q=c4($),G=a4($),W=s4($),Y=U.find((j)=>j.category==="frontend"),V=U.find((j)=>j.category==="css"),O=U.find((j)=>j.category==="ui"),_=U.find((j)=>j.category==="state"),B=U.find((j)=>j.category==="backend"),L=U.find((j)=>j.category==="database"),I=I0[Q]||I0.library,M=Q==="framework",F=U.some((j)=>j.slug==="svelte"||j.slug==="sveltekit"),A=M&&F?"svelte":M?null:null,K=Q==="svelte"||A==="svelte",N=K?i4($):null,C=K&&U.some((j)=>j.slug==="sveltekit"),D=new Set(["css_framework","ui_library","database","connection","hosting"]),w={},l=y.filter((j)=>j.path.startsWith("stack."));for(let j of l){let S=j.path.replace("stack.","");if(!I.includes(j.category)){w[S]="slotignored";continue}if(M&&D.has(S)){w[S]="slotignored";continue}switch(S){case"frontend":w[S]=Y?.name??(Q==="cli"?"CLI":"");break;case"css_framework":w[S]=V?.name??"";break;case"ui_library":w[S]=O?.name??"";break;case"state_management":w[S]=K?_?.name??"Runes":_?.name??"";break;case"backend":w[S]=K?C?"SvelteKit":B?.name??"":B?.name??"";break;case"api_type":w[S]=C?"Server Routes":"";break;case"runtime":w[S]=J!=="Unknown"?J:"";break;case"database":w[S]=L?.name??"";break;case"connection":w[S]=L?.name??"";break;case"hosting":if(K&&N)w[S]=N;else w[S]=G??"";break;case"build":w[S]=K?"Vite":W??"";break;case"cicd":w[S]=q??"";break;case"package_manager":w[S]=H;break;default:w[S]="";break}}let d={},E=y.filter((j)=>j.path.startsWith("monorepo."));for(let j of E){let S=j.path.replace("monorepo.","");if(!I.includes(j.category))d[S]="slotignored";else d[S]=""}let x0={name:Z?.name??$.split("/").pop()??"project",goal:Z?.description??"",main_language:X,type:Q};if(M&&A)x0.framework=A;let m9=o4($,Z,U,X),p9=r4($),l9=n4($,Z),L$={faf_version:u4,project:x0,stack:w,human_context:{who:"",what:Z?.description??"",why:"",where:"",when:"",how:""},monorepo:d,_meta:{found:z.found}};if(m9.length>0)L$.tech_stack=m9;if(p9.length>0)L$.key_files=p9;if(Object.keys(l9).length>0)L$.commands=l9;return L$}import{existsSync as kH,readFileSync as vH}from"fs";import{join as mH}from"path";var e4={MIN_LENGTH:8,MAX_LENGTH:280},uH=[/^(see|see\s+the?)\s+readme/i,/^(tbd|todo|fixme|coming\s+soon)\b/i,/^(software|application|app|project|tool|library|framework)\.?$/i,/^(for\s+users|for\s+developers)\.?$/i,/^(description|goal|name|title)\.?$/i,/^lorem\s+ipsum/i,/^example(\s+\w+)?\.?$/i];function p($){let Z=$.trim();if(Z.length<e4.MIN_LENGTH)return!1;if(Z.length>e4.MAX_LENGTH)return!1;if(uH.some((U)=>U.test(Z)))return!1;if(/^[\s|\-*+]/.test(Z))return!1;if(Z.split(`
|
|
218
|
+
`).length>4)return!1;return!0}function pH($){let Z=$.split(`
|
|
219
219
|
`),U=0;while(U<Z.length&&/^(#\s|$)/.test(Z[U].trim()))U++;while(U<Z.length){let X=Z[U].trim();if(/^\[!\[/.test(X)){U++;continue}if(/^!\[/.test(X)){U++;continue}if(/^<img\s/i.test(X)){U++;continue}if(X===""){U++;continue}break}return Z.slice(U).join(`
|
|
220
|
-
`)}function
|
|
220
|
+
`)}function lH($){let U=pH($).split(`
|
|
221
221
|
`),X=[];for(let z of U){let Q=z.trim();if(Q===""){if(X.length>0)break;continue}if(/^(#|>|```|---|\||\s*[-*+]\s|\d+\.\s)/.test(Q))break;if(/^\*\*[^*]+\*\*\s*$/.test(Q)&&X.length===0)continue;X.push(Q)}if(X.length===0)return null;return X.join(" ").trim()}function D0($,Z){let U=$.split(`
|
|
222
|
-
`),X=0;while(X<U.length){let Q=U[X].trim().match(/^(#{1,6})\s+(.+)$/);if(Q&&Z.test(Q[2])){let J=Q[1].length,
|
|
223
|
-
`),X=!1;for(let z of U){let Q=z.trim();if(/^\[/.test(Q)){X=Q==="[package]";continue}if(!X)continue;let J=Q.match(new RegExp(`^${Z}\\s*=\\s*(.+)$`));if(J){let
|
|
222
|
+
`),X=0;while(X<U.length){let Q=U[X].trim().match(/^(#{1,6})\s+(.+)$/);if(Q&&Z.test(Q[2])){let J=Q[1].length,H=[];X++;while(X<U.length){let q=U[X].trim(),G=q.match(/^(#{1,6})\s+/);if(G&&G[1].length<=J)break;if(q===""){if(H.length>0)break;X++;continue}if(/^(>|```|---|\||\s*[-*+]\s|\d+\.\s)/.test(q))break;H.push(q),X++}if(H.length===0)return null;return H.join(" ").trim()}X++}return null}function dH($){let Z=D0($,/^(use\s+cases?|goal)\b/i);if(Z&&p(Z))return Z;let U=lH($);if(U&&p(U))return U;return}function cH($){let Z=D0($,/^(about|description|overview|what(\s+is\s+this)?)\b/i);if(Z&&p(Z))return Z;return}function aH($){let Z=D0($,/^(audience|users?|for\s+whom|who(\s+is\s+this\s+for)?)\b/i);if(Z&&p(Z))return Z;return}function iH($){let Z=D0($,/^(why|motivation|problem|rationale)\b/i);if(Z&&p(Z))return Z;return}function sH($){let Z=D0($,/^(deployment|where(\s+it\s+runs)?|hosting)\b/i);if(Z&&p(Z))return Z;return}function rH($){let Z=D0($,/^(status|history|timeline|since|launched)\b/i);if(Z&&p(Z))return Z;return}function nH($){let Z=D0($,/^(architecture|how(\s+it\s+works)?|approach|design)\b/i);if(Z&&p(Z))return Z;return}function k9($){let Z=["README.md","README.MD","Readme.md","readme.md"],U=null;for(let O of Z){let _=mH($,O);if(kH(_)){U=_;break}}if(!U)return{};let X;try{X=vH(U,"utf-8")}catch{return{}}let z={},Q=dH(X);if(Q)z.project={goal:Q};let J={},H=cH(X);if(H)J.what=H;let q=aH(X);if(q)J.who=q;let G=iH(X);if(G)J.why=G;let W=sH(X);if(W)J.where=W;let Y=rH(X);if(Y)J.when=Y;let V=nH(X);if(V)J.how=V;if(Object.keys(J).length>0)z.human_context=J;return z}import{existsSync as oH,readFileSync as tH}from"fs";import{join as eH}from"path";function $q($,Z){let U=$.split(`
|
|
223
|
+
`),X=!1;for(let z of U){let Q=z.trim();if(/^\[/.test(Q)){X=Q==="[package]";continue}if(!X)continue;let J=Q.match(new RegExp(`^${Z}\\s*=\\s*(.+)$`));if(J){let H=J[1].trim();H=H.replace(/\s*#.*$/,"").trim();let q=H.match(/^"((?:[^"\\]|\\.)*)"$/)||H.match(/^'((?:[^'\\]|\\.)*)'$/);if(q)return q[1];return H}}return null}function v9($){let Z=eH($,"Cargo.toml");if(!oH(Z))return{};let U;try{U=tH(Z,"utf-8")}catch{return{}}let X=$q(U,"description");if(X&&p(X))return{project:{goal:X}};return{}}function Zq($,Z){let U={project:{...Z.project??{},...$.project??{}},human_context:{...Z.human_context??{},...$.human_context??{}}};if(U.project&&Object.keys(U.project).length===0)delete U.project;if(U.human_context&&Object.keys(U.human_context).length===0)delete U.human_context;return U}function $6($){return Zq(k9($),v9($))}function Uq($){let Z=t4($),U=$6($),X=Y2(Z,U);Xq(X);let z=Y2(X,x9($));return Y2(z,{human_context:h9($)})}function Xq($){let Z=$.project?.type??"library",U=I0[Z]||I0.library;for(let X of y){if(U.includes(X.category))continue;let[z,Q]=X.path.split(".");if(z==="stack"&&$.stack)$.stack[Q]="slotignored";if(z==="monorepo"&&$.monorepo)$.monorepo[Q]="slotignored"}}function Y2($,Z){let U={...$};for(let[X,z]of Object.entries(Z)){let Q=U[X];if(H0(Q))U[X]=z;else if(typeof z==="object"&&z!==null&&!Array.isArray(z)&&typeof Q==="object"&&Q!==null&&!Array.isArray(Q))U[X]=Y2(Q,z)}return U}export{SJ as writeServerCard,TJ as writeProjectHtml,D6 as validateFaf,x9 as turboCatSlots,E4 as turboCatScan,J6 as slotsByCategory,T4 as seedSixWsFromGoal,_2 as scoreFafYaml,kJ as runLoop,h4 as relentlessContextDetailed,h9 as relentlessContext,CJ as registryName,bJ as registryMeta,z4 as readFafRaw,WJ as readFaf,j9 as questionForSlot,dJ as publicQuestions,q2 as normalizeAnswer,A4 as loopVerdict,L2 as kernel,H0 as isPlaceholder,F4 as isHumanSlot,H2 as isEmptyValue,gJ as interviewForMissing,cJ as gradeAnswers,m0 as getTier,G6 as getNextTier,W4 as generateServerCard,G4 as generateProjectHtml,Q4 as findFafFile,b9 as fafContextBlock,c9 as enrichScore,lJ as deriveQuestionSet,K4 as classifyGaps,hJ as buildTableOf8,aJ as buildReceipt,Uq as assembleFreshFaf,C4 as answersMatch,i as TIERS,M4 as STACK_INTERVIEW,u0 as SLOT_BY_PATH,y as SLOTS,C9 as SIX_WS_INTERVIEW,O4 as REGISTRY_PUBLISHER_KEY,_$ as PLACEHOLDERS,R4 as INTERVIEW_VERSION,EJ as INTERVIEW_PATHS,P4 as INTERVIEW_BY_PATH,g0 as INTERVIEW,v0 as FAF_HEX,q6 as ENTERPRISE_SLOTS,E9 as BENCH_VERSION,H6 as BASE_SLOTS,b4 as ALIAS_GROUPS};
|
|
224
224
|
|
|
225
|
-
//# debugId=
|
|
225
|
+
//# debugId=1575DADF27D56D1664756E2164756E21
|
|
226
226
|
//# sourceMappingURL=index.js.map
|