faf-cli 7.0.0 → 7.0.2
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/dist/cli.js +237 -231
- package/dist/cli.js.map +12 -11
- package/dist/index.js +74 -74
- package/dist/index.js.map +5 -5
- package/dist/interop/faf.d.ts +7 -0
- package/dist/interop/servercard.d.ts +9 -0
- package/package.json +1 -1
- package/project.faf +8 -0
package/dist/index.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import{createRequire as z6}from"node:module";var $6=Object.defineProperty;var R=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var Z6=($)=>$;function U6($,Z){this[$]=Z6.bind(null,Z)}var X6=($,Z)=>{for(var U in Z)$6($,U,{get:Z[U],enumerable:!0,configurable:!0,set:U6.bind(Z,U)})};var h0=z6(import.meta.url);var b=R((
|
|
2
|
-
`)}}u.defaultYaml={explicit:!1,version:"1.2"};u.defaultTags={"!!":"tag:yaml.org,2002:"};i6.Directives=u});var
|
|
1
|
+
import{createRequire as z6}from"node:module";var $6=Object.defineProperty;var R=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var Z6=($)=>$;function U6($,Z){this[$]=Z6.bind(null,Z)}var X6=($,Z)=>{for(var U in Z)$6($,U,{get:Z[U],enumerable:!0,configurable:!0,set:U6.bind(Z,U)})};var h0=z6(import.meta.url);var b=R((T6)=>{var D9=Symbol.for("yaml.alias"),a2=Symbol.for("yaml.document"),R$=Symbol.for("yaml.map"),i2=Symbol.for("yaml.pair"),I9=Symbol.for("yaml.scalar"),M$=Symbol.for("yaml.seq"),s=Symbol.for("yaml.node.type"),D6=($)=>!!$&&typeof $==="object"&&$[s]===D9,I6=($)=>!!$&&typeof $==="object"&&$[s]===a2,R6=($)=>!!$&&typeof $==="object"&&$[s]===R$,M6=($)=>!!$&&typeof $==="object"&&$[s]===i2,s2=($)=>!!$&&typeof $==="object"&&$[s]===I9,P6=($)=>!!$&&typeof $==="object"&&$[s]===M$;function r2($){if($&&typeof $==="object")switch($[s]){case R$:case M$:return!0}return!1}function F6($){if($&&typeof $==="object")switch($[s]){case D9:case R$:case I9:case M$:return!0}return!1}var K6=($)=>(s2($)||r2($))&&!!$.anchor;T6.ALIAS=D9;T6.DOC=a2;T6.MAP=R$;T6.NODE_TYPE=s;T6.PAIR=i2;T6.SCALAR=I9;T6.SEQ=M$;T6.hasAnchor=K6;T6.isAlias=D6;T6.isCollection=r2;T6.isDocument=I6;T6.isMap=R6;T6.isNode=F6;T6.isPair=M6;T6.isScalar=s2;T6.isSeq=P6});var p0=R((m6)=>{var f=b(),h=Symbol("break visit"),n2=Symbol("skip children"),c=Symbol("remove node");function P$($,Z){let U=o2(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=n2;P$.REMOVE=c;function M0($,Z,U,X){let z=t2($,Z,U,X);if(f.isNode(z)||f.isPair(z))return e2($,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 F$($,Z){let U=o2(Z);if(f.isDocument($)){if(await P0(null,$.contents,U,Object.freeze([$]))===c)$.contents=null}else await P0(null,$,U,Object.freeze([]))}F$.BREAK=h;F$.SKIP=n2;F$.REMOVE=c;async function P0($,Z,U,X){let z=await t2($,Z,U,X);if(f.isNode(z)||f.isPair(z))return e2($,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 o2($){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 t2($,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 e2($,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`)}}m6.visit=P$;m6.visitAsync=F$});var R9=R((i6)=>{var $3=b(),d6=p0(),c6={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},a6=($)=>$.replace(/[!,[\]{}]/g,(Z)=>c6[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+a6($.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={};d6.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:"};i6.Directives=u});var K$=R((t6)=>{var Z3=b(),r6=p0();function n6($){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 r6.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 o6($,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 q=Error("Failed to resolve repeated object (this should not happen)");throw q.source=Q,q}}},sourceObjects:X}}t6.anchorIsValid=n6;t6.anchorNames=U3;t6.createNodeAnchors=o6;t6.findNewAnchor=X3});var M9=R((XZ)=>{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],q=l0($,X,String(z),J);if(q===void 0)delete X[z];else if(q!==J)X[z]=q}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)}XZ.applyReviver=l0});var t=R((JZ)=>{var QZ=b();function z3($,Z,U){if(Array.isArray($))return $.map((X,z)=>z3(X,String(z),U));if($&&typeof $.toJSON==="function"){if(!U||!QZ.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 $}JZ.toJS=z3});var T$=R((YZ)=>{var HZ=M9(),Q3=b(),GZ=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=GZ.toJS(this,"",Q);if(typeof X==="function")for(let{count:q,res:H}of Q.anchors.values())X(H,q);return typeof z==="function"?HZ.applyReviver(z,{"":J},"",J):J}}YZ.NodeBase=J3});var d0=R((_Z)=>{var VZ=K$(),WZ=p0(),F0=b(),OZ=T$(),LZ=t();class q3 extends OZ.NodeBase{constructor($){super(F0.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=[],WZ.visit($,{Node:(z,Q)=>{if(F0.isAlias(Q)||F0.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 q=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(q)}let J=U.get(Q);if(!J)LZ.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(VZ.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(F0.isAlias(Z)){let X=Z.resolve($),z=U&&X&&U.get(X);return z?z.count*z.aliasCount:0}else if(F0.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(F0.isPair(Z)){let X=A$($,Z.key,U),z=A$($,Z.value,U);return Math.max(X,z)}return 1}_Z.Alias=q3});var g=R((FZ)=>{var IZ=b(),RZ=T$(),MZ=t(),PZ=($)=>!$||typeof $!=="function"&&typeof $!=="object";class H0 extends RZ.NodeBase{constructor($){super(IZ.SCALAR);this.value=$}toJSON($,Z){return Z?.keep?this.value:MZ.toJS(this.value,$,Z)}toString(){return String(this.value)}}H0.BLOCK_FOLDED="BLOCK_FOLDED";H0.BLOCK_LITERAL="BLOCK_LITERAL";H0.PLAIN="PLAIN";H0.QUOTE_DOUBLE="QUOTE_DOUBLE";H0.QUOTE_SINGLE="QUOTE_SINGLE";FZ.Scalar=H0;FZ.isScalarValue=PZ});var c0=R((CZ)=>{var AZ=d0(),G0=b(),H3=g(),NZ="tag:yaml.org,2002:";function wZ($,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 bZ($,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:q}=U,H=void 0;if(X&&$&&typeof $==="object")if(H=q.get($),H)return H.anchor??(H.anchor=z($)),new AZ.Alias(H.anchor);else H={anchor:null,node:null},q.set($,H);if(Z?.startsWith("!!"))Z=NZ+Z.slice(2);let G=wZ($,Z,J.tags);if(!G){if($&&typeof $.toJSON==="function")$=$.toJSON();if(!$||typeof $!=="object"){let Y=new H3.Scalar($);if(H)H.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 H3.Scalar($);if(Z)W.tag=Z;else if(!G.default)W.tag=G.tag;if(H)H.node=W;return W}CZ.createNode=bZ});var N$=R((gZ)=>{var SZ=c0(),a=b(),EZ=T$();function P9($,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 SZ.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 EZ.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,P9(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,P9(this.schema,X,Z));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${X}`)}}}gZ.Collection=Y3;gZ.collectionFromPath=P9;gZ.isEmptyPath=G3});var a0=R((kZ)=>{var hZ=($)=>$.replace(/^(?!$)(?: $)?/gm,"#");function F9($,Z){if(/^\n+$/.test($))return $.substring(1);return Z?$.replace(/^(?! *$)/gm,Z):$}var uZ=($,Z,U)=>$.endsWith(`
|
|
3
3
|
`)?F9(U,Z):U.includes(`
|
|
4
4
|
`)?`
|
|
5
|
-
`+F9(U,Z):($.endsWith(" ")?"":" ")+U;kZ.indentComment=F9;kZ.lineComment=uZ;kZ.stringifyComment=hZ});var V3=R((dZ)=>{function lZ($,Z,U="flow",{indentAtStart:X,lineWidth:z=80,minContentWidth:Q=20,onFold:J,onOverflow:q}={}){if(!z||z<0)return $;if(z<Q)Q=0;let H=Math.max(1+Q,1+z-Z.length);if($.length<=H)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,
|
|
6
|
-
`){if(U==="block")B=B3($,B,Z.length);Y=B+Z.length+H,V=void 0}else{if(
|
|
7
|
-
`&&
|
|
8
|
-
`&&A!=="\t")V=B}if(B>=Y)if(V)G.push(V),Y=V+H,V=void 0;else if(U==="quoted"){while(
|
|
9
|
-
${Z}${$.slice(0,
|
|
10
|
-
${Z}${$.slice(A+1,
|
|
5
|
+
`+F9(U,Z):($.endsWith(" ")?"":" ")+U;kZ.indentComment=F9;kZ.lineComment=uZ;kZ.stringifyComment=hZ});var V3=R((dZ)=>{function lZ($,Z,U="flow",{indentAtStart:X,lineWidth:z=80,minContentWidth:Q=20,onFold:J,onOverflow:q}={}){if(!z||z<0)return $;if(z<Q)Q=0;let H=Math.max(1+Q,1+z-Z.length);if($.length<=H)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+H}for(let K;K=$[B+=1];){if(U==="quoted"&&K==="\\"){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(K===`
|
|
6
|
+
`){if(U==="block")B=B3($,B,Z.length);Y=B+Z.length+H,V=void 0}else{if(K===" "&&O&&O!==" "&&O!==`
|
|
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+H,V=void 0;else if(U==="quoted"){while(O===" "||O==="\t")O=K,K=$[B+=1],_=!0;let A=B>I+1?B-2:L-1;if(W[A])return $;G.push(A),W[A]=!0,Y=A+H,V=void 0}else _=!0}O=K}if(_&&q)q();if(G.length===0)return $;if(J)J();let M=$.slice(0,G[0]);for(let K=0;K<G.length;++K){let A=G[K],T=G[K+1]||$.length;if(A===0)M=`
|
|
9
|
+
${Z}${$.slice(0,T)}`;else{if(U==="quoted"&&W[A])M+=`${$[A]}\\`;M+=`
|
|
10
|
+
${Z}${$.slice(A+1,T)}`}}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
11
|
`);X=Z,z=Z+1,Q=$[z]}return X}dZ.FOLD_BLOCK="block";dZ.FOLD_FLOW="flow";dZ.FOLD_QUOTED="quoted";dZ.foldFlowLines=lZ});var s0=R((tZ)=>{var v=g(),e=V3(),b$=($,Z)=>({indentAtStart:Z?$.indent.length:$.indentAtStart,lineWidth:$.options.lineWidth,minContentWidth:$.options.minContentWidth}),C$=($)=>/^(%|---|\.\.\.)/m.test($);function rZ($,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
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="",q=0;for(let H=0,G=U[H];G;G=U[++H]){if(G===" "&&U[H+1]==="\\"&&U[H+2]==="n")J+=U.slice(q,H)+"\\ ",H+=1,q=H,G="\\";if(G==="\\")switch(U[H+1]){case"u":{J+=U.slice(q,H);let W=U.substr(H+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(H,6)}H+=5,q=H+1}break;case"n":if(X||U[H+2]==='"'||U.length<z)H+=1;else{J+=U.slice(q,H)+`
|
|
13
13
|
|
|
14
14
|
`;while(U[H+2]==="\\"&&U[H+3]==="n"&&U[H+4]!=='"')J+=`
|
|
15
|
-
`,H+=2;if(J+=Q,U[H+2]===" ")J+="\\";H+=1,q=H+1}break;default:H+=1}}return J=q?J+U.slice(q):U,X?J:e.foldFlowLines(J,Q,e.FOLD_QUOTED,b$(Z,!1))}function
|
|
15
|
+
`,H+=2;if(J+=Q,U[H+2]===" ")J+="\\";H+=1,q=H+1}break;default:H+=1}}return J=q?J+U.slice(q):U,X?J:e.foldFlowLines(J,Q,e.FOLD_QUOTED,b$(Z,!1))}function K9($,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 K0($,Z){let{singleQuote:U}=Z.options,X;if(U===!1)X=i0;else{let z=$.includes('"'),Q=$.includes("'");if(z&&!Q)X=K9;else if(Q&&!z)X=i0;else X=U?K9:i0}return X($,Z)}var T9;try{T9=new RegExp(`(^|(?<!
|
|
18
18
|
))
|
|
19
19
|
+(?!
|
|
20
|
-
|$)`,"g")}catch{
|
|
20
|
+
|$)`,"g")}catch{T9=/\n+(?!\n|$)/g}function w$({comment:$,type:Z,value:U},X,z,Q){let{blockQuote:J,commentString:q,lineWidth:H}=X.options;if(!J||/\n[\t ]+$/.test(U))return K0(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:!rZ(U,H,G.length);if(!U)return W?`|
|
|
21
21
|
`:`>
|
|
22
|
-
`;let Y,V;for(V=U.length;V>0;--V){let
|
|
23
|
-
`&&
|
|
24
|
-
`);if(_===-1)Y="-";else if(U===
|
|
25
|
-
`)
|
|
26
|
-
`)I=
|
|
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}${
|
|
22
|
+
`;let Y,V;for(V=U.length;V>0;--V){let T=U[V-1];if(T!==`
|
|
23
|
+
`&&T!=="\t"&&T!==" ")break}let O=U.substring(V),_=O.indexOf(`
|
|
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(T9,`$&${G}`)}let B=!1,L,I=-1;for(L=0;L<U.length;++L){let T=U[L];if(T===" ")B=!0;else if(T===`
|
|
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+=" "+q($.replace(/ ?[\r\n]+/g," ")),z)z()}if(!W){let T=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}${T}${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}${
|
|
30
|
-
`)||W&&/[[\]{},]/.test(Q))return
|
|
31
|
-
`)?
|
|
32
|
-
`))return w$($,Z,U,X);if(C$(Q)){if(H==="")return Z.forceBlockIndent=!0,w$($,Z,U,X);else if(q&&H===G)return
|
|
33
|
-
${H}`);if(J){let V=(B)=>B.default&&B.tag!=="tag:yaml.org,2002:str"&&B.test?.test(Y),{compat:
|
|
34
|
-
${Z.indent}${q}`}q1.createStringifyContext=X1;q1.stringify=J1});var
|
|
35
|
-
${q}:`}else if(
|
|
29
|
+
${G}${M}${U}${O}`}function nZ($,Z,U,X){let{type:z,value:Q}=$,{actualString:J,implicitKey:q,indent:H,indentStep:G,inFlow:W}=Z;if(q&&Q.includes(`
|
|
30
|
+
`)||W&&/[[\]{},]/.test(Q))return K0(Q,Z);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(Q))return q||W||!Q.includes(`
|
|
31
|
+
`)?K0(Q,Z):w$($,Z,U,X);if(!q&&!W&&z!==v.Scalar.PLAIN&&Q.includes(`
|
|
32
|
+
`))return w$($,Z,U,X);if(C$(Q)){if(H==="")return Z.forceBlockIndent=!0,w$($,Z,U,X);else if(q&&H===G)return K0(Q,Z)}let Y=Q.replace(/\n+/g,`$&
|
|
33
|
+
${H}`);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 K0(Q,Z)}return q?Y:e.foldFlowLines(Y,H,e.FOLD_FLOW,b$(Z,!1))}function oZ($,Z,U,X){let{implicitKey:z,inFlow:Q}=Z,J=typeof $.value==="string"?$:Object.assign({},$,{value:String($.value)}),{type:q}=$;if(q!==v.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(J.value))q=v.Scalar.QUOTE_DOUBLE}let H=(W)=>{switch(W){case v.Scalar.BLOCK_FOLDED:case v.Scalar.BLOCK_LITERAL:return z||Q?K0(J.value,Z):w$(J,Z,U,X);case v.Scalar.QUOTE_DOUBLE:return i0(J.value,Z);case v.Scalar.QUOTE_SINGLE:return K9(J.value,Z);case v.Scalar.PLAIN:return nZ(J,Z,U,X);default:return null}},G=H(q);if(G===null){let{defaultKeyType:W,defaultStringType:Y}=Z.options,V=z&&W||Y;if(G=H(V),G===null)throw Error(`Unsupported default string type ${V}`)}return G}tZ.stringifyString=oZ});var r0=R((q1)=>{var $1=K$(),$0=b(),Z1=a0(),U1=s0();function X1($,Z){let U=Object.assign({blockQuote:!0,commentString:Z1.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,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 z1($,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 Q1($,Z,{anchors:U,doc:X}){if(!X.directives)return"";let z=[],Q=($0.isScalar($)||$0.isCollection($))&&$.anchor;if(Q&&$1.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 J1($,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:(H)=>z=H});z??(z=z1(Z.doc.schema.tags,Q));let J=Q1(Q,z,Z);if(J.length>0)Z.indentAtStart=(Z.indentAtStart??0)+J.length+1;let q=typeof z.stringify==="function"?z.stringify(Q,Z,U,X):$0.isScalar(Q)?U1.stringifyString(Q,Z,U,X):Q.toString(Z,U,X);if(!J)return q;return $0.isScalar(Q)||q[0]==="{"||q[0]==="["?`${J} ${q}`:`${J}
|
|
34
|
+
${Z.indent}${q}`}q1.createStringifyContext=X1;q1.stringify=J1});var L3=R((B1)=>{var r=b(),W3=g(),O3=r0(),n0=a0();function Y1({key:$,value:Z},U,X,z){let{allNullValues:Q,doc:J,indent:q,indentStep:H,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:q+H});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
|
+
${q}:`}else if(L=`${L}:`,V)L+=n0.lineComment(L,U.indent,G(V));let I,M,K;if(r.isNode(Z))I=!!Z.spaceBefore,M=Z.commentBefore,K=Z.comment;else if(I=!1,M=null,K=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&&H.length>=2&&!U.inFlow&&!O&&r.isSeq(Z)&&!Z.flow&&!Z.tag&&!Z.anchor)U.indent=U.indent.substring(2);let A=!1,T=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(T===""&&!U.inFlow){if(N===`
|
|
38
|
+
`&&K)N=`
|
|
39
39
|
|
|
40
40
|
`}else N+=`
|
|
41
|
-
${U.indent}`}else if(!
|
|
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(
|
|
41
|
+
${U.indent}`}else if(!O&&r.isCollection(Z)){let C=T[0],D=T.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=T.indexOf(" ");if(C==="&"&&E!==-1&&E<D&&T[E+1]==="!")E=T.indexOf(" ",E+1);if(E===-1||D<E)d=!0}if(!d)N=`
|
|
43
|
+
${U.indent}`}}else if(T===""||T[0]===`
|
|
44
|
+
`)N="";if(L+=N+T,U.inFlow){if(A&&X)X()}else if(K&&!A)L+=n0.lineComment(L,U.indent,G(K));else if(B&&z)z();return L}B1.stringifyPair=Y1});var A9=R((L1)=>{var _3=h0("process");function W1($,...Z){if($==="debug")console.log(...Z)}function O1($,Z){if($==="debug"||$==="warn")if(typeof _3.emitWarning==="function")_3.emitWarning(Z);else console.warn(Z)}L1.debug=W1;L1.warn=O1});var E$=R((R1)=>{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$},I1=($,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)N9($,Z,X);else if(Array.isArray(U))for(let X of U)N9($,Z,X);else N9($,Z,U)}function N9($,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}R1.addMergeToJSMap=I3;R1.isMergeKey=I1;R1.merge=S$});var b9=R((w1)=>{var K1=A9(),R3=E$(),T1=r0(),M3=b(),w9=t();function A1($,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=w9.toJS(U,"",$);if(Z instanceof Map)Z.set(z,w9.toJS(X,z,$));else if(Z instanceof Set)Z.add(z);else{let Q=N1(U,z,$),J=w9.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 N1($,Z,U){if(Z===null)return"";if(typeof Z!=="object")return String(Z);if(M3.isNode($)&&U?.doc){let X=T1.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)+'..."';K1.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)}w1.addPairToJSMap=A1});var Z0=R((E1)=>{var P3=c0(),C1=L3(),j1=b9(),g$=b();function S1($,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 j1.addPairToJSMap(Z,U,this)}toString($,Z,U){return $?.doc?C1.stringifyPair(this,$,Z,U):JSON.stringify(this)}}E1.Pair=f$;E1.createPair=S1});var C9=R((u1)=>{var Y0=b(),F3=r0(),y$=a0();function y1($,Z,U){return(Z.inFlow??$.flow?h1:x1)($,Z,U)}function x1({comment:$,items:Z},U,{blockItemPrefix:X,flowChars:z,itemIndent:Q,onChompKeep:J,onComment:q}){let{indent:H,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=F3.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
45
|
${H}${B}`:`
|
|
46
|
-
`}}if($){if(
|
|
47
|
-
`+y$.indentComment(G($),H),q)q()}else if(Y&&J)J();return
|
|
48
|
-
`)))G=!0;Y.push(I),W=Y.length}let{start:V,end:
|
|
46
|
+
`}}if($){if(O+=`
|
|
47
|
+
`+y$.indentComment(G($),H),q)q()}else if(Y&&J)J();return O}function h1({items:$},Z,{flowChars:U,itemIndent:X}){let{indent:z,indentStep:Q,flowCollectionPadding:J,options:{commentString:q}}=Z;X+=Q;let H=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 K=Y0.isNode(B.value)?B.value:null;if(K){if(K.comment)L=K.comment;if(K.commentBefore)G=!0}else if(B.value==null&&M?.comment)L=M.comment}if(L)G=!0;let I=F3.stringify(B,H,()=>L=null);if(_<$.length-1)I+=",";if(L)I+=y$.lineComment(I,X,q(L));if(!G&&(Y.length>W||I.includes(`
|
|
48
|
+
`)))G=!0;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}${
|
|
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())}}u1.stringifyCollection=y1});var X0=R((d1)=>{var v1=C9(),m1=b9(),p1=N$(),U0=b(),h$=Z0(),l1=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 K3 extends p1.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=(q,H)=>{if(typeof z==="function")H=z.call(Z,q,H);else if(Array.isArray(z)&&!z.includes(q))return;if(H!==void 0||X)Q.items.push(h$.createPair(q,H,U))};if(Z instanceof Map)for(let[q,H]of Z)J(q,H);else if(Z&&typeof Z==="object")for(let q of Object.keys(Z))J(q,Z[q]);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)&&l1.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)m1.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 v1.stringifyCollection(this,$,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:$.indent||"",onChompKeep:U,onComment:Z})}}d1.YAMLMap=K3;d1.findPair=t0});var T0=R((r1)=>{var i1=b(),T3=X0(),s1={collection:"map",default:!0,nodeClass:T3.YAMLMap,tag:"tag:yaml.org,2002:map",resolve($,Z){if(!i1.isMap($))Z("Expected a mapping for this tag");return $},createNode:($,Z,U)=>T3.YAMLMap.from($,Z,U)};r1.map=s1});var z0=R((U5)=>{var o1=c0(),t1=C9(),e1=N$(),k$=b(),$5=g(),Z5=t();class A3 extends e1.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)&&$5.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(Z5.toJS(z,String(X++),Z));return U}toString($,Z,U){if(!$)return JSON.stringify(this);return t1.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 q=Z instanceof Set?J:String(Q++);J=X.call(Z,q,J)}z.items.push(o1.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}U5.YAMLSeq=A3});var A0=R((J5)=>{var z5=b(),N3=z0(),Q5={collection:"seq",default:!0,nodeClass:N3.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve($,Z){if(!z5.isSeq($))Z("Expected a sequence for this tag");return $},createNode:($,Z,U)=>N3.YAMLSeq.from($,Z,U)};J5.seq=Q5});var e0=R((Y5)=>{var H5=s0(),G5={identify:($)=>typeof $==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:($)=>$,stringify($,Z,U,X){return Z=Object.assign({actualString:!0},Z),H5.stringifyString($,Z,U,X)}};Y5.string=G5});var v$=R((V5)=>{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};V5.nullTag=b3});var j9=R((L5)=>{var O5=g(),C3={identify:($)=>typeof $==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:($)=>new O5.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}};L5.boolTag=C3});var N0=R((I5)=>{function D5({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 q=Z-(Q.length-J-1);while(q-- >0)Q+="0"}return Q}I5.stringifyNumber=D5});var E9=R((T5)=>{var M5=g(),S9=N0(),P5={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:S9.stringifyNumber},F5={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():S9.stringifyNumber($)}},K5={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve($){let Z=new M5.Scalar(parseFloat($)),U=$.indexOf(".");if(U!==-1&&$[$.length-1]==="0")Z.minFractionDigits=$.length-U-1;return Z},stringify:S9.stringifyNumber};T5.float=K5;T5.floatExp=F5;T5.floatNaN=P5});var f9=R((S5)=>{var j3=N0(),m$=($)=>typeof $==="bigint"||Number.isInteger($),g9=($,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 b5={identify:($)=>m$($)&&$>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:($,Z,U)=>g9($,2,8,U),stringify:($)=>S3($,8,"0o")},C5={identify:m$,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:($,Z,U)=>g9($,0,10,U),stringify:j3.stringifyNumber},j5={identify:($)=>m$($)&&$>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:($,Z,U)=>g9($,2,16,U),stringify:($)=>S3($,16,"0x")};S5.int=C5;S5.intHex=j5;S5.intOct=b5});var E3=R((m5)=>{var y5=T0(),x5=v$(),h5=A0(),u5=e0(),k5=j9(),y9=E9(),x9=f9(),v5=[y5.map,h5.seq,u5.string,x5.nullTag,k5.boolTag,x9.intOct,x9.int,x9.intHex,y9.floatNaN,y9.floatExp,y9.float];m5.schema=v5});var f3=R((r5)=>{var l5=g(),d5=T0(),c5=A0();function g3($){return typeof $==="bigint"||Number.isInteger($)}var p$=({value:$})=>JSON.stringify($),a5=[{identify:($)=>typeof $==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:($)=>$,stringify:p$},{identify:($)=>$==null,createNode:()=>new l5.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$}],i5={default:!0,tag:"",test:/^/,resolve($,Z){return Z(`Unresolved plain scalar ${JSON.stringify($)}`),$}},s5=[d5.map,c5.seq].concat(a5,i5);r5.schema=s5});var u9=R((e5)=>{var $$=h0("buffer"),h9=g(),o5=s0(),t5={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,q;if(typeof $$.Buffer==="function")q=J instanceof $$.Buffer?J.toString("base64"):$$.Buffer.from(J.buffer).toString("base64");else if(typeof btoa==="function"){let H="";for(let G=0;G<J.length;++G)H+=String.fromCharCode(J[G]);q=btoa(H)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(Z??(Z=h9.Scalar.BLOCK_LITERAL),Z!==h9.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),G=Math.ceil(q.length/H),W=Array(G);for(let Y=0,V=0;Y<G;++Y,V+=H)W[Y]=q.substr(V,H);q=W.join(Z===h9.Scalar.BLOCK_LITERAL?`
|
|
52
52
|
`:" ")}return o5.stringifyString({comment:$,type:Z,value:q},X,z,Q)}};e5.binary=t5});var d$=R((z7)=>{var l$=b(),k9=Z0(),Z7=g(),U7=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 k9.Pair(new Z7.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 K7={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=K7;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=K0(),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=K0(),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=K0(),WU=A0(),LU=e0(),o$=J8(),OU=($,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:LU.string}),Object.defineProperty(this,o9.SEQ,{value:WU.seq}),this.sortMapEntries=typeof Q==="function"?Q:Q===!0?OU: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(`
|
|
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
55
|
`))U.push("..."),U.push(z$.indentComment(H,""));else U.push(`... ${H}`)}else U.push("...");else{let H=$.comment;if(H&&J)H=H.replace(/^\n+/,"");if(H){if((!J||q)&&U[U.length-1]!=="")U.push("");U.push(z$.indentComment(Q(H),""))}}return U.join(`
|
|
56
56
|
`)+`
|
|
57
|
-
`}MU.stringifyDocument=RU});var Q$=R((CU)=>{var FU=d0(),w0=N$(),k=b(),
|
|
57
|
+
`}MU.stringifyDocument=RU});var Q$=R((CU)=>{var FU=d0(),w0=N$(),k=b(),KU=Z0(),TU=t(),AU=e9(),NU=q8(),Z2=K$(),wU=M9(),bU=c0(),U2=R9();class X2{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 U2.Directives({version:Q});this.setSchema(Q,U),this.contents=$===void 0?null:this.createNode($,X,U)}clone(){let $=Object.create(X2.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=Z2.anchorNames(this);$.anchor=!Z||U.has(Z)?Z2.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:q,onTagObj:H,tag:G}=U??{},{onAnchor:W,setAnchors:Y,sourceObjects:V}=Z2.createNodeAnchors(this,Q||"a"),O={aliasDuplicateObjects:z??!0,keepUndefined:q??!1,onAnchor:W,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:V},_=bU.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 U2.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 U2.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 AU.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},q=TU.toJS(this.contents,Z??"",J);if(typeof z==="function")for(let{count:H,res:G}of J.anchors.values())z(G,H);return typeof Q==="function"?wU.applyReviver(Q,{"":q},"",q):q}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 NU.stringifyDocument(this,$)}}function b0($){if(k.isCollection($))return!0;throw Error("Expected a YAML collection as document contents")}CU.Document=X2});var J$=R((EU)=>{class t$ extends Error{constructor($,Z,U,X){super();this.name=$,this.code=U,this.message=X,this.pos=Z}}class H8 extends t${constructor($,Z,U){super("YAMLParseError",$,Z,U)}}class G8 extends t${constructor($,Z,U){super("YAMLWarning",$,Z,U)}}var SU=($,Z)=>(U)=>{if(U.pos[0]===-1)return;U.linePos=U.pos.map((q)=>Z.linePos(q));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 q=Math.min(Q-39,J.length-79);J="…"+J.substring(q),Q-=q-1}if(J.length>80)J=J.substring(0,79)+"…";if(X>1&&/^ *$/.test(J.substring(0,Q))){let q=$.substring(Z.lineStarts[X-2],Z.lineStarts[X-1]);if(q.length>80)q=q.substring(0,79)+`…
|
|
58
58
|
`;J=q+J}if(/[^ ]/.test(J)){let q=1,H=U.linePos[1];if(H?.line===X&&H.col>z)q=Math.max(1,Math.min(H.col-z,80-Q));let G=" ".repeat(Q)+"^".repeat(q);U.message+=`:
|
|
59
59
|
|
|
60
60
|
${J}
|
|
61
61
|
${G}
|
|
62
|
-
`}};EU.YAMLError=t$;EU.YAMLParseError=H8;EU.YAMLWarning=G8;EU.prettifyError=SU});var q$=R((uU)=>{function hU($,{flow:Z,indicator:U,next:X,offset:z,onError:Q,parentIndent:J,startOnNewline:q}){let H=!1,G=q,W=q,Y="",V="",
|
|
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(z2(Z.key)||z2(Z.value))return!0}return!1;default:return!0}}vU.containsNewline=z2});var Q2=R((dU)=>{var pU=e$();function lU($,Z,U){if(Z?.type==="flow-collection"){let X=Z.end[0];if(X.indent===$&&(X.source==="]"||X.source==="}")&&pU.containsNewline(Z))U(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}dU.flowIndentCheck=lU});var J2=R((iU)=>{var Y8=b();function aU($,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))}iU.mapIncludes=aU});var
|
|
64
|
-
`+B.comment;else q.comment=B.comment;continue}if(B.newlineAfterProp||nU.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(H,"BAD_INDENT",
|
|
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 BX.Pair(D,l);if(U.options.keepSourceTokens)d.srcToken=I;if(J){let E=G;if(
|
|
69
|
-
`+
|
|
70
|
-
`.repeat(Math.max(1,J.length-1)):"",
|
|
71
|
-
`;for(let B=W;B<q;++B){let[
|
|
72
|
-
`;else if(
|
|
73
|
-
`;else if(!
|
|
62
|
+
`}};EU.YAMLError=t$;EU.YAMLParseError=H8;EU.YAMLWarning=G8;EU.prettifyError=SU});var q$=R((uU)=>{function hU($,{flow:Z,indicator:U,next:X,offset:z,onError:Q,parentIndent:J,startOnNewline:q}){let H=!1,G=q,W=q,Y="",V="",O=!1,_=!1,B=null,L=null,I=null,M=null,K=null,A=null,T=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")H=!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,T??(T=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,T??(T=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(K)Q(D,"UNEXPECTED_TOKEN",`Unexpected , in ${Z}`);K=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:K,found:A,spaceBefore:H,comment:Y,hasNewline:O,anchor:L,tag:I,newlineAfterProp:M,end:C,start:T??C}}uU.resolveProps=hU});var e$=R((vU)=>{function z2($){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(z2(Z.key)||z2(Z.value))return!0}return!1;default:return!0}}vU.containsNewline=z2});var Q2=R((dU)=>{var pU=e$();function lU($,Z,U){if(Z?.type==="flow-collection"){let X=Z.end[0];if(X.indent===$&&(X.source==="]"||X.source==="}")&&pU.containsNewline(Z))U(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}dU.flowIndentCheck=lU});var J2=R((iU)=>{var Y8=b();function aU($,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))}iU.mapIncludes=aU});var L8=R((eU)=>{var B8=Z0(),rU=X0(),V8=q$(),nU=e$(),W8=Q2(),oU=J2(),O8="All mapping items must start at the same column";function tU({composeNode:$,composeEmptyNode:Z},U,X,z,Q){let q=new(Q?.nodeClass??rU.YAMLMap)(U.schema);if(U.atRoot)U.atRoot=!1;let H=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:H,onError:z,parentIndent:X.indent,startOnNewline:!0}),L=!B.found;if(L){if(V){if(V.type==="block-seq")z(H,"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(H,"BAD_INDENT",O8)}if(!B.anchor&&!B.tag&&!O){if(G=B.end,B.comment)if(q.comment)q.comment+=`
|
|
64
|
+
`+B.comment;else q.comment=B.comment;continue}if(B.newlineAfterProp||nU.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(H,"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,oU.mapIncludes(U,q.items,M))z(I,"DUPLICATE_KEY","Map keys must be unique");let K=V8.resolveProps(O??[],{indicator:"map-value-ind",next:_,offset:M.range[2],onError:z,parentIndent:X.indent,startOnNewline:!V||V.type==="block-scalar"});if(H=K.end,K.found){if(L){if(_?.type==="block-map"&&!K.hasNewline)z(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(U.options.strict&&B.start<K.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,_,K,z):Z(U,H,O,null,K,z);if(U.schema.compat)W8.flowIndentCheck(X.indent,_,z);H=A.range[2];let T=new B8.Pair(M,A);if(U.options.keepSourceTokens)T.srcToken=W;q.items.push(T)}else{if(L)z(M.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(K.comment)if(M.comment)M.comment+=`
|
|
65
|
+
`+K.comment;else M.comment=K.comment;let A=new B8.Pair(M);if(U.options.keepSourceTokens)A.srcToken=W;q.items.push(A)}}if(G&&G<H)z(G,"IMPOSSIBLE","Map comment with trailing content");return q.range=[X.offset,H,G??H],q}eU.resolveBlockMap=tU});var _8=R((QX)=>{var ZX=z0(),UX=q$(),XX=Q2();function zX({composeNode:$,composeEmptyNode:Z},U,X,z,Q){let q=new(Q?.nodeClass??ZX.YAMLSeq)(U.schema);if(U.atRoot)U.atRoot=!1;if(U.atKey)U.atKey=!1;let H=X.offset,G=null;for(let{start:W,value:Y}of X.items){let V=UX.resolveProps(W,{indicator:"seq-item-ind",next:Y,offset:H,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(H,"MISSING_CHAR","Sequence item without - indicator");else{if(G=V.end,V.comment)q.comment=V.comment;continue}let O=Y?$(U,Y,V,z):Z(U,V.end,W,null,V,z);if(U.schema.compat)XX.flowIndentCheck(X.indent,Y,z);H=O.range[2],q.items.push(O)}return q.range=[X.offset,H,G??H],q}QX.resolveBlockSeq=zX});var C0=R((HX)=>{function qX($,Z,U,X){let z="";if($){let Q=!1,J="";for(let q of $){let{source:H,type:G}=q;switch(G){case"space":Q=!0;break;case"comment":{if(U&&!Q)X(q,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let W=H.substring(1)||" ";if(!z)z=W;else z+=J+W;J="";break}case"newline":if(z)J+=H;Q=!0;break;default:X(q,"UNEXPECTED_TOKEN",`Unexpected ${G} at node end`)}Z+=H.length}}return{comment:z,offset:Z}}HX.resolveEnd=qX});var R8=R((DX)=>{var YX=b(),BX=Z0(),D8=X0(),VX=z0(),WX=C0(),I8=q$(),OX=e$(),LX=J2(),q2="Block collections are not allowed within flow collections",H2=($)=>$&&($.type==="block-map"||$.type==="block-seq");function _X({composeNode:$,composeEmptyNode:Z},U,X,z,Q){let J=X.start.source==="{",q=J?"flow map":"flow sequence",G=new(Q?.nodeClass??(J?D8.YAMLMap:VX.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:K,sep:A,value:T}=I,N=I8.resolveProps(M,{flow:q,indicator:"explicit-key-ind",next:K??A?.[0],offset:Y,onError:z,parentIndent:X.indent,startOnNewline:!1});if(!N.found){if(!N.anchor&&!N.tag&&!A&&!T){if(L===0&&N.comma)z(N.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${q}`);else if(L<X.items.length-1)z(N.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${q}`);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&&OX.containsNewline(K))z(K,"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 ${q}`)}else{if(!N.comma)z(N.start,"MISSING_CHAR",`Missing , between ${q} 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(YX.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=T?$(U,T,N,z):Z(U,N.end,A,null,N,z);if(G.items.push(C),Y=C.range[2],H2(T))z(C.range,"BLOCK_IN_FLOW",q2)}else{U.atKey=!0;let C=N.end,D=K?$(U,K,N,z):Z(U,C,M,null,N,z);if(H2(K))z(D.range,"BLOCK_IN_FLOW",q2);U.atKey=!1;let w=I8.resolveProps(A??[],{flow:q,indicator:"map-value-ind",next:T,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(T)if("source"in T&&T.source?.[0]===":")z(T,"MISSING_CHAR",`Missing space after : in ${q}`);else z(w.start,"MISSING_CHAR",`Missing , or : between ${q} items`);let l=T?$(U,T,w,z):w.found?Z(U,w.end,A,null,w,z):null;if(l){if(H2(T))z(l.range,"BLOCK_IN_FLOW",q2)}else if(w.comment)if(D.comment)D.comment+=`
|
|
68
|
+
`+w.comment;else D.comment=w.comment;let d=new BX.Pair(D,l);if(U.options.keepSourceTokens)d.srcToken=I;if(J){let E=G;if(LX.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=q[0].toUpperCase()+q.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=WX.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}DX.resolveFlowCollection=_X});var M8=R((wX)=>{var RX=b(),MX=g(),PX=X0(),FX=z0(),KX=L8(),TX=_8(),AX=R8();function G2($,Z,U,X,z,Q){let J=U.type==="block-map"?KX.resolveBlockMap($,Z,U,X,Q):U.type==="block-seq"?TX.resolveBlockSeq($,Z,U,X,Q):AX.resolveFlowCollection($,Z,U,X,Q),q=J.constructor;if(z==="!"||z===q.tagName)return J.tag=q.tagName,J;if(z)J.tag=z;return J}function NX($,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 q=U.type==="block-map"?"map":U.type==="block-seq"?"seq":U.start.source==="{"?"map":"seq";if(!Q||!J||J==="!"||J===PX.YAMLMap.tagName&&q==="map"||J===FX.YAMLSeq.tagName&&q==="seq")return G2($,Z,U,z,J);let H=Z.schema.tags.find((V)=>V.tag===J&&V.collection===q);if(!H){let V=Z.schema.knownTags[J];if(V?.collection===q)Z.schema.tags.push(Object.assign({},V,{default:!1})),H=V;else{if(V)z(Q,"BAD_COLLECTION_TYPE",`${V.tag} used for ${q} collection, but expects ${V.collection??"scalar"}`,!0);else z(Q,"TAG_RESOLVE_FAILED",`Unresolved tag: ${J}`,!0);return G2($,Z,U,z,J)}}let G=G2($,Z,U,z,J,H),W=H.resolve?.(G,(V)=>z(Q,"TAG_RESOLVE_FAILED",V),Z.options)??G,Y=RX.isNode(W)?W:new MX.Scalar(W);if(Y.range=G.range,Y.tag=J,H?.format)Y.format=H.format;return Y}wX.composeCollection=NX});var B2=R((EX)=>{var Y2=g();function CX($,Z,U){let X=Z.offset,z=jX(Z,$.options.strict,U);if(!z)return{value:"",type:null,comment:"",range:[X,X,X]};let Q=z.mode===">"?Y2.Scalar.BLOCK_FOLDED:Y2.Scalar.BLOCK_LITERAL,J=Z.source?SX(Z.source):[],q=J.length;for(let B=J.length-1;B>=0;--B){let L=J[B][1];if(L===""||L==="\r")q=B;else break}if(q===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 H=Z.indent+z.indent,G=Z.offset+z.length,W=0;for(let B=0;B<q;++B){let[L,I]=J[B];if(I===""||I==="\r"){if(z.indent===0&&L.length>H)H=L.length}else{if(L.length<H)U(G+L.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(z.indent===0)H=L.length;if(W=B,H===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>=q;--B)if(J[B][0].length>H)q=B+1;let Y="",V="",O=!1;for(let B=0;B<W;++B)Y+=J[B][0].slice(H)+`
|
|
71
|
+
`;for(let B=W;B<q;++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<H){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===Y2.Scalar.BLOCK_LITERAL)Y+=V+L.slice(H)+I,V=`
|
|
72
|
+
`;else if(L.length>H||I[0]==="\t"){if(V===" ")V=`
|
|
73
|
+
`;else if(!O&&V===`
|
|
74
74
|
`)V=`
|
|
75
75
|
|
|
76
|
-
`;Y+=V+
|
|
77
|
-
`,
|
|
76
|
+
`;Y+=V+L.slice(H)+I,V=`
|
|
77
|
+
`,O=!0}else if(I==="")if(V===`
|
|
78
78
|
`)Y+=`
|
|
79
79
|
`;else V=`
|
|
80
|
-
`;else Y+=V+I,V=" ",
|
|
80
|
+
`;else Y+=V+I,V=" ",O=!1}switch(z.chomp){case"-":break;case"+":for(let B=q;B<J.length;++B)Y+=`
|
|
81
81
|
`+J[B][0].slice(H);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 jX({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,q="",H=-1;for(let V=1;V<z.length;++V){let
|
|
84
|
+
`}let _=X+z.length+Z.source.length;return{value:Y,type:Q,comment:z.comment,range:[X,_,_]}}function jX({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,q="",H=-1;for(let V=1;V<z.length;++V){let O=z[V];if(!q&&(O==="-"||O==="+"))q=O;else{let _=Number(O);if(!J&&_)J=_;else if(H===-1)H=$+V}}if(H!==-1)X(H,"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:q,comment:W,length:Y}}function SX($){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}EX.resolveBlockScalar=CX});var W2=R((pX)=>{var V2=g(),fX=C0();function yX($,Z,U){let{offset:X,type:z,source:Q,end:J}=$,q,H,G=(V,O,_)=>U(X+V,O,_);switch(z){case"scalar":q=V2.Scalar.PLAIN,H=xX(Q,G);break;case"single-quoted-scalar":q=V2.Scalar.QUOTE_SINGLE,H=hX(Q,G);break;case"double-quoted-scalar":q=V2.Scalar.QUOTE_DOUBLE,H=uX(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=fX.resolveEnd(J,W,Z,U);return{value:H,type:q,comment:Y.comment,range:[X,W,Y.offset]}}function xX($,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 hX($,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=`
|
|
@@ -96,14 +96,14 @@ ${G}
|
|
|
96
96
|
`)break;if(X===`
|
|
97
97
|
`)U+=`
|
|
98
98
|
`;Z+=1,X=$[Z+1]}if(!U)U=" ";return{fold:U,offset:Z}}var vX={"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 mX($,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 q=$.substr(Z-2,U+2);return X(Z-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${q}`),q}return String.fromCodePoint(J)}pX.resolveFlowScalar=yX});var
|
|
99
|
+
`,r:"\r",t:"\t",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function mX($,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 q=$.substr(Z-2,U+2);return X(Z-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${q}`),q}return String.fromCodePoint(J)}pX.resolveFlowScalar=yX});var K8=R((rX)=>{var W0=b(),F8=g(),dX=B2(),cX=W2();function aX($,Z,U,X){let{value:z,type:Q,comment:J,range:q}=Z.type==="block-scalar"?dX.resolveBlockScalar($,Z,X):cX.resolveFlowScalar(Z,$.options.strict,X),H=U?$.directives.tagName(U.source,(Y)=>X(U,"TAG_RESOLVE_FAILED",Y)):null,G;if($.options.stringKeys&&$.atKey)G=$.schema[W0.SCALAR];else if(H)G=iX($.schema,z,H,U,X);else if(Z.type==="scalar")G=sX($,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 F8.Scalar(Y)}catch(Y){let V=Y instanceof Error?Y.message:String(Y);X(U??Z,"TAG_RESOLVE_FAILED",V),W=new F8.Scalar(z)}if(W.range=q,W.source=z,Q)W.type=Q;if(H)W.tag=H;if(G.format)W.format=G.format;if(J)W.comment=J;return W}function iX($,Z,U,X,z){if(U==="!")return $[W0.SCALAR];let Q=[];for(let q of $.tags)if(!q.collection&&q.tag===U)if(q.default&&q.test)Q.push(q);else return q;for(let q of Q)if(q.test?.test(Z))return q;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 sX({atKey:$,directives:Z,schema:U},X,z,Q){let J=U.tags.find((q)=>(q.default===!0||$&&q.default==="key")&&q.test?.test(X))||U[W0.SCALAR];if(U.compat){let q=U.compat.find((H)=>H.default&&H.test?.test(X))??U[W0.SCALAR];if(J.tag!==q.tag){let H=Z.tagString(J.tag),G=Z.tagString(q.tag),W=`Value may be parsed as either ${H} or ${G}`;Q(z,"TAG_RESOLVE_FAILED",W,!0)}}return J}rX.composeScalar=aX});var T8=R((tX)=>{function oX($,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 $}tX.emptyScalarPosition=oX});var w8=R((qz)=>{var $z=d0(),Zz=b(),Uz=M8(),A8=K8(),Xz=C0(),zz=T8(),Qz={composeNode:N8,composeEmptyNode:O2};function N8($,Z,U,X){let z=$.atKey,{spaceBefore:Q,comment:J,anchor:q,tag:H}=U,G,W=!0;switch(Z.type){case"alias":if(G=Jz($,Z,X),q||H)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,H,X),q)G.anchor=q.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":if(G=Uz.composeCollection(Qz,$,Z,U,X),q)G.anchor=q.source.substring(1);break;default:{let Y=Z.type==="error"?Z.message:`Unsupported token (type: ${Z.type})`;X(Z,"UNEXPECTED_TOKEN",Y),G=O2($,Z.offset,void 0,null,U,X),W=!1}}if(q&&G.anchor==="")X(q,"BAD_ALIAS","Anchor cannot be an empty string");if(z&&$.options.stringKeys&&(!Zz.isScalar(G)||typeof G.value!=="string"||G.tag&&G.tag!=="tag:yaml.org,2002:str"))X(H??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 O2($,Z,U,X,{spaceBefore:z,comment:Q,anchor:J,tag:q,end:H},G){let W={type:"scalar",offset:zz.emptyScalarPosition(Z,U,X),indent:-1,source:""},Y=A8.composeScalar($,W,q,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]=H;return Y}function Jz({options:$},{offset:Z,source:U,end:X},z){let Q=new $z.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,q=Xz.resolveEnd(X,J,$.strict,z);if(Q.range=[Z,J,q.offset],q.comment)Q.comment=q.comment;return Q}qz.composeEmptyNode=O2;qz.composeNode=N8});var C8=R((Oz)=>{var Yz=Q$(),b8=w8(),Bz=C0(),Vz=q$();function Wz($,Z,{offset:U,start:X,value:z,end:Q},J){let q=Object.assign({_directives:Z},$),H=new Yz.Document(void 0,q),G={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},W=Vz.resolveProps(X,{indicator:"doc-start",next:z??Q?.[0],offset:U,onError:J,parentIndent:0,startOnNewline:!0});if(W.found){if(H.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")}H.contents=z?b8.composeNode(G,z,W,J):b8.composeEmptyNode(G,W.end,X,null,W,J);let Y=H.contents.range[2],V=Bz.resolveEnd(Q,Y,!1,J);if(V.comment)H.comment=V.comment;return H.range=[U,Y,V.offset],H}Oz.composeDoc=Wz});var L2=R((Pz)=>{var _z=h0("process"),Dz=R9(),Iz=Q$(),H$=J$(),j8=b(),Rz=C8(),Mz=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
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 H$.YAMLWarning(Q,U,X));else this.errors.push(new H$.YAMLParseError(Q,U,X))},this.directives=new Dz.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
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(_z.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=Rz.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 H$.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 H$.YAMLParseError(G$($),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let Z=Mz.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 H$.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 Iz.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}}}Pz.Composer=E8});var y8=R((jz)=>{var
|
|
106
|
+
${Z.comment}`:Z.comment}this.doc.range[2]=Z.offset;break}default:this.errors.push(new H$.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 Iz.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}}}Pz.Composer=E8});var y8=R((jz)=>{var Kz=B2(),Tz=W2(),Az=J$(),g8=s0();function Nz($,Z=!0,U){if($){let X=(z,Q,J)=>{let q=typeof z==="number"?z:Array.isArray(z)?z[0]:z.offset;if(U)U(q,Q,J);else throw new Az.YAMLParseError([q,q+1],Q,J)};switch($.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Tz.resolveFlowScalar($,Z,X);case"block-scalar":return Kz.resolveBlockScalar({options:{strict:Z}},$,X)}}return null}function wz($,Z){let{implicitKey:U=!1,indent:X,inFlow:z=!1,offset:Q=-1,type:J="PLAIN"}=Z,q=g8.stringifyString({type:J,value:$},{implicitKey:U,indent:X>0?" ".repeat(X):"",inFlow:z,options:{blockQuote:!0,lineWidth:-1}}),H=Z.end??[{type:"newline",offset:-1,indent:X,source:`
|
|
107
107
|
`}];switch(q[0]){case"|":case">":{let G=q.indexOf(`
|
|
108
108
|
`),W=q.substring(0,G),Y=q.substring(G+1)+`
|
|
109
109
|
`,V=[{type:"block-scalar-header",offset:Q,indent:X,source:W}];if(!f8(V,H))V.push({type:"newline",offset:-1,indent:X,source:`
|
|
@@ -111,16 +111,16 @@ ${Z.comment}`:Z.comment}this.doc.range[2]=Z.offset;break}default:this.errors.pus
|
|
|
111
111
|
`),X=Z.substring(0,U),z=Z.substring(U+1)+`
|
|
112
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,q=[{type:"block-scalar-header",offset:Q,indent:J,source:X}];if(!f8(q,"end"in $?$.end:void 0))q.push({type:"newline",offset:-1,indent:J,source:`
|
|
113
113
|
`});for(let H of Object.keys($))if(H!=="type"&&H!=="offset")delete $[H];Object.assign($,{type:"block-scalar",indent:J,props:q,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 _2($,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})}}}jz.createScalarToken=wz;jz.resolveAsScalar=Nz;jz.setScalarValue=bz});var x8=R((yz)=>{var fz=($)=>("type"in $)?Z9($):$9($);function Z9($){switch($.type){case"block-scalar":{let Z="";for(let U of $.props)Z+=Z9(U);return Z+$.source}case"block-map":case"block-seq":{let Z="";for(let U of $.items)Z+=$9(U);return Z}case"flow-collection":{let Z=$.start.source;for(let U of $.items)Z+=$9(U);for(let U of $.end)Z+=U.source;return Z}case"document":{let Z=$9($);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 $9({start:$,key:Z,sep:U,value:X}){let z="";for(let Q of $)z+=Q.source;if(Z)z+=Z9(Z);if(U)for(let Q of U)z+=Q.source;if(X)z+=Z9(X);return z}yz.stringify=fz});var k8=R((uz)=>{var D2=Symbol("break visit"),hz=Symbol("skip children"),h8=Symbol("remove item");function
|
|
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})}}}jz.createScalarToken=wz;jz.resolveAsScalar=Nz;jz.setScalarValue=bz});var x8=R((yz)=>{var fz=($)=>("type"in $)?Z9($):$9($);function Z9($){switch($.type){case"block-scalar":{let Z="";for(let U of $.props)Z+=Z9(U);return Z+$.source}case"block-map":case"block-seq":{let Z="";for(let U of $.items)Z+=$9(U);return Z}case"flow-collection":{let Z=$.start.source;for(let U of $.items)Z+=$9(U);for(let U of $.end)Z+=U.source;return Z}case"document":{let Z=$9($);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 $9({start:$,key:Z,sep:U,value:X}){let z="";for(let Q of $)z+=Q.source;if(Z)z+=Z9(Z);if(U)for(let Q of U)z+=Q.source;if(X)z+=Z9(X);return z}yz.stringify=fz});var k8=R((uz)=>{var D2=Symbol("break visit"),hz=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=D2;O0.SKIP=hz;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 q=u8(Object.freeze($.concat([[z,J]])),Q.items[J],U);if(typeof q==="number")J=q-1;else if(q===D2)return D2;else if(q===h8)Q.items.splice(J,1),J-=1}if(typeof X==="function"&&z==="key")X=X(Z,$)}}return typeof X==="function"?X(Z,$):X}uz.visit=O0});var U9=R((az)=>{var I2=y8(),vz=x8(),mz=k8(),R2="\uFEFF",M2="\x02",P2="\x18",F2="\x1F",pz=($)=>!!$&&("items"in $),lz=($)=>!!$&&($.type==="scalar"||$.type==="single-quoted-scalar"||$.type==="double-quoted-scalar"||$.type==="block-scalar");function dz($){switch($){case R2:return"<BOM>";case M2:return"<DOC>";case P2:return"<FLOW_END>";case F2:return"<SCALAR>";default:return JSON.stringify($)}}function cz($){switch($){case R2:return"byte-order-mark";case M2:return"doc-mode";case P2:return"flow-error-end";case F2: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}az.createScalarToken=I2.createScalarToken;az.resolveAsScalar=I2.resolveAsScalar;az.setScalarValue=I2.setScalarValue;az.stringify=vz.stringify;az.visit=mz.visit;az.BOM=R2;az.DOCUMENT=M2;az.FLOW_END=P2;az.SCALAR=F2;az.isCollection=pz;az.isScalar=lz;az.prettyToken=dz;az.tokenType=cz});var
|
|
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}az.createScalarToken=I2.createScalarToken;az.resolveAsScalar=I2.resolveAsScalar;az.setScalarValue=I2.setScalarValue;az.stringify=vz.stringify;az.visit=mz.visit;az.BOM=R2;az.DOCUMENT=M2;az.FLOW_END=P2;az.SCALAR=F2;az.isCollection=pz;az.isScalar=lz;az.prettyToken=dz;az.tokenType=cz});var T2=R((HQ)=>{var Y$=U9();function m($){switch($){case void 0:case" ":case`
|
|
117
117
|
`:case"\r":case"\t":return!0;default:return!1}}var v8=new Set("0123456789ABCDEFabcdef"),JQ=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),X9=new Set(",[]{}"),qQ=new Set(` ,[]{}
|
|
118
|
-
\r `),
|
|
118
|
+
\r `),K2=($)=>!$||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(K2),"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(K2),"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===`
|
|
@@ -130,17 +130,17 @@ ${Z.comment}`:Z.comment}this.doc.range[2]=Z.offset;break}default:this.errors.pus
|
|
|
130
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)||$&&X9.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
132
|
`,z=this.buffer[U+1];else Z=U;if(z==="#"||$&&X9.has(z))break;if(X===`
|
|
133
|
-
`){let Q=this.continueScalar(U+1);if(Q===-1)break;U=Math.max(U,Q-2)}}else{if($&&X9.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(
|
|
133
|
+
`){let Q=this.continueScalar(U+1);if(Q===-1)break;U=Math.max(U,Q-2)}}else{if($&&X9.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(K2))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let $=this.flowLevel>0,Z=this.charAt(1);if(m(Z)||$&&X9.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(JQ.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)}}HQ.Lexer=m8});var A2=R((YQ)=>{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}}}}YQ.LineCounter=p8});var N2=R((
|
|
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)}}HQ.Lexer=m8});var A2=R((YQ)=>{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}}}}YQ.LineCounter=p8});var N2=R((OQ)=>{var VQ=h0("process"),l8=U9(),WQ=T2();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 z9($){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 WQ.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=$,VQ.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=z9(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
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 q=Z.sep[J];switch(q.type){case"newline":Q.push(J);break;case"space":break;case"comment":if(q.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,q=Z.sep;q.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:q}]})}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=z9(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()}}}LQ.Parser=i8});var t8=R((TQ)=>{var s8=O2(),_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)}TQ.parse=PQ;TQ.parseAllDocuments=MQ;TQ.parseDocument=o8;TQ.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,$]])),zH=new Map(y.filter(($)=>$.canonical).map(($)=>[$.canonical,$.path])),QH=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"),qH=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 O9={};X6(O9,{validate:()=>Y6,sdkVersion:()=>O6,scoreFafb:()=>L6,scoreEnterprise:()=>G6,score:()=>L9,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=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.
|
|
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=q4[z]??q4.WHITE,J=Z.inherited?Z.represents?`inherited from ${S0(Z.represents)}`:"inherited":`${Z.score}%`,q=z==="TROPHY"&&!Z.inherited,H=$.human_context??{},G=H4.map((B)=>[B,H[B]]),W=Object.entries(H).filter(([B])=>!H4.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??{}),
|
|
142
|
+
`)}}function O9($){return JSON.parse(o().score_faf($))}function G6($){return JSON.parse(o().score_faf_enterprise($))}function Y6($){return o().validate_faf($)}function B6($){return o().compile_fafb($)}function V6($){return JSON.parse(o().decompile_fafb($))}function W6($){return JSON.parse(o().fafb_info($))}function O6($){return JSON.parse(o().score_fafb($))}function L6(){return o().sdk_version()}function c2($){return{score:$.score,tier:m0($.score),populated:$.populated,empty:$.empty,ignored:$.ignored,active:$.active,total:$.total,slots:$.slots}}function _9($){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 c2(O9($))}function _6($){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 yG,existsSync as Z4}from"fs";import{join as U4,dirname as BJ,basename as hG}from"path";var bQ=L2(),CQ=Q$(),jQ=e9(),w2=J$(),SQ=d0(),J0=b(),EQ=Z0(),gQ=g(),fQ=X0(),yQ=z0(),EG=U9(),xQ=T2(),hQ=A2(),uQ=N2(),Q9=t8(),e8=p0();var kQ=bQ.Composer,vQ=CQ.Document,mQ=jQ.Schema,pQ=w2.YAMLError,lQ=w2.YAMLParseError,dQ=w2.YAMLWarning,cQ=SQ.Alias,aQ=J0.isAlias,iQ=J0.isCollection,sQ=J0.isDocument,rQ=J0.isMap,nQ=J0.isNode,oQ=J0.isPair,tQ=J0.isScalar,eQ=J0.isSeq,$J=EQ.Pair,ZJ=gQ.Scalar,UJ=fQ.YAMLMap,XJ=yQ.YAMLSeq;var zJ=xQ.Lexer,QJ=hQ.LineCounter,JJ=uQ.Parser,V$=Q9.parse,qJ=Q9.parseAllDocuments,HJ=Q9.parseDocument,$4=Q9.stringify,GJ=e8.visit,YJ=e8.visitAsync;function VJ($){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=BJ($);if(U!==$)for(let X of Z){let z=U4(U,X);if(Z4(z))return z}return null}import{writeFileSync as WJ}from"fs";import{join as OJ}from"path";var J4=v0.orange,LJ=v0.cyan,_J=v0.cyanDeep,DJ="#FF9500",IJ="#FF3B30",RJ="#E6EDF3",MJ="#6E7681",q4={TROPHY:{glyph:"\uD83C\uDFC6",color:J4},GOLD:{glyph:"★",color:J4},SILVER:{glyph:"◆",color:LJ},BRONZE:{glyph:"◇",color:_J},GREEN:{glyph:"●",color:RJ},YELLOW:{glyph:"●",color:DJ},RED:{glyph:"○",color:IJ},WHITE:{glyph:"♡",color:MJ}};function S0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var H4=["who","what","why","where","when","how"];function J9($){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=q4[z]??q4.WHITE,J=Z.inherited?Z.represents?`inherited from ${S0(Z.represents)}`:"inherited":`${Z.score}%`,q=z==="TROPHY"&&!Z.inherited,H=$.human_context??{},G=H4.map((B)=>[B,H[B]]),W=Object.entries(H).filter(([B])=>!H4.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,7 +185,7 @@ footer strong{color:#e6edf3}
|
|
|
185
185
|
<span class="score">${J}</span>
|
|
186
186
|
</header>
|
|
187
187
|
<div class="meter"><span></span></div>
|
|
188
|
-
${q?'<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${_?` · ${_}
|
|
188
|
+
${q?'<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>
|
|
@@ -200,7 +200,7 @@ ${J9(Y)||'<p class="muted">—</p>'}
|
|
|
200
200
|
|
|
201
201
|
<section>
|
|
202
202
|
<h2>Stack</h2>
|
|
203
|
-
${
|
|
203
|
+
${O.length?J9(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 PJ($,Z,U,X="project.faf"){WJ(
|
|
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,$])),jJ=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 SJ($,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 EJ=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"]),gJ=[["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]],O4=($)=>EJ.has($.toLowerCase().trim()),fJ=/^(?: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&&fJ.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&&!O4(z))Z.what=z;let Q=gJ.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&&!O4(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 yJ($,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=(L)=>{let _=q[L];if(_)return{value:_,source:"project goal",confidence:0.9};let B=L.startsWith("human_context.")?L.slice(14):"",O=B?J[B]:void 0;return O?{value:O.value,source:O.source,confidence:O.confidence}:void 0},G=C2.map((L,_)=>{let B={n:_+1,path:L.path,header:L.header,question:L.question},O=D4(U,L.path);if(I4(O))return{...B,value:String(O).trim(),status:"filled",seeded:!1};let I=H(L.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((L)=>L.status==="filled").length,Y=G.filter((L)=>L.status==="seeded").length,V=G.filter((L)=>L.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 xJ($,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 T4($){if($==="project.goal")return!0;return u0.get($)?.category==="human"}function K4($,Z=q9){let U=[],X=[];for(let z of g0){let Q=xJ($,z.path);if(Q==="slotignored")continue;if(!Z(Q))continue;(T4(z.path)?U:X).push(z.path)}return{human:U,sourceable:X}}function A4($,Z,U=q9){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"?S2(X):[];return{status:z,score:$,gaps:X,ask:Q}}function S2($){return $.human.map((Z)=>({path:Z,question:j2(Z)}))}function hJ($,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",uJ={"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 kJ($,Z){return uJ[$]??`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 vJ=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&&!vJ.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 mJ($){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:kJ(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 pJ($){return{version:$.version,qsetHash:$.qsetHash,questions:$.questions}}function lJ($,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 dJ($,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 $q,readdirSync as S4,readFileSync as Zq}from"fs";import{join as y2,dirname as Uq,extname as Xq,resolve as zq}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 aJ,readdirSync as iJ}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 sJ=f0.flutterDeps,rJ=f0.mcpDeps,nJ=f0.serverFrameworks,oJ=f0.stateManagement,tJ=f0.routing;function eJ($){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 G9($){let Z=f2($,"pubspec.yaml");if(!j4(Z))return null;let U;try{U=
|
|
213
|
+
`}function PJ($,Z,U,X="project.faf"){WJ(OJ($,"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",TJ="https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",AJ=/^[a-zA-Z0-9.-]+\/[a-zA-Z0-9._-]+$/;function V4($){let Z=String($.project?.name??"project").trim();if(Z.includes("/")&&AJ.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 NJ($){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 b2($,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:TJ,name:V4($),version:String($.project?.version??"0.1.0"),description:NJ($)},X=CJ($)??$.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":b2($,Z)},U}var O4="io.modelcontextprotocol.registry/publisher-provided",B4=4096;function wJ($,Z={}){let U={"one.faf/context":b2($,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 bJ($){return V4($)}function CJ($){let Z=$.project?.title;if(typeof Z==="string"){let U=Z.trim();if(U&&U.length<=100)return U}return}function jJ($,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)",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 G9($){let Z=f2($,"pubspec.yaml");if(!j4(Z))return null;let U;try{U=iJ(Z,"utf-8")}catch{return null}let X=$q(U),z=(K)=>X.has(K.toLowerCase()),Q=rJ.some(z)||/^flutter:\s*$/m.test(U)||/\bsdk:\s*flutter\b/.test(U),J=nJ.find(z),q=oJ.find(([K])=>z(K)),H=tJ.find(([K])=>z(K)),G=H?H[1]:"",W=eJ.find(([K])=>z(K)),Y=W?W[1]:"",V=z("flutter_test")?"flutter_test":z("test")?"test":"",O=/^executables:\s*$/m.test(U),_=!1;try{_=sJ(f2($,"bin")).some((K)=>K.endsWith(".dart"))}catch{}let B=O||_,L,I="",M;if(Q)if(I="Flutter",j4(f2($,"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(q)L="backend",I=q[1],M=`pubspec.yaml + ${q[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 Jq=new Set(["node_modules",".git","dist","build","venv",".venv","__pycache__","target","coverage",".next",".svelte-kit","vendor"]),qq=new Set([".py",".ts",".tsx",".js",".jsx",".svelte",".vue",".rb",".go",".rs",".php",".java",".kt",".swift"]),Hq={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"]},Gq=[["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 Yq($,Z){for(let[U,X]of Gq)if(U in $)return X;return Z.length>0?"framework":"config"}function Bq($){try{let Z=JSON.parse(Uq($,"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 Vq($){let Z=[],U=Qq($),X=Zq(y2($,".git"));for(let z=0;z<10;z++){let Q;try{Q=S4(U)}catch{break}for(let q of Q){let H=g2[q];if(!H)continue;if(q==="manifest.json"&&Bq(y2(U,q))!=="chrome")continue;if(q==="pubspec.yaml"){let G=G9(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:H.priority,frameworks:G.isFlutter?["Flutter","Dart"]:["Dart"],fileName:q});continue}}Z.push({slots:H.slots||{},priority:H.priority,frameworks:H.frameworks,fileName:q})}if(X&&z===0)break;let J=Xq(U);if(J===U)break;U=J}return Z}function Wq($){let Z=[];for(let U of g4($,2,{count:0})){let X=g2[`*${U}`],z=X?.slots?.mainLanguage;if(z)Z.push({slots:{mainLanguage:z},priority:X.priority,frameworks:X.frameworks})}return Z}function E4($){let Z=[...Vq($),...Wq($)],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:Yq(G.slots,G.frameworks),priority:G.priority})}let J=[...Q.values()].sort((G,W)=>W.priority-G.priority||G.fileName.localeCompare(W.fileName)),q=[];if(U.mainLanguage)q.push(U.mainLanguage.toLowerCase());if(U.framework)q.push(U.framework.toLowerCase());let H=q.length>0?q.join("-"):"unknown-stack";return{slotFills:U,frameworks:[...z],confirmedCount:Z.length,discoveredFormats:J,stackSignature:H}}function x2($){let{slotFills:Z}=E4($),U={};for(let[X,z]of Object.entries(Z)){let Q=Hq[X];if(!Q||!z)continue;let[J,q]=Q;if(J==="project")(U.project??={})[q]=z;else(U.stack??={})[q]=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=zq(Q.name);if(qq.has(J))X.add(J);continue}if(Jq.has(Q.name)||Q.name.startsWith("."))continue;for(let J of g4(y2($,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=Oq($),U=Lq($),X={},z=(Q,J)=>{if(J)X[Q]=J};return z("what",_q(Z,U)),z("who",Dq(U)),z("why",Iq(U)),z("where",Rq(Z,U)),z("when",Mq(U)),z("how",Pq(Z,U)),X}function h2($){let Z=h4($),U={};return Object.keys(Z).forEach((X)=>{let z=Z[X];if(z)U[X]=z.value}),U}function Oq($){let Z=x4($,"package.json");if(!f4(Z))return null;try{return JSON.parse(y4(Z,"utf-8"))}catch{return null}}function Lq($){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 O0($){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:O0(X[2]),heading:X[1].trim()}:null}function L$($,Z,U=30){for(let X of Z){let z=$.match(X);if(z&&z[1]&&z[1].trim().length>=U)return O0(z[1])}return null}function Oq($,Z){if($?.description&&$.description.length>20)return x(O0($.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(O0(X),"README:first-paragraph",0.5);let z=L$(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 _q($){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=L$($,[/\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 Dq($){let Z=y0($,"Why|Mission|Motivation|Rationale|Vision");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=L$($,[/(?: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 Iq($,Z){let U=typeof $?.repository==="string"?$.repository:$?.repository?.url;if(U)return x(O0(U.replace(/^git\+/,"").replace(/\.git$/,"")),"package.json:repository",0.95);if($?.homepage)return x(O0($.homepage),"package.json:homepage",0.9);let X=L$(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 Rq($){let Z=y0($,"Timeline|Status|Release|Roadmap");if(Z)return x(Z.body,`README:## ${Z.heading}`,0.8);let U=L$($,[/\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 Mq($,Z){let U=$?.scripts?Object.keys($.scripts):[],X=["start","dev","build"].filter((J)=>U.includes(J));if(X.length)return x(O0(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 Pq($){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 Fq($){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=Pq($);if(U&&/(?:^|[-_])sdk(?:[-_]|$)/i.test(U))return`Cargo.toml name "${U}" → sdk`;return null}function Kq($){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 Aq($){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 Nq($,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 wq($,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 bq($,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 Cq($,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 jq($,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 Sq($,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 Eq($,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 gq($,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 fq($,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 yq($,Z,U){switch($.type){case"dependency":return!!Z?.dependencies?.[$.key];case"devDependency":return!!Z?.devDependencies?.[$.key];case"file":return fq(U,$.pattern);default:return!1}}function u2($){let Z=_0($);return u4.map((U)=>{let z=U.signals.filter((Q)=>yq(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=Cq($,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=Kq($);if(J)return X.push(J),{type:"extension",found:X};let q=Eq($,Z,U);if(q)return X.push(q),{type:"mcpaas",found:X};let H=Sq($,Z);if(H)return X.push(H),{type:"saas",found:X};let G=wq($,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=Nq($,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(Fq($))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 L=U.some((D)=>D.slug==="svelte"||D.slug==="sveltekit");if(Z?.private===!0&&(F(P($,"pnpm-workspace.yaml"))||Z?.workspaces!==void 0)&&L)return X.push("private workspace","Svelte"),{type:"framework",found:X};if(L)return X.push("Svelte/SvelteKit"),{type:"svelte",found:X};let B=U.some((D)=>D.category==="frontend"),O=U.some((D)=>D.category==="backend");if(Z?.private&&(Z.workspaces||F(P($,"pnpm-workspace.yaml")))&&B&&O)return X.push("private workspace + frontend + backend frameworks"),{type:"enterprise",found:X};let I=gq($,Z);if(I)return X.push(I),{type:"monorepo-root",found:X};let M=jq($,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=Aq($);if(N)return X.push(N),{type:"data-science",found:X};let C=bq($,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"),L=U.find((j)=>j.category==="ui"),_=U.find((j)=>j.category==="state"),B=U.find((j)=>j.category==="backend"),O=U.find((j)=>j.category==="database"),I=I0[Q]||I0.library,M=Q==="framework",T=U.some((j)=>j.slug==="svelte"||j.slug==="sveltekit"),A=M&&T?"svelte":M?null:null,K=Q==="svelte"||A==="svelte",N=K?a4($):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]=L?.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]=O?.name??"";break;case"connection":w[S]=O?.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]=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),O$={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)O$.tech_stack=m2;if(p2.length>0)O$.key_files=p2;if(Object.keys(l2).length>0)O$.commands=l2;return O$}import{existsSync as hq,readFileSync as uq}from"fs";import{join as kq}from"path";var t4={MIN_LENGTH:8,MAX_LENGTH:280},xq=[/^(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(xq.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 _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 mq($){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 pq($){let U=mq($).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,q=[];X++;while(X<U.length){let H=U[X].trim(),G=H.match(/^(#{1,6})\s+/);if(G&&G[1].length<=J)break;if(H===""){if(q.length>0)break;X++;continue}if(/^(>|```|---|\||\s*[-*+]\s|\d+\.\s)/.test(H))break;q.push(H),X++}if(q.length===0)return null;return q.join(" ").trim()}X++}return null}function
|
|
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 q=J[1].trim();q=q.replace(/\s*#.*$/,"").trim();let H=q.match(/^"((?:[^"\\]|\\.)*)"$/)||q.match(/^'((?:[^'\\]|\\.)*)'$/);if(H)return H[1];return q}}return null}function v2($){let Z=
|
|
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,q=[];X++;while(X<U.length){let H=U[X].trim(),G=H.match(/^(#{1,6})\s+/);if(G&&G[1].length<=J)break;if(H===""){if(q.length>0)break;X++;continue}if(/^(>|```|---|\||\s*[-*+]\s|\d+\.\s)/.test(H))break;q.push(H),X++}if(q.length===0)return null;return q.join(" ").trim()}X++}return null}function lq($){let Z=D0($,/^(use\s+cases?|goal)\b/i);if(Z&&p(Z))return Z;let U=pq($);if(U&&p(U))return U;return}function dq($){let Z=D0($,/^(about|description|overview|what(\s+is\s+this)?)\b/i);if(Z&&p(Z))return Z;return}function cq($){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 aq($){let Z=D0($,/^(why|motivation|problem|rationale)\b/i);if(Z&&p(Z))return Z;return}function iq($){let Z=D0($,/^(deployment|where(\s+it\s+runs)?|hosting)\b/i);if(Z&&p(Z))return Z;return}function sq($){let Z=D0($,/^(status|history|timeline|since|launched)\b/i);if(Z&&p(Z))return Z;return}function rq($){let Z=D0($,/^(architecture|how(\s+it\s+works)?|approach|design)\b/i);if(Z&&p(Z))return Z;return}function k2($){let Z=["README.md","README.MD","Readme.md","readme.md"],U=null;for(let O of Z){let _=vq($,O);if(uq(_)){U=_;break}}if(!U)return{};let X;try{X=kq(U,"utf-8")}catch{return{}}let z={},Q=lq(X);if(Q)z.project={goal:Q};let J={},q=dq(X);if(q)J.what=q;let H=cq(X);if(H)J.who=H;let G=aq(X);if(G)J.why=G;let W=iq(X);if(W)J.where=W;let Y=sq(X);if(Y)J.when=Y;let V=rq(X);if(V)J.how=V;if(Object.keys(J).length>0)z.human_context=J;return z}import{existsSync as nq,readFileSync as oq}from"fs";import{join as tq}from"path";function eq($,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 q=J[1].trim();q=q.replace(/\s*#.*$/,"").trim();let H=q.match(/^"((?:[^"\\]|\\.)*)"$/)||q.match(/^'((?:[^'\\]|\\.)*)'$/);if(H)return H[1];return q}}return null}function v2($){let Z=tq($,"Cargo.toml");if(!nq(Z))return{};let U;try{U=oq(Z,"utf-8")}catch{return{}}let X=eq(U,"description");if(X&&p(X))return{project:{goal:X}};return{}}function $H($,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 e4($){return $H(k2($),v2($))}function ZH($){let Z=o4($),U=e4($),X=Y9(Z,U);UH(X);let z=Y9(X,x2($));return Y9(z,{human_context:h2($)})}function UH($){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 Y9($,Z){let U={...$};for(let[X,z]of Object.entries(Z)){let Q=U[X];if(q0(Q))U[X]=z;else if(typeof z==="object"&&z!==null&&!Array.isArray(z)&&typeof Q==="object"&&Q!==null&&!Array.isArray(Q))U[X]=Y9(Q,z)}return U}export{jJ as writeServerCard,PJ as writeProjectHtml,_6 as validateFaf,x2 as turboCatSlots,E4 as turboCatScan,Q6 as slotsByCategory,F4 as seedSixWsFromGoal,_9 as scoreFafYaml,uJ as runLoop,h4 as relentlessContextDetailed,h2 as relentlessContext,bJ as registryName,wJ as registryMeta,z4 as readFafRaw,VJ as readFaf,j2 as questionForSlot,lJ as publicQuestions,H9 as normalizeAnswer,A4 as loopVerdict,L9 as kernel,q0 as isPlaceholder,K4 as isHumanSlot,q9 as isEmptyValue,EJ as interviewForMissing,dJ as gradeAnswers,m0 as getTier,H6 as getNextTier,W4 as generateServerCard,G4 as generateProjectHtml,Q4 as findFafFile,b2 as fafContextBlock,c2 as enrichScore,pJ as deriveQuestionSet,T4 as classifyGaps,xJ as buildTableOf8,cJ as buildReceipt,ZH as assembleFreshFaf,C4 as answersMatch,i as TIERS,M4 as STACK_INTERVIEW,u0 as SLOT_BY_PATH,y as SLOTS,C2 as SIX_WS_INTERVIEW,O4 as REGISTRY_PUBLISHER_KEY,_$ as PLACEHOLDERS,R4 as INTERVIEW_VERSION,SJ as INTERVIEW_PATHS,P4 as INTERVIEW_BY_PATH,g0 as INTERVIEW,v0 as FAF_HEX,q6 as ENTERPRISE_SLOTS,E2 as BENCH_VERSION,J6 as BASE_SLOTS,b4 as ALIAS_GROUPS};
|
|
224
224
|
|
|
225
|
-
//# debugId=
|
|
225
|
+
//# debugId=55FCAAE8CC3A663464756E2164756E21
|
|
226
226
|
//# sourceMappingURL=index.js.map
|