faf-cli 6.12.0 → 6.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -4
- package/dist/cli.js +249 -246
- package/dist/cli.js.map +12 -9
- package/dist/core/interview.d.ts +36 -9
- package/dist/core/loop.d.ts +91 -0
- package/dist/detect/dart.d.ts +29 -0
- package/dist/detect/relentless.d.ts +34 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +135 -134
- package/dist/index.js.map +10 -8
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,151 +1,151 @@
|
|
|
1
|
-
import{createRequire as
|
|
2
|
-
`)}}
|
|
3
|
-
`)?
|
|
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((K6)=>{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 T6=($)=>(s2($)||r2($))&&!!$.anchor;K6.ALIAS=D9;K6.DOC=a2;K6.MAP=R$;K6.NODE_TYPE=s;K6.PAIR=i2;K6.SCALAR=I9;K6.SEQ=M$;K6.hasAnchor=T6;K6.isAlias=D6;K6.isCollection=r2;K6.isDocument=I6;K6.isMap=R6;K6.isNode=F6;K6.isPair=M6;K6.isScalar=s2;K6.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 T$=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 K$=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=T$(),WZ=p0(),F0=b(),LZ=K$(),OZ=t();class q3 extends LZ.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)OZ.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=K$(),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=K$();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
|
+
`)?F9(U,Z):U.includes(`
|
|
4
4
|
`)?`
|
|
5
|
-
`+
|
|
6
|
-
`){if(U==="block")
|
|
7
|
-
`&&
|
|
8
|
-
`&&A!=="\t")B
|
|
9
|
-
${Z}${$.slice(0,
|
|
10
|
-
${Z}${$.slice(A+1,
|
|
11
|
-
`);
|
|
12
|
-
`){if(Q-J>
|
|
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,L=void 0,_=!1,B=-1,O=-1,I=-1;if(U==="block"){if(B=B3($,B,Z.length),B!==-1)Y=B+H}for(let T;T=$[B+=1];){if(U==="quoted"&&T==="\\"){switch(O=B,$[B+1]){case"x":B+=3;break;case"u":B+=5;break;case"U":B+=9;break;default:B+=1}I=B}if(T===`
|
|
6
|
+
`){if(U==="block")B=B3($,B,Z.length);Y=B+Z.length+H,V=void 0}else{if(T===" "&&L&&L!==" "&&L!==`
|
|
7
|
+
`&&L!=="\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(L===" "||L==="\t")L=T,T=$[B+=1],_=!0;let A=B>I+1?B-2:O-1;if(W[A])return $;G.push(A),W[A]=!0,Y=A+H,V=void 0}else _=!0}L=T}if(_&&q)q();if(G.length===0)return $;if(J)J();let M=$.slice(0,G[0]);for(let T=0;T<G.length;++T){let A=G[T],K=G[T+1]||$.length;if(A===0)M=`
|
|
9
|
+
${Z}${$.slice(0,K)}`;else{if(U==="quoted"&&W[A])M+=`${$[A]}\\`;M+=`
|
|
10
|
+
${Z}${$.slice(A+1,K)}`}}return M}function B3($,Z,U){let X=Z,z=Z+1,Q=$[z];while(Q===" "||Q==="\t")if(Z<z+U)Q=$[++Z];else{do Q=$[++Z];while(Q&&Q!==`
|
|
11
|
+
`);X=Z,z=Z+1,Q=$[z]}return X}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
|
+
`){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,
|
|
16
|
-
`)||/[ \t]\n|\n[ \t]/.test($))return
|
|
17
|
-
${U}`)+"'";return Z.implicitKey?
|
|
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 T9($,Z){if(Z.options.singleQuote===!1||Z.implicitKey&&$.includes(`
|
|
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 T0($,Z){let{singleQuote:U}=Z.options,X;if(U===!1)X=i0;else{let z=$.includes('"'),Q=$.includes("'");if(z&&!Q)X=T9;else if(Q&&!z)X=i0;else X=U?T9:i0}return X($,Z)}var K9;try{K9=new RegExp(`(^|(?<!
|
|
18
18
|
))
|
|
19
19
|
+(?!
|
|
20
|
-
|$)`,"g")}catch{
|
|
20
|
+
|$)`,"g")}catch{K9=/\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 T0(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,
|
|
23
|
-
`&&
|
|
24
|
-
`);if(
|
|
25
|
-
`)
|
|
26
|
-
`)
|
|
27
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${G}`),N=!1,
|
|
28
|
-
${G}${
|
|
29
|
-
${G}${
|
|
30
|
-
`)||W&&/[[\]{},]/.test(Q))return
|
|
31
|
-
`)?
|
|
32
|
-
`))return
|
|
33
|
-
${H}`);if(J){let
|
|
34
|
-
${Z.indent}${q}`}
|
|
35
|
-
${q}:`}else if(
|
|
36
|
-
`:"",
|
|
37
|
-
${
|
|
38
|
-
`&&
|
|
22
|
+
`;let Y,V;for(V=U.length;V>0;--V){let K=U[V-1];if(K!==`
|
|
23
|
+
`&&K!=="\t"&&K!==" ")break}let L=U.substring(V),_=L.indexOf(`
|
|
24
|
+
`);if(_===-1)Y="-";else if(U===L||_!==L.length-1){if(Y="+",Q)Q()}else Y="";if(L){if(U=U.slice(0,-L.length),L[L.length-1]===`
|
|
25
|
+
`)L=L.slice(0,-1);L=L.replace(K9,`$&${G}`)}let B=!1,O,I=-1;for(O=0;O<U.length;++O){let K=U[O];if(K===" ")B=!0;else if(K===`
|
|
26
|
+
`)I=O;else break}let M=U.substring(0,I<O?I+1:O);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 K=U.replace(/\n+/g,`
|
|
27
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${G}`),N=!1,C=b$(X,!0);if(J!=="folded"&&Z!==v.Scalar.BLOCK_FOLDED)C.onOverflow=()=>{N=!0};let D=e.foldFlowLines(`${M}${K}${L}`,G,e.FOLD_BLOCK,C);if(!N)return`>${A}
|
|
28
|
+
${G}${D}`}return U=U.replace(/\n+/g,`$&${G}`),`|${A}
|
|
29
|
+
${G}${M}${U}${L}`}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 T0(Q,Z);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(Q))return q||W||!Q.includes(`
|
|
31
|
+
`)?T0(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 T0(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:L,tags:_}=Z.doc.schema;if(_.some(V)||L?.some(V))return T0(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?T0(J.value,Z):w$(J,Z,U,X);case v.Scalar.QUOTE_DOUBLE:return i0(J.value,Z);case v.Scalar.QUOTE_SINGLE:return T9(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=T$(),$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 O3=R((B1)=>{var r=b(),W3=g(),L3=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 L=!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:!L&&(Y||!Q),indent:q+H});let _=!1,B=!1,O=L3.stringify($,U,()=>_=!0,()=>B=!0);if(!L&&!U.inFlow&&O.length>1024){if(Y)throw Error("With simple keys, single line scalar must not span more than 1024 characters");L=!0}if(U.inFlow){if(Q||Z==null){if(_&&X)X();return O===""?"?":L?`? ${O}`:O}}else if(Q&&!Y||Z==null&&L){if(O=`? ${O}`,V&&!_)O+=n0.lineComment(O,U.indent,G(V));else if(B&&z)z();return O}if(_)V=null;if(L){if(V)O+=n0.lineComment(O,U.indent,G(V));O=`? ${O}
|
|
35
|
+
${q}:`}else if(O=`${O}:`,V)O+=n0.lineComment(O,U.indent,G(V));let I,M,T;if(r.isNode(Z))I=!!Z.spaceBefore,M=Z.commentBefore,T=Z.comment;else if(I=!1,M=null,T=null,Z&&typeof Z==="object")Z=J.createNode(Z);if(U.implicitKey=!1,!L&&!V&&r.isScalar(Z))U.indentAtStart=O.length+1;if(B=!1,!W&&H.length>=2&&!U.inFlow&&!L&&r.isSeq(Z)&&!Z.flow&&!Z.tag&&!Z.anchor)U.indent=U.indent.substring(2);let A=!1,K=L3.stringify(Z,U,()=>A=!0,()=>B=!0),N=" ";if(V||I||M){if(N=I?`
|
|
36
|
+
`:"",M){let C=G(M);N+=`
|
|
37
|
+
${n0.indentComment(C,U.indent)}`}if(K===""&&!U.inFlow){if(N===`
|
|
38
|
+
`&&T)N=`
|
|
39
39
|
|
|
40
40
|
`}else N+=`
|
|
41
|
-
${U.indent}`}else if(!
|
|
42
|
-
`),
|
|
43
|
-
${U.indent}`}}else if(
|
|
44
|
-
`)N="";if(
|
|
45
|
-
${H}${
|
|
46
|
-
`}}if($){if(
|
|
47
|
-
`+
|
|
48
|
-
`)))G=!0;Y.push(
|
|
49
|
-
${Q}${
|
|
50
|
-
`;return`${
|
|
51
|
-
${
|
|
52
|
-
`:" ")}return
|
|
53
|
-
${
|
|
54
|
-
${Q.comment}`:z.comment}z=X}$.items[U]=k$.isPair(z)?z:new f9.Pair(z)}else Z("Expected a sequence for this tag");return $}function C4($,Z,U){let{replacer:z}=U,X=new d1.YAMLSeq($);X.tag="tag:yaml.org,2002:pairs";let Q=0;if(Z&&Symbol.iterator in Object(Z))for(let J of Z){if(typeof z==="function")J=z.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;X.items.push(f9.createPair(q,H,U))}return X}var c1={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:b4,createNode:C4};a1.createPairs=C4;a1.pairs=c1;a1.resolvePairs=b4});var h9=_((t1)=>{var j4=C(),x9=o(),o0=U0(),n1=z0(),S4=v$();class G0 extends n1.YAMLSeq{constructor(){super();this.add=o0.YAMLMap.prototype.add.bind(this),this.delete=o0.YAMLMap.prototype.delete.bind(this),this.get=o0.YAMLMap.prototype.get.bind(this),this.has=o0.YAMLMap.prototype.has.bind(this),this.set=o0.YAMLMap.prototype.set.bind(this),this.tag=G0.tag}toJSON($,Z){if(!Z)return super.toJSON($);let U=new Map;if(Z?.onCreate)Z.onCreate(U);for(let z of this.items){let X,Q;if(j4.isPair(z))X=x9.toJS(z.key,"",Z),Q=x9.toJS(z.value,X,Z);else X=x9.toJS(z,"",Z);if(U.has(X))throw Error("Ordered maps must not include duplicate keys");U.set(X,Q)}return U}static from($,Z,U){let z=S4.createPairs($,Z,U),X=new this;return X.items=z.items,X}}G0.tag="tag:yaml.org,2002:omap";var o1={collection:"seq",identify:($)=>$ instanceof Map,nodeClass:G0,default:!1,tag:"tag:yaml.org,2002:omap",resolve($,Z){let U=S4.resolvePairs($,Z),z=[];for(let{key:X}of U.items)if(j4.isScalar(X))if(z.includes(X.value))Z(`Ordered maps must not include duplicate keys: ${X.value}`);else z.push(X.value);return Object.assign(new G0,U)},createNode:($,Z,U)=>G0.from($,Z,U)};t1.YAMLOMap=G0;t1.omap=o1});var x4=_((Z7)=>{var E4=g();function g4({value:$,source:Z},U){if(Z&&($?y4:f4).test.test(Z))return Z;return $?U.options.trueStr:U.options.falseStr}var y4={identify:($)=>$===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new E4.Scalar(!0),stringify:g4},f4={identify:($)=>$===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new E4.Scalar(!1),stringify:g4};Z7.falseTag=f4;Z7.trueTag=y4});var h4=_((H7)=>{var X7=g(),u9=K0(),Q7={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:u9.stringifyNumber},J7={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():u9.stringifyNumber($)}},q7={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve($){let Z=new X7.Scalar(parseFloat($.replace(/_/g,""))),U=$.indexOf(".");if(U!==-1){let z=$.substring(U+1).replace(/_/g,"");if(z[z.length-1]==="0")Z.minFractionDigits=z.length}return Z},stringify:u9.stringifyNumber};H7.float=q7;H7.floatExp=J7;H7.floatNaN=Q7});var k4=_((D7)=>{var u4=K0(),t0=($)=>typeof $==="bigint"||Number.isInteger($);function m$($,Z,U,{intAsBigInt:z}){let X=$[0];if(X==="-"||X==="+")Z+=1;if($=$.substring(Z).replace(/_/g,""),z){switch(U){case 2:$=`0b${$}`;break;case 8:$=`0o${$}`;break;case 16:$=`0x${$}`;break}let J=BigInt($);return X==="-"?BigInt(-1)*J:J}let Q=parseInt($,U);return X==="-"?-1*Q:Q}function k9($,Z,U){let{value:z}=$;if(t0(z)){let X=z.toString(Z);return z<0?"-"+U+X.substr(1):U+X}return u4.stringifyNumber($)}var V7={identify:t0,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:($,Z,U)=>m$($,2,2,U),stringify:($)=>k9($,2,"0b")},W7={identify:t0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:($,Z,U)=>m$($,1,8,U),stringify:($)=>k9($,8,"0")},L7={identify:t0,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:($,Z,U)=>m$($,0,10,U),stringify:u4.stringifyNumber},O7={identify:t0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:($,Z,U)=>m$($,2,16,U),stringify:($)=>k9($,16,"0x")};D7.int=L7;D7.intBin=V7;D7.intHex=O7;D7.intOct=W7});var v9=_((T7)=>{var d$=C(),p$=$0(),l$=U0();class Y0 extends l$.YAMLMap{constructor($){super($);this.tag=Y0.tag}add($){let Z;if(d$.isPair($))Z=$;else if($&&typeof $==="object"&&"key"in $&&"value"in $&&$.value===null)Z=new p$.Pair($.key,null);else Z=new p$.Pair($,null);if(!l$.findPair(this.items,Z.key))this.items.push(Z)}get($,Z){let U=l$.findPair(this.items,$);return!Z&&d$.isPair(U)?d$.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=l$.findPair(this.items,$);if(U&&!Z)this.items.splice(this.items.indexOf(U),1);else if(!U&&Z)this.items.push(new p$.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:z}=U,X=new this($);if(Z&&Symbol.iterator in Object(Z))for(let Q of Z){if(typeof z==="function")Q=z.call(Z,Q,Q);X.items.push(p$.createPair(Q,null,U))}return X}}Y0.tag="tag:yaml.org,2002:set";var P7={collection:"map",identify:($)=>$ instanceof Set,nodeClass:Y0,default:!1,tag:"tag:yaml.org,2002:set",createNode:($,Z,U)=>Y0.from($,Z,U),resolve($,Z){if(d$.isMap($))if($.hasAllNullValues(!0))return Object.assign(new Y0,$);else Z("Set items must all have null values");else Z("Expected a mapping for this tag");return $}};T7.YAMLSet=Y0;T7.set=P7});var p9=_((b7)=>{var A7=K0();function m9($,Z){let U=$[0],z=U==="-"||U==="+"?$.substring(1):$,X=(J)=>Z?BigInt(J):Number(J),Q=z.replace(/_/g,"").split(":").reduce((J,q)=>J*X(60)+X(q),X(0));return U==="-"?X(-1)*Q:Q}function v4($){let{value:Z}=$,U=(J)=>J;if(typeof Z==="bigint")U=(J)=>BigInt(J);else if(isNaN(Z)||!isFinite(Z))return A7.stringifyNumber($);let z="";if(Z<0)z="-",Z*=U(-1);let X=U(60),Q=[Z%X];if(Z<60)Q.unshift(0);else if(Z=(Z-Q[0])/X,Q.unshift(Z%X),Z>=60)Z=(Z-Q[0])/X,Q.unshift(Z);return z+Q.map((J)=>String(J).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var N7={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})=>m9($,U),stringify:v4},w7={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:($)=>m9($,!1),stringify:v4},m4={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(m4.test);if(!Z)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,U,z,X,Q,J,q]=Z.map(Number),H=Z[7]?Number((Z[7]+"00").substr(1,3)):0,G=Date.UTC(U,z-1,X,Q||0,J||0,q||0,H),W=Z[8];if(W&&W!=="Z"){let Y=m9(W,!1);if(Math.abs(Y)<30)Y*=60;G-=60000*Y}return new Date(G)},stringify:({value:$})=>$?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};b7.floatTime=w7;b7.intTime=N7;b7.timestamp=m4});var l4=_((p7)=>{var E7=T0(),g7=x$(),y7=F0(),f7=r0(),x7=y9(),p4=x4(),l9=h4(),c$=k4(),h7=b$(),u7=h9(),k7=v$(),v7=v9(),d9=p9(),m7=[E7.map,y7.seq,f7.string,g7.nullTag,p4.trueTag,p4.falseTag,c$.intBin,c$.intOct,c$.int,c$.intHex,l9.floatNaN,l9.floatExp,l9.float,x7.binary,h7.merge,u7.omap,k7.pairs,v7.set,d9.intTime,d9.floatTime,d9.timestamp];p7.schema=m7});var e4=_((o7)=>{var s4=T0(),d7=x$(),i4=F0(),c7=r0(),a7=N9(),c9=b9(),a9=j9(),s7=A4(),i7=w4(),r4=y9(),e0=b$(),n4=h9(),o4=v$(),d4=l4(),t4=v9(),a$=p9(),c4=new Map([["core",s7.schema],["failsafe",[s4.map,i4.seq,c7.string]],["json",i7.schema],["yaml11",d4.schema],["yaml-1.1",d4.schema]]),a4={binary:r4.binary,bool:a7.boolTag,float:c9.float,floatExp:c9.floatExp,floatNaN:c9.floatNaN,floatTime:a$.floatTime,int:a9.int,intHex:a9.intHex,intOct:a9.intOct,intTime:a$.intTime,map:s4.map,merge:e0.merge,null:d7.nullTag,omap:n4.omap,pairs:o4.pairs,seq:i4.seq,set:t4.set,timestamp:a$.timestamp},r7={"tag:yaml.org,2002:binary":r4.binary,"tag:yaml.org,2002:merge":e0.merge,"tag:yaml.org,2002:omap":n4.omap,"tag:yaml.org,2002:pairs":o4.pairs,"tag:yaml.org,2002:set":t4.set,"tag:yaml.org,2002:timestamp":a$.timestamp};function n7($,Z,U){let z=c4.get(Z);if(z&&!$)return U&&!z.includes(e0.merge)?z.concat(e0.merge):z.slice();let X=z;if(!X)if(Array.isArray($))X=[];else{let Q=Array.from(c4.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 $)X=X.concat(Q);else if(typeof $==="function")X=$(X.slice());if(U)X=X.concat(e0.merge);return X.reduce((Q,J)=>{let q=typeof J==="string"?a4[J]:J;if(!q){let H=JSON.stringify(J),G=Object.keys(a4).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},[])}o7.coreKnownTags=r7;o7.getTags=n7});var r9=_((XU)=>{var s9=C(),$U=T0(),ZU=F0(),UU=r0(),s$=e4(),zU=($,Z)=>$.key<Z.key?-1:$.key>Z.key?1:0;class i9{constructor({compat:$,customTags:Z,merge:U,resolveKnownTags:z,schema:X,sortMapEntries:Q,toStringDefaults:J}){this.compat=Array.isArray($)?s$.getTags($,"compat"):$?s$.getTags(null,$):null,this.name=typeof X==="string"&&X||"core",this.knownTags=z?s$.coreKnownTags:{},this.tags=s$.getTags(Z,this.name,U),this.toStringOptions=J??null,Object.defineProperty(this,s9.MAP,{value:$U.map}),Object.defineProperty(this,s9.SCALAR,{value:UU.string}),Object.defineProperty(this,s9.SEQ,{value:ZU.seq}),this.sortMapEntries=typeof Q==="function"?Q:Q===!0?zU:null}clone(){let $=Object.create(i9.prototype,Object.getOwnPropertyDescriptors(this));return $.tags=this.tags.slice(),$}}XU.Schema=i9});var $6=_((HU)=>{var JU=C(),n9=c0(),$$=p0();function qU($,Z){let U=[],z=Z.directives===!0;if(Z.directives!==!1&&$.directives){let H=$.directives.toString($);if(H)U.push(H),z=!0;else if($.directives.docStart)z=!0}if(z)U.push("---");let X=n9.createStringifyContext($,Z),{commentString:Q}=X.options;if($.commentBefore){if(U.length!==1)U.unshift("");let H=Q($.commentBefore);U.unshift($$.indentComment(H,""))}let J=!1,q=null;if($.contents){if(JU.isNode($.contents)){if($.contents.spaceBefore&&z)U.push("");if($.contents.commentBefore){let W=Q($.contents.commentBefore);U.push($$.indentComment(W,""))}X.forceBlockIndent=!!$.comment,q=$.contents.comment}let H=q?void 0:()=>J=!0,G=n9.stringify($.contents,X,()=>q=null,H);if(q)G+=$$.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(n9.stringify($.contents,X));if($.directives?.docEnd)if($.comment){let H=Q($.comment);if(H.includes(`
|
|
55
|
-
`))U.push("..."),U.push(
|
|
41
|
+
${U.indent}`}else if(!L&&r.isCollection(Z)){let C=K[0],D=K.indexOf(`
|
|
42
|
+
`),w=D!==-1,l=U.inFlow??Z.flow??Z.items.length===0;if(w||!l){let d=!1;if(w&&(C==="&"||C==="!")){let E=K.indexOf(" ");if(C==="&"&&E!==-1&&E<D&&K[E+1]==="!")E=K.indexOf(" ",E+1);if(E===-1||D<E)d=!0}if(!d)N=`
|
|
43
|
+
${U.indent}`}}else if(K===""||K[0]===`
|
|
44
|
+
`)N="";if(O+=N+K,U.inFlow){if(A&&X)X()}else if(T&&!A)O+=n0.lineComment(O,U.indent,G(T));else if(B&&z)z();return O}B1.stringifyPair=Y1});var A9=R((O1)=>{var _3=h0("process");function W1($,...Z){if($==="debug")console.log(...Z)}function L1($,Z){if($==="debug"||$==="warn")if(typeof _3.emitWarning==="function")_3.emitWarning(Z);else console.warn(Z)}O1.debug=W1;O1.warn=L1});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 T1=A9(),R3=E$(),K1=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=K1.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)+'..."';T1.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=O3(),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[_],O=null;if(Y0.isNode(B)){if(!Y&&B.spaceBefore)V.push("");if(x$(U,V,B.commentBefore,Y),B.comment)O=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,()=>O=null,()=>Y=!0);if(O)I+=y$.lineComment(I,Q,G(O));if(Y&&O)Y=!1;V.push(X+I)}let L;if(V.length===0)L=z.start+z.end;else{L=V[0];for(let _=1;_<V.length;++_){let B=V[_];L+=B?`
|
|
45
|
+
${H}${B}`:`
|
|
46
|
+
`}}if($){if(L+=`
|
|
47
|
+
`+y$.indentComment(G($),H),q)q()}else if(Y&&J)J();return L}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=$[_],O=null;if(Y0.isNode(B)){if(B.spaceBefore)Y.push("");if(x$(Z,Y,B.commentBefore,!1),B.comment)O=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 T=Y0.isNode(B.value)?B.value:null;if(T){if(T.comment)O=T.comment;if(T.commentBefore)G=!0}else if(B.value==null&&M?.comment)O=M.comment}if(O)G=!0;let I=F3.stringify(B,H,()=>O=null);if(_<$.length-1)I+=",";if(O)I+=y$.lineComment(I,X,q(O));if(!G&&(Y.length>W||I.includes(`
|
|
48
|
+
`)))G=!0;Y.push(I),W=Y.length}let{start:V,end:L}=U;if(Y.length===0)return V+L;else{if(!G){let _=Y.reduce((B,O)=>B+O.length+2,2);G=Z.options.lineWidth>0&&_>Z.options.lineWidth}if(G){let _=V;for(let B of Y)_+=B?`
|
|
49
|
+
${Q}${z}${B}`:`
|
|
50
|
+
`;return`${_}
|
|
51
|
+
${z}${L}`}else return`${V}${J}${Y.join(" ")}${J}${L}`}}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 T3 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=T3;d1.findPair=t0});var K0=R((r1)=>{var i1=b(),K3=X0(),s1={collection:"map",default:!0,nodeClass:K3.YAMLMap,tag:"tag:yaml.org,2002:map",resolve($,Z){if(!i1.isMap($))Z("Expected a mapping for this tag");return $},createNode:($,Z,U)=>K3.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((O5)=>{var L5=g(),C3={identify:($)=>typeof $==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:($)=>new L5.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}};O5.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((K5)=>{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($)}},T5={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};K5.float=T5;K5.floatExp=F5;K5.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=K0(),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=K0(),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
|
+
`:" ")}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
|
+
${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(`
|
|
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
|
-
`}
|
|
58
|
-
`;J=q+J}if(/[^ ]/.test(J)){let q=1,H=U.linePos[1];if(H?.line===
|
|
57
|
+
`}MU.stringifyDocument=RU});var Q$=R((CU)=>{var FU=d0(),w0=N$(),k=b(),TU=Z0(),KU=t(),AU=e9(),NU=q8(),Z2=T$(),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,O=Z.filter(B).map(String);if(O.length>0)Z=Z.concat(O);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"),L={aliasDuplicateObjects:z??!0,keepUndefined:q??!1,onAnchor:W,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:V},_=bU.createNode($,G,L);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 TU.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=KU.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
|
+
`;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
|
-
`}};
|
|
63
|
-
`))return!0;if($.end){for(let Z of $.end)if(Z.type==="newline")return!0}return!1;case"flow-collection":for(let Z of $.items){for(let U of Z.start)if(U.type==="newline")return!0;if(Z.sep){for(let U of Z.sep)if(U.type==="newline")return!0}if(
|
|
64
|
-
`+
|
|
65
|
-
`+
|
|
66
|
-
`+N.comment;else G.comment=N.comment;Y=N.end;continue}if(!J&&U.options.strict&&
|
|
67
|
-
`+
|
|
68
|
-
`+
|
|
69
|
-
`+
|
|
70
|
-
`.repeat(Math.max(1,J.length-1)):"",
|
|
71
|
-
`;for(let
|
|
72
|
-
`;else if(
|
|
73
|
-
`;else if(!
|
|
74
|
-
`)
|
|
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="",L=!1,_=!1,B=null,O=null,I=null,M=null,T=null,A=null,K=null;for(let D of $){if(_){if(D.type!=="space"&&D.type!=="newline"&&D.type!=="comma")Q(D.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");_=!1}if(B){if(G&&D.type!=="comment"&&D.type!=="newline")Q(B,"TAB_AS_INDENT","Tabs are not allowed as indentation");B=null}switch(D.type){case"space":if(!Z&&(U!=="doc-start"||X?.type!=="flow-collection")&&D.source.includes("\t"))B=D;W=!0;break;case"comment":{if(!W)Q(D,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let w=D.source.substring(1)||" ";if(!Y)Y=w;else Y+=V+w;V="",G=!1;break}case"newline":if(G){if(Y)Y+=D.source;else if(!A||U!=="seq-item-ind")H=!0}else V+=D.source;if(G=!0,L=!0,O||I)M=D;W=!0;break;case"anchor":if(O)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);O=D,K??(K=D.offset),G=!1,W=!1,_=!0;break;case"tag":{if(I)Q(D,"MULTIPLE_TAGS","A node can have at most one tag");I=D,K??(K=D.offset),G=!1,W=!1,_=!0;break}case U:if(O||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(T)Q(D,"UNEXPECTED_TOKEN",`Unexpected , in ${Z}`);T=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:T,found:A,spaceBefore:H,comment:Y,hasNewline:L,anchor:O,tag:I,newlineAfterProp:M,end:C,start:K??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 O8=R((eU)=>{var B8=Z0(),rU=X0(),V8=q$(),nU=e$(),W8=Q2(),oU=J2(),L8="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:L,value:_}=W,B=V8.resolveProps(Y,{indicator:"explicit-key-ind",next:V??L?.[0],offset:H,onError:z,parentIndent:X.indent,startOnNewline:!0}),O=!B.found;if(O){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",L8)}if(!B.anchor&&!B.tag&&!L){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",L8);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 T=V8.resolveProps(L??[],{indicator:"map-value-ind",next:_,offset:M.range[2],onError:z,parentIndent:X.indent,startOnNewline:!V||V.type==="block-scalar"});if(H=T.end,T.found){if(O){if(_?.type==="block-map"&&!T.hasNewline)z(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(U.options.strict&&B.start<T.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,_,T,z):Z(U,H,L,null,T,z);if(U.schema.compat)W8.flowIndentCheck(X.indent,_,z);H=A.range[2];let K=new B8.Pair(M,A);if(U.options.keepSourceTokens)K.srcToken=W;q.items.push(K)}else{if(O)z(M.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(T.comment)if(M.comment)M.comment+=`
|
|
65
|
+
`+T.comment;else M.comment=T.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 L=Y?$(U,Y,V,z):Z(U,V.end,W,null,V,z);if(U.schema.compat)XX.flowIndentCheck(X.indent,Y,z);H=L.range[2],q.items.push(L)}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$(),LX=e$(),OX=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 O=0;O<X.items.length;++O){let I=X.items[O],{start:M,key:T,sep:A,value:K}=I,N=I8.resolveProps(M,{flow:q,indicator:"explicit-key-ind",next:T??A?.[0],offset:Y,onError:z,parentIndent:X.indent,startOnNewline:!1});if(!N.found){if(!N.anchor&&!N.tag&&!A&&!K){if(O===0&&N.comma)z(N.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${q}`);else if(O<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&&LX.containsNewline(T))z(T,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(O===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=K?$(U,K,N,z):Z(U,N.end,A,null,N,z);if(G.items.push(C),Y=C.range[2],H2(K))z(C.range,"BLOCK_IN_FLOW",q2)}else{U.atKey=!0;let C=N.end,D=T?$(U,T,N,z):Z(U,C,M,null,N,z);if(H2(T))z(D.range,"BLOCK_IN_FLOW",q2);U.atKey=!1;let w=I8.resolveProps(A??[],{flow:q,indicator:"map-value-ind",next:K,offset:D.range[2],onError:z,parentIndent:X.indent,startOnNewline:!1});if(w.found){if(!J&&!N.found&&U.options.strict){if(A)for(let E of A){if(E===w.found)break;if(E.type==="newline"){z(E,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(N.start<w.found.offset-1024)z(w.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(K)if("source"in K&&K.source?.[0]===":")z(K,"MISSING_CHAR",`Missing space after : in ${q}`);else z(w.start,"MISSING_CHAR",`Missing , or : between ${q} items`);let l=K?$(U,K,w,z):w.found?Z(U,w.end,A,null,w,z):null;if(l){if(H2(K))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(OX.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?"}":"]",[L,..._]=X.end,B=Y;if(L?.source===V)B=L.offset+L.source.length;else{let O=q[0].toUpperCase()+q.substring(1),I=W?`${O} must end with a ${V}`:`${O} in block collection must be sufficiently indented and end with a ${V}`;if(z(Y,W?"MISSING_CHAR":"BAD_INDENT",I),L&&L.source.length!==1)_.unshift(L)}if(_.length>0){let O=WX.resolveEnd(_,B,U.options.strict,z);if(O.comment)if(G.comment)G.comment+=`
|
|
69
|
+
`+O.comment;else G.comment=O.comment;G.range=[X.offset,B,O.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(),TX=O8(),KX=_8(),AX=R8();function G2($,Z,U,X,z,Q){let J=U.type==="block-map"?TX.resolveBlockMap($,Z,U,X,Q):U.type==="block-seq"?KX.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:L}=X,_=V&&Q?V.offset>Q.offset?V:Q:V??Q;if(_&&(!L||L.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 O=J[B][1];if(O===""||O==="\r")q=B;else break}if(q===0){let B=z.chomp==="+"&&J.length>0?`
|
|
70
|
+
`.repeat(Math.max(1,J.length-1)):"",O=X+z.length;if(Z.source)O+=Z.source.length;return{value:B,type:Q,comment:z.comment,range:[X,O,O]}}let H=Z.indent+z.indent,G=Z.offset+z.length,W=0;for(let B=0;B<q;++B){let[O,I]=J[B];if(I===""||I==="\r"){if(z.indent===0&&O.length>H)H=O.length}else{if(O.length<H)U(G+O.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(z.indent===0)H=O.length;if(W=B,H===0&&!$.atRoot)U(G,"BAD_INDENT","Block scalar values in collections must be indented");break}G+=O.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="",L=!1;for(let B=0;B<W;++B)Y+=J[B][0].slice(H)+`
|
|
71
|
+
`;for(let B=W;B<q;++B){let[O,I]=J[B];G+=O.length+I.length+1;let M=I[I.length-1]==="\r";if(M)I=I.slice(0,-1);if(I&&O.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),O=""}if(Q===Y2.Scalar.BLOCK_LITERAL)Y+=V+O.slice(H)+I,V=`
|
|
72
|
+
`;else if(O.length>H||I[0]==="\t"){if(V===" ")V=`
|
|
73
|
+
`;else if(!L&&V===`
|
|
74
|
+
`)V=`
|
|
75
75
|
|
|
76
|
-
`;Y+=
|
|
77
|
-
`,
|
|
76
|
+
`;Y+=V+O.slice(H)+I,V=`
|
|
77
|
+
`,L=!0}else if(I==="")if(V===`
|
|
78
78
|
`)Y+=`
|
|
79
|
-
`;else
|
|
80
|
-
`;else Y+=
|
|
81
|
-
`+J[
|
|
79
|
+
`;else V=`
|
|
80
|
+
`;else Y+=V+I,V=" ",L=!1}switch(z.chomp){case"-":break;case"+":for(let B=q;B<J.length;++B)Y+=`
|
|
81
|
+
`+J[B][0].slice(H);if(Y[Y.length-1]!==`
|
|
82
82
|
`)Y+=`
|
|
83
83
|
`;break;default:Y+=`
|
|
84
|
-
`}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 L=z[V];if(!q&&(L==="-"||L==="+"))q=L;else{let _=Number(L);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 L=Z[V];switch(L.type){case"space":G=!0;case"newline":Y+=L.source.length;break;case"comment":if(U&&!G)X(L,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");Y+=L.source.length,W=L.source.substring(1);break;case"error":X(L,"UNEXPECTED_TOKEN",L.message),Y+=L.source.length;break;default:{let _=`Unexpected token in block scalar header: ${L.type}`;X(L,"UNEXPECTED_TOKEN",_);let B=L.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,L,_)=>U(X+V,L,_);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
|
-
`,"sy")}catch{Z=/(.*?)[ \t]*\r?\n/sy,U=/[ \t]*(.*?)[ \t]*\r?\n/sy}let
|
|
87
|
-
`)
|
|
88
|
-
`;else
|
|
89
|
-
`)continue;if(
|
|
90
|
-
`){let{fold:Q,offset:J}=
|
|
91
|
-
`){Q=$[
|
|
92
|
-
`){Q=$[++
|
|
93
|
-
`&&!(J==="\r"&&$[
|
|
94
|
-
`))U+=
|
|
95
|
-
`||
|
|
96
|
-
`)break;if(
|
|
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
|
+
`)z+=Q;else Q=`
|
|
88
|
+
`;else z+=Q+X[1],Q=" ";J=U.lastIndex}let q=/[ \t]*(.*)/sy;return q.lastIndex=J,X=q.exec($),z+Q+(X?.[1]??"")}function uX($,Z){let U="";for(let X=1;X<$.length-1;++X){let z=$[X];if(z==="\r"&&$[X+1]===`
|
|
89
|
+
`)continue;if(z===`
|
|
90
|
+
`){let{fold:Q,offset:J}=kX($,X);U+=Q,X=J}else if(z==="\\"){let Q=$[++X],J=vX[Q];if(J)U+=J;else if(Q===`
|
|
91
|
+
`){Q=$[X+1];while(Q===" "||Q==="\t")Q=$[++X+1]}else if(Q==="\r"&&$[X+1]===`
|
|
92
|
+
`){Q=$[++X+1];while(Q===" "||Q==="\t")Q=$[++X+1]}else if(Q==="x"||Q==="u"||Q==="U"){let q={x:2,u:4,U:8}[Q];U+=mX($,X+1,q,Z),X+=q}else{let q=$.substr(X-1,2);Z(X-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${q}`),U+=q}}else if(z===" "||z==="\t"){let Q=X,J=$[X+1];while(J===" "||J==="\t")J=$[++X+1];if(J!==`
|
|
93
|
+
`&&!(J==="\r"&&$[X+2]===`
|
|
94
|
+
`))U+=X>Q?$.slice(Q,X+1):z}else U+=z}if($[$.length-1]!=='"'||$.length===1)Z($.length,"MISSING_CHAR",'Missing closing "quote');return U}function kX($,Z){let U="",X=$[Z+1];while(X===" "||X==="\t"||X===`
|
|
95
|
+
`||X==="\r"){if(X==="\r"&&$[Z+2]!==`
|
|
96
|
+
`)break;if(X===`
|
|
97
97
|
`)U+=`
|
|
98
|
-
`;Z+=1,
|
|
99
|
-
`,r:"\r",t:"\t",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function
|
|
98
|
+
`;Z+=1,X=$[Z+1]}if(!U)U=" ";return{fold:U,offset:Z}}var 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 T8=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 K8=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=T8(),Xz=C0(),zz=K8(),Qz={composeNode:N8,composeEmptyNode:L2};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=L2($,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 L2($,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=L2;qz.composeNode=N8});var C8=R((Lz)=>{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}Lz.composeDoc=Wz});var O2=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
|
-
`)+(Q.substring(1)||" "),U=!0,
|
|
103
|
-
${U}`:U;else if(
|
|
104
|
-
${J}`:U}else{let Q=
|
|
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:
|
|
106
|
-
${Z.comment}`:Z.comment}this.doc.range[2]=Z.offset;break}default:this.errors.push(new
|
|
102
|
+
`)+(Q.substring(1)||" "),U=!0,X=!1;break;case"%":if($[z+1]?.[0]!=="#")z+=1;U=!1;break;default:if(!U)X=!0;U=!1}}return{comment:Z,afterEmptyLine:X}}class E8{constructor($={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(Z,U,X,z)=>{let Q=G$(Z);if(z)this.warnings.push(new 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
|
+
${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
|
+
${J}`:U}else{let Q=z.commentBefore;z.commentBefore=Q?`${U}
|
|
105
|
+
${Q}`:U}}if(Z)Array.prototype.push.apply($.errors,this.errors),Array.prototype.push.apply($.warnings,this.warnings);else $.errors=this.errors,$.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:S8(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose($,Z=!1,U=-1){for(let X of $)yield*this.next(X);yield*this.end(Z,U)}*next($){if(_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 Tz=B2(),Kz=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 Kz.resolveFlowScalar($,Z,X);case"block-scalar":return Tz.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
|
-
`,
|
|
110
|
-
`});return{type:"block-scalar",offset:Q,indent:
|
|
111
|
-
`),
|
|
112
|
-
`;if($.type==="block-scalar"){let Q=$.props[0];if(Q.type!=="block-scalar-header")throw Error("Invalid block scalar header");Q.source=
|
|
113
|
-
`});for(let H of Object.keys($))if(H!=="type"&&H!=="offset")delete $[H];Object.assign($,{type:"block-scalar",indent:J,props:q,source:
|
|
114
|
-
`};delete $.items,Object.assign($,{type:U,source:Z,end:[
|
|
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:`
|
|
110
|
+
`});return{type:"block-scalar",offset:Q,indent:X,props:V,source:Y}}case'"':return{type:"double-quoted-scalar",offset:Q,indent:X,source:q,end:H};case"'":return{type:"single-quoted-scalar",offset:Q,indent:X,source:q,end:H};default:return{type:"scalar",offset:Q,indent:X,source:q,end:H}}}function bz($,Z,U={}){let{afterKey:X=!1,implicitKey:z=!1,inFlow:Q=!1,type:J}=U,q="indent"in $?$.indent:null;if(X&&typeof q==="number")q+=2;if(!J)switch($.type){case"single-quoted-scalar":J="QUOTE_SINGLE";break;case"double-quoted-scalar":J="QUOTE_DOUBLE";break;case"block-scalar":{let G=$.props[0];if(G.type!=="block-scalar-header")throw Error("Invalid block scalar header");J=G.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:J="PLAIN"}let H=g8.stringifyString({type:J,value:Z},{implicitKey:z||q===null,indent:q!==null&&q>0?" ".repeat(q):"",inFlow:Q,options:{blockQuote:!0,lineWidth:-1}});switch(H[0]){case"|":case">":Cz($,H);break;case'"':_2($,H,"double-quoted-scalar");break;case"'":_2($,H,"single-quoted-scalar");break;default:_2($,H,"scalar")}}function Cz($,Z){let U=Z.indexOf(`
|
|
111
|
+
`),X=Z.substring(0,U),z=Z.substring(U+1)+`
|
|
112
|
+
`;if($.type==="block-scalar"){let Q=$.props[0];if(Q.type!=="block-scalar-header")throw Error("Invalid block scalar header");Q.source=X,$.source=z}else{let{offset:Q}=$,J="indent"in $?$.indent:-1,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
|
+
`});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 L0($,Z){if("type"in $&&$.type==="document")$={start:$.start,value:$.value};u8(Object.freeze([]),$,Z)}L0.BREAK=D2;L0.SKIP=hz;L0.REMOVE=h8;L0.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};L0.parentCollection=($,Z)=>{let U=L0.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=L0});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}
|
|
117
|
-
`:case"\r":case"\t":return!0;default:return!1}}var
|
|
118
|
-
\r `),
|
|
116
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch($[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}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 K2=R((HQ)=>{var Y$=U9();function m($){switch($){case void 0:case" ":case`
|
|
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 `),T2=($)=>!$||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
|
-
`;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
|
|
121
|
-
`||!
|
|
122
|
-
`||U>=this.indentNext||!Z&&!this.atEnd?$+U:-1}if(Z==="-"||Z==="."){let U=this.buffer.substr($,3);if((U==="---"||U==="...")&&
|
|
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]===
|
|
124
|
-
`,this.pos);if(
|
|
125
|
-
`,
|
|
126
|
-
`:$=
|
|
127
|
-
`)break}default:break $}if(!U&&!this.atEnd)return this.setNext("block-scalar");if(Z>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=Z;else this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let
|
|
128
|
-
`,
|
|
129
|
-
`)U=this.buffer[++
|
|
130
|
-
`&&
|
|
131
|
-
`)U+=1,
|
|
132
|
-
`,
|
|
133
|
-
`){let Q=this.continueScalar(U+1);if(Q===-1)break;U=Math.max(U,Q-2)}}else{if($&&
|
|
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
|
+
`||!X&&!this.atEnd)return $+U+1}return Z===`
|
|
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(T2),"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(T2),"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
|
+
`,this.pos);if(X!==-1){while(X!==-1){let z=this.continueScalar(X+1);if(z===-1)break;X=U.indexOf(`
|
|
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
|
+
`:$=z,Z=0;break;case"\r":{let Q=this.buffer[z+1];if(!Q&&!this.atEnd)return this.setNext("block-scalar");if(Q===`
|
|
127
|
+
`)break}default:break $}if(!U&&!this.atEnd)return this.setNext("block-scalar");if(Z>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=Z;else this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let z=this.continueScalar($+1);if(z===-1)break;$=this.buffer.indexOf(`
|
|
128
|
+
`,z)}while($!==-1);if($===-1){if(!this.atEnd)return this.setNext("block-scalar");$=this.buffer.length}}let X=$+1;U=this.buffer[X];while(U===" ")U=this.buffer[++X];if(U==="\t"){while(U==="\t"||U===" "||U==="\r"||U===`
|
|
129
|
+
`)U=this.buffer[++X];$=X-1}else if(!this.blockScalarKeep)do{let z=$-1,Q=this.buffer[z];if(Q==="\r")Q=this.buffer[--z];let J=z;while(Q===" ")Q=this.buffer[--z];if(Q===`
|
|
130
|
+
`&&z>=this.pos&&z+1+Z>J)$=z;else break}while(!0);return yield Y$.SCALAR,yield*this.pushToIndex($+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let $=this.flowLevel>0,Z=this.pos-1,U=this.pos-1,X;while(X=this.buffer[++U])if(X===":"){let z=this.buffer[U+1];if(m(z)||$&&X9.has(z))break;Z=U}else if(m(X)){let z=this.buffer[U+1];if(X==="\r")if(z===`
|
|
131
|
+
`)U+=1,X=`
|
|
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(T2))+(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
|
|
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((LQ)=>{var VQ=h0("process"),l8=U9(),WQ=K2();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
|
-
`,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
|
|
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
|
|
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",description:"Project name",category:"project"},{index:2,path:"project.goal",description:"Goal (use case)",category:"project"},{index:3,path:"project.main_language",description:"Primary language",category:"project"},{index:4,path:"human_context.who",description:"Who is this for?",category:"human"},{index:5,path:"human_context.what",description:"What are they building",category:"human"},{index:6,path:"human_context.why",description:"Why does it exist",category:"human"},{index:7,path:"human_context.where",description:"Where does it run",category:"human"},{index:8,path:"human_context.when",description:"When was it started / timeline",category:"human"},{index:9,path:"human_context.how",description:"How is it built",category:"human"},{index:10,path:"stack.frontend",canonical:"stack.framework",description:"Framework (React, Svelte, etc.)",category:"frontend"},{index:11,path:"stack.css_framework",canonical:"stack.css",description:"CSS framework",category:"frontend"},{index:12,path:"stack.ui_library",description:"UI component library",category:"frontend"},{index:13,path:"stack.state_management",canonical:"stack.state",description:"State management",category:"frontend"},{index:14,path:"stack.backend",description:"Backend framework",category:"backend"},{index:15,path:"stack.api_type",canonical:"stack.api",description:"API style (REST, GraphQL, etc.)",category:"backend"},{index:16,path:"stack.runtime",description:"Runtime (Node, Bun, Python, etc.)",category:"backend"},{index:17,path:"stack.database",canonical:"stack.db",description:"Database",category:"backend"},{index:18,path:"stack.connection",description:"Connection method (Prisma, etc.)",category:"backend"},{index:19,path:"stack.hosting",description:"Hosting platform",category:"universal"},{index:20,path:"stack.build",description:"Build tool",category:"universal"},{index:21,path:"stack.cicd",description:"CI/CD",category:"universal"},{index:22,path:"stack.monorepo_tool",description:"Monorepo tool",category:"enterprise_infra"},{index:23,path:"stack.package_manager",canonical:"stack.pkg_manager",description:"Package manager",category:"enterprise_infra"},{index:24,path:"stack.workspaces",description:"Workspace configuration",category:"enterprise_infra"},{index:25,path:"monorepo.packages_count",description:"Number of packages",category:"enterprise_infra"},{index:26,path:"monorepo.build_orchestrator",description:"Build orchestration tool",category:"enterprise_infra"},{index:27,path:"stack.admin",description:"Admin panel",category:"enterprise_app"},{index:28,path:"stack.cache",description:"Caching layer",category:"enterprise_app"},{index:29,path:"stack.search",description:"Search engine",category:"enterprise_app"},{index:30,path:"stack.storage",description:"Object storage",category:"enterprise_app"},{index:31,path:"monorepo.versioning_strategy",description:"Version strategy",category:"enterprise_ops"},{index:32,path:"monorepo.shared_configs",description:"Shared configs",category:"enterprise_ops"},{index:33,path:"monorepo.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.
|
|
140
140
|
|
|
141
141
|
Run: npm install faf-scoring-kernel
|
|
142
|
-
`)}}function
|
|
143
|
-
`)}function
|
|
142
|
+
`)}}function L9($){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 L6($){return JSON.parse(o().score_fafb($))}function O6(){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(L9($))}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 fG,existsSync as Z4}from"fs";import{join as U4,dirname as BJ}from"path";var bQ=O2(),CQ=Q$(),jQ=e9(),w2=J$(),SQ=d0(),J0=b(),EQ=Z0(),gQ=g(),fQ=X0(),yQ=z0(),SG=U9(),xQ=K2(),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 LJ}from"path";var J4=v0.orange,OJ=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:OJ},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??{}),L=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">
|
|
147
147
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
148
|
-
<title>${
|
|
148
|
+
<title>${X} — project.faf</title>
|
|
149
149
|
<meta name="description" content="Visual render of project.faf. Generated by faf — humans like visuals, we gave them one.">
|
|
150
150
|
<meta name="robots" content="index,follow">
|
|
151
151
|
<style>
|
|
@@ -180,46 +180,47 @@ footer strong{color:#e6edf3}
|
|
|
180
180
|
<div class="bar"></div>
|
|
181
181
|
<div class="eyebrow">project.faf · visual render</div>
|
|
182
182
|
<header>
|
|
183
|
-
<h1>${
|
|
184
|
-
<span class="badge">${Q.glyph} ${
|
|
183
|
+
<h1>${X}</h1>
|
|
184
|
+
<span class="badge">${Q.glyph} ${S0(z)}</span>
|
|
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${_?` · ${_} slotignored`:""}</p>`}
|
|
189
189
|
|
|
190
190
|
<section>
|
|
191
191
|
<h2>The 6 W's</h2>
|
|
192
|
-
${
|
|
193
|
-
${W.length?
|
|
192
|
+
${J9(G)||'<p class="muted">No human_context yet.</p>'}
|
|
193
|
+
${W.length?J9(W):""}
|
|
194
194
|
</section>
|
|
195
195
|
|
|
196
196
|
<section>
|
|
197
197
|
<h2>Project</h2>
|
|
198
|
-
${
|
|
198
|
+
${J9(Y)||'<p class="muted">—</p>'}
|
|
199
199
|
</section>
|
|
200
200
|
|
|
201
201
|
<section>
|
|
202
202
|
<h2>Stack</h2>
|
|
203
|
-
${
|
|
203
|
+
${L.length?J9(L):'<p class="muted">No active stack slots.</p>'}
|
|
204
204
|
</section>
|
|
205
205
|
|
|
206
206
|
<footer>
|
|
207
|
-
Rendered on-demand from your current <strong>${
|
|
207
|
+
Rendered on-demand from your current <strong>${S0(U)}</strong><br>
|
|
208
208
|
<strong>Humans like visuals. <span style="color:#00D4D4">We gave them one.</span></strong>
|
|
209
209
|
</footer>
|
|
210
210
|
</div>
|
|
211
211
|
</body>
|
|
212
212
|
</html>
|
|
213
|
-
`}function
|
|
214
|
-
`,"utf-8"),X}var V8="faf-interview/1",j0="(terse — 3-4 words)",A2=[{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? ${j0}`,header:"Who",type:"text",required:!0},{path:"human_context.what",question:`What are they building? ${j0}`,header:"What",type:"text",required:!0},{path:"human_context.why",question:`Why does it exist? ${j0}`,header:"Why",type:"text",required:!0},{path:"human_context.where",question:`Where does it run or ship? ${j0}`,header:"Where",type:"text",required:!0},{path:"human_context.when",question:`When — timeline or stage? ${j0}`,header:"When",type:"text",required:!0},{path:"human_context.how",question:`How is it built or used? ${j0}`,header:"How",type:"text",required:!0}],W8=[{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}],z9=[...A2,...W8],L8=new Map(z9.map(($)=>[$.path,$])),IJ=Object.fromEntries(z9.map(($)=>[$.path,$]));function RJ($){let Z=L8.get($);if(Z)return Z.question;let U=J9.get($)??f.find((z)=>z.canonical===$);return U?`${U.description}?`.replace(/\?\?$/,"?"):`${$}?`}function MJ($,Z){return z9.filter((U)=>{let z=U.path.split("."),X=$;for(let Q of z)if(X&&typeof X==="object"&&Q in X)X=X[Q];else{X=void 0;break}if(X==="slotignored")return!1;return Z(X)})}var PJ=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"]),TJ=[["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]],H8=($)=>PJ.has($.toLowerCase().trim()),FJ=/^(?:with|and|or|using|for|to|that|who|whom|whose|the|a|an|in|on|of|via|by|&)$/i;function G8($,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 O8($){let Z={};if(!$||typeof $!=="string")return Z;let U=$.trim(),z=U.replace(/^[^A-Za-z0-9]+/,"").split(/\s+(?:for|that|which|to)\s+|\s+[—–]\s+|\s-\s|:\s|\.\s|,\s/)[0].trim(),X=G8(z);if(X.split(/\s+/).filter(Boolean).length>=2&&!H8(X))Z.what=X;let Q=TJ.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=G8((J?.[1]||"").trim().replace(/\s+/g," "));if(q&&!H8(q))Z.who=q;return Z}function Y8($,Z){let U=$;for(let z of Z.split("."))if(U&&typeof U==="object"&&z in U)U=U[z];else return;return U}function B8($){if(typeof $!=="string")return!1;let Z=$.trim();if(!Z||Z==="slotignored")return!1;return!y0(Z)}function KJ($,Z={}){let U=$&&typeof $==="object"?$:{},z=Y8(U,"project.goal"),X=(B8(z)?String(z).trim():"")||(Z.goal??"").trim(),Q=O8(X),J={"project.goal":X||void 0,"human_context.what":Q.what,"human_context.where":Q.where,"human_context.who":Q.who},q=A2.map((Y,B)=>{let O={n:B+1,path:Y.path,header:Y.header,question:Y.question},D=Y8(U,Y.path);if(B8(D))return{...O,value:String(D).trim(),status:"filled",seeded:!1};let V=J[Y.path];if(V)return{...O,value:V,status:"seeded",seeded:!0};return{...O,value:"",status:"empty",seeded:!1}}),H=q.filter((Y)=>Y.status==="filled").length,G=q.filter((Y)=>Y.status==="seeded").length,W=q.filter((Y)=>Y.status==="empty").length;return{version:V8,rows:q,filledCount:H,seededCount:G,emptyCount:W,complete:W===0}}import{createHash as _8}from"crypto";var N2="faf-bench/1",AJ={"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 NJ($,Z){return AJ[$]??`What is the project's ${Z.replace(/\s*\(.*\)$/,"").toLowerCase()}?`}var I8=[["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"]],G$=new Map;I8.forEach(($,Z)=>$.forEach((U)=>G$.set(U,Z)));var wJ=new Set(["a","an","the","and","or","of","for","to","in","on","with","is","it","its","their","your","via","by","using","use","used"]);function X9($){return $.toLowerCase().replace(/[^a-z0-9\s.+#-]/g," ").replace(/\.(?=\s|$)/g," ").replace(/\s+/g," ").trim()}function D8($){return X9($).split(" ").filter((Z)=>Z&&!wJ.has(Z))}function R8($,Z){let U=X9($),z=X9(Z);if(!U||!z)return!1;if(U===z)return!0;let X=G$.get(U);if(X!==void 0&&G$.get(z)===X)return!0;let Q=D8($);if(Q.length===0)return!1;let J=new Set(D8(Z));return Q.every((q)=>{if(J.has(q))return!0;let H=G$.get(q);return H!==void 0&&[...J].some((G)=>G$.get(G)===H)})}function bJ($){let Z=V9($),U=H$($),z=[],X={},Q=0;for(let H of f){if(Z.slots[H.path]!=="populated")continue;let G=h2(U,H);if(typeof G!=="string")continue;let W=G.trim();if(!W||V$.has(W.toLowerCase()))continue;Q+=1,z.push({n:Q,path:H.path,question:NJ(H.path,H.description)}),X[Q]=W}let J=JSON.stringify({v:N2,q:z.map((H)=>[H.path,H.question])}),q=_8("sha256").update(J).digest("hex").slice(0,12);return{version:N2,qsetHash:q,questions:z,answers:X}}function CJ($){return{version:$.version,qsetHash:$.qsetHash,questions:$.questions}}function jJ($,Z){let U=$.questions.map((X)=>{let Q=Z[String(X.n)]??Z[X.path]??"";return{n:X.n,path:X.path,ok:typeof Q==="string"&&Q.trim()!==""&&R8($.answers[X.n],Q)}}),z=$.questions.filter((X)=>!U[X.n-1].ok);return{correct:U.filter((X)=>X.ok).length,total:$.questions.length,misses:z,perQuestion:U}}function SJ($,Z){let U=JSON.stringify({v:$.version,repo:Z??null,qset:$.qsetHash,protocol:$.protocol,cold:$.cold??null,faf:$.faf??null});return{projection:U,hash:_8("sha256").update(U).digest("hex")}}import{existsSync as EJ,readdirSync as M8,readFileSync as gJ}from"fs";import{join as b2,dirname as yJ,extname as fJ,resolve as xJ}from"path";var w2={"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:["Flutter","Dart"],slots:{packageManager:"pub",mainLanguage:"Dart",framework:"Flutter"},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"]}};var hJ=new Set(["node_modules",".git","dist","build","venv",".venv","__pycache__","target","coverage",".next",".svelte-kit","vendor"]),uJ=new Set([".py",".ts",".tsx",".js",".jsx",".svelte",".vue",".rb",".go",".rs",".php",".java",".kt",".swift"]),kJ={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"]},vJ=[["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 mJ($,Z){for(let[U,z]of vJ)if(U in $)return z;return Z.length>0?"framework":"config"}function pJ($){try{let Z=JSON.parse(gJ($,"utf-8")),U=["background","content_scripts","action","browser_action","permissions"].some((z)=>(z in Z));if(typeof Z.manifest_version==="number"&&U)return"chrome";return"other"}catch{return"other"}}function lJ($){let Z=[],U=xJ($),z=EJ(b2($,".git"));for(let X=0;X<10;X++){let Q;try{Q=M8(U)}catch{break}for(let q of Q){let H=w2[q];if(!H)continue;if(q==="manifest.json"&&pJ(b2(U,q))!=="chrome")continue;Z.push({slots:H.slots||{},priority:H.priority,frameworks:H.frameworks,fileName:q})}if(z&&X===0)break;let J=yJ(U);if(J===U)break;U=J}return Z}function dJ($){let Z=[];for(let U of T8($,2,{count:0})){let z=w2[`*${U}`],X=z?.slots?.mainLanguage;if(X)Z.push({slots:{mainLanguage:X},priority:z.priority,frameworks:z.frameworks})}return Z}function P8($){let Z=[...lJ($),...dJ($)],U={},z={},X=new Set;for(let G of Z){G.frameworks.forEach((W)=>X.add(W));for(let[W,Y]of Object.entries(G.slots))if(Y&&!Y.includes("/")&&(!(W in U)||G.priority>z[W]))U[W]=Y,z[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:mJ(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:[...X],confirmedCount:Z.length,discoveredFormats:J,stackSignature:H}}function C2($){let{slotFills:Z}=P8($),U={};for(let[z,X]of Object.entries(Z)){let Q=kJ[z];if(!Q||!X)continue;let[J,q]=Q;if(J==="project")(U.project??={})[q]=X;else(U.stack??={})[q]=X}return U}function T8($,Z,U){let z=new Set;if(Z<0||U.count>400)return z;let X;try{X=M8($,{withFileTypes:!0})}catch{return z}for(let Q of X){if(U.count++>400)break;if(!Q.isDirectory()){let J=fJ(Q.name);if(uJ.has(J))z.add(J);continue}if(hJ.has(Q.name)||Q.name.startsWith("."))continue;for(let J of T8(b2($,Q.name),Z-1,U))z.add(J)}return z}import{existsSync as F8,readFileSync as K8}from"fs";import{join as A8}from"path";function j2($){let Z=cJ($),U=aJ($),z={},X=(Q,J)=>{if(J)z[Q]=J};return X("what",sJ(Z,U)),X("who",iJ(U)),X("why",rJ(U)),X("where",nJ(Z,U)),X("when",oJ(U)),X("how",tJ(Z,U)),z}function cJ($){let Z=A8($,"package.json");if(!F8(Z))return null;try{return JSON.parse(K8(Z,"utf-8"))}catch{return null}}function aJ($){let Z=A8($,"README.md");if(!F8(Z))return"";let U;try{U=K8(Z,"utf-8")}catch{return""}return U.split(`
|
|
215
|
-
`).
|
|
216
|
-
`).replace(/<[^>]+>/g,"").replace(/!\[[^\]]*\]\([^)]*\)/g,"").trim()}function W0($){return $.replace(/\s+/g," ").replace(/[#*`>]/g,"").trim().slice(0,280)}function S0($,Z){let U=new RegExp(`##?\\s+(?:${Z})\\s*\\n+([\\s\\S]+?)(?:\\n\\n|\\n##?|$)`,"i"),z=$.match(U);return z&&z[1]&&z[1].trim().length>20?W0(z[1]):null}function Y$($,Z,U=30){for(let z of Z){let X=$.match(z);if(X&&X[1]&&X[1].trim().length>=U)return W0(X[1])}return null}function sJ($,Z){if($?.description&&$.description.length>20)return W0($.description);let U=S0(Z,"Purpose|What|About|Overview|Description");if(U)return U;let z=Z.split(/\n\s*\n/).map((X)=>X.trim()).find((X)=>X.length>30&&!X.startsWith("#"));if(z)return W0(z);return Y$(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])}function iJ($){let Z=S0($,"Audience|Who|Who is this for|Who it.s for");if(Z)return Z;return Y$($,[/\b(?:designed|built|made)\s+for\s+((?:developers?|teams?|engineers?|builders?|founders?)[^.\n]{0,80})/i,/\bfor\s+((?:developers?|teams?|engineers?|builders?|founders?)[^.\n]{0,80})/i],8)}function rJ($){let Z=S0($,"Why|Mission|Motivation|Rationale|Vision");if(Z)return Z;return Y$($,[/(?:our\s+)?(?:mission|purpose|goal)(?:\s+is)?\s*:?\s*([^.\n]{30,})/i,/(?:built|created|designed)\s+(?:because|to)\s+([^.\n]{30,})/i])}function nJ($,Z){let U=typeof $?.repository==="string"?$.repository:$?.repository?.url;if(U)return W0(U.replace(/^git\+/,"").replace(/\.git$/,""));if($?.homepage)return W0($.homepage);return Y$(Z,[/\b(?:deployed|hosted|available|published)\s+(?:on|at|via)\s+([^.\n]{4,80})/i],4)}function oJ($){let Z=S0($,"Timeline|Status|Release|Roadmap");if(Z)return Z;return Y$($,[/\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)}function tJ($,Z){let U=$?.scripts?Object.keys($.scripts):[],z=["start","dev","build"].filter((Q)=>U.includes(Q));if(z.length)return W0(z.map((Q)=>`npm run ${Q}`).join(", "));let X=S0(Z,"Usage|Getting Started|Install|Installation|Quick Start");if(X)return X;return S0(Z,"Architecture|Approach|How it works|Methodology|How")}import{existsSync as M,readFileSync as r,readdirSync as w8}from"fs";import{join as I}from"path";var N8=[{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 eJ($){let Z=I($,"Cargo.toml");if(!M(Z))return null;try{let z=r(Z,"utf-8").match(/^\s*\[package\][\s\S]*?^\s*name\s*=\s*"([^"]+)"/m);return z?z[1]:null}catch{return null}}function $q($){let Z=I($,"Cargo.toml");if(!M(Z))return!1;try{let U=r(Z,"utf-8");return/^\s*\[\[bin\]\]/m.test(U)}catch{return!1}}function Zq($,Z){if(Z?.keywords?.some((z)=>/^sdk(?:\s|-|$)|\-sdk$/i.test(z)))return'package.json keywords contains "sdk"';if(Z?.name&&/(?:^|[-_/])sdk(?:[-_/]|$)/i.test(Z.name))return`package.json name "${Z.name}" → sdk`;let U=eJ($);if(U&&/(?:^|[-_])sdk(?:[-_]|$)/i.test(U))return`Cargo.toml name "${U}" → sdk`;return null}function Uq($){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 z=I($,U);if(!M(z))continue;try{let X=JSON.parse(r(z,"utf-8"));if(typeof X.manifest_version==="number")return`${U} manifest_version ${X.manifest_version} (browser extension)`}catch{}}return null}function zq($){let Z=/(numpy|pandas|jupyter|scikit-learn|sklearn|pytorch|tensorflow|matplotlib|scipy)/i,U=I($,"pyproject.toml");if(M(U))try{let Q=r(U,"utf-8").match(Z);if(Q)return`pyproject.toml depends on ${Q[1]}`}catch{}let z=I($,"requirements.txt");if(M(z))try{let Q=r(z,"utf-8").match(Z);if(Q)return`requirements.txt contains ${Q[1]}`}catch{}return null}function Xq($,Z){let U=["react-native","expo","@capacitor/core","@ionic/core"];if(Z){for(let z of U)if(Z.dependencies?.[z]||Z.devDependencies?.[z])return`${z} dependency`}if(M(I($,"pubspec.yaml")))return"pubspec.yaml (Flutter)";if(M(I($,"ios"))&&M(I($,"android")))return"ios/ + android/ dirs";return null}function Qq($,Z){let U=I($,"Cargo.toml");if(M(U))try{let X=r(U,"utf-8");if(/crate-type\s*=\s*\[[^\]]*"cdylib"/.test(X))return'Cargo.toml crate-type = ["cdylib"]';if(/wasm-bindgen|wasm-pack/i.test(X))return"Cargo.toml wasm-bindgen/wasm-pack"}catch{}let z=I($,"build.zig");if(M(z))try{let X=r(z,"utf-8");if(/\.wasm\b|wasm32|setOutputFormat\(\.wasm/i.test(X))return"build.zig wasm target"}catch{}if(Z?.keywords?.some((X)=>/^wasm(?:-|$)|webassembly/i.test(X)))return'package.json keywords contains "wasm"';return null}function Jq($,Z){if(!M(I($,"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((X)=>U[X]))return null}return"index.html (vanilla, no frontend framework)"}function qq($,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)$/,z=Z.files.some((Q)=>U.test(Q)),X=Z.files.some((Q)=>/\.(md|MD)|examples?\//.test(Q));if(!z&&X)return"package.json files = docs/examples only (no source)"}return null}function Hq($,Z,U){let z=U.find((X)=>X.slug==="astro"||X.slug==="gatsby");if(z)return`${z.name} (static-site framework)`;if(Z?.keywords?.some((X)=>/^(website|marketing|landing|brochure|portfolio)$/i.test(X)))return'package keywords contains "website"/"marketing"/"landing"';return null}function Gq($,Z){if(!Z)return null;let U={...Z.dependencies??{},...Z.devDependencies??{}},z=["@clerk/nextjs","@clerk/clerk-react","next-auth","@auth/core","auth0","@auth0/nextjs-auth0"],X=["stripe","@stripe/stripe-js","lemonsqueezy"],Q=z.some((q)=>U[q]),J=X.some((q)=>U[q]);if(Q&&J)return"auth + payment dependencies";return null}function Yq($,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 z=U.some((Q)=>Q.slug==="mcp"),X=U.some((Q)=>Q.category==="database");if(z&&X&&Z?.dependencies&&Object.keys(Z.dependencies).length>10)return"MCP + database + complex deps (platform shape)";return null}function Bq($,Z){if(!Z?.private)return null;if(!(!!Z.workspaces||M(I($,"pnpm-workspace.yaml"))))return null;return"private workspace + multi-package"}function L0($){let Z=I($,"package.json");if(!M(Z))return null;try{return JSON.parse(r(Z,"utf-8"))}catch{return null}}function Vq($,Z){if(!Z.includes("*"))return M(I($,Z));let U=Z.split("/");if(U.length===1){let q=Z.split("*")[0];try{return w8($).some((H)=>H.startsWith(q))}catch{return!1}}let z=I($,...U.slice(0,-1)),X=U[U.length-1],Q=X.split("*")[0],J=X.split("*")[1]||"";try{return w8(z).some((q)=>q.startsWith(Q)&&q.endsWith(J))}catch{return!1}}function Wq($,Z,U){switch($.type){case"dependency":return!!Z?.dependencies?.[$.key];case"devDependency":return!!Z?.devDependencies?.[$.key];case"file":return Vq(U,$.pattern);default:return!1}}function S2($){let Z=L0($);return N8.map((U)=>{let X=U.signals.filter((Q)=>Wq(Q,Z,$)).length/U.signals.length;return{name:U.name,slug:U.slug,category:U.category,confidence:X}}).filter((U)=>U.confidence>0).sort((U,z)=>z.confidence-U.confidence)}function b8($){let Z=L0($);if(Z?.devDependencies?.typescript||Z?.dependencies?.typescript)return"TypeScript";if(M(I($,"tsconfig.json")))return"TypeScript";if(M(I($,"Cargo.toml")))return"Rust";if(M(I($,"go.mod")))return"Go";if(M(I($,"pyproject.toml"))||M(I($,"setup.py")))return"Python";if(M(I($,"Gemfile")))return"Ruby";if(M(I($,"pom.xml"))||M(I($,"build.gradle")))return"Java";if(M(I($,"Package.swift")))return"Swift";if(M(I($,"build.zig")))return"Zig";if(Z)return"JavaScript";return"Unknown"}function C8($){let Z=L0($),U=S2($),z=[],X=qq($,Z);if(X)return z.push(X),{type:"documentation",found:z};let Q=Zq($,Z);if(Q)return z.push(Q),{type:"sdk",found:z};let J=Uq($);if(J)return z.push(J),{type:"extension",found:z};let q=Yq($,Z,U);if(q)return z.push(q),{type:"mcpaas",found:z};let H=Gq($,Z);if(H)return z.push(H),{type:"saas",found:z};let G=Qq($,Z);if(G)return z.push(G),{type:"wasm",found:z};let W=Xq($,Z);if(W)return z.push(W),{type:"mobile",found:z};if(U.some((w)=>w.slug==="mcp"))return z.push("MCP SDK signal"),{type:"mcp",found:z};if(Z?.bin)return z.push("package.json bin"),{type:"cli",found:z};if($q($))return z.push("Cargo.toml [[bin]]"),{type:"cli",found:z};if(M(I($,"build.zig"))){if(z.push("build.zig"),M(I($,"src/main.zig")))return z.push("src/main.zig"),{type:"cli",found:z};if(M(I($,"src/root.zig")))return z.push("src/root.zig"),{type:"library",found:z}}let B=U.some((w)=>w.slug==="svelte"||w.slug==="sveltekit");if(Z?.private===!0&&(M(I($,"pnpm-workspace.yaml"))||Z?.workspaces!==void 0)&&B)return z.push("private workspace","Svelte"),{type:"framework",found:z};if(B)return z.push("Svelte/SvelteKit"),{type:"svelte",found:z};let D=U.some((w)=>w.category==="frontend"),V=U.some((w)=>w.category==="backend");if(Z?.private&&(Z.workspaces||M(I($,"pnpm-workspace.yaml")))&&D&&V)return z.push("private workspace + frontend + backend frameworks"),{type:"enterprise",found:z};let L=Bq($,Z);if(L)return z.push(L),{type:"monorepo-root",found:z};let R=Hq($,Z,U);if(R)return z.push(R),{type:"website",found:z};if(U.some((w)=>w.slug==="nextjs"||w.slug==="nuxt"))return z.push(U.find((w)=>w.slug==="nextjs")?"Next.js":"Nuxt"),{type:"fullstack",found:z};let K=U.some((w)=>w.category==="frontend"),A=U.some((w)=>w.category==="backend");if(K&&A)return z.push("frontend framework","backend framework"),{type:"fullstack",found:z};if(K)return z.push("frontend framework"),{type:"frontend",found:z};if(A)return z.push("backend framework"),{type:"backend",found:z};let F=zq($);if(F)return z.push(F),{type:"data-science",found:z};let N=Jq($,Z);if(N)return z.push(N),{type:"html",found:z};if(Z?.main&&!Z?.bin)return z.push("package.json main (no bin)"),{type:"library",found:z};return z.push("no classifying signals — fallback"),{type:"library",found:z}}function j8($){if(M(I($,"bunfig.toml")))return"Bun";if(M(I($,"deno.json"))||M(I($,"deno.jsonc")))return"Deno";if(L0($))return"Node.js";if(M(I($,"Cargo.toml")))return"Rust";if(M(I($,"go.mod")))return"Go";return"Unknown"}function S8($){if(M(I($,"bun.lockb"))||M(I($,"bun.lock")))return"bun";if(M(I($,"pnpm-lock.yaml")))return"pnpm";if(M(I($,"yarn.lock")))return"yarn";if(M(I($,"package-lock.json")))return"npm";return"npm"}function E8($){if(M(I($,".github/workflows")))return"GitHub Actions";if(M(I($,".gitlab-ci.yml")))return"GitLab CI";if(M(I($,".circleci")))return"CircleCI";if(M(I($,"Jenkinsfile")))return"Jenkins";return null}function g8($){if(M(I($,"vercel.json")))return"Vercel";if(M(I($,"netlify.toml")))return"Netlify";if(M(I($,"wrangler.toml")))return"Cloudflare";if(M(I($,"Dockerfile")))return"Docker";if(M(I($,"fly.toml")))return"Fly.io";if(M(I($,"render.yaml")))return"Render";return null}function y8($){let Z=I($,"svelte.config.js");if(!M(Z))return null;try{let z=r(Z,"utf-8").match(/@sveltejs\/adapter-(\w+)/);if(z){let X=z[1];switch(X){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 X}}return null}catch{return null}}function f8($){let Z=L0($);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(M(I($,"tsconfig.json"))&&Z?.devDependencies?.typescript)return"TypeScript (tsc)";return null}function x8($){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)=>M(I($,U)))}function h8($,Z){let U={};if(Z?.scripts){for(let z of["build","test","lint","dev","start"])if(Z.scripts[z]){let X=M(I($,"bun.lock"))||M(I($,"bun.lockb"))?"bun run":"npm run";U[z]=`${X} ${z}`}}if(M(I($,"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(M(I($,"build.zig"))){if(!U.build)U.build="zig build";if(!U.test)U.test="zig build test"}if(M(I($,"go.mod"))){if(!U.build)U.build="go build ./...";if(!U.test)U.test="go test ./..."}if(M(I($,"pyproject.toml"))||M(I($,"pytest.ini"))){if(!U.test)U.test="pytest"}return U}function u8($,Z,U,z){let X=[];if(z&&z!=="Unknown")X.push(z);let Q=new Set(["frontend","backend","database","build","css","state","monorepo"]);for(let J of U)if(Q.has(J.category))X.push(J.name);if(M(I($,"bunfig.toml")))X.push("Bun");else if(M(I($,"deno.json"))||M(I($,"deno.jsonc")))X.push("Deno");if(X.length<3&&Z?.dependencies){let J=Object.keys(Z.dependencies).slice(0,5);for(let q of J)if(!X.some((H)=>H.toLowerCase().includes(q.toLowerCase())))X.push(q)}return X}function k8($){let Z=L0($),U=S2($),z=b8($),X=C8($),Q=X.type,J=j8($),q=S8($),H=E8($),G=g8($),W=f8($),Y=U.find((j)=>j.category==="frontend"),B=U.find((j)=>j.category==="css"),O=U.find((j)=>j.category==="ui"),D=U.find((j)=>j.category==="state"),V=U.find((j)=>j.category==="backend"),L=U.find((j)=>j.category==="database"),R=D0[Q]||D0.library,T=Q==="framework",K=U.some((j)=>j.slug==="svelte"||j.slug==="sveltekit"),A=T&&K?"svelte":T?null:null,F=Q==="svelte"||A==="svelte",N=F?y8($):null,w=F&&U.some((j)=>j.slug==="sveltekit"),P=new Set(["css_framework","ui_library","database","connection","hosting"]),b={},p=f.filter((j)=>j.path.startsWith("stack."));for(let j of p){let S=j.path.replace("stack.","");if(!R.includes(j.category)){b[S]="slotignored";continue}if(T&&P.has(S)){b[S]="slotignored";continue}switch(S){case"frontend":b[S]=Y?.name??(Q==="cli"?"CLI":"");break;case"css_framework":b[S]=B?.name??"";break;case"ui_library":b[S]=O?.name??"";break;case"state_management":b[S]=F?D?.name??"Runes":D?.name??"";break;case"backend":b[S]=F?w?"SvelteKit":V?.name??"":V?.name??"";break;case"api_type":b[S]=w?"Server Routes":"";break;case"runtime":b[S]=J!=="Unknown"?J:"";break;case"database":b[S]=L?.name??"";break;case"connection":b[S]=L?.name??"";break;case"hosting":if(F&&N)b[S]=N;else b[S]=G??"";break;case"build":b[S]=F?"Vite":W??"";break;case"cicd":b[S]=H??"";break;case"package_manager":b[S]=q;break;default:b[S]="";break}}let l={},E=f.filter((j)=>j.path.startsWith("monorepo."));for(let j of E){let S=j.path.replace("monorepo.","");if(!R.includes(j.category))l[S]="slotignored";else l[S]=""}let E0={name:Z?.name??$.split("/").pop()??"project",goal:Z?.description??"",main_language:z,type:Q};if(T&&A)E0.framework=A;let y2=u8($,Z,U,z),f2=x8($),x2=h8($,Z),B$={faf_version:"2.5.0",project:E0,stack:b,human_context:{who:"",what:Z?.description??"",why:"",where:"",when:"",how:""},monorepo:l,_meta:{found:X.found}};if(y2.length>0)B$.tech_stack=y2;if(f2.length>0)B$.key_files=f2;if(Object.keys(x2).length>0)B$.commands=x2;return B$}import{existsSync as Oq,readFileSync as Dq}from"fs";import{join as _q}from"path";var v8={MIN_LENGTH:8,MAX_LENGTH:280},Lq=[/^(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 m($){let Z=$.trim();if(Z.length<v8.MIN_LENGTH)return!1;if(Z.length>v8.MAX_LENGTH)return!1;if(Lq.some((U)=>U.test(Z)))return!1;if(/^[\s|\-*+]/.test(Z))return!1;if(Z.split(`
|
|
217
|
-
`).length>4)return!1;return!0}function Iq($){let Z=$.split(`
|
|
218
|
-
`)
|
|
219
|
-
`)
|
|
220
|
-
`)
|
|
221
|
-
`),
|
|
222
|
-
`),
|
|
213
|
+
`}function PJ($,Z,U,X="project.faf"){WJ(LJ($,"project.html"),G4(Z,U,X),"utf-8")}import{writeFileSync as FJ}from"fs";import{join as TJ}from"path";var Y4="application/vnd.faf+yaml",KJ="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:KJ,name:V4($),version:String($.project?.version??"0.1.0"),description:NJ($)},X=$.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 L4="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{[L4]:U}}function bJ($){return V4($)}function CJ($,Z,U={}){let X=W4(Z,U),z=TJ($,"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,$])),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=aJ(Z,"utf-8")}catch{return null}let X=eJ(U),z=(T)=>X.has(T.toLowerCase()),Q=sJ.some(z)||/^flutter:\s*$/m.test(U)||/\bsdk:\s*flutter\b/.test(U),J=rJ.find(z),q=nJ.find(([T])=>z(T)),H=oJ.find(([T])=>z(T)),G=H?H[1]:"",W=tJ.find(([T])=>z(T)),Y=W?W[1]:"",V=z("flutter_test")?"flutter_test":z("test")?"test":"",L=/^executables:\s*$/m.test(U),_=!1;try{_=iJ(f2($,"bin")).some((T)=>T.endsWith(".dart"))}catch{}let B=L||_,O,I="",M;if(Q)if(I="Flutter",j4(f2($,"lib","main.dart"))||/^publish_to:\s*['"]?none\b/m.test(U))O="mobile",M="pubspec.yaml (Flutter app)";else O="library",M="pubspec.yaml (Flutter package)";else if(J)O="mcp",M=`pubspec.yaml + ${J} (Dart MCP server)`;else if(q)O="backend",I=q[1],M=`pubspec.yaml + ${q[0]} (Dart backend)`;else if(B)O="cli",M=L?"pubspec.yaml executables: (Dart CLI)":"pubspec.yaml + bin/*.dart (Dart CLI)";else O="library",M="pubspec.yaml (Dart package)";return{appType:O,isFlutter:Q,framework:I,stateManagement:G,routing:Y,testing:V,found:M}}var Qq=new Set(["node_modules",".git","dist","build","venv",".venv","__pycache__","target","coverage",".next",".svelte-kit","vendor"]),Jq=new Set([".py",".ts",".tsx",".js",".jsx",".svelte",".vue",".rb",".go",".rs",".php",".java",".kt",".swift"]),qq={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"]},Hq=[["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 Gq($,Z){for(let[U,X]of Hq)if(U in $)return X;return Z.length>0?"framework":"config"}function Yq($){try{let Z=JSON.parse(Zq($,"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 Bq($){let Z=[],U=zq($),X=$q(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"&&Yq(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=Uq(U);if(J===U)break;U=J}return Z}function Vq($){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=[...Bq($),...Vq($)],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:Gq(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=qq[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=Xq(Q.name);if(Jq.has(J))X.add(J);continue}if(Qq.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=Wq($),U=Lq($),X={},z=(Q,J)=>{if(J)X[Q]=J};return z("what",Oq(Z,U)),z("who",_q(U)),z("why",Dq(U)),z("where",Iq(Z,U)),z("when",Rq(U)),z("how",Mq(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 Wq($){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
|
+
`).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 vq($){let Z=$.split(`
|
|
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 mq($){let U=vq($).split(`
|
|
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 pq($){let Z=D0($,/^(use\s+cases?|goal)\b/i);if(Z&&p(Z))return Z;let U=mq($);if(U&&p(U))return U;return}function lq($){let Z=D0($,/^(about|description|overview|what(\s+is\s+this)?)\b/i);if(Z&&p(Z))return Z;return}function dq($){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 cq($){let Z=D0($,/^(why|motivation|problem|rationale)\b/i);if(Z&&p(Z))return Z;return}function aq($){let Z=D0($,/^(deployment|where(\s+it\s+runs)?|hosting)\b/i);if(Z&&p(Z))return Z;return}function iq($){let Z=D0($,/^(status|history|timeline|since|launched)\b/i);if(Z&&p(Z))return Z;return}function sq($){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 L of Z){let _=kq($,L);if(hq(_)){U=_;break}}if(!U)return{};let X;try{X=uq(U,"utf-8")}catch{return{}}let z={},Q=pq(X);if(Q)z.project={goal:Q};let J={},q=lq(X);if(q)J.what=q;let H=dq(X);if(H)J.who=H;let G=cq(X);if(G)J.why=G;let W=aq(X);if(W)J.where=W;let Y=iq(X);if(Y)J.when=Y;let V=sq(X);if(V)J.how=V;if(Object.keys(J).length>0)z.human_context=J;return z}import{existsSync as rq,readFileSync as nq}from"fs";import{join as oq}from"path";function tq($,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=oq($,"Cargo.toml");if(!rq(Z))return{};let U;try{U=nq(Z,"utf-8")}catch{return{}}let X=tq(U,"description");if(X&&p(X))return{project:{goal:X}};return{}}function eq($,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 eq(k2($),v2($))}function $H($){let Z=o4($),U=e4($),X=Y9(Z,U);ZH(X);let z=Y9(X,x2($));return Y9(z,{human_context:h2($)})}function ZH($){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{CJ as writeServerCard,PJ as writeProjectHtml,_6 as validateFaf,x2 as turboCatSlots,E4 as turboCatScan,Q6 as slotsByCategory,F4 as seedSixWsFromGoal,_9 as scoreFafYaml,hJ as runLoop,h4 as relentlessContextDetailed,h2 as relentlessContext,bJ as registryName,wJ as registryMeta,z4 as readFafRaw,VJ as readFaf,j2 as questionForSlot,pJ as publicQuestions,H9 as normalizeAnswer,A4 as loopVerdict,O9 as kernel,q0 as isPlaceholder,T4 as isHumanSlot,q9 as isEmptyValue,SJ as interviewForMissing,lJ as gradeAnswers,m0 as getTier,H6 as getNextTier,W4 as generateServerCard,G4 as generateProjectHtml,Q4 as findFafFile,b2 as fafContextBlock,c2 as enrichScore,mJ as deriveQuestionSet,K4 as classifyGaps,yJ as buildTableOf8,dJ as buildReceipt,$H 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,L4 as REGISTRY_PUBLISHER_KEY,_$ as PLACEHOLDERS,R4 as INTERVIEW_VERSION,jJ 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};
|
|
223
224
|
|
|
224
|
-
//# debugId=
|
|
225
|
+
//# debugId=19374E9A7C62E83064756E2164756E21
|
|
225
226
|
//# sourceMappingURL=index.js.map
|