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/README.md +16 -4
- package/dist/agents/claude/client.js +33 -12
- package/dist/dts/tbTypings.d.ts +2 -2
- package/dist/dts/tbTypings.d.ts.map +1 -1
- package/dist/dts/tbTypings.js +20 -3
- package/dist/dts/tbTypings.js.map +1 -1
- package/dist/index.js +254 -208
- package/dist/render.js +33 -12
- package/package.json +1 -1
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
|
|
4
|
-
`),t=0;if(e[t]?.trim()!=="---")return null;t++;let
|
|
5
|
-
`))}else t++}return{frontmatter:
|
|
6
|
-
>/]`,i);if(
|
|
7
|
-
>]`),h+=
|
|
8
|
-
`)}};
|
|
9
|
-
`)?
|
|
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
|
-
`+
|
|
12
|
-
`)t===
|
|
13
|
-
`&&p!==" "){let
|
|
14
|
-
`&&
|
|
15
|
-
${e}${r.slice(0,
|
|
16
|
-
${e}${r.slice(
|
|
17
|
-
`);
|
|
18
|
-
`){if(i-o>
|
|
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,
|
|
22
|
-
`)||/[ \t]\n|\n[ \t]/.test(r))return
|
|
23
|
-
${t}`)+"'";return e.implicitKey?
|
|
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{
|
|
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
|
|
29
|
-
`&&
|
|
30
|
-
`);
|
|
31
|
-
`&&(p=p.slice(0,-1)),p=p.replace(
|
|
32
|
-
`)k=y;else break}let
|
|
33
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),
|
|
34
|
-
${l}${
|
|
35
|
-
${l}${
|
|
36
|
-
`)||f&&/[[\]{},]/.test(i))return
|
|
37
|
-
`)?
|
|
38
|
-
`))return
|
|
39
|
-
${c}`);if(o){let d=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:
|
|
40
|
-
${e.indent}${a}`:a}
|
|
41
|
-
${a}:`):(y=`${y}:`,d&&(y+=
|
|
42
|
-
`:"",
|
|
43
|
-
${
|
|
44
|
-
`&&
|
|
45
|
-
|
|
46
|
-
`):
|
|
47
|
-
${t.indent}`}else if(!p&&
|
|
48
|
-
`),
|
|
49
|
-
${t.indent}`)}}else(
|
|
50
|
-
`)&&(
|
|
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
|
-
`+
|
|
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
|
|
55
|
-
${i}${
|
|
56
|
-
`;return`${
|
|
57
|
-
${
|
|
58
|
-
`:" ")}return
|
|
59
|
-
${
|
|
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(
|
|
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
|
-
`}
|
|
64
|
-
`),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===
|
|
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
|
-
`}};
|
|
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(
|
|
70
|
-
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||
|
|
71
|
-
`+
|
|
72
|
-
`+
|
|
73
|
-
`+T:
|
|
74
|
-
`+
|
|
75
|
-
`+y.comment:l.comment=y.comment),l.range=[
|
|
76
|
-
`.repeat(Math.max(1,o.length-1)):"",y=n
|
|
77
|
-
`;for(let h=f;h<a;++h){let[y,k]=o[h];l+=y.length+k.length+1;let
|
|
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(
|
|
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
|
|
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
|
|
93
|
-
`?
|
|
94
|
-
`:(
|
|
95
|
-
`))if(
|
|
96
|
-
`){let{fold:i,offset:o}=
|
|
97
|
-
`)for(i=r[
|
|
98
|
-
`)for(i=r[++
|
|
99
|
-
`&&!(o==="\r"&&r[
|
|
100
|
-
`)&&(t+=
|
|
101
|
-
`||
|
|
102
|
-
`);)
|
|
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,
|
|
105
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
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,
|
|
109
|
-
${
|
|
110
|
-
${a}`:
|
|
111
|
-
${o}`:
|
|
112
|
-
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new
|
|
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:
|
|
116
|
-
`}),{type:"block-scalar",offset:i,indent:
|
|
117
|
-
`),
|
|
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=
|
|
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:
|
|
120
|
-
`};delete r.items,Object.assign(r,{type:t,source:e,end:[
|
|
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=
|
|
123
|
-
`:case"\r":case" ":return!0;default:return!1}}var
|
|
124
|
-
\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=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
|
|
127
|
-
`||!
|
|
128
|
-
`||
|
|
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]===
|
|
130
|
-
`,this.pos);if(
|
|
131
|
-
`,i)}
|
|
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(!
|
|
134
|
-
`,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let
|
|
135
|
-
`;)
|
|
136
|
-
`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield
|
|
137
|
-
`?(
|
|
138
|
-
`,i=this.buffer[
|
|
139
|
-
`){let o=this.continueScalar(
|
|
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,
|
|
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
|
|
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=
|
|
146
|
-
`),t=e.trim();if(
|
|
147
|
-
`).length}];let
|
|
148
|
-
`),
|
|
149
|
-
`).trim();l&&
|
|
150
|
-
\u2026[${r.length-
|
|
151
|
-
`):r==null?"":
|
|
152
|
-
`))>=0;){let c=r.partial.slice(0,
|
|
153
|
-
`),o=
|
|
154
|
-
`)){if(!p.includes(`"${f}"`))continue;let
|
|
155
|
-
`)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||
|
|
156
|
-
`)){if(!i)continue;let o;try{o=JSON.parse(i)}catch{continue}if(!o||
|
|
157
|
-
`)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}
|
|
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?``:""}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;`,
|
|
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;`,
|
|
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=
|
|
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 }>;`,
|
|
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
|
-
}>>;`,
|
|
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';`,
|
|
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
|
|
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
|
-
};`,
|
|
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
|
-
};`,
|
|
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>;`,
|
|
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>>;`,
|
|
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: {${
|
|
454
|
+
declare const tb: {${Uu}${nb}${Ju}${ob}${ib}${Ku}${Yu}${Wu}${rb}${Vu}
|
|
431
455
|
};
|
|
432
|
-
|
|
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: {${
|
|
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(
|
|
441
|
-
`,"utf8")}async function
|
|
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
|
-
//
|
|
639
|
-
|
|
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
|
|
697
|
+
`;function Ys(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}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
|
|
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
|
|
691
|
-
html, body { height: 100%; }`,
|
|
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>${
|
|
697
|
-
${
|
|
742
|
+
<title>${Ys(e)} - typebulb</title>
|
|
743
|
+
${Gs(e,c)}
|
|
698
744
|
<script type="importmap">
|
|
699
|
-
${JSON.stringify(
|
|
745
|
+
${JSON.stringify(p,null,2)}
|
|
700
746
|
</script>
|
|
701
747
|
<style>
|
|
702
|
-
${
|
|
748
|
+
${Hs}${u}
|
|
703
749
|
</style>
|
|
704
750
|
<style>
|
|
705
|
-
${
|
|
751
|
+
${s}
|
|
706
752
|
</style>
|
|
707
753
|
</head>
|
|
708
754
|
<body>
|
|
709
|
-
${
|
|
755
|
+
${f}
|
|
710
756
|
|
|
711
|
-
${i.length>0?`<script>window.__TB_DATA__ = ${
|
|
712
|
-
${o?`<script>window.__TB_INSIGHT__ = ${
|
|
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
|
-
${
|
|
761
|
+
${af}
|
|
717
762
|
</script>
|
|
718
763
|
|
|
719
|
-
${
|
|
764
|
+
${vb}
|
|
720
765
|
|
|
721
766
|
<script type="module">
|
|
722
|
-
${
|
|
767
|
+
${d(t)}
|
|
723
768
|
globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
|
|
724
769
|
</script>
|
|
725
770
|
</body>
|
|
726
|
-
</html>`}var
|
|
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
|
|
823
|
-
`,"utf8"),await
|
|
824
|
-
`,"utf8"),{dir:e}}function
|
|
825
|
-
`);for(let i=0;i<
|
|
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
|
|
980
|
-
`))console.log(`${e} ${
|
|
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: ${
|
|
1027
|
+
description: ${fw(Zo(),"utf8").trim().replace(/\s+/g," ")}
|
|
983
1028
|
version: ${r}
|
|
984
|
-
---`}function
|
|
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
|
-
${
|
|
1031
|
+
${mw(e)}
|
|
987
1032
|
|
|
988
1033
|
${r.trim()}
|
|
989
|
-
`}async function
|
|
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
|
|
992
|
-
`)){let t=e.trim();if(!t||t.startsWith("#"))continue;let
|
|
993
|
-
`)}async function
|
|
994
|
-
`+e)}function
|
|
995
|
-
`);i.length&&i[i.length-1]===""&&i.pop(),
|
|
996
|
-
`)}if(process.stdout.write(
|
|
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=
|
|
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 ${
|
|
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
|
|
1002
|
-
`)),!t&&
|
|
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
|
|
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:
|
|
1007
|
-
`),c={contents:o.map(l=>({role:l.role==="assistant"?"model":"user",parts:[{text:l.content}]}))};return
|
|
1008
|
-
`)[0],type:
|
|
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
|
|
1013
|
-
`).trim();if(!
|
|
1014
|
-
${
|
|
1015
|
-
${
|
|
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
|
|
1020
|
-
`)}catch(
|
|
1021
|
-
`),a.emit("reload")}})}}e.open&&
|
|
1022
|
-
|
|
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
|
|
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>${
|
|
1063
|
-
${
|
|
1108
|
+
<title>${Ys(e)} - typebulb</title>
|
|
1109
|
+
${Gs(e,i)}
|
|
1064
1110
|
<style>
|
|
1065
|
-
${
|
|
1111
|
+
${Hs}
|
|
1066
1112
|
</style>
|
|
1067
1113
|
<style>
|
|
1068
1114
|
${t}
|
|
1069
1115
|
</style>
|
|
1070
1116
|
</head>
|
|
1071
1117
|
<body>
|
|
1072
|
-
${
|
|
1118
|
+
${s}
|
|
1073
1119
|
|
|
1074
|
-
${
|
|
1120
|
+
${n?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
|
|
1075
1121
|
|
|
1076
1122
|
<script>
|
|
1077
|
-
${
|
|
1123
|
+
${Bw}
|
|
1078
1124
|
</script>
|
|
1079
1125
|
|
|
1080
|
-
<script type="module" src="${
|
|
1126
|
+
<script type="module" src="${fa}"></script>
|
|
1081
1127
|
</body>
|
|
1082
|
-
</html>`}async function
|
|
1083
|
-
Claude Mirror`),console.log(` ${
|
|
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
|
|
1085
|
-
`),
|
|
1086
|
-
Shutting down...`),p.close(),y?.(),t(),await Or(process.pid),process.exit(0)};process.on("SIGINT",k),process.on("SIGTERM",k)}import*as
|
|
1087
|
-
`);let c=new
|
|
1088
|
-
`),process.exit(0)}async function
|
|
1089
|
-
`),process.exit(1)}function
|
|
1090
|
-
${e}`),process.exit(1))}async function
|
|
1091
|
-
${l.url}`),r.open&&await
|
|
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)});
|