typebulb 0.14.9 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,80 +1,80 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
3
- var Vd=Object.create;var Cs=Object.defineProperty;var Yd=Object.getOwnPropertyDescriptor;var Hd=Object.getOwnPropertyNames;var Gd=Object.getPrototypeOf,zd=Object.prototype.hasOwnProperty;var Ir=(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 v=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Qd=(r,e)=>{for(var t in e)Cs(r,t,{get:e[t],enumerable:!0})},Xd=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Hd(e))!zd.call(r,s)&&s!==t&&Cs(r,s,{get:()=>e[s],enumerable:!(n=Yd(e,s))||n.enumerable});return r};var Zd=(r,e,t)=>(t=r!=null?Vd(Gd(r)):{},Xd(e||!r||!r.__esModule?Cs(t,"default",{value:r,enumerable:!0}):t,r));function Na(r){return!!r?.startsWith("typebulb")}var Ls,$s,_r=N(()=>{Ls={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"}},$s=["code","css","html","data","infer","insight","config","notes"]});function Ms(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var Lr=N(()=>{});function $r(r){try{let e=r.split(`
4
- `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ap(n);if(!s)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:s,files:i}}catch{return null}}function ap(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=Ms(i);break}}return!Na(e.format)||!e.name?null:e}function Ca(r){let e=Object.fromEntries($s.map(t=>[t,r.files.get(Ls[t].path)||""]));return{name:r.frontmatter.name,...e}}var Ra=N(()=>{_r();Lr()});var Ia=N(()=>{_r();Lr()});function _a(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var La=N(()=>{});var $a=N(()=>{});function Ds(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var Ma=N(()=>{});function Ot(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var Da=N(()=>{});function Mr(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var Ba=N(()=>{});function Nt(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Ds(r,`<${e}[
6
- >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=Ot(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,g=1,h=0;for(;(c=Ot(a,"[ /]"+e+">",p))!==-1;){let y=a.substring(p,c+1);if(g+=Mr(y,"<"+e+`[
7
- >]`),h+=Mr(y,"</"+e+">"),h>=g)break;p=c}}else c=Ot(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&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 Bs=N(()=>{Ma();Da();Ba()});var qs=N(()=>{Bs()});var Fs=N(()=>{qs()});var qa=N(()=>{Fs()});var Fa=N(()=>{});var ja=N(()=>{$a();Bs();qs();qa();Fs();Fa()});var P=v(q=>{"use strict";var js=Symbol.for("yaml.alias"),Ua=Symbol.for("yaml.document"),Dr=Symbol.for("yaml.map"),Ja=Symbol.for("yaml.pair"),Us=Symbol.for("yaml.scalar"),Br=Symbol.for("yaml.seq"),de=Symbol.for("yaml.node.type"),fp=r=>!!r&&typeof r=="object"&&r[de]===js,dp=r=>!!r&&typeof r=="object"&&r[de]===Ua,pp=r=>!!r&&typeof r=="object"&&r[de]===Dr,hp=r=>!!r&&typeof r=="object"&&r[de]===Ja,Ka=r=>!!r&&typeof r=="object"&&r[de]===Us,mp=r=>!!r&&typeof r=="object"&&r[de]===Br;function Wa(r){if(r&&typeof r=="object")switch(r[de]){case Dr:case Br:return!0}return!1}function gp(r){if(r&&typeof r=="object")switch(r[de]){case js:case Dr:case Us:case Br:return!0}return!1}var yp=r=>(Ka(r)||Wa(r))&&!!r.anchor;q.ALIAS=js;q.DOC=Ua;q.MAP=Dr;q.NODE_TYPE=de;q.PAIR=Ja;q.SCALAR=Us;q.SEQ=Br;q.hasAnchor=yp;q.isAlias=fp;q.isCollection=Wa;q.isDocument=dp;q.isMap=pp;q.isNode=gp;q.isPair=hp;q.isScalar=Ka;q.isSeq=mp});var Ct=v(Js=>{"use strict";var M=P(),K=Symbol("break visit"),Va=Symbol("skip children"),ae=Symbol("remove node");function qr(r,e){let t=Ya(e);M.isDocument(r)?rt(null,r.contents,t,Object.freeze([r]))===ae&&(r.contents=null):rt(null,r,t,Object.freeze([]))}qr.BREAK=K;qr.SKIP=Va;qr.REMOVE=ae;function rt(r,e,t,n){let s=Ha(r,e,t,n);if(M.isNode(s)||M.isPair(s))return Ga(r,n,s),rt(r,s,t,n);if(typeof s!="symbol"){if(M.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=rt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===K)return K;o===ae&&(e.items.splice(i,1),i-=1)}}}else if(M.isPair(e)){n=Object.freeze(n.concat(e));let i=rt("key",e.key,t,n);if(i===K)return K;i===ae&&(e.key=null);let o=rt("value",e.value,t,n);if(o===K)return K;o===ae&&(e.value=null)}}return s}async function Fr(r,e){let t=Ya(e);M.isDocument(r)?await nt(null,r.contents,t,Object.freeze([r]))===ae&&(r.contents=null):await nt(null,r,t,Object.freeze([]))}Fr.BREAK=K;Fr.SKIP=Va;Fr.REMOVE=ae;async function nt(r,e,t,n){let s=await Ha(r,e,t,n);if(M.isNode(s)||M.isPair(s))return Ga(r,n,s),nt(r,s,t,n);if(typeof s!="symbol"){if(M.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await nt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===K)return K;o===ae&&(e.items.splice(i,1),i-=1)}}}else if(M.isPair(e)){n=Object.freeze(n.concat(e));let i=await nt("key",e.key,t,n);if(i===K)return K;i===ae&&(e.key=null);let o=await nt("value",e.value,t,n);if(o===K)return K;o===ae&&(e.value=null)}}return s}function Ya(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 Ha(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(M.isMap(e))return t.Map?.(r,e,n);if(M.isSeq(e))return t.Seq?.(r,e,n);if(M.isPair(e))return t.Pair?.(r,e,n);if(M.isScalar(e))return t.Scalar?.(r,e,n);if(M.isAlias(e))return t.Alias?.(r,e,n)}function Ga(r,e,t){let n=e[e.length-1];if(M.isCollection(n))n.items[r]=t;else if(M.isPair(n))r==="key"?n.key=t:n.value=t;else if(M.isDocument(n))n.contents=t;else{let s=M.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Js.visit=qr;Js.visitAsync=Fr});var Ks=v(Qa=>{"use strict";var za=P(),bp=Ct(),wp={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},vp=r=>r.replace(/[!,[\]{}]/g,e=>wp[e]),Rt=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 n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;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 ${s}`,!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[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+vp(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&za.isNode(e.contents)){let i={};bp.visit(e.contents,(o,a)=>{za.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
8
- `)}};Rt.defaultYaml={explicit:!1,version:"1.2"};Rt.defaultTags={"!!":"tag:yaml.org,2002:"};Qa.Directives=Rt});var jr=v(It=>{"use strict";var Xa=P(),Sp=Ct();function xp(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 Za(r){let e=new Set;return Sp.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function ec(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function kp(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Za(r));let o=ec(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(Xa.isScalar(o.node)||Xa.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:n}}It.anchorIsValid=xp;It.anchorNames=Za;It.createNodeAnchors=kp;It.findNewAnchor=ec});var Ws=v(tc=>{"use strict";function _t(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=_t(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=_t(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=_t(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=_t(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}tc.applyReviver=_t});var ve=v(nc=>{"use strict";var Ep=P();function rc(r,e,t){if(Array.isArray(r))return r.map((n,s)=>rc(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Ep.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}nc.toJS=rc});var Ur=v(ic=>{"use strict";var Ap=Ws(),sc=P(),Tp=ve(),Vs=class{constructor(e){Object.defineProperty(this,sc.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:n,onAnchor:s,reviver:i}={}){if(!sc.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 n=="number"?n:100},a=Tp.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Ap.applyReviver(i,{"":a},"",a):a}};ic.NodeBase=Vs});var Lt=v(oc=>{"use strict";var Pp=jr(),Op=Ct(),st=P(),Np=Ur(),Cp=ve(),Ys=class extends Np.NodeBase{constructor(e){super(st.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Op.visit(e,{Node:(i,o)=>{(st.isAlias(o)||st.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Cp.toJS(o,null,t),a=n.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(s,o,n)),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,n){let s=`*${this.source}`;if(e){if(Pp.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`${s} `}return s}};function Jr(r,e,t){if(st.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(st.isCollection(e)){let n=0;for(let s of e.items){let i=Jr(r,s,t);i>n&&(n=i)}return n}else if(st.isPair(e)){let n=Jr(r,e.key,t),s=Jr(r,e.value,t);return Math.max(n,s)}return 1}oc.Alias=Ys});var _=v(Hs=>{"use strict";var Rp=P(),Ip=Ur(),_p=ve(),Lp=r=>!r||typeof r!="function"&&typeof r!="object",Se=class extends Ip.NodeBase{constructor(e){super(Rp.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:_p.toJS(this.value,e,t)}toString(){return String(this.value)}};Se.BLOCK_FOLDED="BLOCK_FOLDED";Se.BLOCK_LITERAL="BLOCK_LITERAL";Se.PLAIN="PLAIN";Se.QUOTE_DOUBLE="QUOTE_DOUBLE";Se.QUOTE_SINGLE="QUOTE_SINGLE";Hs.Scalar=Se;Hs.isScalarValue=Lp});var $t=v(cc=>{"use strict";var $p=Lt(),Me=P(),ac=_(),Mp="tag:yaml.org,2002:";function Dp(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function Bp(r,e,t){if(Me.isDocument(r)&&(r=r.contents),Me.isNode(r))return r;if(Me.isPair(r)){let u=t.schema[Me.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:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new $p.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Mp+e.slice(2));let l=Dp(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new ac.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[Me.MAP]:Symbol.iterator in Object(r)?o[Me.SEQ]:o[Me.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 ac.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}cc.createNode=Bp});var Wr=v(Kr=>{"use strict";var qp=$t(),ce=P(),Fp=Ur();function Gs(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return qp.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var lc=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,zs=class extends Fp.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(n=>ce.isNode(n)||ce.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(lc(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(ce.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Gs(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(ce.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&ce.isScalar(i)?i.value:i:ce.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!ce.isPair(t))return!1;let n=t.value;return n==null||e&&ce.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return ce.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(ce.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Gs(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};Kr.Collection=zs;Kr.collectionFromPath=Gs;Kr.isEmptyPath=lc});var Mt=v(Vr=>{"use strict";var jp=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Qs(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Up=(r,e,t)=>r.endsWith(`
9
- `)?Qs(t,e):t.includes(`
3
+ var zd=Object.create;var _n=Object.defineProperty;var Qd=Object.getOwnPropertyDescriptor;var Xd=Object.getOwnPropertyNames;var Zd=Object.getPrototypeOf,ep=Object.prototype.hasOwnProperty;var Lr=(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 S=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),tp=(r,e)=>{for(var t in e)_n(r,t,{get:e[t],enumerable:!0})},rp=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Xd(e))!ep.call(r,n)&&n!==t&&_n(r,n,{get:()=>e[n],enumerable:!(s=Qd(e,n))||s.enumerable});return r};var sp=(r,e,t)=>(t=r!=null?zd(Zd(r)):{},rp(e||!r||!r.__esModule?_n(t,"default",{value:r,enumerable:!0}):t,r));function _a(r){return!!r?.startsWith("typebulb")}var Dn,Bn,$r=O(()=>{Dn={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"}},Bn=["code","css","html","data","infer","insight","config","notes"]});function qn(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var Mr=O(()=>{});function Dr(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=fp(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 fp(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=qn(i);break}}return!_a(e.format)||!e.name?null:e}function La(r){let e=Object.fromEntries(Bn.map(t=>[t,r.files.get(Dn[t].path)||""]));return{name:r.frontmatter.name,...e}}var $a=O(()=>{$r();Mr()});var Ma=O(()=>{$r();Mr()});function Da(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var Ba=O(()=>{});var qa=O(()=>{});function Fn(r,e,t){let n=new RegExp(e).exec(r.slice(t));return n?t+n.index:-1}var Fa=O(()=>{});function Nt(r,e,t){let n=new RegExp(e).exec(r.slice(t));return n?t+n.index+n[0].length-1:-1}var ja=O(()=>{});function Br(r,e){let t=new RegExp(e,"g"),s=r.match(t);return s?s.length:0}var Ua=O(()=>{});function Ct(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=Fn(r,`<${e}[
6
+ >/]`,i);if(s&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=Nt(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(s&&console.log("[xml-utils] selfClosing:",l),l===!1)if(n){let p=0,m=1,h=0;for(;(c=Nt(a,"[ /]"+e+">",p))!==-1;){let y=a.substring(p,c+1);if(m+=Br(y,"<"+e+`[
7
+ >]`),h+=Br(y,"</"+e+">"),h>=m)break;p=c}}else c=Nt(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 jn=O(()=>{Fa();ja();Ua()});var Un=O(()=>{jn()});var Jn=O(()=>{Un()});var Ja=O(()=>{Jn()});var Ka=O(()=>{});var Wa=O(()=>{qa();jn();Un();Ja();Jn();Ka()});var P=S(F=>{"use strict";var Kn=Symbol.for("yaml.alias"),Va=Symbol.for("yaml.document"),qr=Symbol.for("yaml.map"),Ya=Symbol.for("yaml.pair"),Wn=Symbol.for("yaml.scalar"),Fr=Symbol.for("yaml.seq"),pe=Symbol.for("yaml.node.type"),mp=r=>!!r&&typeof r=="object"&&r[pe]===Kn,gp=r=>!!r&&typeof r=="object"&&r[pe]===Va,yp=r=>!!r&&typeof r=="object"&&r[pe]===qr,bp=r=>!!r&&typeof r=="object"&&r[pe]===Ya,Ha=r=>!!r&&typeof r=="object"&&r[pe]===Wn,wp=r=>!!r&&typeof r=="object"&&r[pe]===Fr;function Ga(r){if(r&&typeof r=="object")switch(r[pe]){case qr:case Fr:return!0}return!1}function vp(r){if(r&&typeof r=="object")switch(r[pe]){case Kn:case qr:case Wn:case Fr:return!0}return!1}var Sp=r=>(Ha(r)||Ga(r))&&!!r.anchor;F.ALIAS=Kn;F.DOC=Va;F.MAP=qr;F.NODE_TYPE=pe;F.PAIR=Ya;F.SCALAR=Wn;F.SEQ=Fr;F.hasAnchor=Sp;F.isAlias=mp;F.isCollection=Ga;F.isDocument=gp;F.isMap=yp;F.isNode=vp;F.isPair=bp;F.isScalar=Ha;F.isSeq=wp});var Rt=S(Vn=>{"use strict";var B=P(),K=Symbol("break visit"),za=Symbol("skip children"),ae=Symbol("remove node");function jr(r,e){let t=Qa(e);B.isDocument(r)?tt(null,r.contents,t,Object.freeze([r]))===ae&&(r.contents=null):tt(null,r,t,Object.freeze([]))}jr.BREAK=K;jr.SKIP=za;jr.REMOVE=ae;function tt(r,e,t,s){let n=Xa(r,e,t,s);if(B.isNode(n)||B.isPair(n))return Za(r,s,n),tt(r,n,t,s);if(typeof n!="symbol"){if(B.isCollection(e)){s=Object.freeze(s.concat(e));for(let i=0;i<e.items.length;++i){let o=tt(i,e.items[i],t,s);if(typeof o=="number")i=o-1;else{if(o===K)return K;o===ae&&(e.items.splice(i,1),i-=1)}}}else if(B.isPair(e)){s=Object.freeze(s.concat(e));let i=tt("key",e.key,t,s);if(i===K)return K;i===ae&&(e.key=null);let o=tt("value",e.value,t,s);if(o===K)return K;o===ae&&(e.value=null)}}return n}async function Ur(r,e){let t=Qa(e);B.isDocument(r)?await rt(null,r.contents,t,Object.freeze([r]))===ae&&(r.contents=null):await rt(null,r,t,Object.freeze([]))}Ur.BREAK=K;Ur.SKIP=za;Ur.REMOVE=ae;async function rt(r,e,t,s){let n=await Xa(r,e,t,s);if(B.isNode(n)||B.isPair(n))return Za(r,s,n),rt(r,n,t,s);if(typeof n!="symbol"){if(B.isCollection(e)){s=Object.freeze(s.concat(e));for(let i=0;i<e.items.length;++i){let o=await rt(i,e.items[i],t,s);if(typeof o=="number")i=o-1;else{if(o===K)return K;o===ae&&(e.items.splice(i,1),i-=1)}}}else if(B.isPair(e)){s=Object.freeze(s.concat(e));let i=await rt("key",e.key,t,s);if(i===K)return K;i===ae&&(e.key=null);let o=await rt("value",e.value,t,s);if(o===K)return K;o===ae&&(e.value=null)}}return n}function Qa(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 Xa(r,e,t,s){if(typeof t=="function")return t(r,e,s);if(B.isMap(e))return t.Map?.(r,e,s);if(B.isSeq(e))return t.Seq?.(r,e,s);if(B.isPair(e))return t.Pair?.(r,e,s);if(B.isScalar(e))return t.Scalar?.(r,e,s);if(B.isAlias(e))return t.Alias?.(r,e,s)}function Za(r,e,t){let s=e[e.length-1];if(B.isCollection(s))s.items[r]=t;else if(B.isPair(s))r==="key"?s.key=t:s.value=t;else if(B.isDocument(s))s.contents=t;else{let n=B.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${n} parent`)}}Vn.visit=jr;Vn.visitAsync=Ur});var Yn=S(tc=>{"use strict";var ec=P(),xp=Rt(),kp={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Ep=r=>r.replace(/[!,[\]{}]/g,e=>kp[e]),It=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+Ep(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&&ec.isNode(e.contents)){let i={};xp.visit(e.contents,(o,a)=>{ec.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
+ `)}};It.defaultYaml={explicit:!1,version:"1.2"};It.defaultTags={"!!":"tag:yaml.org,2002:"};tc.Directives=It});var Jr=S(_t=>{"use strict";var rc=P(),Tp=Rt();function Ap(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 sc(r){let e=new Set;return Tp.visit(r,{Value(t,s){s.anchor&&e.add(s.anchor)}}),e}function nc(r,e){for(let t=1;;++t){let s=`${r}${t}`;if(!e.has(s))return s}}function Pp(r,e){let t=[],s=new Map,n=null;return{onAnchor:i=>{t.push(i),n??(n=sc(r));let o=nc(e,n);return n.add(o),o},setAnchors:()=>{for(let i of t){let o=s.get(i);if(typeof o=="object"&&o.anchor&&(rc.isScalar(o.node)||rc.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}}_t.anchorIsValid=Ap;_t.anchorNames=sc;_t.createNodeAnchors=Pp;_t.findNewAnchor=nc});var Hn=S(ic=>{"use strict";function Lt(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=Lt(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=Lt(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=Lt(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=Lt(r,s,n,i);o===void 0?delete s[n]:o!==i&&(s[n]=o)}return r.call(e,t,s)}ic.applyReviver=Lt});var ve=S(ac=>{"use strict";var Op=P();function oc(r,e,t){if(Array.isArray(r))return r.map((s,n)=>oc(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}ac.toJS=oc});var Kr=S(lc=>{"use strict";var Np=Hn(),cc=P(),Cp=ve(),Gn=class{constructor(e){Object.defineProperty(this,cc.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(!cc.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"?Np.applyReviver(i,{"":a},"",a):a}};lc.NodeBase=Gn});var $t=S(uc=>{"use strict";var Rp=Jr(),Ip=Rt(),st=P(),_p=Kr(),Lp=ve(),zn=class extends _p.NodeBase{constructor(e){super(st.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=[],Ip.visit(e,{Node:(i,o)=>{(st.isAlias(o)||st.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||(Lp.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=Wr(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(Rp.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 Wr(r,e,t){if(st.isAlias(e)){let s=e.resolve(r),n=t&&s&&t.get(s);return n?n.count*n.aliasCount:0}else if(st.isCollection(e)){let s=0;for(let n of e.items){let i=Wr(r,n,t);i>s&&(s=i)}return s}else if(st.isPair(e)){let s=Wr(r,e.key,t),n=Wr(r,e.value,t);return Math.max(s,n)}return 1}uc.Alias=zn});var _=S(Qn=>{"use strict";var $p=P(),Mp=Kr(),Dp=ve(),Bp=r=>!r||typeof r!="function"&&typeof r!="object",Se=class extends Mp.NodeBase{constructor(e){super($p.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Dp.toJS(this.value,e,t)}toString(){return String(this.value)}};Se.BLOCK_FOLDED="BLOCK_FOLDED";Se.BLOCK_LITERAL="BLOCK_LITERAL";Se.PLAIN="PLAIN";Se.QUOTE_DOUBLE="QUOTE_DOUBLE";Se.QUOTE_SINGLE="QUOTE_SINGLE";Qn.Scalar=Se;Qn.isScalarValue=Bp});var Mt=S(dc=>{"use strict";var qp=$t(),$e=P(),fc=_(),Fp="tag:yaml.org,2002:";function jp(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 Up(r,e,t){if($e.isDocument(r)&&(r=r.contents),$e.isNode(r))return r;if($e.isPair(r)){let u=t.schema[$e.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 qp.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Fp+e.slice(2));let l=jp(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new fc.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[$e.MAP]:Symbol.iterator in Object(r)?o[$e.SEQ]:o[$e.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 fc.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}dc.createNode=Up});var Yr=S(Vr=>{"use strict";var Jp=Mt(),ce=P(),Kp=Kr();function Xn(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 Jp.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 pc=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Zn=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(pc(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,Xn(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,Xn(this.schema,n,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${n}`)}}};Vr.Collection=Zn;Vr.collectionFromPath=Xn;Vr.isEmptyPath=pc});var Dt=S(Hr=>{"use strict";var Wp=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function ei(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Vp=(r,e,t)=>r.endsWith(`
9
+ `)?ei(t,e):t.includes(`
10
10
  `)?`
11
- `+Qs(t,e):(r.endsWith(" ")?"":" ")+t;Vr.indentComment=Qs;Vr.lineComment=Up;Vr.stringifyComment=jp});var fc=v(Dt=>{"use strict";var Jp="flow",Xs="block",Yr="quoted";function Kp(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,g=!1,h=-1,y=-1,k=-1;t===Xs&&(h=uc(r,h,e.length),h!==-1&&(u=h+c));for(let b;b=r[h+=1];){if(t===Yr&&b==="\\"){switch(y=h,r[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}k=h}if(b===`
12
- `)t===Xs&&(h=uc(r,h,e.length)),u=h+e.length+c,d=void 0;else{if(b===" "&&p&&p!==" "&&p!==`
13
- `&&p!==" "){let w=r[h+1];w&&w!==" "&&w!==`
14
- `&&w!==" "&&(d=h)}if(h>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Yr){for(;p===" "||p===" ";)p=b,b=r[h+=1],g=!0;let w=h>k+1?h-2:y-1;if(f[w])return r;l.push(w),f[w]=!0,u=w+c,d=void 0}else g=!0}p=b}if(g&&a&&a(),l.length===0)return r;o&&o();let m=r.slice(0,l[0]);for(let b=0;b<l.length;++b){let w=l[b],S=l[b+1]||r.length;w===0?m=`
15
- ${e}${r.slice(0,S)}`:(t===Yr&&f[w]&&(m+=`${r[w]}\\`),m+=`
16
- ${e}${r.slice(w+1,S)}`)}return m}function uc(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
17
- `);n=e,s=e+1,i=r[s]}return n}Dt.FOLD_BLOCK=Xs;Dt.FOLD_FLOW=Jp;Dt.FOLD_QUOTED=Yr;Dt.foldFlowLines=Kp});var qt=v(dc=>{"use strict";var ee=_(),xe=fc(),Gr=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),zr=r=>/^(%|---|\.\.\.)/m.test(r);function Wp(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
18
- `){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function Bt(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(zr(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(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
11
+ `+ei(t,e):(r.endsWith(" ")?"":" ")+t;Hr.indentComment=ei;Hr.lineComment=Vp;Hr.stringifyComment=Wp});var mc=S(Bt=>{"use strict";var Yp="flow",ti="block",Gr="quoted";function Hp(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,m=!1,h=-1,y=-1,k=-1;t===ti&&(h=hc(r,h,e.length),h!==-1&&(u=h+c));for(let g;g=r[h+=1];){if(t===Gr&&g==="\\"){switch(y=h,r[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}k=h}if(g===`
12
+ `)t===ti&&(h=hc(r,h,e.length)),u=h+e.length+c,d=void 0;else{if(g===" "&&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===Gr){for(;p===" "||p===" ";)p=g,g=r[h+=1],m=!0;let b=h>k+1?h-2:y-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else m=!0}p=g}if(m&&a&&a(),l.length===0)return r;o&&o();let x=r.slice(0,l[0]);for(let g=0;g<l.length;++g){let b=l[g],w=l[g+1]||r.length;b===0?x=`
15
+ ${e}${r.slice(0,w)}`:(t===Gr&&f[b]&&(x+=`${r[b]}\\`),x+=`
16
+ ${e}${r.slice(b+1,w)}`)}return x}function hc(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}Bt.FOLD_BLOCK=ti;Bt.FOLD_FLOW=Yp;Bt.FOLD_QUOTED=Gr;Bt.foldFlowLines=Hp});var Ft=S(gc=>{"use strict";var Z=_(),xe=mc(),Qr=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Xr=r=>/^(%|---|\.\.\.)/m.test(r);function Gp(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 qt(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:s}=e,n=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Xr(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,n?o:xe.foldFlowLines(o,i,xe.FOLD_QUOTED,Gr(e,!1))}function Zs(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
22
- `)||/[ \t]\n|\n[ \t]/.test(r))return Bt(r,e);let t=e.indent||(zr(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
23
- ${t}`)+"'";return e.implicitKey?n:xe.foldFlowLines(n,t,xe.FOLD_FLOW,Gr(e,!1))}function it(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=Bt;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Zs:i&&!s?n=Bt:n=t?Zs:Bt}return n(r,e)}var ei;try{ei=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:xe.foldFlowLines(o,i,xe.FOLD_QUOTED,Qr(e,!1))}function ri(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
22
+ `)||/[ \t]\n|\n[ \t]/.test(r))return qt(r,e);let t=e.indent||(Xr(r)?" ":""),s="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
23
+ ${t}`)+"'";return e.implicitKey?s:xe.foldFlowLines(s,t,xe.FOLD_FLOW,Qr(e,!1))}function nt(r,e){let{singleQuote:t}=e.options,s;if(t===!1)s=qt;else{let n=r.includes('"'),i=r.includes("'");n&&!i?s=ri:i&&!n?s=qt:s=t?ri:qt}return s(r,e)}var si;try{si=new RegExp(`(^|(?<!
24
24
  ))
25
25
  +(?!
26
- |$)`,"g")}catch{ei=/\n+(?!\n|$)/g}function Hr({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return it(t,n);let l=n.indent||(n.forceBlockIndent||zr(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ee.Scalar.BLOCK_FOLDED?!1:e===ee.Scalar.BLOCK_LITERAL?!0:!Wp(t,c,l.length);if(!t)return f?`|
26
+ |$)`,"g")}catch{si=/\n+(?!\n|$)/g}function zr({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 nt(t,s);let l=s.indent||(s.forceBlockIndent||Xr(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===Z.Scalar.BLOCK_FOLDED?!1:e===Z.Scalar.BLOCK_LITERAL?!0:!Gp(t,c,l.length);if(!t)return f?`|
27
27
  `:`>
28
- `;let u,d;for(d=t.length;d>0;--d){let S=t[d-1];if(S!==`
29
- `&&S!==" "&&S!==" ")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(ei,`$&${l}`));let h=!1,y,k=-1;for(y=0;y<t.length;++y){let S=t[y];if(S===" ")h=!0;else if(S===`
32
- `)k=y;else break}let m=t.substring(0,k<y?k+1:y);m&&(t=t.substring(m.length),m=m.replace(/\n+/g,`$&${l}`));let w=(h?l?"2":"1":"")+u;if(r&&(w+=" "+a(r.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let S=t.replace(/\n+/g,`
33
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),E=!1,T=Gr(n,!0);o!=="folded"&&e!==ee.Scalar.BLOCK_FOLDED&&(T.onOverflow=()=>{E=!0});let x=xe.foldFlowLines(`${m}${S}${p}`,l,xe.FOLD_BLOCK,T);if(!E)return`>${w}
34
- ${l}${x}`}return t=t.replace(/\n+/g,`$&${l}`),`|${w}
35
- ${l}${m}${t}${p}`}function Vp(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
36
- `)||f&&/[[\]{},]/.test(i))return it(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
37
- `)?it(i,e):Hr(r,e,t,n);if(!a&&!f&&s!==ee.Scalar.PLAIN&&i.includes(`
38
- `))return Hr(r,e,t,n);if(zr(i)){if(c==="")return e.forceBlockIndent=!0,Hr(r,e,t,n);if(a&&c===l)return it(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 it(i,e)}return a?u:xe.foldFlowLines(u,c,xe.FOLD_FLOW,Gr(e,!1))}function Yp(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ee.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ee.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ee.Scalar.BLOCK_FOLDED:case ee.Scalar.BLOCK_LITERAL:return s||i?it(o.value,e):Hr(o,e,t,n);case ee.Scalar.QUOTE_DOUBLE:return Bt(o.value,e);case ee.Scalar.QUOTE_SINGLE:return Zs(o.value,e);case ee.Scalar.PLAIN:return Vp(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}dc.stringifyString=Yp});var Ft=v(ti=>{"use strict";var Hp=jr(),ke=P(),Gp=Mt(),zp=qt();function Qp(r,e){let t=Object.assign({blockQuote:!0,commentString:Gp.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),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function Xp(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(ke.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function Zp(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(ke.isScalar(r)||ke.isCollection(r))&&r.anchor;i&&Hp.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function eh(r,e,t,n){if(ke.isPair(r))return r.toString(e,t,n);if(ke.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 s,i=ke.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=Xp(e.doc.schema.tags,i));let o=Zp(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):ke.isScalar(i)?zp.stringifyString(i,e,t,n):i.toString(e,t,n);return o?ke.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
40
- ${e.indent}${a}`:a}ti.createStringifyContext=Qp;ti.stringify=eh});var gc=v(mc=>{"use strict";var pe=P(),pc=_(),hc=Ft(),jt=Mt();function th({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=pe.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(pe.isCollection(r)||!pe.isNode(r)&&typeof r=="object"){let T="With simple keys, collection cannot be used as a key value";throw new Error(T)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||pe.isCollection(r)||(pe.isScalar(r)?r.type===pc.Scalar.BLOCK_FOLDED||r.type===pc.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=hc.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&&n&&n(),y===""?"?":p?`? ${y}`:y}else if(i&&!u||e==null&&p)return y=`? ${y}`,d&&!g?y+=jt.lineComment(y,t.indent,l(d)):h&&s&&s(),y;g&&(d=null),p?(d&&(y+=jt.lineComment(y,t.indent,l(d))),y=`? ${y}
41
- ${a}:`):(y=`${y}:`,d&&(y+=jt.lineComment(y,t.indent,l(d))));let k,m,b;pe.isNode(e)?(k=!!e.spaceBefore,m=e.commentBefore,b=e.comment):(k=!1,m=null,b=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&pe.isScalar(e)&&(t.indentAtStart=y.length+1),h=!1,!f&&c.length>=2&&!t.inFlow&&!p&&pe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let w=!1,S=hc.stringify(e,t,()=>w=!0,()=>h=!0),E=" ";if(d||k||m){if(E=k?`
42
- `:"",m){let T=l(m);E+=`
43
- ${jt.indentComment(T,t.indent)}`}S===""&&!t.inFlow?E===`
44
- `&&b&&(E=`
45
-
46
- `):E+=`
47
- ${t.indent}`}else if(!p&&pe.isCollection(e)){let T=S[0],x=S.indexOf(`
48
- `),O=x!==-1,J=t.inFlow??e.flow??e.items.length===0;if(O||!J){let H=!1;if(O&&(T==="&"||T==="!")){let R=S.indexOf(" ");T==="&"&&R!==-1&&R<x&&S[R+1]==="!"&&(R=S.indexOf(" ",R+1)),(R===-1||x<R)&&(H=!0)}H||(E=`
49
- ${t.indent}`)}}else(S===""||S[0]===`
50
- `)&&(E="");return y+=E+S,t.inFlow?w&&n&&n():b&&!w?y+=jt.lineComment(y,t.indent,l(b)):h&&s&&s(),y}mc.stringifyPair=th});var ni=v(ri=>{"use strict";var yc=Ir("process");function rh(r,...e){r==="debug"&&console.log(...e)}function nh(r,e){(r==="debug"||r==="warn")&&(typeof yc.emitWarning=="function"?yc.emitWarning(e):console.warn(e))}ri.debug=rh;ri.warn=nh});var en=v(Zr=>{"use strict";var Ut=P(),bc=_(),Qr="<<",Xr={identify:r=>r===Qr||typeof r=="symbol"&&r.description===Qr,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new bc.Scalar(Symbol(Qr)),{addToJSMap:wc}),stringify:()=>Qr},sh=(r,e)=>(Xr.identify(e)||Ut.isScalar(e)&&(!e.type||e.type===bc.Scalar.PLAIN)&&Xr.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===Xr.tag&&t.default);function wc(r,e,t){if(t=r&&Ut.isAlias(t)?t.resolve(r.doc):t,Ut.isSeq(t))for(let n of t.items)si(r,e,n);else if(Array.isArray(t))for(let n of t)si(r,e,n);else si(r,e,t)}function si(r,e,t){let n=r&&Ut.isAlias(t)?t.resolve(r.doc):t;if(!Ut.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)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=wc;Zr.isMergeKey=sh;Zr.merge=Xr});var oi=v(xc=>{"use strict";var ih=ni(),vc=en(),oh=Ft(),Sc=P(),ii=ve();function ah(r,e,{key:t,value:n}){if(Sc.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(vc.isMergeKey(r,t))vc.addMergeToJSMap(r,e,n);else{let s=ii.toJS(t,"",r);if(e instanceof Map)e.set(s,ii.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=ch(t,s,r),o=ii.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function ch(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Sc.isNode(r)&&t?.doc){let n=oh.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),ih.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 s}return JSON.stringify(e)}xc.addPairToJSMap=ah});var Ee=v(ai=>{"use strict";var kc=$t(),lh=gc(),uh=oi(),tn=P();function fh(r,e,t){let n=kc.createNode(r,void 0,t),s=kc.createNode(e,void 0,t);return new rn(n,s)}var rn=class r{constructor(e,t=null){Object.defineProperty(this,tn.NODE_TYPE,{value:tn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return tn.isNode(t)&&(t=t.clone(e)),tn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return uh.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?lh.stringifyPair(this,e,t,n):JSON.stringify(this)}};ai.Pair=rn;ai.createPair=fh});var ci=v(Ac=>{"use strict";var De=P(),Ec=Ft(),nn=Mt();function dh(r,e,t){return(e.inFlow??r.flow?hh:ph)(r,e,t)}function ph({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,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(De.isNode(h))!u&&h.spaceBefore&&d.push(""),sn(t,d,h.commentBefore,u),h.comment&&(y=h.comment);else if(De.isPair(h)){let m=De.isNode(h.key)?h.key:null;m&&(!u&&m.spaceBefore&&d.push(""),sn(t,d,m.commentBefore,u))}u=!1;let k=Ec.stringify(h,f,()=>y=null,()=>u=!0);y&&(k+=nn.lineComment(k,i,l(y))),u&&y&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let g=1;g<d.length;++g){let h=d[g];p+=h?`
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),m=p.indexOf(`
30
+ `);m===-1?u="-":t===p||m!==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(si,`$&${l}`));let h=!1,y,k=-1;for(y=0;y<t.length;++y){let w=t[y];if(w===" ")h=!0;else if(w===`
32
+ `)k=y;else break}let x=t.substring(0,k<y?k+1:y);x&&(t=t.substring(x.length),x=x.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}`),v=!1,T=Qr(s,!0);o!=="folded"&&e!==Z.Scalar.BLOCK_FOLDED&&(T.onOverflow=()=>{v=!0});let E=xe.foldFlowLines(`${x}${w}${p}`,l,xe.FOLD_BLOCK,T);if(!v)return`>${b}
34
+ ${l}${E}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
35
+ ${l}${x}${t}${p}`}function zp(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
+ `)||f&&/[[\]{},]/.test(i))return nt(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
37
+ `)?nt(i,e):zr(r,e,t,s);if(!a&&!f&&n!==Z.Scalar.PLAIN&&i.includes(`
38
+ `))return zr(r,e,t,s);if(Xr(i)){if(c==="")return e.forceBlockIndent=!0,zr(r,e,t,s);if(a&&c===l)return nt(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:m}=e.doc.schema;if(m.some(d)||p?.some(d))return nt(i,e)}return a?u:xe.foldFlowLines(u,c,xe.FOLD_FLOW,Qr(e,!1))}function Qp(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?nt(o.value,e):zr(o,e,t,s);case Z.Scalar.QUOTE_DOUBLE:return qt(o.value,e);case Z.Scalar.QUOTE_SINGLE:return ri(o.value,e);case Z.Scalar.PLAIN:return zp(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}gc.stringifyString=Qp});var jt=S(ni=>{"use strict";var Xp=Jr(),ke=P(),Zp=Dt(),eh=Ft();function th(r,e){let t=Object.assign({blockQuote:!0,commentString:Zp.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 rh(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(ke.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 sh(r,e,{anchors:t,doc:s}){if(!s.directives)return"";let n=[],i=(ke.isScalar(r)||ke.isCollection(r))&&r.anchor;i&&Xp.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 nh(r,e,t,s){if(ke.isPair(r))return r.toString(e,t,s);if(ke.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=ke.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>n=c});n??(n=rh(e.doc.schema.tags,i));let o=sh(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):ke.isScalar(i)?eh.stringifyString(i,e,t,s):i.toString(e,t,s);return o?ke.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
40
+ ${e.indent}${a}`:a}ni.createStringifyContext=th;ni.stringify=nh});var vc=S(wc=>{"use strict";var he=P(),yc=_(),bc=jt(),Ut=Dt();function ih({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=he.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(he.isCollection(r)||!he.isNode(r)&&typeof r=="object"){let T="With simple keys, collection cannot be used as a key value";throw new Error(T)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||he.isCollection(r)||(he.isScalar(r)?r.type===yc.Scalar.BLOCK_FOLDED||r.type===yc.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let m=!1,h=!1,y=bc.stringify(r,t,()=>m=!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 m&&s&&s(),y===""?"?":p?`? ${y}`:y}else if(i&&!u||e==null&&p)return y=`? ${y}`,d&&!m?y+=Ut.lineComment(y,t.indent,l(d)):h&&n&&n(),y;m&&(d=null),p?(d&&(y+=Ut.lineComment(y,t.indent,l(d))),y=`? ${y}
41
+ ${a}:`):(y=`${y}:`,d&&(y+=Ut.lineComment(y,t.indent,l(d))));let k,x,g;he.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,g=e.comment):(k=!1,x=null,g=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&he.isScalar(e)&&(t.indentAtStart=y.length+1),h=!1,!f&&c.length>=2&&!t.inFlow&&!p&&he.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,w=bc.stringify(e,t,()=>b=!0,()=>h=!0),v=" ";if(d||k||x){if(v=k?`
42
+ `:"",x){let T=l(x);v+=`
43
+ ${Ut.indentComment(T,t.indent)}`}w===""&&!t.inFlow?v===`
44
+ `&&g&&(v=`
45
+
46
+ `):v+=`
47
+ ${t.indent}`}else if(!p&&he.isCollection(e)){let T=w[0],E=w.indexOf(`
48
+ `),C=E!==-1,M=t.inFlow??e.flow??e.items.length===0;if(C||!M){let oe=!1;if(C&&(T==="&"||T==="!")){let R=w.indexOf(" ");T==="&"&&R!==-1&&R<E&&w[R+1]==="!"&&(R=w.indexOf(" ",R+1)),(R===-1||E<R)&&(oe=!0)}oe||(v=`
49
+ ${t.indent}`)}}else(w===""||w[0]===`
50
+ `)&&(v="");return y+=v+w,t.inFlow?b&&s&&s():g&&!b?y+=Ut.lineComment(y,t.indent,l(g)):h&&n&&n(),y}wc.stringifyPair=ih});var oi=S(ii=>{"use strict";var Sc=Lr("process");function oh(r,...e){r==="debug"&&console.log(...e)}function ah(r,e){(r==="debug"||r==="warn")&&(typeof Sc.emitWarning=="function"?Sc.emitWarning(e):console.warn(e))}ii.debug=oh;ii.warn=ah});var rs=S(ts=>{"use strict";var Jt=P(),xc=_(),Zr="<<",es={identify:r=>r===Zr||typeof r=="symbol"&&r.description===Zr,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new xc.Scalar(Symbol(Zr)),{addToJSMap:kc}),stringify:()=>Zr},ch=(r,e)=>(es.identify(e)||Jt.isScalar(e)&&(!e.type||e.type===xc.Scalar.PLAIN)&&es.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===es.tag&&t.default);function kc(r,e,t){if(t=r&&Jt.isAlias(t)?t.resolve(r.doc):t,Jt.isSeq(t))for(let s of t.items)ai(r,e,s);else if(Array.isArray(t))for(let s of t)ai(r,e,s);else ai(r,e,t)}function ai(r,e,t){let s=r&&Jt.isAlias(t)?t.resolve(r.doc):t;if(!Jt.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}ts.addMergeToJSMap=kc;ts.isMergeKey=ch;ts.merge=es});var li=S(Ac=>{"use strict";var lh=oi(),Ec=rs(),uh=jt(),Tc=P(),ci=ve();function fh(r,e,{key:t,value:s}){if(Tc.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,s);else if(Ec.isMergeKey(r,t))Ec.addMergeToJSMap(r,e,s);else{let n=ci.toJS(t,"",r);if(e instanceof Map)e.set(n,ci.toJS(s,n,r));else if(e instanceof Set)e.add(n);else{let i=dh(t,n,r),o=ci.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 dh(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Tc.isNode(r)&&t?.doc){let s=uh.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)+'..."'),lh.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)}Ac.addPairToJSMap=fh});var Ee=S(ui=>{"use strict";var Pc=Mt(),ph=vc(),hh=li(),ss=P();function mh(r,e,t){let s=Pc.createNode(r,void 0,t),n=Pc.createNode(e,void 0,t);return new ns(s,n)}var ns=class r{constructor(e,t=null){Object.defineProperty(this,ss.NODE_TYPE,{value:ss.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:s}=this;return ss.isNode(t)&&(t=t.clone(e)),ss.isNode(s)&&(s=s.clone(e)),new r(t,s)}toJSON(e,t){let s=t?.mapAsMap?new Map:{};return hh.addPairToJSMap(t,s,this)}toString(e,t,s){return e?.doc?ph.stringifyPair(this,e,t,s):JSON.stringify(this)}};ui.Pair=ns;ui.createPair=mh});var fi=S(Nc=>{"use strict";var Me=P(),Oc=jt(),is=Dt();function gh(r,e,t){return(e.inFlow??r.flow?bh:yh)(r,e,t)}function yh({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 m=0;m<e.length;++m){let h=e[m],y=null;if(Me.isNode(h))!u&&h.spaceBefore&&d.push(""),os(t,d,h.commentBefore,u),h.comment&&(y=h.comment);else if(Me.isPair(h)){let x=Me.isNode(h.key)?h.key:null;x&&(!u&&x.spaceBefore&&d.push(""),os(t,d,x.commentBefore,u))}u=!1;let k=Oc.stringify(h,f,()=>y=null,()=>u=!0);y&&(k+=is.lineComment(k,i,l(y))),u&&y&&(u=!1),d.push(s+k)}let p;if(d.length===0)p=n.start+n.end;else{p=d[0];for(let m=1;m<d.length;++m){let h=d[m];p+=h?`
51
51
  ${c}${h}`:`
52
52
  `}}return r?(p+=`
53
- `+nn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function hh({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let g=0;g<r.length;++g){let h=r[g],y=null;if(De.isNode(h))h.spaceBefore&&u.push(""),sn(e,u,h.commentBefore,!1),h.comment&&(y=h.comment);else if(De.isPair(h)){let m=De.isNode(h.key)?h.key:null;m&&(m.spaceBefore&&u.push(""),sn(e,u,m.commentBefore,!1),m.comment&&(l=!0));let b=De.isNode(h.value)?h.value:null;b?(b.comment&&(y=b.comment),b.commentBefore&&(l=!0)):h.value==null&&m?.comment&&(y=m.comment)}y&&(l=!0);let k=Ec.stringify(h,c,()=>y=null);g<r.length-1&&(k+=","),y&&(k+=nn.lineComment(k,n,a(y))),!l&&(u.length>f||k.includes(`
54
- `))&&(l=!0),u.push(k),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}${s}${h}`:`
56
- `;return`${g}
57
- ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function sn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=nn.indentComment(e(n),r);t.push(i.trimStart())}}Ac.stringifyCollection=dh});var Te=v(ui=>{"use strict";var mh=ci(),gh=oi(),yh=Wr(),Ae=P(),on=Ee(),bh=_();function Jt(r,e){let t=Ae.isScalar(e)?e.value:e;for(let n of r)if(Ae.isPair(n)&&(n.key===e||n.key===t||Ae.isScalar(n.key)&&n.key.value===t))return n}var li=class extends yh.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Ae.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,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||s)&&o.items.push(on.createPair(c,l,n))};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 n;Ae.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new on.Pair(e,e?.value):n=new on.Pair(e.key,e.value);let s=Jt(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Ae.isScalar(s.value)&&bh.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}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 s=Jt(this.items,e)?.value;return(!t&&Ae.isScalar(s)?s.value:s)??void 0}has(e){return!!Jt(this.items,e)}set(e,t){this.add(new on.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)gh.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Ae.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),mh.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};ui.YAMLMap=li;ui.findPair=Jt});var ot=v(Pc=>{"use strict";var wh=P(),Tc=Te(),vh={collection:"map",default:!0,nodeClass:Tc.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return wh.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Tc.YAMLMap.from(r,e,t)};Pc.map=vh});var Pe=v(Oc=>{"use strict";var Sh=$t(),xh=ci(),kh=Wr(),cn=P(),Eh=_(),Ah=ve(),fi=class extends kh.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(cn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=an(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=an(e);if(typeof n!="number")return;let s=this.items[n];return!t&&cn.isScalar(s)?s.value:s}has(e){let t=an(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=an(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];cn.isScalar(s)&&Eh.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Ah.toJS(i,String(s++),t));return n}toString(e,t,n){return e?xh.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(Sh.createNode(a,void 0,n))}}return i}};function an(r){let e=cn.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Oc.YAMLSeq=fi});var at=v(Cc=>{"use strict";var Th=P(),Nc=Pe(),Ph={collection:"seq",default:!0,nodeClass:Nc.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Th.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Nc.YAMLSeq.from(r,e,t)};Cc.seq=Ph});var Kt=v(Rc=>{"use strict";var Oh=qt(),Nh={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Oh.stringifyString(r,e,t,n)}};Rc.string=Nh});var ln=v(Lc=>{"use strict";var Ic=_(),_c={identify:r=>r==null,createNode:()=>new Ic.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ic.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&_c.test.test(r)?r:e.options.nullStr};Lc.nullTag=_c});var di=v(Mc=>{"use strict";var Ch=_(),$c={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&&$c.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};Mc.boolTag=$c});var ct=v(Dc=>{"use strict";function Rh({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);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}Dc.stringifyNumber=Rh});var hi=v(un=>{"use strict";var Ih=_(),pi=ct(),_h={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:pi.stringifyNumber},Lh={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():pi.stringifyNumber(r)}},$h={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 Ih.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:pi.stringifyNumber};un.float=$h;un.floatExp=Lh;un.floatNaN=_h});var gi=v(dn=>{"use strict";var Bc=ct(),fn=r=>typeof r=="bigint"||Number.isInteger(r),mi=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function qc(r,e,t){let{value:n}=r;return fn(n)&&n>=0?t+n.toString(e):Bc.stringifyNumber(r)}var Mh={identify:r=>fn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>mi(r,2,8,t),stringify:r=>qc(r,8,"0o")},Dh={identify:fn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>mi(r,0,10,t),stringify:Bc.stringifyNumber},Bh={identify:r=>fn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>mi(r,2,16,t),stringify:r=>qc(r,16,"0x")};dn.int=Dh;dn.intHex=Bh;dn.intOct=Mh});var jc=v(Fc=>{"use strict";var qh=ot(),Fh=ln(),jh=at(),Uh=Kt(),Jh=di(),yi=hi(),bi=gi(),Kh=[qh.map,jh.seq,Uh.string,Fh.nullTag,Jh.boolTag,bi.intOct,bi.int,bi.intHex,yi.floatNaN,yi.floatExp,yi.float];Fc.schema=Kh});var Kc=v(Jc=>{"use strict";var Wh=_(),Vh=ot(),Yh=at();function Uc(r){return typeof r=="bigint"||Number.isInteger(r)}var pn=({value:r})=>JSON.stringify(r),Hh=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:pn},{identify:r=>r==null,createNode:()=>new Wh.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:pn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:pn},{identify:Uc,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})=>Uc(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:pn}],Gh={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},zh=[Vh.map,Yh.seq].concat(Hh,Gh);Jc.schema=zh});var vi=v(Wc=>{"use strict";var Wt=Ir("buffer"),wi=_(),Qh=qt(),Xh={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Wt.Buffer=="function")return Wt.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}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},n,s,i){if(!t)return"";let o=t,a;if(typeof Wt.Buffer=="function")a=o instanceof Wt.Buffer?o.toString("base64"):Wt.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=wi.Scalar.BLOCK_LITERAL),e!==wi.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.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===wi.Scalar.BLOCK_LITERAL?`
58
- `:" ")}return Qh.stringifyString({comment:r,type:e,value:a},n,s,i)}};Wc.binary=Xh});var gn=v(mn=>{"use strict";var hn=P(),Si=Ee(),Zh=_(),em=Pe();function Vc(r,e){if(hn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!hn.isPair(n)){if(hn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new Si.Pair(new Zh.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
59
- ${s.key.commentBefore}`:n.commentBefore),n.comment){let i=s.value??s.key;i.comment=i.comment?`${n.comment}
60
- ${i.comment}`:n.comment}n=s}r.items[t]=hn.isPair(n)?n:new Si.Pair(n)}}else e("Expected a sequence for this tag");return r}function Yc(r,e,t){let{replacer:n}=t,s=new em.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.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;s.items.push(Si.createPair(a,c,t))}return s}var tm={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Vc,createNode:Yc};mn.createPairs=Yc;mn.pairs=tm;mn.resolvePairs=Vc});var Ei=v(ki=>{"use strict";var Hc=P(),xi=ve(),Vt=Te(),rm=Pe(),Gc=gn(),Be=class r extends rm.YAMLSeq{constructor(){super(),this.add=Vt.YAMLMap.prototype.add.bind(this),this.delete=Vt.YAMLMap.prototype.delete.bind(this),this.get=Vt.YAMLMap.prototype.get.bind(this),this.has=Vt.YAMLMap.prototype.has.bind(this),this.set=Vt.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(Hc.isPair(s)?(i=xi.toJS(s.key,"",t),o=xi.toJS(s.value,i,t)):i=xi.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=Gc.createPairs(e,t,n),i=new this;return i.items=s.items,i}};Be.tag="tag:yaml.org,2002:omap";var nm={collection:"seq",identify:r=>r instanceof Map,nodeClass:Be,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=Gc.resolvePairs(r,e),n=[];for(let{key:s}of t.items)Hc.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new Be,t)},createNode:(r,e,t)=>Be.from(r,e,t)};ki.YAMLOMap=Be;ki.omap=nm});var el=v(Ai=>{"use strict";var zc=_();function Qc({value:r,source:e},t){return e&&(r?Xc:Zc).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var Xc={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 zc.Scalar(!0),stringify:Qc},Zc={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 zc.Scalar(!1),stringify:Qc};Ai.falseTag=Zc;Ai.trueTag=Xc});var tl=v(yn=>{"use strict";var sm=_(),Ti=ct(),im={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:Ti.stringifyNumber},om={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():Ti.stringifyNumber(r)}},am={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 sm.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:Ti.stringifyNumber};yn.float=am;yn.floatExp=om;yn.floatNaN=im});var nl=v(Ht=>{"use strict";var rl=ct(),Yt=r=>typeof r=="bigint"||Number.isInteger(r);function bn(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){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 s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Pi(r,e,t){let{value:n}=r;if(Yt(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return rl.stringifyNumber(r)}var cm={identify:Yt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>bn(r,2,2,t),stringify:r=>Pi(r,2,"0b")},lm={identify:Yt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>bn(r,1,8,t),stringify:r=>Pi(r,8,"0")},um={identify:Yt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>bn(r,0,10,t),stringify:rl.stringifyNumber},fm={identify:Yt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>bn(r,2,16,t),stringify:r=>Pi(r,16,"0x")};Ht.int=um;Ht.intBin=cm;Ht.intHex=fm;Ht.intOct=lm});var Ni=v(Oi=>{"use strict";var Sn=P(),wn=Ee(),vn=Te(),qe=class r extends vn.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;Sn.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new wn.Pair(e.key,null):t=new wn.Pair(e,null),vn.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=vn.findPair(this.items,e);return!t&&Sn.isPair(n)?Sn.isScalar(n.key)?n.key.value:n.key:n}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 n=vn.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new wn.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(wn.createPair(o,null,n));return i}};qe.tag="tag:yaml.org,2002:set";var dm={collection:"map",identify:r=>r instanceof Set,nodeClass:qe,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>qe.from(r,e,t),resolve(r,e){if(Sn.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new qe,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Oi.YAMLSet=qe;Oi.set=dm});var Ri=v(xn=>{"use strict";var pm=ct();function Ci(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function sl(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return pm.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var hm={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})=>Ci(r,t),stringify:sl},mm={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=>Ci(r,!1),stringify:sl},il={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(il.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Ci(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$/,"")??""};xn.floatTime=mm;xn.intTime=hm;xn.timestamp=il});var cl=v(al=>{"use strict";var gm=ot(),ym=ln(),bm=at(),wm=Kt(),vm=vi(),ol=el(),Ii=tl(),kn=nl(),Sm=en(),xm=Ei(),km=gn(),Em=Ni(),_i=Ri(),Am=[gm.map,bm.seq,wm.string,ym.nullTag,ol.trueTag,ol.falseTag,kn.intBin,kn.intOct,kn.int,kn.intHex,Ii.floatNaN,Ii.floatExp,Ii.float,vm.binary,Sm.merge,xm.omap,km.pairs,Em.set,_i.intTime,_i.floatTime,_i.timestamp];al.schema=Am});var bl=v(Mi=>{"use strict";var dl=ot(),Tm=ln(),pl=at(),Pm=Kt(),Om=di(),Li=hi(),$i=gi(),Nm=jc(),Cm=Kc(),hl=vi(),Gt=en(),ml=Ei(),gl=gn(),ll=cl(),yl=Ni(),En=Ri(),ul=new Map([["core",Nm.schema],["failsafe",[dl.map,pl.seq,Pm.string]],["json",Cm.schema],["yaml11",ll.schema],["yaml-1.1",ll.schema]]),fl={binary:hl.binary,bool:Om.boolTag,float:Li.float,floatExp:Li.floatExp,floatNaN:Li.floatNaN,floatTime:En.floatTime,int:$i.int,intHex:$i.intHex,intOct:$i.intOct,intTime:En.intTime,map:dl.map,merge:Gt.merge,null:Tm.nullTag,omap:ml.omap,pairs:gl.pairs,seq:pl.seq,set:yl.set,timestamp:En.timestamp},Rm={"tag:yaml.org,2002:binary":hl.binary,"tag:yaml.org,2002:merge":Gt.merge,"tag:yaml.org,2002:omap":ml.omap,"tag:yaml.org,2002:pairs":gl.pairs,"tag:yaml.org,2002:set":yl.set,"tag:yaml.org,2002:timestamp":En.timestamp};function Im(r,e,t){let n=ul.get(e);if(n&&!r)return t&&!n.includes(Gt.merge)?n.concat(Gt.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(ul.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)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Gt.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?fl[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(fl).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},[])}Mi.coreKnownTags=Rm;Mi.getTags=Im});var qi=v(wl=>{"use strict";var Di=P(),_m=ot(),Lm=at(),$m=Kt(),An=bl(),Mm=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Bi=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?An.getTags(e,"compat"):e?An.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?An.coreKnownTags:{},this.tags=An.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Di.MAP,{value:_m.map}),Object.defineProperty(this,Di.SCALAR,{value:$m.string}),Object.defineProperty(this,Di.SEQ,{value:Lm.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Mm:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};wl.Schema=Bi});var Sl=v(vl=>{"use strict";var Dm=P(),Fi=Ft(),zt=Mt();function Bm(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Fi.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(zt.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(Dm.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(zt.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Fi.stringify(r.contents,s,()=>a=null,c);a&&(l+=zt.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Fi.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
61
- `)?(t.push("..."),t.push(zt.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(zt.indentComment(i(c),"")))}return t.join(`
53
+ `+is.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function bh({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 m=0;m<r.length;++m){let h=r[m],y=null;if(Me.isNode(h))h.spaceBefore&&u.push(""),os(e,u,h.commentBefore,!1),h.comment&&(y=h.comment);else if(Me.isPair(h)){let x=Me.isNode(h.key)?h.key:null;x&&(x.spaceBefore&&u.push(""),os(e,u,x.commentBefore,!1),x.comment&&(l=!0));let g=Me.isNode(h.value)?h.value:null;g?(g.comment&&(y=g.comment),g.commentBefore&&(l=!0)):h.value==null&&x?.comment&&(y=x.comment)}y&&(l=!0);let k=Oc.stringify(h,c,()=>y=null);m<r.length-1&&(k+=","),y&&(k+=is.lineComment(k,s,a(y))),!l&&(u.length>f||k.includes(`
54
+ `))&&(l=!0),u.push(k),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let m=u.reduce((h,y)=>h+y.length+2,2);l=e.options.lineWidth>0&&m>e.options.lineWidth}if(l){let m=d;for(let h of u)m+=h?`
55
+ ${i}${n}${h}`:`
56
+ `;return`${m}
57
+ ${n}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function os({indent:r,options:{commentString:e}},t,s,n){if(s&&n&&(s=s.replace(/^\n+/,"")),s){let i=is.indentComment(e(s),r);t.push(i.trimStart())}}Nc.stringifyCollection=gh});var Ae=S(pi=>{"use strict";var wh=fi(),vh=li(),Sh=Yr(),Te=P(),as=Ee(),xh=_();function Kt(r,e){let t=Te.isScalar(e)?e.value:e;for(let s of r)if(Te.isPair(s)&&(s.key===e||s.key===t||Te.isScalar(s.key)&&s.key.value===t))return s}var di=class extends Sh.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Te.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(as.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;Te.isPair(e)?s=e:!e||typeof e!="object"||!("key"in e)?s=new as.Pair(e,e?.value):s=new as.Pair(e.key,e.value);let n=Kt(this.items,s.key),i=this.schema?.sortMapEntries;if(n){if(!t)throw new Error(`Key ${s.key} already set`);Te.isScalar(n.value)&&xh.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=Kt(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=Kt(this.items,e)?.value;return(!t&&Te.isScalar(n)?n.value:n)??void 0}has(e){return!!Kt(this.items,e)}set(e,t){this.add(new as.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)vh.addPairToJSMap(t,n,i);return n}toString(e,t,s){if(!e)return JSON.stringify(this);for(let n of this.items)if(!Te.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})),wh.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:t})}};pi.YAMLMap=di;pi.findPair=Kt});var it=S(Rc=>{"use strict";var kh=P(),Cc=Ae(),Eh={collection:"map",default:!0,nodeClass:Cc.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return kh.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Cc.YAMLMap.from(r,e,t)};Rc.map=Eh});var Pe=S(Ic=>{"use strict";var Th=Mt(),Ah=fi(),Ph=Yr(),ls=P(),Oh=_(),Nh=ve(),hi=class extends Ph.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ls.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=cs(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let s=cs(e);if(typeof s!="number")return;let n=this.items[s];return!t&&ls.isScalar(n)?n.value:n}has(e){let t=cs(e);return typeof t=="number"&&t<this.items.length}set(e,t){let s=cs(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let n=this.items[s];ls.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(Nh.toJS(i,String(n++),t));return s}toString(e,t,s){return e?Ah.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(Th.createNode(a,void 0,s))}}return i}};function cs(r){let e=ls.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Ic.YAMLSeq=hi});var ot=S(Lc=>{"use strict";var Ch=P(),_c=Pe(),Rh={collection:"seq",default:!0,nodeClass:_c.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)=>_c.YAMLSeq.from(r,e,t)};Lc.seq=Rh});var Wt=S($c=>{"use strict";var Ih=Ft(),_h={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),Ih.stringifyString(r,e,t,s)}};$c.string=_h});var us=S(Bc=>{"use strict";var Mc=_(),Dc={identify:r=>r==null,createNode:()=>new Mc.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Mc.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&Dc.test.test(r)?r:e.options.nullStr};Bc.nullTag=Dc});var mi=S(Fc=>{"use strict";var Lh=_(),qc={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Lh.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&qc.test.test(r)){let s=r[0]==="t"||r[0]==="T";if(e===s)return r}return e?t.options.trueStr:t.options.falseStr}};Fc.boolTag=qc});var at=S(jc=>{"use strict";function $h({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}jc.stringifyNumber=$h});var yi=S(fs=>{"use strict";var Mh=_(),gi=at(),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},Bh={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():gi.stringifyNumber(r)}},qh={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)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:gi.stringifyNumber};fs.float=qh;fs.floatExp=Bh;fs.floatNaN=Dh});var wi=S(ps=>{"use strict";var Uc=at(),ds=r=>typeof r=="bigint"||Number.isInteger(r),bi=(r,e,t,{intAsBigInt:s})=>s?BigInt(r):parseInt(r.substring(e),t);function Jc(r,e,t){let{value:s}=r;return ds(s)&&s>=0?t+s.toString(e):Uc.stringifyNumber(r)}var Fh={identify:r=>ds(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>bi(r,2,8,t),stringify:r=>Jc(r,8,"0o")},jh={identify:ds,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>bi(r,0,10,t),stringify:Uc.stringifyNumber},Uh={identify:r=>ds(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>bi(r,2,16,t),stringify:r=>Jc(r,16,"0x")};ps.int=jh;ps.intHex=Uh;ps.intOct=Fh});var Wc=S(Kc=>{"use strict";var Jh=it(),Kh=us(),Wh=ot(),Vh=Wt(),Yh=mi(),vi=yi(),Si=wi(),Hh=[Jh.map,Wh.seq,Vh.string,Kh.nullTag,Yh.boolTag,Si.intOct,Si.int,Si.intHex,vi.floatNaN,vi.floatExp,vi.float];Kc.schema=Hh});var Hc=S(Yc=>{"use strict";var Gh=_(),zh=it(),Qh=ot();function Vc(r){return typeof r=="bigint"||Number.isInteger(r)}var hs=({value:r})=>JSON.stringify(r),Xh=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:hs},{identify:r=>r==null,createNode:()=>new Gh.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:hs},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:hs},{identify:Vc,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})=>Vc(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:hs}],Zh={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},em=[zh.map,Qh.seq].concat(Xh,Zh);Yc.schema=em});var ki=S(Gc=>{"use strict";var Vt=Lr("buffer"),xi=_(),tm=Ft(),rm={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Vt.Buffer=="function")return Vt.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 Vt.Buffer=="function")a=o instanceof Vt.Buffer?o.toString("base64"):Vt.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=xi.Scalar.BLOCK_LITERAL),e!==xi.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===xi.Scalar.BLOCK_LITERAL?`
58
+ `:" ")}return tm.stringifyString({comment:r,type:e,value:a},s,n,i)}};Gc.binary=rm});var ys=S(gs=>{"use strict";var ms=P(),Ei=Ee(),sm=_(),nm=Pe();function zc(r,e){if(ms.isSeq(r))for(let t=0;t<r.items.length;++t){let s=r.items[t];if(!ms.isPair(s)){if(ms.isMap(s)){s.items.length>1&&e("Each pair must have its own sequence indicator");let n=s.items[0]||new Ei.Pair(new sm.Scalar(null));if(s.commentBefore&&(n.key.commentBefore=n.key.commentBefore?`${s.commentBefore}
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]=ms.isPair(s)?s:new Ei.Pair(s)}}else e("Expected a sequence for this tag");return r}function Qc(r,e,t){let{replacer:s}=t,n=new nm.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(Ei.createPair(a,c,t))}return n}var im={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:zc,createNode:Qc};gs.createPairs=Qc;gs.pairs=im;gs.resolvePairs=zc});var Pi=S(Ai=>{"use strict";var Xc=P(),Ti=ve(),Yt=Ae(),om=Pe(),Zc=ys(),De=class r extends om.YAMLSeq{constructor(){super(),this.add=Yt.YAMLMap.prototype.add.bind(this),this.delete=Yt.YAMLMap.prototype.delete.bind(this),this.get=Yt.YAMLMap.prototype.get.bind(this),this.has=Yt.YAMLMap.prototype.has.bind(this),this.set=Yt.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(Xc.isPair(n)?(i=Ti.toJS(n.key,"",t),o=Ti.toJS(n.value,i,t)):i=Ti.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=Zc.createPairs(e,t,s),i=new this;return i.items=n.items,i}};De.tag="tag:yaml.org,2002:omap";var am={collection:"seq",identify:r=>r instanceof Map,nodeClass:De,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=Zc.resolvePairs(r,e),s=[];for(let{key:n}of t.items)Xc.isScalar(n)&&(s.includes(n.value)?e(`Ordered maps must not include duplicate keys: ${n.value}`):s.push(n.value));return Object.assign(new De,t)},createNode:(r,e,t)=>De.from(r,e,t)};Ai.YAMLOMap=De;Ai.omap=am});var nl=S(Oi=>{"use strict";var el=_();function tl({value:r,source:e},t){return e&&(r?rl:sl).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var rl={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 el.Scalar(!0),stringify:tl},sl={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 el.Scalar(!1),stringify:tl};Oi.falseTag=sl;Oi.trueTag=rl});var il=S(bs=>{"use strict";var cm=_(),Ni=at(),lm={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:Ni.stringifyNumber},um={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():Ni.stringifyNumber(r)}},fm={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 cm.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:Ni.stringifyNumber};bs.float=fm;bs.floatExp=um;bs.floatNaN=lm});var al=S(Gt=>{"use strict";var ol=at(),Ht=r=>typeof r=="bigint"||Number.isInteger(r);function ws(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 Ci(r,e,t){let{value:s}=r;if(Ht(s)){let n=s.toString(e);return s<0?"-"+t+n.substr(1):t+n}return ol.stringifyNumber(r)}var dm={identify:Ht,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>ws(r,2,2,t),stringify:r=>Ci(r,2,"0b")},pm={identify:Ht,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>ws(r,1,8,t),stringify:r=>Ci(r,8,"0")},hm={identify:Ht,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>ws(r,0,10,t),stringify:ol.stringifyNumber},mm={identify:Ht,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>ws(r,2,16,t),stringify:r=>Ci(r,16,"0x")};Gt.int=hm;Gt.intBin=dm;Gt.intHex=mm;Gt.intOct=pm});var Ii=S(Ri=>{"use strict";var xs=P(),vs=Ee(),Ss=Ae(),Be=class r extends Ss.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;xs.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new vs.Pair(e.key,null):t=new vs.Pair(e,null),Ss.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let s=Ss.findPair(this.items,e);return!t&&xs.isPair(s)?xs.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=Ss.findPair(this.items,e);s&&!t?this.items.splice(this.items.indexOf(s),1):!s&&t&&this.items.push(new vs.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(vs.createPair(o,null,s));return i}};Be.tag="tag:yaml.org,2002:set";var gm={collection:"map",identify:r=>r instanceof Set,nodeClass:Be,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>Be.from(r,e,t),resolve(r,e){if(xs.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new Be,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Ri.YAMLSet=Be;Ri.set=gm});var Li=S(ks=>{"use strict";var ym=at();function _i(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 cl(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return ym.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 bm={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})=>_i(r,t),stringify:cl},wm={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=>_i(r,!1),stringify:cl},ll={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(ll.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=_i(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$/,"")??""};ks.floatTime=wm;ks.intTime=bm;ks.timestamp=ll});var dl=S(fl=>{"use strict";var vm=it(),Sm=us(),xm=ot(),km=Wt(),Em=ki(),ul=nl(),$i=il(),Es=al(),Tm=rs(),Am=Pi(),Pm=ys(),Om=Ii(),Mi=Li(),Nm=[vm.map,xm.seq,km.string,Sm.nullTag,ul.trueTag,ul.falseTag,Es.intBin,Es.intOct,Es.int,Es.intHex,$i.floatNaN,$i.floatExp,$i.float,Em.binary,Tm.merge,Am.omap,Pm.pairs,Om.set,Mi.intTime,Mi.floatTime,Mi.timestamp];fl.schema=Nm});var xl=S(qi=>{"use strict";var gl=it(),Cm=us(),yl=ot(),Rm=Wt(),Im=mi(),Di=yi(),Bi=wi(),_m=Wc(),Lm=Hc(),bl=ki(),zt=rs(),wl=Pi(),vl=ys(),pl=dl(),Sl=Ii(),Ts=Li(),hl=new Map([["core",_m.schema],["failsafe",[gl.map,yl.seq,Rm.string]],["json",Lm.schema],["yaml11",pl.schema],["yaml-1.1",pl.schema]]),ml={binary:bl.binary,bool:Im.boolTag,float:Di.float,floatExp:Di.floatExp,floatNaN:Di.floatNaN,floatTime:Ts.floatTime,int:Bi.int,intHex:Bi.intHex,intOct:Bi.intOct,intTime:Ts.intTime,map:gl.map,merge:zt.merge,null:Cm.nullTag,omap:wl.omap,pairs:vl.pairs,seq:yl.seq,set:Sl.set,timestamp:Ts.timestamp},$m={"tag:yaml.org,2002:binary":bl.binary,"tag:yaml.org,2002:merge":zt.merge,"tag:yaml.org,2002:omap":wl.omap,"tag:yaml.org,2002:pairs":vl.pairs,"tag:yaml.org,2002:set":Sl.set,"tag:yaml.org,2002:timestamp":Ts.timestamp};function Mm(r,e,t){let s=hl.get(e);if(s&&!r)return t&&!s.includes(zt.merge)?s.concat(zt.merge):s.slice();let n=s;if(!n)if(Array.isArray(r))n=[];else{let i=Array.from(hl.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(zt.merge)),n.reduce((i,o)=>{let a=typeof o=="string"?ml[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(ml).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},[])}qi.coreKnownTags=$m;qi.getTags=Mm});var Ui=S(kl=>{"use strict";var Fi=P(),Dm=it(),Bm=ot(),qm=Wt(),As=xl(),Fm=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,ji=class r{constructor({compat:e,customTags:t,merge:s,resolveKnownTags:n,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?As.getTags(e,"compat"):e?As.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=n?As.coreKnownTags:{},this.tags=As.getTags(t,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,Fi.MAP,{value:Dm.map}),Object.defineProperty(this,Fi.SCALAR,{value:qm.string}),Object.defineProperty(this,Fi.SEQ,{value:Bm.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Fm:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};kl.Schema=ji});var Tl=S(El=>{"use strict";var jm=P(),Ji=jt(),Qt=Dt();function Um(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=Ji.createStringifyContext(r,e),{commentString:i}=n.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Qt.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(jm.isNode(r.contents)){if(r.contents.spaceBefore&&s&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Qt.indentComment(f,""))}n.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Ji.stringify(r.contents,n,()=>a=null,c);a&&(l+=Qt.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Ji.stringify(r.contents,n));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
61
+ `)?(t.push("..."),t.push(Qt.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(Qt.indentComment(i(c),"")))}return t.join(`
62
62
  `)+`
63
- `}vl.stringifyDocument=Bm});var Qt=v(xl=>{"use strict";var qm=Lt(),lt=Wr(),G=P(),Fm=Ee(),jm=ve(),Um=qi(),Jm=Sl(),ji=jr(),Km=Ws(),Wm=$t(),Ui=Ks(),Ji=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,G.NODE_TYPE,{value:G.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=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"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ui.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}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){ut(this.contents)&&this.contents.add(e)}addIn(e,t){ut(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=ji.anchorNames(this);e.anchor=!t||n.has(t)?ji.findNewAnchor(t||"a",n):t}return new qm.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let y=m=>typeof m=="number"||m instanceof String||m instanceof Number,k=t.filter(y).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=ji.createNodeAnchors(this,o||"a"),g={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},h=Wm.createNode(e,f,g);return a&&G.isCollection(h)&&(h.flow=!0),d(),h}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Fm.Pair(s,i)}delete(e){return ut(this.contents)?this.contents.delete(e):!1}deleteIn(e){return lt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):ut(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 lt.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 lt.isEmptyPath(e)?this.contents!==void 0:G.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=lt.collectionFromPath(this.schema,[e],t):ut(this.contents)&&this.contents.set(e,t)}setIn(e,t){lt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=lt.collectionFromPath(this.schema,Array.from(e),t):ut(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ui.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Ui.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Um.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=jm.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 Jm.stringifyDocument(this,e)}};function ut(r){if(G.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}xl.Document=Ji});var er=v(Zt=>{"use strict";var Xt=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Ki=class extends Xt{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Wi=class extends Xt{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Vm=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).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"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
64
- `),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===n&&c.col>s&&(a=Math.max(1,Math.min(c.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:
63
+ `}El.stringifyDocument=Um});var Xt=S(Al=>{"use strict";var Jm=$t(),ct=Yr(),H=P(),Km=Ee(),Wm=ve(),Vm=Ui(),Ym=Tl(),Ki=Jr(),Hm=Hn(),Gm=Mt(),Wi=Yn(),Vi=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 Wi.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){lt(this.contents)&&this.contents.add(e)}addIn(e,t){lt(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let s=Ki.anchorNames(this);e.anchor=!t||s.has(t)?Ki.findNewAnchor(t||"a",s):t}return new Jm.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=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(y).map(String);k.length>0&&(t=t.concat(k)),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}=Ki.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:n,schema:this.schema,sourceObjects:p},h=Gm.createNode(e,f,m);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 lt(this.contents)?this.contents.delete(e):!1}deleteIn(e){return ct.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):lt(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 ct.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 ct.isEmptyPath(e)?this.contents!==void 0:H.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=ct.collectionFromPath(this.schema,[e],t):lt(this.contents)&&this.contents.set(e,t)}setIn(e,t){ct.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=ct.collectionFromPath(this.schema,Array.from(e),t):lt(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 Wi.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 Wi.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"?Hm.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 Ym.stringifyDocument(this,e)}};function lt(r){if(H.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Al.Document=Vi});var tr=S(er=>{"use strict";var Zt=class extends Error{constructor(e,t,s,n){super(),this.name=e,this.code=s,this.message=n,this.pos=t}},Yi=class extends Zt{constructor(e,t,s){super("YAMLParseError",e,t,s)}},Hi=class extends Zt{constructor(e,t,s){super("YAMLWarning",e,t,s)}},zm=(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
+ `),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=Xt;Zt.YAMLParseError=Ki;Zt.YAMLWarning=Wi;Zt.prettifyError=Vm});var tr=v(kl=>{"use strict";function Ym(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,g=!1,h=null,y=null,k=null,m=null,b=null,w=null,S=null;for(let x of r)switch(g&&(x.type!=="space"&&x.type!=="newline"&&x.type!=="comma"&&i(x.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),h&&(l&&x.type!=="comment"&&x.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),x.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&x.source.includes(" ")&&(h=x),f=!0;break;case"comment":{f||i(x,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let O=x.source.substring(1)||" ";u?u+=d+O:u=O,d="",l=!1;break}case"newline":l?u?u+=x.source:(!w||t!=="seq-item-ind")&&(c=!0):d+=x.source,l=!0,p=!0,(y||k)&&(m=x),f=!0;break;case"anchor":y&&i(x,"MULTIPLE_ANCHORS","A node can have at most one anchor"),x.source.endsWith(":")&&i(x.offset+x.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=x,S??(S=x.offset),l=!1,f=!1,g=!0;break;case"tag":{k&&i(x,"MULTIPLE_TAGS","A node can have at most one tag"),k=x,S??(S=x.offset),l=!1,f=!1,g=!0;break}case t:(y||k)&&i(x,"BAD_PROP_ORDER",`Anchors and tags must be after the ${x.source} indicator`),w&&i(x,"UNEXPECTED_TOKEN",`Unexpected ${x.source} in ${e??"collection"}`),w=x,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){b&&i(x,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),b=x,l=!1,f=!1;break}default:i(x,"UNEXPECTED_TOKEN",`Unexpected ${x.type} token`),l=!1,f=!1}let E=r[r.length-1],T=E?E.offset+E.source.length:s;return g&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(l&&h.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:b,found:w,spaceBefore:c,comment:u,hasNewline:p,anchor:y,tag:k,newlineAfterProp:m,end:T,start:S??T}}kl.resolveProps=Ym});var Tn=v(El=>{"use strict";function Vi(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(Vi(e.key)||Vi(e.value))return!0}return!1;default:return!0}}El.containsNewline=Vi});var Yi=v(Al=>{"use strict";var Hm=Tn();function Gm(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Hm.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Al.flowIndentCheck=Gm});var Hi=v(Pl=>{"use strict";var Tl=P();function zm(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Tl.isScalar(i)&&Tl.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Pl.mapIncludes=zm});var _l=v(Il=>{"use strict";var Ol=Ee(),Qm=Te(),Nl=tr(),Xm=Tn(),Cl=Yi(),Zm=Hi(),Rl="All mapping items must start at the same column";function eg({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Qm.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:g}=f,h=Nl.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),y=!h.found;if(y){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",Rl)),!h.anchor&&!h.tag&&!p){l=h.end,h.comment&&(a.comment?a.comment+=`
70
- `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||Xm.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==n.indent&&s(c,"BAD_INDENT",Rl);t.atKey=!0;let k=h.end,m=d?r(t,d,h,s):e(t,k,u,null,h,s);t.schema.compat&&Cl.flowIndentCheck(n.indent,d,s),t.atKey=!1,Zm.mapIncludes(t,a.items,m)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let b=Nl.resolveProps(p??[],{indicator:"map-value-ind",next:g,offset:m.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=b.end,b.found){y&&(g?.type==="block-map"&&!b.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&h.start<b.found.offset-1024&&s(m.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let w=g?r(t,g,b,s):e(t,c,p,null,b,s);t.schema.compat&&Cl.flowIndentCheck(n.indent,g,s),c=w.range[2];let S=new Ol.Pair(m,w);t.options.keepSourceTokens&&(S.srcToken=f),a.items.push(S)}else{y&&s(m.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),b.comment&&(m.comment?m.comment+=`
71
- `+b.comment:m.comment=b.comment);let w=new Ol.Pair(m);t.options.keepSourceTokens&&(w.srcToken=f),a.items.push(w)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}Il.resolveBlockMap=eg});var $l=v(Ll=>{"use strict";var tg=Pe(),rg=tr(),ng=Yi();function sg({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??tg.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=rg.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(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,s):e(t,d.end,f,null,d,s);t.schema.compat&&ng.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}Ll.resolveBlockSeq=sg});var ft=v(Ml=>{"use strict";function ig(r,e,t,n){let s="";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&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}Ml.resolveEnd=ig});var Fl=v(ql=>{"use strict";var og=P(),ag=Ee(),Dl=Te(),cg=Pe(),lg=ft(),Bl=tr(),ug=Tn(),fg=Hi(),Gi="Block collections are not allowed within flow collections",zi=r=>r&&(r.type==="block-map"||r.type==="block-seq");function dg({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?Dl.YAMLMap:cg.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let y=0;y<n.items.length;++y){let k=n.items[y],{start:m,key:b,sep:w,value:S}=k,E=Bl.resolveProps(m,{flow:a,indicator:"explicit-key-ind",next:b??w?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!E.found){if(!E.anchor&&!E.tag&&!w&&!S){y===0&&E.comma?s(E.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):y<n.items.length-1&&s(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&&ug.containsNewline(b)&&s(b,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(y===0)E.comma&&s(E.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(E.comma||s(E.start,"MISSING_CHAR",`Missing , between ${a} items`),E.comment){let T="";e:for(let x of m)switch(x.type){case"comma":case"space":break;case"comment":T=x.source.substring(1);break e;default:break e}if(T){let x=l.items[l.items.length-1];og.isPair(x)&&(x=x.value??x.key),x.comment?x.comment+=`
73
- `+T:x.comment=T,E.comment=E.comment.substring(T.length+1)}}if(!o&&!w&&!E.found){let T=S?r(t,S,E,s):e(t,E.end,w,null,E,s);l.items.push(T),u=T.range[2],zi(S)&&s(T.range,"BLOCK_IN_FLOW",Gi)}else{t.atKey=!0;let T=E.end,x=b?r(t,b,E,s):e(t,T,m,null,E,s);zi(b)&&s(x.range,"BLOCK_IN_FLOW",Gi),t.atKey=!1;let O=Bl.resolveProps(w??[],{flow:a,indicator:"map-value-ind",next:S,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(O.found){if(!o&&!E.found&&t.options.strict){if(w)for(let R of w){if(R===O.found)break;if(R.type==="newline"){s(R,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}E.start<O.found.offset-1024&&s(O.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else S&&("source"in S&&S.source?.[0]===":"?s(S,"MISSING_CHAR",`Missing space after : in ${a}`):s(O.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let J=S?r(t,S,O,s):O.found?e(t,O.end,w,null,O,s):null;J?zi(S)&&s(J.range,"BLOCK_IN_FLOW",Gi):O.comment&&(x.comment?x.comment+=`
74
- `+O.comment:x.comment=O.comment);let H=new ag.Pair(x,J);if(t.options.keepSourceTokens&&(H.srcToken=k),o){let R=l;fg.mapIncludes(t,R.items,x)&&s(T,"DUPLICATE_KEY","Map keys must be unique"),R.items.push(H)}else{let R=new Dl.YAMLMap(t.schema);R.flow=!0,R.items.push(H);let $e=(J??x).range;R.range=[x.range[0],$e[1],$e[2]],l.items.push(R)}u=J?J.range[2]:O.end}}let d=o?"}":"]",[p,...g]=n.end,h=u;if(p?.source===d)h=p.offset+p.source.length;else{let y=a[0].toUpperCase()+a.substring(1),k=f?`${y} must end with a ${d}`:`${y} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&g.unshift(p)}if(g.length>0){let y=lg.resolveEnd(g,h,t.options.strict,s);y.comment&&(l.comment?l.comment+=`
75
- `+y.comment:l.comment=y.comment),l.range=[n.offset,h,y.offset]}else l.range=[n.offset,h,h];return l}ql.resolveFlowCollection=dg});var Ul=v(jl=>{"use strict";var pg=P(),hg=_(),mg=Te(),gg=Pe(),yg=_l(),bg=$l(),wg=Fl();function Qi(r,e,t,n,s,i){let o=t.type==="block-map"?yg.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?bg.resolveBlockSeq(r,e,t,n,i):wg.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function vg(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,g=d&&i?d.offset>i.offset?d:i:d??i;g&&(!p||p.offset<g.offset)&&s(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===mg.YAMLMap.tagName&&a==="map"||o===gg.YAMLSeq.tagName&&a==="seq")return Qi(r,e,t,s,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?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qi(r,e,t,s,o)}let l=Qi(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=pg.isNode(f)?f:new hg.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}jl.composeCollection=vg});var Zi=v(Jl=>{"use strict";var Xi=_();function Sg(r,e,t){let n=e.offset,s=xg(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Xi.Scalar.BLOCK_FOLDED:Xi.Scalar.BLOCK_LITERAL,o=e.source?kg(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=s.chomp==="+"&&o.length>0?`
76
- `.repeat(Math.max(1,o.length-1)):"",y=n+s.length;return e.source&&(y+=e.source.length),{value:h,type:i,comment:s.comment,range:[n,y,y]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let h=0;h<a;++h){let[y,k]=o[h];if(k===""||k==="\r")s.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"),s.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+k.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,k]=o[h];l+=y.length+k.length+1;let m=k[k.length-1]==="\r";if(m&&(k=k.slice(0,-1)),k&&y.length<c){let w=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(m?2:1),"BAD_INDENT",w),y=""}i===Xi.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+k,d=`
68
+ `}};er.YAMLError=Zt;er.YAMLParseError=Yi;er.YAMLWarning=Hi;er.prettifyError=zm});var rr=S(Pl=>{"use strict";function Qm(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,m=!1,h=null,y=null,k=null,x=null,g=null,b=null,w=null;for(let E of r)switch(m&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),h&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),E.type){case"space":!e&&(t!=="doc-start"||s?.type!=="flow-collection")&&E.source.includes(" ")&&(h=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let C=E.source.substring(1)||" ";u?u+=d+C:u=C,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(y||k)&&(x=E),f=!0;break;case"anchor":y&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=E,w??(w=E.offset),l=!1,f=!1,m=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,w??(w=E.offset),l=!1,f=!1,m=!0;break}case t:(y||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){g&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),g=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let v=r[r.length-1],T=v?v.offset+v.source.length:n;return m&&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:g,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:y,tag:k,newlineAfterProp:x,end:T,start:w??T}}Pl.resolveProps=Qm});var Ps=S(Ol=>{"use strict";function Gi(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(Gi(e.key)||Gi(e.value))return!0}return!1;default:return!0}}Ol.containsNewline=Gi});var zi=S(Nl=>{"use strict";var Xm=Ps();function Zm(r,e,t){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===r&&(s.source==="]"||s.source==="}")&&Xm.containsNewline(e)&&t(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Nl.flowIndentCheck=Zm});var Qi=S(Rl=>{"use strict";var Cl=P();function eg(r,e,t){let{uniqueKeys:s}=r.options;if(s===!1)return!1;let n=typeof s=="function"?s:(i,o)=>i===o||Cl.isScalar(i)&&Cl.isScalar(o)&&i.value===o.value;return e.some(i=>n(i.key,t))}Rl.mapIncludes=eg});var Dl=S(Ml=>{"use strict";var Il=Ee(),tg=Ae(),_l=rr(),rg=Ps(),Ll=zi(),sg=Qi(),$l="All mapping items must start at the same column";function ng({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=i?.nodeClass??tg.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:m}=f,h=_l.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",$l)),!h.anchor&&!h.tag&&!p){l=h.end,h.comment&&(a.comment?a.comment+=`
70
+ `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||rg.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",$l);t.atKey=!0;let k=h.end,x=d?r(t,d,h,n):e(t,k,u,null,h,n);t.schema.compat&&Ll.flowIndentCheck(s.indent,d,n),t.atKey=!1,sg.mapIncludes(t,a.items,x)&&n(k,"DUPLICATE_KEY","Map keys must be unique");let g=_l.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:x.range[2],onError:n,parentIndent:s.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=g.end,g.found){y&&(m?.type==="block-map"&&!g.hasNewline&&n(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&h.start<g.found.offset-1024&&n(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=m?r(t,m,g,n):e(t,c,p,null,g,n);t.schema.compat&&Ll.flowIndentCheck(s.indent,m,n),c=b.range[2];let w=new Il.Pair(x,b);t.options.keepSourceTokens&&(w.srcToken=f),a.items.push(w)}else{y&&n(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),g.comment&&(x.comment?x.comment+=`
71
+ `+g.comment:x.comment=g.comment);let b=new Il.Pair(x);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}Ml.resolveBlockMap=ng});var ql=S(Bl=>{"use strict";var ig=Pe(),og=rr(),ag=zi();function cg({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=i?.nodeClass??ig.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=og.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&&ag.flowIndentCheck(s.indent,u,n),c=p.range[2],a.items.push(p)}return a.range=[s.offset,c,l??c],a}Bl.resolveBlockSeq=cg});var ut=S(Fl=>{"use strict";function lg(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}}Fl.resolveEnd=lg});var Kl=S(Jl=>{"use strict";var ug=P(),fg=Ee(),jl=Ae(),dg=Pe(),pg=ut(),Ul=rr(),hg=Ps(),mg=Qi(),Xi="Block collections are not allowed within flow collections",Zi=r=>r&&(r.type==="block-map"||r.type==="block-seq");function gg({composeNode:r,composeEmptyNode:e},t,s,n,i){let o=s.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?jl.YAMLMap:dg.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 k=s.items[y],{start:x,key:g,sep:b,value:w}=k,v=Ul.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:g??b?.[0],offset:u,onError:n,parentIndent:s.indent,startOnNewline:!1});if(!v.found){if(!v.anchor&&!v.tag&&!b&&!w){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&&hg.containsNewline(g)&&n(g,"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 E of x)switch(E.type){case"comma":case"space":break;case"comment":T=E.source.substring(1);break e;default:break e}if(T){let E=l.items[l.items.length-1];ug.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
73
+ `+T:E.comment=T,v.comment=v.comment.substring(T.length+1)}}if(!o&&!b&&!v.found){let T=w?r(t,w,v,n):e(t,v.end,b,null,v,n);l.items.push(T),u=T.range[2],Zi(w)&&n(T.range,"BLOCK_IN_FLOW",Xi)}else{t.atKey=!0;let T=v.end,E=g?r(t,g,v,n):e(t,T,x,null,v,n);Zi(g)&&n(E.range,"BLOCK_IN_FLOW",Xi),t.atKey=!1;let C=Ul.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:w,offset:E.range[2],onError:n,parentIndent:s.indent,startOnNewline:!1});if(C.found){if(!o&&!v.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}}v.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 M=w?r(t,w,C,n):C.found?e(t,C.end,b,null,C,n):null;M?Zi(w)&&n(M.range,"BLOCK_IN_FLOW",Xi):C.comment&&(E.comment?E.comment+=`
74
+ `+C.comment:E.comment=C.comment);let oe=new fg.Pair(E,M);if(t.options.keepSourceTokens&&(oe.srcToken=k),o){let R=l;mg.mapIncludes(t,R.items,E)&&n(T,"DUPLICATE_KEY","Map keys must be unique"),R.items.push(oe)}else{let R=new jl.YAMLMap(t.schema);R.flow=!0,R.items.push(oe);let Ot=(M??E).range;R.range=[E.range[0],Ot[1],Ot[2]],l.items.push(R)}u=M?M.range[2]:C.end}}let d=o?"}":"]",[p,...m]=s.end,h=u;if(p?.source===d)h=p.offset+p.source.length;else{let y=a[0].toUpperCase()+a.substring(1),k=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",k),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let y=pg.resolveEnd(m,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}Jl.resolveFlowCollection=gg});var Vl=S(Wl=>{"use strict";var yg=P(),bg=_(),wg=Ae(),vg=Pe(),Sg=Dl(),xg=ql(),kg=Kl();function eo(r,e,t,s,n,i){let o=t.type==="block-map"?Sg.resolveBlockMap(r,e,t,s,i):t.type==="block-seq"?xg.resolveBlockSeq(r,e,t,s,i):kg.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 Eg(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,m=d&&i?d.offset>i.offset?d:i:d??i;m&&(!p||p.offset<m.offset)&&n(m,"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===wg.YAMLMap.tagName&&a==="map"||o===vg.YAMLSeq.tagName&&a==="seq")return eo(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),eo(r,e,t,n,o)}let l=eo(r,e,t,n,o,c),f=c.resolve?.(l,d=>n(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=yg.isNode(f)?f:new bg.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}Wl.composeCollection=Eg});var ro=S(Yl=>{"use strict";var to=_();function Tg(r,e,t){let s=e.offset,n=Ag(e,r.options.strict,t);if(!n)return{value:"",type:null,comment:"",range:[s,s,s]};let i=n.mode===">"?to.Scalar.BLOCK_FOLDED:to.Scalar.BLOCK_LITERAL,o=e.source?Pg(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,k]=o[h];if(k===""||k==="\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+k.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,k]=o[h];l+=y.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&y.length<c){let b=`Block scalar lines must not be less indented than their ${n.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),y=""}i===to.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+k,d=`
78
78
  `):y.length>c||k[0]===" "?(d===" "?d=`
79
79
  `:!p&&d===`
80
80
  `&&(d=`
@@ -83,78 +83,78 @@ ${l}
83
83
  `,p=!0):k===""?d===`
84
84
  `?u+=`
85
85
  `:d=`
86
- `:(u+=d+k,d=" ",p=!1)}switch(s.chomp){case"-":break;case"+":for(let h=a;h<o.length;++h)u+=`
86
+ `:(u+=d+k,d=" ",p=!1)}switch(n.chomp){case"-":break;case"+":for(let h=a;h<o.length;++h)u+=`
87
87
  `+o[h][0].slice(c);u[u.length-1]!==`
88
88
  `&&(u+=`
89
89
  `);break;default:u+=`
90
- `}let g=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,g,g]}}function xg({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let g=Number(p);!o&&g?o=g:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.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&&n(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":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let g=`Unexpected token in block scalar header: ${p.type}`;n(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 kg(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}Jl.resolveBlockScalar=Sg});var to=v(Wl=>{"use strict";var eo=_(),Eg=ft();function Ag(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,g)=>t(n+d,p,g);switch(s){case"scalar":a=eo.Scalar.PLAIN,c=Tg(i,l);break;case"single-quoted-scalar":a=eo.Scalar.QUOTE_SINGLE,c=Pg(i,l);break;case"double-quoted-scalar":a=eo.Scalar.QUOTE_DOUBLE,c=Og(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Eg.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Tg(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}`),Kl(r)}function Pg(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),Kl(r.slice(1,-1)).replace(/''/g,"'")}function Kl(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
90
+ `}let m=s+n.length+e.source.length;return{value:u,type:i,comment:n.comment,range:[s,m,m]}}function Ag({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 m=Number(p);!o&&m?o=m: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 m=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",m);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Pg(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}Yl.resolveBlockScalar=Tg});var no=S(Gl=>{"use strict";var so=_(),Og=ut();function Ng(r,e,t){let{offset:s,type:n,source:i,end:o}=r,a,c,l=(d,p,m)=>t(s+d,p,m);switch(n){case"scalar":a=so.Scalar.PLAIN,c=Cg(i,l);break;case"single-quoted-scalar":a=so.Scalar.QUOTE_SINGLE,c=Rg(i,l);break;case"double-quoted-scalar":a=so.Scalar.QUOTE_DOUBLE,c=Ig(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}`),Hl(r)}function Rg(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),Hl(r.slice(1,-1)).replace(/''/g,"'")}function Hl(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
91
91
  `,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
92
- `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(r);if(!n)return r;let s=n[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;n=t.exec(r);)n[1]===""?i===`
93
- `?s+=i:i=`
94
- `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Og(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
95
- `))if(s===`
96
- `){let{fold:i,offset:o}=Ng(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Cg[i];if(o)t+=o;else if(i===`
97
- `)for(i=r[n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="\r"&&r[n+1]===`
98
- `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Rg(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
99
- `&&!(o==="\r"&&r[n+2]===`
100
- `)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function Ng(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
101
- `||n==="\r")&&!(n==="\r"&&r[e+2]!==`
102
- `);)n===`
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
+ `?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 Ig(r,e){let t="";for(let s=1;s<r.length-1;++s){let n=r[s];if(!(n==="\r"&&r[s+1]===`
95
+ `))if(n===`
96
+ `){let{fold:i,offset:o}=_g(r,s);t+=i,s=o}else if(n==="\\"){let i=r[++s],o=Lg[i];if(o)t+=o;else if(i===`
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+=$g(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
+ `&&!(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 _g(r,e){let t="",s=r[e+1];for(;(s===" "||s===" "||s===`
101
+ `||s==="\r")&&!(s==="\r"&&r[e+2]!==`
102
+ `);)s===`
103
103
  `&&(t+=`
104
- `),e+=1,n=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 Rg(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Wl.resolveFlowScalar=Ag});var Hl=v(Yl=>{"use strict";var Fe=P(),Vl=_(),Ig=Zi(),_g=to();function Lg(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Ig.resolveBlockScalar(r,e,n):_g.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[Fe.SCALAR]:c?l=$g(r.schema,s,c,t,n):e.type==="scalar"?l=Mg(r,s,e,n):l=r.schema[Fe.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=Fe.isScalar(u)?u:new Vl.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new Vl.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function $g(r,e,t,n,s){if(t==="!")return r[Fe.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):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[Fe.SCALAR])}function Mg({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[Fe.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[Fe.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(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}Yl.composeScalar=Lg});var zl=v(Gl=>{"use strict";function Dg(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}Gl.emptyScalarPosition=Dg});var Zl=v(no=>{"use strict";var Bg=Lt(),qg=P(),Fg=Ul(),Ql=Hl(),jg=ft(),Ug=zl(),Jg={composeNode:Xl,composeEmptyNode:ro};function Xl(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Kg(r,e,n),(a||c)&&n(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=Ql.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Fg.composeCollection(Jg,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=ro(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!qg.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(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 ro(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Ug.emptyScalarPosition(e,t,n),indent:-1,source:""},u=Ql.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")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Kg({options:r},{offset:e,source:t,end:n},s){let i=new Bg.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=jg.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}no.composeEmptyNode=ro;no.composeNode=Xl});var ru=v(tu=>{"use strict";var Wg=Qt(),eu=Zl(),Vg=ft(),Yg=tr();function Hg(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Wg.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Yg.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?eu.composeNode(l,s,f,o):eu.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Vg.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}tu.composeDoc=Hg});var io=v(iu=>{"use strict";var Gg=Ir("process"),zg=Ks(),Qg=Qt(),rr=er(),nu=P(),Xg=ru(),Zg=ft();function nr(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 su(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
104
+ `),e+=1,s=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Lg={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 $g(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)}Gl.resolveFlowScalar=Ng});var Xl=S(Ql=>{"use strict";var qe=P(),zl=_(),Mg=ro(),Dg=no();function Bg(r,e,t,s){let{value:n,type:i,comment:o,range:a}=e.type==="block-scalar"?Mg.resolveBlockScalar(r,e,s):Dg.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[qe.SCALAR]:c?l=qg(r.schema,n,c,t,s):e.type==="scalar"?l=Fg(r,n,e,s):l=r.schema[qe.SCALAR];let f;try{let u=l.resolve(n,d=>s(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=qe.isScalar(u)?u:new zl.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);s(t??e,"TAG_RESOLVE_FAILED",d),f=new zl.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 qg(r,e,t,s,n){if(t==="!")return r[qe.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[qe.SCALAR])}function Fg({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[qe.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(s))??t[qe.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}Ql.composeScalar=Bg});var eu=S(Zl=>{"use strict";function jg(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}Zl.emptyScalarPosition=jg});var su=S(oo=>{"use strict";var Ug=$t(),Jg=P(),Kg=Vl(),tu=Xl(),Wg=ut(),Vg=eu(),Yg={composeNode:ru,composeEmptyNode:io};function ru(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=Hg(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=tu.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(Yg,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=io(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&&(!Jg.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 io(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=tu.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 Hg({options:r},{offset:e,source:t,end:s},n){let i=new Ug.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}oo.composeEmptyNode=io;oo.composeNode=ru});var ou=S(iu=>{"use strict";var Gg=Xt(),nu=su(),zg=ut(),Qg=rr();function Xg(r,e,{offset:t,start:s,value:n,end:i},o){let a=Object.assign({_directives:e},r),c=new Gg.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Qg.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?nu.composeNode(l,n,f,o):nu.composeEmptyNode(l,f.end,s,null,f,o);let u=c.contents.range[2],d=zg.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}iu.composeDoc=Xg});var co=S(lu=>{"use strict";var Zg=Lr("process"),ey=Yn(),ty=Xt(),sr=tr(),au=P(),ry=ou(),sy=ut();function nr(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 cu(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,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var so=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=nr(t);i?this.warnings.push(new rr.YAMLWarning(o,n,s)):this.errors.push(new rr.YAMLParseError(o,n,s))},this.directives=new zg.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=su(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
109
- ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(nu.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];nu.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
110
- ${a}`:n}else{let o=i.commentBefore;i.commentBefore=o?`${n}
111
- ${o}`:n}}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:su(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(Gg.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=nr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Xg.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,n=new rr.YAMLParseError(nr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new rr.YAMLParseError(nr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=Zg.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
112
- ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new rr.YAMLParseError(nr(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 n=Object.assign({_directives:this.directives},this.options),s=new Qg.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};iu.Composer=so});var cu=v(Pn=>{"use strict";var ey=Zi(),ty=to(),ry=er(),ou=qt();function ny(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new ry.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return ty.resolveFlowScalar(r,e,n);case"block-scalar":return ey.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function sy(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=ou.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
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 ao=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,s,n,i)=>{let o=nr(t);i?this.warnings.push(new sr.YAMLWarning(o,s,n)):this.errors.push(new sr.YAMLParseError(o,s,n))},this.directives=new ey.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:s,afterEmptyLine:n}=cu(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(au.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];au.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
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:cu(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(Zg.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,s,n)=>{let i=nr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",s,n)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=ry.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 sr.YAMLParseError(nr(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 sr.YAMLParseError(nr(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let t=sy.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 sr.YAMLParseError(nr(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 ty.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}}};lu.Composer=ao});var du=S(Os=>{"use strict";var ny=ro(),iy=no(),oy=tr(),uu=Ft();function ay(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 oy.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return iy.resolveFlowScalar(r,e,s);case"block-scalar":return ny.resolveBlockScalar({options:{strict:e}},r,s)}}return null}function cy(r,e){let{implicitKey:t=!1,indent:s,inFlow:n=!1,offset:i=-1,type:o="PLAIN"}=e,a=uu.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:n,source:f}];return au(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
116
- `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function iy(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&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=ou.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":oy(r,c);break;case'"':oo(r,c,"double-quoted-scalar");break;case"'":oo(r,c,"single-quoted-scalar");break;default:oo(r,c,"scalar")}}function oy(r,e){let t=e.indexOf(`
117
- `),n=e.substring(0,t),s=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=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];au(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:s})}}function au(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 oo(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 n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
120
- `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="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:n,source:e,end:s})}}}Pn.createScalarToken=sy;Pn.resolveAsScalar=ny;Pn.setScalarValue=iy});var uu=v(lu=>{"use strict";var ay=r=>"type"in r?Nn(r):On(r);function Nn(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=Nn(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=On(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=On(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=On(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 On({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=Nn(e)),t)for(let i of t)s+=i.source;return n&&(s+=Nn(n)),s}lu.stringify=ay});var hu=v(pu=>{"use strict";var ao=Symbol("break visit"),cy=Symbol("skip children"),fu=Symbol("remove item");function je(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),du(Object.freeze([]),r,e)}je.BREAK=ao;je.SKIP=cy;je.REMOVE=fu;je.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};je.parentCollection=(r,e)=>{let t=je.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function du(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=du(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===ao)return ao;a===fu&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}pu.visit=je});var Cn=v(W=>{"use strict";var co=cu(),ly=uu(),uy=hu(),lo="\uFEFF",uo="",fo="",po="",fy=r=>!!r&&"items"in r,dy=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function py(r){switch(r){case lo:return"<BOM>";case uo:return"<DOC>";case fo:return"<FLOW_END>";case po:return"<SCALAR>";default:return JSON.stringify(r)}}function hy(r){switch(r){case lo:return"byte-order-mark";case uo:return"doc-mode";case fo:return"flow-error-end";case po:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
115
+ `,d=[{type:"block-scalar-header",offset:i,indent:s,source:f}];return fu(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 ly(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=uu.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">":uy(r,c);break;case'"':lo(r,c,"double-quoted-scalar");break;case"'":lo(r,c,"single-quoted-scalar");break;default:lo(r,c,"scalar")}}function uy(r,e){let t=e.indexOf(`
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}];fu(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 fu(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 lo(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})}}}Os.createScalarToken=cy;Os.resolveAsScalar=ay;Os.setScalarValue=ly});var hu=S(pu=>{"use strict";var fy=r=>"type"in r?Cs(r):Ns(r);function Cs(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=Cs(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=Ns(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=Ns(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=Ns(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 Ns({start:r,key:e,sep:t,value:s}){let n="";for(let i of r)n+=i.source;if(e&&(n+=Cs(e)),t)for(let i of t)n+=i.source;return s&&(n+=Cs(s)),n}pu.stringify=fy});var bu=S(yu=>{"use strict";var uo=Symbol("break visit"),dy=Symbol("skip children"),mu=Symbol("remove item");function Fe(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),gu(Object.freeze([]),r,e)}Fe.BREAK=uo;Fe.SKIP=dy;Fe.REMOVE=mu;Fe.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};Fe.parentCollection=(r,e)=>{let t=Fe.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 gu(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=gu(Object.freeze(r.concat([[n,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===uo)return uo;a===mu&&(i.items.splice(o,1),o-=1)}}typeof s=="function"&&n==="key"&&(s=s(e,r))}}return typeof s=="function"?s(e,r):s}yu.visit=Fe});var Rs=S(W=>{"use strict";var fo=du(),py=hu(),hy=bu(),po="\uFEFF",ho="",mo="",go="",my=r=>!!r&&"items"in r,gy=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function yy(r){switch(r){case po:return"<BOM>";case ho:return"<DOC>";case mo:return"<FLOW_END>";case go:return"<SCALAR>";default:return JSON.stringify(r)}}function by(r){switch(r){case po:return"byte-order-mark";case ho:return"doc-mode";case mo:return"flow-error-end";case go: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}W.createScalarToken=co.createScalarToken;W.resolveAsScalar=co.resolveAsScalar;W.setScalarValue=co.setScalarValue;W.stringify=ly.stringify;W.visit=uy.visit;W.BOM=lo;W.DOCUMENT=uo;W.FLOW_END=fo;W.SCALAR=po;W.isCollection=fy;W.isScalar=dy;W.prettyToken=py;W.tokenType=hy});var go=v(gu=>{"use strict";var sr=Cn();function te(r){switch(r){case void 0:case" ":case`
123
- `:case"\r":case" ":return!0;default:return!1}}var mu=new Set("0123456789ABCDEFabcdef"),my=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Rn=new Set(",[]{}"),gy=new Set(` ,[]{}
124
- \r `),ho=r=>!r||gy.has(r),mo=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 n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}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}W.createScalarToken=fo.createScalarToken;W.resolveAsScalar=fo.resolveAsScalar;W.setScalarValue=fo.setScalarValue;W.stringify=py.stringify;W.visit=hy.visit;W.BOM=po;W.DOCUMENT=ho;W.FLOW_END=mo;W.SCALAR=go;W.isCollection=my;W.isScalar=gy;W.prettyToken=yy;W.tokenType=by});var wo=S(vu=>{"use strict";var ir=Rs();function ee(r){switch(r){case void 0:case" ":case`
123
+ `:case"\r":case" ":return!0;default:return!1}}var wu=new Set("0123456789ABCDEFabcdef"),wy=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Is=new Set(",[]{}"),vy=new Set(` ,[]{}
124
+ \r `),yo=r=>!r||vy.has(r),bo=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
- `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===" ";)t=this.buffer[++n+e];if(t==="\r"){let s=this.buffer[n+e+1];if(s===`
127
- `||!s&&!this.atEnd)return e+n+1}return t===`
128
- `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&te(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]===sr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),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 sr.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==="...")&&te(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&&!te(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===":")&&te(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,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(ho),"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,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&te(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield sr.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.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(ho),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||te(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 n=this.buffer.substring(0,t),s=n.indexOf(`
130
- `,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=n.indexOf(`
131
- `,i)}s!==-1&&(t=s-(n[s-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=>te(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
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
+ `||!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]===ir.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 ir.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(yo),"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 ir.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(yo),"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(`
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`
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
- `)break}default:break e}if(!n&&!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
- `,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(n=this.buffer[s];n===" ";)n=this.buffer[++s];if(n===" "){for(;n===" "||n===" "||n==="\r"||n===`
135
- `;)n=this.buffer[++s];e=s-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 sr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(te(i)||e&&Rn.has(i))break;t=n}else if(te(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
137
- `?(n+=1,s=`
138
- `,i=this.buffer[n+1]):t=n),i==="#"||e&&Rn.has(i))break;if(s===`
139
- `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&Rn.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield sr.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 n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.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(ho))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(te(t)||e&&Rn.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(;!te(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(my.has(t))t=this.buffer[++e];else if(t==="%"&&mu.has(this.buffer[e+1])&&mu.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===`
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
+ `,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
+ `;)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 ir.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&&Is.has(i))break;t=s}else if(ee(n)){let i=this.buffer[s+1];if(n==="\r"&&(i===`
137
+ `?(s+=1,n=`
138
+ `,i=this.buffer[s+1]):t=s),i==="#"||e&&Is.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&&Is.has(n))break;t=s}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield ir.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(yo))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(ee(t)||e&&Is.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(wy.has(t))t=this.buffer[++e];else if(t==="%"&&wu.has(this.buffer[e+1])&&wu.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,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};gu.Lexer=mo});var bo=v(yu=>{"use strict";var yo=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};yu.LineCounter=yo});var vo=v(xu=>{"use strict";var yy=Ir("process"),bu=Cn(),by=go();function Oe(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function wu(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 Su(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 In(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 dt(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 vu(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Oe(e.start,"explicit-key-ind")&&!Oe(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Su(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 wo=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 by.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,yy.env.LOG_TOKENS&&console.log("|",bu.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=bu.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 n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,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 n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&vu(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&wu(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.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":{wu(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=In(this.peek(2)),n=dt(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};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)}};vu.Lexer=bo});var So=S(Su=>{"use strict";var vo=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}}}};Su.LineCounter=vo});var ko=S(Au=>{"use strict";var Sy=Lr("process"),xu=Rs(),xy=wo();function Oe(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function ku(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 Tu(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 _s(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 ft(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 Eu(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Oe(e.start,"explicit-key-ind")&&!Oe(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Tu(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 xo=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 xy.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,Sy.env.LOG_TOKENS&&console.log("|",xu.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=xu.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"&&Eu(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&&ku(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":{ku(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=_s(this.peek(2)),s=ft(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 n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.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 s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&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":s||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):s||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(Oe(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(Su(t.key)&&!Oe(t.sep,"newline")){let o=dt(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(Oe(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=dt(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||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Oe(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);s||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&&!Oe(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 n&&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 n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.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 s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.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||Oe(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.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 s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=In(n),i=dt(s);vu(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(Oe(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(Tu(t.key)&&!Oe(t.sep,"newline")){let o=ft(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(Oe(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=ft(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]}):Oe(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&&!Oe(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||Oe(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=_s(s),i=ft(n);Eu(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=In(e),n=dt(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=In(e),n=dt(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.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())}}};xu.Parser=wo});var Pu=v(or=>{"use strict";var ku=io(),wy=Qt(),ir=er(),vy=ni(),Sy=P(),xy=bo(),Eu=vo();function Au(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new xy.LineCounter||null,prettyErrors:e}}function ky(r,e={}){let{lineCounter:t,prettyErrors:n}=Au(e),s=new Eu.Parser(t?.addNewLine),i=new ku.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(ir.prettifyError(r,t)),a.warnings.forEach(ir.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Tu(r,e={}){let{lineCounter:t,prettyErrors:n}=Au(e),s=new Eu.Parser(t?.addNewLine),i=new ku.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ir.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(ir.prettifyError(r,t)),o.warnings.forEach(ir.prettifyError(r,t))),o}function Ey(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Tu(r,t);if(!s)return null;if(s.warnings.forEach(i=>vy.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Ay(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return Sy.isDocument(r)&&!n?r.toString(t):new wy.Document(r,n,t).toString(t)}or.parse=Ey;or.parseAllDocuments=ky;or.parseDocument=Tu;or.stringify=Ay});var Nu=v(C=>{"use strict";var Ty=io(),Py=Qt(),Oy=qi(),So=er(),Ny=Lt(),Ne=P(),Cy=Ee(),Ry=_(),Iy=Te(),_y=Pe(),Ly=Cn(),$y=go(),My=bo(),Dy=vo(),_n=Pu(),Ou=Ct();C.Composer=Ty.Composer;C.Document=Py.Document;C.Schema=Oy.Schema;C.YAMLError=So.YAMLError;C.YAMLParseError=So.YAMLParseError;C.YAMLWarning=So.YAMLWarning;C.Alias=Ny.Alias;C.isAlias=Ne.isAlias;C.isCollection=Ne.isCollection;C.isDocument=Ne.isDocument;C.isMap=Ne.isMap;C.isNode=Ne.isNode;C.isPair=Ne.isPair;C.isScalar=Ne.isScalar;C.isSeq=Ne.isSeq;C.Pair=Cy.Pair;C.Scalar=Ry.Scalar;C.YAMLMap=Iy.YAMLMap;C.YAMLSeq=_y.YAMLSeq;C.CST=Ly;C.Lexer=$y.Lexer;C.LineCounter=My.LineCounter;C.Parser=Dy.Parser;C.parse=_n.parse;C.parseAllDocuments=_n.parseAllDocuments;C.parseDocument=_n.parseDocument;C.stringify=_n.stringify;C.visit=Ou.visit;C.visitAsync=Ou.visitAsync});function qy(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function Fy(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(By);return t?Nt(e,t[1])!==null:!1}function jy(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Cu.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function Ru(r){return qy(r)||Fy(r)||jy(r)}var Cu,By,xo=N(()=>{ja();Cu=Zd(Nu(),1),By=/<([a-zA-Z_][\w.-]*)/});function Uy(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
146
- `),t=e.trim();if(Ru(t))return[{text:t,startLine:1,endLine:e.split(`
147
- `).length}];let n=e.split(`
148
- `),s=[],i=0,o=-1,a=0,c=()=>{if(o>=i){let l=n.slice(i,o+1).join(`
149
- `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function ko(r){return Uy(r).map(e=>e.text)}var Iu=N(()=>{xo()});var Ln=N(()=>{_r();Ra();Ia();La();xo();Iu();Lr()});function $n(r){return{...Ca(r),server:r.files.get("server.ts")??""}}var Eo=N(()=>{Ln();Ln();Ln()});import{realpathSync as Ab}from"fs";import{join as Fo,resolve as Tb}from"path";import{homedir as Pb}from"os";function es(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Fo(r,".."):Fo(Pb(),".typebulb")}function me(){return process.env.TYPEBULB_SERVERS_DIR||Fo(es(),"servers")}function L(r){let e=Tb(r),t=e;try{t=Ab.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function lf(r,e){let t=L(r),n=L(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var kr=N(()=>{});import{readFileSync as Ob,writeFileSync as Nb,mkdirSync as Cb}from"fs";import{join as Rb}from"path";function uf(){return Rb(es(),"trust.json")}function jo(){try{let r=JSON.parse(Ob(uf(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Ib(r){Cb(es(),{recursive:!0}),Nb(uf(),JSON.stringify([...r]))}function We(r){return jo().has(L(r))}function wt(r,e){let t=jo(),n=L(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Ib(t))}function Uo(){return[...jo()]}var Er=N(()=>{kr()});function xt(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 ss=N(()=>{});import{spawn as kf}from"child_process";import{readdir as Xb,readFile as Af,writeFile as Tf,unlink as He,mkdir as Zb}from"fs/promises";import{mkdirSync as Pf,writeFileSync as Wo,appendFileSync as ew,readFileSync as Vo}from"fs";import*as X from"path";import{fileURLToPath as tw}from"url";function Yo(r){return X.join(me(),`${r}.json`)}function Pr(r){return X.join(me(),`${r}.log`)}function is(r){return X.join(me(),`${r}.wait.json`)}function Of(r){try{let e=JSON.parse(Vo(is(r),"utf8"));return typeof e.offset=="number"&&Number.isFinite(e.offset)&&e.offset>=0?e.offset:void 0}catch{return}}function os(r,e){try{Pf(me(),{recursive:!0}),Wo(is(r),JSON.stringify({offset:e}))}catch{}}function as(r){let e=Pr(r);try{Pf(me(),{recursive:!0}),Wo(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(ew(e,c),s+=c.length,s>2*Ef){let l=Vo(e),f=l.subarray(Math.max(0,l.length-Ef));Wo(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function ue(r,e=0){try{let t=Vo(Pr(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Ho(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function cs(r){await Zb(me(),{recursive:!0}),await Tf(Yo(r.pid),JSON.stringify(r))}async function Nf(r,e){let t=Yo(r);try{let n=JSON.parse(await Af(t,"utf8"));if(n.denied===e)return;n.denied=e,await Tf(t,JSON.stringify(n))}catch{}}async function Or(r){await He(Yo(r)).catch(()=>{}),await He(Pr(r)).catch(()=>{}),await He(is(r)).catch(()=>{})}async function B(r){let e;try{e=await Xb(me())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=X.join(me(),s),o;try{o=JSON.parse(await Af(i,"utf8"))}catch{await He(i).catch(()=>{});return}o&&typeof o.pid=="number"&&Ho(o.pid)?t.push(o):(await He(i).catch(()=>{}),o?.pid&&(await He(Pr(o.pid)).catch(()=>{}),await He(is(o.pid)).catch(()=>{})))})),(r?t.filter(s=>s.agent==null&&lf(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Go(r,e){let t=L(r);return(await B()).find(n=>n.cwd!=null&&L(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function Ge(r){try{process.kill(r,"SIGTERM")}catch{}await Or(r)}function Cf(r,e){let t=L(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&L(n.file)===t)}async function zo(r){let e=Cf(await B(),r);for(let t of e)await Ge(t.pid);return e}function nw(r,e,t){(process.platform==="win32"?kf("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):kf(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function Rf(){return X.join(X.dirname(tw(import.meta.url)),"index.js")}function sw(r,e={}){return{command:process.execPath,args:[Rf(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function iw(r){return{command:process.execPath,args:[Rf(),`agent:${r}`,"--no-open"]}}async function If(r,e,t,n){let s=await r();if(s)return s;nw(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await rw(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function ls(r,e={}){let t=e.cwd??process.cwd(),n=X.resolve(t,r);return await zo(n),If(async()=>Cf(await B(),n)[0],sw(r,e),t,X.basename(r))}async function _f(r,e=process.cwd()){return If(()=>Go(e,r),iw(r),e,`the ${r} mirror`)}var Ef,rw,ye=N(()=>{kr();Ef=1e6;rw=r=>new Promise(e=>setTimeout(e,r))});function ks(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 la(r){return(ks(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var ua=N(()=>{});import{readdirSync as Lw,readFileSync as $w,statSync as Mw}from"fs";import{join as od,basename as Dw}from"path";function ad(r,e,t){if(e>8)return t;let n;try{n=Lw(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;ad(od(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(od(r,s.name));return t}function Es(r){return ad(r,0,[]).map(e=>{let t=0;try{t=Mw(e).mtimeMs}catch{}let n;try{n=ks($w(e,"utf8").slice(0,1024))}catch{}return{path:e,name:n??Dw(e).replace(/\.bulb\.md$/,""),mtime:t}})}var cd=N(()=>{ua()});import{readFile as Bw}from"fs/promises";async function fa(r){try{let e=$r(await Bw(r,"utf-8"));return e?xt($n(e)):void 0}catch{return}}var ld=N(()=>{Eo();ss()});import{spawn as ud}from"child_process";import{basename as qw}from"path";function Fw(){return process.env.TYPEBULB_EDITOR||"code"}function Uw(r,e,t){return t==null?[e]:jw.test(qw(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function Jw(r,e){let t=Fw();return{command:t,args:Uw(t,r,e)}}function da(r,e){let{command:t,args:n}=Jw(r,e),s=process.platform==="win32"?ud("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):ud(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var jw,fd=N(()=>{jw=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var dd=N(()=>{ye();cd();ld();ua();fd();Er()});var As,pd=N(()=>{As=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});var Md={};Qd(Md,{attach:()=>vv,blockToMarkdown:()=>ya,breakout:()=>xv,capText:()=>Rr,cleanUserText:()=>Tt,info:()=>uv,isHiddenTurn:()=>Os,launchBulb:()=>Pv,listBreakouts:()=>kv,listBulbFiles:()=>Av,listSessions:()=>gv,logEmbedStatus:()=>pv,openFile:()=>Sv,poll:()=>fv,predictTrustOf:()=>Ov,readBulbLog:()=>Cv,searchBulbs:()=>Tv,searchSessions:()=>wv,setBulbTrust:()=>Nv,stopBreakout:()=>Ev});import{existsSync as Ze,openSync as vd,readSync as Sd,closeSync as xd,statSync as et,readdirSync as Ts,watchFile as Kw,unwatchFile as hd,mkdirSync as kd,writeFileSync as Ed,readFileSync as Pt,unlinkSync as Ww,rmSync as Vw}from"fs";import{join as D,isAbsolute as Yw}from"path";import{homedir as Ad}from"os";function Td(r){return r?.message??String(r)}function Hw(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function ga(r){let e=ma(r);if(!Ze(e))return[];let t;try{t=Ts(e)}catch{return[]}let n=[];for(let s of t){if(!s.endsWith(".jsonl"))continue;let i=D(e,s);try{let o=et(i);o.isFile()&&n.push({sessionId:s.slice(0,-6),file:i,mtime:o.mtimeMs})}catch{}}return n}function Ps(r){return D(r,Qw)}function Od(r,e){return D(Ps(r),`${e}.lock`)}function Zw(r,e){try{let t=Od(r,e);if(Date.now()-et(t).mtimeMs>=Pd)return!1;try{if(parseInt(Pt(t,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function Nd(r,e){if(e)try{kd(Ps(r),{recursive:!0}),Ed(Od(r,e),String(process.pid))}catch(t){console.error("[lock] claim failed:",Td(t))}}function ev(r){try{Vw(D(r,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function tv(r){let e=Ps(r);if(!Ze(e))return;let t;try{t=Ts(e)}catch{return}let n=Date.now();for(let s of t){if(!s.endsWith(".lock"))continue;let i=D(e,s);try{let o=et(i);n-o.mtimeMs>Xw&&Ww(i)}catch{}}}function ya(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 Rr(r){return r.length>pa?r.slice(0,pa)+`
150
- \u2026[${r.length-pa} more characters truncated]`:r}function ha(r){return typeof r=="string"?Rr(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return Rr(e);let t=e;return typeof t?.text=="string"?Rr(t.text):t?.content!=null?ha(t.content):ya(t)}).join(`
151
- `):r==null?"":Rr(JSON.stringify(r))}function Cd(r){try{return et(r),!1}catch(e){return e.code==="ENOENT"}}function Rd(){let r=F;if(r.file&&!Cd(r.file)){Nd(r.cwd,r.sessionId);return}let e=rv(r);e&&Id(e)}function rv(r){if(!r.everAttached)return nv(r.cwd)??sv(r.cwd,()=>!0)}function nv(r){let e=Ps(r);if(!Ze(e))return;let t;try{t=Ts(e)}catch{return}let n;for(let i of t)if(i.endsWith(".lock"))try{let o=et(D(e,i));if(Date.now()-o.mtimeMs>=Pd||parseInt(Pt(D(e,i),"utf8").trim(),10)!==process.pid)continue;(!n||o.mtimeMs>n.mtime)&&(n={sessionId:i.slice(0,-5),mtime:o.mtimeMs})}catch{}if(!n)return;let s=D(ma(r),`${n.sessionId}.jsonl`);if(!Cd(s))return{sessionId:n.sessionId,file:s,mtime:n.mtime}}function sv(r,e){return ga(r).sort((t,n)=>n.mtime-t.mtime).find(t=>!Zw(r,t.sessionId)&&e(t))}function Id(r){let e=F;if(e.file)try{hd(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}),Nd(e.cwd,r.sessionId),md();try{hd(r.file)}catch{}Kw(r.file,{interval:200},()=>md())}function md(){let r=F;if(!r.file)return;let e;try{e=et(r.file).size}catch{return}if(e<=r.offset)return;let t;try{t=vd(r.file,"r")}catch{return}try{let c=e-r.offset,l=Buffer.alloc(c),f=0;for(;f<c;){let u=Sd(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{xd(t)}let n,s;for(;(s=r.partial.indexOf(`
152
- `))>=0;){let c=r.partial.slice(0,s);if(r.partial=r.partial.slice(s+1),!c.trim())continue;let l;try{l=JSON.parse(c)}catch{continue}l&&l.uuid&&(r.entries.set(l.uuid,l),l.isSidechain||(n=l.uuid))}if(!n)return;let i=[],o=r.entries.get(n),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--)gd(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--)gd(i[c])}r.chainLastUuid=n}function _d(r){let e=r.trim();return!!e&&iv.some(t=>t.test(e))}function av(r){return r.replace(ov,"")}function cv(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function Tt(r){let e=av(r).trim();return e?cv(e)??(_d(e)?"":e):""}function ba(r){return r?.type==="text"&&typeof r.text=="string"?Tt(r.text):""}function Os(r){return!!r.isSidechain||!!r.isMeta}function gd(r){try{lv(r)}catch(e){console.error("[mirror] skipped malformed entry:",Td(e))}}function lv(r){if(Os(r))return;let e=F;if(r.type==="user"){let t=r.message?.content;if(typeof t=="string"){let n=Tt(t);n&&e.buffer.push({type:"user",text:n})}else if(Array.isArray(t))for(let n of t)if(n?.type==="tool_result")e.buffer.push({type:"tool_result",id:n.tool_use_id??"",content:ha(n.content),isError:!!n.is_error});else{let s=ba(n)||ya(n);s&&e.buffer.push({type:"user",text:s})}}else if(r.type==="attachment"&&r.attachment?.type==="queued_command"){let t=Tt(ha(r.attachment.prompt));t&&e.buffer.push({type:"user",text:t})}else if(r.type==="assistant"){let t=r.message?.content,n=Array.isArray(t)?t:[],s=n.filter(c=>c.type==="text").map(c=>c.text??"").filter(c=>!_d(c)).join(""),i=n.filter(c=>c.type==="thinking").map(c=>c.thinking??"").join(`
153
- `),o=n.filter(c=>c.type==="tool_use").map(c=>({id:c.id??"",name:c.name??"",input:c.input??{}}));if(s||i||o.length){let c=Date.parse(r.timestamp??""),l=!isNaN(c)&&c>=e.sessionStartMs;e.buffer.push({type:"assistant",text:s,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 uv(){return{cwd:F.cwd,pid:process.pid}}async function fv(r){let e=F;return Rd(),{events:e.buffer.slice(r),cursor:e.buffer.length,working:hv(e)&&mv(e.sessionId)}}async function pv(r,e){dv.accept(r,e)&&console.log(e)}function hv(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 n=(Array.isArray(e.message?.content)?e.message.content:[]).filter(i=>i.type==="tool_use").map(i=>i.id);if(n.length===0)return!1;let s=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&&s.add(a.tool_use_id)}return n.some(i=>i&&!s.has(i))}function mv(r){let e;try{e=Ts(yd)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(Pt(D(yd,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}function Ld(r){let e;try{e=vd(r,"r")}catch{return""}try{let n=65536;try{n=et(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=Sd(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=s(0,Math.min(65536,n)),a=n>65536?s(n-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||Os(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=Tt(u):Array.isArray(u)&&(d=u.map(ba).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{xd(e)}}async function gv(){return ga(F.cwd).sort((r,e)=>e.mtime-r.mtime).map(({sessionId:r,file:e,mtime:t})=>({sessionId:r,mtime:t,preview:Ld(e)}))}function yv(r,e){let t=bd.get(r);if(t&&t.mtime===e)return t.turns;let n=[],s="";try{s=Pt(r,"utf8")}catch{return[]}for(let i of s.split(`
156
- `)){if(!i)continue;let o;try{o=JSON.parse(i)}catch{continue}if(!o||Os(o)||o.type!=="user"&&o.type!=="assistant")continue;let a=o.message?.content,c="";if(typeof a=="string")c=Tt(a);else if(Array.isArray(a)){let l=a;c=o.type==="user"?l.map(ba).filter(Boolean).join(" "):l.filter(f=>f.type==="text"&&typeof f.text=="string").map(f=>f.text).join(" ")}c=c.replace(/\s+/g," ").trim(),c&&n.push({text:c,lower:c.toLowerCase()})}return bd.set(r,{mtime:e,turns:n}),n}function $d(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-wd),a=Math.min(s.text.length,i+e.length+wd);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}async function wv(r){let e=r.toLowerCase(),t=[];for(let{sessionId:n,file:s,mtime:i}of ga(F.cwd).sort((o,a)=>a.mtime-o.mtime)){let{hitCount:o,snippet:a}=$d(yv(s,i),e);if(o&&(t.push({sessionId:n,mtime:i,preview:Ld(s),hitCount:o,snippet:a}),t.length>=bv))break}return t}async function vv(r){let e=F,t=D(ma(e.cwd),`${r}.jsonl`);return Ze(t)?t===e.file?{ok:!0}:(Id({sessionId:r,file:t}),{ok:!0}):{ok:!1,error:"session not found"}}async function Sv(r,e){let t=Yw(r)?r:D(F.cwd,r);return Ze(t)?(da(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function xv(r){let e=F.cwd,t=D(e,"typebulbs");kd(t,{recursive:!0});let n=la(r),s=`${n}.bulb.md`;for(let c=2;Ze(D(t,s))&&Pt(D(t,s),"utf8")!==r;c++)s=`${n}-${c}.bulb.md`;let i=D(t,s);Ze(i)||Ed(i,r);let o=D("typebulbs",s),a=await ls(o,{cwd:e,open:!0});return{ok:!0,file:o,pid:a.pid,url:a.url}}async function kv(){return B(F.cwd)}async function Ev(r){return await Ge(r),{ok:!0}}async function Av(){return Es(F.cwd).map(r=>({...r,trusted:We(r.path)}))}async function Tv(r){let e=r.toLowerCase(),t=[];for(let n of Es(F.cwd).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=Pt(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
157
- `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=$d(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function Pv(r,e){let t=F.cwd;e!=null&&wt(r,e);let n=await ls(r,{cwd:t,open:!0,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function Ov(r){return{cap:await fa(r)}}async function Nv(r,e){return wt(r,e),{ok:!0}}async function Cv(r,e){return ue(r,e)}var Gw,zw,ma,Qw,Pd,Xw,pa,F,iv,ov,dv,yd,bd,bv,wd,Dd=N(()=>{dd();pd();Gw=".typebulb",zw=D(Ad(),".claude","projects"),ma=r=>D(zw,Hw(r));Qw=`${Gw}/locks`,Pd=5e3,Xw=6e4;pa=5e4;F={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};iv=[/\[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,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];ov=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;dv=new As;yd=D(Ad(),".claude","sessions");bd=new Map;bv=50,wd=110;ev(F.cwd);tv(F.cwd);Rd()});import*as Wd from"fs/promises";import*as we from"path";import*as va from"fs/promises";import{existsSync as tt,readFileSync as ep}from"fs";import*as $ from"path";import{pathToFileURL as tp}from"url";import{resolve as Is}from"resolve.exports";import{init as Sa,parse as xa}from"es-module-lexer";function ka(r,e){let t=$.join(r,"package.json");try{return JSON.parse(ep(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Rs=["browser","import","default"],wa=["node","import","default"];function Ea(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(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)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(n)}}async function Aa(r){let{name:e,dir:t}=r;if(!tt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=ka(t,e),s=rp(n,e),i=$.resolve(t,s);if(!tt(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=np(n,t);return await sp(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function rp(r,e){if(r.exports!==void 0){let n;try{n=Is(r,".",{browser:!0,conditions:Rs})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Rs.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=_s(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Rs.join(", ")}); too complex to override.`);return s}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 np(r,e){if(r.exports!==void 0)try{let n=Is(r,".",{conditions:["types"]}),s=_s(n);if(s){let i=$.resolve(e,s);if(tt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=$.resolve(e,t);if(tt(n))return n}}function _s(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function sp(r,e,t){await Sa;let n=$.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await va.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=xa(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=ip(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function ip(r,e,t){let n=e.replace(/[?#].*$/,""),s=$.resolve($.dirname(r),n),i=[s,s+".js",s+".mjs",$.join(s,"index.js"),$.join(s,"index.mjs")];for(let o of i)if($.normalize(o).startsWith(t)&&tt(o))return o}function op(r,e,t){let n=ka(r,e),s;if(n.exports!==void 0)try{s=_s(Is(n,t,{conditions:wa}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${wa.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=$.resolve(r,s);if(!tt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return tp(i).href}async function Ta(r,e){await Sa;let t;try{[t]=xa(r)}catch{return r}let n="",s=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=op(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}function Pa(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","wait","stop","trust","untrust","skill","models"],n=r[0];if(n==="agent"||n?.startsWith("agent:")){e.subcommand="agent";let i=n.indexOf(":");if(i!==-1){let o=n.slice(i+1);o&&(e.agentTarget=o)}r=r.slice(1)}else n&&t.includes(n)&&(e.subcommand=n,r=r.slice(1));let s=[];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==="--match"){let a=r[++i];a===void 0&&(console.error("Missing value for --match (a substring new log lines must contain)"),process.exit(1)),e.match=a}else if(o==="--timeout"){let a=parseInt(r[++i],10);(isNaN(a)||a<=0)&&(console.error(`Invalid --timeout value: ${r[i]} (seconds)`),process.exit(1)),e.timeoutSec=a}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=Ea(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"?s.push(o):e.file=o)}return e.subcommand==="call"&&(s.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),e.file=s[0],e.fn=s[1],e.callArgs=s.slice(2)),e}function Oa(){console.log(`
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=_s(e),s=ft(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=_s(e),s=ft(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())}}};Au.Parser=xo});var Ru=S(ar=>{"use strict";var Pu=co(),ky=Xt(),or=tr(),Ey=oi(),Ty=P(),Ay=So(),Ou=ko();function Nu(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new Ay.LineCounter||null,prettyErrors:e}}function Py(r,e={}){let{lineCounter:t,prettyErrors:s}=Nu(e),n=new Ou.Parser(t?.addNewLine),i=new Pu.Composer(e),o=Array.from(i.compose(n.parse(r)));if(s&&t)for(let a of o)a.errors.forEach(or.prettifyError(r,t)),a.warnings.forEach(or.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Cu(r,e={}){let{lineCounter:t,prettyErrors:s}=Nu(e),n=new Ou.Parser(t?.addNewLine),i=new Pu.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 or.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&t&&(o.errors.forEach(or.prettifyError(r,t)),o.warnings.forEach(or.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=Cu(r,t);if(!n)return null;if(n.warnings.forEach(i=>Ey.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 Ny(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 Ty.isDocument(r)&&!s?r.toString(t):new ky.Document(r,s,t).toString(t)}ar.parse=Oy;ar.parseAllDocuments=Py;ar.parseDocument=Cu;ar.stringify=Ny});var _u=S(N=>{"use strict";var Cy=co(),Ry=Xt(),Iy=Ui(),Eo=tr(),_y=$t(),Ne=P(),Ly=Ee(),$y=_(),My=Ae(),Dy=Pe(),By=Rs(),qy=wo(),Fy=So(),jy=ko(),Ls=Ru(),Iu=Rt();N.Composer=Cy.Composer;N.Document=Ry.Document;N.Schema=Iy.Schema;N.YAMLError=Eo.YAMLError;N.YAMLParseError=Eo.YAMLParseError;N.YAMLWarning=Eo.YAMLWarning;N.Alias=_y.Alias;N.isAlias=Ne.isAlias;N.isCollection=Ne.isCollection;N.isDocument=Ne.isDocument;N.isMap=Ne.isMap;N.isNode=Ne.isNode;N.isPair=Ne.isPair;N.isScalar=Ne.isScalar;N.isSeq=Ne.isSeq;N.Pair=Ly.Pair;N.Scalar=$y.Scalar;N.YAMLMap=My.YAMLMap;N.YAMLSeq=Dy.YAMLSeq;N.CST=By;N.Lexer=qy.Lexer;N.LineCounter=Fy.LineCounter;N.Parser=jy.Parser;N.parse=Ls.parse;N.parseAllDocuments=Ls.parseAllDocuments;N.parseDocument=Ls.parseDocument;N.stringify=Ls.stringify;N.visit=Iu.visit;N.visitAsync=Iu.visitAsync});function Jy(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(Uy);return t?Ct(e,t[1])!==null:!1}function Wy(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Lu.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function $u(r){return Jy(r)||Ky(r)||Wy(r)}var Lu,Uy,To=O(()=>{Wa();Lu=sp(_u(),1),Uy=/<([a-zA-Z_][\w.-]*)/});function Vy(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
146
+ `),t=e.trim();if($u(t))return[{text:t,startLine:1,endLine:e.split(`
147
+ `).length}];let s=e.split(`
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 Ao(r){return Vy(r).map(e=>e.text)}var Mu=O(()=>{To()});var $s=O(()=>{$r();$a();Ma();Ba();To();Mu();Mr()});function Ms(r){return{...La(r),server:r.files.get("server.ts")??""}}var Po=O(()=>{$s();$s();$s()});import{realpathSync as Cb}from"fs";import{join as Jo,resolve as Rb}from"path";import{homedir as Ib}from"os";function tn(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Jo(r,".."):Jo(Ib(),".typebulb")}function ge(){return process.env.TYPEBULB_SERVERS_DIR||Jo(tn(),"servers")}function L(r){let e=Rb(r),t=e;try{t=Cb.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function pf(r,e){let t=L(r),s=L(e);return t.startsWith(s.endsWith("/")?s:s+"/")?!t.includes("/node_modules/"):!1}var Er=O(()=>{});import{readFileSync as _b,writeFileSync as Lb,mkdirSync as $b}from"fs";import{join as Mb}from"path";function hf(){return Mb(tn(),"trust.json")}function Ko(){try{let r=JSON.parse(_b(hf(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Db(r){$b(tn(),{recursive:!0}),Lb(hf(),JSON.stringify([...r]))}function Ke(r){return Ko().has(L(r))}function bt(r,e){let t=Ko(),s=L(r);(e?t.has(s):!t.has(s))||(e?t.add(s):t.delete(s),Db(t))}function Wo(){return[...Ko()]}var Tr=O(()=>{Er()});function St(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 on=O(()=>{});import{spawn as Pf}from"child_process";import{readdir as sw,readFile as Nf,writeFile as Cf,unlink as Ye,mkdir as nw}from"fs/promises";import{mkdirSync as Rf,writeFileSync as an,appendFileSync as iw,readFileSync as Ho}from"fs";import*as Q from"path";import{fileURLToPath as ow}from"url";function Go(r){return Q.join(ge(),`${r}.json`)}function xt(r){return Q.join(ge(),`${r}.log`)}function cn(r){return Q.join(ge(),`${r}.wait.json`)}function If(r){try{let e=JSON.parse(Ho(cn(r),"utf8"));return typeof e.offset=="number"&&Number.isFinite(e.offset)&&e.offset>=0?e.offset:void 0}catch{return}}function ln(r,e){try{Rf(ge(),{recursive:!0}),an(cn(r),JSON.stringify({offset:e}))}catch{}}function un(r){let e=xt(r);try{Rf(ge(),{recursive:!0}),an(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(iw(e,c),n+=c.length,n>2*Of){let l=Ho(e),f=l.subarray(Math.max(0,l.length-Of));an(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 _f(r){try{an(xt(r),"")}catch{}}function ue(r,e=0){try{let t=Ho(xt(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 zo(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function fn(r){await nw(ge(),{recursive:!0}),await Cf(Go(r.pid),JSON.stringify(r))}async function Lf(r,e){let t=Go(r);try{let s=JSON.parse(await Nf(t,"utf8"));if(s.denied===e)return;s.denied=e,await Cf(t,JSON.stringify(s))}catch{}}async function Or(r){await Ye(Go(r)).catch(()=>{}),await Ye(xt(r)).catch(()=>{}),await Ye(cn(r)).catch(()=>{})}async function $(r){let e;try{e=await sw(ge())}catch{return[]}let t=[];return await Promise.all(e.map(async n=>{if(!/^\d+\.json$/.test(n))return;let i=Q.join(ge(),n),o;try{o=JSON.parse(await Nf(i,"utf8"))}catch{await Ye(i).catch(()=>{});return}o&&typeof o.pid=="number"&&zo(o.pid)?t.push(o):(await Ye(i).catch(()=>{}),o?.pid&&(await Ye(xt(o.pid)).catch(()=>{}),await Ye(cn(o.pid)).catch(()=>{})))})),(r?t.filter(n=>n.agent==null&&pf(n.file,r)):t).sort((n,i)=>n.startedAt-i.startedAt)}async function Qo(r,e){let t=L(r);return(await $()).find(s=>s.cwd!=null&&L(s.cwd)===t&&(e?s.agent===e:s.agent!=null))}async function He(r){try{process.kill(r,"SIGTERM")}catch{}await Or(r)}function dn(r,e){let t=L(e);return r.filter(s=>s.agent==null&&s.pid!==process.pid&&L(s.file)===t)}async function Xo(r){let e=dn(await $(),r);for(let t of e)await He(t.pid);return e}function cw(r,e,t){(process.platform==="win32"?Pf("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):Pf(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function $f(){return Q.join(Q.dirname(ow(import.meta.url)),"index.js")}function lw(r,e={}){return{command:process.execPath,args:[$f(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function uw(r){return{command:process.execPath,args:[$f(),`agent:${r}`,"--no-open"]}}async function Mf(r,e,t,s){let n=await r();if(n)return n;cw(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await aw(150);let o=await r();if(o)return o}throw new Error(`Launched ${s} but it did not register within 20s.`)}async function pn(r,e={}){let t=e.cwd??process.cwd(),s=Q.resolve(t,r);return await Xo(s),Mf(async()=>dn(await $(),s)[0],lw(r,e),t,Q.basename(r))}async function Df(r,e=process.cwd()){return Mf(()=>Qo(e,r),uw(r),e,`the ${r} mirror`)}var Of,aw,fe=O(()=>{Er();Of=1e6;aw=r=>new Promise(e=>setTimeout(e,r))});function An(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 da(r){return(An(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var pa=O(()=>{});import{readdirSync as qw,readFileSync as Fw,statSync as jw}from"fs";import{join as fd,basename as Uw}from"path";function dd(r,e,t){if(e>8)return t;let s;try{s=qw(r,{withFileTypes:!0})}catch{return t}for(let n of s)if(n.isDirectory()){if(n.name.startsWith(".")||n.name==="node_modules")continue;dd(fd(r,n.name),e+1,t)}else n.isFile()&&n.name.endsWith(".bulb.md")&&t.push(fd(r,n.name));return t}function Pn(r){return dd(r,0,[]).map(e=>{let t=0;try{t=jw(e).mtimeMs}catch{}let s;try{s=An(Fw(e,"utf8").slice(0,1024))}catch{}return{path:e,name:s??Uw(e).replace(/\.bulb\.md$/,""),mtime:t}})}var pd=O(()=>{pa()});import{readFile as Jw}from"fs/promises";async function ha(r){try{let e=Dr(await Jw(r,"utf-8"));return e?St(Ms(e)):void 0}catch{return}}var hd=O(()=>{Po();on()});import{spawn as md}from"child_process";import{basename as Kw}from"path";function Ww(){return process.env.TYPEBULB_EDITOR||"code"}function Yw(r,e,t){return t==null?[e]:Vw.test(Kw(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function Hw(r,e){let t=Ww();return{command:t,args:Yw(t,r,e)}}function ma(r,e){let{command:t,args:s}=Hw(r,e),n=process.platform==="win32"?md("cmd.exe",["/d","/s","/c",t,...s],{detached:!0,stdio:"ignore",windowsHide:!0}):md(t,s,{detached:!0,stdio:"ignore"});n.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),n.unref()}var Vw,gd=O(()=>{Vw=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var yd=O(()=>{fe();pd();hd();pa();gd();Tr()});var On,bd=O(()=>{On=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});var jd={};tp(jd,{attach:()=>Tv,blockToMarkdown:()=>va,breakout:()=>Pv,capText:()=>Ir,cleanUserText:()=>At,info:()=>mv,isHiddenTurn:()=>Rn,launchBulb:()=>Iv,listBreakouts:()=>Ov,listBulbFiles:()=>Cv,listSessions:()=>Sv,logEmbedStatus:()=>bv,openFile:()=>Av,poll:()=>gv,predictTrustOf:()=>_v,readBulbLog:()=>$v,searchBulbs:()=>Rv,searchSessions:()=>Ev,setBulbTrust:()=>Lv,stopBreakout:()=>Nv});import{existsSync as Xe,openSync as Td,readSync as Ad,closeSync as Pd,statSync as Ze,readdirSync as Nn,watchFile as Gw,unwatchFile as wd,mkdirSync as Od,writeFileSync as Nd,readFileSync as Pt,unlinkSync as zw,rmSync as Qw}from"fs";import{join as q,isAbsolute as Xw}from"path";import{homedir as Cd}from"os";function Rd(r){return r?.message??String(r)}function Zw(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function wa(r){let e=ba(r);if(!Xe(e))return[];let t;try{t=Nn(e)}catch{return[]}let s=[];for(let n of t){if(!n.endsWith(".jsonl"))continue;let i=q(e,n);try{let o=Ze(i);o.isFile()&&s.push({sessionId:n.slice(0,-6),file:i,mtime:o.mtimeMs})}catch{}}return s}function Cn(r){return q(r,rv)}function _d(r,e){return q(Cn(r),`${e}.lock`)}function nv(r,e){try{let t=_d(r,e);if(Date.now()-Ze(t).mtimeMs>=Id)return!1;try{if(parseInt(Pt(t,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function Ld(r,e){if(e)try{Od(Cn(r),{recursive:!0}),Nd(_d(r,e),String(process.pid))}catch(t){console.error("[lock] claim failed:",Rd(t))}}function iv(r){try{Qw(q(r,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function ov(r){let e=Cn(r);if(!Xe(e))return;let t;try{t=Nn(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=Ze(i);s-o.mtimeMs>sv&&zw(i)}catch{}}}function va(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 Ir(r){return r.length>ga?r.slice(0,ga)+`
150
+ \u2026[${r.length-ga} more characters truncated]`:r}function ya(r){return typeof r=="string"?Ir(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return Ir(e);let t=e;return typeof t?.text=="string"?Ir(t.text):t?.content!=null?ya(t.content):va(t)}).join(`
151
+ `):r==null?"":Ir(JSON.stringify(r))}function $d(r){try{return Ze(r),!1}catch(e){return e.code==="ENOENT"}}function Md(){let r=j;if(r.file&&!$d(r.file)){Ld(r.cwd,r.sessionId);return}let e=av(r);e&&Dd(e)}function av(r){if(!r.everAttached)return cv(r.cwd)??lv(r.cwd,()=>!0)}function cv(r){let e=Cn(r);if(!Xe(e))return;let t;try{t=Nn(e)}catch{return}let s;for(let i of t)if(i.endsWith(".lock"))try{let o=Ze(q(e,i));if(Date.now()-o.mtimeMs>=Id||parseInt(Pt(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(ba(r),`${s.sessionId}.jsonl`);if(!$d(n))return{sessionId:s.sessionId,file:n,mtime:s.mtime}}function lv(r,e){return wa(r).sort((t,s)=>s.mtime-t.mtime).find(t=>!nv(r,t.sessionId)&&e(t))}function Dd(r){let e=j;if(e.file)try{wd(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}),Ld(e.cwd,r.sessionId),vd();try{wd(r.file)}catch{}Gw(r.file,{interval:200},()=>vd())}function vd(){let r=j;if(!r.file)return;let e;try{e=Ze(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=Ad(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{Pd(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--)Sd(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--)Sd(i[c])}r.chainLastUuid=s}function Bd(r){let e=r.trim();return!!e&&uv.some(t=>t.test(e))}function dv(r){return r.replace(fv,"")}function pv(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function At(r){let e=dv(r).trim();return e?pv(e)??(Bd(e)?"":e):""}function Sa(r){return r?.type==="text"&&typeof r.text=="string"?At(r.text):""}function Rn(r){return!!r.isSidechain||!!r.isMeta}function Sd(r){try{hv(r)}catch(e){console.error("[mirror] skipped malformed entry:",Rd(e))}}function hv(r){if(Rn(r))return;let e=j;if(r.type==="user"){let t=r.message?.content;if(typeof t=="string"){let s=At(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:ya(s.content),isError:!!s.is_error});else{let n=Sa(s)||va(s);n&&e.buffer.push({type:"user",text:n})}}else if(r.type==="attachment"&&r.attachment?.type==="queued_command"){let t=At(ya(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=>!Bd(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 mv(){return{cwd:j.cwd,pid:process.pid}}async function gv(r){let e=j;return Md(),{events:e.buffer.slice(r),cursor:e.buffer.length,working:wv(e)&&vv(e.sessionId)}}async function bv(r,e){yv.accept(r,e)&&console.log(e)}function wv(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 vv(r){let e;try{e=Nn(xd)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let s=JSON.parse(Pt(q(xd,t),"utf8"));if(s?.sessionId!==r)continue;return process.kill(s.pid,0),!0}catch{}return!1}function qd(r){let e;try{e=Td(r,"r")}catch{return""}try{let s=65536;try{s=Ze(r).size}catch{}let n=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=Ad(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 m;try{m=JSON.parse(p)}catch{continue}let h=m?.[u];m?.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||Rn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=At(u):Array.isArray(u)&&(d=u.map(Sa).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{Pd(e)}}async function Sv(){return wa(j.cwd).sort((r,e)=>e.mtime-r.mtime).map(({sessionId:r,file:e,mtime:t})=>({sessionId:r,mtime:t,preview:qd(e)}))}function xv(r,e){let t=kd.get(r);if(t&&t.mtime===e)return t.turns;let s=[],n="";try{n=Pt(r,"utf8")}catch{return[]}for(let i of n.split(`
156
+ `)){if(!i)continue;let o;try{o=JSON.parse(i)}catch{continue}if(!o||Rn(o)||o.type!=="user"&&o.type!=="assistant")continue;let a=o.message?.content,c="";if(typeof a=="string")c=At(a);else if(Array.isArray(a)){let l=a;c=o.type==="user"?l.map(Sa).filter(Boolean).join(" "):l.filter(f=>f.type==="text"&&typeof f.text=="string").map(f=>f.text).join(" ")}c=c.replace(/\s+/g," ").trim(),c&&s.push({text:c,lower:c.toLowerCase()})}return kd.set(r,{mtime:e,turns:s}),s}function Fd(r,e){let t=0,s="";for(let n of r){let i=n.lower.indexOf(e);if(!(i<0)&&(t++,!s)){let o=Math.max(0,i-Ed),a=Math.min(n.text.length,i+e.length+Ed);s=(o>0?"\u2026":"")+n.text.slice(o,a)+(a<n.text.length?"\u2026":"")}}return{hitCount:t,snippet:s}}async function Ev(r){let e=r.toLowerCase(),t=[];for(let{sessionId:s,file:n,mtime:i}of wa(j.cwd).sort((o,a)=>a.mtime-o.mtime)){let{hitCount:o,snippet:a}=Fd(xv(n,i),e);if(o&&(t.push({sessionId:s,mtime:i,preview:qd(n),hitCount:o,snippet:a}),t.length>=kv))break}return t}async function Tv(r){let e=j,t=q(ba(e.cwd),`${r}.jsonl`);return Xe(t)?t===e.file?{ok:!0}:(Dd({sessionId:r,file:t}),{ok:!0}):{ok:!1,error:"session not found"}}async function Av(r,e){let t=Xw(r)?r:q(j.cwd,r);return Xe(t)?(ma(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function Pv(r){let e=j.cwd,t=q(e,"typebulbs");Od(t,{recursive:!0});let s=da(r),n=`${s}.bulb.md`;for(let c=2;Xe(q(t,n))&&Pt(q(t,n),"utf8")!==r;c++)n=`${s}-${c}.bulb.md`;let i=q(t,n);Xe(i)||Nd(i,r);let o=q("typebulbs",n),a=await pn(o,{cwd:e,open:!0});return{ok:!0,file:o,pid:a.pid,url:a.url}}async function Ov(){return $(j.cwd)}async function Nv(r){return await He(r),{ok:!0}}async function Cv(){return Pn(j.cwd).map(r=>({...r,trusted:Ke(r.path)}))}async function Rv(r){let e=r.toLowerCase(),t=[];for(let s of Pn(j.cwd).sort((n,i)=>i.mtime-n.mtime)){let n="";try{n=Pt(s.path,"utf8")}catch{continue}let i=[];for(let c of n.split(`
157
+ `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=Fd(i,e);o&&t.push({path:s.path,hitCount:o,snippet:a})}return t}async function Iv(r,e){let t=j.cwd;e!=null&&bt(r,e);let s=await pn(r,{cwd:t,open:!0,trust:e});return{ok:!0,file:s.file,pid:s.pid,url:s.url,trust:!!s.trust}}async function _v(r){return{cap:await ha(r)}}async function Lv(r,e){return bt(r,e),{ok:!0}}async function $v(r,e){return ue(r,e)}var ev,tv,ba,rv,Id,sv,ga,j,uv,fv,yv,xd,kd,kv,Ed,Ud=O(()=>{yd();bd();ev=".typebulb",tv=q(Cd(),".claude","projects"),ba=r=>q(tv,Zw(r));rv=`${ev}/locks`,Id=5e3,sv=6e4;ga=5e4;j={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};uv=[/\[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,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];fv=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;yv=new On;xd=q(Cd(),".claude","sessions");kd=new Map;kv=50,Ed=110;iv(j.cwd);ov(j.cwd);Md()});import*as Gd from"fs/promises";import*as we from"path";import*as Ea from"fs/promises";import{existsSync as et,readFileSync as np}from"fs";import*as D from"path";import{pathToFileURL as ip}from"url";import{resolve as $n}from"resolve.exports";import{init as Ta,parse as Aa}from"es-module-lexer";function Pa(r,e){let t=D.join(r,"package.json");try{return JSON.parse(np(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ln=["browser","import","default"],ka=["node","import","default"];function Oa(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:D.resolve(s)}}async function Na(r){let{name:e,dir:t}=r;if(!et(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let s=Pa(t,e),n=op(s,e),i=D.resolve(t,n);if(!et(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=D.dirname(i),a=`/local/${e}/${D.basename(i)}`,c=ap(s,t);return await cp(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function op(r,e){if(r.exports!==void 0){let s;try{s=$n(r,".",{browser:!0,conditions:Ln})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ln.join(", ")}): ${i instanceof Error?i.message:i}`)}let n=Mn(s);if(!n)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ln.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 ap(r,e){if(r.exports!==void 0)try{let s=$n(r,".",{conditions:["types"]}),n=Mn(s);if(n){let i=D.resolve(e,n);if(et(i))return i}}catch{}let t=r.types??r.typings;if(t){let s=D.resolve(e,t);if(et(s))return s}}function Mn(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function cp(r,e,t){await Ta;let s=D.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 Ea.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Aa(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=lp(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 lp(r,e,t){let s=e.replace(/[?#].*$/,""),n=D.resolve(D.dirname(r),s),i=[n,n+".js",n+".mjs",D.join(n,"index.js"),D.join(n,"index.mjs")];for(let o of i)if(D.normalize(o).startsWith(t)&&et(o))return o}function up(r,e,t){let s=Pa(r,e),n;if(s.exports!==void 0)try{n=Mn($n(s,t,{conditions:ka}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${ka.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=D.resolve(r,n);if(!et(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return ip(i).href}async function Ca(r,e){await Ta;let t;try{[t]=Aa(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=up(e.dir,e.name,a);s+=r.slice(n,i.s)+c,n=i.e}return s+r.slice(n)}function Ra(r){let e={subcommand:"run",file:"",port:3e3,watch:!0,open:!0,server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},t=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],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==="--clear")e.clear=!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==="--match"){let a=r[++i];a===void 0&&(console.error("Missing value for --match (a substring new log lines must contain)"),process.exit(1)),e.match=a}else if(o==="--timeout"){let a=parseInt(r[++i],10);(isNaN(a)||a<=0)&&(console.error(`Invalid --timeout value: ${r[i]} (seconds)`),process.exit(1)),e.timeoutSec=a}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=Oa(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"||e.subcommand==="send"?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.subcommand==="send"&&(n.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),e.file=n[0],e.sendMessage=n[1]),e}function Ia(){console.log(`
158
158
  typebulb - Local bulb runner for Typebulb
159
159
 
160
160
  Usage:
@@ -177,9 +177,15 @@ Usage:
177
177
  typebulb models List AI models for tb.ai, filtered by the API
178
178
  keys in your .env (the exact ids to pass).
179
179
  typebulb logs [file|pid] Print a running bulb server's captured console
180
- (no arg: list this project's running servers).
180
+ (no arg: list this project's running servers;
181
+ --clear <file|pid> truncates it for a clean run).
181
182
  For agents: fetch tb.server.log / errors of a
182
183
  bulb you launched without watching its terminal.
184
+ typebulb send <file> [msg] Push a message into a running bulb's page \u2014
185
+ its tb.onMessage(cb) handlers receive it. The
186
+ client-side twin of 'call'; use it to kick off
187
+ work on demand (msg is JSON-or-string; omit it
188
+ for a bare trigger). Needs no --trust.
183
189
  typebulb wait [file|pid] Block until the target server logs a new line,
184
190
  print it, exit (2: timeout; 3: server died).
185
191
  For agents: run it in the background \u2014 the exit
@@ -199,6 +205,8 @@ Usage:
199
205
 
200
206
  Options:
201
207
  -f, --follow Stream new log output until interrupted (logs)
208
+ --clear Truncate the target server's log instead of
209
+ printing it \u2014 for one clean run (logs)
202
210
  -n, --lines <n> Print only the last n lines (logs)
203
211
  --match <substring> Only lines containing this end the wait (wait)
204
212
  --timeout <sec> Give up waiting after this long; exit 2 (wait,
@@ -263,7 +271,7 @@ Examples:
263
271
  typebulb my-editor.bulb.md
264
272
  typebulb --no-watch --port 8080 my-editor.bulb.md
265
273
  typebulb .
266
- `)}Eo();import*as _e from"fs/promises";import*as Zn from"path";import{pathToFileURL as Eb}from"url";import{transform as Jy}from"sucrase";function Ao(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Jy(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}var ar="https://esm.sh",cr="https://cdn.jsdelivr.net/npm/",To="https://data.jsdelivr.com/v1/package/npm/";function _u(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var A=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=pt(t??s.version),this.subpath=pt(n??s.subpath)}static parse(e){let t=_u(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=Lu(t[1]??""),a=pt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=Lu(t[0]),o=pt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(ar).host,s=new URL(cr).host;if(t.host===n){let i=_u(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===s){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:pt(e),subpath:this.subpath})}withPreferredVersion(e,t){let n=e||t;return n?this.withVersion(n):this}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},pt=r=>r&&r.length?r:void 0,Lu=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),pt(r.slice(e+1))]};async function V(r){try{return await r()}catch{return}}var lr=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=ar,this.jsDelivrBase=cr,this.jsDelivrMeta=To,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:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${this.esmHost}/${e}?${o.toString()}`}async pinEsmUrl(e,t="es2022"){let n=this.buildEsmUrl(e,{target:t}),s=await V(()=>this.http.head(n));return s?.ok?s.url||n:void 0}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${this.esmHost}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await V(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}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 n=await V(()=>this.http.getJson(`${this.jsDelivrMeta}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=A.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new A(`${e}@${t}`)),i=await V(()=>this.http.getJson(s));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 $u=r=>r.startsWith("@types/"),ur=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!$u(e)),Po=r=>Object.keys(r?.dependencies||{}).filter(e=>!$u(e)),Ky=r=>ur(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),fr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of Ky(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>ur(i.meta))),n=new Map;for(let i of e)for(let o of Po(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:ur(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var dr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}selectVersionFromIndex(e,t,n){return this.semver.selectBestVersion(e,{range:t,distTags:n})}async learnExactVersion(e){let t=await V(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=await V(()=>this.cdn.fetchVersionsIndex(e));if(s?.versions?.length){let o=this.selectVersionFromIndex(s.versions,t,s.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 n=new A(e),s=n.root(),i=t[s],o=i?await V(()=>this.cache.getPinnedExact(s,i))??await V(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Wy,parse as Vy}from"es-module-lexer";var ht=class r{constructor(e,t,n,s){this.version=e,this.cdn=t,this.peer=n,this.cache=s}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))A.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{A.isBare(s)&&t.add(s)};try{await Wy;let[s]=Vy(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(A.rootOf(u))),i=[...new Set(s.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([...s,...l.map(u=>u.name)],a,c,t);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=n?`${e}@${n}`:e,i=await this.version.resolveExactForRoot(e,n);if(!i){let o=await V(()=>this.cdn.pinEsmUrl(s));if(!o)throw new Error(`Cannot resolve ${s}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);i=A.versionFromUrl(o),i&&n&&await V(()=>this.cache.setPinnedExact(e,n,i))}if(!i)throw new Error(`Cannot resolve ${s}: no concrete version found.`);return i}buildEntries(e,t,n,s){let i=new Map(t.map(g=>[g.name,g])),o=g=>{let h=i.get(A.rootOf(g));return new A(g).withPreferredVersion(h.version,s[h.name]).format()},a=new Set([...n.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 h=A.rootOf(g),y=i.get(h),{isPeerRoot:k,hasPeers:m,isSharedDep:b}=n.get(h),w=c.has(h),S=g!==h,T=!(k||b)&&(w||!m),x=this.singletonDepsOf(y,a),O=S&&u.has(h);O&&d.add(h);let J=O?[...x,h]:x.length?x:void 0;l.push([g,this.cdn.buildEsmUrl(o(g),{bundle:T,external:J})]),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([...ur(e.meta),...Po(e.meta)])].filter(n=>t.has(n))}};ht.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as Mu,satisfies as Yy,maxSatisfying as Oo,major as Hy,prerelease as Gy,rsort as zy,valid as Qy}from"semver";var Mn=class{cmp(e,t){return e===t?0:Mu(e,t)?1:Mu(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!Yy(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let n=Oo(e,t,{includePrerelease:!0});return n===null?void 0:n}pickLatest(e){return e?.length?zy(e)[0]:void 0}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=Oo(e,n,{includePrerelease:!1});if(a)return a}return Oo(e,n,{includePrerelease:!0})??void 0}majorOf(e){return Hy(e)}isPrerelease(e){return Gy(e)!==null}isExactVersion(e){return Qy(e)!==null}},Ue=new Mn;function Du(r,e){let t=new lr(r,e),n=new fr(t),s=new dr(r,t,Ue);return{packageService:new ht(s,t,n,r),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Xu from"fs/promises";import*as ne from"path";var No=[{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"}],Co=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var Bu=`
274
+ `)}Po();import*as _e from"fs/promises";import*as en from"path";import{pathToFileURL as Nb}from"url";import{transform as Yy}from"sucrase";function Oo(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:s}=Yy(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:s}}catch(s){return{code:"",error:String(s)}}}var cr="https://esm.sh",lr="https://cdn.jsdelivr.net/npm/",No="https://data.jsdelivr.com/v1/package/npm/";function Du(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=dt(t??n.version),this.subpath=dt(s??n.subpath)}static parse(e){let t=Du(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let n=t[0],[i,o]=Bu(t[1]??""),a=dt(t.slice(2).join("/"));return new r({name:`${n}/${i}`,version:o,subpath:a})}else{let[n,i]=Bu(t[0]),o=dt(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(cr).host,n=new URL(lr).host;if(t.host===s){let i=Du(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:dt(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://")}},dt=r=>r&&r.length?r:void 0,Bu=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),dt(r.slice(e+1))]};async function V(r){try{return await r()}catch{return}}var ur=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=cr,this.jsDelivrBase=lr,this.jsDelivrMeta=No,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 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=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 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 qu=r=>r.startsWith("@types/"),fr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!qu(e)),Co=r=>Object.keys(r?.dependencies||{}).filter(e=>!qu(e)),Hy=r=>fr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),dr=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 Hy(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=>fr(i.meta))),s=new Map;for(let i of e)for(let o of Co(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:fr(i.meta).length>0,isSharedDep:n.has(i.name)}]))}};var pr=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 A(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 Gy,parse as zy}from"es-module-lexer";var pt=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 Gy;let[n]=zy(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 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=A.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(m=>[m.name,m])),o=m=>{let h=i.get(A.rootOf(m));return new A(m).withPreferredVersion(h.version,n[h.name]).format()},a=new Set([...s.entries()].filter(([,m])=>m.isPeerRoot||m.isSharedDep).map(([m])=>m)),c=new Set(e.filter(m=>m!==A.rootOf(m)).map(A.rootOf)),l=[],f=new Set,u=new Set(e.filter(m=>m===A.rootOf(m))),d=new Set;for(let m of e){let h=A.rootOf(m),y=i.get(h),{isPeerRoot:k,hasPeers:x,isSharedDep:g}=s.get(h),b=c.has(h),w=m!==h,T=!(k||g)&&(b||!x),E=this.singletonDepsOf(y,a),C=w&&u.has(h);C&&d.add(h);let M=C?[...E,h]:E.length?E:void 0;l.push([m,this.cdn.buildEsmUrl(o(m),{bundle:T,external:M})]),f.add(m)}let p=new Set([...a,...d]);for(let m of p)i.has(m)&&(f.has(m)||l.push([m,this.cdn.buildEsmUrl(o(m),{})]),l.push([`${m}/`,`${this.cdn.esmHost}/${o(m)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...fr(e.meta),...Co(e.meta)])].filter(s=>t.has(s))}};pt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as Fu,satisfies as Qy,maxSatisfying as Ro,major as Xy,prerelease as Zy,rsort as eb,valid as tb}from"semver";var Ds=class{cmp(e,t){return e===t?0:Fu(e,t)?1:Fu(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!Qy(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let s=Ro(e,t,{includePrerelease:!0});return s===null?void 0:s}pickLatest(e){return e?.length?eb(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=Ro(e,s,{includePrerelease:!1});if(a)return a}return Ro(e,s,{includePrerelease:!0})??void 0}majorOf(e){return Xy(e)}isPrerelease(e){return Zy(e)!==null}isExactVersion(e){return tb(e)!==null}},je=new Ds;function ju(r,e){let t=new ur(r,e),s=new dr(t),n=new pr(r,t,je);return{packageService:new pt(n,t,s,r),versionResolver:n,cdnClient:t,peerResolver:s}}import*as rf from"fs/promises";import*as re from"path";var Io=[{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"}],_o=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var Uu=`
267
275
  /**
268
276
  * Get raw data chunk from the Data tab.
269
277
  * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
@@ -274,7 +282,7 @@ Examples:
274
282
  * @param index - Chunk index (0-based)
275
283
  * @throws If chunk is not valid JSON/JSON-ish
276
284
  */
277
- json<T = unknown>(index: number): T;`,qu=`
285
+ json<T = unknown>(index: number): T;`,Ju=`
278
286
  /**
279
287
  * Get the insight data produced by the inference layer.
280
288
  *
@@ -283,7 +291,7 @@ Examples:
283
291
  *
284
292
  * @returns The parsed insight JSON, or undefined if no insight is available
285
293
  */
286
- insight<T = unknown>(): T | undefined;`,Fu=`
294
+ insight<T = unknown>(): T | undefined;`,Ku=`
287
295
  /**
288
296
  * General-purpose AI call.
289
297
  *
@@ -294,13 +302,13 @@ Examples:
294
302
  ai(options: {
295
303
  messages: Array<{ role: "user" | "assistant"; content: string }>;
296
304
  system?: string;
297
- /** Reasoning depth hint (0=min, 1=low, 2=med, 3=max). Mapped to provider-specific parameters (e.g. Anthropic adaptive thinking, OpenAI reasoning effort). Default: 0. */
305
+ /** Reasoning depth hint (0=min, 1=low, 2=med, 3=high). Mapped to provider-specific parameters (e.g. Anthropic adaptive thinking, OpenAI reasoning effort). Default: 0. */
298
306
  reasoning?: 0 | 1 | 2 | 3;
299
307
  provider?: string;
300
308
  model?: string;
301
309
  /** Enable/disable web search. Default: on for BYOK, always off for free model. */
302
310
  webSearch?: boolean;
303
- }): Promise<{ text: string }>;`,ju=`
311
+ }): Promise<{ text: string }>;`,Wu=`
304
312
  /**
305
313
  * Returns AI models available to the current user.
306
314
  * Models are filtered by the user's configured API keys.
@@ -315,7 +323,7 @@ Examples:
315
323
  friendlyName: string;
316
324
  /** Provider display name, e.g. "Anthropic" */
317
325
  providerName: string;
318
- }>>;`,Xy="\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;",Uu=`
326
+ }>>;`,rb="\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;",Vu=`
319
327
  /**
320
328
  * The mode this bulb is running in.
321
329
  *
@@ -325,11 +333,12 @@ Examples:
325
333
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
326
334
  * client-only: AI, filesystem, and server RPC are unavailable)
327
335
  */
328
- mode: 'local' | 'editor' | 'published' | 'embedded';`,Ju=`
336
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,Yu=`
329
337
  /**
330
338
  * Local filesystem access (CLI only).
331
339
  *
332
- * Paths are resolved relative to the directory containing the bulb file.
340
+ * Paths are resolved relative to the current working directory (where the CLI
341
+ * was launched), consistent with the .env cascade \u2014 not the bulb file's folder.
333
342
  * Throws in editor/published mode.
334
343
  */
335
344
  fs: {
@@ -339,7 +348,7 @@ Examples:
339
348
  readBytes(path: string): Promise<Uint8Array>;
340
349
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
341
350
  write(path: string, content: string | Uint8Array): Promise<boolean>;
342
- };`,Zy=`
351
+ };`,sb=`
343
352
  /**
344
353
  * Server-side function proxy. The built-in \`log\` prints to CLI stdout
345
354
  * (falls back to console.log on web). On the server side, this object only
@@ -347,7 +356,7 @@ Examples:
347
356
  */
348
357
  server: {
349
358
  log(...args: any[]): Promise<void>;
350
- };`,eb=`
359
+ };`,nb=`
351
360
  /**
352
361
  * Async value inspector for tensor-like objects.
353
362
  *
@@ -414,7 +423,22 @@ Examples:
414
423
  *
415
424
  * @returns The full canonical URL
416
425
  */
417
- url(): Promise<string>;`,tb=`
426
+ url(): Promise<string>;`,ib=`
427
+ /**
428
+ * Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
429
+ *
430
+ * The dual of \`tb.server.log\` (data out): a value sent *in* from the CLI, no \`--trust\` required.
431
+ * Use it to start expensive work on demand instead of on load \u2014 e.g. \`tb.onMessage(() => start())\`
432
+ * \u2014 so hot reloads don't re-trigger it while you edit, and an agent kicks off one run when ready.
433
+ *
434
+ * The message is the JSON-parsed value of what \`send\` was given (or the raw string if it isn't
435
+ * JSON; \`undefined\` for a bare \`typebulb send <file>\`). Returns an unsubscribe function. Inert in
436
+ * an embedded bulb (no sender) \u2014 the handler is registered but never fires.
437
+ *
438
+ * @param handler - Called with each pushed message.
439
+ * @returns An unsubscribe function.
440
+ */
441
+ onMessage(handler: (message: any) => void): () => void;`,ob=`
418
442
  /**
419
443
  * Server-side function proxy.
420
444
  *
@@ -422,23 +446,23 @@ Examples:
422
446
  * \`tb.server.log(...)\` is a built-in that prints to CLI stdout (falls back to console.log on web).
423
447
  * User exports override built-ins of the same name.
424
448
  */
425
- server: Record<string, (...args: any[]) => Promise<any>>;`,Ro=`
449
+ server: Record<string, (...args: any[]) => Promise<any>>;`,Lo=`
426
450
  /**
427
451
  * Typebulb utilities namespace.
428
452
  * Type \`tb.\` to discover available helpers.
429
453
  */
430
- declare const tb: {${Bu}${eb}${qu}${tb}${Fu}${Ju}${ju}${Xy}${Uu}
454
+ declare const tb: {${Uu}${nb}${Ju}${ob}${ib}${Ku}${Yu}${Wu}${rb}${Vu}
431
455
  };
432
- `,Io=`
456
+ `,$o=`
433
457
  /**
434
458
  * Typebulb utilities namespace (server-side).
435
459
  * Type \`tb.\` to discover available helpers.
436
460
  */
437
- declare const tb: {${Bu}${qu}${Fu}${Ju}${Zy}${ju}${Uu}
461
+ declare const tb: {${Uu}${Ju}${Ku}${Yu}${sb}${Wu}${Vu}
438
462
  };
439
- `;var Je=class{constructor(e){this.store=e}async isNegative(e){let t=await Dn(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await Dn(()=>this.store.get(e)))?.attempts||0)+1;await Dn(()=>this.store.set(e,{until:Date.now()+rb(n),attempts:n}))}async clearNegative(e){await Dn(()=>this.store.delete(e))}};function rb(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function Dn(r){try{return await r()}catch{return}}import cb from"p-limit";import{resolve as Ku}from"resolve.exports";var mt=class{constructor(e){this.fetchDts=e}fetchDtsText(e){return this.tryUrls([e])}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(n.url)||/[?&]dts(?:[&#]|$)/i.test(n.url)))return n}}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 Ce={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},pr=["index.d.ts","index.d.mts"],hr=/\.d\.(ts|mts)$/i;function _o(r){if(hr.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function Bn(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function mr(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(nb(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function nb(r){return r===408||r===429||r>=500&&r<600}var gr=class extends mt{constructor(e,t){super(e),this.cdnClient=t}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new A({name:e,version:t})),s=await mr(n);if(!s?.ok)return;let i;try{i=await s.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 n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=this.cdnClient.normalizeRelative(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...pr],t);if(!hr.test(s)){let i=await this.tryUntilSuccess(this.declarationCandidatesFor(s),t);if(i)return i}return t(s)}let n=this.declarationCandidatesFor(e.path);return this.tryUntilSuccess([...pr,...n],t)}toResolutionResult(e){return{kind:hr.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(Ku(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Ku(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=A.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)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(s,t.name,u);if(t.subpath){let u=this.cdnClient.ensureLeadingDotSlash(t.subpath),d=this.resolveExportsPath(n,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=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=this.cdnClient.normalizeRelative(n),i=new URL(s,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[...pr];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Bn(t),s=t.endsWith("/")?t:`${t}/`;return n.push(...Bn(`${s}index`)),n}};import{gunzipSync as sb}from"fflate";var gt=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await mr(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.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\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=sb(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.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=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(g))}i+=Math.ceil(d/512)*512}}catch{}return t}},ib=new gt;var yr=class extends mt{constructor(e,t,n,s=new gt){super(e),this.cdnClient=t,this.cache=n,this.tarballFetcher=s}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,n){try{if(n){let i=Ue.majorOf(n),o=e.filter(a=>Ue.majorOf(a)===i);if(o.length)return o.sort((a,c)=>Ue.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}async fetchFromVersionedRoot(e,t){let n=new A(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}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 n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var br=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,n=(s,i)=>(t.add(s[i]),null);return this.matchAll(e,/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/,s=>n(s,2)),this.matchAll(e,/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/,s=>n(s,1)),Array.from(t)}matchAll(e,t,n){let s=[];try{let i=new RegExp(t.source,"g"),o;for(;o=i.exec(e);){let a=n(o);a!==null&&s.push(a)}}catch{}return s}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var Wu="file:///node_modules",wr=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`${Wu}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=ob(t);return`${Wu}/${this.epochDir()}/${e}/${n}`}};function ob(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as ab}from"lru-cache";function Lo(r){let e=new ab({ttl:1e4,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s))return;let i=e.get(s);if(i&&Date.now()-i<1e4)return;let o=await r.getCachedFile(s);if(o)return{dts:o,url:s};let a=t.get(s);if(a)return a;let c=(async()=>{let l=await fetch(s,{cache:"no-store"});if(!l.ok){l.status===404&&(e.set(s,Date.now()),await r.recordNegative(s));return}let f=await l.text(),u=l.url||s;return await r.clearNegative(s),await r.setCachedFile(u,f),{dts:f,url:u}})();return t.set(s,c),await c.finally(()=>t.delete(s))}catch{return}}}var qn=class{constructor(e){this.inFlight=new Map,this.scanner=new br,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Lo(e.cache),this.typescriptProvider=new gr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new yr(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new wr}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}capArray(e,t){return e.length<=t?e:e.slice(0,t)}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}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 n=new A(e);return n.subpath?this.fetchRootDts(n.name,t):void 0}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}subpathsMatch(e,t){return new A(e).subpath===new A(t).subpath}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)){try{await this.cache.setCachedFile(a.url,a.dts)}catch{}if(this.subpathsMatch(n,a.resolvedPkg||n)){try{await this.cache.setCachedDts(n,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,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Ce.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),Ce.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=_o(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(n,new URL(p.url),s);this.pushFileIfNew(i,g,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new A(e).name!==new A(t).name}ambientlyDeclares(e,t){for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.capArray(this.scanner.collectBareModuleRefs(e),Ce.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=cb(Ce.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Ce.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=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):n.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),Ce.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=await this.fetchRootDts(e,t)??await this.trySubpathWithRootFallback(e,t);return s?this.buildDefFromContent(e,s,s.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new A(a||n),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(m=>m.content).join(`
440
- `);await this.prefetchBareDeps(g,l,d,p,s);let h=c.format(),y=e===h?[e]:[e,h],k=y.some(m=>this.ambientlyDeclares(i,m));return k?this.markFileAmbient(d,f):p.push(...y.map(m=>({module:m,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};function $o(r){return new qn(r)}import*as le from"fs/promises";import*as he from"path";import*as Hu from"os";import*as Mo from"fs/promises";import*as Vu from"crypto";function re(r){return Vu.createHash("sha1").update(r).digest("hex")}async function Ke(r){try{return JSON.parse(await Mo.readFile(r,"utf8"))}catch{return}}async function Fn(r){try{return await Mo.readFile(r,"utf8")}catch{return}}var Yu=1,Re=he.join(Hu.homedir(),".typebulb","cache"),vr=he.join(Re,"packages"),Sr=he.join(Re,"proxy"),jn=he.join(Re,"dts"),lb=he.join(Re,"emit"),Do;function I(){return Do||(Do=ub()),Do}function Un(r,e){return he.join(lb,re(r),e)}async function ub(){await le.mkdir(Re,{recursive:!0});let r=he.join(Re,"version.json");if((await fb(r))?.version===Yu)return;let t=await le.readdir(Re).catch(()=>[]);await Promise.all(t.map(n=>le.rm(he.join(Re,n),{recursive:!0,force:!0}))),await le.writeFile(r,JSON.stringify({version:Yu})+`
441
- `,"utf8")}async function fb(r){try{let e=await le.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as Ie from"fs/promises";import*as Gu from"path";async function z(r,e){await Ie.mkdir(Gu.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Ie.writeFile(t,e,"utf8"),await Ie.rename(t,r).catch(async n=>{throw await Ie.rm(t,{force:!0}).catch(()=>{}),n})}var yt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Ke(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 n=await this.load();n.set(e,t),await this.persist(n)}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 Bo=ne.join(vr,"indexes"),zu=ne.join(vr,"pinned"),db=ne.join(vr,"meta"),pb=ne.join(vr,"negative.json"),bt=Symbol("missing"),Kn=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Je(new yt(pb));async getPinnedExact(e,t){let n=`${e}@${t}`,s=this.pinnedMem.get(n);if(s!==void 0)return s===bt?void 0:s;await I();let i=await Fn(ne.join(zu,re(n)+".txt"));return this.pinnedMem.set(n,i??bt),i}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await I(),await z(ne.join(zu,re(s)+".txt"),n)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===bt?void 0:t;await I();let n=await Ke(ne.join(Bo,Jn(e)+".json"));return this.indexMem.set(e,n??bt),n}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await I(),await z(ne.join(Bo,Jn(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Xu.rm(ne.join(Bo,Jn(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 n=`${e}@${t}`,s=this.metaMem.get(n);if(s!==void 0)return s===bt?void 0:s;await I();let i=await Ke(Qu(e,t));return this.metaMem.set(n,i??bt),i}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await I(),await z(Qu(e,t),JSON.stringify(o))}};function Qu(r,e){return ne.join(db,Jn(r),encodeURIComponent(e)+".json")}function Jn(r){return r.replace(/\//g,"__")}var Zu={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 hb=new Kn,{packageService:Wn,versionResolver:ef,cdnClient:tf,peerResolver:iE}=Du(hb,Zu);var rf=`
463
+ `;var Ue=class{constructor(e){this.store=e}async isNegative(e){let t=await Bs(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let s=((await Bs(()=>this.store.get(e)))?.attempts||0)+1;await Bs(()=>this.store.set(e,{until:Date.now()+ab(s),attempts:s}))}async clearNegative(e){await Bs(()=>this.store.delete(e))}};function ab(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function Bs(r){try{return await r()}catch{return}}import pb from"p-limit";import{resolve as Hu}from"resolve.exports";var ht=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 Ce={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},hr=["index.d.ts","index.d.mts"],mr=/\.d\.(ts|mts)$/i;function Mo(r){if(mr.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function qs(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function gr(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(cb(a.status)&&n<e)continue;return a}catch{if(n<e)continue;return}finally{clearTimeout(o)}}}function cb(r){return r===408||r===429||r>=500&&r<600}var yr=class extends ht{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 gr(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([...hr],t);if(!mr.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([...hr,...s],t)}toResolutionResult(e){return{kind:mr.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let s=t||".",n=e;try{let i=this.extractPathFromResult(Hu(n,s,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Hu(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 m=await this.resolveFromSelected(this.toResolutionResult(d),c);if(m)return{...m,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[...hr];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),s=qs(t),n=t.endsWith("/")?t:`${t}/`;return s.push(...qs(`${n}index`)),s}};import{gunzipSync as lb}from"fflate";var mt=class{async fetchAndExtract(e,t){let s=this.getTarballUrl(e,t),n=await gr(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=lb(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 m=s.slice(i,i+d);t.set(this.normalizeTarPath(l),n.decode(m))}i+=Math.ceil(d/512)*512}}catch{}return t}},ub=new mt;var br=class extends ht{constructor(e,t,s,n=new mt){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=je.majorOf(s),o=e.filter(a=>je.majorOf(a)===i);if(o.length)return o.sort((a,c)=>je.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 wr=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 Gu="file:///node_modules",vr=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`${Gu}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let s=fb(t);return`${Gu}/${this.epochDir()}/${e}/${s}`}};function fb(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as db}from"lru-cache";function Do(r){let e=new db({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 Fs=class{constructor(e){this.inFlight=new Map,this.scanner=new wr,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Do(e.cache),this.typescriptProvider=new yr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new br(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new vr}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>Ce.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),Ce.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=Mo(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 m=this.toVirtualPath(s,new URL(p.url),n);this.pushFileIfNew(i,m,p.dts),await this.expandRelativeRefs(p.dts,p.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),Ce.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=pb(Ce.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,s,n,Ce.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),Ce.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}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let m=d.map(x=>x.content).join(`
464
+ `);await this.prefetchBareDeps(m,l,d,p,n);let h=c.format(),y=e===h?[e]:[e,h],k=y.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...y.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};function Bo(r){return new Fs(r)}import*as le from"fs/promises";import*as me from"path";import*as Xu from"os";import*as qo from"fs/promises";import*as zu from"crypto";function te(r){return zu.createHash("sha1").update(r).digest("hex")}async function Je(r){try{return JSON.parse(await qo.readFile(r,"utf8"))}catch{return}}async function js(r){try{return await qo.readFile(r,"utf8")}catch{return}}var Qu=1,Re=me.join(Xu.homedir(),".typebulb","cache"),Sr=me.join(Re,"packages"),xr=me.join(Re,"proxy"),Us=me.join(Re,"dts"),hb=me.join(Re,"emit"),Fo;function I(){return Fo||(Fo=mb()),Fo}function Js(r,e){return me.join(hb,te(r),e)}async function mb(){await le.mkdir(Re,{recursive:!0});let r=me.join(Re,"version.json");if((await gb(r))?.version===Qu)return;let t=await le.readdir(Re).catch(()=>[]);await Promise.all(t.map(s=>le.rm(me.join(Re,s),{recursive:!0,force:!0}))),await le.writeFile(r,JSON.stringify({version:Qu})+`
465
+ `,"utf8")}async function gb(r){try{let e=await le.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as Ie from"fs/promises";import*as Zu from"path";async function G(r,e){await Ie.mkdir(Zu.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Ie.writeFile(t,e,"utf8"),await Ie.rename(t,r).catch(async s=>{throw await Ie.rm(t,{force:!0}).catch(()=>{}),s})}var gt=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 G(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var jo=re.join(Sr,"indexes"),ef=re.join(Sr,"pinned"),yb=re.join(Sr,"meta"),bb=re.join(Sr,"negative.json"),yt=Symbol("missing"),Ws=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Ue(new gt(bb));async getPinnedExact(e,t){let s=`${e}@${t}`,n=this.pinnedMem.get(s);if(n!==void 0)return n===yt?void 0:n;await I();let i=await js(re.join(ef,te(s)+".txt"));return this.pinnedMem.set(s,i??yt),i}async setPinnedExact(e,t,s){let n=`${e}@${t}`;this.pinnedMem.set(n,s),await I(),await G(re.join(ef,te(n)+".txt"),s)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===yt?void 0:t;await I();let s=await Je(re.join(jo,Ks(e)+".json"));return this.indexMem.set(e,s??yt),s}async setIndex(e,t,s){let n={versions:t,distTags:s,updatedAt:Date.now()};this.indexMem.set(e,n),await I(),await G(re.join(jo,Ks(e)+".json"),JSON.stringify(n))}async invalidateVersionsCache(e){this.indexMem.delete(e),await rf.rm(re.join(jo,Ks(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===yt?void 0:n;await I();let i=await Je(tf(e,t));return this.metaMem.set(s,i??yt),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(tf(e,t),JSON.stringify(o))}};function tf(r,e){return re.join(yb,Ks(r),encodeURIComponent(e)+".json")}function Ks(r){return r.replace(/\//g,"__")}var sf={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 wb=new Ws,{packageService:Vs,versionResolver:nf,cdnClient:of,peerResolver:uE}=ju(wb,sf);var af=`
442
466
  (() => {
443
467
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
444
468
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
@@ -468,6 +492,11 @@ declare const tb: {${Bu}${qu}${Fu}${Ju}${Zy}${ju}${Uu}
468
492
  // Read from window each time so updates are visible
469
493
  const getData = () => window.__TB_DATA__ || [];
470
494
 
495
+ // tb.onMessage subscribers, fed by the events-SSE 'message' channel (typebulb send). A message is
496
+ // JSON-or-string: parse as JSON, else hand back the raw string; '' (a bare \`send\`) \u21D2 undefined.
497
+ const messageHandlers = new Set();
498
+ const parseMsg = (s) => { if (s === '' || s == null) return undefined; try { return JSON.parse(s); } catch { return s; } };
499
+
471
500
  // Filesystem API - calls back to the local server.
472
501
  // The server returns raw bytes (no JSON envelope); read() decodes as UTF-8.
473
502
  const failIfNotOk = async (resp, action, path) => {
@@ -625,6 +654,14 @@ declare const tb: {${Bu}${qu}${Fu}${Ju}${Zy}${ju}${Uu}
625
654
  // Filesystem - local CLI extension
626
655
  fs,
627
656
 
657
+ // Receive a value pushed from the terminal via \`typebulb send\` (data-in, the dual of the
658
+ // ungated tb.server.log). Returns an unsubscribe fn. Inert when embedded \u2014 no server, so no
659
+ // sender; the handler is registered but never fires (cf. tb.models returning []).
660
+ onMessage: (handler) => {
661
+ if (typeof handler === 'function') messageHandlers.add(handler);
662
+ return () => messageHandlers.delete(handler);
663
+ },
664
+
628
665
  // Environment ('embedded' when running as a bulb-in-a-bulb)
629
666
  mode: isEmbedded ? 'embedded' : 'local',
630
667
 
@@ -635,24 +672,33 @@ declare const tb: {${Bu}${qu}${Fu}${Ju}${Zy}${ju}${Uu}
635
672
  set theme(v) { if (window.__tbTheme) window.__tbTheme.set(v); }
636
673
  });
637
674
 
638
- // Hot reload listener
639
- if (window.__TYPEBULB_WATCH__) {
675
+ // Events channel (dev server only): 'reload' drives hot reload (only emitted when watching),
676
+ // 'message' delivers \`typebulb send\` pushes to tb.onMessage. Connect for a CLI-served page (http
677
+ // origin, not an embed); a srcdoc embed or a file:// static export has no server, so onMessage just
678
+ // stays inert there. Opening it independent of watch is what lets send reach a --no-watch page.
679
+ if (!isEmbedded && location.protocol.indexOf('http') === 0) {
640
680
  const es = new EventSource('/__reload');
641
681
  es.addEventListener('reload', () => {
642
682
  console.log('[typebulb] Reloading...');
643
683
  window.location.reload();
644
684
  });
685
+ es.addEventListener('message', (e) => {
686
+ // Wire payload is JSON-encoded (SSE-line-safe); decode it, then interpret JSON-or-string.
687
+ let value;
688
+ try { value = parseMsg(JSON.parse(e.data)); } catch { value = undefined; }
689
+ messageHandlers.forEach((h) => { try { h(value); } catch (err) { console.error(err); } });
690
+ });
645
691
  es.onerror = () => {
646
692
  // Server closed, stop trying
647
693
  es.close();
648
694
  };
649
695
  }
650
696
  })();
651
- `;function Vn(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Yn=` *, *::before, *::after { box-sizing: border-box; }
697
+ `;function Ys(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Hs=` *, *::before, *::after { box-sizing: border-box; }
652
698
  canvas { max-width: 100%; }
653
699
  body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
654
700
  html[data-theme="dark"] { color-scheme: dark; }
655
- html[data-theme="light"] { color-scheme: light; }`;function Hn(r,e){let t=n=>n.replace(/<\/script/gi,"<\\/script");return` <script>
701
+ html[data-theme="light"] { color-scheme: light; }`;function Gs(r,e){let t=s=>s.replace(/<\/script/gi,"<\\/script");return` <script>
656
702
  (function() {
657
703
  try {
658
704
  var KEY = ${t(JSON.stringify("tb-theme:"+r))};
@@ -687,43 +733,42 @@ declare const tb: {${Bu}${qu}${Fu}${Ju}${Zy}${ju}${Uu}
687
733
  });
688
734
  } catch (e) {}
689
735
  })();
690
- </script>`}function nf(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,watch:c,theme:l,embedded:f}=r,u=s.trim()||'<div id="app"></div>',d=f?"":`
691
- html, body { height: 100%; }`,p=h=>h.replace(/<\/script/gi,"<\\/script"),g={imports:gb(a.imports)};return`<!DOCTYPE html>
736
+ </script>`}function cf(r){let{name:e,code:t,css:s,html:n,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=n.trim()||'<div id="app"></div>',u=l?"":`
737
+ html, body { height: 100%; }`,d=m=>m.replace(/<\/script/gi,"<\\/script"),p={imports:Sb(a.imports)};return`<!DOCTYPE html>
692
738
  <html>
693
739
  <head>
694
740
  <meta charset="utf-8">
695
741
  <meta name="viewport" content="width=device-width, initial-scale=1">
696
- <title>${Vn(e)} - typebulb</title>
697
- ${Hn(e,l)}
742
+ <title>${Ys(e)} - typebulb</title>
743
+ ${Gs(e,c)}
698
744
  <script type="importmap">
699
- ${JSON.stringify(g,null,2)}
745
+ ${JSON.stringify(p,null,2)}
700
746
  </script>
701
747
  <style>
702
- ${Yn}${d}
748
+ ${Hs}${u}
703
749
  </style>
704
750
  <style>
705
- ${n}
751
+ ${s}
706
752
  </style>
707
753
  </head>
708
754
  <body>
709
- ${u}
755
+ ${f}
710
756
 
711
- ${i.length>0?`<script>window.__TB_DATA__ = ${p(JSON.stringify(i))};</script>`:""}
712
- ${o?`<script>window.__TB_INSIGHT__ = ${p(JSON.stringify(o))};</script>`:""}
713
- ${c?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
757
+ ${i.length>0?`<script>window.__TB_DATA__ = ${d(JSON.stringify(i))};</script>`:""}
758
+ ${o?`<script>window.__TB_INSIGHT__ = ${d(JSON.stringify(o))};</script>`:""}
714
759
 
715
760
  <script>
716
- ${rf}
761
+ ${af}
717
762
  </script>
718
763
 
719
- ${mb}
764
+ ${vb}
720
765
 
721
766
  <script type="module">
722
- ${p(t)}
767
+ ${d(t)}
723
768
  globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
724
769
  </script>
725
770
  </body>
726
- </html>`}var mb=`<script>
771
+ </html>`}var vb=`<script>
727
772
  (function () {
728
773
  var framed = window.parent !== window;
729
774
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -819,10 +864,10 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
819
864
  }
820
865
  });
821
866
  })();
822
- </script>`;function gb(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as zn from"fs/promises";import*as Gn from"path";import{existsSync as sf,readFileSync as yb}from"fs";import{execFile as bb}from"child_process";import{promisify as wb}from"util";import{satisfies as vb}from"semver";var Sb=wb(bb);async function Qn(r,e,t){let s=r.map(o=>xb(o,t)).filter(o=>!kb(o,e));if(s.length===0)return;await zn.mkdir(e,{recursive:!0});let i=Gn.join(e,"package.json");sf(i)||await zn.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Sb("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function xb(r,e){if(!e||af(r))return r;let t=e[r];return t?`${r}@${t}`:r}function kb(r,e){let t=Gn.join(e,"node_modules",of(r));if(!sf(t))return!1;let n=af(r);if(!n)return!0;try{let s=JSON.parse(yb(Gn.join(t,"package.json"),"utf-8")).version;return vb(s,n)}catch{return!1}}function Xn(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];if(s.includes(":"))continue;let i=s.startsWith("@")?s.split("/").slice(0,2).join("/"):s.split("/")[0];e.add(i)}return[...e]}function of(r){if(r.startsWith("@")){let t=r.indexOf("/");if(t<0)return r;let n=r.indexOf("@",t+1);return n<0?r:r.slice(0,n)}let e=r.indexOf("@");return e<0?r:r.slice(0,e)}function af(r){let e=of(r);return r.length>e.length?r.slice(e.length+1):""}async function cf(r){let t=(await _e.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Zn.join(r,t):null}async function se(r){let e=await _e.readFile(r,"utf-8"),t=$r(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=$n(t);return{bulb:n,config:_a(n.config)}}async function xr(r,e,t,n){let s=Ao(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await Ta(i,t));let o=Zn.join(e,".typebulb");await _e.mkdir(o,{recursive:!0});let a=Xn(i);a.length>0&&await Qn(a,o,n);let c=Zn.join(o,"server.mjs");return await _e.writeFile(c,i,"utf-8"),await import(`${Eb(c).href}?t=${Date.now()}`)}async function qo(r,e,t,n,s){let{bulb:i,config:o}=await se(r),a=ko(i.data),c=Ao(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Wn.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=nf({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 xr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}Er();import _b from"open";async function vt(r){await _b(r)}var ff=new Set(["claude"]);function df(r){return ff.has(r)}function Ar(){return[...ff]}import*as wf from"path";import{spawn as zb}from"child_process";import*as U from"fs/promises";import*as j from"path";import*as St from"path";var Lb=St.join(jn,"pkg"),$b=St.join(jn,"files"),Mb=St.join(jn,"negative.json"),rs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Je(new yt(Mb));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await I();let t=await Ke(pf(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await ts(async()=>{await I(),await z(pf(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await I();let t=await Fn(hf(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await ts(async()=>{await I(),await z(hf(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await ts(async()=>{await I(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return ts(()=>this.negativeCache.clearNegative(e))}};async function ts(r){try{await r()}catch{}}function pf(r){return St.join(Lb,re(r)+".json")}function hf(r){return St.join($b,re(r)+".txt")}var Jo;function Db(){return Jo||(Jo=$o({cache:new rs,cdnClient:tf,packageService:Wn,versionResolver:ef})),Jo}var mf="file:///node_modules/";async function gf(r){let e=Un(r.emitKey,"typecheck");await I(),await U.rm(e,{recursive:!0,force:!0}),await U.mkdir(e,{recursive:!0});let t=jb(r.jsxImportSource,r.dependencies),n=await Db().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=ns(u.path);if(!d||o.has(d))continue;o.add(d);let p=j.join(e,"node_modules",d);await U.mkdir(j.dirname(p),{recursive:!0}),await U.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=ns(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=ns(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=ns(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await Ub(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=Bb(r.jsxImportSource,a,[...c]);return await U.writeFile(j.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
823
- `,"utf8"),await U.writeFile(j.join(e,"code.tsx"),r.code,"utf8"),await U.writeFile(j.join(e,"tb.d.ts"),Ro,"utf8"),{dir:e}}function Bb(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:qb([...No,...Co]),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 qb(r){return r.filter(e=>!e.since).map(e=>Fb(e.name))}function Fb(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 jb(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function ns(r){if(!r.startsWith(mf))return;let e=r.slice(mf.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function Ub(r,e){if(!r.typesAbs)return;let t=j.dirname(r.typesAbs),n=j.join(e,"node_modules",r.name);for(let s of await Jb(t)){let i=j.join(n,j.relative(t,s));await U.mkdir(j.dirname(i),{recursive:!0}),await U.copyFile(s,i)}return j.basename(r.typesAbs)}async function Jb(r){let e=[];async function t(n){let s=await U.readdir(n,{withFileTypes:!0});for(let i of s){let o=j.join(n,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 ge from"path";import{existsSync as Kb}from"fs";var Wb="^22";async function yf(r){let e=Un(r.emitKey,"typecheck-server");await I(),await Q.rm(e,{recursive:!0,force:!0}),await Q.mkdir(e,{recursive:!0});let t=ge.join(r.bulbDir,".typebulb"),n=Xn(r.server).filter(o=>o!==r.local?.name);await Qn([`@types/node@${Wb}`,...n],t,r.dependencies);let s=ge.join(t,"node_modules"),i=ge.join(e,"node_modules");return await Yb(s,i),await Q.writeFile(ge.join(e,"server.ts"),r.server,"utf8"),await Q.writeFile(ge.join(e,"tb.d.ts"),Io,"utf8"),await Q.writeFile(ge.join(e,"tsconfig.json"),JSON.stringify(Vb(r.local),null,2)+`
824
- `,"utf8"),{dir:e}}function Vb(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,"/"),n=t(ge.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.baseUrl=".",e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function Yb(r,e){if(!Kb(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 Ve=["client"],Ye=["client","server"],Hb=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Ve},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:Ye},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Ve},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Ve},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Ve},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:Ye},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:Ye},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:Ye},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:Ye},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:Ye},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:Ye},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Ve},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Ve},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Ve}];function Ko(r,e){if(!r)return[];let{target:t}=e,n=[],s=r.split(`
825
- `);for(let i=0;i<s.length;i++){let o=s[i],a=i+1;for(let c of Hb)c.targets.includes(t)&&c.pattern.test(o)&&n.push({type:c.type,severity:"error",message:Gb(c.type,a),lineNumber:a,lineContent:o})}return n}function Gb(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
867
+ </script>`;function Sb(r){let e={};for(let[t,s]of Object.entries(r))e[t]=s.startsWith("https://")?"/proxy/"+s:s;return e}import*as Qs from"fs/promises";import*as zs from"path";import{existsSync as lf,readFileSync as xb}from"fs";import{execFile as kb}from"child_process";import{promisify as Eb}from"util";import{satisfies as Tb}from"semver";var Ab=Eb(kb);async function Xs(r,e,t){let n=r.map(o=>Pb(o,t)).filter(o=>!Ob(o,e));if(n.length===0)return;await Qs.mkdir(e,{recursive:!0});let i=zs.join(e,"package.json");lf(i)||await Qs.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${n.join(", ")}`),await Ab("npm",["install","--no-audit","--no-fund",...n],{cwd:e,shell:!0})}function Pb(r,e){if(!e||ff(r))return r;let t=e[r];return t?`${r}@${t}`:r}function Ob(r,e){let t=zs.join(e,"node_modules",uf(r));if(!lf(t))return!1;let s=ff(r);if(!s)return!0;try{let n=JSON.parse(xb(zs.join(t,"package.json"),"utf-8")).version;return Tb(n,s)}catch{return!1}}function Zs(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 uf(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 ff(r){let e=uf(r);return r.length>e.length?r.slice(e.length+1):""}async function df(r){let t=(await _e.readdir(r)).find(s=>s.endsWith(".bulb.md"));return t?en.join(r,t):null}async function se(r){let e=await _e.readFile(r,"utf-8"),t=Dr(e);if(!t)throw new Error("Invalid .bulb.md file format");let s=Ms(t);return{bulb:s,config:Da(s.config)}}async function kr(r,e,t,s){let n=Oo(r,{serverOnly:!0});if(n.error)throw new Error(`Server compilation error: ${n.error}`);let i=n.code;t&&(i=await Ca(i,t));let o=en.join(e,".typebulb");await _e.mkdir(o,{recursive:!0});let a=Zs(i);a.length>0&&await Xs(a,o,s);let c=en.join(o,"server.mjs");return await _e.writeFile(c,i,"utf-8"),await import(`${Nb(c).href}?t=${Date.now()}`)}async function Uo(r,e,t,s,n){let{bulb:i,config:o}=await se(r),a=Ao(i.data),c=Oo(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Vs.buildImportMap(c.code,o.dependencies??{},s?new Set([s.name]):void 0);s&&(l.imports[s.name]=s.entryUrl);let f=cf({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 kr(i.server,n,s,o.dependencies)),{html:f,bulb:i,serverExports:u}}Tr();import Bb from"open";async function wt(r){await Bb(r)}var mf=new Set(["claude"]);function gf(r){return mf.has(r)}function Ar(){return[...mf]}import*as kf from"path";import{spawn as tw}from"child_process";import*as J from"fs/promises";import*as U from"path";import*as vt from"path";var qb=vt.join(Us,"pkg"),Fb=vt.join(Us,"files"),jb=vt.join(Us,"negative.json"),sn=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Ue(new gt(jb));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await I();let t=await Je(yf(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 rn(async()=>{await I(),await G(yf(e),JSON.stringify(n))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await I();let t=await js(bf(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await rn(async()=>{await I(),await G(bf(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await rn(async()=>{await I(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return rn(()=>this.negativeCache.clearNegative(e))}};async function rn(r){try{await r()}catch{}}function yf(r){return vt.join(qb,te(r)+".json")}function bf(r){return vt.join(Fb,te(r)+".txt")}var Vo;function Ub(){return Vo||(Vo=Bo({cache:new sn,cdnClient:of,packageService:Vs,versionResolver:nf})),Vo}var wf="file:///node_modules/";async function vf(r){let e=Js(r.emitKey,"typecheck");await I(),await J.rm(e,{recursive:!0,force:!0}),await J.mkdir(e,{recursive:!0});let t=Vb(r.jsxImportSource,r.dependencies),s=await Ub().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=nn(u.path);if(!d||o.has(d))continue;o.add(d);let p=U.join(e,"node_modules",d);await J.mkdir(U.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=nn(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=nn(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=nn(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await Yb(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=Jb(r.jsxImportSource,a,[...c]);return await J.writeFile(U.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
868
+ `,"utf8"),await J.writeFile(U.join(e,"code.tsx"),r.code,"utf8"),await J.writeFile(U.join(e,"tb.d.ts"),Lo,"utf8"),{dir:e}}function Jb(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:Kb([...Io,..._o]),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 Kb(r){return r.filter(e=>!e.since).map(e=>Wb(e.name))}function Wb(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 Vb(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function nn(r){if(!r.startsWith(wf))return;let e=r.slice(wf.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function Yb(r,e){if(!r.typesAbs)return;let t=U.dirname(r.typesAbs),s=U.join(e,"node_modules",r.name);for(let n of await Hb(t)){let i=U.join(s,U.relative(t,n));await J.mkdir(U.dirname(i),{recursive:!0}),await J.copyFile(n,i)}return U.basename(r.typesAbs)}async function Hb(r){let e=[];async function t(s){let n=await J.readdir(s,{withFileTypes:!0});for(let i of n){let o=U.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 ye from"path";import{existsSync as Gb}from"fs";var zb="^22";async function Sf(r){let e=Js(r.emitKey,"typecheck-server");await I(),await z.rm(e,{recursive:!0,force:!0}),await z.mkdir(e,{recursive:!0});let t=ye.join(r.bulbDir,".typebulb"),s=Zs(r.server).filter(o=>o!==r.local?.name);await Xs([`@types/node@${zb}`,...s],t,r.dependencies);let n=ye.join(t,"node_modules"),i=ye.join(e,"node_modules");return await Xb(n,i),await z.writeFile(ye.join(e,"server.ts"),r.server,"utf8"),await z.writeFile(ye.join(e,"tb.d.ts"),$o,"utf8"),await z.writeFile(ye.join(e,"tsconfig.json"),JSON.stringify(Qb(r.local),null,2)+`
869
+ `,"utf8"),{dir:e}}function Qb(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(ye.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 Xb(r,e){if(!Gb(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 We=["client"],Ve=["client","server"],Zb=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:We},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:Ve},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:We},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:We},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:We},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:Ve},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:Ve},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:Ve},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:Ve},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:Ve},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:Ve},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:We},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:We},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:We}];function Yo(r,e){if(!r)return[];let{target:t}=e,s=[],n=r.split(`
870
+ `);for(let i=0;i<n.length;i++){let o=n[i],a=i+1;for(let c of Zb)c.targets.includes(t)&&c.pattern.test(o)&&s.push({type:c.type,severity:"error",message:ew(c.type,a),lineNumber:a,lineContent:o})}return s}function ew(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
826
871
 
827
872
  **CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
828
873
 
@@ -976,50 +1021,51 @@ import { something } from 'module-name'
976
1021
  const something = require('module-name') // NOT SUPPORTED!
977
1022
  \`\`\`
978
1023
 
979
- **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}async function vf(r,e){let{bulb:t,config:n}=await se(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let s=!1;t.code&&(s=bf(Ko(t.code,{target:"client"}),"client")||s),t.server&&(s=bf(Ko(t.server,{target:"server"}),"server")||s);let i=[];if(t.code){let{dir:a}=await gf({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});i.push({role:"client",dir:a})}if(t.server){let{dir:a}=await yf({server:t.server,bulbDir:wf.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});i.push({role:"server",dir:a})}for(let{role:a,dir:c}of i){let{stdout:l,exitCode:f}=await Qb(c);for(let u of l.split(/\r?\n/))u.trim()&&console.log(`${a} ${u}`);f!==0&&(s=!0)}s&&process.exit(1);let o=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${o})`)}function bf(r,e){for(let t of r)for(let n of t.message.split(`
980
- `))console.log(`${e} ${n}`);return r.length>0}function Qb(r){return new Promise(e=>{let t=zb("npx",["tsc","--noEmit"],{cwd:r,shell:!0}),n="";t.stdout?.on("data",s=>{n+=s.toString()}),t.stderr?.on("data",s=>{n+=s.toString()}),t.on("close",s=>e({stdout:n,exitCode:s??1}))})}ss();Er();async function Sf(r,e){let{bulb:t}=await se(r),n=xt(t);if(We(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; 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.)")}Er();import*as Tr from"path";async function xf(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Uo();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=Tr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),wt(t,e),console.log(e?`Trusted ${Tr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Tr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}ye();import{readFileSync as ow,existsSync as aw}from"fs";import*as ze from"path";import{fileURLToPath as cw}from"url";function Lf(){let r=ze.dirname(cw(import.meta.url));for(;!aw(ze.join(r,"package.json"));){let e=ze.dirname(r);if(e===r)break;r=e}return r}function us(){return ze.join(Lf(),"README.md")}function Qo(){return ze.join(Lf(),"description.md")}function lw(r){return`---
1024
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}async function Ef(r,e){let{bulb:t,config:s}=await se(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=xf(Yo(t.code,{target:"client"}),"client")||n),t.server&&(n=xf(Yo(t.server,{target:"server"}),"server")||n);let i=[];if(t.code){let{dir:a}=await vf({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 Sf({server:t.server,bulbDir:kf.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 rw(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 xf(r,e){for(let t of r)for(let s of t.message.split(`
1025
+ `))console.log(`${e} ${s}`);return r.length>0}function rw(r){return new Promise(e=>{let t=tw("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}))})}on();Tr();async function Tf(r,e){let{bulb:t}=await se(r),s=St(t);if(Ke(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.)")}Tr();import*as Pr from"path";async function Af(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let s=Wo();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=Pr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),bt(t,e),console.log(e?`Trusted ${Pr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Pr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}fe();import{readFileSync as fw,existsSync as dw}from"fs";import*as Ge from"path";import{fileURLToPath as pw}from"url";function Bf(){let r=Ge.dirname(pw(import.meta.url));for(;!dw(Ge.join(r,"package.json"));){let e=Ge.dirname(r);if(e===r)break;r=e}return r}function hn(){return Ge.join(Bf(),"README.md")}function Zo(){return Ge.join(Bf(),"description.md")}function hw(r){return`---
981
1026
  name: typebulb
982
- description: ${ow(Qo(),"utf8").trim().replace(/\s+/g," ")}
1027
+ description: ${fw(Zo(),"utf8").trim().replace(/\s+/g," ")}
983
1028
  version: ${r}
984
- ---`}function uw(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 $f(r,e){return`${lw(e)}
1029
+ ---`}function mw(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 qf(r,e){return`${hw(e)}
985
1030
 
986
- ${uw(e)}
1031
+ ${mw(e)}
987
1032
 
988
1033
  ${r.trim()}
989
- `}async function Mf(){let[r]=Ar(),e,t;try{e=await _f(r)}catch(i){t=i instanceof Error?i.message:String(i)}let s=[e?`Mirror '${r}' is up at ${e.url} \u2014 the embedded bulbs render live there.`:`The mirror did not start (${t}) \u2014 start it manually with \`npx typebulb agent:${r}\`.`,"","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): ${us()}`,"Agents: End your reply with the mirror link \u2014 it is the user's next click, and a link buried mid-message gets missed."];process.stdout.write(s.join(`
1034
+ `}async function Ff(r){let[e]=Ar(),t,s;try{t=await Df(e)}catch(m){s=m instanceof Error?m.message:String(m)}let n=process.stdout.isTTY===!0,i=m=>h=>n?`\x1B[${m}m${h}\x1B[0m`:h,o=i("1"),a=i("2"),c=i("32"),l=i("33"),f=i("4;36"),u=[` ${o("Read the authoring skill")} before writing a bulb:`,` ${a("\u2022")} ${o("npx typebulb skill")} ${a("\u2014 assembles one SKILL.md")}`,` ${a("\u2022")} or, open its parts:`,` ${a(Zo())}`,` ${a(hn())}`],d=t?[` ${o("Agent mirror is live")}`,` ${c("\u25CF")} ${f(t.url)}`,` ${a("Embedded bulbs in CC sessions render live here.")}`,` ${o("Agents:")}`,...u,` ${o("End your reply with the mirror link above")}`,` ${a("\u2022")} ${a("easy to miss the link mid-message")}`]:[` ${o("The mirror did not start")} ${a(`(${s})`)}`,` ${l("\u25CF")} Start it manually: ${o(`npx typebulb agent:${e}`)}`,` ${o("Agents:")}`,...u],p=[` ${a(`typebulb v${r}`)}`,...d,""];process.stdout.write(p.join(`
990
1035
  `)+`
991
- `)}import{readFileSync as fw,existsSync as dw}from"fs";import*as be from"path";function pw(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function fe(r,e=process.cwd()){let t={},n=[];for(let s of pw(r)){let i;try{i=fw(be.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of hw(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*hw(r){for(let e of r.split(`
992
- `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function mw(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function Le(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=be.dirname(e),c=`(mode: ${s??"none"})`,l=t?mw(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=be.resolve(a)!==be.resolve(o);if(u)for(let p of[".env.local",".env"])dw(be.join(a,p))&&console.log(`env: ${be.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 Et={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"},gw="https://api.typebulb.com/api/models",yw=1440*60*1e3,kt=null;async function fs(){if(!kt||Date.now()-kt.fetchedAt>yw){let r=await fetch(gw);if(!r.ok)return kt?Df(kt.models):[];kt={models:await r.json(),fetchedAt:Date.now()}}return Df(kt.models)}function Df(r){let e=new Set(Object.entries(Et).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Bf(){return Object.values(Et).some(r=>!!process.env[r])}function qf(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=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(n)} ${o.friendlyName.padEnd(s)} (${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(`
993
- `)}async function Ff(r){if(fe(r),!Bf()){console.log("No AI provider keys found in this directory's .env. Set one of these to use tb.ai:");for(let[t,n]of Object.entries(Et))console.log(` ${n.padEnd(20)} (${t})`);console.log("Then re-run `typebulb models`.");return}let e=await fs();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(qf(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL))}import*as jf from"fs/promises";async function Uf(r){let e=us(),t;try{t=await jf.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write($f(t,r))}kr();ye();import*as Jf from"path";function bw(r,e,t){if(/^\d+$/.test(e))return r.find(s=>s.pid===parseInt(e,10));let n=r.filter(s=>s.agent===e);return n.length?(t?n.find(i=>i.cwd&&L(i.cwd)===L(t)):void 0)??n[0]:r.find(s=>L(s.file)===L(e))}var ds=r=>r.agent??Jf.basename(r.file);function Kf(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function Xo(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Kf(r,t=>console.log(t)),console.log(`
994
- `+e)}function Zo(r,e,t,n){let s=bw(r,e,n);if(s)return s;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Kf(r,i=>console.error(i))):console.error("No bulb servers are running."),process.exit(1)}async function Wf(r,e){if(!r){Xo(await B(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=Zo(await B(),r,"logs",process.cwd()),n=ue(t.pid),s=n.text;if(e.lines&&e.lines>0){let i=s.split(`
995
- `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
996
- `)}if(process.stdout.write(s),s&&!s.endsWith(`
1036
+ `)}import{readFileSync as gw,existsSync as yw}from"fs";import*as be from"path";function bw(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function de(r,e=process.cwd()){let t={},s=[];for(let n of bw(r)){let i;try{i=gw(be.resolve(e,n),"utf-8")}catch{continue}s.push(n);for(let[o,a]of ww(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=n)}return{mode:r,sources:t,loaded:s}}function*ww(r){for(let e of r.split(`
1037
+ `)){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 vw(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 Le(r,e,t){let{sources:s,mode:n,loaded:i}=r,o=process.cwd(),a=be.dirname(e),c=`(mode: ${n??"none"})`,l=t?vw(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=be.resolve(a)!==be.resolve(o);if(u)for(let p of[".env.local",".env"])yw(be.join(a,p))&&console.log(`env: ${be.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 Et={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"},Sw="https://api.typebulb.com/api/models",xw=1440*60*1e3,kt=null;async function mn(){if(!kt||Date.now()-kt.fetchedAt>xw){let r=await fetch(Sw);if(!r.ok)return kt?jf(kt.models):[];kt={models:await r.json(),fetchedAt:Date.now()}}return jf(kt.models)}function jf(r){let e=new Set(Object.entries(Et).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Uf(){return Object.values(Et).some(r=>!!process.env[r])}function Jf(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(`
1038
+ `)}async function Kf(r){if(de(r),!Uf()){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(Et))console.log(` ${s.padEnd(20)} (${t})`);console.log("Then re-run `typebulb models`.");return}let e=await mn();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(Jf(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL))}import*as Wf from"fs/promises";async function Vf(r){let e=hn(),t;try{t=await Wf.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(qf(t,r))}Er();fe();import*as Yf from"path";function kw(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&&L(i.cwd)===L(t)):void 0)??s[0]:r.find(n=>L(n.file)===L(e))}var Nr=r=>r.agent??Yf.basename(r.file);function Hf(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function ea(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Hf(r,t=>console.log(t)),console.log(`
1039
+ `+e)}function ta(r,e,t,s){let n=kw(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>\`):`),Hf(r,i=>console.error(i))):console.error("No bulb servers are running."),process.exit(1)}async function Gf(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),ea(await $(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=ta(await $(),r,"logs",process.cwd());if(e.clear){_f(t.pid),console.log(`Cleared log for ${Nr(t)} (pid ${t.pid}).`);return}let s=ue(t.pid),n=s.text;if(e.lines&&e.lines>0){let i=n.split(`
1040
+ `);i.length&&i[i.length-1]===""&&i.pop(),n=i.slice(-e.lines).join(`
1041
+ `)}if(process.stdout.write(n),n&&!n.endsWith(`
997
1042
  `)&&process.stdout.write(`
998
- `),e.follow){let i=n.offset,o=setInterval(()=>{let c=ue(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(()=>{})}}var ww=r=>new Promise(e=>setTimeout(e,r));async function Vf(r,e){if(!r){Xo(await B(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=Zo(await B(),r,"wait",process.cwd()),n=ue(t.pid).offset,s=Of(t.pid),i=s!==void 0&&s<=n?s:n,o=Date.now()+e.timeoutSec*1e3,a=1e3,c,l="",f=0;for(;;){let u=ue(t.pid,i);if(i=u.offset,u.text){l+=u.text;let d=l.split(`
999
- `);l=d.pop()??"";for(let p of d)p.trim()&&(e.match&&!p.includes(e.match)||(console.log(p),c??=Date.now()+a))}if(c&&Date.now()>=c)break;if(!c&&Date.now()>=o){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${ds(t)} within ${e.timeoutSec}s`),f=2;break}if(!Ho(t.pid)){c||(console.error(`server ${ds(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await ww(400)}os(t.pid,i),process.exit(f)}async function Yf(r){if(!r){Xo(await B(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=Zo(await B(),r,"stop",process.cwd());await Ge(e.pid),console.log(`Stopped ${ds(e)} (pid ${e.pid}, ${e.url}).`)}async function Hf(r){let e=process.cwd(),t=r==="global"?await B():r==="bulbs"?await B(e):(await B()).filter(s=>s.agent!=null&&s.cwd!=null&&L(s.cwd)===L(e)),n=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!t.length){console.log(r==="global"?"No running bulb servers.":`No running ${n}s for this project.`);return}await Promise.all(t.map(s=>Ge(s.pid))),console.log(`Stopped ${t.length} ${n}${t.length===1?"":"s"}:`);for(let s of t)console.log(` ${s.url} pid ${s.pid} ${ds(s)}`)}ye();import*as nd from"fs/promises";import*as At from"path";import{EventEmitter as rd}from"events";ss();import{Hono as Ew}from"hono";import{serve as Aw}from"@hono/node-server";import{streamSSE as Tw}from"hono/streaming";import*as Xe from"fs/promises";import*as oe from"path";var Z=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},ie=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=`
1043
+ `),e.follow){let i=s.offset,o=setInterval(()=>{let c=ue(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(()=>{})}}var Ew=r=>new Promise(e=>setTimeout(e,r));async function zf(r,e){if(!r){ea(await $(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=ta(await $(),r,"wait",process.cwd()),s=ue(t.pid).offset,n=If(t.pid),i=n!==void 0&&n<=s?n:s,o=Date.now()+e.timeoutSec*1e3,a=1e3,c,l="",f=0;for(;;){let u=ue(t.pid,i);if(i=u.offset,u.text){l+=u.text;let d=l.split(`
1044
+ `);l=d.pop()??"";for(let p of d)p.trim()&&(e.match&&!p.includes(e.match)||(console.log(p),c??=Date.now()+a))}if(c&&Date.now()>=c)break;if(!c&&Date.now()>=o){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${Nr(t)} within ${e.timeoutSec}s`),f=2;break}if(!zo(t.pid)){c||(console.error(`server ${Nr(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await Ew(400)}ln(t.pid,i),process.exit(f)}async function Qf(r){if(!r){ea(await $(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=ta(await $(),r,"stop",process.cwd());await He(e.pid),console.log(`Stopped ${Nr(e)} (pid ${e.pid}, ${e.url}).`)}async function Xf(r){let e=process.cwd(),t=r==="global"?await $():r==="bulbs"?await $(e):(await $()).filter(n=>n.agent!=null&&n.cwd!=null&&L(n.cwd)===L(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=>He(n.pid))),console.log(`Stopped ${t.length} ${s}${t.length===1?"":"s"}:`);for(let n of t)console.log(` ${n.url} pid ${n.pid} ${Nr(n)}`)}fe();import*as Zf from"path";async function ed(r,e){let t=Zf.resolve(r),s=dn(await $(),t)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let n=0;try{let i=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});i.ok||(console.error(`send failed: HTTP ${i.status} from ${s.url}/__send`),process.exit(1)),n=(await i.json().catch(()=>({}))).clients??0}catch(i){console.error(`send failed: ${i instanceof Error?i.message:String(i)}`),process.exit(1)}n>0?console.log(`Sent to ${n} page${n===1?"":"s"}.`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}fe();import*as cd from"fs/promises";import*as Tt from"path";import{EventEmitter as ua}from"events";on();import{Hono as Nw}from"hono";import{serve as Cw}from"@hono/node-server";import{streamSSE as Rw}from"hono/streaming";import*as Qe 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=`
1000
1045
 
1001
- `){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t,n=!1){if(!e)return{message:`HTTP ${t}`};try{let s=JSON.parse(e);if(s.error&&typeof s.error=="object"){let i={message:s.error.message||`HTTP ${t}`,type:s.error.type};return n&&(i.code=s.error.code),i}return s.message?{message:s.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 n=t.code||"unknown";throw new Z(t.message,n,!!t.retryable)}if(t.error)throw new Z(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 ps=class extends ie{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,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};return n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),this.isReasoningEnabled(n)&&(o.reasoning={effort:this.effortMap[n.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||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
1002
- `)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:n}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"error":return null;case"response.failed":{let s=e.response?.error,i=s?.message||"Response failed",o=s?.code==="insufficient_quota"||s?.code==="rate_limit_exceeded";throw new Z(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(`
1046
+ `){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 gn=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(`
1047
+ `)),!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(`
1003
1048
 
1004
- `)}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 hs=class extends ie{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 n={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(n["HTTP-Referer"]=t,n.Referer=t,n.Origin=t),n}buildPayload(e,t,n,s){let i={model:t,messages:e,stream:s};return n?.webSearch===!0&&(i.plugins=[{id:"web"}]),this.isReasoningEnabled(n)&&(i.reasoning={effort:this.effortMap[n.reasoning]}),i}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message?.content??n?.text??"",i=n?.message?.reasoning??t.reasoning;return{text:s,reasoning:i}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var ms=class extends ie{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,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:s};if(n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]),this.isReasoningEnabled(n)){let c=n.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(s=>s.type==="text").map(s=>s.text).join(""),n=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
1049
+ `)}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 yn=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 bn=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(`
1005
1050
 
1006
- `);return{text:t,reasoning:n||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((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}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 gs=class extends ie{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,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1007
- `),c={contents:o.map(l=>({role:l.role==="assistant"?"model":"user",parts:[{text:l.content}]}))};return n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]}),this.isReasoningEnabled(n)&&(c.generationConfig={temperature:.7+n.reasoning*.1}),c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e),s=Array.isArray(n)?n[0]?.error:n?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
1008
- `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.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)||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}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(n=>n.text).filter(Boolean).join("")}checkGeminiError(e){if(typeof e=="object"&&e!==null&&"error"in e){let t=e.error,n;if(typeof t=="string")n=t;else if(typeof t=="object"&&t!==null){let s=t;n=s.message||s.status||"Gemini returned an error"}else n="Gemini returned an error";throw new Z(n)}if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new Z(`Prompt blocked: ${t}`)}}};var vw=new Map([["openai",new ps],["openrouter",new hs],["anthropic",new ms],["gemini",new gs]]);function Qe(r){let e=vw.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}async function ea(r,e){let t=Qe(r.protocol),n=t.getPath(e.model,e.stream),s=new URL(n,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(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function ta(r,e){let t=Qe(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Gf(r){let e=r.indexOf(`\r
1051
+ `);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 wn=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,`
1052
+ `),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(`
1053
+ `)[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 Tw=new Map([["openai",new gn],["openrouter",new yn],["anthropic",new bn],["gemini",new wn]]);function ze(r){let e=Tw.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}async function ra(r,e){let t=ze(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 sa(r,e){let t=ze(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 td(r){let e=r.indexOf(`\r
1009
1054
  \r
1010
1055
  `),t=r.indexOf(`
1011
1056
 
1012
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function ra(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1013
- `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function zf(r,e,t){let n=new TextDecoder,s="",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(s.trim()){let d=ra(s);d!==null&&d!=="done"&&e(d)}break}i=!0,s+=n.decode(l,{stream:!0});let{pos:f,len:u}=Gf(s);for(;f!==-1;){let d=s.slice(0,f);s=s.slice(f+u);let p=ra(d);if(p==="done"){s="";break}p!==null&&e(p),{pos:f,len:u}=Gf(s)}}return{receivedAnyData:i}}async function na(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=Qe(t);if(!r.body)throw new Error("Response body is missing");let s=r.body.getReader(),i="";return await zf(s,o=>{let a=n.parseStreamChunk(o);a?.text&&(i+=a.text)}),i}import*as sa from"fs/promises";import*as Nr from"path";var ys=class{async get(e){let t=re(e),n=Nr.join(Sr,t+".bin"),s=Nr.join(Sr,t+".json");try{let[i,o]=await Promise.all([sa.readFile(n),sa.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await I();let n=re(e),s=Nr.join(Sr,n+".bin"),i=Nr.join(Sr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([z(s,t.body),z(i,JSON.stringify(o))])}};ye();var ia={log:(...r)=>console.log(...r)};function bs(r,e){let t=r?.[e]??ia[e];return typeof t=="function"?t:void 0}var Sw=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,xw=/[?&]target=/,kw=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Qf(r,e=""){return Sw.test(r)?!0:kw.test(r)&&xw.test(e)}var Zf="127.0.0.1",Pw=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 Nw(r){let e=Ow(r);return!!e&&Pw.has(e)}function Cw(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function ws(r){return r instanceof Error?r.message:"Unknown error"}async function vs(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,getServerExports:i,localOverride:o,trusted:a=!1,trustHint:c,staticAssets:l}=r,f=new Ew;f.use("*",async(m,b)=>{if(!Nw(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,S=w.startsWith("/__fs")?"the filesystem":w==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";Nf(process.pid,S);let E=c?`
1014
- ${c}`:"";return m.text(`Forbidden: this capability requires --trust.${E}`,403)}await b()},p=async(m,b)=>{let w=m.req.header("sec-fetch-site");if(w){if(w!=="same-origin")return m.text(`Forbidden: ${w} request`,403)}else{let S=m.req.header("origin");if(S&&!Cw(S,m.req.header("host")))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=aa(b,t),S=await Xe.readFile(w);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let w=ws(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=aa(b,t);return await Xe.mkdir(oe.dirname(w),{recursive:!0}),await Xe.writeFile(w,Buffer.from(await m.req.arrayBuffer())),m.json({success:!0})}catch(b){let w=ws(b);return m.json({error:w},400)}}),f.post("/__api/:name",async m=>{try{let b=m.req.param("name"),w=bs(i?.(),b);if(!w)return m.json({error:`API function '${b}' not found`},404);let{args:S}=await m.req.json(),E=await w(...S||[]);return m.json({result:E})}catch(b){let w=ws(b);return m.json({error:w},500)}}),f.post("/__ai",async m=>{try{let{messages:b,system:w,reasoning:S,provider:E,model:T,webSearch:x}=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 O=Rw(E,T);if(typeof O=="string")return m.json({message:O,code:"unknown",retryable:!1},400);let J=[...w?[{role:"system",content:w}]:[],...b.map($e=>({role:$e.role,content:$e.content}))],H=await ea(O,{model:O.model,messages:J,stream:!0,reasoning:S??0,webSearch:x??!0});if(!H.ok){let $e=await ta(H,O.protocol);return m.json($e,H.status)}let R=await na(H,O.protocol);return R||console.warn("[tb.ai] Empty response from provider"),m.json({text:R})}catch(b){if(b instanceof Z)return m.json({message:b.message,code:b.code,retryable:b.retryable},500);let w=ws(b);return m.json({message:w,code:"unknown",retryable:!1},500)}}),f.get("/__models",async m=>{try{let b=await fs();return m.json(b)}catch{return m.json([],200)}});let g=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],h=new ys;f.get("/proxy/*",async m=>{let b=new URL(m.req.url),S=(b.pathname+b.search).slice(7),E=S.lastIndexOf("https://");return E===-1?m.text("Invalid proxy URL",400):y(m,S.slice(E))}),o&&Xf(f,`/local/${o.name}/`,o.serveDir),l&&Xf(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 S=await h.get(b);if(S)return new Response(S.body,{status:200,headers:oa(S.contentType,S.cacheControl)});try{let E=await fetch(b,{headers:{Accept:m.req.header("Accept")||"*/*"},redirect:"follow"});if(!E.ok)return m.text(`Upstream ${E.status}`,E.status);let T=E.headers.get("Content-Type")||void 0,x=E.headers.get("Cache-Control")||void 0;if(E.body){let[O,J]=E.body.tee();return(async()=>{try{let H=await new Response(J).arrayBuffer();await h.set(b,{body:Buffer.from(H),contentType:T,cacheControl:x})}catch{}})(),new Response(O,{status:E.status,headers:oa(T,x)})}return new Response(null,{status:E.status,headers:oa(T,x)})}catch(E){return m.text(`Proxy fetch failed: ${E instanceof Error?E.message:E}`,502)}}s&&f.get("/__reload",m=>Tw(m,async b=>{let w=()=>{b.writeSSE({event:"reload",data:""})};for(s.on("reload",w),b.onAbort(()=>{s.removeListener("reload",w)});;)await b.sleep(3e4)})),f.notFound(async m=>{if(m.req.method!=="GET")return m.text("Not Found",404);let b=new URL(m.req.url);return Qf(b.pathname,b.search)?y(m,"https://esm.sh"+b.pathname+b.search):m.text("Not Found",404)});let k=Aw({fetch:f.fetch,port:n,hostname:Zf});return{port:n,close:()=>k.close()}}function Rw(r,e){let t=r??process.env.TB_AI_PROVIDER,n=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(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=Qe(t)}catch{return`Unknown provider '${t}'.`}let i=Et[t],o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function oa(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 Xf(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=aa(i,t),a=await Xe.readFile(o);return new Response(a,{headers:{"Content-Type":Iw(o)}})}catch{return n.text("Not Found",404)}})}function Iw(r){switch(oe.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 aa(r,e){let t=oe.resolve(e,r),n=oe.normalize(e),s=oe.normalize(t);if(s!==n&&!s.startsWith(n+oe.sep))throw new Error("Path traversal detected - access denied");return t}async function Cr(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,Zf,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(Cr(r+1))})})}import ed from"chokidar";var td={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function Ss(r){let{bulbPath:e,emitter:t}=r,n=ed.watch(e,td);return n.on("change",()=>{t.emit("reload")}),()=>n.close()}function xs(r){let{dir:e,onChange:t,debounceMs:n=150}=r,s,i=ed.watch(e,td);return i.on("all",()=>{s&&clearTimeout(s),s=setTimeout(t,n)}),()=>{s&&clearTimeout(s),i.close()}}ye();async function sd(r,e,t,n,s){let i=process.cwd(),o=as(process.pid),a=e.watch?new rd:void 0,c=fe(e.mode),l=await zo(r);l.length&&console.log(`Replacing the running server for this bulb (pid ${l.map(w=>w.pid).join(", ")})`),console.log(`Loading ${At.basename(r)}...`);let{html:f,bulb:u,serverExports:d}=await qo(r,e.watch,e.trust,n,s);Le(c,r,u.server);let p=await Cr(e.port),g=await vs({getHtml:()=>f,basePath:i,port:p,reloadEmitter:a,getServerExports:()=>d,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),h=`http://localhost:${p}`,y=e.trust?void 0:xt(u);await cs({pid:process.pid,port:p,url:h,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:y}),console.log(`
1015
- ${u.name}`),console.log(` ${h}`),p!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(y?` trust: restricted \u2014 this bulb appears to use ${y}; re-run with --trust to enable it:
1057
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function na(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(`
1058
+ `).trim();if(!s)return null;if(s==="[DONE]")return"done";try{return JSON.parse(s)}catch{return null}}async function rd(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=na(n);d!==null&&d!=="done"&&e(d)}break}i=!0,n+=s.decode(l,{stream:!0});let{pos:f,len:u}=td(n);for(;f!==-1;){let d=n.slice(0,f);n=n.slice(f+u);let p=na(d);if(p==="done"){n="";break}p!==null&&e(p),{pos:f,len:u}=td(n)}}return{receivedAnyData:i}}async function ia(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),s=ze(t);if(!r.body)throw new Error("Response body is missing");let n=r.body.getReader(),i="";return await rd(n,o=>{let a=s.parseStreamChunk(o);a?.text&&(i+=a.text)}),i}import*as oa from"fs/promises";import*as Cr from"path";var vn=class{async get(e){let t=te(e),s=Cr.join(xr,t+".bin"),n=Cr.join(xr,t+".json");try{let[i,o]=await Promise.all([oa.readFile(s),oa.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=te(e),n=Cr.join(xr,s+".bin"),i=Cr.join(xr,s+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([G(n,t.body),G(i,JSON.stringify(o))])}};fe();var aa={log:(...r)=>console.log(...r)};function Sn(r,e){let t=r?.[e]??aa[e];return typeof t=="function"?t:void 0}var Aw=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Pw=/[?&]target=/,Ow=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function sd(r,e=""){return Aw.test(r)?!0:Ow.test(r)&&Pw.test(e)}var id="127.0.0.1",Iw=new Set(["localhost","127.0.0.1","::1"]);function _w(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Lw(r){let e=_w(r);return!!e&&Iw.has(e)}function $w(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function xn(r){return r instanceof Error?r.message:"Unknown error"}async function kn(r){let{getHtml:e,basePath:t,port:s,reloadEmitter:n,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new Nw;u.use("*",async(g,b)=>{if(!Lw(g.req.header("host")))return g.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(g,b)=>{await b(),g.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),g.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(g,b)=>{if(!c){let w=new URL(g.req.url).pathname,v=w.startsWith("/__fs")?"the filesystem":w==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";Lf(process.pid,v);let T=l?`
1059
+ ${l}`:"";return g.text(`Forbidden: this capability requires --trust.${T}`,403)}await b()},m=async(g,b)=>{let w=g.req.header("sec-fetch-site");if(w){if(w!=="same-origin")return g.text(`Forbidden: ${w} request`,403)}else{let v=g.req.header("origin");if(v&&!$w(v,g.req.header("host")))return g.text("Forbidden: cross-origin request",403)}await b()};for(let g of d)u.use(g,p),u.use(g,m);u.use("/__log",m),u.post("/__log",async g=>{try{let{args:b}=await g.req.json();console.log(...b||[])}catch{}return g.json({ok:!0})}),i&&(u.use("/__send",m),u.post("/__send",async g=>{let b="";try{b=await g.req.text()}catch{}let w=i.listenerCount("message");return i.emit("message",b),g.json({clients:w})})),u.get("/",g=>g.html(e())),u.post("/__fs/read",async g=>{try{let{path:b}=await g.req.json(),w=la(b,t),v=await Qe.readFile(w);return new Response(new Uint8Array(v),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let w=xn(b);return g.json({error:w},400)}}),u.post("/__fs/write",async g=>{try{let b=g.req.query("path");if(!b)return g.json({error:"Missing path"},400);let w=la(b,t);return await Qe.mkdir(ie.dirname(w),{recursive:!0}),await Qe.writeFile(w,Buffer.from(await g.req.arrayBuffer())),g.json({success:!0})}catch(b){let w=xn(b);return g.json({error:w},400)}}),u.post("/__api/:name",async g=>{try{let b=g.req.param("name"),w=Sn(o?.(),b);if(!w)return g.json({error:`API function '${b}' not found`},404);let{args:v}=await g.req.json(),T=await w(...v||[]);return g.json({result:T})}catch(b){let w=xn(b);return g.json({error:w},500)}}),u.post("/__ai",async g=>{try{let{messages:b,system:w,reasoning:v,provider:T,model:E,webSearch:C}=await g.req.json();if(!b||!Array.isArray(b)||b.length===0)return g.json({message:"messages array is required",code:"unknown",retryable:!1},400);let M=Mw(T,E);if(typeof M=="string")return g.json({message:M,code:"unknown",retryable:!1},400);let oe=[...w?[{role:"system",content:w}]:[],...b.map(_r=>({role:_r.role,content:_r.content}))],R=await ra(M,{model:M.model,messages:oe,stream:!0,reasoning:v??0,webSearch:C??!0});if(!R.ok){let _r=await sa(R,M.protocol);return g.json(_r,R.status)}let Ot=await ia(R,M.protocol);return Ot||console.warn("[tb.ai] Empty response from provider"),g.json({text:Ot})}catch(b){if(b instanceof X)return g.json({message:b.message,code:b.code,retryable:b.retryable},500);let w=xn(b);return g.json({message:w,code:"unknown",retryable:!1},500)}}),u.get("/__models",async g=>{try{let b=await mn();return g.json(b)}catch{return g.json([],200)}});let h=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],y=new vn;u.get("/proxy/*",async g=>{let b=new URL(g.req.url),v=(b.pathname+b.search).slice(7),T=v.lastIndexOf("https://");return T===-1?g.text("Invalid proxy URL",400):k(g,v.slice(T))}),a&&nd(u,`/local/${a.name}/`,a.serveDir),f&&nd(u,f.mount,f.dir);async function k(g,b){let w;try{w=new URL(b)}catch{return g.text("Invalid URL",400)}if(w.protocol!=="https:")return g.text("HTTPS only",400);if(!h.includes(w.hostname))return g.text("Host not allowed",403);let v=await y.get(b);if(v)return new Response(v.body,{status:200,headers:ca(v.contentType,v.cacheControl)});try{let T=await fetch(b,{headers:{Accept:g.req.header("Accept")||"*/*"},redirect:"follow"});if(!T.ok)return g.text(`Upstream ${T.status}`,T.status);let E=T.headers.get("Content-Type")||void 0,C=T.headers.get("Cache-Control")||void 0;if(T.body){let[M,oe]=T.body.tee();return(async()=>{try{let R=await new Response(oe).arrayBuffer();await y.set(b,{body:Buffer.from(R),contentType:E,cacheControl:C})}catch{}})(),new Response(M,{status:T.status,headers:ca(E,C)})}return new Response(null,{status:T.status,headers:ca(E,C)})}catch(T){return g.text(`Proxy fetch failed: ${T instanceof Error?T.message:T}`,502)}}(n||i)&&u.get("/__reload",g=>Rw(g,async b=>{let w=()=>{b.writeSSE({event:"reload",data:""})},v=T=>{b.writeSSE({event:"message",data:JSON.stringify(T)})};for(n?.on("reload",w),i?.on("message",v),b.onAbort(()=>{n?.removeListener("reload",w),i?.removeListener("message",v)});;)await b.sleep(3e4)})),u.notFound(async g=>{if(g.req.method!=="GET")return g.text("Not Found",404);let b=new URL(g.req.url);return sd(b.pathname,b.search)?k(g,"https://esm.sh"+b.pathname+b.search):g.text("Not Found",404)});let x=Cw({fetch:u.fetch,port:s,hostname:id});return{port:s,close:()=>x.close()}}function Mw(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=ze(t)}catch{return`Unknown provider '${t}'.`}let i=Et[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 ca(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 nd(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=la(i,t),a=await Qe.readFile(o);return new Response(a,{headers:{"Content-Type":Dw(o)}})}catch{return s.text("Not Found",404)}})}function Dw(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 la(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 Rr(r){let e=await import("net");return new Promise(t=>{let s=e.createServer();s.listen(r,id,()=>{let n=s.address(),i=typeof n=="object"&&n?n.port:r;s.close(()=>t(i))}),s.on("error",()=>{t(Rr(r+1))})})}import od from"chokidar";var ad={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function En(r){let{bulbPath:e,emitter:t,debounceMs:s=150}=r,n,i=od.watch(e,ad);return i.on("change",()=>{n&&clearTimeout(n),n=setTimeout(()=>t.emit("reload"),s)}),()=>{n&&clearTimeout(n),i.close()}}function Tn(r){let{dir:e,onChange:t,debounceMs:s=150}=r,n,i=od.watch(e,ad);return i.on("all",()=>{n&&clearTimeout(n),n=setTimeout(t,s)}),()=>{n&&clearTimeout(n),i.close()}}fe();async function ld(r,e,t,s,n){let i=process.cwd(),o=un(process.pid),a=e.watch?new ua:void 0,c=new ua;c.setMaxListeners(0);let l=de(e.mode),f=await Xo(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(w=>w.pid).join(", ")})`),console.log(`Loading ${Tt.basename(r)}...`);let{html:u,bulb:d,serverExports:p}=await Uo(r,e.watch,e.trust,s,n);Le(l,r,d.server);let m=await Rr(e.port),h=await kn({getHtml:()=>u,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>p,localOverride:s?{name:s.name,serveDir:s.serveDir}:void 0,trusted:e.trust,trustHint:t}),y=`http://localhost:${m}`,k=e.trust?void 0:St(d);await fn({pid:process.pid,port:m,url:y,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:k}),console.log(`
1060
+ ${d.name}`),console.log(` ${y}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(k?` trust: restricted \u2014 this bulb appears to use ${k}; re-run with --trust to enable it:
1016
1061
  ${t}
1017
1062
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
1018
1063
  `),e.watch&&console.log(` Watching for changes...
1019
- `);let k,m;if(e.watch&&a){let w=new rd;if(w.on("reload",async()=>{try{console.log("Recompiling...");let S=await qo(r,!0,e.trust,n,s);f=S.html,d=S.serverExports,a.emit("reload"),console.log(`Done. Browser reloading...
1020
- `)}catch(S){console.error("Compile error:",S)}}),k=Ss({bulbPath:r,emitter:w}),n){let{name:S,serveDir:E}=n;m=xs({dir:E,onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
1021
- `),a.emit("reload")}})}}e.open&&await vt(h);let b=async()=>{console.log(`
1022
- Shutting down...`),g.close(),k?.(),m?.(),o(),await Or(process.pid);let w=At.join(At.dirname(r),".typebulb","server.mjs");await nd.rm(w,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",b),process.on("SIGTERM",b)}import{readFileSync as Bd,copyFileSync as Rv,existsSync as Iv}from"fs";import*as Y from"path";import{fileURLToPath as _v}from"url";import{EventEmitter as Lv}from"events";ye();var ca="/agents/claude/client.js",_w=`
1064
+ `);let x,g;if(e.watch&&a){let w=new ua;if(w.on("reload",async()=>{try{console.log("Recompiling...");let v=await Uo(r,!0,e.trust,s,n);u=v.html,p=v.serverExports,a.emit("reload"),console.log(`Done. Browser reloading...
1065
+ `)}catch(v){console.error("Compile error:",v)}}),x=En({bulbPath:r,emitter:w}),s){let{name:v,serveDir:T}=s;g=Tn({dir:T,onChange:()=>{console.log(`Local package '${v}' changed. Browser reloading...
1066
+ `),a.emit("reload")}})}}e.open&&(f.some(w=>w.port===m)?console.log(` Reusing the open browser tab.
1067
+ `):await wt(y));let b=async()=>{console.log(`
1068
+ Shutting down...`),h.close(),x?.(),g?.(),o(),await Or(process.pid);let w=Tt.join(Tt.dirname(r),".typebulb","server.mjs");await cd.rm(w,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",b),process.on("SIGTERM",b)}import{readFileSync as Jd,copyFileSync as Mv,existsSync as Dv}from"fs";import*as Y from"path";import{fileURLToPath as Bv}from"url";import{EventEmitter as qv}from"events";fe();var fa="/agents/claude/client.js",Bw=`
1023
1069
  (() => {
1024
1070
  const api = async (name, ...args) => {
1025
1071
  const resp = await fetch('/__api/' + name, {
@@ -1054,38 +1100,38 @@ Shutting down...`),g.close(),k?.(),m?.(),o(),await Or(process.pid);let w=At.join
1054
1100
  es.onerror = () => { es.close(); };
1055
1101
  }
1056
1102
  })();
1057
- `;function id(r){let{name:e,styles:t,mountHtml:n,watch:s,theme:i}=r;return`<!DOCTYPE html>
1103
+ `;function ud(r){let{name:e,styles:t,mountHtml:s,watch:n,theme:i}=r;return`<!DOCTYPE html>
1058
1104
  <html>
1059
1105
  <head>
1060
1106
  <meta charset="utf-8">
1061
1107
  <meta name="viewport" content="width=device-width, initial-scale=1">
1062
- <title>${Vn(e)} - typebulb</title>
1063
- ${Hn(e,i)}
1108
+ <title>${Ys(e)} - typebulb</title>
1109
+ ${Gs(e,i)}
1064
1110
  <style>
1065
- ${Yn}
1111
+ ${Hs}
1066
1112
  </style>
1067
1113
  <style>
1068
1114
  ${t}
1069
1115
  </style>
1070
1116
  </head>
1071
1117
  <body>
1072
- ${n}
1118
+ ${s}
1073
1119
 
1074
- ${s?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1120
+ ${n?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1075
1121
 
1076
1122
  <script>
1077
- ${_w}
1123
+ ${Bw}
1078
1124
  </script>
1079
1125
 
1080
- <script type="module" src="${ca}"></script>
1126
+ <script type="module" src="${fa}"></script>
1081
1127
  </body>
1082
- </html>`}async function qd(r){let e=process.cwd(),t=as(process.pid),n=r.watch?new Lv:void 0,s=fe(r.mode),i=await Promise.resolve().then(()=>(Dd(),Md));Le(s,Y.join(e,"mirror"));let o=Y.dirname(_v(import.meta.url)),a=Y.join(o,"agents","claude"),c=Y.join(o,"..","cli","agents","claude"),l=Y.join(a,"styles.css"),f=Y.join(a,"index.html"),u=()=>id({name:"Claude Mirror",styles:Bd(l,"utf8"),mountHtml:Bd(f,"utf8"),watch:r.watch}),d=await Cr(r.port),p=await vs({getHtml:u,basePath:e,port:d,reloadEmitter:n,getServerExports:()=>i,trusted:!0,staticAssets:{mount:`${Y.posix.dirname(ca)}/`,dir:a}}),g=`http://localhost:${d}`;await cs({pid:process.pid,port:d,url:g,file:"agent:claude",cwd:e,startedAt:Date.now(),trust:!0,agent:"claude"}),console.log(`
1083
- Claude Mirror`),console.log(` ${g}`),d!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1084
- `);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 b of["styles.css","index.html"])Rv(Y.join(c,b),Y.join(a,b))}let y;if(r.watch&&n){let m=Iv(c),b=!1;y=xs({dir:m?c:a,onChange:async()=>{if(!b){b=!0;try{m&&await h(),console.log(`Mirror rebuilt. Browser reloading...
1085
- `),n.emit("reload")}catch(w){console.error("Mirror rebuild failed:",w instanceof Error?w.message:w)}finally{b=!1}}}})}r.open&&await vt(g);let k=async()=>{console.log(`
1086
- Shutting down...`),p.close(),y?.(),t(),await Or(process.pid),process.exit(0)};process.on("SIGINT",k),process.on("SIGTERM",k)}import*as Fd from"path";import{EventEmitter as $v}from"events";async function jd(r,e,t,n,s){let i=fe(t),o=!1,a=async()=>{let{bulb:c,config:l}=await se(r);o||(Le(i,r,c.server),o=!0),await xr(c.server,s,n,l.dependencies)};if(console.log(`Running ${Fd.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1087
- `);let c=new $v;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),Ss({bulbPath:r,emitter:c})}}import{Console as Mv}from"node:console";ye();kr();async function Ud(r,e,t,n,s){Uv();try{let p=L(r),g=(await B()).find(h=>L(h.file)===p);g&&os(g.pid,ue(g.pid).offset)}catch{}let i=fe(t),{bulb:o,config:a}=await se(r);o.server||Ns("This bulb has no **server.ts** block; nothing to call."),Le(i,r,o.server);let c;try{c=await xr(o.server,s,n,a.dependencies)}catch(p){Ns(p instanceof Error?p.message:String(p))}let l=bs(c,e.fn);if(!l){let p=[...Object.keys(c).filter(g=>typeof c[g]=="function"),...Object.keys(ia)];Ns(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await Dv(e),u;try{u=await l(...f)}catch(p){Ns(p instanceof Error?p.stack??p.message:String(p))}let d=Fv(u);d!==void 0&&await Jv(d+`
1088
- `),process.exit(0)}async function Dv(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await Kv()),qv(e)}return Bv(r.positional)}function Bv(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function qv(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 Fv(r){if(r!==void 0)return JSON.stringify(r,jv,2)}function jv(r,e){return typeof e=="bigint"?e.toString():e}function Ns(r){process.stderr.write(r+`
1089
- `),process.exit(1)}function Uv(){let r=new Mv(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 Jv(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function Kv(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var Jd="0.14.9";function Kd(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1090
- ${e}`),process.exit(1))}async function Wv(){let r=Pa(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${Jd}`),process.exit(0)),r.help&&(Oa(),process.exit(0)),r.subcommand==="logs"){await Wf(r.file||void 0,{follow:r.follow,lines:r.lines});return}if(r.subcommand==="wait"){await Vf(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec??1800});return}if(r.subcommand==="stop"){r.stopScope?await Hf(r.stopScope):await Yf(r.file||void 0);return}if(r.subcommand==="skill"){await Uf(Jd);return}if(r.subcommand==="models"){await Ff(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await Mf();return}df(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${Ar().join(", ")}.`),process.exit(1));let l=await Go(process.cwd(),r.agentTarget);if(l){console.log(`Mirror '${r.agentTarget}' is already running for this project:
1091
- ${l.url}`),r.open&&await vt(l.url);return}await qd(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await xf(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await cf(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=we.resolve(r.file);await Wd.access(e).then(()=>!0,()=>!1)||(Ar().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 n=r.file&&r.file!=="."?r.file:we.relative(process.cwd(),e)||we.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Sf(e,s);return}let i=!r.noTrust&&We(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 se(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 Aa(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${we.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await vf(e,a);return}let c=we.dirname(e);if(r.subcommand==="call"){Kd(r.trust,s),await Ud(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)){Kd(r.trust,s),await jd(e,r.watch,r.mode,a,c);return}await sd(e,r,s,a,c)}Wv().catch(r=>{console.error("Error:",r.message),process.exit(1)});
1128
+ </html>`}async function Kd(r){let e=process.cwd(),t=un(process.pid),s=r.watch?new qv:void 0,n=de(r.mode),i=await Promise.resolve().then(()=>(Ud(),jd));Le(n,Y.join(e,"mirror"));let o=Y.dirname(Bv(import.meta.url)),a=Y.join(o,"agents","claude"),c=Y.join(o,"..","cli","agents","claude"),l=Y.join(a,"styles.css"),f=Y.join(a,"index.html"),u=()=>ud({name:"Claude Mirror",styles:Jd(l,"utf8"),mountHtml:Jd(f,"utf8"),watch:r.watch}),d=await Rr(r.port),p=await kn({getHtml:u,basePath:e,port:d,reloadEmitter:s,getServerExports:()=>i,trusted:!0,staticAssets:{mount:`${Y.posix.dirname(fa)}/`,dir:a}}),m=`http://localhost:${d}`;await fn({pid:process.pid,port:d,url:m,file:"agent:claude",cwd:e,startedAt:Date.now(),trust:!0,agent:"claude"}),console.log(`
1129
+ Claude Mirror`),console.log(` ${m}`),d!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1130
+ `);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 g of["styles.css","index.html"])Mv(Y.join(c,g),Y.join(a,g))}let y;if(r.watch&&s){let x=Dv(c),g=!1;y=Tn({dir:x?c:a,onChange:async()=>{if(!g){g=!0;try{x&&await h(),console.log(`Mirror rebuilt. Browser reloading...
1131
+ `),s.emit("reload")}catch(b){console.error("Mirror rebuild failed:",b instanceof Error?b.message:b)}finally{g=!1}}}})}r.open&&await wt(m);let k=async()=>{console.log(`
1132
+ Shutting down...`),p.close(),y?.(),t(),await Or(process.pid),process.exit(0)};process.on("SIGINT",k),process.on("SIGTERM",k)}import*as Wd from"path";import{EventEmitter as Fv}from"events";async function Vd(r,e,t,s,n){let i=de(t),o=!1,a=async()=>{let{bulb:c,config:l}=await se(r);o||(Le(i,r,c.server),o=!0),await kr(c.server,n,s,l.dependencies)};if(console.log(`Running ${Wd.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1133
+ `);let c=new Fv;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),En({bulbPath:r,emitter:c})}}import{Console as jv}from"node:console";fe();Er();async function Yd(r,e,t,s,n){Yv();try{let p=L(r),m=(await $()).find(h=>L(h.file)===p);m&&ln(m.pid,ue(m.pid).offset)}catch{}let i=de(t),{bulb:o,config:a}=await se(r);o.server||In("This bulb has no **server.ts** block; nothing to call."),Le(i,r,o.server);let c;try{c=await kr(o.server,n,s,a.dependencies)}catch(p){In(p instanceof Error?p.message:String(p))}let l=Sn(c,e.fn);if(!l){let p=[...Object.keys(c).filter(m=>typeof c[m]=="function"),...Object.keys(aa)];In(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await Uv(e),u;try{u=await l(...f)}catch(p){In(p instanceof Error?p.stack??p.message:String(p))}let d=Wv(u);d!==void 0&&await Hv(d+`
1134
+ `),process.exit(0)}async function Uv(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await Gv()),Kv(e)}return Jv(r.positional)}function Jv(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function Kv(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 Wv(r){if(r!==void 0)return JSON.stringify(r,Vv,2)}function Vv(r,e){return typeof e=="bigint"?e.toString():e}function In(r){process.stderr.write(r+`
1135
+ `),process.exit(1)}function Yv(){let r=new jv(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 Hv(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 xa="0.15.0";function Hd(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1136
+ ${e}`),process.exit(1))}async function zv(){let r=Ra(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${xa}`),process.exit(0)),r.help&&(Ia(),process.exit(0)),r.subcommand==="logs"){await Gf(r.file||void 0,{follow:r.follow,clear:r.clear,lines:r.lines});return}if(r.subcommand==="wait"){await zf(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec??1800});return}if(r.subcommand==="stop"){r.stopScope?await Xf(r.stopScope):await Qf(r.file||void 0);return}if(r.subcommand==="send"){await ed(r.file,r.sendMessage);return}if(r.subcommand==="skill"){await Vf(xa);return}if(r.subcommand==="models"){await Kf(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await Ff(xa);return}gf(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${Ar().join(", ")}.`),process.exit(1));let l=await Qo(process.cwd(),r.agentTarget);if(l){console.log(`Mirror '${r.agentTarget}' is already running for this project:
1137
+ ${l.url}`),r.open&&await wt(l.url);return}await Kd(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Af(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await df(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=we.resolve(r.file);await Gd.access(e).then(()=>!0,()=>!1)||(Ar().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:we.relative(process.cwd(),e)||we.basename(e),n=`npx typebulb --trust ${s.includes(" ")?`"${s}"`:s}`;if(r.subcommand==="predict"){await Tf(e,n);return}let i=!r.noTrust&&Ke(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 se(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 Na(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${we.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await Ef(e,a);return}let c=we.dirname(e);if(r.subcommand==="call"){Hd(r.trust,n),await Yd(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)){Hd(r.trust,n),await Vd(e,r.watch,r.mode,a,c);return}await ld(e,r,n,a,c)}zv().catch(r=>{console.error("Error:",r.message),process.exit(1)});