typebulb 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,169 +1,174 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
3
- var Ed=Object.create;var vn=Object.defineProperty;var Td=Object.getOwnPropertyDescriptor;var Ad=Object.getOwnPropertyNames;var Pd=Object.getPrototypeOf,Od=Object.prototype.hasOwnProperty;var Nr=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var N=(r,e)=>()=>(r&&(e=r(r=0)),e);var S=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Nd=(r,e)=>{for(var t in e)vn(r,t,{get:e[t],enumerable:!0})},Cd=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ad(e))!Od.call(r,n)&&n!==t&&vn(r,n,{get:()=>e[n],enumerable:!(s=Td(e,n))||s.enumerable});return r};var Id=(r,e,t)=>(t=r!=null?Ed(Pd(r)):{},Cd(e||!r||!r.__esModule?vn(t,"default",{value:r,enumerable:!0}):t,r));function ba(r){return!!r?.startsWith("typebulb")}var En,Tn,Cr=N(()=>{En={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Tn=["code","css","html","data","infer","insight","config","notes"]});function An(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var Ir=N(()=>{});function Rr(r){try{let e=r.split(`
4
- `),t=0;if(e[t]?.trim()!=="---")return null;t++;let s=[];for(;t<e.length&&e[t]?.trim()!=="---";)s.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let n=Bd(s);if(!n)return null;let i=new Map;for(;t<e.length;){let a=e[t]?.trim()?.match(/^\*\*(.+)\*\*$/);if(a){let c=a[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let l=e[t]?.match(/^(`{3,})(\w*)\s*$/);if(!l){t++;continue}let f=l[1];t++;let u=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${f}\\s*$`));)u.push(e[t]),t++;t++,i.set(c,u.join(`
5
- `))}else t++}return{frontmatter:n,files:i}}catch{return null}}function Bd(r){let e={};for(let t of r){let s=t.indexOf(":");if(s===-1)continue;let n=t.slice(0,s).trim(),i=t.slice(s+1).trim();switch(n){case"format":e.format=i;break;case"name":e.name=An(i);break}}return!ba(e.format)||!e.name?null:e}function wa(r){let e=Object.fromEntries(Tn.map(t=>[t,r.files.get(En[t].path)||""]));return{name:r.frontmatter.name,...e}}var va=N(()=>{Cr();Ir()});var Sa=N(()=>{Cr();Ir()});function ka(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var xa=N(()=>{});var Ea=N(()=>{});function Pn(r,e,t){let n=new RegExp(e).exec(r.slice(t));return n?t+n.index:-1}var Ta=N(()=>{});function Tt(r,e,t){let n=new RegExp(e).exec(r.slice(t));return n?t+n.index+n[0].length-1:-1}var Aa=N(()=>{});function _r(r,e){let t=new RegExp(e,"g"),s=r.match(t);return s?s.length:0}var Pa=N(()=>{});function At(r,e,t){let s=t&&t.debug||!1,n=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;s&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Pn(r,`<${e}[
6
- >/]`,i);if(s&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=Tt(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(s&&console.log("[xml-utils] selfClosing:",l),l===!1)if(n){let h=0,g=1,p=0;for(;(c=Tt(a,"[ /]"+e+">",h))!==-1;){let y=a.substring(h,c+1);if(g+=_r(y,"<"+e+`[
7
- >]`),p+=_r(y,"</"+e+">"),p>=g)break;h=c}}else c=Tt(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(s&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var On=N(()=>{Ta();Aa();Pa()});var Nn=N(()=>{On()});var Cn=N(()=>{Nn()});var Oa=N(()=>{Cn()});var Na=N(()=>{});var Ca=N(()=>{Ea();On();Nn();Oa();Cn();Na()});var P=S(M=>{"use strict";var In=Symbol.for("yaml.alias"),Ia=Symbol.for("yaml.document"),Lr=Symbol.for("yaml.map"),Ra=Symbol.for("yaml.pair"),Rn=Symbol.for("yaml.scalar"),$r=Symbol.for("yaml.seq"),ue=Symbol.for("yaml.node.type"),Kd=r=>!!r&&typeof r=="object"&&r[ue]===In,Jd=r=>!!r&&typeof r=="object"&&r[ue]===Ia,Vd=r=>!!r&&typeof r=="object"&&r[ue]===Lr,Wd=r=>!!r&&typeof r=="object"&&r[ue]===Ra,_a=r=>!!r&&typeof r=="object"&&r[ue]===Rn,Yd=r=>!!r&&typeof r=="object"&&r[ue]===$r;function La(r){if(r&&typeof r=="object")switch(r[ue]){case Lr:case $r:return!0}return!1}function Hd(r){if(r&&typeof r=="object")switch(r[ue]){case In:case Lr:case Rn:case $r:return!0}return!1}var Gd=r=>(_a(r)||La(r))&&!!r.anchor;M.ALIAS=In;M.DOC=Ia;M.MAP=Lr;M.NODE_TYPE=ue;M.PAIR=Ra;M.SCALAR=Rn;M.SEQ=$r;M.hasAnchor=Gd;M.isAlias=Kd;M.isCollection=La;M.isDocument=Jd;M.isMap=Vd;M.isNode=Hd;M.isPair=Wd;M.isScalar=_a;M.isSeq=Yd});var Pt=S(_n=>{"use strict";var $=P(),J=Symbol("break visit"),$a=Symbol("skip children"),oe=Symbol("remove node");function Mr(r,e){let t=Ma(e);$.isDocument(r)?Qe(null,r.contents,t,Object.freeze([r]))===oe&&(r.contents=null):Qe(null,r,t,Object.freeze([]))}Mr.BREAK=J;Mr.SKIP=$a;Mr.REMOVE=oe;function Qe(r,e,t,s){let n=Da(r,e,t,s);if($.isNode(n)||$.isPair(n))return qa(r,s,n),Qe(r,n,t,s);if(typeof n!="symbol"){if($.isCollection(e)){s=Object.freeze(s.concat(e));for(let i=0;i<e.items.length;++i){let o=Qe(i,e.items[i],t,s);if(typeof o=="number")i=o-1;else{if(o===J)return J;o===oe&&(e.items.splice(i,1),i-=1)}}}else if($.isPair(e)){s=Object.freeze(s.concat(e));let i=Qe("key",e.key,t,s);if(i===J)return J;i===oe&&(e.key=null);let o=Qe("value",e.value,t,s);if(o===J)return J;o===oe&&(e.value=null)}}return n}async function Dr(r,e){let t=Ma(e);$.isDocument(r)?await Xe(null,r.contents,t,Object.freeze([r]))===oe&&(r.contents=null):await Xe(null,r,t,Object.freeze([]))}Dr.BREAK=J;Dr.SKIP=$a;Dr.REMOVE=oe;async function Xe(r,e,t,s){let n=await Da(r,e,t,s);if($.isNode(n)||$.isPair(n))return qa(r,s,n),Xe(r,n,t,s);if(typeof n!="symbol"){if($.isCollection(e)){s=Object.freeze(s.concat(e));for(let i=0;i<e.items.length;++i){let o=await Xe(i,e.items[i],t,s);if(typeof o=="number")i=o-1;else{if(o===J)return J;o===oe&&(e.items.splice(i,1),i-=1)}}}else if($.isPair(e)){s=Object.freeze(s.concat(e));let i=await Xe("key",e.key,t,s);if(i===J)return J;i===oe&&(e.key=null);let o=await Xe("value",e.value,t,s);if(o===J)return J;o===oe&&(e.value=null)}}return n}function Ma(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function Da(r,e,t,s){if(typeof t=="function")return t(r,e,s);if($.isMap(e))return t.Map?.(r,e,s);if($.isSeq(e))return t.Seq?.(r,e,s);if($.isPair(e))return t.Pair?.(r,e,s);if($.isScalar(e))return t.Scalar?.(r,e,s);if($.isAlias(e))return t.Alias?.(r,e,s)}function qa(r,e,t){let s=e[e.length-1];if($.isCollection(s))s.items[r]=t;else if($.isPair(s))r==="key"?s.key=t:s.value=t;else if($.isDocument(s))s.contents=t;else{let n=$.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${n} parent`)}}_n.visit=Mr;_n.visitAsync=Dr});var Ln=S(ja=>{"use strict";var Ba=P(),zd=Pt(),Qd={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Xd=r=>r.replace(/[!,[\]{}]/g,e=>Qd[e]),Ot=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let s=e.trim().split(/[ \t]+/),n=s.shift();switch(n){case"%TAG":{if(s.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[i,o]=s;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=s;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${n}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,s,n]=e.match(/^(.*!)([^!]*)$/s);n||t(`The ${e} tag has no suffix`);let i=this.tags[s];if(i)try{return i+decodeURIComponent(n)}catch(o){return t(String(o)),null}return s==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,s]of Object.entries(this.tags))if(e.startsWith(s))return t+Xd(e.substring(s.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),n;if(e&&s.length>0&&Ba.isNode(e.contents)){let i={};zd.visit(e.contents,(o,a)=>{Ba.isNode(a)&&a.tag&&(i[a.tag]=!0)}),n=Object.keys(i)}else n=[];for(let[i,o]of s)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||n.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
8
- `)}};Ot.defaultYaml={explicit:!1,version:"1.2"};Ot.defaultTags={"!!":"tag:yaml.org,2002:"};ja.Directives=Ot});var qr=S(Nt=>{"use strict";var Fa=P(),Zd=Pt();function ep(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function Ua(r){let e=new Set;return Zd.visit(r,{Value(t,s){s.anchor&&e.add(s.anchor)}}),e}function Ka(r,e){for(let t=1;;++t){let s=`${r}${t}`;if(!e.has(s))return s}}function tp(r,e){let t=[],s=new Map,n=null;return{onAnchor:i=>{t.push(i),n??(n=Ua(r));let o=Ka(e,n);return n.add(o),o},setAnchors:()=>{for(let i of t){let o=s.get(i);if(typeof o=="object"&&o.anchor&&(Fa.isScalar(o.node)||Fa.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:s}}Nt.anchorIsValid=ep;Nt.anchorNames=Ua;Nt.createNodeAnchors=tp;Nt.findNewAnchor=Ka});var $n=S(Ja=>{"use strict";function Ct(r,e,t,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let n=0,i=s.length;n<i;++n){let o=s[n],a=Ct(r,s,String(n),o);a===void 0?delete s[n]:a!==o&&(s[n]=a)}else if(s instanceof Map)for(let n of Array.from(s.keys())){let i=s.get(n),o=Ct(r,s,n,i);o===void 0?s.delete(n):o!==i&&s.set(n,o)}else if(s instanceof Set)for(let n of Array.from(s)){let i=Ct(r,s,n,n);i===void 0?s.delete(n):i!==n&&(s.delete(n),s.add(i))}else for(let[n,i]of Object.entries(s)){let o=Ct(r,s,n,i);o===void 0?delete s[n]:o!==i&&(s[n]=o)}return r.call(e,t,s)}Ja.applyReviver=Ct});var ye=S(Wa=>{"use strict";var rp=P();function Va(r,e,t){if(Array.isArray(r))return r.map((s,n)=>Va(s,String(n),t));if(r&&typeof r.toJSON=="function"){if(!t||!rp.hasAnchor(r))return r.toJSON(e,t);let s={aliasCount:0,count:1,res:void 0};t.anchors.set(r,s),t.onCreate=i=>{s.res=i,delete t.onCreate};let n=r.toJSON(e,t);return t.onCreate&&t.onCreate(n),n}return typeof r=="bigint"&&!t?.keep?Number(r):r}Wa.toJS=Va});var Br=S(Ha=>{"use strict";var sp=$n(),Ya=P(),np=ye(),Mn=class{constructor(e){Object.defineProperty(this,Ya.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:s,onAnchor:n,reviver:i}={}){if(!Ya.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=np.toJS(this,"",o);if(typeof n=="function")for(let{count:c,res:l}of o.anchors.values())n(l,c);return typeof i=="function"?sp.applyReviver(i,{"":a},"",a):a}};Ha.NodeBase=Mn});var It=S(Ga=>{"use strict";var ip=qr(),op=Pt(),Ze=P(),ap=Br(),cp=ye(),Dn=class extends ap.NodeBase{constructor(e){super(Ze.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let s;t?.aliasResolveCache?s=t.aliasResolveCache:(s=[],op.visit(e,{Node:(i,o)=>{(Ze.isAlias(o)||Ze.hasAnchor(o))&&s.push(o)}}),t&&(t.aliasResolveCache=s));let n;for(let i of s){if(i===this)break;i.anchor===this.source&&(n=i)}return n}toJSON(e,t){if(!t)return{source:this.source};let{anchors:s,doc:n,maxAliasCount:i}=t,o=this.resolve(n,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=s.get(o);if(a||(cp.toJS(o,null,t),a=s.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=jr(n,o,s)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,s){let n=`*${this.source}`;if(e){if(ip.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${n} `}return n}};function jr(r,e,t){if(Ze.isAlias(e)){let s=e.resolve(r),n=t&&s&&t.get(s);return n?n.count*n.aliasCount:0}else if(Ze.isCollection(e)){let s=0;for(let n of e.items){let i=jr(r,n,t);i>s&&(s=i)}return s}else if(Ze.isPair(e)){let s=jr(r,e.key,t),n=jr(r,e.value,t);return Math.max(s,n)}return 1}Ga.Alias=Dn});var _=S(qn=>{"use strict";var lp=P(),up=Br(),fp=ye(),dp=r=>!r||typeof r!="function"&&typeof r!="object",be=class extends up.NodeBase{constructor(e){super(lp.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:fp.toJS(this.value,e,t)}toString(){return String(this.value)}};be.BLOCK_FOLDED="BLOCK_FOLDED";be.BLOCK_LITERAL="BLOCK_LITERAL";be.PLAIN="PLAIN";be.QUOTE_DOUBLE="QUOTE_DOUBLE";be.QUOTE_SINGLE="QUOTE_SINGLE";qn.Scalar=be;qn.isScalarValue=dp});var Rt=S(Qa=>{"use strict";var pp=It(),Re=P(),za=_(),hp="tag:yaml.org,2002:";function mp(r,e,t){if(e){let s=t.filter(i=>i.tag===e),n=s.find(i=>!i.format)??s[0];if(!n)throw new Error(`Tag ${e} not found`);return n}return t.find(s=>s.identify?.(r)&&!s.format)}function gp(r,e,t){if(Re.isDocument(r)&&(r=r.contents),Re.isNode(r))return r;if(Re.isPair(r)){let u=t.schema[Re.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:s,onAnchor:n,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(s&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=n(r)),new pp.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=hp+e.slice(2));let l=mp(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new za.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[Re.MAP]:Symbol.iterator in Object(r)?o[Re.SEQ]:o[Re.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new za.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Qa.createNode=gp});var Ur=S(Fr=>{"use strict";var yp=Rt(),ae=P(),bp=Br();function Bn(r,e,t){let s=t;for(let n=e.length-1;n>=0;--n){let i=e[n];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=s,s=o}else s=new Map([[i,s]])}return yp.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Xa=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,jn=class extends bp.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(s=>ae.isNode(s)||ae.isPair(s)?s.clone(e):s),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Xa(e))this.add(t);else{let[s,...n]=e,i=this.get(s,!0);if(ae.isCollection(i))i.addIn(n,t);else if(i===void 0&&this.schema)this.set(s,Bn(this.schema,n,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${n}`)}}deleteIn(e){let[t,...s]=e;if(s.length===0)return this.delete(t);let n=this.get(t,!0);if(ae.isCollection(n))return n.deleteIn(s);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${s}`)}getIn(e,t){let[s,...n]=e,i=this.get(s,!0);return n.length===0?!t&&ae.isScalar(i)?i.value:i:ae.isCollection(i)?i.getIn(n,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!ae.isPair(t))return!1;let s=t.value;return s==null||e&&ae.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(e){let[t,...s]=e;if(s.length===0)return this.has(t);let n=this.get(t,!0);return ae.isCollection(n)?n.hasIn(s):!1}setIn(e,t){let[s,...n]=e;if(n.length===0)this.set(s,t);else{let i=this.get(s,!0);if(ae.isCollection(i))i.setIn(n,t);else if(i===void 0&&this.schema)this.set(s,Bn(this.schema,n,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${n}`)}}};Fr.Collection=jn;Fr.collectionFromPath=Bn;Fr.isEmptyPath=Xa});var _t=S(Kr=>{"use strict";var wp=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Fn(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var vp=(r,e,t)=>r.endsWith(`
9
- `)?Fn(t,e):t.includes(`
3
+ var Od=Object.create;var xn=Object.defineProperty;var Nd=Object.getOwnPropertyDescriptor;var Cd=Object.getOwnPropertyNames;var Rd=Object.getPrototypeOf,Id=Object.prototype.hasOwnProperty;var Cr=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var O=(r,e)=>()=>(r&&(e=r(r=0)),e);var v=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),_d=(r,e)=>{for(var t in e)xn(r,t,{get:e[t],enumerable:!0})},Ld=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Cd(e))!Id.call(r,n)&&n!==t&&xn(r,n,{get:()=>e[n],enumerable:!(s=Nd(e,n))||s.enumerable});return r};var $d=(r,e,t)=>(t=r!=null?Od(Rd(r)):{},Ld(e||!r||!r.__esModule?xn(t,"default",{value:r,enumerable:!0}):t,r));function va(r){return!!r?.startsWith("typebulb")}var Pn,On,Rr=O(()=>{Pn={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},On=["code","css","html","data","infer","insight","config","notes"]});function Nn(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var Ir=O(()=>{});function _r(r){try{let e=r.split(`
4
+ `),t=0;if(e[t]?.trim()!=="---")return null;t++;let s=[];for(;t<e.length&&e[t]?.trim()!=="---";)s.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let n=Jd(s);if(!n)return null;let i=new Map;for(;t<e.length;){let a=e[t]?.trim()?.match(/^\*\*(.+)\*\*$/);if(a){let c=a[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let l=e[t]?.match(/^(`{3,})(\w*)\s*$/);if(!l){t++;continue}let f=l[1];t++;let u=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${f}\\s*$`));)u.push(e[t]),t++;t++,i.set(c,u.join(`
5
+ `))}else t++}return{frontmatter:n,files:i}}catch{return null}}function Jd(r){let e={};for(let t of r){let s=t.indexOf(":");if(s===-1)continue;let n=t.slice(0,s).trim(),i=t.slice(s+1).trim();switch(n){case"format":e.format=i;break;case"name":e.name=Nn(i);break}}return!va(e.format)||!e.name?null:e}function Sa(r){let e=Object.fromEntries(On.map(t=>[t,r.files.get(Pn[t].path)||""]));return{name:r.frontmatter.name,...e}}var ka=O(()=>{Rr();Ir()});var xa=O(()=>{Rr();Ir()});function Ea(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var Aa=O(()=>{});var Ta=O(()=>{});function Cn(r,e,t){let n=new RegExp(e).exec(r.slice(t));return n?t+n.index:-1}var Pa=O(()=>{});function At(r,e,t){let n=new RegExp(e).exec(r.slice(t));return n?t+n.index+n[0].length-1:-1}var Oa=O(()=>{});function Lr(r,e){let t=new RegExp(e,"g"),s=r.match(t);return s?s.length:0}var Na=O(()=>{});function Tt(r,e,t){let s=t&&t.debug||!1,n=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;s&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Cn(r,`<${e}[
6
+ >/]`,i);if(s&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=At(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(s&&console.log("[xml-utils] selfClosing:",l),l===!1)if(n){let p=0,g=1,h=0;for(;(c=At(a,"[ /]"+e+">",p))!==-1;){let y=a.substring(p,c+1);if(g+=Lr(y,"<"+e+`[
7
+ >]`),h+=Lr(y,"</"+e+">"),h>=g)break;p=c}}else c=At(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(s&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Rn=O(()=>{Pa();Oa();Na()});var In=O(()=>{Rn()});var _n=O(()=>{In()});var Ca=O(()=>{_n()});var Ra=O(()=>{});var Ia=O(()=>{Ta();Rn();In();Ca();_n();Ra()});var P=v(D=>{"use strict";var Ln=Symbol.for("yaml.alias"),_a=Symbol.for("yaml.document"),$r=Symbol.for("yaml.map"),La=Symbol.for("yaml.pair"),$n=Symbol.for("yaml.scalar"),Mr=Symbol.for("yaml.seq"),fe=Symbol.for("yaml.node.type"),Yd=r=>!!r&&typeof r=="object"&&r[fe]===Ln,Hd=r=>!!r&&typeof r=="object"&&r[fe]===_a,Gd=r=>!!r&&typeof r=="object"&&r[fe]===$r,zd=r=>!!r&&typeof r=="object"&&r[fe]===La,$a=r=>!!r&&typeof r=="object"&&r[fe]===$n,Qd=r=>!!r&&typeof r=="object"&&r[fe]===Mr;function Ma(r){if(r&&typeof r=="object")switch(r[fe]){case $r:case Mr:return!0}return!1}function Xd(r){if(r&&typeof r=="object")switch(r[fe]){case Ln:case $r:case $n:case Mr:return!0}return!1}var Zd=r=>($a(r)||Ma(r))&&!!r.anchor;D.ALIAS=Ln;D.DOC=_a;D.MAP=$r;D.NODE_TYPE=fe;D.PAIR=La;D.SCALAR=$n;D.SEQ=Mr;D.hasAnchor=Zd;D.isAlias=Yd;D.isCollection=Ma;D.isDocument=Hd;D.isMap=Gd;D.isNode=Xd;D.isPair=zd;D.isScalar=$a;D.isSeq=Qd});var Pt=v(Mn=>{"use strict";var M=P(),J=Symbol("break visit"),Da=Symbol("skip children"),ae=Symbol("remove node");function Dr(r,e){let t=Ba(e);M.isDocument(r)?Qe(null,r.contents,t,Object.freeze([r]))===ae&&(r.contents=null):Qe(null,r,t,Object.freeze([]))}Dr.BREAK=J;Dr.SKIP=Da;Dr.REMOVE=ae;function Qe(r,e,t,s){let n=qa(r,e,t,s);if(M.isNode(n)||M.isPair(n))return Fa(r,s,n),Qe(r,n,t,s);if(typeof n!="symbol"){if(M.isCollection(e)){s=Object.freeze(s.concat(e));for(let i=0;i<e.items.length;++i){let o=Qe(i,e.items[i],t,s);if(typeof o=="number")i=o-1;else{if(o===J)return J;o===ae&&(e.items.splice(i,1),i-=1)}}}else if(M.isPair(e)){s=Object.freeze(s.concat(e));let i=Qe("key",e.key,t,s);if(i===J)return J;i===ae&&(e.key=null);let o=Qe("value",e.value,t,s);if(o===J)return J;o===ae&&(e.value=null)}}return n}async function Br(r,e){let t=Ba(e);M.isDocument(r)?await Xe(null,r.contents,t,Object.freeze([r]))===ae&&(r.contents=null):await Xe(null,r,t,Object.freeze([]))}Br.BREAK=J;Br.SKIP=Da;Br.REMOVE=ae;async function Xe(r,e,t,s){let n=await qa(r,e,t,s);if(M.isNode(n)||M.isPair(n))return Fa(r,s,n),Xe(r,n,t,s);if(typeof n!="symbol"){if(M.isCollection(e)){s=Object.freeze(s.concat(e));for(let i=0;i<e.items.length;++i){let o=await Xe(i,e.items[i],t,s);if(typeof o=="number")i=o-1;else{if(o===J)return J;o===ae&&(e.items.splice(i,1),i-=1)}}}else if(M.isPair(e)){s=Object.freeze(s.concat(e));let i=await Xe("key",e.key,t,s);if(i===J)return J;i===ae&&(e.key=null);let o=await Xe("value",e.value,t,s);if(o===J)return J;o===ae&&(e.value=null)}}return n}function Ba(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function qa(r,e,t,s){if(typeof t=="function")return t(r,e,s);if(M.isMap(e))return t.Map?.(r,e,s);if(M.isSeq(e))return t.Seq?.(r,e,s);if(M.isPair(e))return t.Pair?.(r,e,s);if(M.isScalar(e))return t.Scalar?.(r,e,s);if(M.isAlias(e))return t.Alias?.(r,e,s)}function Fa(r,e,t){let s=e[e.length-1];if(M.isCollection(s))s.items[r]=t;else if(M.isPair(s))r==="key"?s.key=t:s.value=t;else if(M.isDocument(s))s.contents=t;else{let n=M.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${n} parent`)}}Mn.visit=Dr;Mn.visitAsync=Br});var Dn=v(Ua=>{"use strict";var ja=P(),ep=Pt(),tp={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},rp=r=>r.replace(/[!,[\]{}]/g,e=>tp[e]),Ot=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let s=e.trim().split(/[ \t]+/),n=s.shift();switch(n){case"%TAG":{if(s.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[i,o]=s;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=s;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${n}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,s,n]=e.match(/^(.*!)([^!]*)$/s);n||t(`The ${e} tag has no suffix`);let i=this.tags[s];if(i)try{return i+decodeURIComponent(n)}catch(o){return t(String(o)),null}return s==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,s]of Object.entries(this.tags))if(e.startsWith(s))return t+rp(e.substring(s.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),n;if(e&&s.length>0&&ja.isNode(e.contents)){let i={};ep.visit(e.contents,(o,a)=>{ja.isNode(a)&&a.tag&&(i[a.tag]=!0)}),n=Object.keys(i)}else n=[];for(let[i,o]of s)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||n.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
8
+ `)}};Ot.defaultYaml={explicit:!1,version:"1.2"};Ot.defaultTags={"!!":"tag:yaml.org,2002:"};Ua.Directives=Ot});var qr=v(Nt=>{"use strict";var Ja=P(),sp=Pt();function np(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function Ka(r){let e=new Set;return sp.visit(r,{Value(t,s){s.anchor&&e.add(s.anchor)}}),e}function Va(r,e){for(let t=1;;++t){let s=`${r}${t}`;if(!e.has(s))return s}}function ip(r,e){let t=[],s=new Map,n=null;return{onAnchor:i=>{t.push(i),n??(n=Ka(r));let o=Va(e,n);return n.add(o),o},setAnchors:()=>{for(let i of t){let o=s.get(i);if(typeof o=="object"&&o.anchor&&(Ja.isScalar(o.node)||Ja.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:s}}Nt.anchorIsValid=np;Nt.anchorNames=Ka;Nt.createNodeAnchors=ip;Nt.findNewAnchor=Va});var Bn=v(Wa=>{"use strict";function Ct(r,e,t,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let n=0,i=s.length;n<i;++n){let o=s[n],a=Ct(r,s,String(n),o);a===void 0?delete s[n]:a!==o&&(s[n]=a)}else if(s instanceof Map)for(let n of Array.from(s.keys())){let i=s.get(n),o=Ct(r,s,n,i);o===void 0?s.delete(n):o!==i&&s.set(n,o)}else if(s instanceof Set)for(let n of Array.from(s)){let i=Ct(r,s,n,n);i===void 0?s.delete(n):i!==n&&(s.delete(n),s.add(i))}else for(let[n,i]of Object.entries(s)){let o=Ct(r,s,n,i);o===void 0?delete s[n]:o!==i&&(s[n]=o)}return r.call(e,t,s)}Wa.applyReviver=Ct});var ye=v(Ha=>{"use strict";var op=P();function Ya(r,e,t){if(Array.isArray(r))return r.map((s,n)=>Ya(s,String(n),t));if(r&&typeof r.toJSON=="function"){if(!t||!op.hasAnchor(r))return r.toJSON(e,t);let s={aliasCount:0,count:1,res:void 0};t.anchors.set(r,s),t.onCreate=i=>{s.res=i,delete t.onCreate};let n=r.toJSON(e,t);return t.onCreate&&t.onCreate(n),n}return typeof r=="bigint"&&!t?.keep?Number(r):r}Ha.toJS=Ya});var Fr=v(za=>{"use strict";var ap=Bn(),Ga=P(),cp=ye(),qn=class{constructor(e){Object.defineProperty(this,Ga.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:s,onAnchor:n,reviver:i}={}){if(!Ga.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=cp.toJS(this,"",o);if(typeof n=="function")for(let{count:c,res:l}of o.anchors.values())n(l,c);return typeof i=="function"?ap.applyReviver(i,{"":a},"",a):a}};za.NodeBase=qn});var Rt=v(Qa=>{"use strict";var lp=qr(),up=Pt(),Ze=P(),fp=Fr(),dp=ye(),Fn=class extends fp.NodeBase{constructor(e){super(Ze.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let s;t?.aliasResolveCache?s=t.aliasResolveCache:(s=[],up.visit(e,{Node:(i,o)=>{(Ze.isAlias(o)||Ze.hasAnchor(o))&&s.push(o)}}),t&&(t.aliasResolveCache=s));let n;for(let i of s){if(i===this)break;i.anchor===this.source&&(n=i)}return n}toJSON(e,t){if(!t)return{source:this.source};let{anchors:s,doc:n,maxAliasCount:i}=t,o=this.resolve(n,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=s.get(o);if(a||(dp.toJS(o,null,t),a=s.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=jr(n,o,s)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,s){let n=`*${this.source}`;if(e){if(lp.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${n} `}return n}};function jr(r,e,t){if(Ze.isAlias(e)){let s=e.resolve(r),n=t&&s&&t.get(s);return n?n.count*n.aliasCount:0}else if(Ze.isCollection(e)){let s=0;for(let n of e.items){let i=jr(r,n,t);i>s&&(s=i)}return s}else if(Ze.isPair(e)){let s=jr(r,e.key,t),n=jr(r,e.value,t);return Math.max(s,n)}return 1}Qa.Alias=Fn});var _=v(jn=>{"use strict";var pp=P(),hp=Fr(),mp=ye(),gp=r=>!r||typeof r!="function"&&typeof r!="object",be=class extends hp.NodeBase{constructor(e){super(pp.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:mp.toJS(this.value,e,t)}toString(){return String(this.value)}};be.BLOCK_FOLDED="BLOCK_FOLDED";be.BLOCK_LITERAL="BLOCK_LITERAL";be.PLAIN="PLAIN";be.QUOTE_DOUBLE="QUOTE_DOUBLE";be.QUOTE_SINGLE="QUOTE_SINGLE";jn.Scalar=be;jn.isScalarValue=gp});var It=v(Za=>{"use strict";var yp=Rt(),Ie=P(),Xa=_(),bp="tag:yaml.org,2002:";function wp(r,e,t){if(e){let s=t.filter(i=>i.tag===e),n=s.find(i=>!i.format)??s[0];if(!n)throw new Error(`Tag ${e} not found`);return n}return t.find(s=>s.identify?.(r)&&!s.format)}function vp(r,e,t){if(Ie.isDocument(r)&&(r=r.contents),Ie.isNode(r))return r;if(Ie.isPair(r)){let u=t.schema[Ie.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:s,onAnchor:n,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(s&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=n(r)),new yp.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=bp+e.slice(2));let l=wp(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Xa.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[Ie.MAP]:Symbol.iterator in Object(r)?o[Ie.SEQ]:o[Ie.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new Xa.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Za.createNode=vp});var Jr=v(Ur=>{"use strict";var Sp=It(),ce=P(),kp=Fr();function Un(r,e,t){let s=t;for(let n=e.length-1;n>=0;--n){let i=e[n];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=s,s=o}else s=new Map([[i,s]])}return Sp.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var ec=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Jn=class extends kp.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(s=>ce.isNode(s)||ce.isPair(s)?s.clone(e):s),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(ec(e))this.add(t);else{let[s,...n]=e,i=this.get(s,!0);if(ce.isCollection(i))i.addIn(n,t);else if(i===void 0&&this.schema)this.set(s,Un(this.schema,n,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${n}`)}}deleteIn(e){let[t,...s]=e;if(s.length===0)return this.delete(t);let n=this.get(t,!0);if(ce.isCollection(n))return n.deleteIn(s);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${s}`)}getIn(e,t){let[s,...n]=e,i=this.get(s,!0);return n.length===0?!t&&ce.isScalar(i)?i.value:i:ce.isCollection(i)?i.getIn(n,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!ce.isPair(t))return!1;let s=t.value;return s==null||e&&ce.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(e){let[t,...s]=e;if(s.length===0)return this.has(t);let n=this.get(t,!0);return ce.isCollection(n)?n.hasIn(s):!1}setIn(e,t){let[s,...n]=e;if(n.length===0)this.set(s,t);else{let i=this.get(s,!0);if(ce.isCollection(i))i.setIn(n,t);else if(i===void 0&&this.schema)this.set(s,Un(this.schema,n,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${n}`)}}};Ur.Collection=Jn;Ur.collectionFromPath=Un;Ur.isEmptyPath=ec});var _t=v(Kr=>{"use strict";var xp=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Kn(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Ep=(r,e,t)=>r.endsWith(`
9
+ `)?Kn(t,e):t.includes(`
10
10
  `)?`
11
- `+Fn(t,e):(r.endsWith(" ")?"":" ")+t;Kr.indentComment=Fn;Kr.lineComment=vp;Kr.stringifyComment=wp});var ec=S(Lt=>{"use strict";var Sp="flow",Un="block",Jr="quoted";function kp(r,e,t="flow",{indentAtStart:s,lineWidth:n=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!n||n<0)return r;n<i&&(i=0);let c=Math.max(1+i,1+n-e.length);if(r.length<=c)return r;let l=[],f={},u=n-e.length;typeof s=="number"&&(s>n-Math.max(2,i)?l.push(0):u=n-s);let d,h,g=!1,p=-1,y=-1,x=-1;t===Un&&(p=Za(r,p,e.length),p!==-1&&(u=p+c));for(let E;E=r[p+=1];){if(t===Jr&&E==="\\"){switch(y=p,r[p+1]){case"x":p+=3;break;case"u":p+=5;break;case"U":p+=9;break;default:p+=1}x=p}if(E===`
12
- `)t===Un&&(p=Za(r,p,e.length)),u=p+e.length+c,d=void 0;else{if(E===" "&&h&&h!==" "&&h!==`
13
- `&&h!==" "){let m=r[p+1];m&&m!==" "&&m!==`
14
- `&&m!==" "&&(d=p)}if(p>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Jr){for(;h===" "||h===" ";)h=E,E=r[p+=1],g=!0;let m=p>x+1?p-2:y-1;if(f[m])return r;l.push(m),f[m]=!0,u=m+c,d=void 0}else g=!0}h=E}if(g&&a&&a(),l.length===0)return r;o&&o();let k=r.slice(0,l[0]);for(let E=0;E<l.length;++E){let m=l[E],b=l[E+1]||r.length;m===0?k=`
15
- ${e}${r.slice(0,b)}`:(t===Jr&&f[m]&&(k+=`${r[m]}\\`),k+=`
16
- ${e}${r.slice(m+1,b)}`)}return k}function Za(r,e,t){let s=e,n=e+1,i=r[n];for(;i===" "||i===" ";)if(e<n+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
17
- `);s=e,n=e+1,i=r[n]}return s}Lt.FOLD_BLOCK=Un;Lt.FOLD_FLOW=Sp;Lt.FOLD_QUOTED=Jr;Lt.foldFlowLines=kp});var Mt=S(tc=>{"use strict";var Z=_(),we=ec(),Wr=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Yr=r=>/^(%|---|\.\.\.)/m.test(r);function xp(r,e,t){if(!e||e<0)return!1;let s=e-t,n=r.length;if(n<=s)return!1;for(let i=0,o=0;i<n;++i)if(r[i]===`
18
- `){if(i-o>s)return!0;if(o=i+1,n-o<=s)return!1}return!0}function $t(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:s}=e,n=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Yr(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(s||t[c+2]==='"'||t.length<n)c+=1;else{for(o+=t.slice(a,c)+`
11
+ `+Kn(t,e):(r.endsWith(" ")?"":" ")+t;Kr.indentComment=Kn;Kr.lineComment=Ep;Kr.stringifyComment=xp});var rc=v(Lt=>{"use strict";var Ap="flow",Vn="block",Vr="quoted";function Tp(r,e,t="flow",{indentAtStart:s,lineWidth:n=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!n||n<0)return r;n<i&&(i=0);let c=Math.max(1+i,1+n-e.length);if(r.length<=c)return r;let l=[],f={},u=n-e.length;typeof s=="number"&&(s>n-Math.max(2,i)?l.push(0):u=n-s);let d,p,g=!1,h=-1,y=-1,x=-1;t===Vn&&(h=tc(r,h,e.length),h!==-1&&(u=h+c));for(let m;m=r[h+=1];){if(t===Vr&&m==="\\"){switch(y=h,r[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}x=h}if(m===`
12
+ `)t===Vn&&(h=tc(r,h,e.length)),u=h+e.length+c,d=void 0;else{if(m===" "&&p&&p!==" "&&p!==`
13
+ `&&p!==" "){let b=r[h+1];b&&b!==" "&&b!==`
14
+ `&&b!==" "&&(d=h)}if(h>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Vr){for(;p===" "||p===" ";)p=m,m=r[h+=1],g=!0;let b=h>x+1?h-2:y-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else g=!0}p=m}if(g&&a&&a(),l.length===0)return r;o&&o();let S=r.slice(0,l[0]);for(let m=0;m<l.length;++m){let b=l[m],w=l[m+1]||r.length;b===0?S=`
15
+ ${e}${r.slice(0,w)}`:(t===Vr&&f[b]&&(S+=`${r[b]}\\`),S+=`
16
+ ${e}${r.slice(b+1,w)}`)}return S}function tc(r,e,t){let s=e,n=e+1,i=r[n];for(;i===" "||i===" ";)if(e<n+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
17
+ `);s=e,n=e+1,i=r[n]}return s}Lt.FOLD_BLOCK=Vn;Lt.FOLD_FLOW=Ap;Lt.FOLD_QUOTED=Vr;Lt.foldFlowLines=Tp});var Mt=v(sc=>{"use strict";var X=_(),we=rc(),Yr=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Hr=r=>/^(%|---|\.\.\.)/m.test(r);function Pp(r,e,t){if(!e||e<0)return!1;let s=e-t,n=r.length;if(n<=s)return!1;for(let i=0,o=0;i<n;++i)if(r[i]===`
18
+ `){if(i-o>s)return!0;if(o=i+1,n-o<=s)return!1}return!0}function $t(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:s}=e,n=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Hr(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(s||t[c+2]==='"'||t.length<n)c+=1;else{for(o+=t.slice(a,c)+`
19
19
 
20
20
  `;t[c+2]==="\\"&&t[c+3]==="n"&&t[c+4]!=='"';)o+=`
21
- `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,s?o:we.foldFlowLines(o,i,we.FOLD_QUOTED,Wr(e,!1))}function Kn(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
22
- `)||/[ \t]\n|\n[ \t]/.test(r))return $t(r,e);let t=e.indent||(Yr(r)?" ":""),s="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
23
- ${t}`)+"'";return e.implicitKey?s:we.foldFlowLines(s,t,we.FOLD_FLOW,Wr(e,!1))}function et(r,e){let{singleQuote:t}=e.options,s;if(t===!1)s=$t;else{let n=r.includes('"'),i=r.includes("'");n&&!i?s=Kn:i&&!n?s=$t:s=t?Kn:$t}return s(r,e)}var Jn;try{Jn=new RegExp(`(^|(?<!
21
+ `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,s?o:we.foldFlowLines(o,i,we.FOLD_QUOTED,Yr(e,!1))}function Wn(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
22
+ `)||/[ \t]\n|\n[ \t]/.test(r))return $t(r,e);let t=e.indent||(Hr(r)?" ":""),s="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
23
+ ${t}`)+"'";return e.implicitKey?s:we.foldFlowLines(s,t,we.FOLD_FLOW,Yr(e,!1))}function et(r,e){let{singleQuote:t}=e.options,s;if(t===!1)s=$t;else{let n=r.includes('"'),i=r.includes("'");n&&!i?s=Wn:i&&!n?s=$t:s=t?Wn:$t}return s(r,e)}var Yn;try{Yn=new RegExp(`(^|(?<!
24
24
  ))
25
25
  +(?!
26
- |$)`,"g")}catch{Jn=/\n+(?!\n|$)/g}function Vr({comment:r,type:e,value:t},s,n,i){let{blockQuote:o,commentString:a,lineWidth:c}=s.options;if(!o||/\n[\t ]+$/.test(t))return et(t,s);let l=s.indent||(s.forceBlockIndent||Yr(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===Z.Scalar.BLOCK_FOLDED?!1:e===Z.Scalar.BLOCK_LITERAL?!0:!xp(t,c,l.length);if(!t)return f?`|
26
+ |$)`,"g")}catch{Yn=/\n+(?!\n|$)/g}function Wr({comment:r,type:e,value:t},s,n,i){let{blockQuote:o,commentString:a,lineWidth:c}=s.options;if(!o||/\n[\t ]+$/.test(t))return et(t,s);let l=s.indent||(s.forceBlockIndent||Hr(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===X.Scalar.BLOCK_FOLDED?!1:e===X.Scalar.BLOCK_LITERAL?!0:!Pp(t,c,l.length);if(!t)return f?`|
27
27
  `:`>
28
- `;let u,d;for(d=t.length;d>0;--d){let b=t[d-1];if(b!==`
29
- `&&b!==" "&&b!==" ")break}let h=t.substring(d),g=h.indexOf(`
30
- `);g===-1?u="-":t===h||g!==h.length-1?(u="+",i&&i()):u="",h&&(t=t.slice(0,-h.length),h[h.length-1]===`
31
- `&&(h=h.slice(0,-1)),h=h.replace(Jn,`$&${l}`));let p=!1,y,x=-1;for(y=0;y<t.length;++y){let b=t[y];if(b===" ")p=!0;else if(b===`
32
- `)x=y;else break}let k=t.substring(0,x<y?x+1:y);k&&(t=t.substring(k.length),k=k.replace(/\n+/g,`$&${l}`));let m=(p?l?"2":"1":"")+u;if(r&&(m+=" "+a(r.replace(/ ?[\r\n]+/g," ")),n&&n()),!f){let b=t.replace(/\n+/g,`
33
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),v=!1,T=Wr(s,!0);o!=="folded"&&e!==Z.Scalar.BLOCK_FOLDED&&(T.onOverflow=()=>{v=!0});let w=we.foldFlowLines(`${k}${b}${h}`,l,we.FOLD_BLOCK,T);if(!v)return`>${m}
34
- ${l}${w}`}return t=t.replace(/\n+/g,`$&${l}`),`|${m}
35
- ${l}${k}${t}${h}`}function Ep(r,e,t,s){let{type:n,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
28
+ `;let u,d;for(d=t.length;d>0;--d){let w=t[d-1];if(w!==`
29
+ `&&w!==" "&&w!==" ")break}let p=t.substring(d),g=p.indexOf(`
30
+ `);g===-1?u="-":t===p||g!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
31
+ `&&(p=p.slice(0,-1)),p=p.replace(Yn,`$&${l}`));let h=!1,y,x=-1;for(y=0;y<t.length;++y){let w=t[y];if(w===" ")h=!0;else if(w===`
32
+ `)x=y;else break}let S=t.substring(0,x<y?x+1:y);S&&(t=t.substring(S.length),S=S.replace(/\n+/g,`$&${l}`));let b=(h?l?"2":"1":"")+u;if(r&&(b+=" "+a(r.replace(/ ?[\r\n]+/g," ")),n&&n()),!f){let w=t.replace(/\n+/g,`
33
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),E=!1,A=Yr(s,!0);o!=="folded"&&e!==X.Scalar.BLOCK_FOLDED&&(A.onOverflow=()=>{E=!0});let k=we.foldFlowLines(`${S}${w}${p}`,l,we.FOLD_BLOCK,A);if(!E)return`>${b}
34
+ ${l}${k}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
35
+ ${l}${S}${t}${p}`}function Op(r,e,t,s){let{type:n,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
36
36
  `)||f&&/[[\]{},]/.test(i))return et(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
37
- `)?et(i,e):Vr(r,e,t,s);if(!a&&!f&&n!==Z.Scalar.PLAIN&&i.includes(`
38
- `))return Vr(r,e,t,s);if(Yr(i)){if(c==="")return e.forceBlockIndent=!0,Vr(r,e,t,s);if(a&&c===l)return et(i,e)}let u=i.replace(/\n+/g,`$&
39
- ${c}`);if(o){let d=p=>p.default&&p.tag!=="tag:yaml.org,2002:str"&&p.test?.test(u),{compat:h,tags:g}=e.doc.schema;if(g.some(d)||h?.some(d))return et(i,e)}return a?u:we.foldFlowLines(u,c,we.FOLD_FLOW,Wr(e,!1))}function Tp(r,e,t,s){let{implicitKey:n,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==Z.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Z.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case Z.Scalar.BLOCK_FOLDED:case Z.Scalar.BLOCK_LITERAL:return n||i?et(o.value,e):Vr(o,e,t,s);case Z.Scalar.QUOTE_DOUBLE:return $t(o.value,e);case Z.Scalar.QUOTE_SINGLE:return Kn(o.value,e);case Z.Scalar.PLAIN:return Ep(o,e,t,s);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=n&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}tc.stringifyString=Tp});var Dt=S(Vn=>{"use strict";var Ap=qr(),ve=P(),Pp=_t(),Op=Mt();function Np(r,e){let t=Object.assign({blockQuote:!0,commentString:Pp.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},r.schema.toStringOptions,e),s;switch(t.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:s,options:t}}function Cp(r,e){if(e.tag){let n=r.filter(i=>i.tag===e.tag);if(n.length>0)return n.find(i=>i.format===e.format)??n[0]}let t,s;if(ve.isScalar(e)){s=e.value;let n=r.filter(i=>i.identify?.(s));if(n.length>1){let i=n.filter(o=>o.test);i.length>0&&(n=i)}t=n.find(i=>i.format===e.format)??n.find(i=>!i.format)}else s=e,t=r.find(n=>n.nodeClass&&s instanceof n.nodeClass);if(!t){let n=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${n} value`)}return t}function Ip(r,e,{anchors:t,doc:s}){if(!s.directives)return"";let n=[],i=(ve.isScalar(r)||ve.isCollection(r))&&r.anchor;i&&Ap.anchorIsValid(i)&&(t.add(i),n.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&n.push(s.directives.tagString(o)),n.join(" ")}function Rp(r,e,t,s){if(ve.isPair(r))return r.toString(e,t,s);if(ve.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let n,i=ve.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>n=c});n??(n=Cp(e.doc.schema.tags,i));let o=Ip(i,n,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof n.stringify=="function"?n.stringify(i,e,t,s):ve.isScalar(i)?Op.stringifyString(i,e,t,s):i.toString(e,t,s);return o?ve.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
40
- ${e.indent}${a}`:a}Vn.createStringifyContext=Np;Vn.stringify=Rp});var ic=S(nc=>{"use strict";var fe=P(),rc=_(),sc=Dt(),qt=_t();function _p({key:r,value:e},t,s,n){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=fe.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(fe.isCollection(r)||!fe.isNode(r)&&typeof r=="object"){let T="With simple keys, collection cannot be used as a key value";throw new Error(T)}}let h=!u&&(!r||d&&e==null&&!t.inFlow||fe.isCollection(r)||(fe.isScalar(r)?r.type===rc.Scalar.BLOCK_FOLDED||r.type===rc.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!h&&(u||!i),indent:a+c});let g=!1,p=!1,y=sc.stringify(r,t,()=>g=!0,()=>p=!0);if(!h&&!t.inFlow&&y.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(t.inFlow){if(i||e==null)return g&&s&&s(),y===""?"?":h?`? ${y}`:y}else if(i&&!u||e==null&&h)return y=`? ${y}`,d&&!g?y+=qt.lineComment(y,t.indent,l(d)):p&&n&&n(),y;g&&(d=null),h?(d&&(y+=qt.lineComment(y,t.indent,l(d))),y=`? ${y}
41
- ${a}:`):(y=`${y}:`,d&&(y+=qt.lineComment(y,t.indent,l(d))));let x,k,E;fe.isNode(e)?(x=!!e.spaceBefore,k=e.commentBefore,E=e.comment):(x=!1,k=null,E=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!h&&!d&&fe.isScalar(e)&&(t.indentAtStart=y.length+1),p=!1,!f&&c.length>=2&&!t.inFlow&&!h&&fe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let m=!1,b=sc.stringify(e,t,()=>m=!0,()=>p=!0),v=" ";if(d||x||k){if(v=x?`
42
- `:"",k){let T=l(k);v+=`
43
- ${qt.indentComment(T,t.indent)}`}b===""&&!t.inFlow?v===`
44
- `&&E&&(v=`
45
-
46
- `):v+=`
47
- ${t.indent}`}else if(!h&&fe.isCollection(e)){let T=b[0],w=b.indexOf(`
48
- `),O=w!==-1,D=t.inFlow??e.flow??e.items.length===0;if(O||!D){let j=!1;if(O&&(T==="&"||T==="!")){let I=b.indexOf(" ");T==="&"&&I!==-1&&I<w&&b[I+1]==="!"&&(I=b.indexOf(" ",I+1)),(I===-1||w<I)&&(j=!0)}j||(v=`
49
- ${t.indent}`)}}else(b===""||b[0]===`
50
- `)&&(v="");return y+=v+b,t.inFlow?m&&s&&s():E&&!m?y+=qt.lineComment(y,t.indent,l(E)):p&&n&&n(),y}nc.stringifyPair=_p});var Yn=S(Wn=>{"use strict";var oc=Nr("process");function Lp(r,...e){r==="debug"&&console.log(...e)}function $p(r,e){(r==="debug"||r==="warn")&&(typeof oc.emitWarning=="function"?oc.emitWarning(e):console.warn(e))}Wn.debug=Lp;Wn.warn=$p});var Qr=S(zr=>{"use strict";var Bt=P(),ac=_(),Hr="<<",Gr={identify:r=>r===Hr||typeof r=="symbol"&&r.description===Hr,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new ac.Scalar(Symbol(Hr)),{addToJSMap:cc}),stringify:()=>Hr},Mp=(r,e)=>(Gr.identify(e)||Bt.isScalar(e)&&(!e.type||e.type===ac.Scalar.PLAIN)&&Gr.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===Gr.tag&&t.default);function cc(r,e,t){if(t=r&&Bt.isAlias(t)?t.resolve(r.doc):t,Bt.isSeq(t))for(let s of t.items)Hn(r,e,s);else if(Array.isArray(t))for(let s of t)Hn(r,e,s);else Hn(r,e,t)}function Hn(r,e,t){let s=r&&Bt.isAlias(t)?t.resolve(r.doc):t;if(!Bt.isMap(s))throw new Error("Merge sources must be maps or map aliases");let n=s.toJSON(null,r,Map);for(let[i,o]of n)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}zr.addMergeToJSMap=cc;zr.isMergeKey=Mp;zr.merge=Gr});var zn=S(fc=>{"use strict";var Dp=Yn(),lc=Qr(),qp=Dt(),uc=P(),Gn=ye();function Bp(r,e,{key:t,value:s}){if(uc.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,s);else if(lc.isMergeKey(r,t))lc.addMergeToJSMap(r,e,s);else{let n=Gn.toJS(t,"",r);if(e instanceof Map)e.set(n,Gn.toJS(s,n,r));else if(e instanceof Set)e.add(n);else{let i=jp(t,n,r),o=Gn.toJS(s,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function jp(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(uc.isNode(r)&&t?.doc){let s=qp.createStringifyContext(t.doc,{});s.anchors=new Set;for(let i of t.anchors.keys())s.anchors.add(i.anchor);s.inFlow=!0,s.inStringifyKey=!0;let n=r.toString(s);if(!t.mapKeyWarned){let i=JSON.stringify(n);i.length>40&&(i=i.substring(0,36)+'..."'),Dp.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return n}return JSON.stringify(e)}fc.addPairToJSMap=Bp});var Se=S(Qn=>{"use strict";var dc=Rt(),Fp=ic(),Up=zn(),Xr=P();function Kp(r,e,t){let s=dc.createNode(r,void 0,t),n=dc.createNode(e,void 0,t);return new Zr(s,n)}var Zr=class r{constructor(e,t=null){Object.defineProperty(this,Xr.NODE_TYPE,{value:Xr.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:s}=this;return Xr.isNode(t)&&(t=t.clone(e)),Xr.isNode(s)&&(s=s.clone(e)),new r(t,s)}toJSON(e,t){let s=t?.mapAsMap?new Map:{};return Up.addPairToJSMap(t,s,this)}toString(e,t,s){return e?.doc?Fp.stringifyPair(this,e,t,s):JSON.stringify(this)}};Qn.Pair=Zr;Qn.createPair=Kp});var Xn=S(hc=>{"use strict";var _e=P(),pc=Dt(),es=_t();function Jp(r,e,t){return(e.inFlow??r.flow?Wp:Vp)(r,e,t)}function Vp({comment:r,items:e},t,{blockItemPrefix:s,flowChars:n,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let g=0;g<e.length;++g){let p=e[g],y=null;if(_e.isNode(p))!u&&p.spaceBefore&&d.push(""),ts(t,d,p.commentBefore,u),p.comment&&(y=p.comment);else if(_e.isPair(p)){let k=_e.isNode(p.key)?p.key:null;k&&(!u&&k.spaceBefore&&d.push(""),ts(t,d,k.commentBefore,u))}u=!1;let x=pc.stringify(p,f,()=>y=null,()=>u=!0);y&&(x+=es.lineComment(x,i,l(y))),u&&y&&(u=!1),d.push(s+x)}let h;if(d.length===0)h=n.start+n.end;else{h=d[0];for(let g=1;g<d.length;++g){let p=d[g];h+=p?`
51
- ${c}${p}`:`
52
- `}}return r?(h+=`
53
- `+es.indentComment(l(r),c),a&&a()):u&&o&&o(),h}function Wp({items:r},e,{flowChars:t,itemIndent:s}){let{indent:n,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;s+=i;let c=Object.assign({},e,{indent:s,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let g=0;g<r.length;++g){let p=r[g],y=null;if(_e.isNode(p))p.spaceBefore&&u.push(""),ts(e,u,p.commentBefore,!1),p.comment&&(y=p.comment);else if(_e.isPair(p)){let k=_e.isNode(p.key)?p.key:null;k&&(k.spaceBefore&&u.push(""),ts(e,u,k.commentBefore,!1),k.comment&&(l=!0));let E=_e.isNode(p.value)?p.value:null;E?(E.comment&&(y=E.comment),E.commentBefore&&(l=!0)):p.value==null&&k?.comment&&(y=k.comment)}y&&(l=!0);let x=pc.stringify(p,c,()=>y=null);g<r.length-1&&(x+=","),y&&(x+=es.lineComment(x,s,a(y))),!l&&(u.length>f||x.includes(`
54
- `))&&(l=!0),u.push(x),f=u.length}let{start:d,end:h}=t;if(u.length===0)return d+h;if(!l){let g=u.reduce((p,y)=>p+y.length+2,2);l=e.options.lineWidth>0&&g>e.options.lineWidth}if(l){let g=d;for(let p of u)g+=p?`
55
- ${i}${n}${p}`:`
37
+ `)?et(i,e):Wr(r,e,t,s);if(!a&&!f&&n!==X.Scalar.PLAIN&&i.includes(`
38
+ `))return Wr(r,e,t,s);if(Hr(i)){if(c==="")return e.forceBlockIndent=!0,Wr(r,e,t,s);if(a&&c===l)return et(i,e)}let u=i.replace(/\n+/g,`$&
39
+ ${c}`);if(o){let d=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:g}=e.doc.schema;if(g.some(d)||p?.some(d))return et(i,e)}return a?u:we.foldFlowLines(u,c,we.FOLD_FLOW,Yr(e,!1))}function Np(r,e,t,s){let{implicitKey:n,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==X.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=X.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case X.Scalar.BLOCK_FOLDED:case X.Scalar.BLOCK_LITERAL:return n||i?et(o.value,e):Wr(o,e,t,s);case X.Scalar.QUOTE_DOUBLE:return $t(o.value,e);case X.Scalar.QUOTE_SINGLE:return Wn(o.value,e);case X.Scalar.PLAIN:return Op(o,e,t,s);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=n&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}sc.stringifyString=Np});var Dt=v(Hn=>{"use strict";var Cp=qr(),ve=P(),Rp=_t(),Ip=Mt();function _p(r,e){let t=Object.assign({blockQuote:!0,commentString:Rp.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},r.schema.toStringOptions,e),s;switch(t.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:s,options:t}}function Lp(r,e){if(e.tag){let n=r.filter(i=>i.tag===e.tag);if(n.length>0)return n.find(i=>i.format===e.format)??n[0]}let t,s;if(ve.isScalar(e)){s=e.value;let n=r.filter(i=>i.identify?.(s));if(n.length>1){let i=n.filter(o=>o.test);i.length>0&&(n=i)}t=n.find(i=>i.format===e.format)??n.find(i=>!i.format)}else s=e,t=r.find(n=>n.nodeClass&&s instanceof n.nodeClass);if(!t){let n=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${n} value`)}return t}function $p(r,e,{anchors:t,doc:s}){if(!s.directives)return"";let n=[],i=(ve.isScalar(r)||ve.isCollection(r))&&r.anchor;i&&Cp.anchorIsValid(i)&&(t.add(i),n.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&n.push(s.directives.tagString(o)),n.join(" ")}function Mp(r,e,t,s){if(ve.isPair(r))return r.toString(e,t,s);if(ve.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let n,i=ve.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>n=c});n??(n=Lp(e.doc.schema.tags,i));let o=$p(i,n,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof n.stringify=="function"?n.stringify(i,e,t,s):ve.isScalar(i)?Ip.stringifyString(i,e,t,s):i.toString(e,t,s);return o?ve.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
40
+ ${e.indent}${a}`:a}Hn.createStringifyContext=_p;Hn.stringify=Mp});var ac=v(oc=>{"use strict";var de=P(),nc=_(),ic=Dt(),Bt=_t();function Dp({key:r,value:e},t,s,n){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=de.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(de.isCollection(r)||!de.isNode(r)&&typeof r=="object"){let A="With simple keys, collection cannot be used as a key value";throw new Error(A)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||de.isCollection(r)||(de.isScalar(r)?r.type===nc.Scalar.BLOCK_FOLDED||r.type===nc.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let g=!1,h=!1,y=ic.stringify(r,t,()=>g=!0,()=>h=!0);if(!p&&!t.inFlow&&y.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return g&&s&&s(),y===""?"?":p?`? ${y}`:y}else if(i&&!u||e==null&&p)return y=`? ${y}`,d&&!g?y+=Bt.lineComment(y,t.indent,l(d)):h&&n&&n(),y;g&&(d=null),p?(d&&(y+=Bt.lineComment(y,t.indent,l(d))),y=`? ${y}
41
+ ${a}:`):(y=`${y}:`,d&&(y+=Bt.lineComment(y,t.indent,l(d))));let x,S,m;de.isNode(e)?(x=!!e.spaceBefore,S=e.commentBefore,m=e.comment):(x=!1,S=null,m=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&de.isScalar(e)&&(t.indentAtStart=y.length+1),h=!1,!f&&c.length>=2&&!t.inFlow&&!p&&de.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,w=ic.stringify(e,t,()=>b=!0,()=>h=!0),E=" ";if(d||x||S){if(E=x?`
42
+ `:"",S){let A=l(S);E+=`
43
+ ${Bt.indentComment(A,t.indent)}`}w===""&&!t.inFlow?E===`
44
+ `&&m&&(E=`
45
+
46
+ `):E+=`
47
+ ${t.indent}`}else if(!p&&de.isCollection(e)){let A=w[0],k=w.indexOf(`
48
+ `),C=k!==-1,L=t.inFlow??e.flow??e.items.length===0;if(C||!L){let oe=!1;if(C&&(A==="&"||A==="!")){let R=w.indexOf(" ");A==="&"&&R!==-1&&R<k&&w[R+1]==="!"&&(R=w.indexOf(" ",R+1)),(R===-1||k<R)&&(oe=!0)}oe||(E=`
49
+ ${t.indent}`)}}else(w===""||w[0]===`
50
+ `)&&(E="");return y+=E+w,t.inFlow?b&&s&&s():m&&!b?y+=Bt.lineComment(y,t.indent,l(m)):h&&n&&n(),y}oc.stringifyPair=Dp});var zn=v(Gn=>{"use strict";var cc=Cr("process");function Bp(r,...e){r==="debug"&&console.log(...e)}function qp(r,e){(r==="debug"||r==="warn")&&(typeof cc.emitWarning=="function"?cc.emitWarning(e):console.warn(e))}Gn.debug=Bp;Gn.warn=qp});var Xr=v(Qr=>{"use strict";var qt=P(),lc=_(),Gr="<<",zr={identify:r=>r===Gr||typeof r=="symbol"&&r.description===Gr,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new lc.Scalar(Symbol(Gr)),{addToJSMap:uc}),stringify:()=>Gr},Fp=(r,e)=>(zr.identify(e)||qt.isScalar(e)&&(!e.type||e.type===lc.Scalar.PLAIN)&&zr.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===zr.tag&&t.default);function uc(r,e,t){if(t=r&&qt.isAlias(t)?t.resolve(r.doc):t,qt.isSeq(t))for(let s of t.items)Qn(r,e,s);else if(Array.isArray(t))for(let s of t)Qn(r,e,s);else Qn(r,e,t)}function Qn(r,e,t){let s=r&&qt.isAlias(t)?t.resolve(r.doc):t;if(!qt.isMap(s))throw new Error("Merge sources must be maps or map aliases");let n=s.toJSON(null,r,Map);for(let[i,o]of n)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Qr.addMergeToJSMap=uc;Qr.isMergeKey=Fp;Qr.merge=zr});var Zn=v(pc=>{"use strict";var jp=zn(),fc=Xr(),Up=Dt(),dc=P(),Xn=ye();function Jp(r,e,{key:t,value:s}){if(dc.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,s);else if(fc.isMergeKey(r,t))fc.addMergeToJSMap(r,e,s);else{let n=Xn.toJS(t,"",r);if(e instanceof Map)e.set(n,Xn.toJS(s,n,r));else if(e instanceof Set)e.add(n);else{let i=Kp(t,n,r),o=Xn.toJS(s,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function Kp(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(dc.isNode(r)&&t?.doc){let s=Up.createStringifyContext(t.doc,{});s.anchors=new Set;for(let i of t.anchors.keys())s.anchors.add(i.anchor);s.inFlow=!0,s.inStringifyKey=!0;let n=r.toString(s);if(!t.mapKeyWarned){let i=JSON.stringify(n);i.length>40&&(i=i.substring(0,36)+'..."'),jp.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return n}return JSON.stringify(e)}pc.addPairToJSMap=Jp});var Se=v(ei=>{"use strict";var hc=It(),Vp=ac(),Wp=Zn(),Zr=P();function Yp(r,e,t){let s=hc.createNode(r,void 0,t),n=hc.createNode(e,void 0,t);return new es(s,n)}var es=class r{constructor(e,t=null){Object.defineProperty(this,Zr.NODE_TYPE,{value:Zr.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:s}=this;return Zr.isNode(t)&&(t=t.clone(e)),Zr.isNode(s)&&(s=s.clone(e)),new r(t,s)}toJSON(e,t){let s=t?.mapAsMap?new Map:{};return Wp.addPairToJSMap(t,s,this)}toString(e,t,s){return e?.doc?Vp.stringifyPair(this,e,t,s):JSON.stringify(this)}};ei.Pair=es;ei.createPair=Yp});var ti=v(gc=>{"use strict";var _e=P(),mc=Dt(),ts=_t();function Hp(r,e,t){return(e.inFlow??r.flow?zp:Gp)(r,e,t)}function Gp({comment:r,items:e},t,{blockItemPrefix:s,flowChars:n,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let g=0;g<e.length;++g){let h=e[g],y=null;if(_e.isNode(h))!u&&h.spaceBefore&&d.push(""),rs(t,d,h.commentBefore,u),h.comment&&(y=h.comment);else if(_e.isPair(h)){let S=_e.isNode(h.key)?h.key:null;S&&(!u&&S.spaceBefore&&d.push(""),rs(t,d,S.commentBefore,u))}u=!1;let x=mc.stringify(h,f,()=>y=null,()=>u=!0);y&&(x+=ts.lineComment(x,i,l(y))),u&&y&&(u=!1),d.push(s+x)}let p;if(d.length===0)p=n.start+n.end;else{p=d[0];for(let g=1;g<d.length;++g){let h=d[g];p+=h?`
51
+ ${c}${h}`:`
52
+ `}}return r?(p+=`
53
+ `+ts.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function zp({items:r},e,{flowChars:t,itemIndent:s}){let{indent:n,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;s+=i;let c=Object.assign({},e,{indent:s,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let g=0;g<r.length;++g){let h=r[g],y=null;if(_e.isNode(h))h.spaceBefore&&u.push(""),rs(e,u,h.commentBefore,!1),h.comment&&(y=h.comment);else if(_e.isPair(h)){let S=_e.isNode(h.key)?h.key:null;S&&(S.spaceBefore&&u.push(""),rs(e,u,S.commentBefore,!1),S.comment&&(l=!0));let m=_e.isNode(h.value)?h.value:null;m?(m.comment&&(y=m.comment),m.commentBefore&&(l=!0)):h.value==null&&S?.comment&&(y=S.comment)}y&&(l=!0);let x=mc.stringify(h,c,()=>y=null);g<r.length-1&&(x+=","),y&&(x+=ts.lineComment(x,s,a(y))),!l&&(u.length>f||x.includes(`
54
+ `))&&(l=!0),u.push(x),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let g=u.reduce((h,y)=>h+y.length+2,2);l=e.options.lineWidth>0&&g>e.options.lineWidth}if(l){let g=d;for(let h of u)g+=h?`
55
+ ${i}${n}${h}`:`
56
56
  `;return`${g}
57
- ${n}${h}`}else return`${d}${o}${u.join(" ")}${o}${h}`}function ts({indent:r,options:{commentString:e}},t,s,n){if(s&&n&&(s=s.replace(/^\n+/,"")),s){let i=es.indentComment(e(s),r);t.push(i.trimStart())}}hc.stringifyCollection=Jp});var xe=S(ei=>{"use strict";var Yp=Xn(),Hp=zn(),Gp=Ur(),ke=P(),rs=Se(),zp=_();function jt(r,e){let t=ke.isScalar(e)?e.value:e;for(let s of r)if(ke.isPair(s)&&(s.key===e||s.key===t||ke.isScalar(s.key)&&s.key.value===t))return s}var Zn=class extends Gp.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(ke.MAP,e),this.items=[]}static from(e,t,s){let{keepUndefined:n,replacer:i}=s,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||n)&&o.items.push(rs.createPair(c,l,s))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let s;ke.isPair(e)?s=e:!e||typeof e!="object"||!("key"in e)?s=new rs.Pair(e,e?.value):s=new rs.Pair(e.key,e.value);let n=jt(this.items,s.key),i=this.schema?.sortMapEntries;if(n){if(!t)throw new Error(`Key ${s.key} already set`);ke.isScalar(n.value)&&zp.isScalarValue(s.value)?n.value.value=s.value:n.value=s.value}else if(i){let o=this.items.findIndex(a=>i(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(e){let t=jt(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=jt(this.items,e)?.value;return(!t&&ke.isScalar(n)?n.value:n)??void 0}has(e){return!!jt(this.items,e)}set(e,t){this.add(new rs.Pair(e,t),!0)}toJSON(e,t,s){let n=s?new s:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(n);for(let i of this.items)Hp.addPairToJSMap(t,n,i);return n}toString(e,t,s){if(!e)return JSON.stringify(this);for(let n of this.items)if(!ke.isPair(n))throw new Error(`Map items must all be pairs; found ${JSON.stringify(n)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Yp.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:t})}};ei.YAMLMap=Zn;ei.findPair=jt});var tt=S(gc=>{"use strict";var Qp=P(),mc=xe(),Xp={collection:"map",default:!0,nodeClass:mc.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return Qp.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>mc.YAMLMap.from(r,e,t)};gc.map=Xp});var Ee=S(yc=>{"use strict";var Zp=Rt(),eh=Xn(),th=Ur(),ns=P(),rh=_(),sh=ye(),ti=class extends th.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ns.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=ss(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let s=ss(e);if(typeof s!="number")return;let n=this.items[s];return!t&&ns.isScalar(n)?n.value:n}has(e){let t=ss(e);return typeof t=="number"&&t<this.items.length}set(e,t){let s=ss(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let n=this.items[s];ns.isScalar(n)&&rh.isScalarValue(t)?n.value=t:this.items[s]=t}toJSON(e,t){let s=[];t?.onCreate&&t.onCreate(s);let n=0;for(let i of this.items)s.push(sh.toJS(i,String(n++),t));return s}toString(e,t,s){return e?eh.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:s,onComment:t}):JSON.stringify(this)}static from(e,t,s){let{replacer:n}=s,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof n=="function"){let c=t instanceof Set?a:String(o++);a=n.call(t,c,a)}i.items.push(Zp.createNode(a,void 0,s))}}return i}};function ss(r){let e=ns.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}yc.YAMLSeq=ti});var rt=S(wc=>{"use strict";var nh=P(),bc=Ee(),ih={collection:"seq",default:!0,nodeClass:bc.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return nh.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>bc.YAMLSeq.from(r,e,t)};wc.seq=ih});var Ft=S(vc=>{"use strict";var oh=Mt(),ah={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,s){return e=Object.assign({actualString:!0},e),oh.stringifyString(r,e,t,s)}};vc.string=ah});var is=S(xc=>{"use strict";var Sc=_(),kc={identify:r=>r==null,createNode:()=>new Sc.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Sc.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&kc.test.test(r)?r:e.options.nullStr};xc.nullTag=kc});var ri=S(Tc=>{"use strict";var ch=_(),Ec={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new ch.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&Ec.test.test(r)){let s=r[0]==="t"||r[0]==="T";if(e===s)return r}return e?t.options.trueStr:t.options.falseStr}};Tc.boolTag=Ec});var st=S(Ac=>{"use strict";function lh({format:r,minFractionDigits:e,tag:t,value:s}){if(typeof s=="bigint")return String(s);let n=typeof s=="number"?s:Number(s);if(!isFinite(n))return isNaN(n)?".nan":n<0?"-.inf":".inf";let i=Object.is(s,-0)?"-0":JSON.stringify(s);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}Ac.stringifyNumber=lh});var ni=S(os=>{"use strict";var uh=_(),si=st(),fh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:si.stringifyNumber},dh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():si.stringifyNumber(r)}},ph={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new uh.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:si.stringifyNumber};os.float=ph;os.floatExp=dh;os.floatNaN=fh});var oi=S(cs=>{"use strict";var Pc=st(),as=r=>typeof r=="bigint"||Number.isInteger(r),ii=(r,e,t,{intAsBigInt:s})=>s?BigInt(r):parseInt(r.substring(e),t);function Oc(r,e,t){let{value:s}=r;return as(s)&&s>=0?t+s.toString(e):Pc.stringifyNumber(r)}var hh={identify:r=>as(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>ii(r,2,8,t),stringify:r=>Oc(r,8,"0o")},mh={identify:as,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>ii(r,0,10,t),stringify:Pc.stringifyNumber},gh={identify:r=>as(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>ii(r,2,16,t),stringify:r=>Oc(r,16,"0x")};cs.int=mh;cs.intHex=gh;cs.intOct=hh});var Cc=S(Nc=>{"use strict";var yh=tt(),bh=is(),wh=rt(),vh=Ft(),Sh=ri(),ai=ni(),ci=oi(),kh=[yh.map,wh.seq,vh.string,bh.nullTag,Sh.boolTag,ci.intOct,ci.int,ci.intHex,ai.floatNaN,ai.floatExp,ai.float];Nc.schema=kh});var _c=S(Rc=>{"use strict";var xh=_(),Eh=tt(),Th=rt();function Ic(r){return typeof r=="bigint"||Number.isInteger(r)}var ls=({value:r})=>JSON.stringify(r),Ah=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:ls},{identify:r=>r==null,createNode:()=>new xh.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:ls},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:ls},{identify:Ic,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>Ic(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:ls}],Ph={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Oh=[Eh.map,Th.seq].concat(Ah,Ph);Rc.schema=Oh});var ui=S(Lc=>{"use strict";var Ut=Nr("buffer"),li=_(),Nh=Mt(),Ch={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Ut.Buffer=="function")return Ut.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),s=new Uint8Array(t.length);for(let n=0;n<t.length;++n)s[n]=t.charCodeAt(n);return s}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},s,n,i){if(!t)return"";let o=t,a;if(typeof Ut.Buffer=="function")a=o instanceof Ut.Buffer?o.toString("base64"):Ut.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=li.Scalar.BLOCK_LITERAL),e!==li.Scalar.QUOTE_DOUBLE){let c=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===li.Scalar.BLOCK_LITERAL?`
58
- `:" ")}return Nh.stringifyString({comment:r,type:e,value:a},s,n,i)}};Lc.binary=Ch});var ds=S(fs=>{"use strict";var us=P(),fi=Se(),Ih=_(),Rh=Ee();function $c(r,e){if(us.isSeq(r))for(let t=0;t<r.items.length;++t){let s=r.items[t];if(!us.isPair(s)){if(us.isMap(s)){s.items.length>1&&e("Each pair must have its own sequence indicator");let n=s.items[0]||new fi.Pair(new Ih.Scalar(null));if(s.commentBefore&&(n.key.commentBefore=n.key.commentBefore?`${s.commentBefore}
57
+ ${n}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function rs({indent:r,options:{commentString:e}},t,s,n){if(s&&n&&(s=s.replace(/^\n+/,"")),s){let i=ts.indentComment(e(s),r);t.push(i.trimStart())}}gc.stringifyCollection=Hp});var xe=v(si=>{"use strict";var Qp=ti(),Xp=Zn(),Zp=Jr(),ke=P(),ss=Se(),eh=_();function Ft(r,e){let t=ke.isScalar(e)?e.value:e;for(let s of r)if(ke.isPair(s)&&(s.key===e||s.key===t||ke.isScalar(s.key)&&s.key.value===t))return s}var ri=class extends Zp.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(ke.MAP,e),this.items=[]}static from(e,t,s){let{keepUndefined:n,replacer:i}=s,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||n)&&o.items.push(ss.createPair(c,l,s))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let s;ke.isPair(e)?s=e:!e||typeof e!="object"||!("key"in e)?s=new ss.Pair(e,e?.value):s=new ss.Pair(e.key,e.value);let n=Ft(this.items,s.key),i=this.schema?.sortMapEntries;if(n){if(!t)throw new Error(`Key ${s.key} already set`);ke.isScalar(n.value)&&eh.isScalarValue(s.value)?n.value.value=s.value:n.value=s.value}else if(i){let o=this.items.findIndex(a=>i(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(e){let t=Ft(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=Ft(this.items,e)?.value;return(!t&&ke.isScalar(n)?n.value:n)??void 0}has(e){return!!Ft(this.items,e)}set(e,t){this.add(new ss.Pair(e,t),!0)}toJSON(e,t,s){let n=s?new s:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(n);for(let i of this.items)Xp.addPairToJSMap(t,n,i);return n}toString(e,t,s){if(!e)return JSON.stringify(this);for(let n of this.items)if(!ke.isPair(n))throw new Error(`Map items must all be pairs; found ${JSON.stringify(n)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Qp.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:t})}};si.YAMLMap=ri;si.findPair=Ft});var tt=v(bc=>{"use strict";var th=P(),yc=xe(),rh={collection:"map",default:!0,nodeClass:yc.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return th.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>yc.YAMLMap.from(r,e,t)};bc.map=rh});var Ee=v(wc=>{"use strict";var sh=It(),nh=ti(),ih=Jr(),is=P(),oh=_(),ah=ye(),ni=class extends ih.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(is.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=ns(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let s=ns(e);if(typeof s!="number")return;let n=this.items[s];return!t&&is.isScalar(n)?n.value:n}has(e){let t=ns(e);return typeof t=="number"&&t<this.items.length}set(e,t){let s=ns(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let n=this.items[s];is.isScalar(n)&&oh.isScalarValue(t)?n.value=t:this.items[s]=t}toJSON(e,t){let s=[];t?.onCreate&&t.onCreate(s);let n=0;for(let i of this.items)s.push(ah.toJS(i,String(n++),t));return s}toString(e,t,s){return e?nh.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:s,onComment:t}):JSON.stringify(this)}static from(e,t,s){let{replacer:n}=s,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof n=="function"){let c=t instanceof Set?a:String(o++);a=n.call(t,c,a)}i.items.push(sh.createNode(a,void 0,s))}}return i}};function ns(r){let e=is.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}wc.YAMLSeq=ni});var rt=v(Sc=>{"use strict";var ch=P(),vc=Ee(),lh={collection:"seq",default:!0,nodeClass:vc.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return ch.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>vc.YAMLSeq.from(r,e,t)};Sc.seq=lh});var jt=v(kc=>{"use strict";var uh=Mt(),fh={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,s){return e=Object.assign({actualString:!0},e),uh.stringifyString(r,e,t,s)}};kc.string=fh});var os=v(Ac=>{"use strict";var xc=_(),Ec={identify:r=>r==null,createNode:()=>new xc.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new xc.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&Ec.test.test(r)?r:e.options.nullStr};Ac.nullTag=Ec});var ii=v(Pc=>{"use strict";var dh=_(),Tc={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new dh.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&Tc.test.test(r)){let s=r[0]==="t"||r[0]==="T";if(e===s)return r}return e?t.options.trueStr:t.options.falseStr}};Pc.boolTag=Tc});var st=v(Oc=>{"use strict";function ph({format:r,minFractionDigits:e,tag:t,value:s}){if(typeof s=="bigint")return String(s);let n=typeof s=="number"?s:Number(s);if(!isFinite(n))return isNaN(n)?".nan":n<0?"-.inf":".inf";let i=Object.is(s,-0)?"-0":JSON.stringify(s);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}Oc.stringifyNumber=ph});var ai=v(as=>{"use strict";var hh=_(),oi=st(),mh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:oi.stringifyNumber},gh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():oi.stringifyNumber(r)}},yh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new hh.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:oi.stringifyNumber};as.float=yh;as.floatExp=gh;as.floatNaN=mh});var li=v(ls=>{"use strict";var Nc=st(),cs=r=>typeof r=="bigint"||Number.isInteger(r),ci=(r,e,t,{intAsBigInt:s})=>s?BigInt(r):parseInt(r.substring(e),t);function Cc(r,e,t){let{value:s}=r;return cs(s)&&s>=0?t+s.toString(e):Nc.stringifyNumber(r)}var bh={identify:r=>cs(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>ci(r,2,8,t),stringify:r=>Cc(r,8,"0o")},wh={identify:cs,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>ci(r,0,10,t),stringify:Nc.stringifyNumber},vh={identify:r=>cs(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>ci(r,2,16,t),stringify:r=>Cc(r,16,"0x")};ls.int=wh;ls.intHex=vh;ls.intOct=bh});var Ic=v(Rc=>{"use strict";var Sh=tt(),kh=os(),xh=rt(),Eh=jt(),Ah=ii(),ui=ai(),fi=li(),Th=[Sh.map,xh.seq,Eh.string,kh.nullTag,Ah.boolTag,fi.intOct,fi.int,fi.intHex,ui.floatNaN,ui.floatExp,ui.float];Rc.schema=Th});var $c=v(Lc=>{"use strict";var Ph=_(),Oh=tt(),Nh=rt();function _c(r){return typeof r=="bigint"||Number.isInteger(r)}var us=({value:r})=>JSON.stringify(r),Ch=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:us},{identify:r=>r==null,createNode:()=>new Ph.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:us},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:us},{identify:_c,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>_c(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:us}],Rh={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Ih=[Oh.map,Nh.seq].concat(Ch,Rh);Lc.schema=Ih});var pi=v(Mc=>{"use strict";var Ut=Cr("buffer"),di=_(),_h=Mt(),Lh={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Ut.Buffer=="function")return Ut.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),s=new Uint8Array(t.length);for(let n=0;n<t.length;++n)s[n]=t.charCodeAt(n);return s}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},s,n,i){if(!t)return"";let o=t,a;if(typeof Ut.Buffer=="function")a=o instanceof Ut.Buffer?o.toString("base64"):Ut.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=di.Scalar.BLOCK_LITERAL),e!==di.Scalar.QUOTE_DOUBLE){let c=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===di.Scalar.BLOCK_LITERAL?`
58
+ `:" ")}return _h.stringifyString({comment:r,type:e,value:a},s,n,i)}};Mc.binary=Lh});var ps=v(ds=>{"use strict";var fs=P(),hi=Se(),$h=_(),Mh=Ee();function Dc(r,e){if(fs.isSeq(r))for(let t=0;t<r.items.length;++t){let s=r.items[t];if(!fs.isPair(s)){if(fs.isMap(s)){s.items.length>1&&e("Each pair must have its own sequence indicator");let n=s.items[0]||new hi.Pair(new $h.Scalar(null));if(s.commentBefore&&(n.key.commentBefore=n.key.commentBefore?`${s.commentBefore}
59
59
  ${n.key.commentBefore}`:s.commentBefore),s.comment){let i=n.value??n.key;i.comment=i.comment?`${s.comment}
60
- ${i.comment}`:s.comment}s=n}r.items[t]=us.isPair(s)?s:new fi.Pair(s)}}else e("Expected a sequence for this tag");return r}function Mc(r,e,t){let{replacer:s}=t,n=new Rh.YAMLSeq(r);n.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof s=="function"&&(o=s.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;n.items.push(fi.createPair(a,c,t))}return n}var _h={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:$c,createNode:Mc};fs.createPairs=Mc;fs.pairs=_h;fs.resolvePairs=$c});var hi=S(pi=>{"use strict";var Dc=P(),di=ye(),Kt=xe(),Lh=Ee(),qc=ds(),Le=class r extends Lh.YAMLSeq{constructor(){super(),this.add=Kt.YAMLMap.prototype.add.bind(this),this.delete=Kt.YAMLMap.prototype.delete.bind(this),this.get=Kt.YAMLMap.prototype.get.bind(this),this.has=Kt.YAMLMap.prototype.has.bind(this),this.set=Kt.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let s=new Map;t?.onCreate&&t.onCreate(s);for(let n of this.items){let i,o;if(Dc.isPair(n)?(i=di.toJS(n.key,"",t),o=di.toJS(n.value,i,t)):i=di.toJS(n,"",t),s.has(i))throw new Error("Ordered maps must not include duplicate keys");s.set(i,o)}return s}static from(e,t,s){let n=qc.createPairs(e,t,s),i=new this;return i.items=n.items,i}};Le.tag="tag:yaml.org,2002:omap";var $h={collection:"seq",identify:r=>r instanceof Map,nodeClass:Le,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=qc.resolvePairs(r,e),s=[];for(let{key:n}of t.items)Dc.isScalar(n)&&(s.includes(n.value)?e(`Ordered maps must not include duplicate keys: ${n.value}`):s.push(n.value));return Object.assign(new Le,t)},createNode:(r,e,t)=>Le.from(r,e,t)};pi.YAMLOMap=Le;pi.omap=$h});var Kc=S(mi=>{"use strict";var Bc=_();function jc({value:r,source:e},t){return e&&(r?Fc:Uc).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var Fc={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Bc.Scalar(!0),stringify:jc},Uc={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Bc.Scalar(!1),stringify:jc};mi.falseTag=Uc;mi.trueTag=Fc});var Jc=S(ps=>{"use strict";var Mh=_(),gi=st(),Dh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:gi.stringifyNumber},qh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():gi.stringifyNumber(r)}},Bh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new Mh.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let s=r.substring(t+1).replace(/_/g,"");s[s.length-1]==="0"&&(e.minFractionDigits=s.length)}return e},stringify:gi.stringifyNumber};ps.float=Bh;ps.floatExp=qh;ps.floatNaN=Dh});var Wc=S(Vt=>{"use strict";var Vc=st(),Jt=r=>typeof r=="bigint"||Number.isInteger(r);function hs(r,e,t,{intAsBigInt:s}){let n=r[0];if((n==="-"||n==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),s){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return n==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return n==="-"?-1*i:i}function yi(r,e,t){let{value:s}=r;if(Jt(s)){let n=s.toString(e);return s<0?"-"+t+n.substr(1):t+n}return Vc.stringifyNumber(r)}var jh={identify:Jt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>hs(r,2,2,t),stringify:r=>yi(r,2,"0b")},Fh={identify:Jt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>hs(r,1,8,t),stringify:r=>yi(r,8,"0")},Uh={identify:Jt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>hs(r,0,10,t),stringify:Vc.stringifyNumber},Kh={identify:Jt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>hs(r,2,16,t),stringify:r=>yi(r,16,"0x")};Vt.int=Uh;Vt.intBin=jh;Vt.intHex=Kh;Vt.intOct=Fh});var wi=S(bi=>{"use strict";var ys=P(),ms=Se(),gs=xe(),$e=class r extends gs.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ys.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new ms.Pair(e.key,null):t=new ms.Pair(e,null),gs.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let s=gs.findPair(this.items,e);return!t&&ys.isPair(s)?ys.isScalar(s.key)?s.key.value:s.key:s}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let s=gs.findPair(this.items,e);s&&!t?this.items.splice(this.items.indexOf(s),1):!s&&t&&this.items.push(new ms.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,s){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,s);throw new Error("Set items must all have null values")}static from(e,t,s){let{replacer:n}=s,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof n=="function"&&(o=n.call(t,o,o)),i.items.push(ms.createPair(o,null,s));return i}};$e.tag="tag:yaml.org,2002:set";var Jh={collection:"map",identify:r=>r instanceof Set,nodeClass:$e,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>$e.from(r,e,t),resolve(r,e){if(ys.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new $e,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};bi.YAMLSet=$e;bi.set=Jh});var Si=S(bs=>{"use strict";var Vh=st();function vi(r,e){let t=r[0],s=t==="-"||t==="+"?r.substring(1):r,n=o=>e?BigInt(o):Number(o),i=s.replace(/_/g,"").split(":").reduce((o,a)=>o*n(60)+n(a),n(0));return t==="-"?n(-1)*i:i}function Yc(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Vh.stringifyNumber(r);let s="";e<0&&(s="-",e*=t(-1));let n=t(60),i=[e%n];return e<60?i.unshift(0):(e=(e-i[0])/n,i.unshift(e%n),e>=60&&(e=(e-i[0])/n,i.unshift(e))),s+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Wh={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>vi(r,t),stringify:Yc},Yh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>vi(r,!1),stringify:Yc},Hc={identify:r=>r 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(r){let e=r.match(Hc.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,s,n,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,s-1,n,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=vi(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};bs.floatTime=Yh;bs.intTime=Wh;bs.timestamp=Hc});var Qc=S(zc=>{"use strict";var Hh=tt(),Gh=is(),zh=rt(),Qh=Ft(),Xh=ui(),Gc=Kc(),ki=Jc(),ws=Wc(),Zh=Qr(),em=hi(),tm=ds(),rm=wi(),xi=Si(),sm=[Hh.map,zh.seq,Qh.string,Gh.nullTag,Gc.trueTag,Gc.falseTag,ws.intBin,ws.intOct,ws.int,ws.intHex,ki.floatNaN,ki.floatExp,ki.float,Xh.binary,Zh.merge,em.omap,tm.pairs,rm.set,xi.intTime,xi.floatTime,xi.timestamp];zc.schema=sm});var al=S(Ai=>{"use strict";var tl=tt(),nm=is(),rl=rt(),im=Ft(),om=ri(),Ei=ni(),Ti=oi(),am=Cc(),cm=_c(),sl=ui(),Wt=Qr(),nl=hi(),il=ds(),Xc=Qc(),ol=wi(),vs=Si(),Zc=new Map([["core",am.schema],["failsafe",[tl.map,rl.seq,im.string]],["json",cm.schema],["yaml11",Xc.schema],["yaml-1.1",Xc.schema]]),el={binary:sl.binary,bool:om.boolTag,float:Ei.float,floatExp:Ei.floatExp,floatNaN:Ei.floatNaN,floatTime:vs.floatTime,int:Ti.int,intHex:Ti.intHex,intOct:Ti.intOct,intTime:vs.intTime,map:tl.map,merge:Wt.merge,null:nm.nullTag,omap:nl.omap,pairs:il.pairs,seq:rl.seq,set:ol.set,timestamp:vs.timestamp},lm={"tag:yaml.org,2002:binary":sl.binary,"tag:yaml.org,2002:merge":Wt.merge,"tag:yaml.org,2002:omap":nl.omap,"tag:yaml.org,2002:pairs":il.pairs,"tag:yaml.org,2002:set":ol.set,"tag:yaml.org,2002:timestamp":vs.timestamp};function um(r,e,t){let s=Zc.get(e);if(s&&!r)return t&&!s.includes(Wt.merge)?s.concat(Wt.merge):s.slice();let n=s;if(!n)if(Array.isArray(r))n=[];else{let i=Array.from(Zc.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)n=n.concat(i);else typeof r=="function"&&(n=r(n.slice()));return t&&(n=n.concat(Wt.merge)),n.reduce((i,o)=>{let a=typeof o=="string"?el[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(el).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Ai.coreKnownTags=lm;Ai.getTags=um});var Ni=S(cl=>{"use strict";var Pi=P(),fm=tt(),dm=rt(),pm=Ft(),Ss=al(),hm=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Oi=class r{constructor({compat:e,customTags:t,merge:s,resolveKnownTags:n,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ss.getTags(e,"compat"):e?Ss.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=n?Ss.coreKnownTags:{},this.tags=Ss.getTags(t,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,Pi.MAP,{value:fm.map}),Object.defineProperty(this,Pi.SCALAR,{value:pm.string}),Object.defineProperty(this,Pi.SEQ,{value:dm.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?hm:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};cl.Schema=Oi});var ul=S(ll=>{"use strict";var mm=P(),Ci=Dt(),Yt=_t();function gm(r,e){let t=[],s=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),s=!0):r.directives.docStart&&(s=!0)}s&&t.push("---");let n=Ci.createStringifyContext(r,e),{commentString:i}=n.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Yt.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(mm.isNode(r.contents)){if(r.contents.spaceBefore&&s&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Yt.indentComment(f,""))}n.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Ci.stringify(r.contents,n,()=>a=null,c);a&&(l+=Yt.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Ci.stringify(r.contents,n));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
60
+ ${i.comment}`:s.comment}s=n}r.items[t]=fs.isPair(s)?s:new hi.Pair(s)}}else e("Expected a sequence for this tag");return r}function Bc(r,e,t){let{replacer:s}=t,n=new Mh.YAMLSeq(r);n.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof s=="function"&&(o=s.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;n.items.push(hi.createPair(a,c,t))}return n}var Dh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Dc,createNode:Bc};ds.createPairs=Bc;ds.pairs=Dh;ds.resolvePairs=Dc});var yi=v(gi=>{"use strict";var qc=P(),mi=ye(),Jt=xe(),Bh=Ee(),Fc=ps(),Le=class r extends Bh.YAMLSeq{constructor(){super(),this.add=Jt.YAMLMap.prototype.add.bind(this),this.delete=Jt.YAMLMap.prototype.delete.bind(this),this.get=Jt.YAMLMap.prototype.get.bind(this),this.has=Jt.YAMLMap.prototype.has.bind(this),this.set=Jt.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let s=new Map;t?.onCreate&&t.onCreate(s);for(let n of this.items){let i,o;if(qc.isPair(n)?(i=mi.toJS(n.key,"",t),o=mi.toJS(n.value,i,t)):i=mi.toJS(n,"",t),s.has(i))throw new Error("Ordered maps must not include duplicate keys");s.set(i,o)}return s}static from(e,t,s){let n=Fc.createPairs(e,t,s),i=new this;return i.items=n.items,i}};Le.tag="tag:yaml.org,2002:omap";var qh={collection:"seq",identify:r=>r instanceof Map,nodeClass:Le,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=Fc.resolvePairs(r,e),s=[];for(let{key:n}of t.items)qc.isScalar(n)&&(s.includes(n.value)?e(`Ordered maps must not include duplicate keys: ${n.value}`):s.push(n.value));return Object.assign(new Le,t)},createNode:(r,e,t)=>Le.from(r,e,t)};gi.YAMLOMap=Le;gi.omap=qh});var Vc=v(bi=>{"use strict";var jc=_();function Uc({value:r,source:e},t){return e&&(r?Jc:Kc).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var Jc={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new jc.Scalar(!0),stringify:Uc},Kc={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new jc.Scalar(!1),stringify:Uc};bi.falseTag=Kc;bi.trueTag=Jc});var Wc=v(hs=>{"use strict";var Fh=_(),wi=st(),jh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:wi.stringifyNumber},Uh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():wi.stringifyNumber(r)}},Jh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new Fh.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let s=r.substring(t+1).replace(/_/g,"");s[s.length-1]==="0"&&(e.minFractionDigits=s.length)}return e},stringify:wi.stringifyNumber};hs.float=Jh;hs.floatExp=Uh;hs.floatNaN=jh});var Hc=v(Vt=>{"use strict";var Yc=st(),Kt=r=>typeof r=="bigint"||Number.isInteger(r);function ms(r,e,t,{intAsBigInt:s}){let n=r[0];if((n==="-"||n==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),s){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return n==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return n==="-"?-1*i:i}function vi(r,e,t){let{value:s}=r;if(Kt(s)){let n=s.toString(e);return s<0?"-"+t+n.substr(1):t+n}return Yc.stringifyNumber(r)}var Kh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>ms(r,2,2,t),stringify:r=>vi(r,2,"0b")},Vh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>ms(r,1,8,t),stringify:r=>vi(r,8,"0")},Wh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>ms(r,0,10,t),stringify:Yc.stringifyNumber},Yh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>ms(r,2,16,t),stringify:r=>vi(r,16,"0x")};Vt.int=Wh;Vt.intBin=Kh;Vt.intHex=Yh;Vt.intOct=Vh});var ki=v(Si=>{"use strict";var bs=P(),gs=Se(),ys=xe(),$e=class r extends ys.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;bs.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new gs.Pair(e.key,null):t=new gs.Pair(e,null),ys.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let s=ys.findPair(this.items,e);return!t&&bs.isPair(s)?bs.isScalar(s.key)?s.key.value:s.key:s}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let s=ys.findPair(this.items,e);s&&!t?this.items.splice(this.items.indexOf(s),1):!s&&t&&this.items.push(new gs.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,s){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,s);throw new Error("Set items must all have null values")}static from(e,t,s){let{replacer:n}=s,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof n=="function"&&(o=n.call(t,o,o)),i.items.push(gs.createPair(o,null,s));return i}};$e.tag="tag:yaml.org,2002:set";var Hh={collection:"map",identify:r=>r instanceof Set,nodeClass:$e,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>$e.from(r,e,t),resolve(r,e){if(bs.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new $e,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Si.YAMLSet=$e;Si.set=Hh});var Ei=v(ws=>{"use strict";var Gh=st();function xi(r,e){let t=r[0],s=t==="-"||t==="+"?r.substring(1):r,n=o=>e?BigInt(o):Number(o),i=s.replace(/_/g,"").split(":").reduce((o,a)=>o*n(60)+n(a),n(0));return t==="-"?n(-1)*i:i}function Gc(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Gh.stringifyNumber(r);let s="";e<0&&(s="-",e*=t(-1));let n=t(60),i=[e%n];return e<60?i.unshift(0):(e=(e-i[0])/n,i.unshift(e%n),e>=60&&(e=(e-i[0])/n,i.unshift(e))),s+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var zh={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>xi(r,t),stringify:Gc},Qh={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>xi(r,!1),stringify:Gc},zc={identify:r=>r 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(r){let e=r.match(zc.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,s,n,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,s-1,n,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=xi(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ws.floatTime=Qh;ws.intTime=zh;ws.timestamp=zc});var Zc=v(Xc=>{"use strict";var Xh=tt(),Zh=os(),em=rt(),tm=jt(),rm=pi(),Qc=Vc(),Ai=Wc(),vs=Hc(),sm=Xr(),nm=yi(),im=ps(),om=ki(),Ti=Ei(),am=[Xh.map,em.seq,tm.string,Zh.nullTag,Qc.trueTag,Qc.falseTag,vs.intBin,vs.intOct,vs.int,vs.intHex,Ai.floatNaN,Ai.floatExp,Ai.float,rm.binary,sm.merge,nm.omap,im.pairs,om.set,Ti.intTime,Ti.floatTime,Ti.timestamp];Xc.schema=am});var ll=v(Ni=>{"use strict";var sl=tt(),cm=os(),nl=rt(),lm=jt(),um=ii(),Pi=ai(),Oi=li(),fm=Ic(),dm=$c(),il=pi(),Wt=Xr(),ol=yi(),al=ps(),el=Zc(),cl=ki(),Ss=Ei(),tl=new Map([["core",fm.schema],["failsafe",[sl.map,nl.seq,lm.string]],["json",dm.schema],["yaml11",el.schema],["yaml-1.1",el.schema]]),rl={binary:il.binary,bool:um.boolTag,float:Pi.float,floatExp:Pi.floatExp,floatNaN:Pi.floatNaN,floatTime:Ss.floatTime,int:Oi.int,intHex:Oi.intHex,intOct:Oi.intOct,intTime:Ss.intTime,map:sl.map,merge:Wt.merge,null:cm.nullTag,omap:ol.omap,pairs:al.pairs,seq:nl.seq,set:cl.set,timestamp:Ss.timestamp},pm={"tag:yaml.org,2002:binary":il.binary,"tag:yaml.org,2002:merge":Wt.merge,"tag:yaml.org,2002:omap":ol.omap,"tag:yaml.org,2002:pairs":al.pairs,"tag:yaml.org,2002:set":cl.set,"tag:yaml.org,2002:timestamp":Ss.timestamp};function hm(r,e,t){let s=tl.get(e);if(s&&!r)return t&&!s.includes(Wt.merge)?s.concat(Wt.merge):s.slice();let n=s;if(!n)if(Array.isArray(r))n=[];else{let i=Array.from(tl.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)n=n.concat(i);else typeof r=="function"&&(n=r(n.slice()));return t&&(n=n.concat(Wt.merge)),n.reduce((i,o)=>{let a=typeof o=="string"?rl[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(rl).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Ni.coreKnownTags=pm;Ni.getTags=hm});var Ii=v(ul=>{"use strict";var Ci=P(),mm=tt(),gm=rt(),ym=jt(),ks=ll(),bm=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Ri=class r{constructor({compat:e,customTags:t,merge:s,resolveKnownTags:n,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?ks.getTags(e,"compat"):e?ks.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=n?ks.coreKnownTags:{},this.tags=ks.getTags(t,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,Ci.MAP,{value:mm.map}),Object.defineProperty(this,Ci.SCALAR,{value:ym.string}),Object.defineProperty(this,Ci.SEQ,{value:gm.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?bm:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};ul.Schema=Ri});var dl=v(fl=>{"use strict";var wm=P(),_i=Dt(),Yt=_t();function vm(r,e){let t=[],s=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),s=!0):r.directives.docStart&&(s=!0)}s&&t.push("---");let n=_i.createStringifyContext(r,e),{commentString:i}=n.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Yt.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(wm.isNode(r.contents)){if(r.contents.spaceBefore&&s&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Yt.indentComment(f,""))}n.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=_i.stringify(r.contents,n,()=>a=null,c);a&&(l+=Yt.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(_i.stringify(r.contents,n));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
61
61
  `)?(t.push("..."),t.push(Yt.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Yt.indentComment(i(c),"")))}return t.join(`
62
62
  `)+`
63
- `}ll.stringifyDocument=gm});var Ht=S(fl=>{"use strict";var ym=It(),nt=Ur(),G=P(),bm=Se(),wm=ye(),vm=Ni(),Sm=ul(),Ii=qr(),km=$n(),xm=Rt(),Ri=Ln(),_i=class r{constructor(e,t,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,G.NODE_TYPE,{value:G.DOC});let n=null;typeof t=="function"||Array.isArray(t)?n=t:s===void 0&&t&&(s=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=i;let{version:o}=i;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ri.Directives({version:o}),this.setSchema(o,s),this.contents=e===void 0?null:this.createNode(e,n,s)}clone(){let e=Object.create(r.prototype,{[G.NODE_TYPE]:{value:G.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=G.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){it(this.contents)&&this.contents.add(e)}addIn(e,t){it(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let s=Ii.anchorNames(this);e.anchor=!t||s.has(t)?Ii.findNewAnchor(t||"a",s):t}return new ym.Alias(e.anchor)}createNode(e,t,s){let n;if(typeof t=="function")e=t.call({"":e},"",e),n=t;else if(Array.isArray(t)){let y=k=>typeof k=="number"||k instanceof String||k instanceof Number,x=t.filter(y).map(String);x.length>0&&(t=t.concat(x)),n=t}else s===void 0&&t&&(s=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=s??{},{onAnchor:u,setAnchors:d,sourceObjects:h}=Ii.createNodeAnchors(this,o||"a"),g={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:n,schema:this.schema,sourceObjects:h},p=xm.createNode(e,f,g);return a&&G.isCollection(p)&&(p.flow=!0),d(),p}createPair(e,t,s={}){let n=this.createNode(e,null,s),i=this.createNode(t,null,s);return new bm.Pair(n,i)}delete(e){return it(this.contents)?this.contents.delete(e):!1}deleteIn(e){return nt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):it(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return G.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return nt.isEmptyPath(e)?!t&&G.isScalar(this.contents)?this.contents.value:this.contents:G.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return G.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return nt.isEmptyPath(e)?this.contents!==void 0:G.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=nt.collectionFromPath(this.schema,[e],t):it(this.contents)&&this.contents.set(e,t)}setIn(e,t){nt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=nt.collectionFromPath(this.schema,Array.from(e),t):it(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let s;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ri.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Ri.Directives({version:e}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let n=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${n}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(s)this.schema=new vm.Schema(Object.assign(s,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:s,maxAliasCount:n,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},c=wm.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?km.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Sm.stringifyDocument(this,e)}};function it(r){if(G.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}fl.Document=_i});var Qt=S(zt=>{"use strict";var Gt=class extends Error{constructor(e,t,s,n){super(),this.name=e,this.code=s,this.message=n,this.pos=t}},Li=class extends Gt{constructor(e,t,s){super("YAMLParseError",e,t,s)}},$i=class extends Gt{constructor(e,t,s){super("YAMLWarning",e,t,s)}},Em=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:s,col:n}=t.linePos[0];t.message+=` at line ${s}, column ${n}`;let i=n-1,o=r.substring(e.lineStarts[s-1],e.lineStarts[s]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[s-2],e.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
63
+ `}fl.stringifyDocument=vm});var Ht=v(pl=>{"use strict";var Sm=Rt(),nt=Jr(),H=P(),km=Se(),xm=ye(),Em=Ii(),Am=dl(),Li=qr(),Tm=Bn(),Pm=It(),$i=Dn(),Mi=class r{constructor(e,t,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,H.NODE_TYPE,{value:H.DOC});let n=null;typeof t=="function"||Array.isArray(t)?n=t:s===void 0&&t&&(s=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=i;let{version:o}=i;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new $i.Directives({version:o}),this.setSchema(o,s),this.contents=e===void 0?null:this.createNode(e,n,s)}clone(){let e=Object.create(r.prototype,{[H.NODE_TYPE]:{value:H.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=H.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){it(this.contents)&&this.contents.add(e)}addIn(e,t){it(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let s=Li.anchorNames(this);e.anchor=!t||s.has(t)?Li.findNewAnchor(t||"a",s):t}return new Sm.Alias(e.anchor)}createNode(e,t,s){let n;if(typeof t=="function")e=t.call({"":e},"",e),n=t;else if(Array.isArray(t)){let y=S=>typeof S=="number"||S instanceof String||S instanceof Number,x=t.filter(y).map(String);x.length>0&&(t=t.concat(x)),n=t}else s===void 0&&t&&(s=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=s??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Li.createNodeAnchors(this,o||"a"),g={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:n,schema:this.schema,sourceObjects:p},h=Pm.createNode(e,f,g);return a&&H.isCollection(h)&&(h.flow=!0),d(),h}createPair(e,t,s={}){let n=this.createNode(e,null,s),i=this.createNode(t,null,s);return new km.Pair(n,i)}delete(e){return it(this.contents)?this.contents.delete(e):!1}deleteIn(e){return nt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):it(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return H.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return nt.isEmptyPath(e)?!t&&H.isScalar(this.contents)?this.contents.value:this.contents:H.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return H.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return nt.isEmptyPath(e)?this.contents!==void 0:H.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=nt.collectionFromPath(this.schema,[e],t):it(this.contents)&&this.contents.set(e,t)}setIn(e,t){nt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=nt.collectionFromPath(this.schema,Array.from(e),t):it(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let s;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new $i.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new $i.Directives({version:e}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let n=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${n}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(s)this.schema=new Em.Schema(Object.assign(s,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:s,maxAliasCount:n,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},c=xm.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Tm.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Am.stringifyDocument(this,e)}};function it(r){if(H.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}pl.Document=Mi});var Qt=v(zt=>{"use strict";var Gt=class extends Error{constructor(e,t,s,n){super(),this.name=e,this.code=s,this.message=n,this.pos=t}},Di=class extends Gt{constructor(e,t,s){super("YAMLParseError",e,t,s)}},Bi=class extends Gt{constructor(e,t,s){super("YAMLWarning",e,t,s)}},Om=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:s,col:n}=t.linePos[0];t.message+=` at line ${s}, column ${n}`;let i=n-1,o=r.substring(e.lineStarts[s-1],e.lineStarts[s]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[s-2],e.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
64
64
  `),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===s&&c.col>n&&(a=Math.max(1,Math.min(c.col-n,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:
65
65
 
66
66
  ${o}
67
67
  ${l}
68
- `}};zt.YAMLError=Gt;zt.YAMLParseError=Li;zt.YAMLWarning=$i;zt.prettifyError=Em});var Xt=S(dl=>{"use strict";function Tm(r,{flow:e,indicator:t,next:s,offset:n,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",h=!1,g=!1,p=null,y=null,x=null,k=null,E=null,m=null,b=null;for(let w of r)switch(g&&(w.type!=="space"&&w.type!=="newline"&&w.type!=="comma"&&i(w.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),p&&(l&&w.type!=="comment"&&w.type!=="newline"&&i(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),p=null),w.type){case"space":!e&&(t!=="doc-start"||s?.type!=="flow-collection")&&w.source.includes(" ")&&(p=w),f=!0;break;case"comment":{f||i(w,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let O=w.source.substring(1)||" ";u?u+=d+O:u=O,d="",l=!1;break}case"newline":l?u?u+=w.source:(!m||t!=="seq-item-ind")&&(c=!0):d+=w.source,l=!0,h=!0,(y||x)&&(k=w),f=!0;break;case"anchor":y&&i(w,"MULTIPLE_ANCHORS","A node can have at most one anchor"),w.source.endsWith(":")&&i(w.offset+w.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=w,b??(b=w.offset),l=!1,f=!1,g=!0;break;case"tag":{x&&i(w,"MULTIPLE_TAGS","A node can have at most one tag"),x=w,b??(b=w.offset),l=!1,f=!1,g=!0;break}case t:(y||x)&&i(w,"BAD_PROP_ORDER",`Anchors and tags must be after the ${w.source} indicator`),m&&i(w,"UNEXPECTED_TOKEN",`Unexpected ${w.source} in ${e??"collection"}`),m=w,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){E&&i(w,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),E=w,l=!1,f=!1;break}default:i(w,"UNEXPECTED_TOKEN",`Unexpected ${w.type} token`),l=!1,f=!1}let v=r[r.length-1],T=v?v.offset+v.source.length:n;return g&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&i(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),p&&(l&&p.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&i(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:E,found:m,spaceBefore:c,comment:u,hasNewline:h,anchor:y,tag:x,newlineAfterProp:k,end:T,start:b??T}}dl.resolveProps=Tm});var ks=S(pl=>{"use strict";function Mi(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
69
- `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Mi(e.key)||Mi(e.value))return!0}return!1;default:return!0}}pl.containsNewline=Mi});var Di=S(hl=>{"use strict";var Am=ks();function Pm(r,e,t){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===r&&(s.source==="]"||s.source==="}")&&Am.containsNewline(e)&&t(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}hl.flowIndentCheck=Pm});var qi=S(gl=>{"use strict";var ml=P();function Om(r,e,t){let{uniqueKeys:s}=r.options;if(s===!1)return!1;let n=typeof s=="function"?s:(i,o)=>i===o||ml.isScalar(i)&&ml.isScalar(o)&&i.value===o.value;return e.some(i=>n(i.key,t))}gl.mapIncludes=Om});var kl=S(Sl=>{"use strict";var yl=Se(),Nm=xe(),bl=Xt(),Cm=ks(),wl=Di(),Im=qi(),vl="All mapping items must start at the same column";function Rm({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=i?.nodeClass??Nm.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=s.offset,l=null;for(let f of s.items){let{start:u,key:d,sep:h,value:g}=f,p=bl.resolveProps(u,{indicator:"explicit-key-ind",next:d??h?.[0],offset:c,onError:n,parentIndent:s.indent,startOnNewline:!0}),y=!p.found;if(y){if(d&&(d.type==="block-seq"?n(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==s.indent&&n(c,"BAD_INDENT",vl)),!p.anchor&&!p.tag&&!h){l=p.end,p.comment&&(a.comment?a.comment+=`
70
- `+p.comment:a.comment=p.comment);continue}(p.newlineAfterProp||Cm.containsNewline(d))&&n(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else p.found?.indent!==s.indent&&n(c,"BAD_INDENT",vl);t.atKey=!0;let x=p.end,k=d?r(t,d,p,n):e(t,x,u,null,p,n);t.schema.compat&&wl.flowIndentCheck(s.indent,d,n),t.atKey=!1,Im.mapIncludes(t,a.items,k)&&n(x,"DUPLICATE_KEY","Map keys must be unique");let E=bl.resolveProps(h??[],{indicator:"map-value-ind",next:g,offset:k.range[2],onError:n,parentIndent:s.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=E.end,E.found){y&&(g?.type==="block-map"&&!E.hasNewline&&n(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&p.start<E.found.offset-1024&&n(k.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let m=g?r(t,g,E,n):e(t,c,h,null,E,n);t.schema.compat&&wl.flowIndentCheck(s.indent,g,n),c=m.range[2];let b=new yl.Pair(k,m);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}else{y&&n(k.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),E.comment&&(k.comment?k.comment+=`
71
- `+E.comment:k.comment=E.comment);let m=new yl.Pair(k);t.options.keepSourceTokens&&(m.srcToken=f),a.items.push(m)}}return l&&l<c&&n(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,c,l??c],a}Sl.resolveBlockMap=Rm});var El=S(xl=>{"use strict";var _m=Ee(),Lm=Xt(),$m=Di();function Mm({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=i?.nodeClass??_m.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=s.offset,l=null;for(let{start:f,value:u}of s.items){let d=Lm.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:n,parentIndent:s.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?n(d.end,"BAD_INDENT","All sequence items must start at the same column"):n(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let h=u?r(t,u,d,n):e(t,d.end,f,null,d,n);t.schema.compat&&$m.flowIndentCheck(s.indent,u,n),c=h.range[2],a.items.push(h)}return a.range=[s.offset,c,l??c],a}xl.resolveBlockSeq=Mm});var ot=S(Tl=>{"use strict";function Dm(r,e,t,s){let n="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";n?n+=o+f:n=f,o="";break}case"newline":n&&(o+=c),i=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:n,offset:e}}Tl.resolveEnd=Dm});var Nl=S(Ol=>{"use strict";var qm=P(),Bm=Se(),Al=xe(),jm=Ee(),Fm=ot(),Pl=Xt(),Um=ks(),Km=qi(),Bi="Block collections are not allowed within flow collections",ji=r=>r&&(r.type==="block-map"||r.type==="block-seq");function Jm({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=s.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?Al.YAMLMap:jm.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=s.offset+s.start.source.length;for(let y=0;y<s.items.length;++y){let x=s.items[y],{start:k,key:E,sep:m,value:b}=x,v=Pl.resolveProps(k,{flow:a,indicator:"explicit-key-ind",next:E??m?.[0],offset:u,onError:n,parentIndent:s.indent,startOnNewline:!1});if(!v.found){if(!v.anchor&&!v.tag&&!m&&!b){y===0&&v.comma?n(v.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):y<s.items.length-1&&n(v.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),v.comment&&(l.comment?l.comment+=`
72
- `+v.comment:l.comment=v.comment),u=v.end;continue}!o&&t.options.strict&&Um.containsNewline(E)&&n(E,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(y===0)v.comma&&n(v.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(v.comma||n(v.start,"MISSING_CHAR",`Missing , between ${a} items`),v.comment){let T="";e:for(let w of k)switch(w.type){case"comma":case"space":break;case"comment":T=w.source.substring(1);break e;default:break e}if(T){let w=l.items[l.items.length-1];qm.isPair(w)&&(w=w.value??w.key),w.comment?w.comment+=`
73
- `+T:w.comment=T,v.comment=v.comment.substring(T.length+1)}}if(!o&&!m&&!v.found){let T=b?r(t,b,v,n):e(t,v.end,m,null,v,n);l.items.push(T),u=T.range[2],ji(b)&&n(T.range,"BLOCK_IN_FLOW",Bi)}else{t.atKey=!0;let T=v.end,w=E?r(t,E,v,n):e(t,T,k,null,v,n);ji(E)&&n(w.range,"BLOCK_IN_FLOW",Bi),t.atKey=!1;let O=Pl.resolveProps(m??[],{flow:a,indicator:"map-value-ind",next:b,offset:w.range[2],onError:n,parentIndent:s.indent,startOnNewline:!1});if(O.found){if(!o&&!v.found&&t.options.strict){if(m)for(let I of m){if(I===O.found)break;if(I.type==="newline"){n(I,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}v.start<O.found.offset-1024&&n(O.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else b&&("source"in b&&b.source?.[0]===":"?n(b,"MISSING_CHAR",`Missing space after : in ${a}`):n(O.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let D=b?r(t,b,O,n):O.found?e(t,O.end,m,null,O,n):null;D?ji(b)&&n(D.range,"BLOCK_IN_FLOW",Bi):O.comment&&(w.comment?w.comment+=`
74
- `+O.comment:w.comment=O.comment);let j=new Bm.Pair(w,D);if(t.options.keepSourceTokens&&(j.srcToken=x),o){let I=l;Km.mapIncludes(t,I.items,w)&&n(T,"DUPLICATE_KEY","Map keys must be unique"),I.items.push(j)}else{let I=new Al.YAMLMap(t.schema);I.flow=!0,I.items.push(j);let le=(D??w).range;I.range=[w.range[0],le[1],le[2]],l.items.push(I)}u=D?D.range[2]:O.end}}let d=o?"}":"]",[h,...g]=s.end,p=u;if(h?.source===d)p=h.offset+h.source.length;else{let y=a[0].toUpperCase()+a.substring(1),x=f?`${y} must end with a ${d}`:`${y} in block collection must be sufficiently indented and end with a ${d}`;n(u,f?"MISSING_CHAR":"BAD_INDENT",x),h&&h.source.length!==1&&g.unshift(h)}if(g.length>0){let y=Fm.resolveEnd(g,p,t.options.strict,n);y.comment&&(l.comment?l.comment+=`
75
- `+y.comment:l.comment=y.comment),l.range=[s.offset,p,y.offset]}else l.range=[s.offset,p,p];return l}Ol.resolveFlowCollection=Jm});var Il=S(Cl=>{"use strict";var Vm=P(),Wm=_(),Ym=xe(),Hm=Ee(),Gm=kl(),zm=El(),Qm=Nl();function Fi(r,e,t,s,n,i){let o=t.type==="block-map"?Gm.resolveBlockMap(r,e,t,s,i):t.type==="block-seq"?zm.resolveBlockSeq(r,e,t,s,i):Qm.resolveFlowCollection(r,e,t,s,i),a=o.constructor;return n==="!"||n===a.tagName?(o.tag=a.tagName,o):(n&&(o.tag=n),o)}function Xm(r,e,t,s,n){let i=s.tag,o=i?e.directives.tagName(i.source,d=>n(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:h}=s,g=d&&i?d.offset>i.offset?d:i:d??i;g&&(!h||h.offset<g.offset)&&n(g,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===Ym.YAMLMap.tagName&&a==="map"||o===Hm.YAMLSeq.tagName&&a==="seq")return Fi(r,e,t,n,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?n(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Fi(r,e,t,n,o)}let l=Fi(r,e,t,n,o,c),f=c.resolve?.(l,d=>n(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=Vm.isNode(f)?f:new Wm.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}Cl.composeCollection=Xm});var Ki=S(Rl=>{"use strict";var Ui=_();function Zm(r,e,t){let s=e.offset,n=eg(e,r.options.strict,t);if(!n)return{value:"",type:null,comment:"",range:[s,s,s]};let i=n.mode===">"?Ui.Scalar.BLOCK_FOLDED:Ui.Scalar.BLOCK_LITERAL,o=e.source?tg(e.source):[],a=o.length;for(let p=o.length-1;p>=0;--p){let y=o[p][1];if(y===""||y==="\r")a=p;else break}if(a===0){let p=n.chomp==="+"&&o.length>0?`
76
- `.repeat(Math.max(1,o.length-1)):"",y=s+n.length;return e.source&&(y+=e.source.length),{value:p,type:i,comment:n.comment,range:[s,y,y]}}let c=e.indent+n.indent,l=e.offset+n.length,f=0;for(let p=0;p<a;++p){let[y,x]=o[p];if(x===""||x==="\r")n.indent===0&&y.length>c&&(c=y.length);else{y.length<c&&t(l+y.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),n.indent===0&&(c=y.length),f=p,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=y.length+x.length+1}for(let p=o.length-1;p>=a;--p)o[p][0].length>c&&(a=p+1);let u="",d="",h=!1;for(let p=0;p<f;++p)u+=o[p][0].slice(c)+`
77
- `;for(let p=f;p<a;++p){let[y,x]=o[p];l+=y.length+x.length+1;let k=x[x.length-1]==="\r";if(k&&(x=x.slice(0,-1)),x&&y.length<c){let m=`Block scalar lines must not be less indented than their ${n.indent?"explicit indentation indicator":"first line"}`;t(l-x.length-(k?2:1),"BAD_INDENT",m),y=""}i===Ui.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+x,d=`
68
+ `}};zt.YAMLError=Gt;zt.YAMLParseError=Di;zt.YAMLWarning=Bi;zt.prettifyError=Om});var Xt=v(hl=>{"use strict";function Nm(r,{flow:e,indicator:t,next:s,offset:n,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,g=!1,h=null,y=null,x=null,S=null,m=null,b=null,w=null;for(let k of r)switch(g&&(k.type!=="space"&&k.type!=="newline"&&k.type!=="comma"&&i(k.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),h&&(l&&k.type!=="comment"&&k.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),k.type){case"space":!e&&(t!=="doc-start"||s?.type!=="flow-collection")&&k.source.includes(" ")&&(h=k),f=!0;break;case"comment":{f||i(k,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let C=k.source.substring(1)||" ";u?u+=d+C:u=C,d="",l=!1;break}case"newline":l?u?u+=k.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=k.source,l=!0,p=!0,(y||x)&&(S=k),f=!0;break;case"anchor":y&&i(k,"MULTIPLE_ANCHORS","A node can have at most one anchor"),k.source.endsWith(":")&&i(k.offset+k.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=k,w??(w=k.offset),l=!1,f=!1,g=!0;break;case"tag":{x&&i(k,"MULTIPLE_TAGS","A node can have at most one tag"),x=k,w??(w=k.offset),l=!1,f=!1,g=!0;break}case t:(y||x)&&i(k,"BAD_PROP_ORDER",`Anchors and tags must be after the ${k.source} indicator`),b&&i(k,"UNEXPECTED_TOKEN",`Unexpected ${k.source} in ${e??"collection"}`),b=k,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){m&&i(k,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),m=k,l=!1,f=!1;break}default:i(k,"UNEXPECTED_TOKEN",`Unexpected ${k.type} token`),l=!1,f=!1}let E=r[r.length-1],A=E?E.offset+E.source.length:n;return g&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&i(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(l&&h.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:m,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:y,tag:x,newlineAfterProp:S,end:A,start:w??A}}hl.resolveProps=Nm});var xs=v(ml=>{"use strict";function qi(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
69
+ `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(qi(e.key)||qi(e.value))return!0}return!1;default:return!0}}ml.containsNewline=qi});var Fi=v(gl=>{"use strict";var Cm=xs();function Rm(r,e,t){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===r&&(s.source==="]"||s.source==="}")&&Cm.containsNewline(e)&&t(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}gl.flowIndentCheck=Rm});var ji=v(bl=>{"use strict";var yl=P();function Im(r,e,t){let{uniqueKeys:s}=r.options;if(s===!1)return!1;let n=typeof s=="function"?s:(i,o)=>i===o||yl.isScalar(i)&&yl.isScalar(o)&&i.value===o.value;return e.some(i=>n(i.key,t))}bl.mapIncludes=Im});var El=v(xl=>{"use strict";var wl=Se(),_m=xe(),vl=Xt(),Lm=xs(),Sl=Fi(),$m=ji(),kl="All mapping items must start at the same column";function Mm({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=i?.nodeClass??_m.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=s.offset,l=null;for(let f of s.items){let{start:u,key:d,sep:p,value:g}=f,h=vl.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:n,parentIndent:s.indent,startOnNewline:!0}),y=!h.found;if(y){if(d&&(d.type==="block-seq"?n(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==s.indent&&n(c,"BAD_INDENT",kl)),!h.anchor&&!h.tag&&!p){l=h.end,h.comment&&(a.comment?a.comment+=`
70
+ `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||Lm.containsNewline(d))&&n(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==s.indent&&n(c,"BAD_INDENT",kl);t.atKey=!0;let x=h.end,S=d?r(t,d,h,n):e(t,x,u,null,h,n);t.schema.compat&&Sl.flowIndentCheck(s.indent,d,n),t.atKey=!1,$m.mapIncludes(t,a.items,S)&&n(x,"DUPLICATE_KEY","Map keys must be unique");let m=vl.resolveProps(p??[],{indicator:"map-value-ind",next:g,offset:S.range[2],onError:n,parentIndent:s.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=m.end,m.found){y&&(g?.type==="block-map"&&!m.hasNewline&&n(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&h.start<m.found.offset-1024&&n(S.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=g?r(t,g,m,n):e(t,c,p,null,m,n);t.schema.compat&&Sl.flowIndentCheck(s.indent,g,n),c=b.range[2];let w=new wl.Pair(S,b);t.options.keepSourceTokens&&(w.srcToken=f),a.items.push(w)}else{y&&n(S.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),m.comment&&(S.comment?S.comment+=`
71
+ `+m.comment:S.comment=m.comment);let b=new wl.Pair(S);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&n(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,c,l??c],a}xl.resolveBlockMap=Mm});var Tl=v(Al=>{"use strict";var Dm=Ee(),Bm=Xt(),qm=Fi();function Fm({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=i?.nodeClass??Dm.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=s.offset,l=null;for(let{start:f,value:u}of s.items){let d=Bm.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:n,parentIndent:s.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?n(d.end,"BAD_INDENT","All sequence items must start at the same column"):n(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,n):e(t,d.end,f,null,d,n);t.schema.compat&&qm.flowIndentCheck(s.indent,u,n),c=p.range[2],a.items.push(p)}return a.range=[s.offset,c,l??c],a}Al.resolveBlockSeq=Fm});var ot=v(Pl=>{"use strict";function jm(r,e,t,s){let n="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";n?n+=o+f:n=f,o="";break}case"newline":n&&(o+=c),i=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:n,offset:e}}Pl.resolveEnd=jm});var Rl=v(Cl=>{"use strict";var Um=P(),Jm=Se(),Ol=xe(),Km=Ee(),Vm=ot(),Nl=Xt(),Wm=xs(),Ym=ji(),Ui="Block collections are not allowed within flow collections",Ji=r=>r&&(r.type==="block-map"||r.type==="block-seq");function Hm({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=s.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?Ol.YAMLMap:Km.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=s.offset+s.start.source.length;for(let y=0;y<s.items.length;++y){let x=s.items[y],{start:S,key:m,sep:b,value:w}=x,E=Nl.resolveProps(S,{flow:a,indicator:"explicit-key-ind",next:m??b?.[0],offset:u,onError:n,parentIndent:s.indent,startOnNewline:!1});if(!E.found){if(!E.anchor&&!E.tag&&!b&&!w){y===0&&E.comma?n(E.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):y<s.items.length-1&&n(E.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),E.comment&&(l.comment?l.comment+=`
72
+ `+E.comment:l.comment=E.comment),u=E.end;continue}!o&&t.options.strict&&Wm.containsNewline(m)&&n(m,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(y===0)E.comma&&n(E.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(E.comma||n(E.start,"MISSING_CHAR",`Missing , between ${a} items`),E.comment){let A="";e:for(let k of S)switch(k.type){case"comma":case"space":break;case"comment":A=k.source.substring(1);break e;default:break e}if(A){let k=l.items[l.items.length-1];Um.isPair(k)&&(k=k.value??k.key),k.comment?k.comment+=`
73
+ `+A:k.comment=A,E.comment=E.comment.substring(A.length+1)}}if(!o&&!b&&!E.found){let A=w?r(t,w,E,n):e(t,E.end,b,null,E,n);l.items.push(A),u=A.range[2],Ji(w)&&n(A.range,"BLOCK_IN_FLOW",Ui)}else{t.atKey=!0;let A=E.end,k=m?r(t,m,E,n):e(t,A,S,null,E,n);Ji(m)&&n(k.range,"BLOCK_IN_FLOW",Ui),t.atKey=!1;let C=Nl.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:w,offset:k.range[2],onError:n,parentIndent:s.indent,startOnNewline:!1});if(C.found){if(!o&&!E.found&&t.options.strict){if(b)for(let R of b){if(R===C.found)break;if(R.type==="newline"){n(R,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}E.start<C.found.offset-1024&&n(C.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else w&&("source"in w&&w.source?.[0]===":"?n(w,"MISSING_CHAR",`Missing space after : in ${a}`):n(C.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let L=w?r(t,w,C,n):C.found?e(t,C.end,b,null,C,n):null;L?Ji(w)&&n(L.range,"BLOCK_IN_FLOW",Ui):C.comment&&(k.comment?k.comment+=`
74
+ `+C.comment:k.comment=C.comment);let oe=new Jm.Pair(k,L);if(t.options.keepSourceTokens&&(oe.srcToken=x),o){let R=l;Ym.mapIncludes(t,R.items,k)&&n(A,"DUPLICATE_KEY","Map keys must be unique"),R.items.push(oe)}else{let R=new Ol.YAMLMap(t.schema);R.flow=!0,R.items.push(oe);let Et=(L??k).range;R.range=[k.range[0],Et[1],Et[2]],l.items.push(R)}u=L?L.range[2]:C.end}}let d=o?"}":"]",[p,...g]=s.end,h=u;if(p?.source===d)h=p.offset+p.source.length;else{let y=a[0].toUpperCase()+a.substring(1),x=f?`${y} must end with a ${d}`:`${y} in block collection must be sufficiently indented and end with a ${d}`;n(u,f?"MISSING_CHAR":"BAD_INDENT",x),p&&p.source.length!==1&&g.unshift(p)}if(g.length>0){let y=Vm.resolveEnd(g,h,t.options.strict,n);y.comment&&(l.comment?l.comment+=`
75
+ `+y.comment:l.comment=y.comment),l.range=[s.offset,h,y.offset]}else l.range=[s.offset,h,h];return l}Cl.resolveFlowCollection=Hm});var _l=v(Il=>{"use strict";var Gm=P(),zm=_(),Qm=xe(),Xm=Ee(),Zm=El(),eg=Tl(),tg=Rl();function Ki(r,e,t,s,n,i){let o=t.type==="block-map"?Zm.resolveBlockMap(r,e,t,s,i):t.type==="block-seq"?eg.resolveBlockSeq(r,e,t,s,i):tg.resolveFlowCollection(r,e,t,s,i),a=o.constructor;return n==="!"||n===a.tagName?(o.tag=a.tagName,o):(n&&(o.tag=n),o)}function rg(r,e,t,s,n){let i=s.tag,o=i?e.directives.tagName(i.source,d=>n(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=s,g=d&&i?d.offset>i.offset?d:i:d??i;g&&(!p||p.offset<g.offset)&&n(g,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===Qm.YAMLMap.tagName&&a==="map"||o===Xm.YAMLSeq.tagName&&a==="seq")return Ki(r,e,t,n,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?n(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Ki(r,e,t,n,o)}let l=Ki(r,e,t,n,o,c),f=c.resolve?.(l,d=>n(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=Gm.isNode(f)?f:new zm.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}Il.composeCollection=rg});var Wi=v(Ll=>{"use strict";var Vi=_();function sg(r,e,t){let s=e.offset,n=ng(e,r.options.strict,t);if(!n)return{value:"",type:null,comment:"",range:[s,s,s]};let i=n.mode===">"?Vi.Scalar.BLOCK_FOLDED:Vi.Scalar.BLOCK_LITERAL,o=e.source?ig(e.source):[],a=o.length;for(let h=o.length-1;h>=0;--h){let y=o[h][1];if(y===""||y==="\r")a=h;else break}if(a===0){let h=n.chomp==="+"&&o.length>0?`
76
+ `.repeat(Math.max(1,o.length-1)):"",y=s+n.length;return e.source&&(y+=e.source.length),{value:h,type:i,comment:n.comment,range:[s,y,y]}}let c=e.indent+n.indent,l=e.offset+n.length,f=0;for(let h=0;h<a;++h){let[y,x]=o[h];if(x===""||x==="\r")n.indent===0&&y.length>c&&(c=y.length);else{y.length<c&&t(l+y.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),n.indent===0&&(c=y.length),f=h,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=y.length+x.length+1}for(let h=o.length-1;h>=a;--h)o[h][0].length>c&&(a=h+1);let u="",d="",p=!1;for(let h=0;h<f;++h)u+=o[h][0].slice(c)+`
77
+ `;for(let h=f;h<a;++h){let[y,x]=o[h];l+=y.length+x.length+1;let S=x[x.length-1]==="\r";if(S&&(x=x.slice(0,-1)),x&&y.length<c){let b=`Block scalar lines must not be less indented than their ${n.indent?"explicit indentation indicator":"first line"}`;t(l-x.length-(S?2:1),"BAD_INDENT",b),y=""}i===Vi.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+x,d=`
78
78
  `):y.length>c||x[0]===" "?(d===" "?d=`
79
- `:!h&&d===`
79
+ `:!p&&d===`
80
80
  `&&(d=`
81
81
 
82
82
  `),u+=d+y.slice(c)+x,d=`
83
- `,h=!0):x===""?d===`
83
+ `,p=!0):x===""?d===`
84
84
  `?u+=`
85
85
  `:d=`
86
- `:(u+=d+x,d=" ",h=!1)}switch(n.chomp){case"-":break;case"+":for(let p=a;p<o.length;++p)u+=`
87
- `+o[p][0].slice(c);u[u.length-1]!==`
86
+ `:(u+=d+x,d=" ",p=!1)}switch(n.chomp){case"-":break;case"+":for(let h=a;h<o.length;++h)u+=`
87
+ `+o[h][0].slice(c);u[u.length-1]!==`
88
88
  `&&(u+=`
89
89
  `);break;default:u+=`
90
- `}let g=s+n.length+e.source.length;return{value:u,type:i,comment:n.comment,range:[s,g,g]}}function eg({offset:r,props:e},t,s){if(e[0].type!=="block-scalar-header")return s(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:n}=e[0],i=n[0],o=0,a="",c=-1;for(let d=1;d<n.length;++d){let h=n[d];if(!a&&(h==="-"||h==="+"))a=h;else{let g=Number(h);!o&&g?o=g:c===-1&&(c=r+d)}}c!==-1&&s(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${n}`);let l=!1,f="",u=n.length;for(let d=1;d<e.length;++d){let h=e[d];switch(h.type){case"space":l=!0;case"newline":u+=h.source.length;break;case"comment":t&&!l&&s(h,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=h.source.length,f=h.source.substring(1);break;case"error":s(h,"UNEXPECTED_TOKEN",h.message),u+=h.source.length;break;default:{let g=`Unexpected token in block scalar header: ${h.type}`;s(h,"UNEXPECTED_TOKEN",g);let p=h.source;p&&typeof p=="string"&&(u+=p.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function tg(r){let e=r.split(/\n( *)/),t=e[0],s=t.match(/^( *)/),i=[s?.[1]?[s[1],t.slice(s[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}Rl.resolveBlockScalar=Zm});var Vi=S(Ll=>{"use strict";var Ji=_(),rg=ot();function sg(r,e,t){let{offset:s,type:n,source:i,end:o}=r,a,c,l=(d,h,g)=>t(s+d,h,g);switch(n){case"scalar":a=Ji.Scalar.PLAIN,c=ng(i,l);break;case"single-quoted-scalar":a=Ji.Scalar.QUOTE_SINGLE,c=ig(i,l);break;case"double-quoted-scalar":a=Ji.Scalar.QUOTE_DOUBLE,c=og(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${n}`),{value:"",type:null,comment:"",range:[s,s+i.length,s+i.length]}}let f=s+i.length,u=rg.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[s,f,u.offset]}}function ng(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),_l(r)}function ig(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),_l(r.slice(1,-1)).replace(/''/g,"'")}function _l(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
90
+ `}let g=s+n.length+e.source.length;return{value:u,type:i,comment:n.comment,range:[s,g,g]}}function ng({offset:r,props:e},t,s){if(e[0].type!=="block-scalar-header")return s(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:n}=e[0],i=n[0],o=0,a="",c=-1;for(let d=1;d<n.length;++d){let p=n[d];if(!a&&(p==="-"||p==="+"))a=p;else{let g=Number(p);!o&&g?o=g:c===-1&&(c=r+d)}}c!==-1&&s(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${n}`);let l=!1,f="",u=n.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&s(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":s(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let g=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",g);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function ig(r){let e=r.split(/\n( *)/),t=e[0],s=t.match(/^( *)/),i=[s?.[1]?[s[1],t.slice(s[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}Ll.resolveBlockScalar=sg});var Hi=v(Ml=>{"use strict";var Yi=_(),og=ot();function ag(r,e,t){let{offset:s,type:n,source:i,end:o}=r,a,c,l=(d,p,g)=>t(s+d,p,g);switch(n){case"scalar":a=Yi.Scalar.PLAIN,c=cg(i,l);break;case"single-quoted-scalar":a=Yi.Scalar.QUOTE_SINGLE,c=lg(i,l);break;case"double-quoted-scalar":a=Yi.Scalar.QUOTE_DOUBLE,c=ug(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${n}`),{value:"",type:null,comment:"",range:[s,s+i.length,s+i.length]}}let f=s+i.length,u=og.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[s,f,u.offset]}}function cg(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),$l(r)}function lg(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),$l(r.slice(1,-1)).replace(/''/g,"'")}function $l(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
91
91
  `,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
92
92
  `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let s=e.exec(r);if(!s)return r;let n=s[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;s=t.exec(r);)s[1]===""?i===`
93
93
  `?n+=i:i=`
94
- `:(n+=i+s[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(r),n+i+(s?.[1]??"")}function og(r,e){let t="";for(let s=1;s<r.length-1;++s){let n=r[s];if(!(n==="\r"&&r[s+1]===`
94
+ `:(n+=i+s[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(r),n+i+(s?.[1]??"")}function ug(r,e){let t="";for(let s=1;s<r.length-1;++s){let n=r[s];if(!(n==="\r"&&r[s+1]===`
95
95
  `))if(n===`
96
- `){let{fold:i,offset:o}=ag(r,s);t+=i,s=o}else if(n==="\\"){let i=r[++s],o=cg[i];if(o)t+=o;else if(i===`
96
+ `){let{fold:i,offset:o}=fg(r,s);t+=i,s=o}else if(n==="\\"){let i=r[++s],o=dg[i];if(o)t+=o;else if(i===`
97
97
  `)for(i=r[s+1];i===" "||i===" ";)i=r[++s+1];else if(i==="\r"&&r[s+1]===`
98
- `)for(i=r[++s+1];i===" "||i===" ";)i=r[++s+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=lg(r,s+1,a,e),s+=a}else{let a=r.substr(s-1,2);e(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(n===" "||n===" "){let i=s,o=r[s+1];for(;o===" "||o===" ";)o=r[++s+1];o!==`
98
+ `)for(i=r[++s+1];i===" "||i===" ";)i=r[++s+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=pg(r,s+1,a,e),s+=a}else{let a=r.substr(s-1,2);e(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(n===" "||n===" "){let i=s,o=r[s+1];for(;o===" "||o===" ";)o=r[++s+1];o!==`
99
99
  `&&!(o==="\r"&&r[s+2]===`
100
- `)&&(t+=s>i?r.slice(i,s+1):n)}else t+=n}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function ag(r,e){let t="",s=r[e+1];for(;(s===" "||s===" "||s===`
100
+ `)&&(t+=s>i?r.slice(i,s+1):n)}else t+=n}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function fg(r,e){let t="",s=r[e+1];for(;(s===" "||s===" "||s===`
101
101
  `||s==="\r")&&!(s==="\r"&&r[e+2]!==`
102
102
  `);)s===`
103
103
  `&&(t+=`
104
- `),e+=1,s=r[e+1];return t||(t=" "),{fold:t,offset:e}}var cg={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
105
- `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function lg(r,e,t,s){let n=r.substr(e,t),o=n.length===t&&/^[0-9a-fA-F]+$/.test(n)?parseInt(n,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return s(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Ll.resolveFlowScalar=sg});var Dl=S(Ml=>{"use strict";var Me=P(),$l=_(),ug=Ki(),fg=Vi();function dg(r,e,t,s){let{value:n,type:i,comment:o,range:a}=e.type==="block-scalar"?ug.resolveBlockScalar(r,e,s):fg.resolveFlowScalar(e,r.options.strict,s),c=t?r.directives.tagName(t.source,u=>s(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[Me.SCALAR]:c?l=pg(r.schema,n,c,t,s):e.type==="scalar"?l=hg(r,n,e,s):l=r.schema[Me.SCALAR];let f;try{let u=l.resolve(n,d=>s(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=Me.isScalar(u)?u:new $l.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);s(t??e,"TAG_RESOLVE_FAILED",d),f=new $l.Scalar(n)}return f.range=a,f.source=n,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function pg(r,e,t,s,n){if(t==="!")return r[Me.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(n(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[Me.SCALAR])}function hg({atKey:r,directives:e,schema:t},s,n,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(s))||t[Me.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(s))??t[Me.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(n,"TAG_RESOLVE_FAILED",f,!0)}}return o}Ml.composeScalar=dg});var Bl=S(ql=>{"use strict";function mg(r,e,t){if(e){t??(t=e.length);for(let s=t-1;s>=0;--s){let n=e[s];switch(n.type){case"space":case"comment":case"newline":r-=n.source.length;continue}for(n=e[++s];n?.type==="space";)r+=n.source.length,n=e[++s];break}}return r}ql.emptyScalarPosition=mg});var Ul=S(Yi=>{"use strict";var gg=It(),yg=P(),bg=Il(),jl=Dl(),wg=ot(),vg=Bl(),Sg={composeNode:Fl,composeEmptyNode:Wi};function Fl(r,e,t,s){let n=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=kg(r,e,s),(a||c)&&s(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=jl.composeScalar(r,e,c,s),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=bg.composeCollection(Sg,r,e,t,s),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;s(e,"UNEXPECTED_TOKEN",u),l=Wi(r,e.offset,void 0,null,t,s),f=!1}}return a&&l.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),n&&r.options.stringKeys&&(!yg.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&s(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function Wi(r,e,t,s,{spaceBefore:n,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:vg.emptyScalarPosition(e,t,s),indent:-1,source:""},u=jl.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),n&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function kg({options:r},{offset:e,source:t,end:s},n){let i=new gg.Alias(t.substring(1));i.source===""&&n(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&n(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=wg.resolveEnd(s,o,r.strict,n);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}Yi.composeEmptyNode=Wi;Yi.composeNode=Fl});var Vl=S(Jl=>{"use strict";var xg=Ht(),Kl=Ul(),Eg=ot(),Tg=Xt();function Ag(r,e,{offset:t,start:s,value:n,end:i},o){let a=Object.assign({_directives:e},r),c=new xg.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Tg.resolveProps(s,{indicator:"doc-start",next:n??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,n&&(n.type==="block-map"||n.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=n?Kl.composeNode(l,n,f,o):Kl.composeEmptyNode(l,f.end,s,null,f,o);let u=c.contents.range[2],d=Eg.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Jl.composeDoc=Ag});var Gi=S(Hl=>{"use strict";var Pg=Nr("process"),Og=Ln(),Ng=Ht(),Zt=Qt(),Wl=P(),Cg=Vl(),Ig=ot();function er(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Yl(r){let e="",t=!1,s=!1;for(let n=0;n<r.length;++n){let i=r[n];switch(i[0]){case"#":e+=(e===""?"":s?`
104
+ `),e+=1,s=r[e+1];return t||(t=" "),{fold:t,offset:e}}var dg={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
105
+ `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function pg(r,e,t,s){let n=r.substr(e,t),o=n.length===t&&/^[0-9a-fA-F]+$/.test(n)?parseInt(n,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return s(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Ml.resolveFlowScalar=ag});var ql=v(Bl=>{"use strict";var Me=P(),Dl=_(),hg=Wi(),mg=Hi();function gg(r,e,t,s){let{value:n,type:i,comment:o,range:a}=e.type==="block-scalar"?hg.resolveBlockScalar(r,e,s):mg.resolveFlowScalar(e,r.options.strict,s),c=t?r.directives.tagName(t.source,u=>s(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[Me.SCALAR]:c?l=yg(r.schema,n,c,t,s):e.type==="scalar"?l=bg(r,n,e,s):l=r.schema[Me.SCALAR];let f;try{let u=l.resolve(n,d=>s(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=Me.isScalar(u)?u:new Dl.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);s(t??e,"TAG_RESOLVE_FAILED",d),f=new Dl.Scalar(n)}return f.range=a,f.source=n,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function yg(r,e,t,s,n){if(t==="!")return r[Me.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(n(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[Me.SCALAR])}function bg({atKey:r,directives:e,schema:t},s,n,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(s))||t[Me.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(s))??t[Me.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(n,"TAG_RESOLVE_FAILED",f,!0)}}return o}Bl.composeScalar=gg});var jl=v(Fl=>{"use strict";function wg(r,e,t){if(e){t??(t=e.length);for(let s=t-1;s>=0;--s){let n=e[s];switch(n.type){case"space":case"comment":case"newline":r-=n.source.length;continue}for(n=e[++s];n?.type==="space";)r+=n.source.length,n=e[++s];break}}return r}Fl.emptyScalarPosition=wg});var Kl=v(zi=>{"use strict";var vg=Rt(),Sg=P(),kg=_l(),Ul=ql(),xg=ot(),Eg=jl(),Ag={composeNode:Jl,composeEmptyNode:Gi};function Jl(r,e,t,s){let n=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Tg(r,e,s),(a||c)&&s(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=Ul.composeScalar(r,e,c,s),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=kg.composeCollection(Ag,r,e,t,s),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;s(e,"UNEXPECTED_TOKEN",u),l=Gi(r,e.offset,void 0,null,t,s),f=!1}}return a&&l.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),n&&r.options.stringKeys&&(!Sg.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&s(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function Gi(r,e,t,s,{spaceBefore:n,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Eg.emptyScalarPosition(e,t,s),indent:-1,source:""},u=Ul.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),n&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Tg({options:r},{offset:e,source:t,end:s},n){let i=new vg.Alias(t.substring(1));i.source===""&&n(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&n(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=xg.resolveEnd(s,o,r.strict,n);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}zi.composeEmptyNode=Gi;zi.composeNode=Jl});var Yl=v(Wl=>{"use strict";var Pg=Ht(),Vl=Kl(),Og=ot(),Ng=Xt();function Cg(r,e,{offset:t,start:s,value:n,end:i},o){let a=Object.assign({_directives:e},r),c=new Pg.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Ng.resolveProps(s,{indicator:"doc-start",next:n??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,n&&(n.type==="block-map"||n.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=n?Vl.composeNode(l,n,f,o):Vl.composeEmptyNode(l,f.end,s,null,f,o);let u=c.contents.range[2],d=Og.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Wl.composeDoc=Cg});var Xi=v(zl=>{"use strict";var Rg=Cr("process"),Ig=Dn(),_g=Ht(),Zt=Qt(),Hl=P(),Lg=Yl(),$g=ot();function er(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Gl(r){let e="",t=!1,s=!1;for(let n=0;n<r.length;++n){let i=r[n];switch(i[0]){case"#":e+=(e===""?"":s?`
106
106
 
107
107
  `:`
108
- `)+(i.substring(1)||" "),t=!0,s=!1;break;case"%":r[n+1]?.[0]!=="#"&&(n+=1),t=!1;break;default:t||(s=!0),t=!1}}return{comment:e,afterEmptyLine:s}}var Hi=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,s,n,i)=>{let o=er(t);i?this.warnings.push(new Zt.YAMLWarning(o,s,n)):this.errors.push(new Zt.YAMLParseError(o,s,n))},this.directives=new Og.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:s,afterEmptyLine:n}=Yl(this.prelude);if(s){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
109
- ${s}`:s;else if(n||e.directives.docStart||!i)e.commentBefore=s;else if(Wl.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Wl.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
108
+ `)+(i.substring(1)||" "),t=!0,s=!1;break;case"%":r[n+1]?.[0]!=="#"&&(n+=1),t=!1;break;default:t||(s=!0),t=!1}}return{comment:e,afterEmptyLine:s}}var Qi=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,s,n,i)=>{let o=er(t);i?this.warnings.push(new Zt.YAMLWarning(o,s,n)):this.errors.push(new Zt.YAMLParseError(o,s,n))},this.directives=new Ig.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:s,afterEmptyLine:n}=Gl(this.prelude);if(s){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
109
+ ${s}`:s;else if(n||e.directives.docStart||!i)e.commentBefore=s;else if(Hl.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Hl.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
110
110
  ${a}`:s}else{let o=i.commentBefore;i.commentBefore=o?`${s}
111
- ${o}`:s}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Yl(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,s=-1){for(let n of e)yield*this.next(n);yield*this.end(t,s)}*next(e){switch(Pg.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,s,n)=>{let i=er(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",s,n)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Cg.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,s=new Zt.YAMLParseError(er(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new Zt.YAMLParseError(er(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let t=Ig.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
112
- ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Zt.YAMLParseError(er(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let s=Object.assign({_directives:this.directives},this.options),n=new Ng.Document(void 0,s);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,t,t],this.decorate(n,!1),yield n}}};Hl.Composer=Hi});var Ql=S(xs=>{"use strict";var Rg=Ki(),_g=Vi(),Lg=Qt(),Gl=Mt();function $g(r,e=!0,t){if(r){let s=(n,i,o)=>{let a=typeof n=="number"?n:Array.isArray(n)?n[0]:n.offset;if(t)t(a,i,o);else throw new Lg.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return _g.resolveFlowScalar(r,e,s);case"block-scalar":return Rg.resolveBlockScalar({options:{strict:e}},r,s)}}return null}function Mg(r,e){let{implicitKey:t=!1,indent:s,inFlow:n=!1,offset:i=-1,type:o="PLAIN"}=e,a=Gl.stringifyString({type:o,value:r},{implicitKey:t,indent:s>0?" ".repeat(s):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:s,source:`
111
+ ${o}`:s}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Gl(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,s=-1){for(let n of e)yield*this.next(n);yield*this.end(t,s)}*next(e){switch(Rg.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,s,n)=>{let i=er(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",s,n)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Lg.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,s=new Zt.YAMLParseError(er(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new Zt.YAMLParseError(er(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let t=$g.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
112
+ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Zt.YAMLParseError(er(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let s=Object.assign({_directives:this.directives},this.options),n=new _g.Document(void 0,s);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,t,t],this.decorate(n,!1),yield n}}};zl.Composer=Qi});var Zl=v(Es=>{"use strict";var Mg=Wi(),Dg=Hi(),Bg=Qt(),Ql=Mt();function qg(r,e=!0,t){if(r){let s=(n,i,o)=>{let a=typeof n=="number"?n:Array.isArray(n)?n[0]:n.offset;if(t)t(a,i,o);else throw new Bg.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Dg.resolveFlowScalar(r,e,s);case"block-scalar":return Mg.resolveBlockScalar({options:{strict:e}},r,s)}}return null}function Fg(r,e){let{implicitKey:t=!1,indent:s,inFlow:n=!1,offset:i=-1,type:o="PLAIN"}=e,a=Ql.stringifyString({type:o,value:r},{implicitKey:t,indent:s>0?" ".repeat(s):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:s,source:`
113
113
  `}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
114
114
  `),f=a.substring(0,l),u=a.substring(l+1)+`
115
- `,d=[{type:"block-scalar-header",offset:i,indent:s,source:f}];return zl(d,c)||d.push({type:"newline",offset:-1,indent:s,source:`
116
- `}),{type:"block-scalar",offset:i,indent:s,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:s,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:s,source:a,end:c};default:return{type:"scalar",offset:i,indent:s,source:a,end:c}}}function Dg(r,e,t={}){let{afterKey:s=!1,implicitKey:n=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Gl.stringifyString({type:o,value:e},{implicitKey:n||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":qg(r,c);break;case'"':zi(r,c,"double-quoted-scalar");break;case"'":zi(r,c,"single-quoted-scalar");break;default:zi(r,c,"scalar")}}function qg(r,e){let t=e.indexOf(`
115
+ `,d=[{type:"block-scalar-header",offset:i,indent:s,source:f}];return Xl(d,c)||d.push({type:"newline",offset:-1,indent:s,source:`
116
+ `}),{type:"block-scalar",offset:i,indent:s,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:s,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:s,source:a,end:c};default:return{type:"scalar",offset:i,indent:s,source:a,end:c}}}function jg(r,e,t={}){let{afterKey:s=!1,implicitKey:n=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Ql.stringifyString({type:o,value:e},{implicitKey:n||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":Ug(r,c);break;case'"':Zi(r,c,"double-quoted-scalar");break;case"'":Zi(r,c,"single-quoted-scalar");break;default:Zi(r,c,"scalar")}}function Ug(r,e){let t=e.indexOf(`
117
117
  `),s=e.substring(0,t),n=e.substring(t+1)+`
118
- `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=s,r.source=n}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:s}];zl(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
119
- `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:n})}}function zl(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function zi(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let s=r.props.slice(1),n=e.length;r.props[0].type==="block-scalar-header"&&(n-=r.props[0].source.length);for(let i of s)i.offset+=n;delete r.props,Object.assign(r,{type:t,source:e,end:s});break}case"block-map":case"block-seq":{let n={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
120
- `};delete r.items,Object.assign(r,{type:t,source:e,end:[n]});break}default:{let s="indent"in r?r.indent:-1,n="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:s,source:e,end:n})}}}xs.createScalarToken=Mg;xs.resolveAsScalar=$g;xs.setScalarValue=Dg});var Zl=S(Xl=>{"use strict";var Bg=r=>"type"in r?Ts(r):Es(r);function Ts(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=Ts(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=Es(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=Es(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=Es(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function Es({start:r,key:e,sep:t,value:s}){let n="";for(let i of r)n+=i.source;if(e&&(n+=Ts(e)),t)for(let i of t)n+=i.source;return s&&(n+=Ts(s)),n}Xl.stringify=Bg});var su=S(ru=>{"use strict";var Qi=Symbol("break visit"),jg=Symbol("skip children"),eu=Symbol("remove item");function De(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),tu(Object.freeze([]),r,e)}De.BREAK=Qi;De.SKIP=jg;De.REMOVE=eu;De.itemAtPath=(r,e)=>{let t=r;for(let[s,n]of e){let i=t?.[s];if(i&&"items"in i)t=i.items[n];else return}return t};De.parentCollection=(r,e)=>{let t=De.itemAtPath(r,e.slice(0,-1)),s=e[e.length-1][0],n=t?.[s];if(n&&"items"in n)return n;throw new Error("Parent collection not found")};function tu(r,e,t){let s=t(e,r);if(typeof s=="symbol")return s;for(let n of["key","value"]){let i=e[n];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=tu(Object.freeze(r.concat([[n,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===Qi)return Qi;a===eu&&(i.items.splice(o,1),o-=1)}}typeof s=="function"&&n==="key"&&(s=s(e,r))}}return typeof s=="function"?s(e,r):s}ru.visit=De});var As=S(V=>{"use strict";var Xi=Ql(),Fg=Zl(),Ug=su(),Zi="\uFEFF",eo="",to="",ro="",Kg=r=>!!r&&"items"in r,Jg=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function Vg(r){switch(r){case Zi:return"<BOM>";case eo:return"<DOC>";case to:return"<FLOW_END>";case ro:return"<SCALAR>";default:return JSON.stringify(r)}}function Wg(r){switch(r){case Zi:return"byte-order-mark";case eo:return"doc-mode";case to:return"flow-error-end";case ro:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
118
+ `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=s,r.source=n}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:s}];Xl(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
119
+ `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:n})}}function Xl(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function Zi(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let s=r.props.slice(1),n=e.length;r.props[0].type==="block-scalar-header"&&(n-=r.props[0].source.length);for(let i of s)i.offset+=n;delete r.props,Object.assign(r,{type:t,source:e,end:s});break}case"block-map":case"block-seq":{let n={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
120
+ `};delete r.items,Object.assign(r,{type:t,source:e,end:[n]});break}default:{let s="indent"in r?r.indent:-1,n="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:s,source:e,end:n})}}}Es.createScalarToken=Fg;Es.resolveAsScalar=qg;Es.setScalarValue=jg});var tu=v(eu=>{"use strict";var Jg=r=>"type"in r?Ts(r):As(r);function Ts(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=Ts(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=As(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=As(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=As(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function As({start:r,key:e,sep:t,value:s}){let n="";for(let i of r)n+=i.source;if(e&&(n+=Ts(e)),t)for(let i of t)n+=i.source;return s&&(n+=Ts(s)),n}eu.stringify=Jg});var iu=v(nu=>{"use strict";var eo=Symbol("break visit"),Kg=Symbol("skip children"),ru=Symbol("remove item");function De(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),su(Object.freeze([]),r,e)}De.BREAK=eo;De.SKIP=Kg;De.REMOVE=ru;De.itemAtPath=(r,e)=>{let t=r;for(let[s,n]of e){let i=t?.[s];if(i&&"items"in i)t=i.items[n];else return}return t};De.parentCollection=(r,e)=>{let t=De.itemAtPath(r,e.slice(0,-1)),s=e[e.length-1][0],n=t?.[s];if(n&&"items"in n)return n;throw new Error("Parent collection not found")};function su(r,e,t){let s=t(e,r);if(typeof s=="symbol")return s;for(let n of["key","value"]){let i=e[n];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=su(Object.freeze(r.concat([[n,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===eo)return eo;a===ru&&(i.items.splice(o,1),o-=1)}}typeof s=="function"&&n==="key"&&(s=s(e,r))}}return typeof s=="function"?s(e,r):s}nu.visit=De});var Ps=v(K=>{"use strict";var to=Zl(),Vg=tu(),Wg=iu(),ro="\uFEFF",so="",no="",io="",Yg=r=>!!r&&"items"in r,Hg=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function Gg(r){switch(r){case ro:return"<BOM>";case so:return"<DOC>";case no:return"<FLOW_END>";case io:return"<SCALAR>";default:return JSON.stringify(r)}}function zg(r){switch(r){case ro:return"byte-order-mark";case so:return"doc-mode";case no:return"flow-error-end";case io:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
121
121
  `:case`\r
122
- `: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(r[0]){case" ":case" ":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}V.createScalarToken=Xi.createScalarToken;V.resolveAsScalar=Xi.resolveAsScalar;V.setScalarValue=Xi.setScalarValue;V.stringify=Fg.stringify;V.visit=Ug.visit;V.BOM=Zi;V.DOCUMENT=eo;V.FLOW_END=to;V.SCALAR=ro;V.isCollection=Kg;V.isScalar=Jg;V.prettyToken=Vg;V.tokenType=Wg});var io=S(iu=>{"use strict";var tr=As();function ee(r){switch(r){case void 0:case" ":case`
123
- `:case"\r":case" ":return!0;default:return!1}}var nu=new Set("0123456789ABCDEFabcdef"),Yg=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Ps=new Set(",[]{}"),Hg=new Set(` ,[]{}
124
- \r `),so=r=>!r||Hg.has(r),no=class{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(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let s=this.next??"stream";for(;s&&(t||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
122
+ `: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(r[0]){case" ":case" ":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}K.createScalarToken=to.createScalarToken;K.resolveAsScalar=to.resolveAsScalar;K.setScalarValue=to.setScalarValue;K.stringify=Vg.stringify;K.visit=Wg.visit;K.BOM=ro;K.DOCUMENT=so;K.FLOW_END=no;K.SCALAR=io;K.isCollection=Yg;K.isScalar=Hg;K.prettyToken=Gg;K.tokenType=zg});var co=v(au=>{"use strict";var tr=Ps();function Z(r){switch(r){case void 0:case" ":case`
123
+ `:case"\r":case" ":return!0;default:return!1}}var ou=new Set("0123456789ABCDEFabcdef"),Qg=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Os=new Set(",[]{}"),Xg=new Set(` ,[]{}
124
+ \r `),oo=r=>!r||Xg.has(r),ao=class{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(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let s=this.next??"stream";for(;s&&(t||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
125
125
  `?!0:t==="\r"?this.buffer[e+1]===`
126
126
  `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let s=0;for(;t===" ";)t=this.buffer[++s+e];if(t==="\r"){let n=this.buffer[s+e+1];if(n===`
127
127
  `||!n&&!this.atEnd)return e+s+1}return t===`
128
- `||s>=this.indentNext||!t&&!this.atEnd?e+s:-1}if(t==="-"||t==="."){let s=this.buffer.substr(e,3);if((s==="---"||s==="...")&&ee(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
129
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){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 e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===tr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,s=e.indexOf("#");for(;s!==-1;){let i=e[s-1];if(i===" "||i===" "){t=s-1;break}else s=e.indexOf("#",s+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let n=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-n),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield tr.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&ee(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!ee(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&ee(t)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);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(so),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,s=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=s=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let n=this.getLine();if(n===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&n[0]!=="#"||s===0&&(n.startsWith("---")||n.startsWith("..."))&&ee(n[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(n[0]==="]"||n[0]==="}")))return this.flowLevel=0,yield tr.FLOW_END,yield*this.parseLineStart();let i=0;for(;n[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),n[i]){case void 0:return"flow";case"#":return yield*this.pushCount(n.length-i),"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(so),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||ee(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let s=this.buffer.substring(0,t),n=s.indexOf(`
128
+ `||s>=this.indentNext||!t&&!this.atEnd?e+s:-1}if(t==="-"||t==="."){let s=this.buffer.substr(e,3);if((s==="---"||s==="...")&&Z(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
129
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){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 e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===tr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,s=e.indexOf("#");for(;s!==-1;){let i=e[s-1];if(i===" "||i===" "){t=s-1;break}else s=e.indexOf("#",s+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let n=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-n),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield tr.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&Z(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Z(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Z(t)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);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(oo),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,s=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=s=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let n=this.getLine();if(n===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&n[0]!=="#"||s===0&&(n.startsWith("---")||n.startsWith("..."))&&Z(n[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(n[0]==="]"||n[0]==="}")))return this.flowLevel=0,yield tr.FLOW_END,yield*this.parseLineStart();let i=0;for(;n[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),n[i]){case void 0:return"flow";case"#":return yield*this.pushCount(n.length-i),"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(oo),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||Z(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let s=this.buffer.substring(0,t),n=s.indexOf(`
130
130
  `,this.pos);if(n!==-1){for(;n!==-1;){let i=this.continueScalar(n+1);if(i===-1)break;n=s.indexOf(`
131
- `,i)}n!==-1&&(t=n-(s[n-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>ee(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,s;e:for(let i=this.pos;s=this.buffer[i];++i)switch(s){case" ":t+=1;break;case`
131
+ `,i)}n!==-1&&(t=n-(s[n-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>Z(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,s;e:for(let i=this.pos;s=this.buffer[i];++i)switch(s){case" ":t+=1;break;case`
132
132
  `:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
133
133
  `)break}default:break e}if(!s&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`
134
134
  `,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let n=e+1;for(s=this.buffer[n];s===" ";)s=this.buffer[++n];if(s===" "){for(;s===" "||s===" "||s==="\r"||s===`
135
135
  `;)s=this.buffer[++n];e=n-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`
136
- `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield tr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,s=this.pos-1,n;for(;n=this.buffer[++s];)if(n===":"){let i=this.buffer[s+1];if(ee(i)||e&&Ps.has(i))break;t=s}else if(ee(n)){let i=this.buffer[s+1];if(n==="\r"&&(i===`
136
+ `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield tr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,s=this.pos-1,n;for(;n=this.buffer[++s];)if(n===":"){let i=this.buffer[s+1];if(Z(i)||e&&Os.has(i))break;t=s}else if(Z(n)){let i=this.buffer[s+1];if(n==="\r"&&(i===`
137
137
  `?(s+=1,n=`
138
- `,i=this.buffer[s+1]):t=s),i==="#"||e&&Ps.has(i))break;if(n===`
139
- `){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(e&&Ps.has(n))break;t=s}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield tr.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let s=this.buffer.slice(this.pos,e);return s?(yield s,this.pos+=s.length,s.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(so))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(ee(t)||e&&Ps.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!ee(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Yg.has(t))t=this.buffer[++e];else if(t==="%"&&nu.has(this.buffer[e+1])&&nu.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
138
+ `,i=this.buffer[s+1]):t=s),i==="#"||e&&Os.has(i))break;if(n===`
139
+ `){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(e&&Os.has(n))break;t=s}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield tr.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let s=this.buffer.slice(this.pos,e);return s?(yield s,this.pos+=s.length,s.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(oo))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Z(t)||e&&Os.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Z(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Qg.has(t))t=this.buffer[++e];else if(t==="%"&&ou.has(this.buffer[e+1])&&ou.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
140
140
  `?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
141
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,s;do s=this.buffer[++t];while(s===" "||e&&s===" ");let n=t-this.pos;return n>0&&(yield this.buffer.substr(this.pos,n),this.pos=t),n}*pushUntil(e){let t=this.pos,s=this.buffer[t];for(;!e(s);)s=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};iu.Lexer=no});var ao=S(ou=>{"use strict";var oo=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,s=this.lineStarts.length;for(;t<s;){let i=t+s>>1;this.lineStarts[i]<e?t=i+1:s=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let n=this.lineStarts[t-1];return{line:t,col:e-n+1}}}};ou.LineCounter=oo});var lo=S(fu=>{"use strict";var Gg=Nr("process"),au=As(),zg=io();function Te(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function cu(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function uu(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function Os(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function at(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function lu(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Te(e.start,"explicit-key-ind")&&!Te(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,uu(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var co=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new zg.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(e,t))yield*this.next(s);t||(yield*this.end())}*next(e){if(this.source=e,Gg.env.LOG_TOKENS&&console.log("|",au.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=au.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let s=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let s=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in s?s.indent:0:t.type==="flow-collection"&&s.type==="document"&&(t.indent=0),t.type==="flow-collection"&&lu(t),s.type){case"document":s.value=t;break;case"block-scalar":s.props.push(t);break;case"block-map":{let n=s.items[s.items.length-1];if(n.value){s.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case"block-seq":{let n=s.items[s.items.length-1];n.value?s.items.push({start:[],value:t}):n.value=t;break}case"flow-collection":{let n=s.items[s.items.length-1];!n||n.value?s.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&cu(n.start)===-1&&(t.indent===0||n.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(s.type==="document"?s.end=n.start:s.items.push({start:n.start}),t.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 e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{cu(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=Os(this.peek(2)),s=at(t),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
141
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,s;do s=this.buffer[++t];while(s===" "||e&&s===" ");let n=t-this.pos;return n>0&&(yield this.buffer.substr(this.pos,n),this.pos=t),n}*pushUntil(e){let t=this.pos,s=this.buffer[t];for(;!e(s);)s=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};au.Lexer=ao});var uo=v(cu=>{"use strict";var lo=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,s=this.lineStarts.length;for(;t<s;){let i=t+s>>1;this.lineStarts[i]<e?t=i+1:s=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let n=this.lineStarts[t-1];return{line:t,col:e-n+1}}}};cu.LineCounter=lo});var po=v(pu=>{"use strict";var Zg=Cr("process"),lu=Ps(),ey=co();function Ae(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function uu(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function du(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function Ns(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function at(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function fu(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Ae(e.start,"explicit-key-ind")&&!Ae(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,du(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var fo=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new ey.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(e,t))yield*this.next(s);t||(yield*this.end())}*next(e){if(this.source=e,Zg.env.LOG_TOKENS&&console.log("|",lu.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=lu.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let s=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let s=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in s?s.indent:0:t.type==="flow-collection"&&s.type==="document"&&(t.indent=0),t.type==="flow-collection"&&fu(t),s.type){case"document":s.value=t;break;case"block-scalar":s.props.push(t);break;case"block-map":{let n=s.items[s.items.length-1];if(n.value){s.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case"block-seq":{let n=s.items[s.items.length-1];n.value?s.items.push({start:[],value:t}):n.value=t;break}case"flow-collection":{let n=s.items[s.items.length-1];!n||n.value?s.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&uu(n.start)===-1&&(t.indent===0||n.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(s.type==="document"?s.end=n.start:s.items.push({start:n.start}),t.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 e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{uu(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=Ns(this.peek(2)),s=at(t),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
142
142
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
143
- `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let s="end"in t.value?t.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let s=!this.onKeyLine&&this.indent===e.indent,n=s&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(n&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":n||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):n||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):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(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Te(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(uu(t.key)&&!Te(t.sep,"newline")){let o=at(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Te(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=at(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||n?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Te(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);n||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Te(t.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 s&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let s="end"in t.value?t.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Te(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let s=this.startBlockValue(e);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let s=this.startBlockValue(e);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===e.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let n=Os(s),i=at(n);lu(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
143
+ `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let s="end"in t.value?t.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let s=!this.onKeyLine&&this.indent===e.indent,n=s&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(n&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":n||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):n||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):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(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ae(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(du(t.key)&&!Ae(t.sep,"newline")){let o=at(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Ae(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=at(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||n?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Ae(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);n||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Ae(t.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 s&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let s="end"in t.value?t.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Ae(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let s=this.startBlockValue(e);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let s=this.startBlockValue(e);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===e.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let n=Ns(s),i=at(n);fu(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
144
144
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
145
- `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){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 t=Os(e),s=at(t);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Os(e),s=at(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){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;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};fu.Parser=co});var gu=S(sr=>{"use strict";var du=Gi(),Qg=Ht(),rr=Qt(),Xg=Yn(),Zg=P(),ey=ao(),pu=lo();function hu(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new ey.LineCounter||null,prettyErrors:e}}function ty(r,e={}){let{lineCounter:t,prettyErrors:s}=hu(e),n=new pu.Parser(t?.addNewLine),i=new du.Composer(e),o=Array.from(i.compose(n.parse(r)));if(s&&t)for(let a of o)a.errors.forEach(rr.prettifyError(r,t)),a.warnings.forEach(rr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function mu(r,e={}){let{lineCounter:t,prettyErrors:s}=hu(e),n=new pu.Parser(t?.addNewLine),i=new du.Composer(e),o=null;for(let a of i.compose(n.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new rr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&t&&(o.errors.forEach(rr.prettifyError(r,t)),o.warnings.forEach(rr.prettifyError(r,t))),o}function ry(r,e,t){let s;typeof e=="function"?s=e:t===void 0&&e&&typeof e=="object"&&(t=e);let n=mu(r,t);if(!n)return null;if(n.warnings.forEach(i=>Xg.warn(n.options.logLevel,i)),n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];n.errors=[]}return n.toJS(Object.assign({reviver:s},t))}function sy(r,e,t){let s=null;if(typeof e=="function"||Array.isArray(e)?s=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let n=Math.round(t);t=n<1?void 0:n>8?{indent:8}:{indent:n}}if(r===void 0){let{keepUndefined:n}=t??e??{};if(!n)return}return Zg.isDocument(r)&&!s?r.toString(t):new Qg.Document(r,s,t).toString(t)}sr.parse=ry;sr.parseAllDocuments=ty;sr.parseDocument=mu;sr.stringify=sy});var bu=S(C=>{"use strict";var ny=Gi(),iy=Ht(),oy=Ni(),uo=Qt(),ay=It(),Ae=P(),cy=Se(),ly=_(),uy=xe(),fy=Ee(),dy=As(),py=io(),hy=ao(),my=lo(),Ns=gu(),yu=Pt();C.Composer=ny.Composer;C.Document=iy.Document;C.Schema=oy.Schema;C.YAMLError=uo.YAMLError;C.YAMLParseError=uo.YAMLParseError;C.YAMLWarning=uo.YAMLWarning;C.Alias=ay.Alias;C.isAlias=Ae.isAlias;C.isCollection=Ae.isCollection;C.isDocument=Ae.isDocument;C.isMap=Ae.isMap;C.isNode=Ae.isNode;C.isPair=Ae.isPair;C.isScalar=Ae.isScalar;C.isSeq=Ae.isSeq;C.Pair=cy.Pair;C.Scalar=ly.Scalar;C.YAMLMap=uy.YAMLMap;C.YAMLSeq=fy.YAMLSeq;C.CST=dy;C.Lexer=py.Lexer;C.LineCounter=hy.LineCounter;C.Parser=my.Parser;C.parse=Ns.parse;C.parseAllDocuments=Ns.parseAllDocuments;C.parseDocument=Ns.parseDocument;C.stringify=Ns.stringify;C.visit=yu.visit;C.visitAsync=yu.visitAsync});function yy(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function by(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(gy);return t?At(e,t[1])!==null:!1}function wy(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=wu.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function vu(r){return yy(r)||by(r)||wy(r)}var wu,gy,fo=N(()=>{Ca();wu=Id(bu(),1),gy=/<([a-zA-Z_][\w.-]*)/});function vy(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
146
- `),t=e.trim();if(vu(t))return[{text:t,startLine:1,endLine:e.split(`
145
+ `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){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 t=Ns(e),s=at(t);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Ns(e),s=at(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){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;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};pu.Parser=fo});var bu=v(sr=>{"use strict";var hu=Xi(),ty=Ht(),rr=Qt(),ry=zn(),sy=P(),ny=uo(),mu=po();function gu(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new ny.LineCounter||null,prettyErrors:e}}function iy(r,e={}){let{lineCounter:t,prettyErrors:s}=gu(e),n=new mu.Parser(t?.addNewLine),i=new hu.Composer(e),o=Array.from(i.compose(n.parse(r)));if(s&&t)for(let a of o)a.errors.forEach(rr.prettifyError(r,t)),a.warnings.forEach(rr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function yu(r,e={}){let{lineCounter:t,prettyErrors:s}=gu(e),n=new mu.Parser(t?.addNewLine),i=new hu.Composer(e),o=null;for(let a of i.compose(n.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new rr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&t&&(o.errors.forEach(rr.prettifyError(r,t)),o.warnings.forEach(rr.prettifyError(r,t))),o}function oy(r,e,t){let s;typeof e=="function"?s=e:t===void 0&&e&&typeof e=="object"&&(t=e);let n=yu(r,t);if(!n)return null;if(n.warnings.forEach(i=>ry.warn(n.options.logLevel,i)),n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];n.errors=[]}return n.toJS(Object.assign({reviver:s},t))}function ay(r,e,t){let s=null;if(typeof e=="function"||Array.isArray(e)?s=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let n=Math.round(t);t=n<1?void 0:n>8?{indent:8}:{indent:n}}if(r===void 0){let{keepUndefined:n}=t??e??{};if(!n)return}return sy.isDocument(r)&&!s?r.toString(t):new ty.Document(r,s,t).toString(t)}sr.parse=oy;sr.parseAllDocuments=iy;sr.parseDocument=yu;sr.stringify=ay});var vu=v(N=>{"use strict";var cy=Xi(),ly=Ht(),uy=Ii(),ho=Qt(),fy=Rt(),Te=P(),dy=Se(),py=_(),hy=xe(),my=Ee(),gy=Ps(),yy=co(),by=uo(),wy=po(),Cs=bu(),wu=Pt();N.Composer=cy.Composer;N.Document=ly.Document;N.Schema=uy.Schema;N.YAMLError=ho.YAMLError;N.YAMLParseError=ho.YAMLParseError;N.YAMLWarning=ho.YAMLWarning;N.Alias=fy.Alias;N.isAlias=Te.isAlias;N.isCollection=Te.isCollection;N.isDocument=Te.isDocument;N.isMap=Te.isMap;N.isNode=Te.isNode;N.isPair=Te.isPair;N.isScalar=Te.isScalar;N.isSeq=Te.isSeq;N.Pair=dy.Pair;N.Scalar=py.Scalar;N.YAMLMap=hy.YAMLMap;N.YAMLSeq=my.YAMLSeq;N.CST=gy;N.Lexer=yy.Lexer;N.LineCounter=by.LineCounter;N.Parser=wy.Parser;N.parse=Cs.parse;N.parseAllDocuments=Cs.parseAllDocuments;N.parseDocument=Cs.parseDocument;N.stringify=Cs.stringify;N.visit=wu.visit;N.visitAsync=wu.visitAsync});function Sy(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function ky(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(vy);return t?Tt(e,t[1])!==null:!1}function xy(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Su.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function ku(r){return Sy(r)||ky(r)||xy(r)}var Su,vy,mo=O(()=>{Ia();Su=$d(vu(),1),vy=/<([a-zA-Z_][\w.-]*)/});function Ey(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
146
+ `),t=e.trim();if(ku(t))return[{text:t,startLine:1,endLine:e.split(`
147
147
  `).length}];let s=e.split(`
148
148
  `),n=[],i=0,o=-1,a=0,c=()=>{if(o>=i){let l=s.slice(i,o+1).join(`
149
- `).trim();l&&n.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<s.length;l++)s[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),n}function po(r){return vy(r).map(e=>e.text)}var Su=N(()=>{fo()});var Cs=N(()=>{Cr();va();Sa();xa();fo();Su();Ir()});function Is(r){return{...wa(r),server:r.files.get("server.ts")??""}}var ho=N(()=>{Cs();Cs();Cs()});import{join as Io,resolve as sb}from"path";import{homedir as nb}from"os";function zs(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Io(r,".."):Io(nb(),".typebulb")}function Fe(){return process.env.TYPEBULB_SERVERS_DIR||Io(zs(),"servers")}function F(r){let e=sb(r);return(process.platform==="win32"?e.toLowerCase():e).replace(/\\/g,"/")}function Qu(r,e){let t=F(r),s=F(e);return t.startsWith(s.endsWith("/")?s:s+"/")?!t.includes("/node_modules/"):!1}var wr=N(()=>{});import{readFileSync as ib,writeFileSync as ob,mkdirSync as ab}from"fs";import{join as cb}from"path";function Xu(){return cb(zs(),"trust.json")}function Ro(){try{let r=JSON.parse(ib(Xu(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function lb(r){ab(zs(),{recursive:!0}),ob(Xu(),JSON.stringify([...r]))}function Ue(r){return Ro().has(F(r))}function ht(r,e){let t=Ro(),s=F(r);(e?t.has(s):!t.has(s))||(e?t.add(s):t.delete(s),lb(t))}function _o(){return[...Ro()]}var vr=N(()=>{wr()});function yt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var en=N(()=>{});import{spawn as df}from"child_process";import{readdir as Nb,readFile as mf,writeFile as gf,unlink as kr,mkdir as Cb}from"fs/promises";import{mkdirSync as Ib,writeFileSync as pf,appendFileSync as Rb,readFileSync as yf}from"fs";import*as se from"path";import{fileURLToPath as _b}from"url";function Do(r){return se.join(Fe(),`${r}.json`)}function xr(r){return se.join(Fe(),`${r}.log`)}function tn(r){let e=xr(r);try{Ib(Fe(),{recursive:!0}),pf(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),s=process.stderr.write.bind(process.stderr),n=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(Rb(e,c),n+=c.length,n>2*hf){let l=yf(e),f=l.subarray(Math.max(0,l.length-hf));pf(e,f),n=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),s(a,...c))),()=>{process.stdout.write=t,process.stderr.write=s}}function bt(r,e=0){try{let t=yf(xr(r)),s=e>=0&&e<=t.length?e:0;return{text:t.subarray(s).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Lb(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function rn(r){await Cb(Fe(),{recursive:!0}),await gf(Do(r.pid),JSON.stringify(r))}async function bf(r,e){let t=Do(r);try{let s=JSON.parse(await mf(t,"utf8"));if(s.denied===e)return;s.denied=e,await gf(t,JSON.stringify(s))}catch{}}async function Er(r){await kr(Do(r)).catch(()=>{}),await kr(xr(r)).catch(()=>{})}async function K(r){let e;try{e=await Nb(Fe())}catch{return[]}let t=[];return await Promise.all(e.map(async n=>{if(!n.endsWith(".json"))return;let i=se.join(Fe(),n),o;try{o=JSON.parse(await mf(i,"utf8"))}catch{await kr(i).catch(()=>{});return}o&&typeof o.pid=="number"&&Lb(o.pid)?t.push(o):(await kr(i).catch(()=>{}),o?.pid&&await kr(xr(o.pid)).catch(()=>{}))})),(r?t.filter(n=>n.agent==null&&Qu(n.file,r)):t).sort((n,i)=>n.startedAt-i.startedAt)}async function wt(r){try{process.kill(r,"SIGTERM")}catch{}await Er(r)}function Mb(){return se.join(se.dirname(_b(import.meta.url)),"index.js")}function Db(r,e={}){return{command:process.execPath,args:[Mb(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}async function sn(r,e={}){let t=e.cwd??process.cwd(),s=se.resolve(t,r),n=(await K()).find(l=>l.file===s);if(n)return n;let{command:i,args:o}=Db(r,e);(process.platform==="win32"?df("cmd",["/c","start","","/b",i,...o],{cwd:t,stdio:"ignore",windowsHide:!0}):df(i,o,{cwd:t,detached:!0,stdio:"ignore"})).unref();let c=Date.now()+2e4;for(;Date.now()<c;){await $b(150);let l=(await K()).find(f=>f.file===s);if(l)return l}throw new Error(`Launched ${se.basename(r)} but it did not register within 20s.`)}var hf,$b,Ve=N(()=>{wr();hf=1e6;$b=r=>new Promise(e=>setTimeout(e,r))});function gn(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function Go(r){return(gn(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var zo=N(()=>{});import{readdirSync as ow,readFileSync as aw,statSync as cw}from"fs";import{join as Vf,basename as lw}from"path";function Wf(r,e,t){if(e>8)return t;let s;try{s=ow(r,{withFileTypes:!0})}catch{return t}for(let n of s)if(n.isDirectory()){if(n.name.startsWith(".")||n.name==="node_modules")continue;Wf(Vf(r,n.name),e+1,t)}else n.isFile()&&n.name.endsWith(".bulb.md")&&t.push(Vf(r,n.name));return t}function Qo(r){return Wf(r,0,[]).map(e=>{let t=0;try{t=cw(e).mtimeMs}catch{}let s;try{s=gn(aw(e,"utf8").slice(0,1024))}catch{}return{path:e,name:s??lw(e).replace(/\.bulb\.md$/,""),mtime:t}})}var Yf=N(()=>{zo()});import{readFile as uw}from"fs/promises";async function Xo(r){try{let e=Rr(await uw(r,"utf-8"));return e?yt(Is(e)):void 0}catch{return}}var Hf=N(()=>{ho();en()});import{spawn as fw}from"child_process";import{basename as dw}from"path";function pw(){return process.env.TYPEBULB_EDITOR||"code"}function mw(r,e,t){return t==null?[e]:hw.test(dw(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function gw(r,e){let t=pw();return{command:t,args:mw(t,r,e)}}function Zo(r,e){let{command:t,args:s}=gw(r,e),n=fw(t,s,{shell:!0,detached:!0,stdio:"ignore"});n.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),n.unref()}var hw,Gf=N(()=>{hw=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var zf=N(()=>{Ve();Yf();Hf();zo();Gf();vr()});var yn,Qf=N(()=>{yn=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});var gd={};Nd(gd,{attach:()=>Kw,blockToMarkdown:()=>ia,breakout:()=>Vw,capText:()=>Pr,info:()=>Mw,isHiddenTurn:()=>oa,launchBulb:()=>Gw,listBreakouts:()=>Ww,listBulbFiles:()=>Hw,listSessions:()=>Uw,logEmbedError:()=>Bw,openFile:()=>Jw,poll:()=>Dw,predictTrustOf:()=>zw,readBulbLog:()=>Xw,setBulbTrust:()=>Qw,stopBreakout:()=>Yw});import{existsSync as Et,openSync as td,readSync as rd,closeSync as sd,statSync as Ge,readdirSync as ra,watchFile as yw,unwatchFile as Xf,mkdirSync as nd,writeFileSync as id,readFileSync as sa,unlinkSync as bw,rmSync as ww}from"fs";import{join as B}from"path";import{homedir as vw}from"os";function od(r){return r?.message??String(r)}function Sw(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function ad(r){let e=na(r);if(!Et(e))return[];let t;try{t=ra(e)}catch{return[]}let s=[];for(let n of t){if(!n.endsWith(".jsonl"))continue;let i=B(e,n);try{let o=Ge(i);o.isFile()&&s.push({sessionId:n.slice(0,-6),file:i,mtime:o.mtimeMs})}catch{}}return s}function wn(r){return B(r,Ew)}function ld(r,e){return B(wn(r),`${e}.lock`)}function Aw(r,e){try{let t=ld(r,e);if(Date.now()-Ge(t).mtimeMs>=cd)return!1;try{if(parseInt(sa(t,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function ud(r,e){if(e)try{nd(wn(r),{recursive:!0}),id(ld(r,e),String(process.pid))}catch(t){console.error("[lock] claim failed:",od(t))}}function Pw(r){try{ww(B(r,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function Ow(r){let e=wn(r);if(!Et(e))return;let t;try{t=ra(e)}catch{return}let s=Date.now();for(let n of t){if(!n.endsWith(".lock"))continue;let i=B(e,n);try{let o=Ge(i);s-o.mtimeMs>Tw&&bw(i)}catch{}}}function ia(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?`![pasted image](data:${e.media_type||"image/png"};base64,${e.data})`:""}function Pr(r){return r.length>ea?r.slice(0,ea)+`
150
- \u2026[${r.length-ea} more characters truncated]`:r}function ta(r){return typeof r=="string"?Pr(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return Pr(e);let t=e;return typeof t?.text=="string"?Pr(t.text):t?.content!=null?ta(t.content):ia(t)}).join(`
151
- `):r==null?"":Pr(JSON.stringify(r))}function fd(r){try{return Ge(r),!1}catch(e){return e.code==="ENOENT"}}function dd(){let r=Y;if(r.file&&!fd(r.file)){ud(r.cwd,r.sessionId);return}let e=Nw(r);e&&pd(e)}function Nw(r){if(!r.everAttached)return Cw(r.cwd)??Iw(r.cwd,()=>!0)}function Cw(r){let e=wn(r);if(!Et(e))return;let t;try{t=ra(e)}catch{return}let s;for(let i of t)if(i.endsWith(".lock"))try{let o=Ge(B(e,i));if(Date.now()-o.mtimeMs>=cd||parseInt(sa(B(e,i),"utf8").trim(),10)!==process.pid)continue;(!s||o.mtimeMs>s.mtime)&&(s={sessionId:i.slice(0,-5),mtime:o.mtimeMs})}catch{}if(!s)return;let n=B(na(r),`${s.sessionId}.jsonl`);if(!fd(n))return{sessionId:s.sessionId,file:n,mtime:s.mtime}}function Iw(r,e){return ad(r).sort((t,s)=>s.mtime-t.mtime).find(t=>!Aw(r,t.sessionId)&&e(t))}function pd(r){let e=Y;if(e.file)try{Xf(e.file)}catch{}e.file=r.file,e.sessionId=r.sessionId,e.everAttached=!0,e.partial="",e.offset=0,e.latest={in:0,out:0,cached:0,cacheCreate:0},e.entries=new Map,e.chainLastUuid=void 0,e.buffer.push({type:"cleared"}),e.buffer.push({type:"session",sessionId:r.sessionId}),ud(e.cwd,r.sessionId),Zf();try{Xf(r.file)}catch{}yw(r.file,{interval:200},()=>Zf())}function Zf(){let r=Y;if(!r.file)return;let e;try{e=Ge(r.file).size}catch{return}if(e<=r.offset)return;let t;try{t=td(r.file,"r")}catch{return}try{let c=e-r.offset,l=Buffer.alloc(c),f=0;for(;f<c;){let u=rd(t,l,f,c-f,r.offset+f);if(!u)break;f+=u}r.offset+=f,r.partial+=l.subarray(0,f).toString("utf8")}finally{sd(t)}let s,n;for(;(n=r.partial.indexOf(`
152
- `))>=0;){let c=r.partial.slice(0,n);if(r.partial=r.partial.slice(n+1),!c.trim())continue;let l;try{l=JSON.parse(c)}catch{continue}l&&l.uuid&&(r.entries.set(l.uuid,l),l.isSidechain||(s=l.uuid))}if(!s)return;let i=[],o=r.entries.get(s),a=!1;for(;o;){if(i.push(o),o.uuid===r.chainLastUuid){a=!0;break}o=o.parentUuid?r.entries.get(o.parentUuid):void 0}if(a)for(let c=i.length-2;c>=0;c--)ed(i[c]);else{r.chainLastUuid!==void 0&&(r.buffer.push({type:"cleared"}),r.buffer.push({type:"session",sessionId:r.sessionId}),r.latest={in:0,out:0,cached:0,cacheCreate:0});for(let c=i.length-1;c>=0;c--)ed(i[c])}r.chainLastUuid=s}function hd(r){let e=r.trim();return!!e&&Rw.some(t=>t.test(e))}function Lw(r){return r.replace(_w,"")}function bn(r){let e=Lw(r).trim();return e&&!hd(e)?e:""}function md(r){return r?.type==="text"&&typeof r.text=="string"?bn(r.text):""}function oa(r){return!!r.isSidechain||!!r.isMeta}function ed(r){try{$w(r)}catch(e){console.error("[claude-bulb] skipped malformed entry:",od(e))}}function $w(r){if(oa(r))return;let e=Y;if(r.type==="user"){let t=r.message?.content;if(typeof t=="string"){let s=bn(t);s&&e.buffer.push({type:"user",text:s})}else if(Array.isArray(t))for(let s of t)if(s?.type==="tool_result")e.buffer.push({type:"tool_result",id:s.tool_use_id??"",content:ta(s.content),isError:!!s.is_error});else{let n=md(s)||ia(s);n&&e.buffer.push({type:"user",text:n})}}else if(r.type==="attachment"&&r.attachment?.type==="queued_command"){let t=bn(ta(r.attachment.prompt));t&&e.buffer.push({type:"user",text:t})}else if(r.type==="assistant"){let t=r.message?.content,s=Array.isArray(t)?t:[],n=s.filter(c=>c.type==="text").map(c=>c.text??"").filter(c=>!hd(c)).join(""),i=s.filter(c=>c.type==="thinking").map(c=>c.thinking??"").join(`
153
- `),o=s.filter(c=>c.type==="tool_use").map(c=>({id:c.id??"",name:c.name??"",input:c.input??{}}));if(n||i||o.length){let c=Date.parse(r.timestamp??""),l=!isNaN(c)&&c>=e.sessionStartMs;e.buffer.push({type:"assistant",text:n,thinking:i,tools:o,live:l})}let a=r.message?.usage??r.usage;a&&(e.latest={in:a.input_tokens??0,out:a.output_tokens??0,cached:a.cache_read_input_tokens??0,cacheCreate:a.cache_creation_input_tokens??0},e.buffer.push({type:"usage",...e.latest}))}}async function Mw(){return{cwd:Y.cwd,pid:process.pid}}async function Dw(r){let e=Y;return dd(),{events:e.buffer.slice(r),cursor:e.buffer.length,working:jw(e)}}async function Bw(r,e){qw.accept(r,e)&&console.log(e)}function jw(r){let e;for(let i of r.entries.values())(i.type==="user"||i.type==="assistant")&&(e=i);if(!e)return!1;if(e.type==="user")return!0;let s=(Array.isArray(e.message?.content)?e.message.content:[]).filter(i=>i.type==="tool_use").map(i=>i.id);if(s.length===0)return!1;let n=new Set;for(let i of r.entries.values()){let o=i.message?.content;if(Array.isArray(o))for(let a of o)a.type==="tool_result"&&a.tool_use_id&&n.add(a.tool_use_id)}return s.some(i=>i&&!n.has(i))}function Fw(r){let e;try{e=td(r,"r")}catch{return""}try{let s=65536;try{s=Ge(r).size}catch{}let n=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=rd(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let h of l.split(`
154
- `)){if(!h.includes(`"${f}"`))continue;let g;try{g=JSON.parse(h)}catch{continue}let p=g?.[u];g?.type===f&&typeof p=="string"&&p&&(d=p)}return d},o=n(0,Math.min(65536,s)),a=s>65536?n(s-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
155
- `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||oa(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=bn(u):Array.isArray(u)&&(d=u.map(md).filter(Boolean).join(" "));let h=d.replace(/\s+/g," ").trim();if(h)return(h.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||h).slice(0,200)}return""}finally{sd(e)}}async function Uw(){return ad(Y.cwd).sort((r,e)=>e.mtime-r.mtime).map(({sessionId:r,file:e,mtime:t})=>({sessionId:r,mtime:t,preview:Fw(e)}))}async function Kw(r){let e=Y,t=B(na(e.cwd),`${r}.jsonl`);return Et(t)?t===e.file?{ok:!0}:(pd({sessionId:r,file:t}),{ok:!0}):{ok:!1,error:"session not found"}}async function Jw(r,e){return Zo(r,e),{ok:!0}}async function Vw(r){let e=Y.cwd,t=B(e,"typebulbs");nd(t,{recursive:!0});let s=Go(r),n=`${s}.bulb.md`;for(let c=2;Et(B(t,n))&&sa(B(t,n),"utf8")!==r;c++)n=`${s}-${c}.bulb.md`;let i=B(t,n);Et(i)||id(i,r);let o=B("typebulbs",n),a=await sn(o,{cwd:e,open:!0});return{ok:!0,file:o,pid:a.pid,url:a.url}}async function Ww(){return K(Y.cwd)}async function Yw(r){return await wt(r),{ok:!0}}async function Hw(){return Qo(Y.cwd).map(r=>({...r,trusted:Ue(r.path)}))}async function Gw(r,e){let t=Y.cwd;e!=null&&ht(r,e);let s=await sn(r,{cwd:t,open:!0,trust:e});return{ok:!0,file:s.file,pid:s.pid,url:s.url,trust:!!s.trust}}async function zw(r){return{cap:await Xo(r)}}async function Qw(r,e){return ht(r,e),{ok:!0}}async function Xw(r,e){return bt(r,e)}var kw,xw,na,Ew,cd,Tw,ea,Y,Rw,_w,qw,yd=N(()=>{zf();Qf();kw=".typebulb",xw=B(vw(),".claude","projects"),na=r=>B(xw,Sw(r));Ew=`${kw}/locks`,cd=5e3,Tw=6e4;ea=5e4;Y={cwd:process.cwd(),sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},everAttached:!1,entries:new Map};Rw=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i];_w=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;qw=new yn;Pw(Y.cwd);Ow(Y.cwd);dd()});import*as xd from"fs/promises";import*as ge from"path";import*as la from"fs/promises";import{existsSync as ze,readFileSync as Rd}from"fs";import*as L from"path";import{pathToFileURL as _d}from"url";import{resolve as kn}from"resolve.exports";import{init as ua,parse as fa}from"es-module-lexer";function da(r,e){let t=L.join(r,"package.json");try{return JSON.parse(Rd(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Sn=["browser","import","default"],ca=["node","import","default"];function pa(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),s=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!s)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:L.resolve(s)}}async function ha(r){let{name:e,dir:t}=r;if(!ze(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let s=da(t,e),n=Ld(s,e),i=L.resolve(t,n);if(!ze(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=L.dirname(i),a=`/local/${e}/${L.basename(i)}`,c=$d(s,t);return await Md(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Ld(r,e){if(r.exports!==void 0){let s;try{s=kn(r,".",{browser:!0,conditions:Sn})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Sn.join(", ")}): ${i instanceof Error?i.message:i}`)}let n=xn(s);if(!n)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Sn.join(", ")}); too complex to override.`);return n}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function $d(r,e){if(r.exports!==void 0)try{let s=kn(r,".",{conditions:["types"]}),n=xn(s);if(n){let i=L.resolve(e,n);if(ze(i))return i}}catch{}let t=r.types??r.typings;if(t){let s=L.resolve(e,t);if(ze(s))return s}}function xn(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function Md(r,e,t){await ua;let s=L.normalize(t),n=new Set,i=[e];for(;i.length;){let o=i.shift();if(n.has(o))continue;n.add(o);let a;try{a=await la.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=fa(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=Dd(o,u,s);d&&!n.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function Dd(r,e,t){let s=e.replace(/[?#].*$/,""),n=L.resolve(L.dirname(r),s),i=[n,n+".js",n+".mjs",L.join(n,"index.js"),L.join(n,"index.mjs")];for(let o of i)if(L.normalize(o).startsWith(t)&&ze(o))return o}function qd(r,e,t){let s=da(r,e),n;if(s.exports!==void 0)try{n=xn(kn(s,t,{conditions:ca}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${ca.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(n=s.main??s.module);if(!n)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=L.resolve(r,n);if(!ze(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return _d(i).href}async function ma(r,e){await ua;let t;try{[t]=fa(r)}catch{return r}let s="",n=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=qd(e.dir,e.name,a);s+=r.slice(n,i.s)+c,n=i.e}return s+r.slice(n)}function ga(r){let e={subcommand:"run",file:"",port:3e3,watch:!0,open:!0,server:!1,trust:!1,noTrust:!1,follow:!1,help:!1,version:!1},t=["check","predict","logs","stop","trust","untrust","skill","models"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){e.subcommand="agent";let n=s.indexOf(":");if(n!==-1){let i=s.slice(n+1);i&&(e.agentTarget=i)}r=r.slice(1)}else s&&t.includes(s)&&(e.subcommand=s,r=r.slice(1));for(let n=0;n<r.length;n++){let i=r[n];if(i==="--help"||i==="-h")e.help=!0;else if(i==="--version"||i==="-V")e.version=!0;else if(i==="--no-watch")e.watch=!1;else if(i==="--no-open")e.open=!1;else if(i==="--server")e.server=!0;else if(i==="--trust")e.trust=!0;else if(i==="--no-trust")e.noTrust=!0;else if(i==="--mode"){let o=r[++n];(!o||o.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),e.mode=o}else if(i==="--follow"||i==="-f")e.follow=!0;else if(i==="--bulbs")e.stopScope="bulbs";else if(i==="--agent")e.stopScope="agent";else if(i==="--global")e.stopScope="global";else if(i==="--lines"||i==="-n"){let o=parseInt(r[++n],10);(isNaN(o)||o<0)&&(console.error(`Invalid --lines value: ${r[n]}`),process.exit(1)),e.lines=o}else if(i==="--port"||i==="-p"){let o=r[++n],a=parseInt(o,10);isNaN(a)&&(console.error(`Invalid port: ${o}`),process.exit(1)),e.port=a}else if(i==="--replace"||i.startsWith("--replace=")){let o=i.startsWith("--replace=")?i.slice(10):r[++n]??"";try{let a=pa(o);if(e.local)throw new Error(`--replace can only be used once (got '${e.local.name}' and '${a.name}')`);e.local=a}catch(a){console.error(a instanceof Error?a.message:String(a)),process.exit(1)}}else i.startsWith("-")||(e.file=i)}return e}function ya(){console.log(`
149
+ `).trim();l&&n.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<s.length;l++)s[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),n}function go(r){return Ey(r).map(e=>e.text)}var xu=O(()=>{mo()});var Rs=O(()=>{Rr();ka();xa();Aa();mo();xu();Ir()});function Is(r){return{...Sa(r),server:r.files.get("server.ts")??""}}var yo=O(()=>{Rs();Rs();Rs()});import{join as _o,resolve as ab}from"path";import{homedir as cb}from"os";function Qs(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?_o(r,".."):_o(cb(),".typebulb")}function je(){return process.env.TYPEBULB_SERVERS_DIR||_o(Qs(),"servers")}function F(r){let e=ab(r);return(process.platform==="win32"?e.toLowerCase():e).replace(/\\/g,"/")}function Zu(r,e){let t=F(r),s=F(e);return t.startsWith(s.endsWith("/")?s:s+"/")?!t.includes("/node_modules/"):!1}var vr=O(()=>{});import{readFileSync as lb,writeFileSync as ub,mkdirSync as fb}from"fs";import{join as db}from"path";function ef(){return db(Qs(),"trust.json")}function Lo(){try{let r=JSON.parse(lb(ef(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function pb(r){fb(Qs(),{recursive:!0}),ub(ef(),JSON.stringify([...r]))}function Ue(r){return Lo().has(F(r))}function ht(r,e){let t=Lo(),s=F(r);(e?t.has(s):!t.has(s))||(e?t.add(s):t.delete(s),pb(t))}function $o(){return[...Lo()]}var Sr=O(()=>{vr()});function yt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var tn=O(()=>{});import{spawn as hf}from"child_process";import{readdir as _b,readFile as yf,writeFile as bf,unlink as xr,mkdir as Lb}from"fs/promises";import{mkdirSync as $b,writeFileSync as mf,appendFileSync as Mb,readFileSync as wf}from"fs";import*as se from"path";import{fileURLToPath as Db}from"url";function qo(r){return se.join(je(),`${r}.json`)}function Er(r){return se.join(je(),`${r}.log`)}function rn(r){let e=Er(r);try{$b(je(),{recursive:!0}),mf(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),s=process.stderr.write.bind(process.stderr),n=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(Mb(e,c),n+=c.length,n>2*gf){let l=wf(e),f=l.subarray(Math.max(0,l.length-gf));mf(e,f),n=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),s(a,...c))),()=>{process.stdout.write=t,process.stderr.write=s}}function bt(r,e=0){try{let t=wf(Er(r)),s=e>=0&&e<=t.length?e:0;return{text:t.subarray(s).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Bb(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function sn(r){await Lb(je(),{recursive:!0}),await bf(qo(r.pid),JSON.stringify(r))}async function vf(r,e){let t=qo(r);try{let s=JSON.parse(await yf(t,"utf8"));if(s.denied===e)return;s.denied=e,await bf(t,JSON.stringify(s))}catch{}}async function Ar(r){await xr(qo(r)).catch(()=>{}),await xr(Er(r)).catch(()=>{})}async function U(r){let e;try{e=await _b(je())}catch{return[]}let t=[];return await Promise.all(e.map(async n=>{if(!n.endsWith(".json"))return;let i=se.join(je(),n),o;try{o=JSON.parse(await yf(i,"utf8"))}catch{await xr(i).catch(()=>{});return}o&&typeof o.pid=="number"&&Bb(o.pid)?t.push(o):(await xr(i).catch(()=>{}),o?.pid&&await xr(Er(o.pid)).catch(()=>{}))})),(r?t.filter(n=>n.agent==null&&Zu(n.file,r)):t).sort((n,i)=>n.startedAt-i.startedAt)}async function wt(r){try{process.kill(r,"SIGTERM")}catch{}await Ar(r)}function Fb(){return se.join(se.dirname(Db(import.meta.url)),"index.js")}function jb(r,e={}){return{command:process.execPath,args:[Fb(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}async function nn(r,e={}){let t=e.cwd??process.cwd(),s=se.resolve(t,r),n=(await U()).find(l=>l.file===s);if(n)return n;let{command:i,args:o}=jb(r,e);(process.platform==="win32"?hf("cmd",["/c","start","","/b",i,...o],{cwd:t,stdio:"ignore",windowsHide:!0}):hf(i,o,{cwd:t,detached:!0,stdio:"ignore"})).unref();let c=Date.now()+2e4;for(;Date.now()<c;){await qb(150);let l=(await U()).find(f=>f.file===s);if(l)return l}throw new Error(`Launched ${se.basename(r)} but it did not register within 20s.`)}var gf,qb,Ve=O(()=>{vr();gf=1e6;qb=r=>new Promise(e=>setTimeout(e,r))});function bn(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function Xo(r){return(bn(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var Zo=O(()=>{});import{readdirSync as uw,readFileSync as fw,statSync as dw}from"fs";import{join as Yf,basename as pw}from"path";function Hf(r,e,t){if(e>8)return t;let s;try{s=uw(r,{withFileTypes:!0})}catch{return t}for(let n of s)if(n.isDirectory()){if(n.name.startsWith(".")||n.name==="node_modules")continue;Hf(Yf(r,n.name),e+1,t)}else n.isFile()&&n.name.endsWith(".bulb.md")&&t.push(Yf(r,n.name));return t}function ea(r){return Hf(r,0,[]).map(e=>{let t=0;try{t=dw(e).mtimeMs}catch{}let s;try{s=bn(fw(e,"utf8").slice(0,1024))}catch{}return{path:e,name:s??pw(e).replace(/\.bulb\.md$/,""),mtime:t}})}var Gf=O(()=>{Zo()});import{readFile as hw}from"fs/promises";async function ta(r){try{let e=_r(await hw(r,"utf-8"));return e?yt(Is(e)):void 0}catch{return}}var zf=O(()=>{yo();tn()});import{spawn as mw}from"child_process";import{basename as gw}from"path";function yw(){return process.env.TYPEBULB_EDITOR||"code"}function ww(r,e,t){return t==null?[e]:bw.test(gw(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function vw(r,e){let t=yw();return{command:t,args:ww(t,r,e)}}function ra(r,e){let{command:t,args:s}=vw(r,e),n=mw(t,s,{shell:!0,detached:!0,stdio:"ignore"});n.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),n.unref()}var bw,Qf=O(()=>{bw=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var Xf=O(()=>{Ve();Gf();zf();Zo();Qf();Sr()});var wn,Zf=O(()=>{wn=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});var bd={};_d(bd,{attach:()=>Yw,blockToMarkdown:()=>ca,breakout:()=>Gw,capText:()=>Or,info:()=>Fw,isHiddenTurn:()=>la,launchBulb:()=>Zw,listBreakouts:()=>zw,listBulbFiles:()=>Xw,listSessions:()=>Ww,logEmbedError:()=>Jw,openFile:()=>Hw,poll:()=>jw,predictTrustOf:()=>ev,readBulbLog:()=>rv,setBulbTrust:()=>tv,stopBreakout:()=>Qw});import{existsSync as xt,openSync as sd,readSync as nd,closeSync as id,statSync as Ge,readdirSync as ia,watchFile as Sw,unwatchFile as ed,mkdirSync as od,writeFileSync as ad,readFileSync as oa,unlinkSync as kw,rmSync as xw}from"fs";import{join as q}from"path";import{homedir as Ew}from"os";function cd(r){return r?.message??String(r)}function Aw(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function ld(r){let e=aa(r);if(!xt(e))return[];let t;try{t=ia(e)}catch{return[]}let s=[];for(let n of t){if(!n.endsWith(".jsonl"))continue;let i=q(e,n);try{let o=Ge(i);o.isFile()&&s.push({sessionId:n.slice(0,-6),file:i,mtime:o.mtimeMs})}catch{}}return s}function Sn(r){return q(r,Ow)}function fd(r,e){return q(Sn(r),`${e}.lock`)}function Cw(r,e){try{let t=fd(r,e);if(Date.now()-Ge(t).mtimeMs>=ud)return!1;try{if(parseInt(oa(t,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function dd(r,e){if(e)try{od(Sn(r),{recursive:!0}),ad(fd(r,e),String(process.pid))}catch(t){console.error("[lock] claim failed:",cd(t))}}function Rw(r){try{xw(q(r,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function Iw(r){let e=Sn(r);if(!xt(e))return;let t;try{t=ia(e)}catch{return}let s=Date.now();for(let n of t){if(!n.endsWith(".lock"))continue;let i=q(e,n);try{let o=Ge(i);s-o.mtimeMs>Nw&&kw(i)}catch{}}}function ca(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?`![pasted image](data:${e.media_type||"image/png"};base64,${e.data})`:""}function Or(r){return r.length>sa?r.slice(0,sa)+`
150
+ \u2026[${r.length-sa} more characters truncated]`:r}function na(r){return typeof r=="string"?Or(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return Or(e);let t=e;return typeof t?.text=="string"?Or(t.text):t?.content!=null?na(t.content):ca(t)}).join(`
151
+ `):r==null?"":Or(JSON.stringify(r))}function pd(r){try{return Ge(r),!1}catch(e){return e.code==="ENOENT"}}function hd(){let r=W;if(r.file&&!pd(r.file)){dd(r.cwd,r.sessionId);return}let e=_w(r);e&&md(e)}function _w(r){if(!r.everAttached)return Lw(r.cwd)??$w(r.cwd,()=>!0)}function Lw(r){let e=Sn(r);if(!xt(e))return;let t;try{t=ia(e)}catch{return}let s;for(let i of t)if(i.endsWith(".lock"))try{let o=Ge(q(e,i));if(Date.now()-o.mtimeMs>=ud||parseInt(oa(q(e,i),"utf8").trim(),10)!==process.pid)continue;(!s||o.mtimeMs>s.mtime)&&(s={sessionId:i.slice(0,-5),mtime:o.mtimeMs})}catch{}if(!s)return;let n=q(aa(r),`${s.sessionId}.jsonl`);if(!pd(n))return{sessionId:s.sessionId,file:n,mtime:s.mtime}}function $w(r,e){return ld(r).sort((t,s)=>s.mtime-t.mtime).find(t=>!Cw(r,t.sessionId)&&e(t))}function md(r){let e=W;if(e.file)try{ed(e.file)}catch{}e.file=r.file,e.sessionId=r.sessionId,e.everAttached=!0,e.partial="",e.offset=0,e.latest={in:0,out:0,cached:0,cacheCreate:0},e.entries=new Map,e.chainLastUuid=void 0,e.buffer.push({type:"cleared"}),e.buffer.push({type:"session",sessionId:r.sessionId}),dd(e.cwd,r.sessionId),td();try{ed(r.file)}catch{}Sw(r.file,{interval:200},()=>td())}function td(){let r=W;if(!r.file)return;let e;try{e=Ge(r.file).size}catch{return}if(e<=r.offset)return;let t;try{t=sd(r.file,"r")}catch{return}try{let c=e-r.offset,l=Buffer.alloc(c),f=0;for(;f<c;){let u=nd(t,l,f,c-f,r.offset+f);if(!u)break;f+=u}r.offset+=f,r.partial+=l.subarray(0,f).toString("utf8")}finally{id(t)}let s,n;for(;(n=r.partial.indexOf(`
152
+ `))>=0;){let c=r.partial.slice(0,n);if(r.partial=r.partial.slice(n+1),!c.trim())continue;let l;try{l=JSON.parse(c)}catch{continue}l&&l.uuid&&(r.entries.set(l.uuid,l),l.isSidechain||(s=l.uuid))}if(!s)return;let i=[],o=r.entries.get(s),a=!1;for(;o;){if(i.push(o),o.uuid===r.chainLastUuid){a=!0;break}o=o.parentUuid?r.entries.get(o.parentUuid):void 0}if(a)for(let c=i.length-2;c>=0;c--)rd(i[c]);else{r.chainLastUuid!==void 0&&(r.buffer.push({type:"cleared"}),r.buffer.push({type:"session",sessionId:r.sessionId}),r.latest={in:0,out:0,cached:0,cacheCreate:0});for(let c=i.length-1;c>=0;c--)rd(i[c])}r.chainLastUuid=s}function gd(r){let e=r.trim();return!!e&&Mw.some(t=>t.test(e))}function Bw(r){return r.replace(Dw,"")}function vn(r){let e=Bw(r).trim();return e&&!gd(e)?e:""}function yd(r){return r?.type==="text"&&typeof r.text=="string"?vn(r.text):""}function la(r){return!!r.isSidechain||!!r.isMeta}function rd(r){try{qw(r)}catch(e){console.error("[claude-bulb] skipped malformed entry:",cd(e))}}function qw(r){if(la(r))return;let e=W;if(r.type==="user"){let t=r.message?.content;if(typeof t=="string"){let s=vn(t);s&&e.buffer.push({type:"user",text:s})}else if(Array.isArray(t))for(let s of t)if(s?.type==="tool_result")e.buffer.push({type:"tool_result",id:s.tool_use_id??"",content:na(s.content),isError:!!s.is_error});else{let n=yd(s)||ca(s);n&&e.buffer.push({type:"user",text:n})}}else if(r.type==="attachment"&&r.attachment?.type==="queued_command"){let t=vn(na(r.attachment.prompt));t&&e.buffer.push({type:"user",text:t})}else if(r.type==="assistant"){let t=r.message?.content,s=Array.isArray(t)?t:[],n=s.filter(c=>c.type==="text").map(c=>c.text??"").filter(c=>!gd(c)).join(""),i=s.filter(c=>c.type==="thinking").map(c=>c.thinking??"").join(`
153
+ `),o=s.filter(c=>c.type==="tool_use").map(c=>({id:c.id??"",name:c.name??"",input:c.input??{}}));if(n||i||o.length){let c=Date.parse(r.timestamp??""),l=!isNaN(c)&&c>=e.sessionStartMs;e.buffer.push({type:"assistant",text:n,thinking:i,tools:o,live:l})}let a=r.message?.usage??r.usage;a&&(e.latest={in:a.input_tokens??0,out:a.output_tokens??0,cached:a.cache_read_input_tokens??0,cacheCreate:a.cache_creation_input_tokens??0},e.buffer.push({type:"usage",...e.latest}))}}async function Fw(){return{cwd:W.cwd,pid:process.pid}}async function jw(r){let e=W;return hd(),{events:e.buffer.slice(r),cursor:e.buffer.length,working:Kw(e)}}async function Jw(r,e){Uw.accept(r,e)&&console.log(e)}function Kw(r){let e;for(let i of r.entries.values())(i.type==="user"||i.type==="assistant")&&(e=i);if(!e)return!1;if(e.type==="user")return!0;let s=(Array.isArray(e.message?.content)?e.message.content:[]).filter(i=>i.type==="tool_use").map(i=>i.id);if(s.length===0)return!1;let n=new Set;for(let i of r.entries.values()){let o=i.message?.content;if(Array.isArray(o))for(let a of o)a.type==="tool_result"&&a.tool_use_id&&n.add(a.tool_use_id)}return s.some(i=>i&&!n.has(i))}function Vw(r){let e;try{e=sd(r,"r")}catch{return""}try{let s=65536;try{s=Ge(r).size}catch{}let n=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=nd(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
154
+ `)){if(!p.includes(`"${f}"`))continue;let g;try{g=JSON.parse(p)}catch{continue}let h=g?.[u];g?.type===f&&typeof h=="string"&&h&&(d=h)}return d},o=n(0,Math.min(65536,s)),a=s>65536?n(s-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
155
+ `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||la(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=vn(u):Array.isArray(u)&&(d=u.map(yd).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{id(e)}}async function Ww(){return ld(W.cwd).sort((r,e)=>e.mtime-r.mtime).map(({sessionId:r,file:e,mtime:t})=>({sessionId:r,mtime:t,preview:Vw(e)}))}async function Yw(r){let e=W,t=q(aa(e.cwd),`${r}.jsonl`);return xt(t)?t===e.file?{ok:!0}:(md({sessionId:r,file:t}),{ok:!0}):{ok:!1,error:"session not found"}}async function Hw(r,e){return ra(r,e),{ok:!0}}async function Gw(r){let e=W.cwd,t=q(e,"typebulbs");od(t,{recursive:!0});let s=Xo(r),n=`${s}.bulb.md`;for(let c=2;xt(q(t,n))&&oa(q(t,n),"utf8")!==r;c++)n=`${s}-${c}.bulb.md`;let i=q(t,n);xt(i)||ad(i,r);let o=q("typebulbs",n),a=await nn(o,{cwd:e,open:!0});return{ok:!0,file:o,pid:a.pid,url:a.url}}async function zw(){return U(W.cwd)}async function Qw(r){return await wt(r),{ok:!0}}async function Xw(){return ea(W.cwd).map(r=>({...r,trusted:Ue(r.path)}))}async function Zw(r,e){let t=W.cwd;e!=null&&ht(r,e);let s=await nn(r,{cwd:t,open:!0,trust:e});return{ok:!0,file:s.file,pid:s.pid,url:s.url,trust:!!s.trust}}async function ev(r){return{cap:await ta(r)}}async function tv(r,e){return ht(r,e),{ok:!0}}async function rv(r,e){return bt(r,e)}var Tw,Pw,aa,Ow,ud,Nw,sa,W,Mw,Dw,Uw,wd=O(()=>{Xf();Zf();Tw=".typebulb",Pw=q(Ew(),".claude","projects"),aa=r=>q(Pw,Aw(r));Ow=`${Tw}/locks`,ud=5e3,Nw=6e4;sa=5e4;W={cwd:process.cwd(),sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},everAttached:!1,entries:new Map};Mw=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i];Dw=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;Uw=new wn;Rw(W.cwd);Iw(W.cwd);hd()});import*as Pd from"fs/promises";import*as ge from"path";import*as fa from"fs/promises";import{existsSync as ze,readFileSync as Md}from"fs";import*as $ from"path";import{pathToFileURL as Dd}from"url";import{resolve as An}from"resolve.exports";import{init as da,parse as pa}from"es-module-lexer";function ha(r,e){let t=$.join(r,"package.json");try{return JSON.parse(Md(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var En=["browser","import","default"],ua=["node","import","default"];function ma(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),s=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!s)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:$.resolve(s)}}async function ga(r){let{name:e,dir:t}=r;if(!ze(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let s=ha(t,e),n=Bd(s,e),i=$.resolve(t,n);if(!ze(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=$.dirname(i),a=`/local/${e}/${$.basename(i)}`,c=qd(s,t);return await Fd(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Bd(r,e){if(r.exports!==void 0){let s;try{s=An(r,".",{browser:!0,conditions:En})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${En.join(", ")}): ${i instanceof Error?i.message:i}`)}let n=Tn(s);if(!n)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${En.join(", ")}); too complex to override.`);return n}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function qd(r,e){if(r.exports!==void 0)try{let s=An(r,".",{conditions:["types"]}),n=Tn(s);if(n){let i=$.resolve(e,n);if(ze(i))return i}}catch{}let t=r.types??r.typings;if(t){let s=$.resolve(e,t);if(ze(s))return s}}function Tn(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function Fd(r,e,t){await da;let s=$.normalize(t),n=new Set,i=[e];for(;i.length;){let o=i.shift();if(n.has(o))continue;n.add(o);let a;try{a=await fa.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=pa(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=jd(o,u,s);d&&!n.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function jd(r,e,t){let s=e.replace(/[?#].*$/,""),n=$.resolve($.dirname(r),s),i=[n,n+".js",n+".mjs",$.join(n,"index.js"),$.join(n,"index.mjs")];for(let o of i)if($.normalize(o).startsWith(t)&&ze(o))return o}function Ud(r,e,t){let s=ha(r,e),n;if(s.exports!==void 0)try{n=Tn(An(s,t,{conditions:ua}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${ua.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(n=s.main??s.module);if(!n)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=$.resolve(r,n);if(!ze(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Dd(i).href}async function ya(r,e){await da;let t;try{[t]=pa(r)}catch{return r}let s="",n=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=Ud(e.dir,e.name,a);s+=r.slice(n,i.s)+c,n=i.e}return s+r.slice(n)}function ba(r){let e={subcommand:"run",file:"",port:3e3,watch:!0,open:!0,server:!1,trust:!1,noTrust:!1,follow:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},t=["call","check","predict","logs","stop","trust","untrust","skill","models"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){e.subcommand="agent";let i=s.indexOf(":");if(i!==-1){let o=s.slice(i+1);o&&(e.agentTarget=o)}r=r.slice(1)}else s&&t.includes(s)&&(e.subcommand=s,r=r.slice(1));let n=[];for(let i=0;i<r.length;i++){let o=r[i];if(o==="--help"||o==="-h")e.help=!0;else if(o==="--version"||o==="-V")e.version=!0;else if(o==="--no-watch")e.watch=!1;else if(o==="--no-open")e.open=!1;else if(o==="--server")e.server=!0;else if(o==="--trust")e.trust=!0;else if(o==="--no-trust")e.noTrust=!0;else if(o==="--mode"){let a=r[++i];(!a||a.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),e.mode=a}else if(o==="--follow"||o==="-f")e.follow=!0;else if(o==="--bulbs")e.stopScope="bulbs";else if(o==="--agent")e.stopScope="agent";else if(o==="--global")e.stopScope="global";else if(o==="--lines"||o==="-n"){let a=parseInt(r[++i],10);(isNaN(a)||a<0)&&(console.error(`Invalid --lines value: ${r[i]}`),process.exit(1)),e.lines=a}else if(o==="--port"||o==="-p"){let a=r[++i],c=parseInt(a,10);isNaN(c)&&(console.error(`Invalid port: ${a}`),process.exit(1)),e.port=c}else if(o==="--replace"||o.startsWith("--replace=")){let a=o.startsWith("--replace=")?o.slice(10):r[++i]??"";try{let c=ma(a);if(e.local)throw new Error(`--replace can only be used once (got '${e.local.name}' and '${c.name}')`);e.local=c}catch(c){console.error(c instanceof Error?c.message:String(c)),process.exit(1)}}else if(o==="--args"||o.startsWith("--args=")){e.hasArgsFlag=!0;let a=o.startsWith("--args=")?o.slice(7):r[++i];a===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),e.argsJson=a}else o.startsWith("-")||(e.subcommand==="call"?n.push(o):e.file=o)}return e.subcommand==="call"&&(n.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),e.file=n[0],e.fn=n[1],e.callArgs=n.slice(2)),e}function wa(){console.log(`
156
156
  typebulb - Local bulb runner for Typebulb
157
157
 
158
158
  Usage:
159
159
  typebulb [file.bulb.md] Run a bulb (defaults to .bulb.md in cwd)
160
160
  typebulb agent Start here \u2014 tells the agent how to show a bulb inline
161
- or build one locally; prints the viewer URL when one is
161
+ or build one locally; prints the mirror URL when one is
162
162
  up. Always exits 0 (it's a status report, not a check).
163
- typebulb agent:claude Open the agent viewer (a browser view over a Claude
163
+ typebulb agent:claude Open the agent mirror (a browser view over a Claude
164
164
  Code session; 'agent:<name>' selects which agent).
165
165
  typebulb skill Print this README as an Agent Skill (stdout), for the
166
166
  agent to read and copy into its own skills folder.
167
+ typebulb call <file> <fn> [\u2026] Invoke one server.ts export headlessly: prints
168
+ its return as JSON to stdout, logs/errors to
169
+ stderr. Gated by trust like --server. Args after
170
+ <fn> are JSON-or-string; --args '<json-array>'
171
+ (or --args - for stdin) is the escape hatch.
167
172
  typebulb check [file.bulb.md] Type-check a bulb without running it
168
173
  typebulb predict [file] Report the capability a bulb probably needs
169
174
  (fs / AI / server.ts) without running it.
@@ -176,8 +181,8 @@ Usage:
176
181
  typebulb stop [file|pid] Stop a running bulb server (no arg: list this
177
182
  project's running servers; a pid/path stops any).
178
183
  Batch flags: --bulbs (this project's bulbs, the
179
- viewer survives), --agent (this project's viewer),
180
- --global (every bulb + viewer, all projects).
184
+ mirror survives), --agent (this project's mirror),
185
+ --global (every bulb + mirror, all projects).
181
186
  typebulb trust [file] Remember a bulb as Trusted, so a later run grants
182
187
  fs/AI/server.ts without --trust (no arg: list the
183
188
  remembered-trusted bulbs).
@@ -201,6 +206,9 @@ Options:
201
206
  of .env / .env.local. Free-form name; loads no mode
202
207
  file by default.
203
208
  --server Run server.ts only, no web server (needs --trust)
209
+ --args <json-array> For 'call': the whole argument list as one JSON
210
+ array (strict). '--args -' reads it from stdin,
211
+ sidestepping shell quoting.
204
212
  --replace <name>=<path> Replace a declared dependency with a local built
205
213
  package folder instead of a CDN (dev only).
206
214
  Applies to both run and check. Watched for
@@ -243,7 +251,7 @@ Examples:
243
251
  typebulb my-editor.bulb.md
244
252
  typebulb --no-watch --port 8080 my-editor.bulb.md
245
253
  typebulb .
246
- `)}ho();import*as Ce from"fs/promises";import*as Gs from"path";import{pathToFileURL as rb}from"url";import{transform as Sy}from"sucrase";function mo(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:s}=Sy(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:s}}catch(s){return{code:"",error:String(s)}}}var nr="https://esm.sh",ir="https://cdn.jsdelivr.net/npm/",go="https://data.jsdelivr.com/v1/package/npm/";function ku(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var A=class r{constructor(e,t,s){let n=typeof e=="string"?r.parse(e):e;this.name=n.name,this.version=ct(t??n.version),this.subpath=ct(s??n.subpath)}static parse(e){let t=ku(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let n=t[0],[i,o]=xu(t[1]??""),a=ct(t.slice(2).join("/"));return new r({name:`${n}/${i}`,version:o,subpath:a})}else{let[n,i]=xu(t[0]),o=ct(t.slice(1).join("/"));return new r({name:n,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),s=new URL(nr).host,n=new URL(ir).host;if(t.host===s){let i=ku(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===n){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}static versionFromUrl(e){return r.fromUrl(e)?.version}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:ct(e),subpath:this.subpath})}withPreferredVersion(e,t){let s=e||t;return s?this.withVersion(s):this}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},ct=r=>r&&r.length?r:void 0,xu=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),ct(r.slice(e+1))]};async function W(r){try{return await r()}catch{return}}var or=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=nr,this.jsDelivrBase=ir,this.jsDelivrMeta=go,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}normalizeRelative(e){let t=e||"";return t.startsWith("./")?t.slice(2):t.replace(/^\/+/,"")}ensureLeadingDotSlash(e){return e.startsWith("./")?e:`./${e}`}baseDir(e){let t=typeof e=="string"?new A(e):e;return`${this.jsDelivrBase}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(this.normalizeRelative(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:s="es2022",bundle:n=!1,external:i}=t,o=new URLSearchParams({target:s});return n&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${this.esmHost}/${e}?${o.toString()}`}async pinEsmUrl(e,t="es2022"){let s=this.buildEsmUrl(e,{target:t}),n=await W(()=>this.http.head(s));return n?.ok?n.url||s:void 0}async resolveExactVersion(e){let t=Date.now(),s=this.pinCache.get(e);if(s&&t-s.ts<this.pinMs)return s.value;let n=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${this.esmHost}/${e}`]);return this.pinCache.set(e,{value:n,ts:t}),n}async tryResolveFromUrls(e){for(let t of e){let s=await W(()=>this.http.head(t)),n=this.parseVersionFromUrl(s?.url||t);if(n)return n}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let s=await W(()=>this.http.getJson(`${this.jsDelivrMeta}${encodeURIComponent(e)}`));if(!s?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let n=s.distTags&&Object.keys(s.distTags).length?s.distTags:void 0;return await this.cache.setIndex(e,s.versions,n),s}parseVersionFromUrl(e){let t=A.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let s=await this.cache.getMeta(e,t);if(s&&Date.now()-s.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=s;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let n=this.packageJson(new A(`${e}@${t}`)),i=await W(()=>this.http.getJson(n));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var Eu=r=>r.startsWith("@types/"),ar=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!Eu(e)),yo=r=>Object.keys(r?.dependencies||{}).filter(e=>!Eu(e)),ky=r=>ar(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),cr=class{constructor(e){this.cdn=e}async resolve(e,t){let s=await this.fetchMeta(e),{allRoots:n,autoAddedPeers:i}=await this.expandWithPeers(s,t),o=this.computeFlags(n);return{allRoots:n,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:s})=>({name:t,version:s,meta:await this.cdn.fetchPackageMeta(t,s)})))}async expandWithPeers(e,t){let s=new Map(e.map(i=>[i.name,i])),n=[];for(let i of e)for(let o of ky(i.meta))!s.has(o)&&!n.some(a=>a.name===o)&&n.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of n)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);s.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...s.values()],autoAddedPeers:n.filter(i=>s.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>ar(i.meta))),s=new Map;for(let i of e)for(let o of yo(i.meta))s.set(o,(s.get(o)||0)+1);let n=new Set([...s.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:ar(i.meta).length>0,isSharedDep:n.has(i.name)}]))}};var lr=class{constructor(e,t,s){this.cache=e,this.cdn=t,this.semver=s}selectVersionFromIndex(e,t,s){return this.semver.selectBestVersion(e,{range:t,distTags:s})}async learnExactVersion(e){let t=await W(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let s=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(s)return s}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let s=await this.cache.getPinnedExact(e,t);if(s){if(this.semver.isExactVersion(s))return s;console.debug("[typebulb] cached version for",e,"is not exact (",s,"); re-resolving from registry")}let n=await W(()=>this.cdn.fetchVersionsIndex(e));if(n?.versions?.length){let o=this.selectVersionFromIndex(n.versions,t,n.distTags);if(o){if(this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await W(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=this.selectVersionFromIndex(a.versions,t,a.distTags);if(c&&this.semver.isExactVersion(c))return await this.cache.setPinnedExact(e,t,c),c}}}let i=await this.cdn.resolveExactVersion(`${e}@${t}`);if(i&&this.semver.isExactVersion(i))return await this.cache.setPinnedExact(e,t,i),i}async effectivePackage(e,t){let s=new A(e),n=s.root(),i=t[n],o=i?await W(()=>this.cache.getPinnedExact(n,i))??await W(()=>this.resolveExactForRoot(n,i)):void 0;return{effectivePackage:o?s.withVersion(o).format():e,root:n,range:i,pinned:o}}};import{init as xy,parse as Ey}from"es-module-lexer";var lt=class r{constructor(e,t,s,n){this.version=e,this.cdn=t,this.peer=s,this.cache=n}extractImportsSync(e){let t=new Set;for(let s of r.importPatterns){s.lastIndex=0;for(let n of e.matchAll(s))A.isBare(n[1])&&t.add(n[1])}return Array.from(t)}async extractImports(e){let t=new Set,s=n=>{A.isBare(n)&&t.add(n)};try{await xy;let[n]=Ey(e);n.forEach(i=>s(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,s){let n=(await this.extractImports(e)).filter(u=>!s?.has(A.rootOf(u))),i=[...new Set(n.map(A.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...n,...l.map(u=>u.name)],a,c,t);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let s=t[e],n=s?`${e}@${s}`:e,i=await this.version.resolveExactForRoot(e,s);if(!i){let o=await W(()=>this.cdn.pinEsmUrl(n));if(!o)throw new Error(`Cannot resolve ${n}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);i=A.versionFromUrl(o),i&&s&&await W(()=>this.cache.setPinnedExact(e,s,i))}if(!i)throw new Error(`Cannot resolve ${n}: no concrete version found.`);return i}buildEntries(e,t,s,n){let i=new Map(t.map(g=>[g.name,g])),o=g=>{let p=i.get(A.rootOf(g));return new A(g).withPreferredVersion(p.version,n[p.name]).format()},a=new Set([...s.entries()].filter(([,g])=>g.isPeerRoot||g.isSharedDep).map(([g])=>g)),c=new Set(e.filter(g=>g!==A.rootOf(g)).map(A.rootOf)),l=[],f=new Set,u=new Set(e.filter(g=>g===A.rootOf(g))),d=new Set;for(let g of e){let p=A.rootOf(g),y=i.get(p),{isPeerRoot:x,hasPeers:k,isSharedDep:E}=s.get(p),m=c.has(p),b=g!==p,T=!(x||E)&&(m||!k),w=this.singletonDepsOf(y,a),O=b&&u.has(p);O&&d.add(p);let D=O?[...w,p]:w.length?w:void 0;l.push([g,this.cdn.buildEsmUrl(o(g),{bundle:T,external:D})]),f.add(g)}let h=new Set([...a,...d]);for(let g of h)i.has(g)&&(f.has(g)||l.push([g,this.cdn.buildEsmUrl(o(g),{})]),l.push([`${g}/`,`${this.cdn.esmHost}/${o(g)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...ar(e.meta),...yo(e.meta)])].filter(s=>t.has(s))}};lt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as Tu,satisfies as Ty,maxSatisfying as bo,major as Ay,prerelease as Py,rsort as Oy,valid as Ny}from"semver";var Rs=class{cmp(e,t){return e===t?0:Tu(e,t)?1:Tu(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!Ty(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let s=bo(e,t,{includePrerelease:!0});return s===null?void 0:s}pickLatest(e){return e?.length?Oy(e)[0]:void 0}selectBestVersion(e,t){if(!e?.length)return;let s=t?.range?.trim()||"*",n=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(s,i))return i;if(n){let a=bo(e,s,{includePrerelease:!1});if(a)return a}return bo(e,s,{includePrerelease:!0})??void 0}majorOf(e){return Ay(e)}isPrerelease(e){return Py(e)!==null}isExactVersion(e){return Ny(e)!==null}},qe=new Rs;function Au(r,e){let t=new or(r,e),s=new cr(t),n=new lr(r,t,qe);return{packageService:new lt(n,t,s,r),versionResolver:n,cdnClient:t,peerResolver:s}}import*as Fu from"fs/promises";import*as re from"path";var wo=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],vo=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var Pu=`
254
+ `)}yo();import*as Ce from"fs/promises";import*as zs from"path";import{pathToFileURL as ob}from"url";import{transform as Ay}from"sucrase";function bo(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:s}=Ay(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:s}}catch(s){return{code:"",error:String(s)}}}var nr="https://esm.sh",ir="https://cdn.jsdelivr.net/npm/",wo="https://data.jsdelivr.com/v1/package/npm/";function Eu(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var T=class r{constructor(e,t,s){let n=typeof e=="string"?r.parse(e):e;this.name=n.name,this.version=ct(t??n.version),this.subpath=ct(s??n.subpath)}static parse(e){let t=Eu(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let n=t[0],[i,o]=Au(t[1]??""),a=ct(t.slice(2).join("/"));return new r({name:`${n}/${i}`,version:o,subpath:a})}else{let[n,i]=Au(t[0]),o=ct(t.slice(1).join("/"));return new r({name:n,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),s=new URL(nr).host,n=new URL(ir).host;if(t.host===s){let i=Eu(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===n){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}static versionFromUrl(e){return r.fromUrl(e)?.version}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:ct(e),subpath:this.subpath})}withPreferredVersion(e,t){let s=e||t;return s?this.withVersion(s):this}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},ct=r=>r&&r.length?r:void 0,Au=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),ct(r.slice(e+1))]};async function V(r){try{return await r()}catch{return}}var or=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=nr,this.jsDelivrBase=ir,this.jsDelivrMeta=wo,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}normalizeRelative(e){let t=e||"";return t.startsWith("./")?t.slice(2):t.replace(/^\/+/,"")}ensureLeadingDotSlash(e){return e.startsWith("./")?e:`./${e}`}baseDir(e){let t=typeof e=="string"?new T(e):e;return`${this.jsDelivrBase}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(this.normalizeRelative(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:s="es2022",bundle:n=!1,external:i}=t,o=new URLSearchParams({target:s});return n&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${this.esmHost}/${e}?${o.toString()}`}async pinEsmUrl(e,t="es2022"){let s=this.buildEsmUrl(e,{target:t}),n=await V(()=>this.http.head(s));return n?.ok?n.url||s:void 0}async resolveExactVersion(e){let t=Date.now(),s=this.pinCache.get(e);if(s&&t-s.ts<this.pinMs)return s.value;let n=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${this.esmHost}/${e}`]);return this.pinCache.set(e,{value:n,ts:t}),n}async tryResolveFromUrls(e){for(let t of e){let s=await V(()=>this.http.head(t)),n=this.parseVersionFromUrl(s?.url||t);if(n)return n}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let s=await V(()=>this.http.getJson(`${this.jsDelivrMeta}${encodeURIComponent(e)}`));if(!s?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let n=s.distTags&&Object.keys(s.distTags).length?s.distTags:void 0;return await this.cache.setIndex(e,s.versions,n),s}parseVersionFromUrl(e){let t=T.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let s=await this.cache.getMeta(e,t);if(s&&Date.now()-s.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=s;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let n=this.packageJson(new T(`${e}@${t}`)),i=await V(()=>this.http.getJson(n));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var Tu=r=>r.startsWith("@types/"),ar=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!Tu(e)),vo=r=>Object.keys(r?.dependencies||{}).filter(e=>!Tu(e)),Ty=r=>ar(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),cr=class{constructor(e){this.cdn=e}async resolve(e,t){let s=await this.fetchMeta(e),{allRoots:n,autoAddedPeers:i}=await this.expandWithPeers(s,t),o=this.computeFlags(n);return{allRoots:n,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:s})=>({name:t,version:s,meta:await this.cdn.fetchPackageMeta(t,s)})))}async expandWithPeers(e,t){let s=new Map(e.map(i=>[i.name,i])),n=[];for(let i of e)for(let o of Ty(i.meta))!s.has(o)&&!n.some(a=>a.name===o)&&n.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of n)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);s.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...s.values()],autoAddedPeers:n.filter(i=>s.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>ar(i.meta))),s=new Map;for(let i of e)for(let o of vo(i.meta))s.set(o,(s.get(o)||0)+1);let n=new Set([...s.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:ar(i.meta).length>0,isSharedDep:n.has(i.name)}]))}};var lr=class{constructor(e,t,s){this.cache=e,this.cdn=t,this.semver=s}selectVersionFromIndex(e,t,s){return this.semver.selectBestVersion(e,{range:t,distTags:s})}async learnExactVersion(e){let t=await V(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let s=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(s)return s}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let s=await this.cache.getPinnedExact(e,t);if(s){if(this.semver.isExactVersion(s))return s;console.debug("[typebulb] cached version for",e,"is not exact (",s,"); re-resolving from registry")}let n=await V(()=>this.cdn.fetchVersionsIndex(e));if(n?.versions?.length){let o=this.selectVersionFromIndex(n.versions,t,n.distTags);if(o){if(this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await V(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=this.selectVersionFromIndex(a.versions,t,a.distTags);if(c&&this.semver.isExactVersion(c))return await this.cache.setPinnedExact(e,t,c),c}}}let i=await this.cdn.resolveExactVersion(`${e}@${t}`);if(i&&this.semver.isExactVersion(i))return await this.cache.setPinnedExact(e,t,i),i}async effectivePackage(e,t){let s=new T(e),n=s.root(),i=t[n],o=i?await V(()=>this.cache.getPinnedExact(n,i))??await V(()=>this.resolveExactForRoot(n,i)):void 0;return{effectivePackage:o?s.withVersion(o).format():e,root:n,range:i,pinned:o}}};import{init as Py,parse as Oy}from"es-module-lexer";var lt=class r{constructor(e,t,s,n){this.version=e,this.cdn=t,this.peer=s,this.cache=n}extractImportsSync(e){let t=new Set;for(let s of r.importPatterns){s.lastIndex=0;for(let n of e.matchAll(s))T.isBare(n[1])&&t.add(n[1])}return Array.from(t)}async extractImports(e){let t=new Set,s=n=>{T.isBare(n)&&t.add(n)};try{await Py;let[n]=Oy(e);n.forEach(i=>s(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,s){let n=(await this.extractImports(e)).filter(u=>!s?.has(T.rootOf(u))),i=[...new Set(n.map(T.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...n,...l.map(u=>u.name)],a,c,t);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let s=t[e],n=s?`${e}@${s}`:e,i=await this.version.resolveExactForRoot(e,s);if(!i){let o=await V(()=>this.cdn.pinEsmUrl(n));if(!o)throw new Error(`Cannot resolve ${n}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);i=T.versionFromUrl(o),i&&s&&await V(()=>this.cache.setPinnedExact(e,s,i))}if(!i)throw new Error(`Cannot resolve ${n}: no concrete version found.`);return i}buildEntries(e,t,s,n){let i=new Map(t.map(g=>[g.name,g])),o=g=>{let h=i.get(T.rootOf(g));return new T(g).withPreferredVersion(h.version,n[h.name]).format()},a=new Set([...s.entries()].filter(([,g])=>g.isPeerRoot||g.isSharedDep).map(([g])=>g)),c=new Set(e.filter(g=>g!==T.rootOf(g)).map(T.rootOf)),l=[],f=new Set,u=new Set(e.filter(g=>g===T.rootOf(g))),d=new Set;for(let g of e){let h=T.rootOf(g),y=i.get(h),{isPeerRoot:x,hasPeers:S,isSharedDep:m}=s.get(h),b=c.has(h),w=g!==h,A=!(x||m)&&(b||!S),k=this.singletonDepsOf(y,a),C=w&&u.has(h);C&&d.add(h);let L=C?[...k,h]:k.length?k:void 0;l.push([g,this.cdn.buildEsmUrl(o(g),{bundle:A,external:L})]),f.add(g)}let p=new Set([...a,...d]);for(let g of p)i.has(g)&&(f.has(g)||l.push([g,this.cdn.buildEsmUrl(o(g),{})]),l.push([`${g}/`,`${this.cdn.esmHost}/${o(g)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...ar(e.meta),...vo(e.meta)])].filter(s=>t.has(s))}};lt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as Pu,satisfies as Ny,maxSatisfying as So,major as Cy,prerelease as Ry,rsort as Iy,valid as _y}from"semver";var _s=class{cmp(e,t){return e===t?0:Pu(e,t)?1:Pu(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!Ny(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let s=So(e,t,{includePrerelease:!0});return s===null?void 0:s}pickLatest(e){return e?.length?Iy(e)[0]:void 0}selectBestVersion(e,t){if(!e?.length)return;let s=t?.range?.trim()||"*",n=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(s,i))return i;if(n){let a=So(e,s,{includePrerelease:!1});if(a)return a}return So(e,s,{includePrerelease:!0})??void 0}majorOf(e){return Cy(e)}isPrerelease(e){return Ry(e)!==null}isExactVersion(e){return _y(e)!==null}},Be=new _s;function Ou(r,e){let t=new or(r,e),s=new cr(t),n=new lr(r,t,Be);return{packageService:new lt(n,t,s,r),versionResolver:n,cdnClient:t,peerResolver:s}}import*as Ju from"fs/promises";import*as te from"path";var ko=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],xo=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var Nu=`
247
255
  /**
248
256
  * Get raw data chunk from the Data tab.
249
257
  * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
@@ -254,7 +262,7 @@ Examples:
254
262
  * @param index - Chunk index (0-based)
255
263
  * @throws If chunk is not valid JSON/JSON-ish
256
264
  */
257
- json<T = unknown>(index: number): T;`,Ou=`
265
+ json<T = unknown>(index: number): T;`,Cu=`
258
266
  /**
259
267
  * Get the insight data produced by the inference layer.
260
268
  *
@@ -263,7 +271,7 @@ Examples:
263
271
  *
264
272
  * @returns The parsed insight JSON, or undefined if no insight is available
265
273
  */
266
- insight<T = unknown>(): T | undefined;`,Nu=`
274
+ insight<T = unknown>(): T | undefined;`,Ru=`
267
275
  /**
268
276
  * General-purpose AI call.
269
277
  *
@@ -280,7 +288,7 @@ Examples:
280
288
  model?: string;
281
289
  /** Enable/disable web search. Default: on for BYOK, always off for free model. */
282
290
  webSearch?: boolean;
283
- }): Promise<{ text: string }>;`,Cu=`
291
+ }): Promise<{ text: string }>;`,Iu=`
284
292
  /**
285
293
  * Returns AI models available to the current user.
286
294
  * Models are filtered by the user's configured API keys.
@@ -295,7 +303,7 @@ Examples:
295
303
  friendlyName: string;
296
304
  /** Provider display name, e.g. "Anthropic" */
297
305
  providerName: string;
298
- }>>;`,Cy="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",Iu=`
306
+ }>>;`,Ly="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",_u=`
299
307
  /**
300
308
  * The mode this bulb is running in.
301
309
  *
@@ -305,7 +313,7 @@ Examples:
305
313
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
306
314
  * client-only: AI, filesystem, and server RPC are unavailable)
307
315
  */
308
- mode: 'local' | 'editor' | 'published' | 'embedded';`,Ru=`
316
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,Lu=`
309
317
  /**
310
318
  * Local filesystem access (CLI only).
311
319
  *
@@ -319,7 +327,7 @@ Examples:
319
327
  readBytes(path: string): Promise<Uint8Array>;
320
328
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
321
329
  write(path: string, content: string | Uint8Array): Promise<boolean>;
322
- };`,Iy=`
330
+ };`,$y=`
323
331
  /**
324
332
  * Server-side function proxy. The built-in \`log\` prints to CLI stdout
325
333
  * (falls back to console.log on web). On the server side, this object only
@@ -327,7 +335,7 @@ Examples:
327
335
  */
328
336
  server: {
329
337
  log(...args: any[]): Promise<void>;
330
- };`,Ry=`
338
+ };`,My=`
331
339
  /**
332
340
  * Async value inspector for tensor-like objects.
333
341
  *
@@ -394,7 +402,7 @@ Examples:
394
402
  *
395
403
  * @returns The full canonical URL
396
404
  */
397
- url(): Promise<string>;`,_y=`
405
+ url(): Promise<string>;`,Dy=`
398
406
  /**
399
407
  * Server-side function proxy.
400
408
  *
@@ -402,30 +410,30 @@ Examples:
402
410
  * \`tb.server.log(...)\` is a built-in that prints to CLI stdout (falls back to console.log on web).
403
411
  * User exports override built-ins of the same name.
404
412
  */
405
- server: Record<string, (...args: any[]) => Promise<any>>;`,So=`
413
+ server: Record<string, (...args: any[]) => Promise<any>>;`,Eo=`
406
414
  /**
407
415
  * Typebulb utilities namespace.
408
416
  * Type \`tb.\` to discover available helpers.
409
417
  */
410
- declare const tb: {${Pu}${Ry}${Ou}${_y}${Nu}${Ru}${Cu}${Cy}${Iu}
418
+ declare const tb: {${Nu}${My}${Cu}${Dy}${Ru}${Lu}${Iu}${Ly}${_u}
411
419
  };
412
- `,ko=`
420
+ `,Ao=`
413
421
  /**
414
422
  * Typebulb utilities namespace (server-side).
415
423
  * Type \`tb.\` to discover available helpers.
416
424
  */
417
- declare const tb: {${Pu}${Ou}${Nu}${Ru}${Iy}${Cu}${Iu}
425
+ declare const tb: {${Nu}${Cu}${Ru}${Lu}${$y}${Iu}${_u}
418
426
  };
419
- `;var Be=class{constructor(e){this.store=e}async isNegative(e){let t=await _s(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let s=((await _s(()=>this.store.get(e)))?.attempts||0)+1;await _s(()=>this.store.set(e,{until:Date.now()+Ly(s),attempts:s}))}async clearNegative(e){await _s(()=>this.store.delete(e))}};function Ly(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function _s(r){try{return await r()}catch{return}}import jy from"p-limit";import{resolve as _u}from"resolve.exports";var ut=class{constructor(e){this.fetchDts=e}fetchDtsText(e){return this.tryUrls([e])}async tryUrls(e){for(let t of e){let s=await this.fetchDts(t);if(s&&(this.looksLikeDts(s.dts)||/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(s.url)||/[?&]dts(?:[&#]|$)/i.test(s.url)))return s}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}};var Pe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},ur=["index.d.ts","index.d.mts"],fr=/\.d\.(ts|mts)$/i;function xo(r){if(fr.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function Ls(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function dr(r,{retries:e=2,timeoutMs:t=15e3,init:s}={}){for(let n=0;n<=e;n++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...s,signal:i.signal});if($y(a.status)&&n<e)continue;return a}catch{if(n<e)continue;return}finally{clearTimeout(o)}}}function $y(r){return r===408||r===429||r>=500&&r<600}var pr=class extends ut{constructor(e,t){super(e),this.cdnClient=t}async loadPackageAtVersionedRoot(e,t){let s=this.cdnClient.packageJson(new A({name:e,version:t})),n=await dr(s);if(!n?.ok)return;let i;try{i=await n.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new A({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let s of e){let n=await t(s);if(n)return n}}async resolveFromSelected(e,t){if(e.kind==="types"){let n=this.cdnClient.normalizeRelative(e.path);if(!n||n==="/"||n===".")return this.tryUntilSuccess([...ur],t);if(!fr.test(n)){let i=await this.tryUntilSuccess(this.declarationCandidatesFor(n),t);if(i)return i}return t(n)}let s=this.declarationCandidatesFor(e.path);return this.tryUntilSuccess([...ur,...s],t)}toResolutionResult(e){return{kind:fr.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let s=t||".",n=e;try{let i=this.extractPathFromResult(_u(n,s,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(_u(n,s,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=A.parse(e),{pkg:s,baseDir:n}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!s||!n)return;let i={name:t.name,version:t.version},o=new A(i).format(),a=new A({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(n,t.name,u);if(t.subpath){let u=this.cdnClient.ensureLeadingDotSlash(t.subpath),d=this.resolveExportsPath(s,u);if(d){let g=await this.resolveFromSelected(this.toResolutionResult(d),c);if(g)return{...g,resolvedPkg:a}}let h=await this.tryUntilSuccess(this.declarationCandidatesFor(u),c);if(h)return{...h,resolvedPkg:a}}let l=s.types??s.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(s,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,s){let n=this.cdnClient.normalizeRelative(s),i=new URL(n,e).toString(),o=await this.fetchDtsText(i);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}declarationCandidatesFor(e){if(!e||e==="./"||e==="/")return[...ur];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),s=Ls(t),n=t.endsWith("/")?t:`${t}/`;return s.push(...Ls(`${n}index`)),s}};import{gunzipSync as My}from"fflate";var ft=class{async fetchAndExtract(e,t){let s=this.getTarballUrl(e,t),n=await dr(s,{timeoutMs:3e4});if(!n?.ok)return new Map;let i=new Uint8Array(await n.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),s=t.indexOf("/");return s>0?t.substring(s+1):t}extractDtsFiles(e){let t=new Map;try{let s=My(e),n=new TextDecoder("utf-8"),i=0;for(;i<s.length-512;){let o=s.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=n.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=n.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,h=String.fromCharCode(o[156]);if(i+=512,(h==="0"||h==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let g=s.slice(i,i+d);t.set(this.normalizeTarPath(l),n.decode(g))}i+=Math.ceil(d/512)*512}}catch{}return t}},Dy=new ft;var hr=class extends ut{constructor(e,t,s,n=new ft){super(e),this.cdnClient=t,this.cache=s,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,s){try{if(s){let i=qe.majorOf(s),o=e.filter(a=>qe.majorOf(a)===i);if(o.length)return o.sort((a,c)=>qe.cmp(c,a))[0]}let n=t?.latest;return n&&e.includes(n)?n:e[0]}catch{return e[0]}}async fetchFromVersionedRoot(e,t){let s=new A(e),n=s.version;if(!n)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(s.name,n)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?[t.subpath+".d.ts",t.subpath+"/index.d.ts"]:["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new A(t).format():t.name}}}async resolve(e){let t=A.parse(e);if(t.name)for(let s of this.typesNameCandidates(t.name)){let n=`@types/${s}`,i;try{i=await this.cdnClient.fetchVersionsIndex(n)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${n}@${o}`,t);if(a)return a}}};var mr=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=new Set,s=(n,i)=>(t.add(n[i]),null);return this.matchAll(e,/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/,n=>s(n,2)),this.matchAll(e,/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/,n=>s(n,1)),Array.from(t)}matchAll(e,t,s){let n=[];try{let i=new RegExp(t.source,"g"),o;for(;o=i.exec(e);){let a=s(o);a!==null&&n.push(a)}}catch{}return n}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var Lu="file:///node_modules",gr=class{constructor(){this.epoch=0,this.listeners=new Set}getEpoch(){return this.epoch}bumpEpoch(){this.epoch+=1;for(let e of this.listeners)try{e(this.epoch)}catch{}return this.epoch}onEpochChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${Lu}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let s=qy(t);return`${Lu}/${this.epochDir()}/${e}/${s}`}};function qy(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as By}from"lru-cache";function Eo(r){let e=new By({ttl:1e4,max:500}),t=new Map;return async function(n){try{if(await r.isNegative(n))return;let i=e.get(n);if(i&&Date.now()-i<1e4)return;let o=await r.getCachedFile(n);if(o)return{dts:o,url:n};let a=t.get(n);if(a)return a;let c=(async()=>{let l=await fetch(n,{cache:"no-store"});if(!l.ok){l.status===404&&(e.set(n,Date.now()),await r.recordNegative(n));return}let f=await l.text(),u=l.url||n;return await r.clearNegative(n),await r.setCachedFile(u,f),{dts:f,url:u}})();return t.set(n,c),await c.finally(()=>t.delete(n))}catch{return}}}var $s=class{constructor(e){this.inFlight=new Map,this.scanner=new mr,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Eo(e.cache),this.typescriptProvider=new pr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new hr(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new gr}withInFlight(e,t){let s=this.inFlight.get(e);if(s)return s;let n=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,n),n}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}capArray(e,t){return e.length<=t?e:e.slice(0,t)}pushFileIfNew(e,t,s){e.some(n=>n.path===t)||e.push({path:t,content:s})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async trySubpathWithRootFallback(e,t){let s=new A(e);return s.subpath?this.fetchRootDts(s.name,t):void 0}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let s=await t.resolve(e);if(s?.dts)return s}catch{}}subpathsMatch(e,t){return new A(e).subpath===new A(t).subpath}async fetchRootDts(e,t){let{effectivePackage:s,root:n,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(s);if(o?.content){let c=o.url??this.cdnClient.file(i?`${n}@${i}`:n,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:s}}let a;try{a=await this.fetchViaProviders(s)}catch{return}if(!(!a?.dts||!a.url)){try{await this.cache.setCachedFile(a.url,a.dts)}catch{}if(this.subpathsMatch(s,a.resolvedPkg||s)){try{await this.cache.setCachedDts(s,a.dts,a.url)}catch{}return a}}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,s){let n=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(s,n)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let s=new URL(e),n=this.extractPackageRootUrl(s);return{mainPath:this.toVirtualPath(n,s,t),packageRootUrl:n}}async expandRelativeRefs(e,t,s,n,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Pe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),Pe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,s,n,i)}catch{}}async tryRelativeRef(e,t,s,n,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=xo(c)?[c]:this.typescriptProvider.declarationCandidatesFor(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let h=await this.fetchDts(d);if(h?.dts){let g=this.toVirtualPath(s,new URL(h.url),n);this.pushFileIfNew(i,g,h.dts),await this.expandRelativeRefs(h.dts,h.url,n,i,o,s);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new A(e).name!==new A(t).name}ambientlyDeclares(e,t){for(let s of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let n=s[1];if(n===t||n.endsWith("/*")&&t.startsWith(n.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let s=e.find(n=>n.path===t);s&&(s.ambient=!0)}async prefetchBareDeps(e,t,s,n,i){try{let o=this.capArray(this.scanner.collectBareModuleRefs(e),Pe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=jy(Pe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,s,n,Pe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,s,n,i,o){if(n<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):s.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.capArray(this.scanner.collectBareModuleRefs(a.dts),Pe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,s,n-1,i,o)}async resolve(e,t,s){let n=await this.packageService.extractImports(e),i=s?[...n,...s]:n;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:s}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(s,async()=>{let n=await this.fetchRootDts(e,t)??await this.trySubpathWithRootFallback(e,t);return n?this.buildDefFromContent(e,n,n.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,s,n){let{dts:i,url:o,resolvedPkg:a}=t,c=new A(a||s),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],h=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let g=d.map(k=>k.content).join(`
420
- `);await this.prefetchBareDeps(g,l,d,h,n);let p=c.format(),y=e===p?[e]:[e,p],x=y.some(k=>this.ambientlyDeclares(i,k));return x?this.markFileAmbient(d,f):h.push(...y.map(k=>({module:k,path:f}))),{pkg:e,mainPath:f,files:d,shims:h,ambient:x}}};function To(r){return new $s(r)}import*as ce from"fs/promises";import*as de from"path";import*as Du from"os";import*as Ao from"fs/promises";import*as $u from"crypto";function te(r){return $u.createHash("sha1").update(r).digest("hex")}async function je(r){try{return JSON.parse(await Ao.readFile(r,"utf8"))}catch{return}}async function Ms(r){try{return await Ao.readFile(r,"utf8")}catch{return}}var Mu=1,Oe=de.join(Du.homedir(),".typebulb","cache"),yr=de.join(Oe,"packages"),br=de.join(Oe,"proxy"),Ds=de.join(Oe,"dts"),Fy=de.join(Oe,"emit"),Po;function R(){return Po||(Po=Uy()),Po}function qs(r,e){return de.join(Fy,te(r),e)}async function Uy(){await ce.mkdir(Oe,{recursive:!0});let r=de.join(Oe,"version.json");if((await Ky(r))?.version===Mu)return;let t=await ce.readdir(Oe).catch(()=>[]);await Promise.all(t.map(s=>ce.rm(de.join(Oe,s),{recursive:!0,force:!0}))),await ce.writeFile(r,JSON.stringify({version:Mu})+`
421
- `,"utf8")}async function Ky(r){try{let e=await ce.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as Ne from"fs/promises";import*as qu from"path";async function z(r,e){await Ne.mkdir(qu.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Ne.writeFile(t,e,"utf8"),await Ne.rename(t,r).catch(async s=>{throw await Ne.rm(t,{force:!0}).catch(()=>{}),s})}var dt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=je(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let s=await this.load();s.set(e,t),await this.persist(s)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await z(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Oo=re.join(yr,"indexes"),Bu=re.join(yr,"pinned"),Jy=re.join(yr,"meta"),Vy=re.join(yr,"negative.json"),pt=Symbol("missing"),js=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Be(new dt(Vy));async getPinnedExact(e,t){let s=`${e}@${t}`,n=this.pinnedMem.get(s);if(n!==void 0)return n===pt?void 0:n;await R();let i=await Ms(re.join(Bu,te(s)+".txt"));return this.pinnedMem.set(s,i??pt),i}async setPinnedExact(e,t,s){let n=`${e}@${t}`;this.pinnedMem.set(n,s),await R(),await z(re.join(Bu,te(n)+".txt"),s)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===pt?void 0:t;await R();let s=await je(re.join(Oo,Bs(e)+".json"));return this.indexMem.set(e,s??pt),s}async setIndex(e,t,s){let n={versions:t,distTags:s,updatedAt:Date.now()};this.indexMem.set(e,n),await R(),await z(re.join(Oo,Bs(e)+".json"),JSON.stringify(n))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Fu.rm(re.join(Oo,Bs(e)+".json"),{force:!0})}async isNegative(e){return await R(),this.negativeCache.isNegative(e)}async recordNegative(e){await R(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let s=`${e}@${t}`,n=this.metaMem.get(s);if(n!==void 0)return n===pt?void 0:n;await R();let i=await je(ju(e,t));return this.metaMem.set(s,i??pt),i}async setMeta(e,t,s,n,i){let o={dependencies:s,peerDependencies:n,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await R(),await z(ju(e,t),JSON.stringify(o))}};function ju(r,e){return re.join(Jy,Bs(r),encodeURIComponent(e)+".json")}function Bs(r){return r.replace(/\//g,"__")}var Uu={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var Wy=new js,{packageService:Fs,versionResolver:Ku,cdnClient:Ju,peerResolver:bx}=Au(Wy,Uu);var Vu=`
427
+ `;var qe=class{constructor(e){this.store=e}async isNegative(e){let t=await Ls(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let s=((await Ls(()=>this.store.get(e)))?.attempts||0)+1;await Ls(()=>this.store.set(e,{until:Date.now()+By(s),attempts:s}))}async clearNegative(e){await Ls(()=>this.store.delete(e))}};function By(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function Ls(r){try{return await r()}catch{return}}import Ky from"p-limit";import{resolve as $u}from"resolve.exports";var ut=class{constructor(e){this.fetchDts=e}fetchDtsText(e){return this.tryUrls([e])}async tryUrls(e){for(let t of e){let s=await this.fetchDts(t);if(s&&(this.looksLikeDts(s.dts)||/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(s.url)||/[?&]dts(?:[&#]|$)/i.test(s.url)))return s}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}};var Pe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},ur=["index.d.ts","index.d.mts"],fr=/\.d\.(ts|mts)$/i;function To(r){if(fr.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function $s(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function dr(r,{retries:e=2,timeoutMs:t=15e3,init:s}={}){for(let n=0;n<=e;n++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...s,signal:i.signal});if(qy(a.status)&&n<e)continue;return a}catch{if(n<e)continue;return}finally{clearTimeout(o)}}}function qy(r){return r===408||r===429||r>=500&&r<600}var pr=class extends ut{constructor(e,t){super(e),this.cdnClient=t}async loadPackageAtVersionedRoot(e,t){let s=this.cdnClient.packageJson(new T({name:e,version:t})),n=await dr(s);if(!n?.ok)return;let i;try{i=await n.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new T({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let s of e){let n=await t(s);if(n)return n}}async resolveFromSelected(e,t){if(e.kind==="types"){let n=this.cdnClient.normalizeRelative(e.path);if(!n||n==="/"||n===".")return this.tryUntilSuccess([...ur],t);if(!fr.test(n)){let i=await this.tryUntilSuccess(this.declarationCandidatesFor(n),t);if(i)return i}return t(n)}let s=this.declarationCandidatesFor(e.path);return this.tryUntilSuccess([...ur,...s],t)}toResolutionResult(e){return{kind:fr.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let s=t||".",n=e;try{let i=this.extractPathFromResult($u(n,s,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult($u(n,s,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=T.parse(e),{pkg:s,baseDir:n}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!s||!n)return;let i={name:t.name,version:t.version},o=new T(i).format(),a=new T({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(n,t.name,u);if(t.subpath){let u=this.cdnClient.ensureLeadingDotSlash(t.subpath),d=this.resolveExportsPath(s,u);if(d){let g=await this.resolveFromSelected(this.toResolutionResult(d),c);if(g)return{...g,resolvedPkg:a}}let p=await this.tryUntilSuccess(this.declarationCandidatesFor(u),c);if(p)return{...p,resolvedPkg:a}}let l=s.types??s.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(s,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,s){let n=this.cdnClient.normalizeRelative(s),i=new URL(n,e).toString(),o=await this.fetchDtsText(i);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}declarationCandidatesFor(e){if(!e||e==="./"||e==="/")return[...ur];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),s=$s(t),n=t.endsWith("/")?t:`${t}/`;return s.push(...$s(`${n}index`)),s}};import{gunzipSync as Fy}from"fflate";var ft=class{async fetchAndExtract(e,t){let s=this.getTarballUrl(e,t),n=await dr(s,{timeoutMs:3e4});if(!n?.ok)return new Map;let i=new Uint8Array(await n.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),s=t.indexOf("/");return s>0?t.substring(s+1):t}extractDtsFiles(e){let t=new Map;try{let s=Fy(e),n=new TextDecoder("utf-8"),i=0;for(;i<s.length-512;){let o=s.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=n.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=n.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let g=s.slice(i,i+d);t.set(this.normalizeTarPath(l),n.decode(g))}i+=Math.ceil(d/512)*512}}catch{}return t}},jy=new ft;var hr=class extends ut{constructor(e,t,s,n=new ft){super(e),this.cdnClient=t,this.cache=s,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,s){try{if(s){let i=Be.majorOf(s),o=e.filter(a=>Be.majorOf(a)===i);if(o.length)return o.sort((a,c)=>Be.cmp(c,a))[0]}let n=t?.latest;return n&&e.includes(n)?n:e[0]}catch{return e[0]}}async fetchFromVersionedRoot(e,t){let s=new T(e),n=s.version;if(!n)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(s.name,n)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?[t.subpath+".d.ts",t.subpath+"/index.d.ts"]:["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new T(t).format():t.name}}}async resolve(e){let t=T.parse(e);if(t.name)for(let s of this.typesNameCandidates(t.name)){let n=`@types/${s}`,i;try{i=await this.cdnClient.fetchVersionsIndex(n)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${n}@${o}`,t);if(a)return a}}};var mr=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=new Set,s=(n,i)=>(t.add(n[i]),null);return this.matchAll(e,/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/,n=>s(n,2)),this.matchAll(e,/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/,n=>s(n,1)),Array.from(t)}matchAll(e,t,s){let n=[];try{let i=new RegExp(t.source,"g"),o;for(;o=i.exec(e);){let a=s(o);a!==null&&n.push(a)}}catch{}return n}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var Mu="file:///node_modules",gr=class{constructor(){this.epoch=0,this.listeners=new Set}getEpoch(){return this.epoch}bumpEpoch(){this.epoch+=1;for(let e of this.listeners)try{e(this.epoch)}catch{}return this.epoch}onEpochChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${Mu}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let s=Uy(t);return`${Mu}/${this.epochDir()}/${e}/${s}`}};function Uy(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as Jy}from"lru-cache";function Po(r){let e=new Jy({ttl:1e4,max:500}),t=new Map;return async function(n){try{if(await r.isNegative(n))return;let i=e.get(n);if(i&&Date.now()-i<1e4)return;let o=await r.getCachedFile(n);if(o)return{dts:o,url:n};let a=t.get(n);if(a)return a;let c=(async()=>{let l=await fetch(n,{cache:"no-store"});if(!l.ok){l.status===404&&(e.set(n,Date.now()),await r.recordNegative(n));return}let f=await l.text(),u=l.url||n;return await r.clearNegative(n),await r.setCachedFile(u,f),{dts:f,url:u}})();return t.set(n,c),await c.finally(()=>t.delete(n))}catch{return}}}var Ms=class{constructor(e){this.inFlight=new Map,this.scanner=new mr,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Po(e.cache),this.typescriptProvider=new pr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new hr(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new gr}withInFlight(e,t){let s=this.inFlight.get(e);if(s)return s;let n=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,n),n}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}capArray(e,t){return e.length<=t?e:e.slice(0,t)}pushFileIfNew(e,t,s){e.some(n=>n.path===t)||e.push({path:t,content:s})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async trySubpathWithRootFallback(e,t){let s=new T(e);return s.subpath?this.fetchRootDts(s.name,t):void 0}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let s=await t.resolve(e);if(s?.dts)return s}catch{}}subpathsMatch(e,t){return new T(e).subpath===new T(t).subpath}async fetchRootDts(e,t){let{effectivePackage:s,root:n,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(s);if(o?.content){let c=o.url??this.cdnClient.file(i?`${n}@${i}`:n,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:s}}let a;try{a=await this.fetchViaProviders(s)}catch{return}if(!(!a?.dts||!a.url)){try{await this.cache.setCachedFile(a.url,a.dts)}catch{}if(this.subpathsMatch(s,a.resolvedPkg||s)){try{await this.cache.setCachedDts(s,a.dts,a.url)}catch{}return a}}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,s){let n=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(s,n)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let s=new URL(e),n=this.extractPackageRootUrl(s);return{mainPath:this.toVirtualPath(n,s,t),packageRootUrl:n}}async expandRelativeRefs(e,t,s,n,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Pe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),Pe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,s,n,i)}catch{}}async tryRelativeRef(e,t,s,n,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=To(c)?[c]:this.typescriptProvider.declarationCandidatesFor(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let g=this.toVirtualPath(s,new URL(p.url),n);this.pushFileIfNew(i,g,p.dts),await this.expandRelativeRefs(p.dts,p.url,n,i,o,s);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new T(e).name!==new T(t).name}ambientlyDeclares(e,t){for(let s of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let n=s[1];if(n===t||n.endsWith("/*")&&t.startsWith(n.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let s=e.find(n=>n.path===t);s&&(s.ambient=!0)}async prefetchBareDeps(e,t,s,n,i){try{let o=this.capArray(this.scanner.collectBareModuleRefs(e),Pe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=Ky(Pe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,s,n,Pe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,s,n,i,o){if(n<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):s.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.capArray(this.scanner.collectBareModuleRefs(a.dts),Pe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,s,n-1,i,o)}async resolve(e,t,s){let n=await this.packageService.extractImports(e),i=s?[...n,...s]:n;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:s}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(s,async()=>{let n=await this.fetchRootDts(e,t)??await this.trySubpathWithRootFallback(e,t);return n?this.buildDefFromContent(e,n,n.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,s,n){let{dts:i,url:o,resolvedPkg:a}=t,c=new T(a||s),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let g=d.map(S=>S.content).join(`
428
+ `);await this.prefetchBareDeps(g,l,d,p,n);let h=c.format(),y=e===h?[e]:[e,h],x=y.some(S=>this.ambientlyDeclares(i,S));return x?this.markFileAmbient(d,f):p.push(...y.map(S=>({module:S,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:x}}};function Oo(r){return new Ms(r)}import*as le from"fs/promises";import*as pe from"path";import*as qu from"os";import*as No from"fs/promises";import*as Du from"crypto";function ee(r){return Du.createHash("sha1").update(r).digest("hex")}async function Fe(r){try{return JSON.parse(await No.readFile(r,"utf8"))}catch{return}}async function Ds(r){try{return await No.readFile(r,"utf8")}catch{return}}var Bu=1,Oe=pe.join(qu.homedir(),".typebulb","cache"),yr=pe.join(Oe,"packages"),br=pe.join(Oe,"proxy"),Bs=pe.join(Oe,"dts"),Vy=pe.join(Oe,"emit"),Co;function I(){return Co||(Co=Wy()),Co}function qs(r,e){return pe.join(Vy,ee(r),e)}async function Wy(){await le.mkdir(Oe,{recursive:!0});let r=pe.join(Oe,"version.json");if((await Yy(r))?.version===Bu)return;let t=await le.readdir(Oe).catch(()=>[]);await Promise.all(t.map(s=>le.rm(pe.join(Oe,s),{recursive:!0,force:!0}))),await le.writeFile(r,JSON.stringify({version:Bu})+`
429
+ `,"utf8")}async function Yy(r){try{let e=await le.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as Ne from"fs/promises";import*as Fu from"path";async function G(r,e){await Ne.mkdir(Fu.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Ne.writeFile(t,e,"utf8"),await Ne.rename(t,r).catch(async s=>{throw await Ne.rm(t,{force:!0}).catch(()=>{}),s})}var dt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Fe(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let s=await this.load();s.set(e,t),await this.persist(s)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await G(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Ro=te.join(yr,"indexes"),ju=te.join(yr,"pinned"),Hy=te.join(yr,"meta"),Gy=te.join(yr,"negative.json"),pt=Symbol("missing"),js=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new qe(new dt(Gy));async getPinnedExact(e,t){let s=`${e}@${t}`,n=this.pinnedMem.get(s);if(n!==void 0)return n===pt?void 0:n;await I();let i=await Ds(te.join(ju,ee(s)+".txt"));return this.pinnedMem.set(s,i??pt),i}async setPinnedExact(e,t,s){let n=`${e}@${t}`;this.pinnedMem.set(n,s),await I(),await G(te.join(ju,ee(n)+".txt"),s)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===pt?void 0:t;await I();let s=await Fe(te.join(Ro,Fs(e)+".json"));return this.indexMem.set(e,s??pt),s}async setIndex(e,t,s){let n={versions:t,distTags:s,updatedAt:Date.now()};this.indexMem.set(e,n),await I(),await G(te.join(Ro,Fs(e)+".json"),JSON.stringify(n))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ju.rm(te.join(Ro,Fs(e)+".json"),{force:!0})}async isNegative(e){return await I(),this.negativeCache.isNegative(e)}async recordNegative(e){await I(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let s=`${e}@${t}`,n=this.metaMem.get(s);if(n!==void 0)return n===pt?void 0:n;await I();let i=await Fe(Uu(e,t));return this.metaMem.set(s,i??pt),i}async setMeta(e,t,s,n,i){let o={dependencies:s,peerDependencies:n,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await I(),await G(Uu(e,t),JSON.stringify(o))}};function Uu(r,e){return te.join(Hy,Fs(r),encodeURIComponent(e)+".json")}function Fs(r){return r.replace(/\//g,"__")}var Ku={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var zy=new js,{packageService:Us,versionResolver:Vu,cdnClient:Wu,peerResolver:Rx}=Ou(zy,Ku);var Yu=`
422
430
  (() => {
423
431
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
424
432
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
425
433
  // otherwise fail with cryptic CORS/CSP errors. Detect it and fail clearly.
426
434
  //
427
435
  // The same sandboxed-iframe path also backs the CLI's default (untrusted) launch
428
- // (Specs/Typebulb-CLI-Trust.md), where the right message names \`--trust\` rather
436
+ // (TB-Trust.md), where the right message names \`--trust\` rather
429
437
  // than "no host bridge". The host injects window.__TB_EMBED_ERR__ to override the
430
438
  // text; absent it, the nested-bulb wording applies.
431
439
  const isEmbedded = window.parent !== window;
@@ -628,10 +636,11 @@ declare const tb: {${Pu}${Ou}${Nu}${Ru}${Iy}${Cu}${Iu}
628
636
  };
629
637
  }
630
638
  })();
631
- `;function Us(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Ks=` *, *::before, *::after { box-sizing: border-box; }
639
+ `;function Js(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Ks=` *, *::before, *::after { box-sizing: border-box; }
640
+ canvas { max-width: 100%; }
632
641
  body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
633
642
  html[data-theme="dark"] { color-scheme: dark; }
634
- html[data-theme="light"] { color-scheme: light; }`;function Js(r,e){let t=s=>s.replace(/<\/script/gi,"<\\/script");return` <script>
643
+ html[data-theme="light"] { color-scheme: light; }`;function Vs(r,e){let t=s=>s.replace(/<\/script/gi,"<\\/script");return` <script>
635
644
  (function() {
636
645
  try {
637
646
  var KEY = ${t(JSON.stringify("tb-theme:"+r))};
@@ -666,14 +675,14 @@ declare const tb: {${Pu}${Ou}${Nu}${Ru}${Iy}${Cu}${Iu}
666
675
  });
667
676
  } catch (e) {}
668
677
  })();
669
- </script>`}function Wu(r){let{name:e,code:t,css:s,html:n,data:i,insight:o,importMap:a,watch:c,theme:l,embedded:f}=r,u=n.trim()||'<div id="app"></div>',d=f?"":`
670
- html, body { height: 100%; }`,h=p=>p.replace(/<\/script/gi,"<\\/script"),g={imports:Hy(a.imports)};return`<!DOCTYPE html>
678
+ </script>`}function Hu(r){let{name:e,code:t,css:s,html:n,data:i,insight:o,importMap:a,watch:c,theme:l,embedded:f}=r,u=n.trim()||'<div id="app"></div>',d=f?"":`
679
+ html, body { height: 100%; }`,p=h=>h.replace(/<\/script/gi,"<\\/script"),g={imports:Xy(a.imports)};return`<!DOCTYPE html>
671
680
  <html>
672
681
  <head>
673
682
  <meta charset="utf-8">
674
683
  <meta name="viewport" content="width=device-width, initial-scale=1">
675
- <title>${Us(e)} - typebulb</title>
676
- ${Js(e,l)}
684
+ <title>${Js(e)} - typebulb</title>
685
+ ${Vs(e,l)}
677
686
  <script type="importmap">
678
687
  ${JSON.stringify(g,null,2)}
679
688
  </script>
@@ -687,21 +696,21 @@ ${s}
687
696
  <body>
688
697
  ${u}
689
698
 
690
- ${i.length>0?`<script>window.__TB_DATA__ = ${h(JSON.stringify(i))};</script>`:""}
691
- ${o?`<script>window.__TB_INSIGHT__ = ${h(JSON.stringify(o))};</script>`:""}
699
+ ${i.length>0?`<script>window.__TB_DATA__ = ${p(JSON.stringify(i))};</script>`:""}
700
+ ${o?`<script>window.__TB_INSIGHT__ = ${p(JSON.stringify(o))};</script>`:""}
692
701
  ${c?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
693
702
 
694
703
  <script>
695
- ${Vu}
704
+ ${Yu}
696
705
  </script>
697
706
 
698
- ${Yy}
707
+ ${Qy}
699
708
 
700
709
  <script type="module">
701
- ${h(t)}
710
+ ${p(t)}
702
711
  </script>
703
712
  </body>
704
- </html>`}var Yy=`<script>
713
+ </html>`}var Qy=`<script>
705
714
  (function () {
706
715
  if (window.parent === window) return;
707
716
  var de = document.documentElement;
@@ -772,10 +781,10 @@ ${h(t)}
772
781
  }
773
782
  });
774
783
  })();
775
- </script>`;function Hy(r){let e={};for(let[t,s]of Object.entries(r))e[t]=s.startsWith("https://")?"/proxy/"+s:s;return e}import*as Ws from"fs/promises";import*as Vs from"path";import{existsSync as Yu,readFileSync as Gy}from"fs";import{execFile as zy}from"child_process";import{promisify as Qy}from"util";import{satisfies as Xy}from"semver";var Zy=Qy(zy);async function Ys(r,e,t){let n=r.map(o=>eb(o,t)).filter(o=>!tb(o,e));if(n.length===0)return;await Ws.mkdir(e,{recursive:!0});let i=Vs.join(e,"package.json");Yu(i)||await Ws.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${n.join(", ")}`),await Zy("npm",["install","--no-audit","--no-fund",...n],{cwd:e,shell:!0})}function eb(r,e){if(!e||Gu(r))return r;let t=e[r];return t?`${r}@${t}`:r}function tb(r,e){let t=Vs.join(e,"node_modules",Hu(r));if(!Yu(t))return!1;let s=Gu(r);if(!s)return!0;try{let n=JSON.parse(Gy(Vs.join(t,"package.json"),"utf-8")).version;return Xy(n,s)}catch{return!1}}function Hs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,s;for(;s=t.exec(r);){let n=s[1];if(n.includes(":"))continue;let i=n.startsWith("@")?n.split("/").slice(0,2).join("/"):n.split("/")[0];e.add(i)}return[...e]}function Hu(r){if(r.startsWith("@")){let t=r.indexOf("/");if(t<0)return r;let s=r.indexOf("@",t+1);return s<0?r:r.slice(0,s)}let e=r.indexOf("@");return e<0?r:r.slice(0,e)}function Gu(r){let e=Hu(r);return r.length>e.length?r.slice(e.length+1):""}async function zu(r){let t=(await Ce.readdir(r)).find(s=>s.endsWith(".bulb.md"));return t?Gs.join(r,t):null}async function pe(r){let e=await Ce.readFile(r,"utf-8"),t=Rr(e);if(!t)throw new Error("Invalid .bulb.md file format");let s=Is(t);return{bulb:s,config:ka(s.config)}}async function No(r,e,t,s){let n=mo(r,{serverOnly:!0});if(n.error)throw new Error(`Server compilation error: ${n.error}`);let i=n.code;t&&(i=await ma(i,t));let o=Gs.join(e,".typebulb");await Ce.mkdir(o,{recursive:!0});let a=Hs(i);a.length>0&&await Ys(a,o,s);let c=Gs.join(o,"server.mjs");return await Ce.writeFile(c,i,"utf-8"),await import(`${rb(c).href}?t=${Date.now()}`)}async function Co(r,e,t,s,n){let{bulb:i,config:o}=await pe(r),a=po(i.data),c=mo(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Fs.buildImportMap(c.code,o.dependencies??{},s?new Set([s.name]):void 0);s&&(l.imports[s.name]=s.entryUrl);let f=Wu({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await No(i.server,n,s,o.dependencies)),{html:f,bulb:i,serverExports:u}}vr();import ub from"open";async function mt(r){await ub(r)}var Zu=new Set(["claude"]);function ef(r){return Zu.has(r)}function Lo(){return[...Zu]}import*as cf from"path";import{spawn as Pb}from"child_process";import*as U from"fs/promises";import*as q from"path";import*as gt from"path";var fb=gt.join(Ds,"pkg"),db=gt.join(Ds,"files"),pb=gt.join(Ds,"negative.json"),Xs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Be(new dt(pb));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await R();let t=await je(tf(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,s){let n={content:t,url:s};this.pkgMem.set(e,n),await Qs(async()=>{await R(),await z(tf(e),JSON.stringify(n))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await R();let t=await Ms(rf(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Qs(async()=>{await R(),await z(rf(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Qs(async()=>{await R(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Qs(()=>this.negativeCache.clearNegative(e))}};async function Qs(r){try{await r()}catch{}}function tf(r){return gt.join(fb,te(r)+".json")}function rf(r){return gt.join(db,te(r)+".txt")}var $o;function hb(){return $o||($o=To({cache:new Xs,cdnClient:Ju,packageService:Fs,versionResolver:Ku})),$o}var sf="file:///node_modules/";async function nf(r){let e=qs(r.emitKey,"typecheck");await R(),await U.rm(e,{recursive:!0,force:!0}),await U.mkdir(e,{recursive:!0});let t=bb(r.jsxImportSource,r.dependencies),s=await hb().resolve(r.code,r.dependencies,t),n=r.local?.name,i=n?s.filter(f=>f.pkg!==n):s,o=new Set;for(let f of i)for(let u of f.files){let d=Zs(u.path);if(!d||o.has(d))continue;o.add(d);let h=q.join(e,"node_modules",d);await U.mkdir(q.dirname(h),{recursive:!0}),await U.writeFile(h,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Zs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Zs(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=Zs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await wb(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=mb(r.jsxImportSource,a,[...c]);return await U.writeFile(q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
776
- `,"utf8"),await U.writeFile(q.join(e,"code.tsx"),r.code,"utf8"),await U.writeFile(q.join(e,"tb.d.ts"),So,"utf8"),{dir:e}}function mb(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:gb([...wo,...vo]),jsx:"react-jsx",jsxImportSource:r??"react",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0,baseUrl:".",paths:e},include:["code.tsx","tb.d.ts",...t]}}function gb(r){return r.filter(e=>!e.since).map(e=>yb(e.name))}function yb(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function bb(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Zs(r){if(!r.startsWith(sf))return;let e=r.slice(sf.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function wb(r,e){if(!r.typesAbs)return;let t=q.dirname(r.typesAbs),s=q.join(e,"node_modules",r.name);for(let n of await vb(t)){let i=q.join(s,q.relative(t,n));await U.mkdir(q.dirname(i),{recursive:!0}),await U.copyFile(n,i)}return q.basename(r.typesAbs)}async function vb(r){let e=[];async function t(s){let n=await U.readdir(s,{withFileTypes:!0});for(let i of n){let o=q.join(s,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as Q from"fs/promises";import*as he from"path";import{existsSync as Sb}from"fs";var kb="^22";async function of(r){let e=qs(r.emitKey,"typecheck-server");await R(),await Q.rm(e,{recursive:!0,force:!0}),await Q.mkdir(e,{recursive:!0});let t=he.join(r.bulbDir,".typebulb"),s=Hs(r.server).filter(o=>o!==r.local?.name);await Ys([`@types/node@${kb}`,...s],t,r.dependencies);let n=he.join(t,"node_modules"),i=he.join(e,"node_modules");return await Eb(n,i),await Q.writeFile(he.join(e,"server.ts"),r.server,"utf8"),await Q.writeFile(he.join(e,"tb.d.ts"),ko,"utf8"),await Q.writeFile(he.join(e,"tsconfig.json"),JSON.stringify(xb(r.local),null,2)+`
777
- `,"utf8"),{dir:e}}function xb(r){let e={target:"es2023",module:"esnext",moduleResolution:"bundler",lib:["ES2023"],types:["node"],strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),s=t(he.dirname(r.typesAbs)),n=t(r.typesAbs).replace(/\.d\.ts$/,"");e.baseUrl=".",e.paths={[r.name]:[n],[`${r.name}/*`]:[`${s}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function Eb(r,e){if(!Sb(r)){await Q.mkdir(e,{recursive:!0});return}await Q.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await Q.symlink(r,e,t)}var Ke=["client"],Je=["client","server"],Tb=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Ke},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:Je},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Ke},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Ke},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Ke},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:Je},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:Je},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:Je},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:Je},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:Je},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:Je},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Ke},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Ke},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Ke}];function Mo(r,e){if(!r)return[];let{target:t}=e,s=[],n=r.split(`
778
- `);for(let i=0;i<n.length;i++){let o=n[i],a=i+1;for(let c of Tb)c.targets.includes(t)&&c.pattern.test(o)&&s.push({type:c.type,severity:"error",message:Ab(c.type,a),lineNumber:a,lineContent:o})}return s}function Ab(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
784
+ </script>`;function Xy(r){let e={};for(let[t,s]of Object.entries(r))e[t]=s.startsWith("https://")?"/proxy/"+s:s;return e}import*as Ys from"fs/promises";import*as Ws from"path";import{existsSync as Gu,readFileSync as Zy}from"fs";import{execFile as eb}from"child_process";import{promisify as tb}from"util";import{satisfies as rb}from"semver";var sb=tb(eb);async function Hs(r,e,t){let n=r.map(o=>nb(o,t)).filter(o=>!ib(o,e));if(n.length===0)return;await Ys.mkdir(e,{recursive:!0});let i=Ws.join(e,"package.json");Gu(i)||await Ys.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${n.join(", ")}`),await sb("npm",["install","--no-audit","--no-fund",...n],{cwd:e,shell:!0})}function nb(r,e){if(!e||Qu(r))return r;let t=e[r];return t?`${r}@${t}`:r}function ib(r,e){let t=Ws.join(e,"node_modules",zu(r));if(!Gu(t))return!1;let s=Qu(r);if(!s)return!0;try{let n=JSON.parse(Zy(Ws.join(t,"package.json"),"utf-8")).version;return rb(n,s)}catch{return!1}}function Gs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,s;for(;s=t.exec(r);){let n=s[1];if(n.includes(":"))continue;let i=n.startsWith("@")?n.split("/").slice(0,2).join("/"):n.split("/")[0];e.add(i)}return[...e]}function zu(r){if(r.startsWith("@")){let t=r.indexOf("/");if(t<0)return r;let s=r.indexOf("@",t+1);return s<0?r:r.slice(0,s)}let e=r.indexOf("@");return e<0?r:r.slice(0,e)}function Qu(r){let e=zu(r);return r.length>e.length?r.slice(e.length+1):""}async function Xu(r){let t=(await Ce.readdir(r)).find(s=>s.endsWith(".bulb.md"));return t?zs.join(r,t):null}async function re(r){let e=await Ce.readFile(r,"utf-8"),t=_r(e);if(!t)throw new Error("Invalid .bulb.md file format");let s=Is(t);return{bulb:s,config:Ea(s.config)}}async function wr(r,e,t,s){let n=bo(r,{serverOnly:!0});if(n.error)throw new Error(`Server compilation error: ${n.error}`);let i=n.code;t&&(i=await ya(i,t));let o=zs.join(e,".typebulb");await Ce.mkdir(o,{recursive:!0});let a=Gs(i);a.length>0&&await Hs(a,o,s);let c=zs.join(o,"server.mjs");return await Ce.writeFile(c,i,"utf-8"),await import(`${ob(c).href}?t=${Date.now()}`)}async function Io(r,e,t,s,n){let{bulb:i,config:o}=await re(r),a=go(i.data),c=bo(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Us.buildImportMap(c.code,o.dependencies??{},s?new Set([s.name]):void 0);s&&(l.imports[s.name]=s.entryUrl);let f=Hu({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await wr(i.server,n,s,o.dependencies)),{html:f,bulb:i,serverExports:u}}Sr();import hb from"open";async function mt(r){await hb(r)}var tf=new Set(["claude"]);function rf(r){return tf.has(r)}function Mo(){return[...tf]}import*as uf from"path";import{spawn as Rb}from"child_process";import*as j from"fs/promises";import*as B from"path";import*as gt from"path";var mb=gt.join(Bs,"pkg"),gb=gt.join(Bs,"files"),yb=gt.join(Bs,"negative.json"),Zs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new qe(new dt(yb));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await I();let t=await Fe(sf(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,s){let n={content:t,url:s};this.pkgMem.set(e,n),await Xs(async()=>{await I(),await G(sf(e),JSON.stringify(n))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await I();let t=await Ds(nf(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Xs(async()=>{await I(),await G(nf(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Xs(async()=>{await I(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Xs(()=>this.negativeCache.clearNegative(e))}};async function Xs(r){try{await r()}catch{}}function sf(r){return gt.join(mb,ee(r)+".json")}function nf(r){return gt.join(gb,ee(r)+".txt")}var Do;function bb(){return Do||(Do=Oo({cache:new Zs,cdnClient:Wu,packageService:Us,versionResolver:Vu})),Do}var of="file:///node_modules/";async function af(r){let e=qs(r.emitKey,"typecheck");await I(),await j.rm(e,{recursive:!0,force:!0}),await j.mkdir(e,{recursive:!0});let t=kb(r.jsxImportSource,r.dependencies),s=await bb().resolve(r.code,r.dependencies,t),n=r.local?.name,i=n?s.filter(f=>f.pkg!==n):s,o=new Set;for(let f of i)for(let u of f.files){let d=en(u.path);if(!d||o.has(d))continue;o.add(d);let p=B.join(e,"node_modules",d);await j.mkdir(B.dirname(p),{recursive:!0}),await j.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=en(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=en(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=en(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await xb(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=wb(r.jsxImportSource,a,[...c]);return await j.writeFile(B.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
785
+ `,"utf8"),await j.writeFile(B.join(e,"code.tsx"),r.code,"utf8"),await j.writeFile(B.join(e,"tb.d.ts"),Eo,"utf8"),{dir:e}}function wb(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:vb([...ko,...xo]),jsx:"react-jsx",jsxImportSource:r??"react",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0,baseUrl:".",paths:e},include:["code.tsx","tb.d.ts",...t]}}function vb(r){return r.filter(e=>!e.since).map(e=>Sb(e.name))}function Sb(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function kb(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function en(r){if(!r.startsWith(of))return;let e=r.slice(of.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function xb(r,e){if(!r.typesAbs)return;let t=B.dirname(r.typesAbs),s=B.join(e,"node_modules",r.name);for(let n of await Eb(t)){let i=B.join(s,B.relative(t,n));await j.mkdir(B.dirname(i),{recursive:!0}),await j.copyFile(n,i)}return B.basename(r.typesAbs)}async function Eb(r){let e=[];async function t(s){let n=await j.readdir(s,{withFileTypes:!0});for(let i of n){let o=B.join(s,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as z from"fs/promises";import*as he from"path";import{existsSync as Ab}from"fs";var Tb="^22";async function cf(r){let e=qs(r.emitKey,"typecheck-server");await I(),await z.rm(e,{recursive:!0,force:!0}),await z.mkdir(e,{recursive:!0});let t=he.join(r.bulbDir,".typebulb"),s=Gs(r.server).filter(o=>o!==r.local?.name);await Hs([`@types/node@${Tb}`,...s],t,r.dependencies);let n=he.join(t,"node_modules"),i=he.join(e,"node_modules");return await Ob(n,i),await z.writeFile(he.join(e,"server.ts"),r.server,"utf8"),await z.writeFile(he.join(e,"tb.d.ts"),Ao,"utf8"),await z.writeFile(he.join(e,"tsconfig.json"),JSON.stringify(Pb(r.local),null,2)+`
786
+ `,"utf8"),{dir:e}}function Pb(r){let e={target:"es2023",module:"esnext",moduleResolution:"bundler",lib:["ES2023"],types:["node"],strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),s=t(he.dirname(r.typesAbs)),n=t(r.typesAbs).replace(/\.d\.ts$/,"");e.baseUrl=".",e.paths={[r.name]:[n],[`${r.name}/*`]:[`${s}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function Ob(r,e){if(!Ab(r)){await z.mkdir(e,{recursive:!0});return}await z.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await z.symlink(r,e,t)}var Je=["client"],Ke=["client","server"],Nb=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Je},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:Ke},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Je},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Je},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Je},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:Ke},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:Ke},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:Ke},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:Ke},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:Ke},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:Ke},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Je},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Je},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Je}];function Bo(r,e){if(!r)return[];let{target:t}=e,s=[],n=r.split(`
787
+ `);for(let i=0;i<n.length;i++){let o=n[i],a=i+1;for(let c of Nb)c.targets.includes(t)&&c.pattern.test(o)&&s.push({type:c.type,severity:"error",message:Cb(c.type,a),lineNumber:a,lineContent:o})}return s}function Cb(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
779
788
 
780
789
  **CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
781
790
 
@@ -929,49 +938,49 @@ import { something } from 'module-name'
929
938
  const something = require('module-name') // NOT SUPPORTED!
930
939
  \`\`\`
931
940
 
932
- **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}async function lf(r,e){let{bulb:t,config:s}=await pe(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let n=!1;t.code&&(n=af(Mo(t.code,{target:"client"}),"client")||n),t.server&&(n=af(Mo(t.server,{target:"server"}),"server")||n);let i=[];if(t.code){let{dir:o}=await nf({code:t.code,dependencies:s.dependencies??{},jsxImportSource:s.ts?.jsxImportSource,emitKey:r,local:e});i.push({role:"client",dir:o})}if(t.server){let{dir:o}=await of({server:t.server,bulbDir:cf.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:s.dependencies});i.push({role:"server",dir:o})}for(let{role:o,dir:a}of i){let{stdout:c,exitCode:l}=await Ob(a);for(let f of c.split(/\r?\n/))f.trim()&&console.log(`${o} ${f}`);l!==0&&(n=!0)}n&&process.exit(1)}function af(r,e){for(let t of r)for(let s of t.message.split(`
933
- `))console.log(`${e} ${s}`);return r.length>0}function Ob(r){return new Promise(e=>{let t=Pb("npx",["tsc","--noEmit"],{cwd:r,shell:!0}),s="";t.stdout?.on("data",n=>{s+=n.toString()}),t.stderr?.on("data",n=>{s+=n.toString()}),t.on("close",n=>e({stdout:s,exitCode:n??1}))})}en();vr();async function uf(r,e){let{bulb:t}=await pe(r),s=yt(t);if(Ue(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),s&&console.log(` (it uses ${s})`);return}s?(console.log(`This bulb appears to use ${s}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}vr();import*as Sr from"path";async function ff(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let s=_o();if(!s.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let n of s)console.log(` ${n}`);return}let t=Sr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),ht(t,e),console.log(e?`Trusted ${Sr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Sr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}wr();Ve();import{readFileSync as qb,existsSync as Bb}from"fs";import*as We from"path";import{fileURLToPath as jb}from"url";function wf(){let r=We.dirname(jb(import.meta.url));for(;!Bb(We.join(r,"package.json"));){let e=We.dirname(r);if(e===r)break;r=e}return r}function nn(){return We.join(wf(),"README.md")}function qo(){return We.join(wf(),"description.md")}function Fb(r){return`---
941
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}async function ff(r,e){let{bulb:t,config:s}=await re(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let n=!1;t.code&&(n=lf(Bo(t.code,{target:"client"}),"client")||n),t.server&&(n=lf(Bo(t.server,{target:"server"}),"server")||n);let i=[];if(t.code){let{dir:a}=await af({code:t.code,dependencies:s.dependencies??{},jsxImportSource:s.ts?.jsxImportSource,emitKey:r,local:e});i.push({role:"client",dir:a})}if(t.server){let{dir:a}=await cf({server:t.server,bulbDir:uf.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:s.dependencies});i.push({role:"server",dir:a})}for(let{role:a,dir:c}of i){let{stdout:l,exitCode:f}=await Ib(c);for(let u of l.split(/\r?\n/))u.trim()&&console.log(`${a} ${u}`);f!==0&&(n=!0)}n&&process.exit(1);let o=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${o})`)}function lf(r,e){for(let t of r)for(let s of t.message.split(`
942
+ `))console.log(`${e} ${s}`);return r.length>0}function Ib(r){return new Promise(e=>{let t=Rb("npx",["tsc","--noEmit"],{cwd:r,shell:!0}),s="";t.stdout?.on("data",n=>{s+=n.toString()}),t.stderr?.on("data",n=>{s+=n.toString()}),t.on("close",n=>e({stdout:s,exitCode:n??1}))})}tn();Sr();async function df(r,e){let{bulb:t}=await re(r),s=yt(t);if(Ue(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),s&&console.log(` (it uses ${s})`);return}s?(console.log(`This bulb appears to use ${s}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}Sr();import*as kr from"path";async function pf(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let s=$o();if(!s.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let n of s)console.log(` ${n}`);return}let t=kr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),ht(t,e),console.log(e?`Trusted ${kr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${kr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}vr();Ve();import{readFileSync as Ub,existsSync as Jb}from"fs";import*as We from"path";import{fileURLToPath as Kb}from"url";function Sf(){let r=We.dirname(Kb(import.meta.url));for(;!Jb(We.join(r,"package.json"));){let e=We.dirname(r);if(e===r)break;r=e}return r}function on(){return We.join(Sf(),"README.md")}function Fo(){return We.join(Sf(),"description.md")}function Vb(r){return`---
934
943
  name: typebulb
935
- description: ${qb(qo(),"utf8").trim().replace(/\s+/g," ")}
944
+ description: ${Ub(Fo(),"utf8").trim().replace(/\s+/g," ")}
936
945
  version: ${r}
937
- ---`}function Ub(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function vf(r,e){return`${Fb(e)}
946
+ ---`}function Wb(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function kf(r,e){return`${Vb(e)}
938
947
 
939
- ${Ub(e)}
948
+ ${Wb(e)}
940
949
 
941
950
  ${r.trim()}
942
- `}async function Bo(r,e){let t=F(r);return(await K()).find(s=>s.cwd!=null&&F(s.cwd)===t&&(e?s.agent===e:s.agent!=null))}async function Sf(){let r=await Bo(process.cwd()),e=r?.agent,s=[e?`Viewer '${e}' is up at ${r?.url} \u2014 the embedded bulbs render live there.`:"No viewer is running \u2014 to render embedded bulbs live inline, start one with `npx typebulb agent:claude --no-open`; it prints a localhost link that opens the viewer.","","Agents: Read the bulb-authoring skill before writing a bulb \u2014 get it assembled as one SKILL.md with `npx typebulb skill`, or read its parts directly:",` - description: ${qo()}`,` - skill body (the README is the skill): ${nn()}`];process.stdout.write(s.join(`
951
+ `}async function jo(r,e){let t=F(r);return(await U()).find(s=>s.cwd!=null&&F(s.cwd)===t&&(e?s.agent===e:s.agent!=null))}async function xf(){let r=await jo(process.cwd()),e=r?.agent,s=[e?`Mirror '${e}' is up at ${r?.url} \u2014 the embedded bulbs render live there.`:"No mirror is running \u2014 to render embedded bulbs live inline, start one with `npx typebulb agent:claude --no-open`; it prints a localhost link that opens the mirror.","","Agents: Read the bulb-authoring skill before writing a bulb \u2014 get it assembled as one SKILL.md with `npx typebulb skill`, or read its parts directly:",` - description: ${Fo()}`,` - skill body (the README is the skill): ${on()}`];process.stdout.write(s.join(`
943
952
  `)+`
944
- `)}import{readFileSync as Kb,existsSync as Jb}from"fs";import*as me from"path";function Vb(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Ie(r,e=process.cwd()){let t={},s=[];for(let n of Vb(r)){let i;try{i=Kb(me.resolve(e,n),"utf-8")}catch{continue}s.push(n);for(let[o,a]of Wb(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=n)}return{mode:r,sources:t,loaded:s}}function*Wb(r){for(let e of r.split(`
945
- `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let s=t.indexOf("=");if(s===-1)continue;let n=t.slice(0,s).trim(),i=t.slice(s+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[n,i]}}function Yb(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let s;s=t.exec(r);)e.add(s[1]??s[2]);return[...e]}function vt(r,e,t){let{sources:s,mode:n,loaded:i}=r,o=process.cwd(),a=me.dirname(e),c=`(mode: ${n??"none"})`,l=t?Yb(t):[],f=l.filter(h=>s[h]).map(h=>`${h} \u2190 ${s[h]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),n&&!i.some(h=>h===`.env.${n}`||h===`.env.${n}.local`)&&console.log(`env: mode=${n} \u2014 no .env.${n} found; using .env`);let u=me.resolve(a)!==me.resolve(o);if(u)for(let h of[".env.local",".env"])Jb(me.join(a,h))&&console.log(`env: ${me.join(a,h)} present but not loaded (cwd is ${o})`);let d=l.filter(h=>process.env[h]===void 0);if(d.length){let h=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${h}`)}}var kt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"},Hb="https://api.typebulb.com/api/models",Gb=1440*60*1e3,St=null;async function on(){if(!St||Date.now()-St.fetchedAt>Gb){let r=await fetch(Hb);if(!r.ok)return St?kf(St.models):[];St={models:await r.json(),fetchedAt:Date.now()}}return kf(St.models)}function kf(r){let e=new Set(Object.entries(kt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function xf(){return Object.values(kt).some(r=>!!process.env[r])}function Ef(r,e,t){let s=Math.max(...r.map(o=>o.name.length)),n=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(s)} ${o.friendlyName.padEnd(n)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
946
- `)}async function Tf(r){if(Ie(r),!xf()){console.log("No AI provider keys found in this directory's .env. Set one of these to use tb.ai:");for(let[t,s]of Object.entries(kt))console.log(` ${s.padEnd(20)} (${t})`);console.log("Then re-run `typebulb models`.");return}let e=await on();if(e.length===0){console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.");return}console.log(Ef(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL))}import*as Af from"fs/promises";async function Pf(r){let e=nn(),t;try{t=await Af.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(vf(t,r))}wr();Ve();import*as jo from"path";function zb(r,e,t){if(/^\d+$/.test(e))return r.find(n=>n.pid===parseInt(e,10));let s=r.filter(n=>n.agent===e);return s.length?(t?s.find(i=>i.cwd&&F(i.cwd)===F(t)):void 0)??s[0]:r.find(n=>F(n.file)===F(e))}function Of(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function Nf(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Of(r,t=>console.log(t)),console.log(`
947
- `+e)}function Cf(r,e,t,s){let n=zb(r,e,s);if(n)return n;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Of(r,i=>console.error(i))):console.error("No bulb servers are running."),process.exit(1)}async function If(r,e){if(!r){Nf(await K(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=Cf(await K(),r,"logs",process.cwd()),s=bt(t.pid),n=s.text;if(e.lines&&e.lines>0){let i=n.split(`
953
+ `)}import{readFileSync as Yb,existsSync as Hb}from"fs";import*as me from"path";function Gb(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function ue(r,e=process.cwd()){let t={},s=[];for(let n of Gb(r)){let i;try{i=Yb(me.resolve(e,n),"utf-8")}catch{continue}s.push(n);for(let[o,a]of zb(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=n)}return{mode:r,sources:t,loaded:s}}function*zb(r){for(let e of r.split(`
954
+ `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let s=t.indexOf("=");if(s===-1)continue;let n=t.slice(0,s).trim(),i=t.slice(s+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[n,i]}}function Qb(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let s;s=t.exec(r);)e.add(s[1]??s[2]);return[...e]}function Re(r,e,t){let{sources:s,mode:n,loaded:i}=r,o=process.cwd(),a=me.dirname(e),c=`(mode: ${n??"none"})`,l=t?Qb(t):[],f=l.filter(p=>s[p]).map(p=>`${p} \u2190 ${s[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),n&&!i.some(p=>p===`.env.${n}`||p===`.env.${n}.local`)&&console.log(`env: mode=${n} \u2014 no .env.${n} found; using .env`);let u=me.resolve(a)!==me.resolve(o);if(u)for(let p of[".env.local",".env"])Hb(me.join(a,p))&&console.log(`env: ${me.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}var St={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"},Xb="https://api.typebulb.com/api/models",Zb=1440*60*1e3,vt=null;async function an(){if(!vt||Date.now()-vt.fetchedAt>Zb){let r=await fetch(Xb);if(!r.ok)return vt?Ef(vt.models):[];vt={models:await r.json(),fetchedAt:Date.now()}}return Ef(vt.models)}function Ef(r){let e=new Set(Object.entries(St).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Af(){return Object.values(St).some(r=>!!process.env[r])}function Tf(r,e,t){let s=Math.max(...r.map(o=>o.name.length)),n=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(s)} ${o.friendlyName.padEnd(n)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
955
+ `)}async function Pf(r){if(ue(r),!Af()){console.log("No AI provider keys found in this directory's .env. Set one of these to use tb.ai:");for(let[t,s]of Object.entries(St))console.log(` ${s.padEnd(20)} (${t})`);console.log("Then re-run `typebulb models`.");return}let e=await an();if(e.length===0){console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.");return}console.log(Tf(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL))}import*as Of from"fs/promises";async function Nf(r){let e=on(),t;try{t=await Of.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(kf(t,r))}vr();Ve();import*as Uo from"path";function ew(r,e,t){if(/^\d+$/.test(e))return r.find(n=>n.pid===parseInt(e,10));let s=r.filter(n=>n.agent===e);return s.length?(t?s.find(i=>i.cwd&&F(i.cwd)===F(t)):void 0)??s[0]:r.find(n=>F(n.file)===F(e))}function Cf(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function Rf(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Cf(r,t=>console.log(t)),console.log(`
956
+ `+e)}function If(r,e,t,s){let n=ew(r,e,s);if(n)return n;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Cf(r,i=>console.error(i))):console.error("No bulb servers are running."),process.exit(1)}async function _f(r,e){if(!r){Rf(await U(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=If(await U(),r,"logs",process.cwd()),s=bt(t.pid),n=s.text;if(e.lines&&e.lines>0){let i=n.split(`
948
957
  `);i.length&&i[i.length-1]===""&&i.pop(),n=i.slice(-e.lines).join(`
949
958
  `)}if(process.stdout.write(n),n&&!n.endsWith(`
950
959
  `)&&process.stdout.write(`
951
- `),e.follow){let i=s.offset,o=setInterval(()=>{let c=bt(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}async function Rf(r){if(!r){Nf(await K(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=Cf(await K(),r,"stop",process.cwd());await wt(e.pid),console.log(`Stopped ${e.agent??jo.basename(e.file)} (pid ${e.pid}, ${e.url}).`)}async function _f(r){let e=process.cwd(),t=r==="global"?await K():r==="bulbs"?await K(e):(await K()).filter(n=>n.agent!=null&&n.cwd!=null&&F(n.cwd)===F(e)),s=r==="global"?"server":r==="agent"?"viewer":"bulb";if(!t.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(t.map(n=>wt(n.pid))),console.log(`Stopped ${t.length} ${s}${t.length===1?"":"s"}:`);for(let n of t)console.log(` ${n.url} pid ${n.pid} ${n.agent??jo.basename(n.file)}`)}import*as Uf from"fs/promises";import*as xt from"path";import{EventEmitter as Ff}from"events";en();import{Hono as Xb}from"hono";import{serve as Zb}from"@hono/node-server";import{streamSSE as ew}from"hono/streaming";import*as He from"fs/promises";import*as ie from"path";var X=class extends Error{constructor(e,t="unknown",s=!1){super(e),this.code=t,this.retryable=s}},ne=class{getPath(e,t){return this.path}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}isReasoningEnabled(e){return e?.reasoning!==void 0&&e.reasoning>0}extractSystemMessages(e,t=`
960
+ `),e.follow){let i=s.offset,o=setInterval(()=>{let c=bt(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}async function Lf(r){if(!r){Rf(await U(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=If(await U(),r,"stop",process.cwd());await wt(e.pid),console.log(`Stopped ${e.agent??Uo.basename(e.file)} (pid ${e.pid}, ${e.url}).`)}async function $f(r){let e=process.cwd(),t=r==="global"?await U():r==="bulbs"?await U(e):(await U()).filter(n=>n.agent!=null&&n.cwd!=null&&F(n.cwd)===F(e)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!t.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(t.map(n=>wt(n.pid))),console.log(`Stopped ${t.length} ${s}${t.length===1?"":"s"}:`);for(let n of t)console.log(` ${n.url} pid ${n.pid} ${n.agent??Uo.basename(n.file)}`)}import*as Kf from"fs/promises";import*as kt from"path";import{EventEmitter as Jf}from"events";tn();import{Hono as rw}from"hono";import{serve as sw}from"@hono/node-server";import{streamSSE as nw}from"hono/streaming";import*as He from"fs/promises";import*as ie from"path";var Q=class extends Error{constructor(e,t="unknown",s=!1){super(e),this.code=t,this.retryable=s}},ne=class{getPath(e,t){return this.path}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}isReasoningEnabled(e){return e?.reasoning!==void 0&&e.reasoning>0}extractSystemMessages(e,t=`
952
961
 
953
- `){let s=e.filter(n=>n.role==="system").map(n=>n.content);return{system:s.length?s.join(t):void 0,conversationMessages:e.filter(n=>n.role!=="system")}}parseJsonError(e,t,s=!1){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);if(n.error&&typeof n.error=="object"){let i={message:n.error.message||`HTTP ${t}`,type:n.error.type};return s&&(i.code=n.error.code),i}return n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let s=t.code||"unknown";throw new X(t.message,s,!!t.retryable)}if(t.error)throw new X(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var an=class extends ne{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"minimal",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,s,n){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:n};return s?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),this.isReasoningEnabled(s)&&(o.reasoning={effort:this.effortMap[s.reasoning],summary:"auto"}),o}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",s;if(e.output&&Array.isArray(e.output))for(let n of e.output)n.type==="reasoning"&&n.summary&&(s=n.summary.map(i=>i.text).join(`
954
- `)),!t&&n.type==="message"&&n.content&&(t=n.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:s}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"error":return null;case"response.failed":{let n=e.response?.error,i=n?.message||"Response failed",o=n?.code==="insufficient_quota"||n?.code==="rate_limit_exceeded";throw new X(i,o?"rate_limit":"unknown",o)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};case"response.created":case"response.in_progress":case"response.output_item.added":case"response.output_item.done":case"response.content_part.added":case"response.content_part.done":case"response.output_text.done":case"response.output_text.annotation.added":case"response.reasoning_summary_text.done":case"response.completed":case"response.web_search_call.in_progress":case"response.web_search_call.searching":case"response.web_search_call.completed":return null;default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
962
+ `){let s=e.filter(n=>n.role==="system").map(n=>n.content);return{system:s.length?s.join(t):void 0,conversationMessages:e.filter(n=>n.role!=="system")}}parseJsonError(e,t,s=!1){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);if(n.error&&typeof n.error=="object"){let i={message:n.error.message||`HTTP ${t}`,type:n.error.type};return s&&(i.code=n.error.code),i}return n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let s=t.code||"unknown";throw new Q(t.message,s,!!t.retryable)}if(t.error)throw new Q(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var cn=class extends ne{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"minimal",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,s,n){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:n};return s?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),this.isReasoningEnabled(s)&&(o.reasoning={effort:this.effortMap[s.reasoning],summary:"auto"}),o}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",s;if(e.output&&Array.isArray(e.output))for(let n of e.output)n.type==="reasoning"&&n.summary&&(s=n.summary.map(i=>i.text).join(`
963
+ `)),!t&&n.type==="message"&&n.content&&(t=n.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:s}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"error":return null;case"response.failed":{let n=e.response?.error,i=n?.message||"Response failed",o=n?.code==="insufficient_quota"||n?.code==="rate_limit_exceeded";throw new Q(i,o?"rate_limit":"unknown",o)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};case"response.created":case"response.in_progress":case"response.output_item.added":case"response.output_item.done":case"response.content_part.added":case"response.content_part.done":case"response.output_text.done":case"response.output_text.annotation.added":case"response.reasoning_summary_text.done":case"response.completed":case"response.web_search_call.in_progress":case"response.web_search_call.searching":case"response.web_search_call.completed":return null;default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
955
964
 
956
- `)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}};var cn=class extends ne{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai/api",this.path="/api/v1/chat/completions",this.effortMap={0:"low",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let s={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(s["HTTP-Referer"]=t,s.Referer=t,s.Origin=t),s}buildPayload(e,t,s,n){let i={model:t,messages:e,stream:n};return s?.webSearch===!0&&(i.plugins=[{id:"web"}]),this.isReasoningEnabled(s)&&(i.reasoning={effort:this.effortMap[s.reasoning]}),i}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,s=t.choices[0],n=s?.message?.content??s?.text??"",i=s?.message?.reasoning??t.reasoning;return{text:n,reasoning:i}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let s=t.delta||t.message;if(!s)return null;let n=s.content||void 0,i=s.reasoning||void 0;return!n&&!i?null:{text:n,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var ln=class extends ne{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,s,n){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:n};if(s?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]),this.isReasoningEnabled(s)){let c=s.reasoning;if(this.isModernModel(t)){let l={0:"low",1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive"},a.output_config={effort:l[c]}}else{let l={0:0,1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseError(e,t){return this.parseJsonError(e,t)}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(n=>n.type==="text").map(n=>n.text).join(""),s=e.content.filter(n=>n.type==="thinking").map(n=>n.thinking).join(`
965
+ `)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}};var ln=class extends ne{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai/api",this.path="/api/v1/chat/completions",this.effortMap={0:"low",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let s={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(s["HTTP-Referer"]=t,s.Referer=t,s.Origin=t),s}buildPayload(e,t,s,n){let i={model:t,messages:e,stream:n};return s?.webSearch===!0&&(i.plugins=[{id:"web"}]),this.isReasoningEnabled(s)&&(i.reasoning={effort:this.effortMap[s.reasoning]}),i}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,s=t.choices[0],n=s?.message?.content??s?.text??"",i=s?.message?.reasoning??t.reasoning;return{text:n,reasoning:i}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let s=t.delta||t.message;if(!s)return null;let n=s.content||void 0,i=s.reasoning||void 0;return!n&&!i?null:{text:n,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var un=class extends ne{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,s,n){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:n};if(s?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]),this.isReasoningEnabled(s)){let c=s.reasoning;if(this.isModernModel(t)){let l={0:"low",1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive"},a.output_config={effort:l[c]}}else{let l={0:0,1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseError(e,t){return this.parseJsonError(e,t)}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(n=>n.type==="text").map(n=>n.text).join(""),s=e.content.filter(n=>n.type==="thinking").map(n=>n.thinking).join(`
957
966
 
958
- `);return{text:t,reasoning:s||void 0}}parseProviderStreamChunk(e){if(!this.isAnthropicEvent(e))return null;switch(e.type){case"content_block_delta":return e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null;case"message_start":case"content_block_start":case"content_block_stop":case"message_delta":case"message_stop":case"ping":return null;default:return null}}withLastMessageCached(e){let t=e.length-1;return e.map((s,n)=>n===t?{role:s.role,content:[{type:"text",text:s.content,cache_control:{type:"ephemeral"}}]}:s)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-\w+-(\d+)-(\d+)/);return!!t&&(+t[1]>4||+t[1]==4&&+t[2]>=6)}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var un=class extends ne{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,s,n){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
967
+ `);return{text:t,reasoning:s||void 0}}parseProviderStreamChunk(e){if(!this.isAnthropicEvent(e))return null;switch(e.type){case"content_block_delta":return e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null;case"message_start":case"content_block_start":case"content_block_stop":case"message_delta":case"message_stop":case"ping":return null;default:return null}}withLastMessageCached(e){let t=e.length-1;return e.map((s,n)=>n===t?{role:s.role,content:[{type:"text",text:s.content,cache_control:{type:"ephemeral"}}]}:s)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-\w+-(\d+)-(\d+)/);return!!t&&(+t[1]>4||+t[1]==4&&+t[2]>=6)}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var fn=class extends ne{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,s,n){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
959
968
  `),c={contents:o.map(l=>({role:l.role==="assistant"?"model":"user",parts:[{text:l.content}]}))};return s?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]}),this.isReasoningEnabled(s)&&(c.generationConfig={temperature:.7+s.reasoning*.1}),c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let s=JSON.parse(e),n=Array.isArray(s)?s[0]?.error:s?.error;return n&&typeof n=="object"?{message:(n.message||`HTTP ${t}`).split(`
960
- `)[0],type:n.status,code:n.code?.toString()}:s.message?{message:s.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractText(e)||"",s=e.candidates?.[0]?.finishReason,n="complete";return s==="MAX_TOKENS"?n="interrupted":(s==="SAFETY"||s==="RECITATION")&&(n="failed"),{text:t,status:n}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractText(e);return t?{text:t}:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractText(e){let t=e.candidates?.[0];if(t?.content?.parts)return t.content.parts.map(s=>s.text).filter(Boolean).join("")}checkGeminiError(e){if(typeof e=="object"&&e!==null&&"error"in e){let t=e.error,s;if(typeof t=="string")s=t;else if(typeof t=="object"&&t!==null){let n=t;s=n.message||n.status||"Gemini returned an error"}else s="Gemini returned an error";throw new X(s)}if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new X(`Prompt blocked: ${t}`)}}};var Qb=new Map([["openai",new an],["openrouter",new cn],["anthropic",new ln],["gemini",new un]]);function Ye(r){let e=Qb.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}async function Fo(r,e){let t=Ye(r.protocol),s=t.getPath(e.model,e.stream),n=new URL(s,r.baseUrl).toString(),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,e.model,{reasoning:e.reasoning,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(n,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Uo(r,e){let t=Ye(e),s=await r.text().catch(()=>""),{message:n}=t.parseError(s,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:n,retryable:i===429}}function Lf(r){let e=r.indexOf(`\r
969
+ `)[0],type:n.status,code:n.code?.toString()}:s.message?{message:s.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractText(e)||"",s=e.candidates?.[0]?.finishReason,n="complete";return s==="MAX_TOKENS"?n="interrupted":(s==="SAFETY"||s==="RECITATION")&&(n="failed"),{text:t,status:n}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractText(e);return t?{text:t}:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractText(e){let t=e.candidates?.[0];if(t?.content?.parts)return t.content.parts.map(s=>s.text).filter(Boolean).join("")}checkGeminiError(e){if(typeof e=="object"&&e!==null&&"error"in e){let t=e.error,s;if(typeof t=="string")s=t;else if(typeof t=="object"&&t!==null){let n=t;s=n.message||n.status||"Gemini returned an error"}else s="Gemini returned an error";throw new Q(s)}if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new Q(`Prompt blocked: ${t}`)}}};var tw=new Map([["openai",new cn],["openrouter",new ln],["anthropic",new un],["gemini",new fn]]);function Ye(r){let e=tw.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}async function Jo(r,e){let t=Ye(r.protocol),s=t.getPath(e.model,e.stream),n=new URL(s,r.baseUrl).toString(),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,e.model,{reasoning:e.reasoning,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(n,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Ko(r,e){let t=Ye(e),s=await r.text().catch(()=>""),{message:n}=t.parseError(s,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:n,retryable:i===429}}function Mf(r){let e=r.indexOf(`\r
961
970
  \r
962
971
  `),t=r.indexOf(`
963
972
 
964
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Ko(r){let t=r.split(/\r?\n/).filter(n=>n.startsWith("data:"));if(!t.length)return null;let s=t.map(n=>n.replace(/^data:\s?/,"")).join(`
965
- `).trim();if(!s)return null;if(s==="[DONE]")return"done";try{return JSON.parse(s)}catch{return null}}async function $f(r,e,t){let s=new TextDecoder,n="",i=!1,o=t?new Promise((a,c)=>{t.aborted&&c(new Error("Aborted")),t.addEventListener("abort",()=>c(new Error("Aborted")),{once:!0})}):null;for(;;){let a=o?await Promise.race([r.read(),o]):await r.read(),{done:c,value:l}=a;if(c){if(n.trim()){let d=Ko(n);d!==null&&d!=="done"&&e(d)}break}i=!0,n+=s.decode(l,{stream:!0});let{pos:f,len:u}=Lf(n);for(;f!==-1;){let d=n.slice(0,f);n=n.slice(f+u);let h=Ko(d);if(h==="done"){n="";break}h!==null&&e(h),{pos:f,len:u}=Lf(n)}}return{receivedAnyData:i}}async function Jo(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),s=Ye(t);if(!r.body)throw new Error("Response body is missing");let n=r.body.getReader(),i="";return await $f(n,o=>{let a=s.parseStreamChunk(o);a?.text&&(i+=a.text)}),i}import*as Vo from"fs/promises";import*as Tr from"path";var fn=class{async get(e){let t=te(e),s=Tr.join(br,t+".bin"),n=Tr.join(br,t+".json");try{let[i,o]=await Promise.all([Vo.readFile(s),Vo.readFile(n,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await R();let s=te(e),n=Tr.join(br,s+".bin"),i=Tr.join(br,s+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([z(n,t.body),z(i,JSON.stringify(o))])}};Ve();var qf="127.0.0.1",tw=new Set(["localhost","127.0.0.1","::1"]);function rw(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Mf(r){let e=rw(r);return!!e&&tw.has(e)}function dn(r){return r instanceof Error?r.message:"Unknown error"}async function pn(r){let{getHtml:e,basePath:t,port:s,reloadEmitter:n,getServerExports:i,localOverride:o,trusted:a=!1,trustHint:c,staticAssets:l}=r,f=new Xb;f.use("*",async(m,b)=>{if(!Mf(m.req.header("host")))return m.text("Forbidden: untrusted Host",403);await b()}),f.use("*",async(m,b)=>{await b(),m.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),m.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let u=["/__fs/*","/__api/*","/__ai"],d=async(m,b)=>{if(!a){let v=new URL(m.req.url).pathname,T=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";bf(process.pid,T);let w=c?`
966
- ${c}`:"";return m.text(`Forbidden: this capability requires --trust.${w}`,403)}await b()},h=async(m,b)=>{let v=m.req.header("sec-fetch-site");if(v){if(v==="cross-site")return m.text("Forbidden: cross-site request",403)}else{let T=m.req.header("origin");if(T&&!Mf(T))return m.text("Forbidden: cross-origin request",403)}await b()};for(let m of u)f.use(m,d),f.use(m,h);f.use("/__log",h),f.post("/__log",async m=>{try{let{args:b}=await m.req.json();console.log(...b||[])}catch{}return m.json({ok:!0})}),f.get("/",m=>m.html(e())),f.post("/__fs/read",async m=>{try{let{path:b}=await m.req.json(),v=Yo(b,t),T=await He.readFile(v);return new Response(new Uint8Array(T),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=dn(b);return m.json({error:v},400)}}),f.post("/__fs/write",async m=>{try{let b=m.req.query("path");if(!b)return m.json({error:"Missing path"},400);let v=Yo(b,t);return await He.mkdir(ie.dirname(v),{recursive:!0}),await He.writeFile(v,Buffer.from(await m.req.arrayBuffer())),m.json({success:!0})}catch(b){let v=dn(b);return m.json({error:v},400)}});let g={log:console.log};f.post("/__api/:name",async m=>{try{let b=i?.(),v=m.req.param("name"),T=b?.[v]??g[v];if(!T||typeof T!="function")return m.json({error:`API function '${v}' not found`},404);let{args:w}=await m.req.json(),O=await T(...w||[]);return m.json({result:O})}catch(b){let v=dn(b);return m.json({error:v},500)}}),f.post("/__ai",async m=>{try{let{messages:b,system:v,reasoning:T,provider:w,model:O,webSearch:D}=await m.req.json();if(!b||!Array.isArray(b)||b.length===0)return m.json({message:"messages array is required",code:"unknown",retryable:!1},400);let j=sw(w,O);if(typeof j=="string")return m.json({message:j,code:"unknown",retryable:!1},400);let I=[...v?[{role:"system",content:v}]:[],...b.map(Or=>({role:Or.role,content:Or.content}))],le=await Fo(j,{model:j.model,messages:I,stream:!0,reasoning:T??0,webSearch:D??!0});if(!le.ok){let Or=await Uo(le,j.protocol);return m.json(Or,le.status)}let aa=await Jo(le,j.protocol);return aa||console.warn("[tb.ai] Empty response from provider"),m.json({text:aa})}catch(b){if(b instanceof X)return m.json({message:b.message,code:b.code,retryable:b.retryable},500);let v=dn(b);return m.json({message:v,code:"unknown",retryable:!1},500)}}),f.get("/__models",async m=>{try{let b=await on();return m.json(b)}catch{return m.json([],200)}});let p=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],y=new fn;f.get("/proxy/*",async m=>{let b=new URL(m.req.url),T=(b.pathname+b.search).slice(7),w=T.lastIndexOf("https://");return w===-1?m.text("Invalid proxy URL",400):x(m,T.slice(w))}),o&&Df(f,`/local/${o.name}/`,o.serveDir),l&&Df(f,l.mount,l.dir);async function x(m,b){let v;try{v=new URL(b)}catch{return m.text("Invalid URL",400)}if(v.protocol!=="https:")return m.text("HTTPS only",400);if(!p.includes(v.hostname))return m.text("Host not allowed",403);let T=await y.get(b);if(T)return new Response(T.body,{status:200,headers:Wo(T.contentType,T.cacheControl)});try{let w=await fetch(b,{headers:{Accept:m.req.header("Accept")||"*/*"},redirect:"follow"});if(!w.ok)return m.text(`Upstream ${w.status}`,w.status);let O=w.headers.get("Content-Type")||void 0,D=w.headers.get("Cache-Control")||void 0;if(w.body){let[j,I]=w.body.tee();return(async()=>{try{let le=await new Response(I).arrayBuffer();await y.set(b,{body:Buffer.from(le),contentType:O,cacheControl:D})}catch{}})(),new Response(j,{status:w.status,headers:Wo(O,D)})}return new Response(null,{status:w.status,headers:Wo(O,D)})}catch(w){return m.text(`Proxy fetch failed: ${w instanceof Error?w.message:w}`,502)}}n&&f.get("/__reload",m=>ew(m,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})};for(n.on("reload",v),b.onAbort(()=>{n.removeListener("reload",v)});;)await b.sleep(3e4)}));let k=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/;f.notFound(async m=>{if(m.req.method!=="GET")return m.text("Not Found",404);let b=new URL(m.req.url);return k.test(b.pathname)?x(m,"https://esm.sh"+b.pathname+b.search):m.text("Not Found",404)});let E=Zb({fetch:f.fetch,port:s,hostname:qf});return{port:s,close:()=>E.close()}}function sw(r,e){let t=r??process.env.TB_AI_PROVIDER,s=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!s)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let n;try{n=Ye(t)}catch{return`Unknown provider '${t}'.`}let i=kt[t],o=process.env[i];return o?{apiKey:o,baseUrl:n.defaultBaseUrl,protocol:t,model:s,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Wo(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function Df(r,e,t){r.get(`${e}*`,async s=>{let{pathname:n}=new URL(s.req.url);if(!n.startsWith(e))return s.text("Not Found",404);let i=decodeURIComponent(n.slice(e.length));try{let o=Yo(i,t),a=await He.readFile(o);return new Response(a,{headers:{"Content-Type":nw(o)}})}catch{return s.text("Not Found",404)}})}function nw(r){switch(ie.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function Yo(r,e){let t=ie.resolve(e,r),s=ie.normalize(e),n=ie.normalize(t);if(n!==s&&!n.startsWith(s+ie.sep))throw new Error("Path traversal detected - access denied");return t}async function Ar(r){let e=await import("net");return new Promise(t=>{let s=e.createServer();s.listen(r,qf,()=>{let n=s.address(),i=typeof n=="object"&&n?n.port:r;s.close(()=>t(i))}),s.on("error",()=>{t(Ar(r+1))})})}import Bf from"chokidar";var jf={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function hn(r){let{bulbPath:e,emitter:t}=r,s=Bf.watch(e,jf);return s.on("change",()=>{t.emit("reload")}),()=>s.close()}function mn(r){let{dir:e,onChange:t,debounceMs:s=150}=r,n,i=Bf.watch(e,jf);return i.on("all",()=>{n&&clearTimeout(n),n=setTimeout(t,s)}),()=>{n&&clearTimeout(n),i.close()}}Ve();async function Kf(r,e,t,s,n){let i=process.cwd(),o=tn(process.pid),a=e.watch?new Ff:void 0,c=Ie(e.mode);console.log(`Loading ${xt.basename(r)}...`);let{html:l,bulb:f,serverExports:u}=await Co(r,e.watch,e.trust,s,n);vt(c,r,f.server);let d=await Ar(e.port),h=await pn({getHtml:()=>l,basePath:i,port:d,reloadEmitter:a,getServerExports:()=>u,localOverride:s?{name:s.name,serveDir:s.serveDir}:void 0,trusted:e.trust,trustHint:t}),g=`http://localhost:${d}`,p=e.trust?void 0:yt(f);await rn({pid:process.pid,port:d,url:g,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:p}),console.log(`
967
- ${f.name}`),console.log(` ${g}`),d!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(p?` trust: sandboxed \u2014 this bulb appears to use ${p}; re-run with --trust to enable it:
973
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Vo(r){let t=r.split(/\r?\n/).filter(n=>n.startsWith("data:"));if(!t.length)return null;let s=t.map(n=>n.replace(/^data:\s?/,"")).join(`
974
+ `).trim();if(!s)return null;if(s==="[DONE]")return"done";try{return JSON.parse(s)}catch{return null}}async function Df(r,e,t){let s=new TextDecoder,n="",i=!1,o=t?new Promise((a,c)=>{t.aborted&&c(new Error("Aborted")),t.addEventListener("abort",()=>c(new Error("Aborted")),{once:!0})}):null;for(;;){let a=o?await Promise.race([r.read(),o]):await r.read(),{done:c,value:l}=a;if(c){if(n.trim()){let d=Vo(n);d!==null&&d!=="done"&&e(d)}break}i=!0,n+=s.decode(l,{stream:!0});let{pos:f,len:u}=Mf(n);for(;f!==-1;){let d=n.slice(0,f);n=n.slice(f+u);let p=Vo(d);if(p==="done"){n="";break}p!==null&&e(p),{pos:f,len:u}=Mf(n)}}return{receivedAnyData:i}}async function Wo(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),s=Ye(t);if(!r.body)throw new Error("Response body is missing");let n=r.body.getReader(),i="";return await Df(n,o=>{let a=s.parseStreamChunk(o);a?.text&&(i+=a.text)}),i}import*as Yo from"fs/promises";import*as Tr from"path";var dn=class{async get(e){let t=ee(e),s=Tr.join(br,t+".bin"),n=Tr.join(br,t+".json");try{let[i,o]=await Promise.all([Yo.readFile(s),Yo.readFile(n,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await I();let s=ee(e),n=Tr.join(br,s+".bin"),i=Tr.join(br,s+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([G(n,t.body),G(i,JSON.stringify(o))])}};Ve();var Ho={log:(...r)=>console.log(...r)};function pn(r,e){let t=r?.[e]??Ho[e];return typeof t=="function"?t:void 0}var Ff="127.0.0.1",iw=new Set(["localhost","127.0.0.1","::1"]);function ow(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Bf(r){let e=ow(r);return!!e&&iw.has(e)}function hn(r){return r instanceof Error?r.message:"Unknown error"}async function mn(r){let{getHtml:e,basePath:t,port:s,reloadEmitter:n,getServerExports:i,localOverride:o,trusted:a=!1,trustHint:c,staticAssets:l}=r,f=new rw;f.use("*",async(m,b)=>{if(!Bf(m.req.header("host")))return m.text("Forbidden: untrusted Host",403);await b()}),f.use("*",async(m,b)=>{await b(),m.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),m.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let u=["/__fs/*","/__api/*","/__ai"],d=async(m,b)=>{if(!a){let w=new URL(m.req.url).pathname,E=w.startsWith("/__fs")?"the filesystem":w==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";vf(process.pid,E);let A=c?`
975
+ ${c}`:"";return m.text(`Forbidden: this capability requires --trust.${A}`,403)}await b()},p=async(m,b)=>{let w=m.req.header("sec-fetch-site");if(w){if(w==="cross-site")return m.text("Forbidden: cross-site request",403)}else{let E=m.req.header("origin");if(E&&!Bf(E))return m.text("Forbidden: cross-origin request",403)}await b()};for(let m of u)f.use(m,d),f.use(m,p);f.use("/__log",p),f.post("/__log",async m=>{try{let{args:b}=await m.req.json();console.log(...b||[])}catch{}return m.json({ok:!0})}),f.get("/",m=>m.html(e())),f.post("/__fs/read",async m=>{try{let{path:b}=await m.req.json(),w=zo(b,t),E=await He.readFile(w);return new Response(new Uint8Array(E),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let w=hn(b);return m.json({error:w},400)}}),f.post("/__fs/write",async m=>{try{let b=m.req.query("path");if(!b)return m.json({error:"Missing path"},400);let w=zo(b,t);return await He.mkdir(ie.dirname(w),{recursive:!0}),await He.writeFile(w,Buffer.from(await m.req.arrayBuffer())),m.json({success:!0})}catch(b){let w=hn(b);return m.json({error:w},400)}}),f.post("/__api/:name",async m=>{try{let b=m.req.param("name"),w=pn(i?.(),b);if(!w)return m.json({error:`API function '${b}' not found`},404);let{args:E}=await m.req.json(),A=await w(...E||[]);return m.json({result:A})}catch(b){let w=hn(b);return m.json({error:w},500)}}),f.post("/__ai",async m=>{try{let{messages:b,system:w,reasoning:E,provider:A,model:k,webSearch:C}=await m.req.json();if(!b||!Array.isArray(b)||b.length===0)return m.json({message:"messages array is required",code:"unknown",retryable:!1},400);let L=aw(A,k);if(typeof L=="string")return m.json({message:L,code:"unknown",retryable:!1},400);let oe=[...w?[{role:"system",content:w}]:[],...b.map(Nr=>({role:Nr.role,content:Nr.content}))],R=await Jo(L,{model:L.model,messages:oe,stream:!0,reasoning:E??0,webSearch:C??!0});if(!R.ok){let Nr=await Ko(R,L.protocol);return m.json(Nr,R.status)}let Et=await Wo(R,L.protocol);return Et||console.warn("[tb.ai] Empty response from provider"),m.json({text:Et})}catch(b){if(b instanceof Q)return m.json({message:b.message,code:b.code,retryable:b.retryable},500);let w=hn(b);return m.json({message:w,code:"unknown",retryable:!1},500)}}),f.get("/__models",async m=>{try{let b=await an();return m.json(b)}catch{return m.json([],200)}});let g=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],h=new dn;f.get("/proxy/*",async m=>{let b=new URL(m.req.url),E=(b.pathname+b.search).slice(7),A=E.lastIndexOf("https://");return A===-1?m.text("Invalid proxy URL",400):y(m,E.slice(A))}),o&&qf(f,`/local/${o.name}/`,o.serveDir),l&&qf(f,l.mount,l.dir);async function y(m,b){let w;try{w=new URL(b)}catch{return m.text("Invalid URL",400)}if(w.protocol!=="https:")return m.text("HTTPS only",400);if(!g.includes(w.hostname))return m.text("Host not allowed",403);let E=await h.get(b);if(E)return new Response(E.body,{status:200,headers:Go(E.contentType,E.cacheControl)});try{let A=await fetch(b,{headers:{Accept:m.req.header("Accept")||"*/*"},redirect:"follow"});if(!A.ok)return m.text(`Upstream ${A.status}`,A.status);let k=A.headers.get("Content-Type")||void 0,C=A.headers.get("Cache-Control")||void 0;if(A.body){let[L,oe]=A.body.tee();return(async()=>{try{let R=await new Response(oe).arrayBuffer();await h.set(b,{body:Buffer.from(R),contentType:k,cacheControl:C})}catch{}})(),new Response(L,{status:A.status,headers:Go(k,C)})}return new Response(null,{status:A.status,headers:Go(k,C)})}catch(A){return m.text(`Proxy fetch failed: ${A instanceof Error?A.message:A}`,502)}}n&&f.get("/__reload",m=>nw(m,async b=>{let w=()=>{b.writeSSE({event:"reload",data:""})};for(n.on("reload",w),b.onAbort(()=>{n.removeListener("reload",w)});;)await b.sleep(3e4)}));let x=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/;f.notFound(async m=>{if(m.req.method!=="GET")return m.text("Not Found",404);let b=new URL(m.req.url);return x.test(b.pathname)?y(m,"https://esm.sh"+b.pathname+b.search):m.text("Not Found",404)});let S=sw({fetch:f.fetch,port:s,hostname:Ff});return{port:s,close:()=>S.close()}}function aw(r,e){let t=r??process.env.TB_AI_PROVIDER,s=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!s)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let n;try{n=Ye(t)}catch{return`Unknown provider '${t}'.`}let i=St[t],o=process.env[i];return o?{apiKey:o,baseUrl:n.defaultBaseUrl,protocol:t,model:s,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Go(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function qf(r,e,t){r.get(`${e}*`,async s=>{let{pathname:n}=new URL(s.req.url);if(!n.startsWith(e))return s.text("Not Found",404);let i=decodeURIComponent(n.slice(e.length));try{let o=zo(i,t),a=await He.readFile(o);return new Response(a,{headers:{"Content-Type":cw(o)}})}catch{return s.text("Not Found",404)}})}function cw(r){switch(ie.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function zo(r,e){let t=ie.resolve(e,r),s=ie.normalize(e),n=ie.normalize(t);if(n!==s&&!n.startsWith(s+ie.sep))throw new Error("Path traversal detected - access denied");return t}async function Pr(r){let e=await import("net");return new Promise(t=>{let s=e.createServer();s.listen(r,Ff,()=>{let n=s.address(),i=typeof n=="object"&&n?n.port:r;s.close(()=>t(i))}),s.on("error",()=>{t(Pr(r+1))})})}import jf from"chokidar";var Uf={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function gn(r){let{bulbPath:e,emitter:t}=r,s=jf.watch(e,Uf);return s.on("change",()=>{t.emit("reload")}),()=>s.close()}function yn(r){let{dir:e,onChange:t,debounceMs:s=150}=r,n,i=jf.watch(e,Uf);return i.on("all",()=>{n&&clearTimeout(n),n=setTimeout(t,s)}),()=>{n&&clearTimeout(n),i.close()}}Ve();async function Vf(r,e,t,s,n){let i=process.cwd(),o=rn(process.pid),a=e.watch?new Jf:void 0,c=ue(e.mode);console.log(`Loading ${kt.basename(r)}...`);let{html:l,bulb:f,serverExports:u}=await Io(r,e.watch,e.trust,s,n);Re(c,r,f.server);let d=await Pr(e.port),p=await mn({getHtml:()=>l,basePath:i,port:d,reloadEmitter:a,getServerExports:()=>u,localOverride:s?{name:s.name,serveDir:s.serveDir}:void 0,trusted:e.trust,trustHint:t}),g=`http://localhost:${d}`,h=e.trust?void 0:yt(f);await sn({pid:process.pid,port:d,url:g,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:h}),console.log(`
976
+ ${f.name}`),console.log(` ${g}`),d!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(h?` trust: sandboxed \u2014 this bulb appears to use ${h}; re-run with --trust to enable it:
968
977
  ${t}
969
978
  `:` trust: sandboxed \u2014 re-run with --trust to enable filesystem / AI / server.ts
970
979
  `),e.watch&&console.log(` Watching for changes...
971
- `);let y,x;if(e.watch&&a){let E=new Ff;if(E.on("reload",async()=>{try{console.log("Recompiling...");let m=await Co(r,!0,e.trust,s,n);l=m.html,u=m.serverExports,a.emit("reload"),console.log(`Done. Browser reloading...
972
- `)}catch(m){console.error("Compile error:",m)}}),y=hn({bulbPath:r,emitter:E}),s){let{name:m,serveDir:b}=s;x=mn({dir:b,onChange:()=>{console.log(`Local package '${m}' changed. Browser reloading...
973
- `),a.emit("reload")}})}}e.open&&await mt(g);let k=async()=>{console.log(`
974
- Shutting down...`),h.close(),y?.(),x?.(),o(),await Er(process.pid);let E=xt.join(xt.dirname(r),".typebulb","server.mjs");await Uf.rm(E,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",k),process.on("SIGTERM",k)}import{readFileSync as bd,copyFileSync as Zw,existsSync as ev}from"fs";import*as H from"path";import{fileURLToPath as tv}from"url";import{EventEmitter as rv}from"events";Ve();var Ho="/agents/claude/client.js",iw=`
980
+ `);let y,x;if(e.watch&&a){let m=new Jf;if(m.on("reload",async()=>{try{console.log("Recompiling...");let b=await Io(r,!0,e.trust,s,n);l=b.html,u=b.serverExports,a.emit("reload"),console.log(`Done. Browser reloading...
981
+ `)}catch(b){console.error("Compile error:",b)}}),y=gn({bulbPath:r,emitter:m}),s){let{name:b,serveDir:w}=s;x=yn({dir:w,onChange:()=>{console.log(`Local package '${b}' changed. Browser reloading...
982
+ `),a.emit("reload")}})}}e.open&&await mt(g);let S=async()=>{console.log(`
983
+ Shutting down...`),p.close(),y?.(),x?.(),o(),await Ar(process.pid);let m=kt.join(kt.dirname(r),".typebulb","server.mjs");await Kf.rm(m,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import{readFileSync as vd,copyFileSync as sv,existsSync as nv}from"fs";import*as Y from"path";import{fileURLToPath as iv}from"url";import{EventEmitter as ov}from"events";Ve();var Qo="/agents/claude/client.js",lw=`
975
984
  (() => {
976
985
  const api = async (name, ...args) => {
977
986
  const resp = await fetch('/__api/' + name, {
@@ -1006,13 +1015,13 @@ Shutting down...`),h.close(),y?.(),x?.(),o(),await Er(process.pid);let E=xt.join
1006
1015
  es.onerror = () => { es.close(); };
1007
1016
  }
1008
1017
  })();
1009
- `;function Jf(r){let{name:e,styles:t,mountHtml:s,watch:n,theme:i}=r;return`<!DOCTYPE html>
1018
+ `;function Wf(r){let{name:e,styles:t,mountHtml:s,watch:n,theme:i}=r;return`<!DOCTYPE html>
1010
1019
  <html>
1011
1020
  <head>
1012
1021
  <meta charset="utf-8">
1013
1022
  <meta name="viewport" content="width=device-width, initial-scale=1">
1014
- <title>${Us(e)} - typebulb</title>
1015
- ${Js(e,i)}
1023
+ <title>${Js(e)} - typebulb</title>
1024
+ ${Vs(e,i)}
1016
1025
  <style>
1017
1026
  ${Ks}
1018
1027
  </style>
@@ -1026,16 +1035,18 @@ ${s}
1026
1035
  ${n?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1027
1036
 
1028
1037
  <script>
1029
- ${iw}
1038
+ ${lw}
1030
1039
  </script>
1031
1040
 
1032
- <script type="module" src="${Ho}"></script>
1041
+ <script type="module" src="${Qo}"></script>
1033
1042
  </body>
1034
- </html>`}async function wd(r){let e=process.cwd(),t=tn(process.pid),s=r.watch?new rv:void 0,n=Ie(r.mode),i=await Promise.resolve().then(()=>(yd(),gd));vt(n,H.join(e,"viewer"));let o=H.dirname(tv(import.meta.url)),a=H.join(o,"agents","claude"),c=H.join(o,"..","agents","claude"),l=H.join(a,"styles.css"),f=H.join(a,"index.html"),u=()=>Jf({name:"Claude Bulb",styles:bd(l,"utf8"),mountHtml:bd(f,"utf8"),watch:r.watch}),d=await Ar(r.port),h=await pn({getHtml:u,basePath:e,port:d,reloadEmitter:s,getServerExports:()=>i,trusted:!0,staticAssets:{mount:`${H.posix.dirname(Ho)}/`,dir:a}}),g=`http://localhost:${d}`;await rn({pid:process.pid,port:d,url:g,file:"agent:claude",cwd:e,startedAt:Date.now(),trust:!0,agent:"claude"}),console.log(`
1043
+ </html>`}async function Sd(r){let e=process.cwd(),t=rn(process.pid),s=r.watch?new ov:void 0,n=ue(r.mode),i=await Promise.resolve().then(()=>(wd(),bd));Re(n,Y.join(e,"mirror"));let o=Y.dirname(iv(import.meta.url)),a=Y.join(o,"agents","claude"),c=Y.join(o,"..","agents","claude"),l=Y.join(a,"styles.css"),f=Y.join(a,"index.html"),u=()=>Wf({name:"Claude Bulb",styles:vd(l,"utf8"),mountHtml:vd(f,"utf8"),watch:r.watch}),d=await Pr(r.port),p=await mn({getHtml:u,basePath:e,port:d,reloadEmitter:s,getServerExports:()=>i,trusted:!0,staticAssets:{mount:`${Y.posix.dirname(Qo)}/`,dir:a}}),g=`http://localhost:${d}`;await sn({pid:process.pid,port:d,url:g,file:"agent:claude",cwd:e,startedAt:Date.now(),trust:!0,agent:"claude"}),console.log(`
1035
1044
  Claude Bulb`),console.log(` ${g}`),d!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1036
- `);async function p(){await(await import("esbuild")).build({entryPoints:[H.join(c,"client","index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:H.join(a,"client.js")});for(let E of["styles.css","index.html"])Zw(H.join(c,E),H.join(a,E))}let y;if(r.watch&&s){let k=ev(c),E=!1;y=mn({dir:k?c:a,onChange:async()=>{if(!E){E=!0;try{k&&await p(),console.log(`Viewer rebuilt. Browser reloading...
1037
- `),s.emit("reload")}catch(m){console.error("Viewer rebuild failed:",m instanceof Error?m.message:m)}finally{E=!1}}}})}r.open&&await mt(g);let x=async()=>{console.log(`
1038
- Shutting down...`),h.close(),y?.(),t(),await Er(process.pid),process.exit(0)};process.on("SIGINT",x),process.on("SIGTERM",x)}import*as vd from"path";import{EventEmitter as sv}from"events";async function Sd(r,e,t,s,n){let i=Ie(t),o=!1,a=async()=>{let{bulb:c,config:l}=await pe(r);o||(vt(i,r,c.server),o=!0),await No(c.server,n,s,l.dependencies)};if(console.log(`Running ${vd.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1039
- `);let c=new sv;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),hn({bulbPath:r,emitter:c})}}var kd="0.13.0";async function nv(){let r=ga(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${kd}`),process.exit(0)),r.help&&(ya(),process.exit(0)),r.subcommand==="logs"){await If(r.file||void 0,{follow:r.follow,lines:r.lines});return}if(r.subcommand==="stop"){r.stopScope?await _f(r.stopScope):await Rf(r.file||void 0);return}if(r.subcommand==="skill"){await Pf(kd);return}if(r.subcommand==="models"){await Tf(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await Sf();return}ef(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${Lo().join(", ")}.`),process.exit(1));let l=await Bo(process.cwd(),r.agentTarget);if(l){console.log(`Viewer '${r.agentTarget}' is already running for this project:
1040
- ${l.url}`),r.open&&await mt(l.url);return}await wd(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await ff(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await zu(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=ge.resolve(r.file);await xd.access(e).then(()=>!0,()=>!1)||(Lo().includes(r.file)&&(console.error(`To open the ${r.file} agent viewer, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let s=r.file&&r.file!=="."?r.file:ge.relative(process.cwd(),e)||ge.basename(e),n=`npx typebulb --trust ${s.includes(" ")?`"${s}"`:s}`;if(r.subcommand==="predict"){await uf(e,n);return}let i=!r.noTrust&&Ue(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await pe(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await ha(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${ge.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await lf(e,a);return}let c=ge.dirname(e);if(o&&o.bulb.server&&(!o.bulb.code||r.server)){r.trust||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1041
- ${n}`),process.exit(1)),await Sd(e,r.watch,r.mode,a,c);return}await Kf(e,r,n,a,c)}nv().catch(r=>{console.error("Error:",r.message),process.exit(1)});
1045
+ `);async function h(){await(await import("esbuild")).build({entryPoints:[Y.join(c,"client","index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:Y.join(a,"client.js")});for(let m of["styles.css","index.html"])sv(Y.join(c,m),Y.join(a,m))}let y;if(r.watch&&s){let S=nv(c),m=!1;y=yn({dir:S?c:a,onChange:async()=>{if(!m){m=!0;try{S&&await h(),console.log(`Mirror rebuilt. Browser reloading...
1046
+ `),s.emit("reload")}catch(b){console.error("Mirror rebuild failed:",b instanceof Error?b.message:b)}finally{m=!1}}}})}r.open&&await mt(g);let x=async()=>{console.log(`
1047
+ Shutting down...`),p.close(),y?.(),t(),await Ar(process.pid),process.exit(0)};process.on("SIGINT",x),process.on("SIGTERM",x)}import*as kd from"path";import{EventEmitter as av}from"events";async function xd(r,e,t,s,n){let i=ue(t),o=!1,a=async()=>{let{bulb:c,config:l}=await re(r);o||(Re(i,r,c.server),o=!0),await wr(c.server,n,s,l.dependencies)};if(console.log(`Running ${kd.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1048
+ `);let c=new av;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),gn({bulbPath:r,emitter:c})}}import{Console as cv}from"node:console";async function Ed(r,e,t,s,n){hv();let i=ue(t),{bulb:o,config:a}=await re(r);o.server||kn("This bulb has no **server.ts** block; nothing to call."),Re(i,r,o.server);let c;try{c=await wr(o.server,n,s,a.dependencies)}catch(p){kn(p instanceof Error?p.message:String(p))}let l=pn(c,e.fn);if(!l){let p=[...Object.keys(c).filter(g=>typeof c[g]=="function"),...Object.keys(Ho)];kn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await lv(e),u;try{u=await l(...f)}catch(p){kn(p instanceof Error?p.stack??p.message:String(p))}let d=dv(u);d!==void 0&&await mv(d+`
1049
+ `),process.exit(0)}async function lv(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await gv()),fv(e)}return uv(r.positional)}function uv(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function fv(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function dv(r){if(r!==void 0)return JSON.stringify(r,pv,2)}function pv(r,e){return typeof e=="bigint"?e.toString():e}function kn(r){process.stderr.write(r+`
1050
+ `),process.exit(1)}function hv(){let r=new cv(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function mv(r){return new Promise((e,t)=>{process.stdout.write(r,s=>s?t(s):e())})}async function gv(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var Ad="0.13.1";function Td(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1051
+ ${e}`),process.exit(1))}async function yv(){let r=ba(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${Ad}`),process.exit(0)),r.help&&(wa(),process.exit(0)),r.subcommand==="logs"){await _f(r.file||void 0,{follow:r.follow,lines:r.lines});return}if(r.subcommand==="stop"){r.stopScope?await $f(r.stopScope):await Lf(r.file||void 0);return}if(r.subcommand==="skill"){await Nf(Ad);return}if(r.subcommand==="models"){await Pf(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await xf();return}rf(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${Mo().join(", ")}.`),process.exit(1));let l=await jo(process.cwd(),r.agentTarget);if(l){console.log(`Mirror '${r.agentTarget}' is already running for this project:
1052
+ ${l.url}`),r.open&&await mt(l.url);return}await Sd(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await pf(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Xu(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=ge.resolve(r.file);await Pd.access(e).then(()=>!0,()=>!1)||(Mo().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let s=r.file&&r.file!=="."?r.file:ge.relative(process.cwd(),e)||ge.basename(e),n=`npx typebulb --trust ${s.includes(" ")?`"${s}"`:s}`;if(r.subcommand==="predict"){await df(e,n);return}let i=!r.noTrust&&Ue(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await re(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await ga(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${ge.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await ff(e,a);return}let c=ge.dirname(e);if(r.subcommand==="call"){Td(r.trust,n),await Ed(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(!o.bulb.code||r.server)){Td(r.trust,n),await xd(e,r.watch,r.mode,a,c);return}await Vf(e,r,n,a,c)}yv().catch(r=>{console.error("Error:",r.message),process.exit(1)});