typebulb 0.51.0 → 0.51.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +2 -2
- package/dist/index.js +207 -207
- package/dist/servers.js +94 -94
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
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 r=[];for(;t<e.length&&e[t]?.trim()!=="---";)r.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=
|
|
5
|
-
`)),o.set(u,m),l=t}else t++}return{frontmatter:s,files:i,warnings:a,bodyEndLine:l,starts:o}}catch{return null}}function
|
|
3
|
+
var Ww=Object.create;var Ea=Object.defineProperty;var Yw=Object.getOwnPropertyDescriptor;var Vw=Object.getOwnPropertyNames;var zw=Object.getPrototypeOf,Gw=Object.prototype.hasOwnProperty;var Rs=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var v=(n,e)=>()=>(n&&(e=n(n=0)),e);var O=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Aa=(n,e)=>{for(var t in e)Ea(n,t,{get:e[t],enumerable:!0})},Xw=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Vw(e))!Gw.call(n,s)&&s!==t&&Ea(n,s,{get:()=>e[s],enumerable:!(r=Yw(e,s))||r.enumerable});return n};var Qw=(n,e,t)=>(t=n!=null?Ww(zw(n)):{},Xw(e||!n||!n.__esModule?Ea(t,"default",{value:n,enumerable:!0}):t,n));import*as qd from"fs/promises";import{existsSync as pn,readFileSync as Zw}from"fs";import*as re from"path";import{pathToFileURL as ev}from"url";import{resolve as Oa}from"resolve.exports";import{init as Jd,parse as Kd}from"es-module-lexer";function Hd(n,e){let t=re.join(n,"package.json");try{return JSON.parse(Zw(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}function Wd(n){let e=n.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${n}')`);let t=n.slice(0,e).trim(),r=n.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${n}')`);if(!r)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:re.resolve(r)}}async function Yd(n){let{name:e,dir:t}=n;if(!pn(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let r=Hd(t,e),s=tv(r,e),i=re.resolve(t,s);if(!pn(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=re.dirname(i),a=`/local/${e}/${re.basename(i)}`,l=nv(r,t);return await rv(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:l}}function tv(n,e){if(n.exports!==void 0){let r;try{r=Oa(n,".",{browser:!0,conditions:Ta})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ta.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Pa(r);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ta.join(", ")}); too complex to override.`);return s}let t=n.module??n.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function nv(n,e){if(n.exports!==void 0)try{let r=Oa(n,".",{conditions:["types"]}),s=Pa(r);if(s){let i=re.resolve(e,s);if(pn(i))return i}}catch{}let t=n.types??n.typings;if(t){let r=re.resolve(e,t);if(pn(r))return r}}function Pa(n){if(typeof n=="string")return n;if(Array.isArray(n))return n.find(e=>typeof e=="string")}async function rv(n,e,t){await Jd;let r=re.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await qd.readFile(o,"utf8")}catch{continue}let l,c;try{[l,,,c]=Kd(a,o)}catch{continue}if(o===e&&!c)throw new Error(`override package '${n}' 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 d of l){if(d.d===-2)continue;let u=d.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let f=sv(o,u,r);f&&!s.has(f)&&i.push(f);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${n} externalizes '${u}'`)}}}}function sv(n,e,t){let r=e.replace(/[?#].*$/,""),s=re.resolve(re.dirname(n),r),i=[s,s+".js",s+".mjs",re.join(s,"index.js"),re.join(s,"index.mjs")];for(let o of i)if(re.normalize(o).startsWith(t)&&pn(o))return o}function iv(n,e,t){let r=Hd(n,e),s;if(r.exports!==void 0)try{s=Pa(Oa(r,t,{conditions:Ud}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Ud.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=r.main??r.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=re.resolve(n,s);if(!pn(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return ev(i).href}async function Vd(n,e){await Jd;let t;try{[t]=Kd(n)}catch{return n}let r="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),l=iv(e.dir,e.name,a);r+=n.slice(s,i.s)+l,s=i.e}return r+n.slice(s)}var Ta,Ud,_s=v(()=>{"use strict";Ta=["browser","import","default"],Ud=["node","import","default"]});function zd(n){return _e.find(e=>le[e].path===n)}function Xd(n){return!!n?.startsWith("typebulb")}var le,_e,Gd,Ns=v(()=>{le={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"}},_e=["code","css","html","data","infer","insight","config","notes"];Gd="typebulb/v1"});function Ca(n){return/[:\n"']/.test(n)||n.startsWith(" ")||n.endsWith(" ")?`"${n.replace(/"/g,'\\"')}"`:n}function Ra(n){return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1).replace(/\\"/g,'"'):n.startsWith("'")&&n.endsWith("'")?n.slice(1,-1):n}var Is=v(()=>{});function ue(n){try{let e=n.split(`
|
|
4
|
+
`),t=0;if(e[t]?.trim()!=="---")return null;t++;let r=[];for(;t<e.length&&e[t]?.trim()!=="---";)r.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=cv(r);if(!s)return null;let i=new Map,o=new Map,a=[],l=t;for(;t<e.length;){let d=e[t]?.trim()?.match(Qd);if(d){let u=d[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let f=e[t]?.match($s);if(!f){a.push(`**${u}** has no code fence \u2014 block skipped`);continue}let p=f[1];t++;let m=t+1,h=[],b=_a(p);for(;t<e.length&&!e[t]?.match(b);)h.push(e[t]),t++;let A=t<e.length;t++,a.push(...av(u,h,A)),i.set(u,h.join(`
|
|
5
|
+
`)),o.set(u,m),l=t}else t++}return{frontmatter:s,files:i,warnings:a,bodyEndLine:l,starts:o}}catch{return null}}function av(n,e,t){let r=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Qd);i&&ov.has(i[1].trim())&&lv(e,s)&&r.push(i[1].trim())}return r.length?r.map(s=>`**${n}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${n}** block has an unterminated code fence (it runs to the end of the file).`]}function lv(n,e){let t=e+1;for(;t<n.length&&n[t]?.trim()==="";)t++;return!!n[t]?.match($s)}function cv(n){let e={};for(let t of n){let r=t.indexOf(":");if(r===-1)continue;let s=t.slice(0,r).trim(),i=t.slice(r+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=Ra(i);break}}return!Xd(e.format)||!e.name?null:e}function Zd(n){return ue(n)?.warnings??[]}function ef(n){let e=Object.fromEntries(_e.map(t=>[t,n.files.get(le[t].path)||""]));return{name:n.frontmatter.name,...e}}var Qd,$s,ov,_a,Na=v(()=>{Ns();Is();Qd=/^\*\*(.+)\*\*$/,$s=/^(`{3,})(\w*)\s*$/,ov=new Set(_e.map(n=>le[n].path)),_a=n=>new RegExp(`^${n}\\s*$`)});function tf(n){let e=n.match(/^`{3,}/gm),t=e?Math.max(...e.map(r=>r.length)):0;return"`".repeat(Math.max(3,t+1))}function nf(n,e){let{path:t}=le[n],r=t.split(".").pop(),s=tf(e);return`**${t}**
|
|
6
6
|
|
|
7
7
|
${s}${r}
|
|
8
8
|
${e}
|
|
9
|
-
${s}`}function
|
|
10
|
-
`)}function
|
|
11
|
-
`),s=
|
|
9
|
+
${s}`}function rf(n){let e=_e.filter(t=>n[t]).map(t=>nf(t,n[t]));return["---",`format: ${Gd}`,`name: ${Ca(n.name)}`,"---","",...e].join(`
|
|
10
|
+
`)}function sf(n,e){for(let t=0;t<n.length;t++){if(n[t]?.trim()!==`**${e}**`)continue;let r=t+1;for(;r<n.length&&n[r]?.trim()==="";)r++;let s=n[r]?.match($s);if(!s)continue;let i=_a(s[1]),o=r+1;for(;o<n.length&&!n[o]?.match(i);)o++;return o>=n.length?"unterminated":{header:t,open:r,close:o,fence:s[1],lang:s[2]}}return null}function sr(n,e,t){let r=n.split(`
|
|
11
|
+
`),s=sf(r,le[e].path);if(s==="unterminated")return n;if(!s)return`${n.replace(/\s*$/,"")}
|
|
12
12
|
|
|
13
|
-
${
|
|
14
|
-
`;let i=
|
|
13
|
+
${nf(e,t)}
|
|
14
|
+
`;let i=tf(t),o=i.length>s.fence.length?i:s.fence;return[...r.slice(0,s.open),o+s.lang,...t.split(`
|
|
15
15
|
`),o,...r.slice(s.close+1)].join(`
|
|
16
|
-
`)}function
|
|
17
|
-
`),r=
|
|
16
|
+
`)}function of(n,e){let t=n.split(`
|
|
17
|
+
`),r=sf(t,le[e].path);if(!r||r==="unterminated")return n;let s=r.close+1;for(;s<t.length&&t[s]?.trim()==="";)s++;return[...t.slice(0,r.header),...t.slice(s)].join(`
|
|
18
18
|
`).replace(/\s*$/,"")+`
|
|
19
|
-
`}var
|
|
20
|
-
>/]`,i);if(r&&console.log("[xml-utils] start:",o),o===-1)return;let a=n.slice(o+e.length),l=or(a,"^[^<]*[ /]>",0),c=l!==-1&&a[l-1]==="/";if(r&&console.log("[xml-utils] selfClosing:",c),c===!1)if(s){let p=0,m=1,h=0;for(;(l=or(a,"[ /]"+e+">",p))!==-1;){let b=a.substring(p,l+1);if(m+=
|
|
21
|
-
>]`),h+=
|
|
22
|
-
`)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};
|
|
23
|
-
`)?
|
|
19
|
+
`}var af=v(()=>{Ns();Na();Is()});function ir(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function cf(n){switch(lf(n)){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";case".svg":return"image/svg+xml";case".png":return"image/png";case".jpg":case".jpeg":return"image/jpeg";case".gif":return"image/gif";case".webp":return"image/webp";case".avif":return"image/avif";case".ico":return"image/x-icon";case".mp3":return"audio/mpeg";case".wav":return"audio/wav";case".ogg":return"audio/ogg";case".m4a":return"audio/mp4";case".mp4":return"video/mp4";case".webm":return"video/webm";case".woff2":return"font/woff2";case".ttf":return"font/ttf";case".css":return"text/css";case".txt":return"text/plain; charset=utf-8";default:return"application/octet-stream"}}function uf(n){let e=lf(n);return e!==void 0&&dv.has(e)?e:void 0}function pv(n){return n.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^#{1,6}\s+/gm,"")}function Ia(n){let e=ir(n??"").description?.trim();if(!e)return fv;let t=pv(e);return(t.length>200?t.slice(0,197)+"...":t).replace(/\n/g," ")}var uv,Ls,lf,dv,fv,df=v(()=>{uv="https://assets.typebulb.com",Ls=(n,e)=>`${uv}/u/${encodeURIComponent(n)}/${encodeURIComponent(e)}/`,lf=n=>/\.[^./\\]+$/.exec(n)?.[0]?.toLowerCase();dv=new Set([".html",".htm",".xhtml",".js",".mjs",".cjs",".ts",".tsx",".css"]);fv="A Typebulb bulb."});var ff=v(()=>{});function $a(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index:-1}var pf=v(()=>{});function or(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index+s[0].length-1:-1}var hf=v(()=>{});function Ms(n,e){let t=new RegExp(e,"g"),r=n.match(t);return r?r.length:0}var mf=v(()=>{});function ar(n,e,t){let r=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;r&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=$a(n,`<${e}[
|
|
20
|
+
>/]`,i);if(r&&console.log("[xml-utils] start:",o),o===-1)return;let a=n.slice(o+e.length),l=or(a,"^[^<]*[ /]>",0),c=l!==-1&&a[l-1]==="/";if(r&&console.log("[xml-utils] selfClosing:",c),c===!1)if(s){let p=0,m=1,h=0;for(;(l=or(a,"[ /]"+e+">",p))!==-1;){let b=a.substring(p,l+1);if(m+=Ms(b,"<"+e+`[
|
|
21
|
+
>]`),h+=Ms(b,"</"+e+">"),h>=m)break;p=l}}else l=or(a,"[ /]"+e+">",0);let d=o+e.length+l+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;let u=n.slice(o,d),f;return c?f=null:f=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:f,outer:u,start:o,end:d}}var La=v(()=>{pf();hf();mf()});var Ma=v(()=>{La()});var Ba=v(()=>{Ma()});var gf=v(()=>{Ba()});var yf=v(()=>{});var bf=v(()=>{ff();La();Ma();gf();Ba();yf()});var U=O(ce=>{"use strict";var Da=Symbol.for("yaml.alias"),wf=Symbol.for("yaml.document"),Bs=Symbol.for("yaml.map"),vf=Symbol.for("yaml.pair"),ja=Symbol.for("yaml.scalar"),Ds=Symbol.for("yaml.seq"),Xe=Symbol.for("yaml.node.type"),gv=n=>!!n&&typeof n=="object"&&n[Xe]===Da,yv=n=>!!n&&typeof n=="object"&&n[Xe]===wf,bv=n=>!!n&&typeof n=="object"&&n[Xe]===Bs,wv=n=>!!n&&typeof n=="object"&&n[Xe]===vf,Sf=n=>!!n&&typeof n=="object"&&n[Xe]===ja,vv=n=>!!n&&typeof n=="object"&&n[Xe]===Ds;function kf(n){if(n&&typeof n=="object")switch(n[Xe]){case Bs:case Ds:return!0}return!1}function Sv(n){if(n&&typeof n=="object")switch(n[Xe]){case Da:case Bs:case ja:case Ds:return!0}return!1}var kv=n=>(Sf(n)||kf(n))&&!!n.anchor;ce.ALIAS=Da;ce.DOC=wf;ce.MAP=Bs;ce.NODE_TYPE=Xe;ce.PAIR=vf;ce.SCALAR=ja;ce.SEQ=Ds;ce.hasAnchor=kv;ce.isAlias=gv;ce.isCollection=kf;ce.isDocument=yv;ce.isMap=bv;ce.isNode=Sv;ce.isPair=wv;ce.isScalar=Sf;ce.isSeq=vv});var lr=O(Fa=>{"use strict";var se=U(),me=Symbol("break visit"),xf=Symbol("skip children"),Ke=Symbol("remove node");function js(n,e){let t=Ef(e);se.isDocument(n)?hn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):hn(null,n,t,Object.freeze([]))}js.BREAK=me;js.SKIP=xf;js.REMOVE=Ke;function hn(n,e,t,r){let s=Af(n,e,t,r);if(se.isNode(s)||se.isPair(s))return Tf(n,r,s),hn(n,s,t,r);if(typeof s!="symbol"){if(se.isCollection(e)){r=Object.freeze(r.concat(e));for(let i=0;i<e.items.length;++i){let o=hn(i,e.items[i],t,r);if(typeof o=="number")i=o-1;else{if(o===me)return me;o===Ke&&(e.items.splice(i,1),i-=1)}}}else if(se.isPair(e)){r=Object.freeze(r.concat(e));let i=hn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=hn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}async function Fs(n,e){let t=Ef(e);se.isDocument(n)?await mn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):await mn(null,n,t,Object.freeze([]))}Fs.BREAK=me;Fs.SKIP=xf;Fs.REMOVE=Ke;async function mn(n,e,t,r){let s=await Af(n,e,t,r);if(se.isNode(s)||se.isPair(s))return Tf(n,r,s),mn(n,s,t,r);if(typeof s!="symbol"){if(se.isCollection(e)){r=Object.freeze(r.concat(e));for(let i=0;i<e.items.length;++i){let o=await mn(i,e.items[i],t,r);if(typeof o=="number")i=o-1;else{if(o===me)return me;o===Ke&&(e.items.splice(i,1),i-=1)}}}else if(se.isPair(e)){r=Object.freeze(r.concat(e));let i=await mn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=await mn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}function Ef(n){return typeof n=="object"&&(n.Collection||n.Node||n.Value)?Object.assign({Alias:n.Node,Map:n.Node,Scalar:n.Node,Seq:n.Node},n.Value&&{Map:n.Value,Scalar:n.Value,Seq:n.Value},n.Collection&&{Map:n.Collection,Seq:n.Collection},n):n}function Af(n,e,t,r){if(typeof t=="function")return t(n,e,r);if(se.isMap(e))return t.Map?.(n,e,r);if(se.isSeq(e))return t.Seq?.(n,e,r);if(se.isPair(e))return t.Pair?.(n,e,r);if(se.isScalar(e))return t.Scalar?.(n,e,r);if(se.isAlias(e))return t.Alias?.(n,e,r)}function Tf(n,e,t){let r=e[e.length-1];if(se.isCollection(r))r.items[n]=t;else if(se.isPair(r))n==="key"?r.key=t:r.value=t;else if(se.isDocument(r))r.contents=t;else{let s=se.isAlias(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Fa.visit=js;Fa.visitAsync=Fs});var Ua=O(Pf=>{"use strict";var Of=U(),xv=lr(),Ev={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Av=n=>n.replace(/[!,[\]{}]/g,e=>Ev[e]),cr=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let r=e.trim().split(/[ \t]+/),s=r.shift();switch(s){case"%TAG":{if(r.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[i,o]=r;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=r;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,r,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[r];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return r==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,r]of Object.entries(this.tags))if(e.startsWith(r))return t+Av(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),s;if(e&&r.length>0&&Of.isNode(e.contents)){let i={};xv.visit(e.contents,(o,a)=>{Of.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of r)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
|
|
22
|
+
`)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};Pf.Directives=cr});var Us=O(ur=>{"use strict";var Cf=U(),Tv=lr();function Ov(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function Rf(n){let e=new Set;return Tv.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function _f(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function Pv(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Rf(n));let o=_f(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&(Cf.isScalar(o.node)||Cf.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:r}}ur.anchorIsValid=Ov;ur.anchorNames=Rf;ur.createNodeAnchors=Pv;ur.findNewAnchor=_f});var qa=O(Nf=>{"use strict";function dr(n,e,t,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let s=0,i=r.length;s<i;++s){let o=r[s],a=dr(n,r,String(s),o);a===void 0?delete r[s]:a!==o&&(r[s]=a)}else if(r instanceof Map)for(let s of Array.from(r.keys())){let i=r.get(s),o=dr(n,r,s,i);o===void 0?r.delete(s):o!==i&&r.set(s,o)}else if(r instanceof Set)for(let s of Array.from(r)){let i=dr(n,r,s,s);i===void 0?r.delete(s):i!==s&&(r.delete(s),r.add(i))}else for(let[s,i]of Object.entries(r)){let o=dr(n,r,s,i);o===void 0?delete r[s]:o!==i&&(r[s]=o)}return n.call(e,t,r)}Nf.applyReviver=dr});var dt=O($f=>{"use strict";var Cv=U();function If(n,e,t){if(Array.isArray(n))return n.map((r,s)=>If(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!Cv.hasAnchor(n))return n.toJSON(e,t);let r={aliasCount:0,count:1,res:void 0};t.anchors.set(n,r),t.onCreate=i=>{r.res=i,delete t.onCreate};let s=n.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof n=="bigint"&&!t?.keep?Number(n):n}$f.toJS=If});var qs=O(Mf=>{"use strict";var Rv=qa(),Lf=U(),_v=dt(),Ja=class{constructor(e){Object.defineProperty(this,Lf.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:r,onAnchor:s,reviver:i}={}){if(!Lf.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 r=="number"?r:100},a=_v.toJS(this,"",o);if(typeof s=="function")for(let{count:l,res:c}of o.anchors.values())s(c,l);return typeof i=="function"?Rv.applyReviver(i,{"":a},"",a):a}};Mf.NodeBase=Ja});var fr=O(Bf=>{"use strict";var Nv=Us(),Iv=lr(),gn=U(),$v=qs(),Lv=dt(),Ka=class extends $v.NodeBase{constructor(e){super(gn.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let r;t?.aliasResolveCache?r=t.aliasResolveCache:(r=[],Iv.visit(e,{Node:(i,o)=>{(gn.isAlias(o)||gn.hasAnchor(o))&&r.push(o)}}),t&&(t.aliasResolveCache=r));let s;for(let i of r){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:r,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Lv.toJS(o,null,t),a=r.get(o)),a?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=Js(s,o,r)),a.count*a.aliasCount>i)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,t,r){let s=`*${this.source}`;if(e){if(Nv.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function Js(n,e,t){if(gn.isAlias(e)){let r=e.resolve(n),s=t&&r&&t.get(r);return s?s.count*s.aliasCount:0}else if(gn.isCollection(e)){let r=0;for(let s of e.items){let i=Js(n,s,t);i>r&&(r=i)}return r}else if(gn.isPair(e)){let r=Js(n,e.key,t),s=Js(n,e.value,t);return Math.max(r,s)}return 1}Bf.Alias=Ka});var te=O(Ha=>{"use strict";var Mv=U(),Bv=qs(),Dv=dt(),jv=n=>!n||typeof n!="function"&&typeof n!="object",ft=class extends Bv.NodeBase{constructor(e){super(Mv.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Dv.toJS(this.value,e,t)}toString(){return String(this.value)}};ft.BLOCK_FOLDED="BLOCK_FOLDED";ft.BLOCK_LITERAL="BLOCK_LITERAL";ft.PLAIN="PLAIN";ft.QUOTE_DOUBLE="QUOTE_DOUBLE";ft.QUOTE_SINGLE="QUOTE_SINGLE";Ha.Scalar=ft;Ha.isScalarValue=jv});var pr=O(jf=>{"use strict";var Fv=fr(),Ft=U(),Df=te(),Uv="tag:yaml.org,2002:";function qv(n,e,t){if(e){let r=t.filter(i=>i.tag===e),s=r.find(i=>!i.format)??r[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(r=>r.identify?.(n)&&!r.format)}function Jv(n,e,t){if(Ft.isDocument(n)&&(n=n.contents),Ft.isNode(n))return n;if(Ft.isPair(n)){let u=t.schema[Ft.MAP].createNode?.(t.schema,null,t);return u.items.push(n),u}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:r,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,l;if(r&&n&&typeof n=="object"){if(l=a.get(n),l)return l.anchor??(l.anchor=s(n)),new Fv.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=Uv+e.slice(2));let c=qv(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let u=new Df.Scalar(n);return l&&(l.node=u),u}c=n instanceof Map?o[Ft.MAP]:Symbol.iterator in Object(n)?o[Ft.SEQ]:o[Ft.MAP]}i&&(i(c),delete t.onTagObj);let d=c?.createNode?c.createNode(t.schema,n,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,n,t):new Df.Scalar(n);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}jf.createNode=Jv});var Hs=O(Ks=>{"use strict";var Kv=pr(),He=U(),Hv=qs();function Wa(n,e,t){let r=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=r,r=o}else r=new Map([[i,r]])}return Kv.createNode(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var Ff=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Ya=class extends Hv.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(r=>He.isNode(r)||He.isPair(r)?r.clone(e):r),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ff(e))this.add(t);else{let[r,...s]=e,i=this.get(r,!0);if(He.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(r,Wa(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let s=this.get(t,!0);if(He.isCollection(s))return s.deleteIn(r);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...s]=e,i=this.get(r,!0);return s.length===0?!t&&He.isScalar(i)?i.value:i:He.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!He.isPair(t))return!1;let r=t.value;return r==null||e&&He.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let s=this.get(t,!0);return He.isCollection(s)?s.hasIn(r):!1}setIn(e,t){let[r,...s]=e;if(s.length===0)this.set(r,t);else{let i=this.get(r,!0);if(He.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(r,Wa(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};Ks.Collection=Ya;Ks.collectionFromPath=Wa;Ks.isEmptyPath=Ff});var hr=O(Ws=>{"use strict";var Wv=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Va(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var Yv=(n,e,t)=>n.endsWith(`
|
|
23
|
+
`)?Va(t,e):t.includes(`
|
|
24
24
|
`)?`
|
|
25
|
-
`+
|
|
26
|
-
`)t===
|
|
25
|
+
`+Va(t,e):(n.endsWith(" ")?"":" ")+t;Ws.indentComment=Va;Ws.lineComment=Yv;Ws.stringifyComment=Wv});var qf=O(mr=>{"use strict";var Vv="flow",za="block",Ys="quoted";function zv(n,e,t="flow",{indentAtStart:r,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return n;s<i&&(i=0);let l=Math.max(1+i,1+s-e.length);if(n.length<=l)return n;let c=[],d={},u=s-e.length;typeof r=="number"&&(r>s-Math.max(2,i)?c.push(0):u=s-r);let f,p,m=!1,h=-1,b=-1,A=-1;t===za&&(h=Uf(n,h,e.length),h!==-1&&(u=h+l));for(let P;P=n[h+=1];){if(t===Ys&&P==="\\"){switch(b=h,n[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}A=h}if(P===`
|
|
26
|
+
`)t===za&&(h=Uf(n,h,e.length)),u=h+e.length+l,f=void 0;else{if(P===" "&&p&&p!==" "&&p!==`
|
|
27
27
|
`&&p!==" "){let _=n[h+1];_&&_!==" "&&_!==`
|
|
28
|
-
`&&_!==" "&&(f=h)}if(h>=u)if(f)c.push(f),u=f+l,f=void 0;else if(t===
|
|
29
|
-
${e}${n.slice(0,C)}`:(t===
|
|
30
|
-
${e}${n.slice(_+1,C)}`)}return S}function
|
|
31
|
-
`);r=e,s=e+1,i=n[s]}return r}mr.FOLD_BLOCK=
|
|
32
|
-
`){if(i-o>r)return!0;if(o=i+1,s-o<=r)return!1}return!0}function gr(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(
|
|
28
|
+
`&&_!==" "&&(f=h)}if(h>=u)if(f)c.push(f),u=f+l,f=void 0;else if(t===Ys){for(;p===" "||p===" ";)p=P,P=n[h+=1],m=!0;let _=h>A+1?h-2:b-1;if(d[_])return n;c.push(_),d[_]=!0,u=_+l,f=void 0}else m=!0}p=P}if(m&&a&&a(),c.length===0)return n;o&&o();let S=n.slice(0,c[0]);for(let P=0;P<c.length;++P){let _=c[P],C=c[P+1]||n.length;_===0?S=`
|
|
29
|
+
${e}${n.slice(0,C)}`:(t===Ys&&d[_]&&(S+=`${n[_]}\\`),S+=`
|
|
30
|
+
${e}${n.slice(_+1,C)}`)}return S}function Uf(n,e,t){let r=e,s=e+1,i=n[s];for(;i===" "||i===" ";)if(e<s+t)i=n[++e];else{do i=n[++e];while(i&&i!==`
|
|
31
|
+
`);r=e,s=e+1,i=n[s]}return r}mr.FOLD_BLOCK=za;mr.FOLD_FLOW=Vv;mr.FOLD_QUOTED=Ys;mr.foldFlowLines=zv});var yr=O(Jf=>{"use strict";var Ne=te(),pt=qf(),zs=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),Gs=n=>/^(%|---|\.\.\.)/m.test(n);function Gv(n,e,t){if(!e||e<0)return!1;let r=e-t,s=n.length;if(s<=r)return!1;for(let i=0,o=0;i<s;++i)if(n[i]===`
|
|
32
|
+
`){if(i-o>r)return!0;if(o=i+1,s-o<=r)return!1}return!0}function gr(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Gs(n)?" ":""),o="",a=0;for(let l=0,c=t[l];c;c=t[++l])if(c===" "&&t[l+1]==="\\"&&t[l+2]==="n"&&(o+=t.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(t[l+1]){case"u":{o+=t.slice(a,l);let d=t.substr(l+2,4);switch(d){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:d.substr(0,2)==="00"?o+="\\x"+d.substr(2):o+=t.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||t[l+2]==='"'||t.length<s)l+=1;else{for(o+=t.slice(a,l)+`
|
|
33
33
|
|
|
34
34
|
`;t[l+2]==="\\"&&t[l+3]==="n"&&t[l+4]!=='"';)o+=`
|
|
35
|
-
`,l+=2;o+=i,t[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+t.slice(a):t,r?o:pt.foldFlowLines(o,i,pt.FOLD_QUOTED,
|
|
36
|
-
`)||/[ \t]\n|\n[ \t]/.test(n))return gr(n,e);let t=e.indent||(
|
|
37
|
-
${t}`)+"'";return e.implicitKey?r:pt.foldFlowLines(r,t,pt.FOLD_FLOW,
|
|
35
|
+
`,l+=2;o+=i,t[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+t.slice(a):t,r?o:pt.foldFlowLines(o,i,pt.FOLD_QUOTED,zs(e,!1))}function Ga(n,e){if(e.options.singleQuote===!1||e.implicitKey&&n.includes(`
|
|
36
|
+
`)||/[ \t]\n|\n[ \t]/.test(n))return gr(n,e);let t=e.indent||(Gs(n)?" ":""),r="'"+n.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
37
|
+
${t}`)+"'";return e.implicitKey?r:pt.foldFlowLines(r,t,pt.FOLD_FLOW,zs(e,!1))}function yn(n,e){let{singleQuote:t}=e.options,r;if(t===!1)r=gr;else{let s=n.includes('"'),i=n.includes("'");s&&!i?r=Ga:i&&!s?r=gr:r=t?Ga:gr}return r(n,e)}var Xa;try{Xa=new RegExp(`(^|(?<!
|
|
38
38
|
))
|
|
39
39
|
+(?!
|
|
40
|
-
|$)`,"g")}catch{
|
|
40
|
+
|$)`,"g")}catch{Xa=/\n+(?!\n|$)/g}function Vs({comment:n,type:e,value:t},r,s,i){let{blockQuote:o,commentString:a,lineWidth:l}=r.options;if(!o||/\n[\t ]+$/.test(t))return yn(t,r);let c=r.indent||(r.forceBlockIndent||Gs(t)?" ":""),d=o==="literal"?!0:o==="folded"||e===Ne.Scalar.BLOCK_FOLDED?!1:e===Ne.Scalar.BLOCK_LITERAL?!0:!Gv(t,l,c.length);if(!t)return d?`|
|
|
41
41
|
`:`>
|
|
42
42
|
`;let u,f;for(f=t.length;f>0;--f){let C=t[f-1];if(C!==`
|
|
43
43
|
`&&C!==" "&&C!==" ")break}let p=t.substring(f),m=p.indexOf(`
|
|
44
44
|
`);m===-1?u="-":t===p||m!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
|
|
45
|
-
`&&(p=p.slice(0,-1)),p=p.replace(
|
|
45
|
+
`&&(p=p.slice(0,-1)),p=p.replace(Xa,`$&${c}`));let h=!1,b,A=-1;for(b=0;b<t.length;++b){let C=t[b];if(C===" ")h=!0;else if(C===`
|
|
46
46
|
`)A=b;else break}let S=t.substring(0,A<b?A+1:b);S&&(t=t.substring(S.length),S=S.replace(/\n+/g,`$&${c}`));let _=(h?c?"2":"1":"")+u;if(n&&(_+=" "+a(n.replace(/ ?[\r\n]+/g," ")),s&&s()),!d){let C=t.replace(/\n+/g,`
|
|
47
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),R=!1,$=
|
|
47
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),R=!1,$=zs(r,!0);o!=="folded"&&e!==Ne.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{R=!0});let x=pt.foldFlowLines(`${S}${C}${p}`,c,pt.FOLD_BLOCK,$);if(!R)return`>${_}
|
|
48
48
|
${c}${x}`}return t=t.replace(/\n+/g,`$&${c}`),`|${_}
|
|
49
|
-
${c}${S}${t}${p}`}function
|
|
49
|
+
${c}${S}${t}${p}`}function Xv(n,e,t,r){let{type:s,value:i}=n,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=e;if(a&&i.includes(`
|
|
50
50
|
`)||d&&/[[\]{},]/.test(i))return yn(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||d||!i.includes(`
|
|
51
|
-
`)?yn(i,e):
|
|
52
|
-
`))return
|
|
53
|
-
${l}`);if(o){let f=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:m}=e.doc.schema;if(m.some(f)||p?.some(f))return yn(i,e)}return a?u:pt.foldFlowLines(u,l,pt.FOLD_FLOW,
|
|
54
|
-
${e.indent}${a}`:a}
|
|
55
|
-
${a}:`):(b=`${b}:`,f&&(b+=wr.lineComment(b,t.indent,c(f))));let A,S,P;Qe.isNode(e)?(A=!!e.spaceBefore,S=e.commentBefore,P=e.comment):(A=!1,S=null,P=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!f&&Qe.isScalar(e)&&(t.indentAtStart=b.length+1),h=!1,!d&&l.length>=2&&!t.inFlow&&!p&&Qe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let _=!1,C=
|
|
51
|
+
`)?yn(i,e):Vs(n,e,t,r);if(!a&&!d&&s!==Ne.Scalar.PLAIN&&i.includes(`
|
|
52
|
+
`))return Vs(n,e,t,r);if(Gs(i)){if(l==="")return e.forceBlockIndent=!0,Vs(n,e,t,r);if(a&&l===c)return yn(i,e)}let u=i.replace(/\n+/g,`$&
|
|
53
|
+
${l}`);if(o){let f=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:m}=e.doc.schema;if(m.some(f)||p?.some(f))return yn(i,e)}return a?u:pt.foldFlowLines(u,l,pt.FOLD_FLOW,zs(e,!1))}function Qv(n,e,t,r){let{implicitKey:s,inFlow:i}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==Ne.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ne.Scalar.QUOTE_DOUBLE);let l=d=>{switch(d){case Ne.Scalar.BLOCK_FOLDED:case Ne.Scalar.BLOCK_LITERAL:return s||i?yn(o.value,e):Vs(o,e,t,r);case Ne.Scalar.QUOTE_DOUBLE:return gr(o.value,e);case Ne.Scalar.QUOTE_SINGLE:return Ga(o.value,e);case Ne.Scalar.PLAIN:return Xv(o,e,t,r);default:return null}},c=l(a);if(c===null){let{defaultKeyType:d,defaultStringType:u}=e.options,f=s&&d||u;if(c=l(f),c===null)throw new Error(`Unsupported default string type ${f}`)}return c}Jf.stringifyString=Qv});var br=O(Qa=>{"use strict";var Zv=Us(),ht=U(),eS=hr(),tS=yr();function nS(n,e){let t=Object.assign({blockQuote:!0,commentString:eS.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},n.schema.toStringOptions,e),r;switch(t.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:r,options:t}}function rS(n,e){if(e.tag){let s=n.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,r;if(ht.isScalar(e)){r=e.value;let s=n.filter(i=>i.identify?.(r));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else r=e,t=n.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!t){let s=r?.constructor?.name??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return t}function sS(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(ht.isScalar(n)||ht.isCollection(n))&&n.anchor;i&&Zv.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=n.tag??(e.default?null:e.tag);return o&&s.push(r.directives.tagString(o)),s.join(" ")}function iS(n,e,t,r){if(ht.isPair(n))return n.toString(e,t,r);if(ht.isAlias(n)){if(e.doc.directives)return n.toString(e);if(e.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let s,i=ht.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>s=l});s??(s=rS(e.doc.schema.tags,i));let o=sS(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,r):ht.isScalar(i)?tS.stringifyString(i,e,t,r):i.toString(e,t,r);return o?ht.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
54
|
+
${e.indent}${a}`:a}Qa.createStringifyContext=nS;Qa.stringify=iS});var Yf=O(Wf=>{"use strict";var Qe=U(),Kf=te(),Hf=br(),wr=hr();function oS({key:n,value:e},t,r,s){let{allNullValues:i,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=t,f=Qe.isNode(n)&&n.comment||null;if(u){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(Qe.isCollection(n)||!Qe.isNode(n)&&typeof n=="object"){let $="With simple keys, collection cannot be used as a key value";throw new Error($)}}let p=!u&&(!n||f&&e==null&&!t.inFlow||Qe.isCollection(n)||(Qe.isScalar(n)?n.type===Kf.Scalar.BLOCK_FOLDED||n.type===Kf.Scalar.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+l});let m=!1,h=!1,b=Hf.stringify(n,t,()=>m=!0,()=>h=!0);if(!p&&!t.inFlow&&b.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&&r&&r(),b===""?"?":p?`? ${b}`:b}else if(i&&!u||e==null&&p)return b=`? ${b}`,f&&!m?b+=wr.lineComment(b,t.indent,c(f)):h&&s&&s(),b;m&&(f=null),p?(f&&(b+=wr.lineComment(b,t.indent,c(f))),b=`? ${b}
|
|
55
|
+
${a}:`):(b=`${b}:`,f&&(b+=wr.lineComment(b,t.indent,c(f))));let A,S,P;Qe.isNode(e)?(A=!!e.spaceBefore,S=e.commentBefore,P=e.comment):(A=!1,S=null,P=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!f&&Qe.isScalar(e)&&(t.indentAtStart=b.length+1),h=!1,!d&&l.length>=2&&!t.inFlow&&!p&&Qe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let _=!1,C=Hf.stringify(e,t,()=>_=!0,()=>h=!0),R=" ";if(f||A||S){if(R=A?`
|
|
56
56
|
`:"",S){let $=c(S);R+=`
|
|
57
57
|
${wr.indentComment($,t.indent)}`}C===""&&!t.inFlow?R===`
|
|
58
58
|
`&&P&&(R=`
|
|
@@ -61,34 +61,34 @@ ${wr.indentComment($,t.indent)}`}C===""&&!t.inFlow?R===`
|
|
|
61
61
|
${t.indent}`}else if(!p&&Qe.isCollection(e)){let $=C[0],x=C.indexOf(`
|
|
62
62
|
`),D=x!==-1,K=t.inFlow??e.flow??e.items.length===0;if(D||!K){let q=!1;if(D&&($==="&"||$==="!")){let y=C.indexOf(" ");$==="&"&&y!==-1&&y<x&&C[y+1]==="!"&&(y=C.indexOf(" ",y+1)),(y===-1||x<y)&&(q=!0)}q||(R=`
|
|
63
63
|
${t.indent}`)}}else(C===""||C[0]===`
|
|
64
|
-
`)&&(R="");return b+=R+C,t.inFlow?_&&r&&r():P&&!_?b+=wr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}
|
|
64
|
+
`)&&(R="");return b+=R+C,t.inFlow?_&&r&&r():P&&!_?b+=wr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}Wf.stringifyPair=oS});var el=O(Za=>{"use strict";var Vf=Rs("process");function aS(n,...e){n==="debug"&&console.log(...e)}function lS(n,e){(n==="debug"||n==="warn")&&(typeof Vf.emitWarning=="function"?Vf.emitWarning(e):console.warn(e))}Za.debug=aS;Za.warn=lS});var ei=O(Zs=>{"use strict";var vr=U(),zf=te(),Xs="<<",Qs={identify:n=>n===Xs||typeof n=="symbol"&&n.description===Xs,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new zf.Scalar(Symbol(Xs)),{addToJSMap:Gf}),stringify:()=>Xs},cS=(n,e)=>(Qs.identify(e)||vr.isScalar(e)&&(!e.type||e.type===zf.Scalar.PLAIN)&&Qs.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===Qs.tag&&t.default);function Gf(n,e,t){if(t=n&&vr.isAlias(t)?t.resolve(n.doc):t,vr.isSeq(t))for(let r of t.items)tl(n,e,r);else if(Array.isArray(t))for(let r of t)tl(n,e,r);else tl(n,e,t)}function tl(n,e,t){let r=n&&vr.isAlias(t)?t.resolve(n.doc):t;if(!vr.isMap(r))throw new Error("Merge sources must be maps or map aliases");let s=r.toJSON(null,n,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Zs.addMergeToJSMap=Gf;Zs.isMergeKey=cS;Zs.merge=Qs});var rl=O(Zf=>{"use strict";var uS=el(),Xf=ei(),dS=br(),Qf=U(),nl=dt();function fS(n,e,{key:t,value:r}){if(Qf.isNode(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(Xf.isMergeKey(n,t))Xf.addMergeToJSMap(n,e,r);else{let s=nl.toJS(t,"",n);if(e instanceof Map)e.set(s,nl.toJS(r,s,n));else if(e instanceof Set)e.add(s);else{let i=pS(t,s,n),o=nl.toJS(r,i,n);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function pS(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Qf.isNode(n)&&t?.doc){let r=dS.createStringifyContext(t.doc,{});r.anchors=new Set;for(let i of t.anchors.keys())r.anchors.add(i.anchor);r.inFlow=!0,r.inStringifyKey=!0;let s=n.toString(r);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),uS.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Zf.addPairToJSMap=fS});var mt=O(sl=>{"use strict";var ep=pr(),hS=Yf(),mS=rl(),ti=U();function gS(n,e,t){let r=ep.createNode(n,void 0,t),s=ep.createNode(e,void 0,t);return new ni(r,s)}var ni=class n{constructor(e,t=null){Object.defineProperty(this,ti.NODE_TYPE,{value:ti.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return ti.isNode(t)&&(t=t.clone(e)),ti.isNode(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t?.mapAsMap?new Map:{};return mS.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?hS.stringifyPair(this,e,t,r):JSON.stringify(this)}};sl.Pair=ni;sl.createPair=gS});var il=O(np=>{"use strict";var Ut=U(),tp=br(),ri=hr();function yS(n,e,t){return(e.inFlow??n.flow?wS:bS)(n,e,t)}function bS({comment:n,items:e},t,{blockItemPrefix:r,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=t,d=Object.assign({},t,{indent:i,type:null}),u=!1,f=[];for(let m=0;m<e.length;++m){let h=e[m],b=null;if(Ut.isNode(h))!u&&h.spaceBefore&&f.push(""),si(t,f,h.commentBefore,u),h.comment&&(b=h.comment);else if(Ut.isPair(h)){let S=Ut.isNode(h.key)?h.key:null;S&&(!u&&S.spaceBefore&&f.push(""),si(t,f,S.commentBefore,u))}u=!1;let A=tp.stringify(h,d,()=>b=null,()=>u=!0);b&&(A+=ri.lineComment(A,i,c(b))),u&&b&&(u=!1),f.push(r+A)}let p;if(f.length===0)p=s.start+s.end;else{p=f[0];for(let m=1;m<f.length;++m){let h=f[m];p+=h?`
|
|
65
65
|
${l}${h}`:`
|
|
66
66
|
`}}return n?(p+=`
|
|
67
|
-
`+
|
|
67
|
+
`+ri.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function wS({items:n},e,{flowChars:t,itemIndent:r}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;r+=i;let l=Object.assign({},e,{indent:r,inFlow:!0,type:null}),c=!1,d=0,u=[];for(let m=0;m<n.length;++m){let h=n[m],b=null;if(Ut.isNode(h))h.spaceBefore&&u.push(""),si(e,u,h.commentBefore,!1),h.comment&&(b=h.comment);else if(Ut.isPair(h)){let S=Ut.isNode(h.key)?h.key:null;S&&(S.spaceBefore&&u.push(""),si(e,u,S.commentBefore,!1),S.comment&&(c=!0));let P=Ut.isNode(h.value)?h.value:null;P?(P.comment&&(b=P.comment),P.commentBefore&&(c=!0)):h.value==null&&S?.comment&&(b=S.comment)}b&&(c=!0);let A=tp.stringify(h,l,()=>b=null);m<n.length-1&&(A+=","),b&&(A+=ri.lineComment(A,r,a(b))),!c&&(u.length>d||A.includes(`
|
|
68
68
|
`))&&(c=!0),u.push(A),d=u.length}let{start:f,end:p}=t;if(u.length===0)return f+p;if(!c){let m=u.reduce((h,b)=>h+b.length+2,2);c=e.options.lineWidth>0&&m>e.options.lineWidth}if(c){let m=f;for(let h of u)m+=h?`
|
|
69
69
|
${i}${s}${h}`:`
|
|
70
70
|
`;return`${m}
|
|
71
|
-
${s}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function
|
|
72
|
-
`:" ")}return
|
|
71
|
+
${s}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function si({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=ri.indentComment(e(r),n);t.push(i.trimStart())}}np.stringifyCollection=yS});var yt=O(al=>{"use strict";var vS=il(),SS=rl(),kS=Hs(),gt=U(),ii=mt(),xS=te();function Sr(n,e){let t=gt.isScalar(e)?e.value:e;for(let r of n)if(gt.isPair(r)&&(r.key===e||r.key===t||gt.isScalar(r.key)&&r.key.value===t))return r}var ol=class extends kS.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(gt.MAP,e),this.items=[]}static from(e,t,r){let{keepUndefined:s,replacer:i}=r,o=new this(e),a=(l,c)=>{if(typeof i=="function")c=i.call(t,l,c);else if(Array.isArray(i)&&!i.includes(l))return;(c!==void 0||s)&&o.items.push(ii.createPair(l,c,r))};if(t instanceof Map)for(let[l,c]of t)a(l,c);else if(t&&typeof t=="object")for(let l of Object.keys(t))a(l,t[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let r;gt.isPair(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new ii.Pair(e,e?.value):r=new ii.Pair(e.key,e.value);let s=Sr(this.items,r.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${r.key} already set`);gt.isScalar(s.value)&&xS.isScalarValue(r.value)?s.value.value=r.value:s.value=r.value}else if(i){let o=this.items.findIndex(a=>i(r,a)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(e){let t=Sr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=Sr(this.items,e)?.value;return(!t&>.isScalar(s)?s.value:s)??void 0}has(e){return!!Sr(this.items,e)}set(e,t){this.add(new ii.Pair(e,t),!0)}toJSON(e,t,r){let s=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)SS.addPairToJSMap(t,s,i);return s}toString(e,t,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!gt.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),vS.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};al.YAMLMap=ol;al.findPair=Sr});var bn=O(sp=>{"use strict";var ES=U(),rp=yt(),AS={collection:"map",default:!0,nodeClass:rp.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return ES.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>rp.YAMLMap.from(n,e,t)};sp.map=AS});var bt=O(ip=>{"use strict";var TS=pr(),OS=il(),PS=Hs(),ai=U(),CS=te(),RS=dt(),ll=class extends PS.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ai.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=oi(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=oi(e);if(typeof r!="number")return;let s=this.items[r];return!t&&ai.isScalar(s)?s.value:s}has(e){let t=oi(e);return typeof t=="number"&&t<this.items.length}set(e,t){let r=oi(e);if(typeof r!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[r];ai.isScalar(s)&&CS.isScalarValue(t)?s.value=t:this.items[r]=t}toJSON(e,t){let r=[];t?.onCreate&&t.onCreate(r);let s=0;for(let i of this.items)r.push(RS.toJS(i,String(s++),t));return r}toString(e,t,r){return e?OS.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:r,onComment:t}):JSON.stringify(this)}static from(e,t,r){let{replacer:s}=r,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let l=t instanceof Set?a:String(o++);a=s.call(t,l,a)}i.items.push(TS.createNode(a,void 0,r))}}return i}};function oi(n){let e=ai.isScalar(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}ip.YAMLSeq=ll});var wn=O(ap=>{"use strict";var _S=U(),op=bt(),NS={collection:"seq",default:!0,nodeClass:op.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return _S.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>op.YAMLSeq.from(n,e,t)};ap.seq=NS});var kr=O(lp=>{"use strict";var IS=yr(),$S={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,r){return e=Object.assign({actualString:!0},e),IS.stringifyString(n,e,t,r)}};lp.string=$S});var li=O(dp=>{"use strict";var cp=te(),up={identify:n=>n==null,createNode:()=>new cp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new cp.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&up.test.test(n)?n:e.options.nullStr};dp.nullTag=up});var cl=O(pp=>{"use strict";var LS=te(),fp={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new LS.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&fp.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};pp.boolTag=fp});var vn=O(hp=>{"use strict";function MS({format:n,minFractionDigits:e,tag:t,value:r}){if(typeof r=="bigint")return String(r);let s=typeof r=="number"?r:Number(r);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(r,-0)?"-0":JSON.stringify(r);if(!n&&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}hp.stringifyNumber=MS});var dl=O(ci=>{"use strict";var BS=te(),ul=vn(),DS={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:ul.stringifyNumber},jS={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():ul.stringifyNumber(n)}},FS={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let e=new BS.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:ul.stringifyNumber};ci.float=FS;ci.floatExp=jS;ci.floatNaN=DS});var pl=O(di=>{"use strict";var mp=vn(),ui=n=>typeof n=="bigint"||Number.isInteger(n),fl=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function gp(n,e,t){let{value:r}=n;return ui(r)&&r>=0?t+r.toString(e):mp.stringifyNumber(n)}var US={identify:n=>ui(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>fl(n,2,8,t),stringify:n=>gp(n,8,"0o")},qS={identify:ui,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>fl(n,0,10,t),stringify:mp.stringifyNumber},JS={identify:n=>ui(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>fl(n,2,16,t),stringify:n=>gp(n,16,"0x")};di.int=qS;di.intHex=JS;di.intOct=US});var bp=O(yp=>{"use strict";var KS=bn(),HS=li(),WS=wn(),YS=kr(),VS=cl(),hl=dl(),ml=pl(),zS=[KS.map,WS.seq,YS.string,HS.nullTag,VS.boolTag,ml.intOct,ml.int,ml.intHex,hl.floatNaN,hl.floatExp,hl.float];yp.schema=zS});var Sp=O(vp=>{"use strict";var GS=te(),XS=bn(),QS=wn();function wp(n){return typeof n=="bigint"||Number.isInteger(n)}var fi=({value:n})=>JSON.stringify(n),ZS=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:fi},{identify:n=>n==null,createNode:()=>new GS.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:fi},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:fi},{identify:wp,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>wp(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:fi}],ek={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},tk=[XS.map,QS.seq].concat(ZS,ek);vp.schema=tk});var yl=O(kp=>{"use strict";var xr=Rs("buffer"),gl=te(),nk=yr(),rk={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof xr.Buffer=="function")return xr.Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\n\r]/g,"")),r=new Uint8Array(t.length);for(let s=0;s<t.length;++s)r[s]=t.charCodeAt(s);return r}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),n},stringify({comment:n,type:e,value:t},r,s,i){if(!t)return"";let o=t,a;if(typeof xr.Buffer=="function")a=o instanceof xr.Buffer?o.toString("base64"):xr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let l="";for(let c=0;c<o.length;++c)l+=String.fromCharCode(o[c]);a=btoa(l)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=gl.Scalar.BLOCK_LITERAL),e!==gl.Scalar.QUOTE_DOUBLE){let l=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),c=Math.ceil(a.length/l),d=new Array(c);for(let u=0,f=0;u<c;++u,f+=l)d[u]=a.substr(f,l);a=d.join(e===gl.Scalar.BLOCK_LITERAL?`
|
|
72
|
+
`:" ")}return nk.stringifyString({comment:n,type:e,value:a},r,s,i)}};kp.binary=rk});var mi=O(hi=>{"use strict";var pi=U(),bl=mt(),sk=te(),ik=bt();function xp(n,e){if(pi.isSeq(n))for(let t=0;t<n.items.length;++t){let r=n.items[t];if(!pi.isPair(r)){if(pi.isMap(r)){r.items.length>1&&e("Each pair must have its own sequence indicator");let s=r.items[0]||new bl.Pair(new sk.Scalar(null));if(r.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${r.commentBefore}
|
|
73
73
|
${s.key.commentBefore}`:r.commentBefore),r.comment){let i=s.value??s.key;i.comment=i.comment?`${r.comment}
|
|
74
|
-
${i.comment}`:r.comment}r=s}n.items[t]=fi.isPair(r)?r:new yl.Pair(r)}}else e("Expected a sequence for this tag");return n}function xp(n,e,t){let{replacer:r}=t,s=new rk.YAMLSeq(n);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(i++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;s.items.push(yl.createPair(a,l,t))}return s}var sk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:kp,createNode:xp};pi.createPairs=xp;pi.pairs=sk;pi.resolvePairs=kp});var vl=O(wl=>{"use strict";var Ep=U(),bl=dt(),Er=yt(),ik=bt(),Ap=hi(),qt=class n extends ik.YAMLSeq{constructor(){super(),this.add=Er.YAMLMap.prototype.add.bind(this),this.delete=Er.YAMLMap.prototype.delete.bind(this),this.get=Er.YAMLMap.prototype.get.bind(this),this.has=Er.YAMLMap.prototype.has.bind(this),this.set=Er.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t?.onCreate&&t.onCreate(r);for(let s of this.items){let i,o;if(Ep.isPair(s)?(i=bl.toJS(s.key,"",t),o=bl.toJS(s.value,i,t)):i=bl.toJS(s,"",t),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(e,t,r){let s=Ap.createPairs(e,t,r),i=new this;return i.items=s.items,i}};qt.tag="tag:yaml.org,2002:omap";var ok={collection:"seq",identify:n=>n instanceof Map,nodeClass:qt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Ap.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Ep.isScalar(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new qt,t)},createNode:(n,e,t)=>qt.from(n,e,t)};wl.YAMLOMap=qt;wl.omap=ok});var Rp=O(Sl=>{"use strict";var Tp=te();function Op({value:n,source:e},t){return e&&(n?Pp:Cp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Pp={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Tp.Scalar(!0),stringify:Op},Cp={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Tp.Scalar(!1),stringify:Op};Sl.falseTag=Cp;Sl.trueTag=Pp});var _p=O(mi=>{"use strict";var ak=te(),kl=vn(),lk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:kl.stringifyNumber},ck={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():kl.stringifyNumber(n)}},uk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new ak.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:kl.stringifyNumber};mi.float=uk;mi.floatExp=ck;mi.floatNaN=lk});var Ip=O(Tr=>{"use strict";var Np=vn(),Ar=n=>typeof n=="bigint"||Number.isInteger(n);function gi(n,e,t,{intAsBigInt:r}){let s=n[0];if((s==="-"||s==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let i=parseInt(n,t);return s==="-"?-1*i:i}function xl(n,e,t){let{value:r}=n;if(Ar(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Np.stringifyNumber(n)}var dk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>gi(n,2,2,t),stringify:n=>xl(n,2,"0b")},fk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>gi(n,1,8,t),stringify:n=>xl(n,8,"0")},pk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>gi(n,0,10,t),stringify:Np.stringifyNumber},hk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>gi(n,2,16,t),stringify:n=>xl(n,16,"0x")};Tr.int=pk;Tr.intBin=dk;Tr.intHex=hk;Tr.intOct=fk});var Al=O(El=>{"use strict";var wi=U(),yi=mt(),bi=yt(),Jt=class n extends bi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;wi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new yi.Pair(e.key,null):t=new yi.Pair(e,null),bi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=bi.findPair(this.items,e);return!t&&wi.isPair(r)?wi.isScalar(r.key)?r.key.value:r.key:r}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 r=bi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new yi.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:s}=r,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(yi.createPair(o,null,r));return i}};Jt.tag="tag:yaml.org,2002:set";var mk={collection:"map",identify:n=>n instanceof Set,nodeClass:Jt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Jt.from(n,e,t),resolve(n,e){if(wi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Jt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};El.YAMLSet=Jt;El.set=mk});var Ol=O(vi=>{"use strict";var gk=vn();function Tl(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,s=o=>e?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function $p(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return gk.stringifyNumber(n);let r="";e<0&&(r="-",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))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var yk={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Tl(n,t),stringify:$p},bk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Tl(n,!1),stringify:$p},Lp={identify:n=>n 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(n){let e=n.match(Lp.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,s,i,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,r-1,s,i||0,o||0,a||0,l),d=e[8];if(d&&d!=="Z"){let u=Tl(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};vi.floatTime=bk;vi.intTime=yk;vi.timestamp=Lp});var Dp=O(Bp=>{"use strict";var wk=bn(),vk=ai(),Sk=wn(),kk=kr(),xk=gl(),Mp=Rp(),Pl=_p(),Si=Ip(),Ek=Zs(),Ak=vl(),Tk=hi(),Ok=Al(),Cl=Ol(),Pk=[wk.map,Sk.seq,kk.string,vk.nullTag,Mp.trueTag,Mp.falseTag,Si.intBin,Si.intOct,Si.int,Si.intHex,Pl.floatNaN,Pl.floatExp,Pl.float,xk.binary,Ek.merge,Ak.omap,Tk.pairs,Ok.set,Cl.intTime,Cl.floatTime,Cl.timestamp];Bp.schema=Pk});var Vp=O(Nl=>{"use strict";var qp=bn(),Ck=ai(),Jp=wn(),Rk=kr(),_k=ll(),Rl=ul(),_l=fl(),Nk=yp(),Ik=vp(),Kp=gl(),Or=Zs(),Hp=vl(),Wp=hi(),jp=Dp(),Yp=Al(),ki=Ol(),Fp=new Map([["core",Nk.schema],["failsafe",[qp.map,Jp.seq,Rk.string]],["json",Ik.schema],["yaml11",jp.schema],["yaml-1.1",jp.schema]]),Up={binary:Kp.binary,bool:_k.boolTag,float:Rl.float,floatExp:Rl.floatExp,floatNaN:Rl.floatNaN,floatTime:ki.floatTime,int:_l.int,intHex:_l.intHex,intOct:_l.intOct,intTime:ki.intTime,map:qp.map,merge:Or.merge,null:Ck.nullTag,omap:Hp.omap,pairs:Wp.pairs,seq:Jp.seq,set:Yp.set,timestamp:ki.timestamp},$k={"tag:yaml.org,2002:binary":Kp.binary,"tag:yaml.org,2002:merge":Or.merge,"tag:yaml.org,2002:omap":Hp.omap,"tag:yaml.org,2002:pairs":Wp.pairs,"tag:yaml.org,2002:set":Yp.set,"tag:yaml.org,2002:timestamp":ki.timestamp};function Lk(n,e,t){let r=Fp.get(e);if(r&&!n)return t&&!r.includes(Or.merge)?r.concat(Or.merge):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(Fp.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(n))for(let i of n)s=s.concat(i);else typeof n=="function"&&(s=n(s.slice()));return t&&(s=s.concat(Or.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Up[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Up).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return i.includes(a)||i.push(a),i},[])}Nl.coreKnownTags=$k;Nl.getTags=Lk});var Ll=O(zp=>{"use strict";var Il=U(),Mk=bn(),Bk=wn(),Dk=kr(),xi=Vp(),jk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,$l=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?xi.getTags(e,"compat"):e?xi.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?xi.coreKnownTags:{},this.tags=xi.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,Il.MAP,{value:Mk.map}),Object.defineProperty(this,Il.SCALAR,{value:Dk.string}),Object.defineProperty(this,Il.SEQ,{value:Bk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?jk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};zp.Schema=$l});var Xp=O(Gp=>{"use strict";var Fk=U(),Ml=br(),Pr=hr();function Uk(n,e){let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let s=Ml.createStringifyContext(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(Pr.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(Fk.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(Pr.indentComment(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=Ml.stringify(n.contents,s,()=>a=null,l);a&&(c+=Pr.lineComment(c,"",i(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(Ml.stringify(n.contents,s));if(n.directives?.docEnd)if(n.comment){let l=i(n.comment);l.includes(`
|
|
74
|
+
${i.comment}`:r.comment}r=s}n.items[t]=pi.isPair(r)?r:new bl.Pair(r)}}else e("Expected a sequence for this tag");return n}function Ep(n,e,t){let{replacer:r}=t,s=new ik.YAMLSeq(n);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(i++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;s.items.push(bl.createPair(a,l,t))}return s}var ok={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:xp,createNode:Ep};hi.createPairs=Ep;hi.pairs=ok;hi.resolvePairs=xp});var Sl=O(vl=>{"use strict";var Ap=U(),wl=dt(),Er=yt(),ak=bt(),Tp=mi(),qt=class n extends ak.YAMLSeq{constructor(){super(),this.add=Er.YAMLMap.prototype.add.bind(this),this.delete=Er.YAMLMap.prototype.delete.bind(this),this.get=Er.YAMLMap.prototype.get.bind(this),this.has=Er.YAMLMap.prototype.has.bind(this),this.set=Er.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t?.onCreate&&t.onCreate(r);for(let s of this.items){let i,o;if(Ap.isPair(s)?(i=wl.toJS(s.key,"",t),o=wl.toJS(s.value,i,t)):i=wl.toJS(s,"",t),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(e,t,r){let s=Tp.createPairs(e,t,r),i=new this;return i.items=s.items,i}};qt.tag="tag:yaml.org,2002:omap";var lk={collection:"seq",identify:n=>n instanceof Map,nodeClass:qt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Tp.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Ap.isScalar(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new qt,t)},createNode:(n,e,t)=>qt.from(n,e,t)};vl.YAMLOMap=qt;vl.omap=lk});var _p=O(kl=>{"use strict";var Op=te();function Pp({value:n,source:e},t){return e&&(n?Cp:Rp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Cp={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Op.Scalar(!0),stringify:Pp},Rp={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Op.Scalar(!1),stringify:Pp};kl.falseTag=Rp;kl.trueTag=Cp});var Np=O(gi=>{"use strict";var ck=te(),xl=vn(),uk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xl.stringifyNumber},dk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():xl.stringifyNumber(n)}},fk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new ck.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:xl.stringifyNumber};gi.float=fk;gi.floatExp=dk;gi.floatNaN=uk});var $p=O(Tr=>{"use strict";var Ip=vn(),Ar=n=>typeof n=="bigint"||Number.isInteger(n);function yi(n,e,t,{intAsBigInt:r}){let s=n[0];if((s==="-"||s==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let i=parseInt(n,t);return s==="-"?-1*i:i}function El(n,e,t){let{value:r}=n;if(Ar(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Ip.stringifyNumber(n)}var pk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>yi(n,2,2,t),stringify:n=>El(n,2,"0b")},hk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>yi(n,1,8,t),stringify:n=>El(n,8,"0")},mk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>yi(n,0,10,t),stringify:Ip.stringifyNumber},gk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>yi(n,2,16,t),stringify:n=>El(n,16,"0x")};Tr.int=mk;Tr.intBin=pk;Tr.intHex=gk;Tr.intOct=hk});var Tl=O(Al=>{"use strict";var vi=U(),bi=mt(),wi=yt(),Jt=class n extends wi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;vi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new bi.Pair(e.key,null):t=new bi.Pair(e,null),wi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=wi.findPair(this.items,e);return!t&&vi.isPair(r)?vi.isScalar(r.key)?r.key.value:r.key:r}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 r=wi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new bi.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:s}=r,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(bi.createPair(o,null,r));return i}};Jt.tag="tag:yaml.org,2002:set";var yk={collection:"map",identify:n=>n instanceof Set,nodeClass:Jt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Jt.from(n,e,t),resolve(n,e){if(vi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Jt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Al.YAMLSet=Jt;Al.set=yk});var Pl=O(Si=>{"use strict";var bk=vn();function Ol(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,s=o=>e?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Lp(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return bk.stringifyNumber(n);let r="";e<0&&(r="-",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))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var wk={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Ol(n,t),stringify:Lp},vk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Ol(n,!1),stringify:Lp},Mp={identify:n=>n 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(n){let e=n.match(Mp.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,s,i,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,r-1,s,i||0,o||0,a||0,l),d=e[8];if(d&&d!=="Z"){let u=Ol(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Si.floatTime=vk;Si.intTime=wk;Si.timestamp=Mp});var jp=O(Dp=>{"use strict";var Sk=bn(),kk=li(),xk=wn(),Ek=kr(),Ak=yl(),Bp=_p(),Cl=Np(),ki=$p(),Tk=ei(),Ok=Sl(),Pk=mi(),Ck=Tl(),Rl=Pl(),Rk=[Sk.map,xk.seq,Ek.string,kk.nullTag,Bp.trueTag,Bp.falseTag,ki.intBin,ki.intOct,ki.int,ki.intHex,Cl.floatNaN,Cl.floatExp,Cl.float,Ak.binary,Tk.merge,Ok.omap,Pk.pairs,Ck.set,Rl.intTime,Rl.floatTime,Rl.timestamp];Dp.schema=Rk});var zp=O(Il=>{"use strict";var Jp=bn(),_k=li(),Kp=wn(),Nk=kr(),Ik=cl(),_l=dl(),Nl=pl(),$k=bp(),Lk=Sp(),Hp=yl(),Or=ei(),Wp=Sl(),Yp=mi(),Fp=jp(),Vp=Tl(),xi=Pl(),Up=new Map([["core",$k.schema],["failsafe",[Jp.map,Kp.seq,Nk.string]],["json",Lk.schema],["yaml11",Fp.schema],["yaml-1.1",Fp.schema]]),qp={binary:Hp.binary,bool:Ik.boolTag,float:_l.float,floatExp:_l.floatExp,floatNaN:_l.floatNaN,floatTime:xi.floatTime,int:Nl.int,intHex:Nl.intHex,intOct:Nl.intOct,intTime:xi.intTime,map:Jp.map,merge:Or.merge,null:_k.nullTag,omap:Wp.omap,pairs:Yp.pairs,seq:Kp.seq,set:Vp.set,timestamp:xi.timestamp},Mk={"tag:yaml.org,2002:binary":Hp.binary,"tag:yaml.org,2002:merge":Or.merge,"tag:yaml.org,2002:omap":Wp.omap,"tag:yaml.org,2002:pairs":Yp.pairs,"tag:yaml.org,2002:set":Vp.set,"tag:yaml.org,2002:timestamp":xi.timestamp};function Bk(n,e,t){let r=Up.get(e);if(r&&!n)return t&&!r.includes(Or.merge)?r.concat(Or.merge):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(Up.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(n))for(let i of n)s=s.concat(i);else typeof n=="function"&&(s=n(s.slice()));return t&&(s=s.concat(Or.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?qp[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(qp).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return i.includes(a)||i.push(a),i},[])}Il.coreKnownTags=Mk;Il.getTags=Bk});var Ml=O(Gp=>{"use strict";var $l=U(),Dk=bn(),jk=wn(),Fk=kr(),Ei=zp(),Uk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,Ll=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ei.getTags(e,"compat"):e?Ei.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?Ei.coreKnownTags:{},this.tags=Ei.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,$l.MAP,{value:Dk.map}),Object.defineProperty(this,$l.SCALAR,{value:Fk.string}),Object.defineProperty(this,$l.SEQ,{value:jk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Uk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Gp.Schema=Ll});var Qp=O(Xp=>{"use strict";var qk=U(),Bl=br(),Pr=hr();function Jk(n,e){let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let s=Bl.createStringifyContext(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(Pr.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(qk.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(Pr.indentComment(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=Bl.stringify(n.contents,s,()=>a=null,l);a&&(c+=Pr.lineComment(c,"",i(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(Bl.stringify(n.contents,s));if(n.directives?.docEnd)if(n.comment){let l=i(n.comment);l.includes(`
|
|
75
75
|
`)?(t.push("..."),t.push(Pr.indentComment(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Pr.indentComment(i(l),"")))}return t.join(`
|
|
76
76
|
`)+`
|
|
77
|
-
`}
|
|
77
|
+
`}Xp.stringifyDocument=Jk});var Cr=O(Zp=>{"use strict";var Kk=fr(),Sn=Hs(),xe=U(),Hk=mt(),Wk=dt(),Yk=Ml(),Vk=Qp(),Dl=Us(),zk=qa(),Gk=pr(),jl=Ua(),Fl=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,xe.NODE_TYPE,{value:xe.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=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"},r);this.options=i;let{version:o}=i;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new jl.Directives({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,s,r)}clone(){let e=Object.create(n.prototype,{[xe.NODE_TYPE]:{value:xe.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=xe.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){kn(this.contents)&&this.contents.add(e)}addIn(e,t){kn(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=Dl.anchorNames(this);e.anchor=!t||r.has(t)?Dl.findNewAnchor(t||"a",r):t}return new Kk.Alias(e.anchor)}createNode(e,t,r){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let b=S=>typeof S=="number"||S instanceof String||S instanceof Number,A=t.filter(b).map(String);A.length>0&&(t=t.concat(A)),s=t}else r===void 0&&t&&(r=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:f,sourceObjects:p}=Dl.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:s,schema:this.schema,sourceObjects:p},h=Gk.createNode(e,d,m);return a&&xe.isCollection(h)&&(h.flow=!0),f(),h}createPair(e,t,r={}){let s=this.createNode(e,null,r),i=this.createNode(t,null,r);return new Hk.Pair(s,i)}delete(e){return kn(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Sn.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):kn(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return xe.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Sn.isEmptyPath(e)?!t&&xe.isScalar(this.contents)?this.contents.value:this.contents:xe.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return xe.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Sn.isEmptyPath(e)?this.contents!==void 0:xe.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Sn.collectionFromPath(this.schema,[e],t):kn(this.contents)&&this.contents.set(e,t)}setIn(e,t){Sn.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Sn.collectionFromPath(this.schema,Array.from(e),t):kn(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new jl.Directives({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new jl.Directives({version:e}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new Yk.Schema(Object.assign(r,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},l=Wk.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:c,res:d}of a.anchors.values())i(d,c);return typeof o=="function"?zk.applyReviver(o,{"":l},"",l):l}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 Vk.stringifyDocument(this,e)}};function kn(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}Zp.Document=Fl});var Nr=O(_r=>{"use strict";var Rr=class extends Error{constructor(e,t,r,s){super(),this.name=e,this.code=r,this.message=s,this.pos=t}},Ul=class extends Rr{constructor(e,t,r){super("YAMLParseError",e,t,r)}},ql=class extends Rr{constructor(e,t,r){super("YAMLWarning",e,t,r)}},Xk=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:r,col:s}=t.linePos[0];t.message+=` at line ${r}, column ${s}`;let i=s-1,o=n.substring(e.lineStarts[r-1],e.lineStarts[r]).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"),r>1&&/^ *$/.test(o.substring(0,i))){let a=n.substring(e.lineStarts[r-2],e.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
78
78
|
`),o=a+o}if(/[^ ]/.test(o)){let a=1,l=t.linePos[1];l?.line===r&&l.col>s&&(a=Math.max(1,Math.min(l.col-s,80-i)));let c=" ".repeat(i)+"^".repeat(a);t.message+=`:
|
|
79
79
|
|
|
80
80
|
${o}
|
|
81
81
|
${c}
|
|
82
|
-
`}};_r.YAMLError=Rr;_r.YAMLParseError=
|
|
83
|
-
`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.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(
|
|
84
|
-
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||
|
|
85
|
-
`+P.comment:S.comment=P.comment);let _=new
|
|
86
|
-
`+R.comment:c.comment=R.comment),u=R.end;continue}!o&&t.options.strict&&
|
|
87
|
-
`+$:x.comment=$,R.comment=R.comment.substring($.length+1)}}if(!o&&!_&&!R.found){let $=C?n(t,C,R,s):e(t,R.end,_,null,R,s);c.items.push($),u=$.range[2],
|
|
88
|
-
`+D.comment:x.comment=D.comment);let q=new
|
|
89
|
-
`+b.comment:c.comment=b.comment),c.range=[r.offset,h,b.offset]}else c.range=[r.offset,h,h];return c}
|
|
82
|
+
`}};_r.YAMLError=Rr;_r.YAMLParseError=Ul;_r.YAMLWarning=ql;_r.prettifyError=Xk});var Ir=O(eh=>{"use strict";function Qk(n,{flow:e,indicator:t,next:r,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",f="",p=!1,m=!1,h=null,b=null,A=null,S=null,P=null,_=null,C=null;for(let x of n)switch(m&&(x.type!=="space"&&x.type!=="newline"&&x.type!=="comma"&&i(x.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),h&&(c&&x.type!=="comment"&&x.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),x.type){case"space":!e&&(t!=="doc-start"||r?.type!=="flow-collection")&&x.source.includes(" ")&&(h=x),d=!0;break;case"comment":{d||i(x,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let D=x.source.substring(1)||" ";u?u+=f+D:u=D,f="",c=!1;break}case"newline":c?u?u+=x.source:(!_||t!=="seq-item-ind")&&(l=!0):f+=x.source,c=!0,p=!0,(b||A)&&(S=x),d=!0;break;case"anchor":b&&i(x,"MULTIPLE_ANCHORS","A node can have at most one anchor"),x.source.endsWith(":")&&i(x.offset+x.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),b=x,C??(C=x.offset),c=!1,d=!1,m=!0;break;case"tag":{A&&i(x,"MULTIPLE_TAGS","A node can have at most one tag"),A=x,C??(C=x.offset),c=!1,d=!1,m=!0;break}case t:(b||A)&&i(x,"BAD_PROP_ORDER",`Anchors and tags must be after the ${x.source} indicator`),_&&i(x,"UNEXPECTED_TOKEN",`Unexpected ${x.source} in ${e??"collection"}`),_=x,c=t==="seq-item-ind"||t==="explicit-key-ind",d=!1;break;case"comma":if(e){P&&i(x,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),P=x,c=!1,d=!1;break}default:i(x,"UNEXPECTED_TOKEN",`Unexpected ${x.type} token`),c=!1,d=!1}let R=n[n.length-1],$=R?R.offset+R.source.length:s;return m&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&i(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(c&&h.indent<=o||r?.type==="block-map"||r?.type==="block-seq")&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:P,found:_,spaceBefore:l,comment:u,hasNewline:p,anchor:b,tag:A,newlineAfterProp:S,end:$,start:C??$}}eh.resolveProps=Qk});var Ai=O(th=>{"use strict";function Jl(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(`
|
|
83
|
+
`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.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(Jl(e.key)||Jl(e.value))return!0}return!1;default:return!0}}th.containsNewline=Jl});var Kl=O(nh=>{"use strict";var Zk=Ai();function ex(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&Zk.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}nh.flowIndentCheck=ex});var Hl=O(sh=>{"use strict";var rh=U();function tx(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||rh.isScalar(i)&&rh.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}sh.mapIncludes=tx});var uh=O(ch=>{"use strict";var ih=mt(),nx=yt(),oh=Ir(),rx=Ai(),ah=Kl(),sx=Hl(),lh="All mapping items must start at the same column";function ix({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??nx.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=r.offset,c=null;for(let d of r.items){let{start:u,key:f,sep:p,value:m}=d,h=oh.resolveProps(u,{indicator:"explicit-key-ind",next:f??p?.[0],offset:l,onError:s,parentIndent:r.indent,startOnNewline:!0}),b=!h.found;if(b){if(f&&(f.type==="block-seq"?s(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in f&&f.indent!==r.indent&&s(l,"BAD_INDENT",lh)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
|
|
84
|
+
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||rx.containsNewline(f))&&s(f??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==r.indent&&s(l,"BAD_INDENT",lh);t.atKey=!0;let A=h.end,S=f?n(t,f,h,s):e(t,A,u,null,h,s);t.schema.compat&&ah.flowIndentCheck(r.indent,f,s),t.atKey=!1,sx.mapIncludes(t,a.items,S)&&s(A,"DUPLICATE_KEY","Map keys must be unique");let P=oh.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:S.range[2],onError:s,parentIndent:r.indent,startOnNewline:!f||f.type==="block-scalar"});if(l=P.end,P.found){b&&(m?.type==="block-map"&&!P.hasNewline&&s(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&h.start<P.found.offset-1024&&s(S.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let _=m?n(t,m,P,s):e(t,l,p,null,P,s);t.schema.compat&&ah.flowIndentCheck(r.indent,m,s),l=_.range[2];let C=new ih.Pair(S,_);t.options.keepSourceTokens&&(C.srcToken=d),a.items.push(C)}else{b&&s(S.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),P.comment&&(S.comment?S.comment+=`
|
|
85
|
+
`+P.comment:S.comment=P.comment);let _=new ih.Pair(S);t.options.keepSourceTokens&&(_.srcToken=d),a.items.push(_)}}return c&&c<l&&s(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[r.offset,l,c??l],a}ch.resolveBlockMap=ix});var fh=O(dh=>{"use strict";var ox=bt(),ax=Ir(),lx=Kl();function cx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??ox.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let l=r.offset,c=null;for(let{start:d,value:u}of r.items){let f=ax.resolveProps(d,{indicator:"seq-item-ind",next:u,offset:l,onError:s,parentIndent:r.indent,startOnNewline:!0});if(!f.found)if(f.anchor||f.tag||u)u?.type==="block-seq"?s(f.end,"BAD_INDENT","All sequence items must start at the same column"):s(l,"MISSING_CHAR","Sequence item without - indicator");else{c=f.end,f.comment&&(a.comment=f.comment);continue}let p=u?n(t,u,f,s):e(t,f.end,d,null,f,s);t.schema.compat&&lx.flowIndentCheck(r.indent,u,s),l=p.range[2],a.items.push(p)}return a.range=[r.offset,l,c??l],a}dh.resolveBlockSeq=cx});var xn=O(ph=>{"use strict";function ux(n,e,t,r){let s="";if(n){let i=!1,o="";for(let a of n){let{source:l,type:c}=a;switch(c){case"space":i=!0;break;case"comment":{t&&!i&&r(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let d=l.substring(1)||" ";s?s+=o+d:s=d,o="";break}case"newline":s&&(o+=l),i=!0;break;default:r(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:s,offset:e}}ph.resolveEnd=ux});var yh=O(gh=>{"use strict";var dx=U(),fx=mt(),hh=yt(),px=bt(),hx=xn(),mh=Ir(),mx=Ai(),gx=Hl(),Wl="Block collections are not allowed within flow collections",Yl=n=>n&&(n.type==="block-map"||n.type==="block-seq");function yx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=i?.nodeClass??(o?hh.YAMLMap:px.YAMLSeq),c=new l(t.schema);c.flow=!0;let d=t.atRoot;d&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=r.offset+r.start.source.length;for(let b=0;b<r.items.length;++b){let A=r.items[b],{start:S,key:P,sep:_,value:C}=A,R=mh.resolveProps(S,{flow:a,indicator:"explicit-key-ind",next:P??_?.[0],offset:u,onError:s,parentIndent:r.indent,startOnNewline:!1});if(!R.found){if(!R.anchor&&!R.tag&&!_&&!C){b===0&&R.comma?s(R.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):b<r.items.length-1&&s(R.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),R.comment&&(c.comment?c.comment+=`
|
|
86
|
+
`+R.comment:c.comment=R.comment),u=R.end;continue}!o&&t.options.strict&&mx.containsNewline(P)&&s(P,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(b===0)R.comma&&s(R.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(R.comma||s(R.start,"MISSING_CHAR",`Missing , between ${a} items`),R.comment){let $="";e:for(let x of S)switch(x.type){case"comma":case"space":break;case"comment":$=x.source.substring(1);break e;default:break e}if($){let x=c.items[c.items.length-1];dx.isPair(x)&&(x=x.value??x.key),x.comment?x.comment+=`
|
|
87
|
+
`+$:x.comment=$,R.comment=R.comment.substring($.length+1)}}if(!o&&!_&&!R.found){let $=C?n(t,C,R,s):e(t,R.end,_,null,R,s);c.items.push($),u=$.range[2],Yl(C)&&s($.range,"BLOCK_IN_FLOW",Wl)}else{t.atKey=!0;let $=R.end,x=P?n(t,P,R,s):e(t,$,S,null,R,s);Yl(P)&&s(x.range,"BLOCK_IN_FLOW",Wl),t.atKey=!1;let D=mh.resolveProps(_??[],{flow:a,indicator:"map-value-ind",next:C,offset:x.range[2],onError:s,parentIndent:r.indent,startOnNewline:!1});if(D.found){if(!o&&!R.found&&t.options.strict){if(_)for(let y of _){if(y===D.found)break;if(y.type==="newline"){s(y,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}R.start<D.found.offset-1024&&s(D.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else C&&("source"in C&&C.source?.[0]===":"?s(C,"MISSING_CHAR",`Missing space after : in ${a}`):s(D.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let K=C?n(t,C,D,s):D.found?e(t,D.end,_,null,D,s):null;K?Yl(C)&&s(K.range,"BLOCK_IN_FLOW",Wl):D.comment&&(x.comment?x.comment+=`
|
|
88
|
+
`+D.comment:x.comment=D.comment);let q=new fx.Pair(x,K);if(t.options.keepSourceTokens&&(q.srcToken=A),o){let y=c;gx.mapIncludes(t,y.items,x)&&s($,"DUPLICATE_KEY","Map keys must be unique"),y.items.push(q)}else{let y=new hh.YAMLMap(t.schema);y.flow=!0,y.items.push(q);let E=(K??x).range;y.range=[x.range[0],E[1],E[2]],c.items.push(y)}u=K?K.range[2]:D.end}}let f=o?"}":"]",[p,...m]=r.end,h=u;if(p?.source===f)h=p.offset+p.source.length;else{let b=a[0].toUpperCase()+a.substring(1),A=d?`${b} must end with a ${f}`:`${b} in block collection must be sufficiently indented and end with a ${f}`;s(u,d?"MISSING_CHAR":"BAD_INDENT",A),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let b=hx.resolveEnd(m,h,t.options.strict,s);b.comment&&(c.comment?c.comment+=`
|
|
89
|
+
`+b.comment:c.comment=b.comment),c.range=[r.offset,h,b.offset]}else c.range=[r.offset,h,h];return c}gh.resolveFlowCollection=yx});var wh=O(bh=>{"use strict";var bx=U(),wx=te(),vx=yt(),Sx=bt(),kx=uh(),xx=fh(),Ex=yh();function Vl(n,e,t,r,s,i){let o=t.type==="block-map"?kx.resolveBlockMap(n,e,t,r,i):t.type==="block-seq"?xx.resolveBlockSeq(n,e,t,r,i):Ex.resolveFlowCollection(n,e,t,r,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Ax(n,e,t,r,s){let i=r.tag,o=i?e.directives.tagName(i.source,f=>s(i,"TAG_RESOLVE_FAILED",f)):null;if(t.type==="block-seq"){let{anchor:f,newlineAfterProp:p}=r,m=f&&i?f.offset>i.offset?f:i:f??i;m&&(!p||p.offset<m.offset)&&s(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===vx.YAMLMap.tagName&&a==="map"||o===Sx.YAMLSeq.tagName&&a==="seq")return Vl(n,e,t,s,o);let l=e.schema.tags.find(f=>f.tag===o&&f.collection===a);if(!l){let f=e.schema.knownTags[o];if(f?.collection===a)e.schema.tags.push(Object.assign({},f,{default:!1})),l=f;else return f?s(i,"BAD_COLLECTION_TYPE",`${f.tag} used for ${a} collection, but expects ${f.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Vl(n,e,t,s,o)}let c=Vl(n,e,t,s,o,l),d=l.resolve?.(c,f=>s(i,"TAG_RESOLVE_FAILED",f),e.options)??c,u=bx.isNode(d)?d:new wx.Scalar(d);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}bh.composeCollection=Ax});var Gl=O(vh=>{"use strict";var zl=te();function Tx(n,e,t){let r=e.offset,s=Ox(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?zl.Scalar.BLOCK_FOLDED:zl.Scalar.BLOCK_LITERAL,o=e.source?Px(e.source):[],a=o.length;for(let h=o.length-1;h>=0;--h){let b=o[h][1];if(b===""||b==="\r")a=h;else break}if(a===0){let h=s.chomp==="+"&&o.length>0?`
|
|
90
90
|
`.repeat(Math.max(1,o.length-1)):"",b=r+s.length;return e.source&&(b+=e.source.length),{value:h,type:i,comment:s.comment,range:[r,b,b]}}let l=e.indent+s.indent,c=e.offset+s.length,d=0;for(let h=0;h<a;++h){let[b,A]=o[h];if(A===""||A==="\r")s.indent===0&&b.length>l&&(l=b.length);else{b.length<l&&t(c+b.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(l=b.length),d=h,l===0&&!n.atRoot&&t(c,"BAD_INDENT","Block scalar values in collections must be indented");break}c+=b.length+A.length+1}for(let h=o.length-1;h>=a;--h)o[h][0].length>l&&(a=h+1);let u="",f="",p=!1;for(let h=0;h<d;++h)u+=o[h][0].slice(l)+`
|
|
91
|
-
`;for(let h=d;h<a;++h){let[b,A]=o[h];c+=b.length+A.length+1;let S=A[A.length-1]==="\r";if(S&&(A=A.slice(0,-1)),A&&b.length<l){let _=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(c-A.length-(S?2:1),"BAD_INDENT",_),b=""}i===
|
|
91
|
+
`;for(let h=d;h<a;++h){let[b,A]=o[h];c+=b.length+A.length+1;let S=A[A.length-1]==="\r";if(S&&(A=A.slice(0,-1)),A&&b.length<l){let _=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(c-A.length-(S?2:1),"BAD_INDENT",_),b=""}i===zl.Scalar.BLOCK_LITERAL?(u+=f+b.slice(l)+A,f=`
|
|
92
92
|
`):b.length>l||A[0]===" "?(f===" "?f=`
|
|
93
93
|
`:!p&&f===`
|
|
94
94
|
`&&(f=`
|
|
@@ -101,93 +101,93 @@ ${c}
|
|
|
101
101
|
`+o[h][0].slice(l);u[u.length-1]!==`
|
|
102
102
|
`&&(u+=`
|
|
103
103
|
`);break;default:u+=`
|
|
104
|
-
`}let m=r+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[r,m,m]}}function
|
|
104
|
+
`}let m=r+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[r,m,m]}}function Ox({offset:n,props:e},t,r){if(e[0].type!=="block-scalar-header")return r(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",l=-1;for(let f=1;f<s.length;++f){let p=s[f];if(!a&&(p==="-"||p==="+"))a=p;else{let m=Number(p);!o&&m?o=m:l===-1&&(l=n+f)}}l!==-1&&r(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let c=!1,d="",u=s.length;for(let f=1;f<e.length;++f){let p=e[f];switch(p.type){case"space":c=!0;case"newline":u+=p.source.length;break;case"comment":t&&!c&&r(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,d=p.source.substring(1);break;case"error":r(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let m=`Unexpected token in block scalar header: ${p.type}`;r(p,"UNEXPECTED_TOKEN",m);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:i,indent:o,chomp:a,comment:d,length:u}}function Px(n){let e=n.split(/\n( *)/),t=e[0],r=t.match(/^( *)/),i=[r?.[1]?[r[1],t.slice(r[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}vh.resolveBlockScalar=Tx});var Ql=O(kh=>{"use strict";var Xl=te(),Cx=xn();function Rx(n,e,t){let{offset:r,type:s,source:i,end:o}=n,a,l,c=(f,p,m)=>t(r+f,p,m);switch(s){case"scalar":a=Xl.Scalar.PLAIN,l=_x(i,c);break;case"single-quoted-scalar":a=Xl.Scalar.QUOTE_SINGLE,l=Nx(i,c);break;case"double-quoted-scalar":a=Xl.Scalar.QUOTE_DOUBLE,l=Ix(i,c);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[r,r+i.length,r+i.length]}}let d=r+i.length,u=Cx.resolveEnd(o,d,e,t);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function _x(n,e){let t="";switch(n[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 ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),Sh(n)}function Nx(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),Sh(n.slice(1,-1)).replace(/''/g,"'")}function Sh(n){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
105
105
|
`,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
106
106
|
`,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=e.exec(n);if(!r)return n;let s=r[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;r=t.exec(n);)r[1]===""?i===`
|
|
107
107
|
`?s+=i:i=`
|
|
108
|
-
`:(s+=i+r[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,r=a.exec(n),s+i+(r?.[1]??"")}function
|
|
108
|
+
`:(s+=i+r[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,r=a.exec(n),s+i+(r?.[1]??"")}function Ix(n,e){let t="";for(let r=1;r<n.length-1;++r){let s=n[r];if(!(s==="\r"&&n[r+1]===`
|
|
109
109
|
`))if(s===`
|
|
110
|
-
`){let{fold:i,offset:o}
|
|
110
|
+
`){let{fold:i,offset:o}=$x(n,r);t+=i,r=o}else if(s==="\\"){let i=n[++r],o=Lx[i];if(o)t+=o;else if(i===`
|
|
111
111
|
`)for(i=n[r+1];i===" "||i===" ";)i=n[++r+1];else if(i==="\r"&&n[r+1]===`
|
|
112
|
-
`)for(i=n[++r+1];i===" "||i===" ";)i=n[++r+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t
|
|
112
|
+
`)for(i=n[++r+1];i===" "||i===" ";)i=n[++r+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Mx(n,r+1,a,e),r+=a}else{let a=n.substr(r-1,2);e(r-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=r,o=n[r+1];for(;o===" "||o===" ";)o=n[++r+1];o!==`
|
|
113
113
|
`&&!(o==="\r"&&n[r+2]===`
|
|
114
|
-
`)&&(t+=r>i?n.slice(i,r+1):s)}else t+=s}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function
|
|
114
|
+
`)&&(t+=r>i?n.slice(i,r+1):s)}else t+=s}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function $x(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===`
|
|
115
115
|
`||r==="\r")&&!(r==="\r"&&n[e+2]!==`
|
|
116
116
|
`);)r===`
|
|
117
117
|
`&&(t+=`
|
|
118
|
-
`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var
|
|
119
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
118
|
+
`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var Lx={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
119
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Mx(n,e,t,r){let s=n.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=n.substr(e-2,t+2);return r(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}kh.resolveFlowScalar=Rx});var Ah=O(Eh=>{"use strict";var Kt=U(),xh=te(),Bx=Gl(),Dx=Ql();function jx(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Bx.resolveBlockScalar(n,e,r):Dx.resolveFlowScalar(e,n.options.strict,r),l=t?n.directives.tagName(t.source,u=>r(t,"TAG_RESOLVE_FAILED",u)):null,c;n.options.stringKeys&&n.atKey?c=n.schema[Kt.SCALAR]:l?c=Fx(n.schema,s,l,t,r):e.type==="scalar"?c=Ux(n,s,e,r):c=n.schema[Kt.SCALAR];let d;try{let u=c.resolve(s,f=>r(t??e,"TAG_RESOLVE_FAILED",f),n.options);d=Kt.isScalar(u)?u:new xh.Scalar(u)}catch(u){let f=u instanceof Error?u.message:String(u);r(t??e,"TAG_RESOLVE_FAILED",f),d=new xh.Scalar(s)}return d.range=a,d.source=s,i&&(d.type=i),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function Fx(n,e,t,r,s){if(t==="!")return n[Kt.SCALAR];let i=[];for(let a of n.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=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Kt.SCALAR])}function Ux({atKey:n,directives:e,schema:t},r,s,i){let o=t.tags.find(a=>(a.default===!0||n&&a.default==="key")&&a.test?.test(r))||t[Kt.SCALAR];if(t.compat){let a=t.compat.find(l=>l.default&&l.test?.test(r))??t[Kt.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;i(s,"TAG_RESOLVE_FAILED",d,!0)}}return o}Eh.composeScalar=jx});var Oh=O(Th=>{"use strict";function qx(n,e,t){if(e){t??(t=e.length);for(let r=t-1;r>=0;--r){let s=e[r];switch(s.type){case"space":case"comment":case"newline":n-=s.source.length;continue}for(s=e[++r];s?.type==="space";)n+=s.source.length,s=e[++r];break}}return n}Th.emptyScalarPosition=qx});var Rh=O(ec=>{"use strict";var Jx=fr(),Kx=U(),Hx=wh(),Ph=Ah(),Wx=xn(),Yx=Oh(),Vx={composeNode:Ch,composeEmptyNode:Zl};function Ch(n,e,t,r){let s=n.atKey,{spaceBefore:i,comment:o,anchor:a,tag:l}=t,c,d=!0;switch(e.type){case"alias":c=zx(n,e,r),(a||l)&&r(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":c=Ph.composeScalar(n,e,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=Hx.composeCollection(Vx,n,e,t,r),a&&(c.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",u),c=Zl(n,e.offset,void 0,null,t,r),d=!1}}return a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&n.options.stringKeys&&(!Kx.isScalar(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(c.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?c.comment=o:c.commentBefore=o),n.options.keepSourceTokens&&d&&(c.srcToken=e),c}function Zl(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:l},c){let d={type:"scalar",offset:Yx.emptyScalarPosition(e,t,r),indent:-1,source:""},u=Ph.composeScalar(n,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=l),u}function zx({options:n},{offset:e,source:t,end:r},s){let i=new Jx.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Wx.resolveEnd(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ec.composeEmptyNode=Zl;ec.composeNode=Ch});var Ih=O(Nh=>{"use strict";var Gx=Cr(),_h=Rh(),Xx=xn(),Qx=Ir();function Zx(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),l=new Gx.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=Qx.resolveProps(r,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=s?_h.composeNode(c,s,d,o):_h.composeEmptyNode(c,d.end,r,null,d,o);let u=l.contents.range[2],f=Xx.resolveEnd(i,u,!1,o);return f.comment&&(l.comment=f.comment),l.range=[t,u,f.offset],l}Nh.composeDoc=Zx});var nc=O(Mh=>{"use strict";var e0=Rs("process"),t0=Ua(),n0=Cr(),$r=Nr(),$h=U(),r0=Ih(),s0=xn();function Lr(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function Lh(n){let e="",t=!1,r=!1;for(let s=0;s<n.length;++s){let i=n[s];switch(i[0]){case"#":e+=(e===""?"":r?`
|
|
120
120
|
|
|
121
121
|
`:`
|
|
122
|
-
`)+(i.substring(1)||" "),t=!0,r=!1;break;case"%":n[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(r=!0),t=!1}}return{comment:e,afterEmptyLine:r}}var
|
|
123
|
-
${r}`:r;else if(s||e.directives.docStart||!i)e.commentBefore=r;else if(
|
|
122
|
+
`)+(i.substring(1)||" "),t=!0,r=!1;break;case"%":n[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(r=!0),t=!1}}return{comment:e,afterEmptyLine:r}}var tc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,r,s,i)=>{let o=Lr(t);i?this.warnings.push(new $r.YAMLWarning(o,r,s)):this.errors.push(new $r.YAMLParseError(o,r,s))},this.directives=new t0.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=Lh(this.prelude);if(r){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
|
|
123
|
+
${r}`:r;else if(s||e.directives.docStart||!i)e.commentBefore=r;else if($h.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];$h.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r}
|
|
124
124
|
${a}`:r}else{let o=i.commentBefore;i.commentBefore=o?`${r}
|
|
125
|
-
${o}`:r}}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
|
|
126
|
-
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new $r.YAMLParseError(Lr(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 r=Object.assign({_directives:this.directives},this.options),s=new
|
|
125
|
+
${o}`:r}}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:Lh(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let s of e)yield*this.next(s);yield*this.end(t,r)}*next(e){switch(e0.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,r,s)=>{let i=Lr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",r,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=r0.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,r=new $r.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new $r.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=s0.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let r=this.doc.comment;this.doc.comment=r?`${r}
|
|
126
|
+
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new $r.YAMLParseError(Lr(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 r=Object.assign({_directives:this.directives},this.options),s=new n0.Document(void 0,r);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Mh.Composer=tc});var jh=O(Ti=>{"use strict";var i0=Gl(),o0=Ql(),a0=Nr(),Bh=yr();function l0(n,e=!0,t){if(n){let r=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new a0.YAMLParseError([a,a+1],i,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return o0.resolveFlowScalar(n,e,r);case"block-scalar":return i0.resolveBlockScalar({options:{strict:e}},n,r)}}return null}function c0(n,e){let{implicitKey:t=!1,indent:r,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Bh.stringifyString({type:o,value:n},{implicitKey:t,indent:r>0?" ".repeat(r):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:r,source:`
|
|
127
127
|
`}];switch(a[0]){case"|":case">":{let c=a.indexOf(`
|
|
128
128
|
`),d=a.substring(0,c),u=a.substring(c+1)+`
|
|
129
|
-
`,f=[{type:"block-scalar-header",offset:i,indent:r,source:d}];return
|
|
130
|
-
`}),{type:"block-scalar",offset:i,indent:r,props:f,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:r,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:i,indent:r,source:a,end:l};default:return{type:"scalar",offset:i,indent:r,source:a,end:l}}}function
|
|
129
|
+
`,f=[{type:"block-scalar-header",offset:i,indent:r,source:d}];return Dh(f,l)||f.push({type:"newline",offset:-1,indent:r,source:`
|
|
130
|
+
`}),{type:"block-scalar",offset:i,indent:r,props:f,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:r,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:i,indent:r,source:a,end:l};default:return{type:"scalar",offset:i,indent:r,source:a,end:l}}}function u0(n,e,t={}){let{afterKey:r=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in n?n.indent:null;if(r&&typeof a=="number"&&(a+=2),!o)switch(n.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=n.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=Bh.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":d0(n,l);break;case'"':rc(n,l,"double-quoted-scalar");break;case"'":rc(n,l,"single-quoted-scalar");break;default:rc(n,l,"scalar")}}function d0(n,e){let t=e.indexOf(`
|
|
131
131
|
`),r=e.substring(0,t),s=e.substring(t+1)+`
|
|
132
|
-
`;if(n.type==="block-scalar"){let i=n.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=r,n.source=s}else{let{offset:i}=n,o="indent"in n?n.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:r}];
|
|
133
|
-
`});for(let l of Object.keys(n))l!=="type"&&l!=="offset"&&delete n[l];Object.assign(n,{type:"block-scalar",indent:o,props:a,source:s})}}function
|
|
134
|
-
`};delete n.items,Object.assign(n,{type:t,source:e,end:[s]});break}default:{let r="indent"in n?n.indent:-1,s="end"in n&&Array.isArray(n.end)?n.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(n))i!=="type"&&i!=="offset"&&delete n[i];Object.assign(n,{type:t,indent:r,source:e,end:s})}}}
|
|
132
|
+
`;if(n.type==="block-scalar"){let i=n.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=r,n.source=s}else{let{offset:i}=n,o="indent"in n?n.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:r}];Dh(a,"end"in n?n.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
133
|
+
`});for(let l of Object.keys(n))l!=="type"&&l!=="offset"&&delete n[l];Object.assign(n,{type:"block-scalar",indent:o,props:a,source:s})}}function Dh(n,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":n.push(t);break;case"newline":return n.push(t),!0}return!1}function rc(n,e,t){switch(n.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":n.type=t,n.source=e;break;case"block-scalar":{let r=n.props.slice(1),s=e.length;n.props[0].type==="block-scalar-header"&&(s-=n.props[0].source.length);for(let i of r)i.offset+=s;delete n.props,Object.assign(n,{type:t,source:e,end:r});break}case"block-map":case"block-seq":{let s={type:"newline",offset:n.offset+e.length,indent:n.indent,source:`
|
|
134
|
+
`};delete n.items,Object.assign(n,{type:t,source:e,end:[s]});break}default:{let r="indent"in n?n.indent:-1,s="end"in n&&Array.isArray(n.end)?n.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(n))i!=="type"&&i!=="offset"&&delete n[i];Object.assign(n,{type:t,indent:r,source:e,end:s})}}}Ti.createScalarToken=c0;Ti.resolveAsScalar=l0;Ti.setScalarValue=u0});var Uh=O(Fh=>{"use strict";var f0=n=>"type"in n?Pi(n):Oi(n);function Pi(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=Pi(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Oi(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Oi(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Oi(n);if(n.end)for(let t of n.end)e+=t.source;return e}default:{let e=n.source;if("end"in n&&n.end)for(let t of n.end)e+=t.source;return e}}}function Oi({start:n,key:e,sep:t,value:r}){let s="";for(let i of n)s+=i.source;if(e&&(s+=Pi(e)),t)for(let i of t)s+=i.source;return r&&(s+=Pi(r)),s}Fh.stringify=f0});var Hh=O(Kh=>{"use strict";var sc=Symbol("break visit"),p0=Symbol("skip children"),qh=Symbol("remove item");function Ht(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),Jh(Object.freeze([]),n,e)}Ht.BREAK=sc;Ht.SKIP=p0;Ht.REMOVE=qh;Ht.itemAtPath=(n,e)=>{let t=n;for(let[r,s]of e){let i=t?.[r];if(i&&"items"in i)t=i.items[s];else return}return t};Ht.parentCollection=(n,e)=>{let t=Ht.itemAtPath(n,e.slice(0,-1)),r=e[e.length-1][0],s=t?.[r];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function Jh(n,e,t){let r=t(e,n);if(typeof r=="symbol")return r;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=Jh(Object.freeze(n.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===sc)return sc;a===qh&&(i.items.splice(o,1),o-=1)}}typeof r=="function"&&s==="key"&&(r=r(e,n))}}return typeof r=="function"?r(e,n):r}Kh.visit=Ht});var Ci=O(ge=>{"use strict";var ic=jh(),h0=Uh(),m0=Hh(),oc="\uFEFF",ac="",lc="",cc="",g0=n=>!!n&&"items"in n,y0=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function b0(n){switch(n){case oc:return"<BOM>";case ac:return"<DOC>";case lc:return"<FLOW_END>";case cc:return"<SCALAR>";default:return JSON.stringify(n)}}function w0(n){switch(n){case oc:return"byte-order-mark";case ac:return"doc-mode";case lc:return"flow-error-end";case cc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
135
135
|
`:case`\r
|
|
136
|
-
`: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(n[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}ge.createScalarToken=
|
|
137
|
-
`:case"\r":case" ":return!0;default:return!1}}var
|
|
138
|
-
\r `),
|
|
136
|
+
`: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(n[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}ge.createScalarToken=ic.createScalarToken;ge.resolveAsScalar=ic.resolveAsScalar;ge.setScalarValue=ic.setScalarValue;ge.stringify=h0.stringify;ge.visit=m0.visit;ge.BOM=oc;ge.DOCUMENT=ac;ge.FLOW_END=lc;ge.SCALAR=cc;ge.isCollection=g0;ge.isScalar=y0;ge.prettyToken=b0;ge.tokenType=w0});var fc=O(Yh=>{"use strict";var Mr=Ci();function Ie(n){switch(n){case void 0:case" ":case`
|
|
137
|
+
`:case"\r":case" ":return!0;default:return!1}}var Wh=new Set("0123456789ABCDEFabcdef"),v0=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Ri=new Set(",[]{}"),S0=new Set(` ,[]{}
|
|
138
|
+
\r `),uc=n=>!n||S0.has(n),dc=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 r=this.next??"stream";for(;r&&(t||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
|
|
139
139
|
`?!0:t==="\r"?this.buffer[e+1]===`
|
|
140
140
|
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;for(;t===" ";)t=this.buffer[++r+e];if(t==="\r"){let s=this.buffer[r+e+1];if(s===`
|
|
141
141
|
`||!s&&!this.atEnd)return e+r+1}return t===`
|
|
142
142
|
`||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){let r=this.buffer.substr(e,3);if((r==="---"||r==="...")&&Ie(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(`
|
|
143
|
-
`,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]===Mr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,r=e.indexOf("#");for(;r!==-1;){let i=e[r-1];if(i===" "||i===" "){t=r-1;break}else r=e.indexOf("#",r+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield Mr.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==="...")&&Ie(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&&!Ie(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===":")&&Ie(t)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,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(
|
|
143
|
+
`,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]===Mr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,r=e.indexOf("#");for(;r!==-1;){let i=e[r-1];if(i===" "||i===" "){t=r-1;break}else r=e.indexOf("#",r+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield Mr.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==="...")&&Ie(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&&!Ie(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===":")&&Ie(t)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,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(uc),"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,r=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=r=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((r!==-1&&r<this.indentNext&&s[0]!=="#"||r===0&&(s.startsWith("---")||s.startsWith("..."))&&Ie(s[3]))&&!(r===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Mr.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(uc),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||Ie(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 r=this.buffer.substring(0,t),s=r.indexOf(`
|
|
144
144
|
`,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=r.indexOf(`
|
|
145
145
|
`,i)}s!==-1&&(t=s-(r[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>Ie(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,r;e:for(let i=this.pos;r=this.buffer[i];++i)switch(r){case" ":t+=1;break;case`
|
|
146
146
|
`:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
147
147
|
`)break}default:break e}if(!r&&!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(`
|
|
148
148
|
`,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(r=this.buffer[s];r===" ";)r=this.buffer[++s];if(r===" "){for(;r===" "||r===" "||r==="\r"||r===`
|
|
149
149
|
`;)r=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`
|
|
150
|
-
`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Mr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,s;for(;s=this.buffer[++r];)if(s===":"){let i=this.buffer[r+1];if(Ie(i)||e&&
|
|
150
|
+
`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Mr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,s;for(;s=this.buffer[++r];)if(s===":"){let i=this.buffer[r+1];if(Ie(i)||e&&Ri.has(i))break;t=r}else if(Ie(s)){let i=this.buffer[r+1];if(s==="\r"&&(i===`
|
|
151
151
|
`?(r+=1,s=`
|
|
152
|
-
`,i=this.buffer[r+1]):t=r),i==="#"||e&&
|
|
153
|
-
`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&
|
|
152
|
+
`,i=this.buffer[r+1]):t=r),i==="#"||e&&Ri.has(i))break;if(s===`
|
|
153
|
+
`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&Ri.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Mr.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 r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.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(uc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ri.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(;!Ie(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(v0.has(t))t=this.buffer[++e];else if(t==="%"&&Wh.has(this.buffer[e+1])&&Wh.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===`
|
|
154
154
|
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
|
155
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};
|
|
155
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Yh.Lexer=dc});var hc=O(Vh=>{"use strict";var pc=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t<r;){let i=t+r>>1;this.lineStarts[i]<e?t=i+1:r=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Vh.LineCounter=pc});var gc=O(Zh=>{"use strict";var k0=Rs("process"),zh=Ci(),x0=fc();function wt(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function Gh(n){for(let e=0;e<n.length;++e)switch(n[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Qh(n){switch(n?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function _i(n){switch(n.type){case"document":return n.start;case"block-map":{let e=n.items[n.items.length-1];return e.sep??e.start}case"block-seq":return n.items[n.items.length-1].start;default:return[]}}function En(n){if(n.length===0)return[];let e=n.length;e:for(;--e>=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;n[++e]?.type==="space";);return n.splice(e,n.length)}function Xh(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!wt(e.start,"explicit-key-ind")&&!wt(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Qh(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 mc=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 x0.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(e,t))yield*this.next(r);t||(yield*this.end())}*next(e){if(this.source=e,k0.env.LOG_TOKENS&&console.log("|",zh.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=zh.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 r=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:r,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 r=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in r?r.indent:0:t.type==="flow-collection"&&r.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Xh(t),r.type){case"document":r.value=t;break;case"block-scalar":r.props.push(t);break;case"block-map":{let s=r.items[r.items.length-1];if(s.value){r.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=r.items[r.items.length-1];s.value?r.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=r.items[r.items.length-1];!s||s.value?r.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Gh(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(r.type==="document"?r.end=s.start:r.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Gh(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=_i(this.peek(2)),r=En(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:r,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
|
|
156
156
|
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
157
|
-
`,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 r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let r=!this.onKeyLine&&this.indent===e.indent,s=r&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let l=t.sep[a];switch(l.type){case"newline":o.push(a);break;case"space":break;case"comment":l.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(wt(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(
|
|
157
|
+
`,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 r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let r=!this.onKeyLine&&this.indent===e.indent,s=r&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let l=t.sep[a];switch(l.type){case"newline":o.push(a);break;case"space":break;case"comment":l.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(wt(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(Qh(t.key)&&!wt(t.sep,"newline")){let o=En(t.start),a=t.key,l=t.sep;l.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:l}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(wt(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=En(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):wt(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!wt(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 r&&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 r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||wt(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let r=this.startBlockValue(e);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let r=this.startBlockValue(e);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let s=_i(r),i=En(s);Xh(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(`
|
|
158
158
|
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
159
|
-
`,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=
|
|
160
|
-
`),t=e.trim();if(
|
|
159
|
+
`,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=_i(e),r=En(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=_i(e),r=En(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.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())}}};Zh.Parser=mc});var sm=O(Dr=>{"use strict";var em=nc(),E0=Cr(),Br=Nr(),A0=el(),T0=U(),O0=hc(),tm=gc();function nm(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new O0.LineCounter||null,prettyErrors:e}}function P0(n,e={}){let{lineCounter:t,prettyErrors:r}=nm(e),s=new tm.Parser(t?.addNewLine),i=new em.Composer(e),o=Array.from(i.compose(s.parse(n)));if(r&&t)for(let a of o)a.errors.forEach(Br.prettifyError(n,t)),a.warnings.forEach(Br.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function rm(n,e={}){let{lineCounter:t,prettyErrors:r}=nm(e),s=new tm.Parser(t?.addNewLine),i=new em.Composer(e),o=null;for(let a of i.compose(s.parse(n),!0,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Br.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(Br.prettifyError(n,t)),o.warnings.forEach(Br.prettifyError(n,t))),o}function C0(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=rm(n,t);if(!s)return null;if(s.warnings.forEach(i=>A0.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:r},t))}function R0(n,e,t){let r=null;if(typeof e=="function"||Array.isArray(e)?r=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(n===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return T0.isDocument(n)&&!r?n.toString(t):new E0.Document(n,r,t).toString(t)}Dr.parse=C0;Dr.parseAllDocuments=P0;Dr.parseDocument=rm;Dr.stringify=R0});var om=O(J=>{"use strict";var _0=nc(),N0=Cr(),I0=Ml(),yc=Nr(),$0=fr(),vt=U(),L0=mt(),M0=te(),B0=yt(),D0=bt(),j0=Ci(),F0=fc(),U0=hc(),q0=gc(),Ni=sm(),im=lr();J.Composer=_0.Composer;J.Document=N0.Document;J.Schema=I0.Schema;J.YAMLError=yc.YAMLError;J.YAMLParseError=yc.YAMLParseError;J.YAMLWarning=yc.YAMLWarning;J.Alias=$0.Alias;J.isAlias=vt.isAlias;J.isCollection=vt.isCollection;J.isDocument=vt.isDocument;J.isMap=vt.isMap;J.isNode=vt.isNode;J.isPair=vt.isPair;J.isScalar=vt.isScalar;J.isSeq=vt.isSeq;J.Pair=L0.Pair;J.Scalar=M0.Scalar;J.YAMLMap=B0.YAMLMap;J.YAMLSeq=D0.YAMLSeq;J.CST=j0;J.Lexer=F0.Lexer;J.LineCounter=U0.LineCounter;J.Parser=q0.Parser;J.parse=Ni.parse;J.parseAllDocuments=Ni.parseAllDocuments;J.parseDocument=Ni.parseDocument;J.stringify=Ni.stringify;J.visit=im.visit;J.visitAsync=im.visitAsync});function K0(n){try{return JSON.parse(n.trim()),!0}catch{return!1}}function H0(n){let e=n.trim();if(!e.startsWith("<"))return!1;let t=e.match(J0);return t?ar(e,t[1])!==null:!1}function W0(n){let e=n.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=am.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function lm(n){return K0(n)||H0(n)||W0(n)}var am,J0,bc=v(()=>{bf();am=Qw(om(),1),J0=/<([a-zA-Z_][\w.-]*)/});function Y0(n){if(!n?.trim())return[];let e=n.replace(/\r\n/g,`
|
|
160
|
+
`),t=e.trim();if(lm(t))return[{text:t,startLine:1,endLine:e.split(`
|
|
161
161
|
`).length}];let r=e.split(`
|
|
162
162
|
`),s=[],i=0,o=-1,a=0,l=()=>{if(o>=i){let c=r.slice(i,o+1).join(`
|
|
163
|
-
`).trim();c&&s.push({text:c,startLine:i+1,endLine:o+1})}};for(let c=0;c<r.length;c++)r[c].trim()?(a>=2&&o>=i&&(l(),i=c),a=0,o=c):a++;return l(),s}function
|
|
163
|
+
`).trim();c&&s.push({text:c,startLine:i+1,endLine:o+1})}};for(let c=0;c<r.length;c++)r[c].trim()?(a>=2&&o>=i&&(l(),i=c),a=0,o=c):a++;return l(),s}function Ii(n){return Y0(n).map(e=>e.text)}var cm,um=v(()=>{bc();cm=`
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
`});function Ii(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var um=v(()=>{});var W0,Y0,bc,dm=v(()=>{W0=[["\xDF","ss"],["\u1E9E","Ss"],["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xC0","A"],["\xC1","A"],["\xC2","A"],["\xC3","A"],["\xC4","Ae"],["\xC5","A"],["\xC6","AE"],["\xC7","C"],["\xC8","E"],["\xC9","E"],["\xCA","E"],["\xCB","E"],["\u018F","A"],["\xCC","I"],["\xCD","I"],["\xCE","I"],["\xCF","I"],["\xD0","D"],["\xD1","N"],["\xD2","O"],["\xD3","O"],["\xD4","O"],["\xD5","O"],["\xD6","Oe"],["\u014C","O"],["\u0150","O"],["\xD8","O"],["\u0152","OE"],["\xD9","U"],["\xDA","U"],["\xDB","U"],["\xDC","Ue"],["\u0170","U"],["\xDD","Y"],["\xDE","TH"],["\xDF","ss"],["\xE0","a"],["\xE1","a"],["\xE2","a"],["\xE3","a"],["\xE4","ae"],["\xE5","a"],["\xE6","ae"],["\xE7","c"],["\xE8","e"],["\xE9","e"],["\xEA","e"],["\xEB","e"],["\u0259","a"],["\xEC","i"],["\xED","i"],["\xEE","i"],["\xEF","i"],["\xF0","d"],["\xF1","n"],["\xF2","o"],["\xF3","o"],["\xF4","o"],["\xF5","o"],["\xF6","oe"],["\u014D","o"],["\u0151","o"],["\xF8","o"],["\u0153","oe"],["\xF9","u"],["\xFA","u"],["\xFB","u"],["\xFC","ue"],["\u0171","u"],["\xFD","y"],["\xFE","th"],["\xFF","y"],["\xE0","a"],["\xC0","A"],["\xE1","a"],["\xC1","A"],["\xE2","a"],["\xC2","A"],["\xE3","a"],["\xC3","A"],["\xE8","e"],["\xC8","E"],["\xE9","e"],["\xC9","E"],["\xEA","e"],["\xCA","E"],["\xEC","i"],["\xCC","I"],["\xED","i"],["\xCD","I"],["\xF2","o"],["\xD2","O"],["\xF3","o"],["\xD3","O"],["\xF4","o"],["\xD4","O"],["\xF5","o"],["\xD5","O"],["\xF9","u"],["\xD9","U"],["\xFA","u"],["\xDA","U"],["\xFD","y"],["\xDD","Y"],["\u0103","a"],["\u0102","A"],["\u0110","D"],["\u0111","d"],["\u0129","i"],["\u0128","I"],["\u0169","u"],["\u0168","U"],["\u01A1","o"],["\u01A0","O"],["\u01B0","u"],["\u01AF","U"],["\u1EA1","a"],["\u1EA0","A"],["\u1EA3","a"],["\u1EA2","A"],["\u1EA5","a"],["\u1EA4","A"],["\u1EA7","a"],["\u1EA6","A"],["\u1EA9","a"],["\u1EA8","A"],["\u1EAB","a"],["\u1EAA","A"],["\u1EAD","a"],["\u1EAC","A"],["\u1EAF","a"],["\u1EAE","A"],["\u1EB1","a"],["\u1EB0","A"],["\u1EB3","a"],["\u1EB2","A"],["\u1EB5","a"],["\u1EB4","A"],["\u1EB7","a"],["\u1EB6","A"],["\u1EB9","e"],["\u1EB8","E"],["\u1EBB","e"],["\u1EBA","E"],["\u1EBD","e"],["\u1EBC","E"],["\u1EBF","e"],["\u1EBE","E"],["\u1EC1","e"],["\u1EC0","E"],["\u1EC3","e"],["\u1EC2","E"],["\u1EC5","e"],["\u1EC4","E"],["\u1EC7","e"],["\u1EC6","E"],["\u1EC9","i"],["\u1EC8","I"],["\u1ECB","i"],["\u1ECA","I"],["\u1ECD","o"],["\u1ECC","O"],["\u1ECF","o"],["\u1ECE","O"],["\u1ED1","o"],["\u1ED0","O"],["\u1ED3","o"],["\u1ED2","O"],["\u1ED5","o"],["\u1ED4","O"],["\u1ED7","o"],["\u1ED6","O"],["\u1ED9","o"],["\u1ED8","O"],["\u1EDB","o"],["\u1EDA","O"],["\u1EDD","o"],["\u1EDC","O"],["\u1EDF","o"],["\u1EDE","O"],["\u1EE1","o"],["\u1EE0","O"],["\u1EE3","o"],["\u1EE2","O"],["\u1EE5","u"],["\u1EE4","U"],["\u1EE7","u"],["\u1EE6","U"],["\u1EE9","u"],["\u1EE8","U"],["\u1EEB","u"],["\u1EEA","U"],["\u1EED","u"],["\u1EEC","U"],["\u1EEF","u"],["\u1EEE","U"],["\u1EF1","u"],["\u1EF0","U"],["\u1EF3","y"],["\u1EF2","Y"],["\u1EF5","y"],["\u1EF4","Y"],["\u1EF7","y"],["\u1EF6","Y"],["\u1EF9","y"],["\u1EF8","Y"],["\u0621","e"],["\u0622","a"],["\u0623","a"],["\u0624","w"],["\u0625","a"],["\u0626","y"],["\u0627","a"],["\u0628","b"],["\u0629","t"],["\u062A","t"],["\u062B","th"],["\u062C","j"],["\u062D","h"],["\u062E","kh"],["\u062F","d"],["\u0630","dh"],["\u0631","r"],["\u0632","z"],["\u0633","s"],["\u0634","sh"],["\u0635","s"],["\u0636","d"],["\u0637","t"],["\u0638","z"],["\u0639","e"],["\u063A","gh"],["\u0640","_"],["\u0641","f"],["\u0642","q"],["\u0643","k"],["\u0644","l"],["\u0645","m"],["\u0646","n"],["\u0647","h"],["\u0648","w"],["\u0649","a"],["\u064A","y"],["\u064E\u200E","a"],["\u064F","u"],["\u0650\u200E","i"],["\u0660","0"],["\u0661","1"],["\u0662","2"],["\u0663","3"],["\u0664","4"],["\u0665","5"],["\u0666","6"],["\u0667","7"],["\u0668","8"],["\u0669","9"],["\u0686","ch"],["\u06A9","k"],["\u06AF","g"],["\u067E","p"],["\u0698","zh"],["\u06CC","y"],["\u06F0","0"],["\u06F1","1"],["\u06F2","2"],["\u06F3","3"],["\u06F4","4"],["\u06F5","5"],["\u06F6","6"],["\u06F7","7"],["\u06F8","8"],["\u06F9","9"],["\u067C","p"],["\u0681","z"],["\u0685","c"],["\u0689","d"],["\uFEAB","d"],["\uFEAD","r"],["\u0693","r"],["\uFEAF","z"],["\u0696","g"],["\u069A","x"],["\u06AB","g"],["\u06BC","n"],["\u06C0","e"],["\u06D0","e"],["\u06CD","ai"],["\u0679","t"],["\u0688","d"],["\u0691","r"],["\u06BA","n"],["\u06C1","h"],["\u06BE","h"],["\u06D2","e"],["\u0410","A"],["\u0430","a"],["\u0411","B"],["\u0431","b"],["\u0412","V"],["\u0432","v"],["\u0413","G"],["\u0433","g"],["\u0414","D"],["\u0434","d"],["\u044A\u0435","ye"],["\u042A\u0435","Ye"],["\u044A\u0415","yE"],["\u042A\u0415","YE"],["\u0415","E"],["\u0435","e"],["\u0401","Yo"],["\u0451","yo"],["\u0416","Zh"],["\u0436","zh"],["\u0417","Z"],["\u0437","z"],["\u0418","I"],["\u0438","i"],["\u044B\u0439","iy"],["\u042B\u0439","Iy"],["\u042B\u0419","IY"],["\u044B\u0419","iY"],["\u0419","Y"],["\u0439","y"],["\u041A","K"],["\u043A","k"],["\u041B","L"],["\u043B","l"],["\u041C","M"],["\u043C","m"],["\u041D","N"],["\u043D","n"],["\u041E","O"],["\u043E","o"],["\u041F","P"],["\u043F","p"],["\u0420","R"],["\u0440","r"],["\u0421","S"],["\u0441","s"],["\u0422","T"],["\u0442","t"],["\u0423","U"],["\u0443","u"],["\u0424","F"],["\u0444","f"],["\u0425","Kh"],["\u0445","kh"],["\u0426","Ts"],["\u0446","ts"],["\u0427","Ch"],["\u0447","ch"],["\u0428","Sh"],["\u0448","sh"],["\u0429","Sch"],["\u0449","sch"],["\u042A",""],["\u044A",""],["\u042B","Y"],["\u044B","y"],["\u042C",""],["\u044C",""],["\u042D","E"],["\u044D","e"],["\u042E","Yu"],["\u044E","yu"],["\u042F","Ya"],["\u044F","ya"],["\u0103","a"],["\u0102","A"],["\u0219","s"],["\u0218","S"],["\u021B","t"],["\u021A","T"],["\u0163","t"],["\u0162","T"],["\u015F","s"],["\u015E","S"],["\xE7","c"],["\xC7","C"],["\u011F","g"],["\u011E","G"],["\u0131","i"],["\u0130","I"],["\u0561","a"],["\u0531","A"],["\u0562","b"],["\u0532","B"],["\u0563","g"],["\u0533","G"],["\u0564","d"],["\u0534","D"],["\u0565","ye"],["\u0535","Ye"],["\u0566","z"],["\u0536","Z"],["\u0567","e"],["\u0537","E"],["\u0568","y"],["\u0538","Y"],["\u0569","t"],["\u0539","T"],["\u056A","zh"],["\u053A","Zh"],["\u056B","i"],["\u053B","I"],["\u056C","l"],["\u053C","L"],["\u056D","kh"],["\u053D","Kh"],["\u056E","ts"],["\u053E","Ts"],["\u056F","k"],["\u053F","K"],["\u0570","h"],["\u0540","H"],["\u0571","dz"],["\u0541","Dz"],["\u0572","gh"],["\u0542","Gh"],["\u0573","tch"],["\u0543","Tch"],["\u0574","m"],["\u0544","M"],["\u0575","y"],["\u0545","Y"],["\u0576","n"],["\u0546","N"],["\u0577","sh"],["\u0547","Sh"],["\u0578\u0582","u"],["\u0548\u0552","U"],["\u0548\u0582","U"],["\u0578","vo"],["\u0548","Vo"],["\u0579","ch"],["\u0549","Ch"],["\u057A","p"],["\u054A","P"],["\u057B","j"],["\u054B","J"],["\u057C","r"],["\u054C","R"],["\u057D","s"],["\u054D","S"],["\u057E","v"],["\u054E","V"],["\u057F","t"],["\u054F","T"],["\u0580","r"],["\u0550","R"],["\u0581","c"],["\u0551","C"],["\u0583","p"],["\u0553","P"],["\u0584","q"],["\u0554","Q"],["\u0585","o"],["\u0555","O"],["\u0586","f"],["\u0556","F"],["\u0587","yev"],["\u10D0","a"],["\u10D1","b"],["\u10D2","g"],["\u10D3","d"],["\u10D4","e"],["\u10D5","v"],["\u10D6","z"],["\u10D7","t"],["\u10D8","i"],["\u10D9","k"],["\u10DA","l"],["\u10DB","m"],["\u10DC","n"],["\u10DD","o"],["\u10DE","p"],["\u10DF","zh"],["\u10E0","r"],["\u10E1","s"],["\u10E2","t"],["\u10E3","u"],["\u10E4","ph"],["\u10E5","q"],["\u10E6","gh"],["\u10E7","k"],["\u10E8","sh"],["\u10E9","ch"],["\u10EA","ts"],["\u10EB","dz"],["\u10EC","ts"],["\u10ED","tch"],["\u10EE","kh"],["\u10EF","j"],["\u10F0","h"],["\u010D","c"],["\u010F","d"],["\u011B","e"],["\u0148","n"],["\u0159","r"],["\u0161","s"],["\u0165","t"],["\u016F","u"],["\u017E","z"],["\u010C","C"],["\u010E","D"],["\u011A","E"],["\u0147","N"],["\u0158","R"],["\u0160","S"],["\u0164","T"],["\u016E","U"],["\u017D","Z"],["\u0780","h"],["\u0781","sh"],["\u0782","n"],["\u0783","r"],["\u0784","b"],["\u0785","lh"],["\u0786","k"],["\u0787","a"],["\u0788","v"],["\u0789","m"],["\u078A","f"],["\u078B","dh"],["\u078C","th"],["\u078D","l"],["\u078E","g"],["\u078F","gn"],["\u0790","s"],["\u0791","d"],["\u0792","z"],["\u0793","t"],["\u0794","y"],["\u0795","p"],["\u0796","j"],["\u0797","ch"],["\u0798","tt"],["\u0799","hh"],["\u079A","kh"],["\u079B","th"],["\u079C","z"],["\u079D","sh"],["\u079E","s"],["\u079F","d"],["\u07A0","t"],["\u07A1","z"],["\u07A2","a"],["\u07A3","gh"],["\u07A4","q"],["\u07A5","w"],["\u07A6","a"],["\u07A7","aa"],["\u07A8","i"],["\u07A9","ee"],["\u07AA","u"],["\u07AB","oo"],["\u07AC","e"],["\u07AD","ey"],["\u07AE","o"],["\u07AF","oa"],["\u07B0",""],["\u03B1","a"],["\u03B2","v"],["\u03B3","g"],["\u03B4","d"],["\u03B5","e"],["\u03B6","z"],["\u03B7","i"],["\u03B8","th"],["\u03B9","i"],["\u03BA","k"],["\u03BB","l"],["\u03BC","m"],["\u03BD","n"],["\u03BE","ks"],["\u03BF","o"],["\u03C0","p"],["\u03C1","r"],["\u03C3","s"],["\u03C4","t"],["\u03C5","y"],["\u03C6","f"],["\u03C7","x"],["\u03C8","ps"],["\u03C9","o"],["\u03AC","a"],["\u03AD","e"],["\u03AF","i"],["\u03CC","o"],["\u03CD","y"],["\u03AE","i"],["\u03CE","o"],["\u03C2","s"],["\u03CA","i"],["\u03B0","y"],["\u03CB","y"],["\u0390","i"],["\u0391","A"],["\u0392","B"],["\u0393","G"],["\u0394","D"],["\u0395","E"],["\u0396","Z"],["\u0397","I"],["\u0398","TH"],["\u0399","I"],["\u039A","K"],["\u039B","L"],["\u039C","M"],["\u039D","N"],["\u039E","KS"],["\u039F","O"],["\u03A0","P"],["\u03A1","R"],["\u03A3","S"],["\u03A4","T"],["\u03A5","Y"],["\u03A6","F"],["\u03A7","X"],["\u03A8","PS"],["\u03A9","O"],["\u0386","A"],["\u0388","E"],["\u038A","I"],["\u038C","O"],["\u038E","Y"],["\u0389","I"],["\u038F","O"],["\u03AA","I"],["\u03AB","Y"],["\u0101","a"],["\u0113","e"],["\u0123","g"],["\u012B","i"],["\u0137","k"],["\u013C","l"],["\u0146","n"],["\u016B","u"],["\u0100","A"],["\u0112","E"],["\u0122","G"],["\u012A","I"],["\u0136","K"],["\u013B","L"],["\u0145","N"],["\u016A","U"],["\u010D","c"],["\u0161","s"],["\u017E","z"],["\u010C","C"],["\u0160","S"],["\u017D","Z"],["\u0105","a"],["\u010D","c"],["\u0119","e"],["\u0117","e"],["\u012F","i"],["\u0161","s"],["\u0173","u"],["\u016B","u"],["\u017E","z"],["\u0104","A"],["\u010C","C"],["\u0118","E"],["\u0116","E"],["\u012E","I"],["\u0160","S"],["\u0172","U"],["\u016A","U"],["\u040C","Kj"],["\u045C","kj"],["\u0409","Lj"],["\u0459","lj"],["\u040A","Nj"],["\u045A","nj"],["\u0422\u0441","Ts"],["\u0442\u0441","ts"],["\u0105","a"],["\u0107","c"],["\u0119","e"],["\u0142","l"],["\u0144","n"],["\u015B","s"],["\u017A","z"],["\u017C","z"],["\u0104","A"],["\u0106","C"],["\u0118","E"],["\u0141","L"],["\u0143","N"],["\u015A","S"],["\u0179","Z"],["\u017B","Z"],["\u0404","Ye"],["\u0406","I"],["\u0407","Yi"],["\u0490","G"],["\u0454","ye"],["\u0456","i"],["\u0457","yi"],["\u0491","g"],["\u0132","IJ"],["\u0133","ij"],["\xA2","c"],["\xA5","Y"],["\u07FF","b"],["\u09F3","t"],["\u0AF1","Bo"],["\u0E3F","B"],["\u20A0","CE"],["\u20A1","C"],["\u20A2","Cr"],["\u20A3","F"],["\u20A5","m"],["\u20A6","N"],["\u20A7","Pt"],["\u20A8","Rs"],["\u20A9","W"],["\u20AB","s"],["\u20AC","E"],["\u20AD","K"],["\u20AE","T"],["\u20AF","Dp"],["\u20B0","S"],["\u20B1","P"],["\u20B2","G"],["\u20B3","A"],["\u20B4","S"],["\u20B5","C"],["\u20B6","tt"],["\u20B7","S"],["\u20B8","T"],["\u20B9","R"],["\u20BA","L"],["\u20BD","P"],["\u20BF","B"],["\uFE69","$"],["\uFFE0","c"],["\uFFE5","Y"],["\uFFE6","W"],["\u{1D400}","A"],["\u{1D401}","B"],["\u{1D402}","C"],["\u{1D403}","D"],["\u{1D404}","E"],["\u{1D405}","F"],["\u{1D406}","G"],["\u{1D407}","H"],["\u{1D408}","I"],["\u{1D409}","J"],["\u{1D40A}","K"],["\u{1D40B}","L"],["\u{1D40C}","M"],["\u{1D40D}","N"],["\u{1D40E}","O"],["\u{1D40F}","P"],["\u{1D410}","Q"],["\u{1D411}","R"],["\u{1D412}","S"],["\u{1D413}","T"],["\u{1D414}","U"],["\u{1D415}","V"],["\u{1D416}","W"],["\u{1D417}","X"],["\u{1D418}","Y"],["\u{1D419}","Z"],["\u{1D41A}","a"],["\u{1D41B}","b"],["\u{1D41C}","c"],["\u{1D41D}","d"],["\u{1D41E}","e"],["\u{1D41F}","f"],["\u{1D420}","g"],["\u{1D421}","h"],["\u{1D422}","i"],["\u{1D423}","j"],["\u{1D424}","k"],["\u{1D425}","l"],["\u{1D426}","m"],["\u{1D427}","n"],["\u{1D428}","o"],["\u{1D429}","p"],["\u{1D42A}","q"],["\u{1D42B}","r"],["\u{1D42C}","s"],["\u{1D42D}","t"],["\u{1D42E}","u"],["\u{1D42F}","v"],["\u{1D430}","w"],["\u{1D431}","x"],["\u{1D432}","y"],["\u{1D433}","z"],["\u{1D434}","A"],["\u{1D435}","B"],["\u{1D436}","C"],["\u{1D437}","D"],["\u{1D438}","E"],["\u{1D439}","F"],["\u{1D43A}","G"],["\u{1D43B}","H"],["\u{1D43C}","I"],["\u{1D43D}","J"],["\u{1D43E}","K"],["\u{1D43F}","L"],["\u{1D440}","M"],["\u{1D441}","N"],["\u{1D442}","O"],["\u{1D443}","P"],["\u{1D444}","Q"],["\u{1D445}","R"],["\u{1D446}","S"],["\u{1D447}","T"],["\u{1D448}","U"],["\u{1D449}","V"],["\u{1D44A}","W"],["\u{1D44B}","X"],["\u{1D44C}","Y"],["\u{1D44D}","Z"],["\u{1D44E}","a"],["\u{1D44F}","b"],["\u{1D450}","c"],["\u{1D451}","d"],["\u{1D452}","e"],["\u{1D453}","f"],["\u{1D454}","g"],["\u{1D456}","i"],["\u{1D457}","j"],["\u{1D458}","k"],["\u{1D459}","l"],["\u{1D45A}","m"],["\u{1D45B}","n"],["\u{1D45C}","o"],["\u{1D45D}","p"],["\u{1D45E}","q"],["\u{1D45F}","r"],["\u{1D460}","s"],["\u{1D461}","t"],["\u{1D462}","u"],["\u{1D463}","v"],["\u{1D464}","w"],["\u{1D465}","x"],["\u{1D466}","y"],["\u{1D467}","z"],["\u{1D468}","A"],["\u{1D469}","B"],["\u{1D46A}","C"],["\u{1D46B}","D"],["\u{1D46C}","E"],["\u{1D46D}","F"],["\u{1D46E}","G"],["\u{1D46F}","H"],["\u{1D470}","I"],["\u{1D471}","J"],["\u{1D472}","K"],["\u{1D473}","L"],["\u{1D474}","M"],["\u{1D475}","N"],["\u{1D476}","O"],["\u{1D477}","P"],["\u{1D478}","Q"],["\u{1D479}","R"],["\u{1D47A}","S"],["\u{1D47B}","T"],["\u{1D47C}","U"],["\u{1D47D}","V"],["\u{1D47E}","W"],["\u{1D47F}","X"],["\u{1D480}","Y"],["\u{1D481}","Z"],["\u{1D482}","a"],["\u{1D483}","b"],["\u{1D484}","c"],["\u{1D485}","d"],["\u{1D486}","e"],["\u{1D487}","f"],["\u{1D488}","g"],["\u{1D489}","h"],["\u{1D48A}","i"],["\u{1D48B}","j"],["\u{1D48C}","k"],["\u{1D48D}","l"],["\u{1D48E}","m"],["\u{1D48F}","n"],["\u{1D490}","o"],["\u{1D491}","p"],["\u{1D492}","q"],["\u{1D493}","r"],["\u{1D494}","s"],["\u{1D495}","t"],["\u{1D496}","u"],["\u{1D497}","v"],["\u{1D498}","w"],["\u{1D499}","x"],["\u{1D49A}","y"],["\u{1D49B}","z"],["\u{1D49C}","A"],["\u{1D49E}","C"],["\u{1D49F}","D"],["\u{1D4A2}","g"],["\u{1D4A5}","J"],["\u{1D4A6}","K"],["\u{1D4A9}","N"],["\u{1D4AA}","O"],["\u{1D4AB}","P"],["\u{1D4AC}","Q"],["\u{1D4AE}","S"],["\u{1D4AF}","T"],["\u{1D4B0}","U"],["\u{1D4B1}","V"],["\u{1D4B2}","W"],["\u{1D4B3}","X"],["\u{1D4B4}","Y"],["\u{1D4B5}","Z"],["\u{1D4B6}","a"],["\u{1D4B7}","b"],["\u{1D4B8}","c"],["\u{1D4B9}","d"],["\u{1D4BB}","f"],["\u{1D4BD}","h"],["\u{1D4BE}","i"],["\u{1D4BF}","j"],["\u{1D4C0}","k"],["\u{1D4C1}","l"],["\u{1D4C2}","m"],["\u{1D4C3}","n"],["\u{1D4C5}","p"],["\u{1D4C6}","q"],["\u{1D4C7}","r"],["\u{1D4C8}","s"],["\u{1D4C9}","t"],["\u{1D4CA}","u"],["\u{1D4CB}","v"],["\u{1D4CC}","w"],["\u{1D4CD}","x"],["\u{1D4CE}","y"],["\u{1D4CF}","z"],["\u{1D4D0}","A"],["\u{1D4D1}","B"],["\u{1D4D2}","C"],["\u{1D4D3}","D"],["\u{1D4D4}","E"],["\u{1D4D5}","F"],["\u{1D4D6}","G"],["\u{1D4D7}","H"],["\u{1D4D8}","I"],["\u{1D4D9}","J"],["\u{1D4DA}","K"],["\u{1D4DB}","L"],["\u{1D4DC}","M"],["\u{1D4DD}","N"],["\u{1D4DE}","O"],["\u{1D4DF}","P"],["\u{1D4E0}","Q"],["\u{1D4E1}","R"],["\u{1D4E2}","S"],["\u{1D4E3}","T"],["\u{1D4E4}","U"],["\u{1D4E5}","V"],["\u{1D4E6}","W"],["\u{1D4E7}","X"],["\u{1D4E8}","Y"],["\u{1D4E9}","Z"],["\u{1D4EA}","a"],["\u{1D4EB}","b"],["\u{1D4EC}","c"],["\u{1D4ED}","d"],["\u{1D4EE}","e"],["\u{1D4EF}","f"],["\u{1D4F0}","g"],["\u{1D4F1}","h"],["\u{1D4F2}","i"],["\u{1D4F3}","j"],["\u{1D4F4}","k"],["\u{1D4F5}","l"],["\u{1D4F6}","m"],["\u{1D4F7}","n"],["\u{1D4F8}","o"],["\u{1D4F9}","p"],["\u{1D4FA}","q"],["\u{1D4FB}","r"],["\u{1D4FC}","s"],["\u{1D4FD}","t"],["\u{1D4FE}","u"],["\u{1D4FF}","v"],["\u{1D500}","w"],["\u{1D501}","x"],["\u{1D502}","y"],["\u{1D503}","z"],["\u{1D504}","A"],["\u{1D505}","B"],["\u{1D507}","D"],["\u{1D508}","E"],["\u{1D509}","F"],["\u{1D50A}","G"],["\u{1D50D}","J"],["\u{1D50E}","K"],["\u{1D50F}","L"],["\u{1D510}","M"],["\u{1D511}","N"],["\u{1D512}","O"],["\u{1D513}","P"],["\u{1D514}","Q"],["\u{1D516}","S"],["\u{1D517}","T"],["\u{1D518}","U"],["\u{1D519}","V"],["\u{1D51A}","W"],["\u{1D51B}","X"],["\u{1D51C}","Y"],["\u{1D51E}","a"],["\u{1D51F}","b"],["\u{1D520}","c"],["\u{1D521}","d"],["\u{1D522}","e"],["\u{1D523}","f"],["\u{1D524}","g"],["\u{1D525}","h"],["\u{1D526}","i"],["\u{1D527}","j"],["\u{1D528}","k"],["\u{1D529}","l"],["\u{1D52A}","m"],["\u{1D52B}","n"],["\u{1D52C}","o"],["\u{1D52D}","p"],["\u{1D52E}","q"],["\u{1D52F}","r"],["\u{1D530}","s"],["\u{1D531}","t"],["\u{1D532}","u"],["\u{1D533}","v"],["\u{1D534}","w"],["\u{1D535}","x"],["\u{1D536}","y"],["\u{1D537}","z"],["\u{1D538}","A"],["\u{1D539}","B"],["\u{1D53B}","D"],["\u{1D53C}","E"],["\u{1D53D}","F"],["\u{1D53E}","G"],["\u{1D540}","I"],["\u{1D541}","J"],["\u{1D542}","K"],["\u{1D543}","L"],["\u{1D544}","M"],["\u{1D546}","O"],["\u{1D54A}","S"],["\u{1D54B}","T"],["\u{1D54C}","U"],["\u{1D54D}","V"],["\u{1D54E}","W"],["\u{1D54F}","X"],["\u{1D550}","Y"],["\u{1D552}","a"],["\u{1D553}","b"],["\u{1D554}","c"],["\u{1D555}","d"],["\u{1D556}","e"],["\u{1D557}","f"],["\u{1D558}","g"],["\u{1D559}","h"],["\u{1D55A}","i"],["\u{1D55B}","j"],["\u{1D55C}","k"],["\u{1D55D}","l"],["\u{1D55E}","m"],["\u{1D55F}","n"],["\u{1D560}","o"],["\u{1D561}","p"],["\u{1D562}","q"],["\u{1D563}","r"],["\u{1D564}","s"],["\u{1D565}","t"],["\u{1D566}","u"],["\u{1D567}","v"],["\u{1D568}","w"],["\u{1D569}","x"],["\u{1D56A}","y"],["\u{1D56B}","z"],["\u{1D56C}","A"],["\u{1D56D}","B"],["\u{1D56E}","C"],["\u{1D56F}","D"],["\u{1D570}","E"],["\u{1D571}","F"],["\u{1D572}","G"],["\u{1D573}","H"],["\u{1D574}","I"],["\u{1D575}","J"],["\u{1D576}","K"],["\u{1D577}","L"],["\u{1D578}","M"],["\u{1D579}","N"],["\u{1D57A}","O"],["\u{1D57B}","P"],["\u{1D57C}","Q"],["\u{1D57D}","R"],["\u{1D57E}","S"],["\u{1D57F}","T"],["\u{1D580}","U"],["\u{1D581}","V"],["\u{1D582}","W"],["\u{1D583}","X"],["\u{1D584}","Y"],["\u{1D585}","Z"],["\u{1D586}","a"],["\u{1D587}","b"],["\u{1D588}","c"],["\u{1D589}","d"],["\u{1D58A}","e"],["\u{1D58B}","f"],["\u{1D58C}","g"],["\u{1D58D}","h"],["\u{1D58E}","i"],["\u{1D58F}","j"],["\u{1D590}","k"],["\u{1D591}","l"],["\u{1D592}","m"],["\u{1D593}","n"],["\u{1D594}","o"],["\u{1D595}","p"],["\u{1D596}","q"],["\u{1D597}","r"],["\u{1D598}","s"],["\u{1D599}","t"],["\u{1D59A}","u"],["\u{1D59B}","v"],["\u{1D59C}","w"],["\u{1D59D}","x"],["\u{1D59E}","y"],["\u{1D59F}","z"],["\u{1D5A0}","A"],["\u{1D5A1}","B"],["\u{1D5A2}","C"],["\u{1D5A3}","D"],["\u{1D5A4}","E"],["\u{1D5A5}","F"],["\u{1D5A6}","G"],["\u{1D5A7}","H"],["\u{1D5A8}","I"],["\u{1D5A9}","J"],["\u{1D5AA}","K"],["\u{1D5AB}","L"],["\u{1D5AC}","M"],["\u{1D5AD}","N"],["\u{1D5AE}","O"],["\u{1D5AF}","P"],["\u{1D5B0}","Q"],["\u{1D5B1}","R"],["\u{1D5B2}","S"],["\u{1D5B3}","T"],["\u{1D5B4}","U"],["\u{1D5B5}","V"],["\u{1D5B6}","W"],["\u{1D5B7}","X"],["\u{1D5B8}","Y"],["\u{1D5B9}","Z"],["\u{1D5BA}","a"],["\u{1D5BB}","b"],["\u{1D5BC}","c"],["\u{1D5BD}","d"],["\u{1D5BE}","e"],["\u{1D5BF}","f"],["\u{1D5C0}","g"],["\u{1D5C1}","h"],["\u{1D5C2}","i"],["\u{1D5C3}","j"],["\u{1D5C4}","k"],["\u{1D5C5}","l"],["\u{1D5C6}","m"],["\u{1D5C7}","n"],["\u{1D5C8}","o"],["\u{1D5C9}","p"],["\u{1D5CA}","q"],["\u{1D5CB}","r"],["\u{1D5CC}","s"],["\u{1D5CD}","t"],["\u{1D5CE}","u"],["\u{1D5CF}","v"],["\u{1D5D0}","w"],["\u{1D5D1}","x"],["\u{1D5D2}","y"],["\u{1D5D3}","z"],["\u{1D5D4}","A"],["\u{1D5D5}","B"],["\u{1D5D6}","C"],["\u{1D5D7}","D"],["\u{1D5D8}","E"],["\u{1D5D9}","F"],["\u{1D5DA}","G"],["\u{1D5DB}","H"],["\u{1D5DC}","I"],["\u{1D5DD}","J"],["\u{1D5DE}","K"],["\u{1D5DF}","L"],["\u{1D5E0}","M"],["\u{1D5E1}","N"],["\u{1D5E2}","O"],["\u{1D5E3}","P"],["\u{1D5E4}","Q"],["\u{1D5E5}","R"],["\u{1D5E6}","S"],["\u{1D5E7}","T"],["\u{1D5E8}","U"],["\u{1D5E9}","V"],["\u{1D5EA}","W"],["\u{1D5EB}","X"],["\u{1D5EC}","Y"],["\u{1D5ED}","Z"],["\u{1D5EE}","a"],["\u{1D5EF}","b"],["\u{1D5F0}","c"],["\u{1D5F1}","d"],["\u{1D5F2}","e"],["\u{1D5F3}","f"],["\u{1D5F4}","g"],["\u{1D5F5}","h"],["\u{1D5F6}","i"],["\u{1D5F7}","j"],["\u{1D5F8}","k"],["\u{1D5F9}","l"],["\u{1D5FA}","m"],["\u{1D5FB}","n"],["\u{1D5FC}","o"],["\u{1D5FD}","p"],["\u{1D5FE}","q"],["\u{1D5FF}","r"],["\u{1D600}","s"],["\u{1D601}","t"],["\u{1D602}","u"],["\u{1D603}","v"],["\u{1D604}","w"],["\u{1D605}","x"],["\u{1D606}","y"],["\u{1D607}","z"],["\u{1D608}","A"],["\u{1D609}","B"],["\u{1D60A}","C"],["\u{1D60B}","D"],["\u{1D60C}","E"],["\u{1D60D}","F"],["\u{1D60E}","G"],["\u{1D60F}","H"],["\u{1D610}","I"],["\u{1D611}","J"],["\u{1D612}","K"],["\u{1D613}","L"],["\u{1D614}","M"],["\u{1D615}","N"],["\u{1D616}","O"],["\u{1D617}","P"],["\u{1D618}","Q"],["\u{1D619}","R"],["\u{1D61A}","S"],["\u{1D61B}","T"],["\u{1D61C}","U"],["\u{1D61D}","V"],["\u{1D61E}","W"],["\u{1D61F}","X"],["\u{1D620}","Y"],["\u{1D621}","Z"],["\u{1D622}","a"],["\u{1D623}","b"],["\u{1D624}","c"],["\u{1D625}","d"],["\u{1D626}","e"],["\u{1D627}","f"],["\u{1D628}","g"],["\u{1D629}","h"],["\u{1D62A}","i"],["\u{1D62B}","j"],["\u{1D62C}","k"],["\u{1D62D}","l"],["\u{1D62E}","m"],["\u{1D62F}","n"],["\u{1D630}","o"],["\u{1D631}","p"],["\u{1D632}","q"],["\u{1D633}","r"],["\u{1D634}","s"],["\u{1D635}","t"],["\u{1D636}","u"],["\u{1D637}","v"],["\u{1D638}","w"],["\u{1D639}","x"],["\u{1D63A}","y"],["\u{1D63B}","z"],["\u{1D63C}","A"],["\u{1D63D}","B"],["\u{1D63E}","C"],["\u{1D63F}","D"],["\u{1D640}","E"],["\u{1D641}","F"],["\u{1D642}","G"],["\u{1D643}","H"],["\u{1D644}","I"],["\u{1D645}","J"],["\u{1D646}","K"],["\u{1D647}","L"],["\u{1D648}","M"],["\u{1D649}","N"],["\u{1D64A}","O"],["\u{1D64B}","P"],["\u{1D64C}","Q"],["\u{1D64D}","R"],["\u{1D64E}","S"],["\u{1D64F}","T"],["\u{1D650}","U"],["\u{1D651}","V"],["\u{1D652}","W"],["\u{1D653}","X"],["\u{1D654}","Y"],["\u{1D655}","Z"],["\u{1D656}","a"],["\u{1D657}","b"],["\u{1D658}","c"],["\u{1D659}","d"],["\u{1D65A}","e"],["\u{1D65B}","f"],["\u{1D65C}","g"],["\u{1D65D}","h"],["\u{1D65E}","i"],["\u{1D65F}","j"],["\u{1D660}","k"],["\u{1D661}","l"],["\u{1D662}","m"],["\u{1D663}","n"],["\u{1D664}","o"],["\u{1D665}","p"],["\u{1D666}","q"],["\u{1D667}","r"],["\u{1D668}","s"],["\u{1D669}","t"],["\u{1D66A}","u"],["\u{1D66B}","v"],["\u{1D66C}","w"],["\u{1D66D}","x"],["\u{1D66E}","y"],["\u{1D66F}","z"],["\u{1D670}","A"],["\u{1D671}","B"],["\u{1D672}","C"],["\u{1D673}","D"],["\u{1D674}","E"],["\u{1D675}","F"],["\u{1D676}","G"],["\u{1D677}","H"],["\u{1D678}","I"],["\u{1D679}","J"],["\u{1D67A}","K"],["\u{1D67B}","L"],["\u{1D67C}","M"],["\u{1D67D}","N"],["\u{1D67E}","O"],["\u{1D67F}","P"],["\u{1D680}","Q"],["\u{1D681}","R"],["\u{1D682}","S"],["\u{1D683}","T"],["\u{1D684}","U"],["\u{1D685}","V"],["\u{1D686}","W"],["\u{1D687}","X"],["\u{1D688}","Y"],["\u{1D689}","Z"],["\u{1D68A}","a"],["\u{1D68B}","b"],["\u{1D68C}","c"],["\u{1D68D}","d"],["\u{1D68E}","e"],["\u{1D68F}","f"],["\u{1D690}","g"],["\u{1D691}","h"],["\u{1D692}","i"],["\u{1D693}","j"],["\u{1D694}","k"],["\u{1D695}","l"],["\u{1D696}","m"],["\u{1D697}","n"],["\u{1D698}","o"],["\u{1D699}","p"],["\u{1D69A}","q"],["\u{1D69B}","r"],["\u{1D69C}","s"],["\u{1D69D}","t"],["\u{1D69E}","u"],["\u{1D69F}","v"],["\u{1D6A0}","w"],["\u{1D6A1}","x"],["\u{1D6A2}","y"],["\u{1D6A3}","z"],["\u{1D6A4}","l"],["\u{1D6A5}","j"],["\u{1D6E2}","A"],["\u{1D6E3}","B"],["\u{1D6E4}","G"],["\u{1D6E5}","D"],["\u{1D6E6}","E"],["\u{1D6E7}","Z"],["\u{1D6E8}","I"],["\u{1D6E9}","TH"],["\u{1D6EA}","I"],["\u{1D6EB}","K"],["\u{1D6EC}","L"],["\u{1D6ED}","M"],["\u{1D6EE}","N"],["\u{1D6EF}","KS"],["\u{1D6F0}","O"],["\u{1D6F1}","P"],["\u{1D6F2}","R"],["\u{1D6F3}","TH"],["\u{1D6F4}","S"],["\u{1D6F5}","T"],["\u{1D6F6}","Y"],["\u{1D6F7}","F"],["\u{1D6F8}","x"],["\u{1D6F9}","PS"],["\u{1D6FA}","O"],["\u{1D6FB}","D"],["\u{1D6FC}","a"],["\u{1D6FD}","b"],["\u{1D6FE}","g"],["\u{1D6FF}","d"],["\u{1D700}","e"],["\u{1D701}","z"],["\u{1D702}","i"],["\u{1D703}","th"],["\u{1D704}","i"],["\u{1D705}","k"],["\u{1D706}","l"],["\u{1D707}","m"],["\u{1D708}","n"],["\u{1D709}","ks"],["\u{1D70A}","o"],["\u{1D70B}","p"],["\u{1D70C}","r"],["\u{1D70D}","s"],["\u{1D70E}","s"],["\u{1D70F}","t"],["\u{1D710}","y"],["\u{1D711}","f"],["\u{1D712}","x"],["\u{1D713}","ps"],["\u{1D714}","o"],["\u{1D715}","d"],["\u{1D716}","E"],["\u{1D717}","TH"],["\u{1D718}","K"],["\u{1D719}","f"],["\u{1D71A}","r"],["\u{1D71B}","p"],["\u{1D71C}","A"],["\u{1D71D}","V"],["\u{1D71E}","G"],["\u{1D71F}","D"],["\u{1D720}","E"],["\u{1D721}","Z"],["\u{1D722}","I"],["\u{1D723}","TH"],["\u{1D724}","I"],["\u{1D725}","K"],["\u{1D726}","L"],["\u{1D727}","M"],["\u{1D728}","N"],["\u{1D729}","KS"],["\u{1D72A}","O"],["\u{1D72B}","P"],["\u{1D72C}","S"],["\u{1D72D}","TH"],["\u{1D72E}","S"],["\u{1D72F}","T"],["\u{1D730}","Y"],["\u{1D731}","F"],["\u{1D732}","X"],["\u{1D733}","PS"],["\u{1D734}","O"],["\u{1D735}","D"],["\u{1D736}","a"],["\u{1D737}","v"],["\u{1D738}","g"],["\u{1D739}","d"],["\u{1D73A}","e"],["\u{1D73B}","z"],["\u{1D73C}","i"],["\u{1D73D}","th"],["\u{1D73E}","i"],["\u{1D73F}","k"],["\u{1D740}","l"],["\u{1D741}","m"],["\u{1D742}","n"],["\u{1D743}","ks"],["\u{1D744}","o"],["\u{1D745}","p"],["\u{1D746}","r"],["\u{1D747}","s"],["\u{1D748}","s"],["\u{1D749}","t"],["\u{1D74A}","y"],["\u{1D74B}","f"],["\u{1D74C}","x"],["\u{1D74D}","ps"],["\u{1D74E}","o"],["\u{1D74F}","a"],["\u{1D750}","e"],["\u{1D751}","i"],["\u{1D752}","k"],["\u{1D753}","f"],["\u{1D754}","r"],["\u{1D755}","p"],["\u{1D756}","A"],["\u{1D757}","B"],["\u{1D758}","G"],["\u{1D759}","D"],["\u{1D75A}","E"],["\u{1D75B}","Z"],["\u{1D75C}","I"],["\u{1D75D}","TH"],["\u{1D75E}","I"],["\u{1D75F}","K"],["\u{1D760}","L"],["\u{1D761}","M"],["\u{1D762}","N"],["\u{1D763}","KS"],["\u{1D764}","O"],["\u{1D765}","P"],["\u{1D766}","R"],["\u{1D767}","TH"],["\u{1D768}","S"],["\u{1D769}","T"],["\u{1D76A}","Y"],["\u{1D76B}","F"],["\u{1D76C}","X"],["\u{1D76D}","PS"],["\u{1D76E}","O"],["\u{1D76F}","D"],["\u{1D770}","a"],["\u{1D771}","v"],["\u{1D772}","g"],["\u{1D773}","d"],["\u{1D774}","e"],["\u{1D775}","z"],["\u{1D776}","i"],["\u{1D777}","th"],["\u{1D778}","i"],["\u{1D779}","k"],["\u{1D77A}","l"],["\u{1D77B}","m"],["\u{1D77C}","n"],["\u{1D77D}","ks"],["\u{1D77E}","o"],["\u{1D77F}","p"],["\u{1D780}","r"],["\u{1D781}","s"],["\u{1D782}","s"],["\u{1D783}","t"],["\u{1D784}","y"],["\u{1D785}","f"],["\u{1D786}","x"],["\u{1D787}","ps"],["\u{1D788}","o"],["\u{1D789}","a"],["\u{1D78A}","e"],["\u{1D78B}","i"],["\u{1D78C}","k"],["\u{1D78D}","f"],["\u{1D78E}","r"],["\u{1D78F}","p"],["\u{1D790}","A"],["\u{1D791}","V"],["\u{1D792}","G"],["\u{1D793}","D"],["\u{1D794}","E"],["\u{1D795}","Z"],["\u{1D796}","I"],["\u{1D797}","TH"],["\u{1D798}","I"],["\u{1D799}","K"],["\u{1D79A}","L"],["\u{1D79B}","M"],["\u{1D79C}","N"],["\u{1D79D}","KS"],["\u{1D79E}","O"],["\u{1D79F}","P"],["\u{1D7A0}","S"],["\u{1D7A1}","TH"],["\u{1D7A2}","S"],["\u{1D7A3}","T"],["\u{1D7A4}","Y"],["\u{1D7A5}","F"],["\u{1D7A6}","X"],["\u{1D7A7}","PS"],["\u{1D7A8}","O"],["\u{1D7A9}","D"],["\u{1D7AA}","av"],["\u{1D7AB}","g"],["\u{1D7AC}","d"],["\u{1D7AD}","e"],["\u{1D7AE}","z"],["\u{1D7AF}","i"],["\u{1D7B0}","i"],["\u{1D7B1}","th"],["\u{1D7B2}","i"],["\u{1D7B3}","k"],["\u{1D7B4}","l"],["\u{1D7B5}","m"],["\u{1D7B6}","n"],["\u{1D7B7}","ks"],["\u{1D7B8}","o"],["\u{1D7B9}","p"],["\u{1D7BA}","r"],["\u{1D7BB}","s"],["\u{1D7BC}","s"],["\u{1D7BD}","t"],["\u{1D7BE}","y"],["\u{1D7BF}","f"],["\u{1D7C0}","x"],["\u{1D7C1}","ps"],["\u{1D7C2}","o"],["\u{1D7C3}","a"],["\u{1D7C4}","e"],["\u{1D7C5}","i"],["\u{1D7C6}","k"],["\u{1D7C7}","f"],["\u{1D7C8}","r"],["\u{1D7C9}","p"],["\u{1D7CA}","F"],["\u{1D7CB}","f"],["\u249C","(a)"],["\u249D","(b)"],["\u249E","(c)"],["\u249F","(d)"],["\u24A0","(e)"],["\u24A1","(f)"],["\u24A2","(g)"],["\u24A3","(h)"],["\u24A4","(i)"],["\u24A5","(j)"],["\u24A6","(k)"],["\u24A7","(l)"],["\u24A8","(m)"],["\u24A9","(n)"],["\u24AA","(o)"],["\u24AB","(p)"],["\u24AC","(q)"],["\u24AD","(r)"],["\u24AE","(s)"],["\u24AF","(t)"],["\u24B0","(u)"],["\u24B1","(v)"],["\u24B2","(w)"],["\u24B3","(x)"],["\u24B4","(y)"],["\u24B5","(z)"],["\u24B6","(A)"],["\u24B7","(B)"],["\u24B8","(C)"],["\u24B9","(D)"],["\u24BA","(E)"],["\u24BB","(F)"],["\u24BC","(G)"],["\u24BD","(H)"],["\u24BE","(I)"],["\u24BF","(J)"],["\u24C0","(K)"],["\u24C1","(L)"],["\u24C3","(N)"],["\u24C4","(O)"],["\u24C5","(P)"],["\u24C6","(Q)"],["\u24C7","(R)"],["\u24C8","(S)"],["\u24C9","(T)"],["\u24CA","(U)"],["\u24CB","(V)"],["\u24CC","(W)"],["\u24CD","(X)"],["\u24CE","(Y)"],["\u24CF","(Z)"],["\u24D0","(a)"],["\u24D1","(b)"],["\u24D2","(c)"],["\u24D3","(d)"],["\u24D4","(e)"],["\u24D5","(f)"],["\u24D6","(g)"],["\u24D7","(h)"],["\u24D8","(i)"],["\u24D9","(j)"],["\u24DA","(k)"],["\u24DB","(l)"],["\u24DC","(m)"],["\u24DD","(n)"],["\u24DE","(o)"],["\u24DF","(p)"],["\u24E0","(q)"],["\u24E1","(r)"],["\u24E2","(s)"],["\u24E3","(t)"],["\u24E4","(u)"],["\u24E5","(v)"],["\u24E6","(w)"],["\u24E7","(x)"],["\u24E8","(y)"],["\u24E9","(z)"],["\u010A","C"],["\u010B","c"],["\u0120","G"],["\u0121","g"],["\u0126","H"],["\u0127","h"],["\u017B","Z"],["\u017C","z"],["\u{1D7CE}","0"],["\u{1D7CF}","1"],["\u{1D7D0}","2"],["\u{1D7D1}","3"],["\u{1D7D2}","4"],["\u{1D7D3}","5"],["\u{1D7D4}","6"],["\u{1D7D5}","7"],["\u{1D7D6}","8"],["\u{1D7D7}","9"],["\u{1D7D8}","0"],["\u{1D7D9}","1"],["\u{1D7DA}","2"],["\u{1D7DB}","3"],["\u{1D7DC}","4"],["\u{1D7DD}","5"],["\u{1D7DE}","6"],["\u{1D7DF}","7"],["\u{1D7E0}","8"],["\u{1D7E1}","9"],["\u{1D7E2}","0"],["\u{1D7E3}","1"],["\u{1D7E4}","2"],["\u{1D7E5}","3"],["\u{1D7E6}","4"],["\u{1D7E7}","5"],["\u{1D7E8}","6"],["\u{1D7E9}","7"],["\u{1D7EA}","8"],["\u{1D7EB}","9"],["\u{1D7EC}","0"],["\u{1D7ED}","1"],["\u{1D7EE}","2"],["\u{1D7EF}","3"],["\u{1D7F0}","4"],["\u{1D7F1}","5"],["\u{1D7F2}","6"],["\u{1D7F3}","7"],["\u{1D7F4}","8"],["\u{1D7F5}","9"],["\u{1D7F6}","0"],["\u{1D7F7}","1"],["\u{1D7F8}","2"],["\u{1D7F9}","3"],["\u{1D7FA}","4"],["\u{1D7FB}","5"],["\u{1D7FC}","6"],["\u{1D7FD}","7"],["\u{1D7FE}","8"],["\u{1D7FF}","9"],["\u2460","1"],["\u2461","2"],["\u2462","3"],["\u2463","4"],["\u2464","5"],["\u2465","6"],["\u2466","7"],["\u2467","8"],["\u2468","9"],["\u2469","10"],["\u246A","11"],["\u246B","12"],["\u246C","13"],["\u246D","14"],["\u246E","15"],["\u246F","16"],["\u2470","17"],["\u2471","18"],["\u2472","19"],["\u2473","20"],["\u2474","1"],["\u2475","2"],["\u2476","3"],["\u2477","4"],["\u2478","5"],["\u2479","6"],["\u247A","7"],["\u247B","8"],["\u247C","9"],["\u247D","10"],["\u247E","11"],["\u247F","12"],["\u2480","13"],["\u2481","14"],["\u2482","15"],["\u2483","16"],["\u2484","17"],["\u2485","18"],["\u2486","19"],["\u2487","20"],["\u2488","1."],["\u2489","2."],["\u248A","3."],["\u248B","4."],["\u248C","5."],["\u248D","6."],["\u248E","7."],["\u248F","8."],["\u2490","9."],["\u2491","10."],["\u2492","11."],["\u2493","12."],["\u2494","13."],["\u2495","14."],["\u2496","15."],["\u2497","16."],["\u2498","17."],["\u2499","18."],["\u249A","19."],["\u249B","20."],["\u24EA","0"],["\u24EB","11"],["\u24EC","12"],["\u24ED","13"],["\u24EE","14"],["\u24EF","15"],["\u24F0","16"],["\u24F1","17"],["\u24F2","18"],["\u24F3","19"],["\u24F4","20"],["\u24F5","1"],["\u24F6","2"],["\u24F7","3"],["\u24F8","4"],["\u24F9","5"],["\u24FA","6"],["\u24FB","7"],["\u24FC","8"],["\u24FD","9"],["\u24FE","10"],["\u24FF","0"],["\u{1F670}","&"],["\u{1F671}","&"],["\u{1F672}","&"],["\u{1F673}","&"],["\u{1F674}","&"],["\u{1F675}","&"],["\u{1F676}",'"'],["\u{1F677}",'"'],["\u{1F678}",'"'],["\u203D","?!"],["\u{1F679}","?!"],["\u{1F67A}","?!"],["\u{1F67B}","?!"],["\u{1F67C}","/"],["\u{1F67D}","\\"],["\u{1F707}","AR"],["\u{1F708}","V"],["\u{1F709}","V"],["\u{1F706}","VR"],["\u{1F705}","VF"],["\u{1F729}","2"],["\u{1F72A}","5"],["\u{1F761}","f"],["\u{1F762}","W"],["\u{1F763}","U"],["\u{1F767}","V"],["\u{1F768}","T"],["\u{1F76A}","V"],["\u{1F76B}","MB"],["\u{1F76C}","VB"],["\u{1F772}","3B"],["\u{1F773}","3B"],["\u{1F4AF}","100"],["\u{1F519}","BACK"],["\u{1F51A}","END"],["\u{1F51B}","ON!"],["\u{1F51C}","SOON"],["\u{1F51D}","TOP"],["\u{1F51E}","18"],["\u{1F524}","abc"],["\u{1F520}","ABCD"],["\u{1F521}","abcd"],["\u{1F522}","1234"],["\u{1F523}","T&@%"],["#\uFE0F\u20E3","#"],["*\uFE0F\u20E3","*"],["0\uFE0F\u20E3","0"],["1\uFE0F\u20E3","1"],["2\uFE0F\u20E3","2"],["3\uFE0F\u20E3","3"],["4\uFE0F\u20E3","4"],["5\uFE0F\u20E3","5"],["6\uFE0F\u20E3","6"],["7\uFE0F\u20E3","7"],["8\uFE0F\u20E3","8"],["9\uFE0F\u20E3","9"],["\u{1F51F}","10"],["\u{1F170}\uFE0F","A"],["\u{1F171}\uFE0F","B"],["\u{1F18E}","AB"],["\u{1F191}","CL"],["\u{1F17E}\uFE0F","O"],["\u{1F17F}","P"],["\u{1F198}","SOS"],["\u{1F172}","C"],["\u{1F173}","D"],["\u{1F174}","E"],["\u{1F175}","F"],["\u{1F176}","G"],["\u{1F177}","H"],["\u{1F178}","I"],["\u{1F179}","J"],["\u{1F17A}","K"],["\u{1F17B}","L"],["\u{1F17C}","M"],["\u{1F17D}","N"],["\u{1F180}","Q"],["\u{1F181}","R"],["\u{1F182}","S"],["\u{1F183}","T"],["\u{1F184}","U"],["\u{1F185}","V"],["\u{1F186}","W"],["\u{1F187}","X"],["\u{1F188}","Y"],["\u{1F189}","Z"],["\u2212","-"],["\u2053","-"]],Y0=new Map(W0),bc=Y0});var fm,$i,wc,pm=v(()=>{fm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],$i={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:fm,nb:fm,de:[["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xDF","ss"],["\u1E9E","Ss"]],tr:[["\xE2","a"],["\xC2","A"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"]],hu:[["\u0171","u"],["\u0170","U"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"],["\xE1","a"],["\xC1","A"],["\xE9","e"],["\xC9","E"],["\xED","i"],["\xCD","I"],["\xF3","o"],["\xD3","O"],["\xFA","u"],["\xDA","U"]],sr:[["\u0452","dj"],["\u0402","Dj"],["\u045F","dz"],["\u040F","Dz"],["\u0459","lj"],["\u0409","Lj"],["\u045A","nj"],["\u040A","Nj"],["\u045B","c"],["\u040B","C"],["\u0447","ch"],["\u0427","Ch"],["\u0448","sh"],["\u0428","Sh"],["\u0436","zh"],["\u0416","Zh"]]};for(let n of Object.keys($i))$i[n]=new Map($i[n]);wc=$i});function vc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=z0(e.locale),r=bc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(bc),t)for(let[i,o]of t)r.set(i,o);for(let[i,o]of e.customReplacements)r.set(i,o)}return n=n.normalize(),n=V0(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var V0,z0,hm=v(()=>{dm();pm();V0=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},z0=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return wc[e]||wc[e.split("-")[0]]||void 0}});var G0,mm,gm=v(()=>{G0=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],mm=G0});function Sc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={separator:"-",lowercase:!0,decamelize:!0,customReplacements:[],preserveLeadingUnderscore:!1,preserveTrailingDash:!1,preserveCharacters:[],transliterate:!0,...e};let t=e.preserveLeadingUnderscore&&n.startsWith("_"),r=e.preserveTrailingDash&&n.endsWith("-");if(e.transliterate){let i=new Map([...mm,...e.customReplacements]);n=vc(n,{customReplacements:i,locale:e.locale})}else if(e.customReplacements.length>0)for(let[i,o]of e.customReplacements)n=n.replaceAll(i,o);e.decamelize&&(n=X0(n));let s=Z0(e);return e.lowercase&&(n=e.locale?n.toLocaleLowerCase(e.locale):n.toLowerCase()),n=n.replaceAll(/([a-zA-Z\d]+)['\u2019]([ts])(\s|$)/g,"$1$2$3"),n=n.replace(s,e.separator),n=n.replaceAll("\\",""),e.separator&&(n=Q0(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var X0,Q0,Z0,ym=v(()=>{um();hm();gm();X0=n=>n.replaceAll(/([A-Z]{2,})(\d+)/g,"$1 $2").replaceAll(/([a-z\d]+)([A-Z]{2,})/g,"$1 $2").replaceAll(/([a-z\d])([A-Z])/g,"$1 $2").replaceAll(/([A-Z]+)([A-Z][a-rt-z\d]+)/g,"$1 $2"),Q0=(n,e)=>{let t=Ii(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},Z0=n=>{let e=String.raw`a-z\d`;if(e+=n.lowercase?"":"A-Z",n.transliterate===!1&&(e+=String.raw`\p{L}\p{N}`),n.preserveCharacters.length>0)for(let r of n.preserveCharacters){if(r===n.separator)throw new Error(`The separator character \`${n.separator}\` cannot be included in preserved characters: ${n.preserveCharacters}`);e+=Ii(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function An(n){return Sc(n)}var bm=v(()=>{ym()});var Tn,wm,vm=v(()=>{Tn={local:"local",ide:"ide",published:"published",inline:"inline"},wm=Object.values(Tn).map(n=>`'${n}'`).join(" | ")});var jr,kc,Sm=v(()=>{jr=` *, *::before, *::after { box-sizing: border-box; }
|
|
166
|
+
`});function $i(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var dm=v(()=>{});var V0,z0,wc,fm=v(()=>{V0=[["\xDF","ss"],["\u1E9E","Ss"],["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xC0","A"],["\xC1","A"],["\xC2","A"],["\xC3","A"],["\xC4","Ae"],["\xC5","A"],["\xC6","AE"],["\xC7","C"],["\xC8","E"],["\xC9","E"],["\xCA","E"],["\xCB","E"],["\u018F","A"],["\xCC","I"],["\xCD","I"],["\xCE","I"],["\xCF","I"],["\xD0","D"],["\xD1","N"],["\xD2","O"],["\xD3","O"],["\xD4","O"],["\xD5","O"],["\xD6","Oe"],["\u014C","O"],["\u0150","O"],["\xD8","O"],["\u0152","OE"],["\xD9","U"],["\xDA","U"],["\xDB","U"],["\xDC","Ue"],["\u0170","U"],["\xDD","Y"],["\xDE","TH"],["\xDF","ss"],["\xE0","a"],["\xE1","a"],["\xE2","a"],["\xE3","a"],["\xE4","ae"],["\xE5","a"],["\xE6","ae"],["\xE7","c"],["\xE8","e"],["\xE9","e"],["\xEA","e"],["\xEB","e"],["\u0259","a"],["\xEC","i"],["\xED","i"],["\xEE","i"],["\xEF","i"],["\xF0","d"],["\xF1","n"],["\xF2","o"],["\xF3","o"],["\xF4","o"],["\xF5","o"],["\xF6","oe"],["\u014D","o"],["\u0151","o"],["\xF8","o"],["\u0153","oe"],["\xF9","u"],["\xFA","u"],["\xFB","u"],["\xFC","ue"],["\u0171","u"],["\xFD","y"],["\xFE","th"],["\xFF","y"],["\xE0","a"],["\xC0","A"],["\xE1","a"],["\xC1","A"],["\xE2","a"],["\xC2","A"],["\xE3","a"],["\xC3","A"],["\xE8","e"],["\xC8","E"],["\xE9","e"],["\xC9","E"],["\xEA","e"],["\xCA","E"],["\xEC","i"],["\xCC","I"],["\xED","i"],["\xCD","I"],["\xF2","o"],["\xD2","O"],["\xF3","o"],["\xD3","O"],["\xF4","o"],["\xD4","O"],["\xF5","o"],["\xD5","O"],["\xF9","u"],["\xD9","U"],["\xFA","u"],["\xDA","U"],["\xFD","y"],["\xDD","Y"],["\u0103","a"],["\u0102","A"],["\u0110","D"],["\u0111","d"],["\u0129","i"],["\u0128","I"],["\u0169","u"],["\u0168","U"],["\u01A1","o"],["\u01A0","O"],["\u01B0","u"],["\u01AF","U"],["\u1EA1","a"],["\u1EA0","A"],["\u1EA3","a"],["\u1EA2","A"],["\u1EA5","a"],["\u1EA4","A"],["\u1EA7","a"],["\u1EA6","A"],["\u1EA9","a"],["\u1EA8","A"],["\u1EAB","a"],["\u1EAA","A"],["\u1EAD","a"],["\u1EAC","A"],["\u1EAF","a"],["\u1EAE","A"],["\u1EB1","a"],["\u1EB0","A"],["\u1EB3","a"],["\u1EB2","A"],["\u1EB5","a"],["\u1EB4","A"],["\u1EB7","a"],["\u1EB6","A"],["\u1EB9","e"],["\u1EB8","E"],["\u1EBB","e"],["\u1EBA","E"],["\u1EBD","e"],["\u1EBC","E"],["\u1EBF","e"],["\u1EBE","E"],["\u1EC1","e"],["\u1EC0","E"],["\u1EC3","e"],["\u1EC2","E"],["\u1EC5","e"],["\u1EC4","E"],["\u1EC7","e"],["\u1EC6","E"],["\u1EC9","i"],["\u1EC8","I"],["\u1ECB","i"],["\u1ECA","I"],["\u1ECD","o"],["\u1ECC","O"],["\u1ECF","o"],["\u1ECE","O"],["\u1ED1","o"],["\u1ED0","O"],["\u1ED3","o"],["\u1ED2","O"],["\u1ED5","o"],["\u1ED4","O"],["\u1ED7","o"],["\u1ED6","O"],["\u1ED9","o"],["\u1ED8","O"],["\u1EDB","o"],["\u1EDA","O"],["\u1EDD","o"],["\u1EDC","O"],["\u1EDF","o"],["\u1EDE","O"],["\u1EE1","o"],["\u1EE0","O"],["\u1EE3","o"],["\u1EE2","O"],["\u1EE5","u"],["\u1EE4","U"],["\u1EE7","u"],["\u1EE6","U"],["\u1EE9","u"],["\u1EE8","U"],["\u1EEB","u"],["\u1EEA","U"],["\u1EED","u"],["\u1EEC","U"],["\u1EEF","u"],["\u1EEE","U"],["\u1EF1","u"],["\u1EF0","U"],["\u1EF3","y"],["\u1EF2","Y"],["\u1EF5","y"],["\u1EF4","Y"],["\u1EF7","y"],["\u1EF6","Y"],["\u1EF9","y"],["\u1EF8","Y"],["\u0621","e"],["\u0622","a"],["\u0623","a"],["\u0624","w"],["\u0625","a"],["\u0626","y"],["\u0627","a"],["\u0628","b"],["\u0629","t"],["\u062A","t"],["\u062B","th"],["\u062C","j"],["\u062D","h"],["\u062E","kh"],["\u062F","d"],["\u0630","dh"],["\u0631","r"],["\u0632","z"],["\u0633","s"],["\u0634","sh"],["\u0635","s"],["\u0636","d"],["\u0637","t"],["\u0638","z"],["\u0639","e"],["\u063A","gh"],["\u0640","_"],["\u0641","f"],["\u0642","q"],["\u0643","k"],["\u0644","l"],["\u0645","m"],["\u0646","n"],["\u0647","h"],["\u0648","w"],["\u0649","a"],["\u064A","y"],["\u064E\u200E","a"],["\u064F","u"],["\u0650\u200E","i"],["\u0660","0"],["\u0661","1"],["\u0662","2"],["\u0663","3"],["\u0664","4"],["\u0665","5"],["\u0666","6"],["\u0667","7"],["\u0668","8"],["\u0669","9"],["\u0686","ch"],["\u06A9","k"],["\u06AF","g"],["\u067E","p"],["\u0698","zh"],["\u06CC","y"],["\u06F0","0"],["\u06F1","1"],["\u06F2","2"],["\u06F3","3"],["\u06F4","4"],["\u06F5","5"],["\u06F6","6"],["\u06F7","7"],["\u06F8","8"],["\u06F9","9"],["\u067C","p"],["\u0681","z"],["\u0685","c"],["\u0689","d"],["\uFEAB","d"],["\uFEAD","r"],["\u0693","r"],["\uFEAF","z"],["\u0696","g"],["\u069A","x"],["\u06AB","g"],["\u06BC","n"],["\u06C0","e"],["\u06D0","e"],["\u06CD","ai"],["\u0679","t"],["\u0688","d"],["\u0691","r"],["\u06BA","n"],["\u06C1","h"],["\u06BE","h"],["\u06D2","e"],["\u0410","A"],["\u0430","a"],["\u0411","B"],["\u0431","b"],["\u0412","V"],["\u0432","v"],["\u0413","G"],["\u0433","g"],["\u0414","D"],["\u0434","d"],["\u044A\u0435","ye"],["\u042A\u0435","Ye"],["\u044A\u0415","yE"],["\u042A\u0415","YE"],["\u0415","E"],["\u0435","e"],["\u0401","Yo"],["\u0451","yo"],["\u0416","Zh"],["\u0436","zh"],["\u0417","Z"],["\u0437","z"],["\u0418","I"],["\u0438","i"],["\u044B\u0439","iy"],["\u042B\u0439","Iy"],["\u042B\u0419","IY"],["\u044B\u0419","iY"],["\u0419","Y"],["\u0439","y"],["\u041A","K"],["\u043A","k"],["\u041B","L"],["\u043B","l"],["\u041C","M"],["\u043C","m"],["\u041D","N"],["\u043D","n"],["\u041E","O"],["\u043E","o"],["\u041F","P"],["\u043F","p"],["\u0420","R"],["\u0440","r"],["\u0421","S"],["\u0441","s"],["\u0422","T"],["\u0442","t"],["\u0423","U"],["\u0443","u"],["\u0424","F"],["\u0444","f"],["\u0425","Kh"],["\u0445","kh"],["\u0426","Ts"],["\u0446","ts"],["\u0427","Ch"],["\u0447","ch"],["\u0428","Sh"],["\u0448","sh"],["\u0429","Sch"],["\u0449","sch"],["\u042A",""],["\u044A",""],["\u042B","Y"],["\u044B","y"],["\u042C",""],["\u044C",""],["\u042D","E"],["\u044D","e"],["\u042E","Yu"],["\u044E","yu"],["\u042F","Ya"],["\u044F","ya"],["\u0103","a"],["\u0102","A"],["\u0219","s"],["\u0218","S"],["\u021B","t"],["\u021A","T"],["\u0163","t"],["\u0162","T"],["\u015F","s"],["\u015E","S"],["\xE7","c"],["\xC7","C"],["\u011F","g"],["\u011E","G"],["\u0131","i"],["\u0130","I"],["\u0561","a"],["\u0531","A"],["\u0562","b"],["\u0532","B"],["\u0563","g"],["\u0533","G"],["\u0564","d"],["\u0534","D"],["\u0565","ye"],["\u0535","Ye"],["\u0566","z"],["\u0536","Z"],["\u0567","e"],["\u0537","E"],["\u0568","y"],["\u0538","Y"],["\u0569","t"],["\u0539","T"],["\u056A","zh"],["\u053A","Zh"],["\u056B","i"],["\u053B","I"],["\u056C","l"],["\u053C","L"],["\u056D","kh"],["\u053D","Kh"],["\u056E","ts"],["\u053E","Ts"],["\u056F","k"],["\u053F","K"],["\u0570","h"],["\u0540","H"],["\u0571","dz"],["\u0541","Dz"],["\u0572","gh"],["\u0542","Gh"],["\u0573","tch"],["\u0543","Tch"],["\u0574","m"],["\u0544","M"],["\u0575","y"],["\u0545","Y"],["\u0576","n"],["\u0546","N"],["\u0577","sh"],["\u0547","Sh"],["\u0578\u0582","u"],["\u0548\u0552","U"],["\u0548\u0582","U"],["\u0578","vo"],["\u0548","Vo"],["\u0579","ch"],["\u0549","Ch"],["\u057A","p"],["\u054A","P"],["\u057B","j"],["\u054B","J"],["\u057C","r"],["\u054C","R"],["\u057D","s"],["\u054D","S"],["\u057E","v"],["\u054E","V"],["\u057F","t"],["\u054F","T"],["\u0580","r"],["\u0550","R"],["\u0581","c"],["\u0551","C"],["\u0583","p"],["\u0553","P"],["\u0584","q"],["\u0554","Q"],["\u0585","o"],["\u0555","O"],["\u0586","f"],["\u0556","F"],["\u0587","yev"],["\u10D0","a"],["\u10D1","b"],["\u10D2","g"],["\u10D3","d"],["\u10D4","e"],["\u10D5","v"],["\u10D6","z"],["\u10D7","t"],["\u10D8","i"],["\u10D9","k"],["\u10DA","l"],["\u10DB","m"],["\u10DC","n"],["\u10DD","o"],["\u10DE","p"],["\u10DF","zh"],["\u10E0","r"],["\u10E1","s"],["\u10E2","t"],["\u10E3","u"],["\u10E4","ph"],["\u10E5","q"],["\u10E6","gh"],["\u10E7","k"],["\u10E8","sh"],["\u10E9","ch"],["\u10EA","ts"],["\u10EB","dz"],["\u10EC","ts"],["\u10ED","tch"],["\u10EE","kh"],["\u10EF","j"],["\u10F0","h"],["\u010D","c"],["\u010F","d"],["\u011B","e"],["\u0148","n"],["\u0159","r"],["\u0161","s"],["\u0165","t"],["\u016F","u"],["\u017E","z"],["\u010C","C"],["\u010E","D"],["\u011A","E"],["\u0147","N"],["\u0158","R"],["\u0160","S"],["\u0164","T"],["\u016E","U"],["\u017D","Z"],["\u0780","h"],["\u0781","sh"],["\u0782","n"],["\u0783","r"],["\u0784","b"],["\u0785","lh"],["\u0786","k"],["\u0787","a"],["\u0788","v"],["\u0789","m"],["\u078A","f"],["\u078B","dh"],["\u078C","th"],["\u078D","l"],["\u078E","g"],["\u078F","gn"],["\u0790","s"],["\u0791","d"],["\u0792","z"],["\u0793","t"],["\u0794","y"],["\u0795","p"],["\u0796","j"],["\u0797","ch"],["\u0798","tt"],["\u0799","hh"],["\u079A","kh"],["\u079B","th"],["\u079C","z"],["\u079D","sh"],["\u079E","s"],["\u079F","d"],["\u07A0","t"],["\u07A1","z"],["\u07A2","a"],["\u07A3","gh"],["\u07A4","q"],["\u07A5","w"],["\u07A6","a"],["\u07A7","aa"],["\u07A8","i"],["\u07A9","ee"],["\u07AA","u"],["\u07AB","oo"],["\u07AC","e"],["\u07AD","ey"],["\u07AE","o"],["\u07AF","oa"],["\u07B0",""],["\u03B1","a"],["\u03B2","v"],["\u03B3","g"],["\u03B4","d"],["\u03B5","e"],["\u03B6","z"],["\u03B7","i"],["\u03B8","th"],["\u03B9","i"],["\u03BA","k"],["\u03BB","l"],["\u03BC","m"],["\u03BD","n"],["\u03BE","ks"],["\u03BF","o"],["\u03C0","p"],["\u03C1","r"],["\u03C3","s"],["\u03C4","t"],["\u03C5","y"],["\u03C6","f"],["\u03C7","x"],["\u03C8","ps"],["\u03C9","o"],["\u03AC","a"],["\u03AD","e"],["\u03AF","i"],["\u03CC","o"],["\u03CD","y"],["\u03AE","i"],["\u03CE","o"],["\u03C2","s"],["\u03CA","i"],["\u03B0","y"],["\u03CB","y"],["\u0390","i"],["\u0391","A"],["\u0392","B"],["\u0393","G"],["\u0394","D"],["\u0395","E"],["\u0396","Z"],["\u0397","I"],["\u0398","TH"],["\u0399","I"],["\u039A","K"],["\u039B","L"],["\u039C","M"],["\u039D","N"],["\u039E","KS"],["\u039F","O"],["\u03A0","P"],["\u03A1","R"],["\u03A3","S"],["\u03A4","T"],["\u03A5","Y"],["\u03A6","F"],["\u03A7","X"],["\u03A8","PS"],["\u03A9","O"],["\u0386","A"],["\u0388","E"],["\u038A","I"],["\u038C","O"],["\u038E","Y"],["\u0389","I"],["\u038F","O"],["\u03AA","I"],["\u03AB","Y"],["\u0101","a"],["\u0113","e"],["\u0123","g"],["\u012B","i"],["\u0137","k"],["\u013C","l"],["\u0146","n"],["\u016B","u"],["\u0100","A"],["\u0112","E"],["\u0122","G"],["\u012A","I"],["\u0136","K"],["\u013B","L"],["\u0145","N"],["\u016A","U"],["\u010D","c"],["\u0161","s"],["\u017E","z"],["\u010C","C"],["\u0160","S"],["\u017D","Z"],["\u0105","a"],["\u010D","c"],["\u0119","e"],["\u0117","e"],["\u012F","i"],["\u0161","s"],["\u0173","u"],["\u016B","u"],["\u017E","z"],["\u0104","A"],["\u010C","C"],["\u0118","E"],["\u0116","E"],["\u012E","I"],["\u0160","S"],["\u0172","U"],["\u016A","U"],["\u040C","Kj"],["\u045C","kj"],["\u0409","Lj"],["\u0459","lj"],["\u040A","Nj"],["\u045A","nj"],["\u0422\u0441","Ts"],["\u0442\u0441","ts"],["\u0105","a"],["\u0107","c"],["\u0119","e"],["\u0142","l"],["\u0144","n"],["\u015B","s"],["\u017A","z"],["\u017C","z"],["\u0104","A"],["\u0106","C"],["\u0118","E"],["\u0141","L"],["\u0143","N"],["\u015A","S"],["\u0179","Z"],["\u017B","Z"],["\u0404","Ye"],["\u0406","I"],["\u0407","Yi"],["\u0490","G"],["\u0454","ye"],["\u0456","i"],["\u0457","yi"],["\u0491","g"],["\u0132","IJ"],["\u0133","ij"],["\xA2","c"],["\xA5","Y"],["\u07FF","b"],["\u09F3","t"],["\u0AF1","Bo"],["\u0E3F","B"],["\u20A0","CE"],["\u20A1","C"],["\u20A2","Cr"],["\u20A3","F"],["\u20A5","m"],["\u20A6","N"],["\u20A7","Pt"],["\u20A8","Rs"],["\u20A9","W"],["\u20AB","s"],["\u20AC","E"],["\u20AD","K"],["\u20AE","T"],["\u20AF","Dp"],["\u20B0","S"],["\u20B1","P"],["\u20B2","G"],["\u20B3","A"],["\u20B4","S"],["\u20B5","C"],["\u20B6","tt"],["\u20B7","S"],["\u20B8","T"],["\u20B9","R"],["\u20BA","L"],["\u20BD","P"],["\u20BF","B"],["\uFE69","$"],["\uFFE0","c"],["\uFFE5","Y"],["\uFFE6","W"],["\u{1D400}","A"],["\u{1D401}","B"],["\u{1D402}","C"],["\u{1D403}","D"],["\u{1D404}","E"],["\u{1D405}","F"],["\u{1D406}","G"],["\u{1D407}","H"],["\u{1D408}","I"],["\u{1D409}","J"],["\u{1D40A}","K"],["\u{1D40B}","L"],["\u{1D40C}","M"],["\u{1D40D}","N"],["\u{1D40E}","O"],["\u{1D40F}","P"],["\u{1D410}","Q"],["\u{1D411}","R"],["\u{1D412}","S"],["\u{1D413}","T"],["\u{1D414}","U"],["\u{1D415}","V"],["\u{1D416}","W"],["\u{1D417}","X"],["\u{1D418}","Y"],["\u{1D419}","Z"],["\u{1D41A}","a"],["\u{1D41B}","b"],["\u{1D41C}","c"],["\u{1D41D}","d"],["\u{1D41E}","e"],["\u{1D41F}","f"],["\u{1D420}","g"],["\u{1D421}","h"],["\u{1D422}","i"],["\u{1D423}","j"],["\u{1D424}","k"],["\u{1D425}","l"],["\u{1D426}","m"],["\u{1D427}","n"],["\u{1D428}","o"],["\u{1D429}","p"],["\u{1D42A}","q"],["\u{1D42B}","r"],["\u{1D42C}","s"],["\u{1D42D}","t"],["\u{1D42E}","u"],["\u{1D42F}","v"],["\u{1D430}","w"],["\u{1D431}","x"],["\u{1D432}","y"],["\u{1D433}","z"],["\u{1D434}","A"],["\u{1D435}","B"],["\u{1D436}","C"],["\u{1D437}","D"],["\u{1D438}","E"],["\u{1D439}","F"],["\u{1D43A}","G"],["\u{1D43B}","H"],["\u{1D43C}","I"],["\u{1D43D}","J"],["\u{1D43E}","K"],["\u{1D43F}","L"],["\u{1D440}","M"],["\u{1D441}","N"],["\u{1D442}","O"],["\u{1D443}","P"],["\u{1D444}","Q"],["\u{1D445}","R"],["\u{1D446}","S"],["\u{1D447}","T"],["\u{1D448}","U"],["\u{1D449}","V"],["\u{1D44A}","W"],["\u{1D44B}","X"],["\u{1D44C}","Y"],["\u{1D44D}","Z"],["\u{1D44E}","a"],["\u{1D44F}","b"],["\u{1D450}","c"],["\u{1D451}","d"],["\u{1D452}","e"],["\u{1D453}","f"],["\u{1D454}","g"],["\u{1D456}","i"],["\u{1D457}","j"],["\u{1D458}","k"],["\u{1D459}","l"],["\u{1D45A}","m"],["\u{1D45B}","n"],["\u{1D45C}","o"],["\u{1D45D}","p"],["\u{1D45E}","q"],["\u{1D45F}","r"],["\u{1D460}","s"],["\u{1D461}","t"],["\u{1D462}","u"],["\u{1D463}","v"],["\u{1D464}","w"],["\u{1D465}","x"],["\u{1D466}","y"],["\u{1D467}","z"],["\u{1D468}","A"],["\u{1D469}","B"],["\u{1D46A}","C"],["\u{1D46B}","D"],["\u{1D46C}","E"],["\u{1D46D}","F"],["\u{1D46E}","G"],["\u{1D46F}","H"],["\u{1D470}","I"],["\u{1D471}","J"],["\u{1D472}","K"],["\u{1D473}","L"],["\u{1D474}","M"],["\u{1D475}","N"],["\u{1D476}","O"],["\u{1D477}","P"],["\u{1D478}","Q"],["\u{1D479}","R"],["\u{1D47A}","S"],["\u{1D47B}","T"],["\u{1D47C}","U"],["\u{1D47D}","V"],["\u{1D47E}","W"],["\u{1D47F}","X"],["\u{1D480}","Y"],["\u{1D481}","Z"],["\u{1D482}","a"],["\u{1D483}","b"],["\u{1D484}","c"],["\u{1D485}","d"],["\u{1D486}","e"],["\u{1D487}","f"],["\u{1D488}","g"],["\u{1D489}","h"],["\u{1D48A}","i"],["\u{1D48B}","j"],["\u{1D48C}","k"],["\u{1D48D}","l"],["\u{1D48E}","m"],["\u{1D48F}","n"],["\u{1D490}","o"],["\u{1D491}","p"],["\u{1D492}","q"],["\u{1D493}","r"],["\u{1D494}","s"],["\u{1D495}","t"],["\u{1D496}","u"],["\u{1D497}","v"],["\u{1D498}","w"],["\u{1D499}","x"],["\u{1D49A}","y"],["\u{1D49B}","z"],["\u{1D49C}","A"],["\u{1D49E}","C"],["\u{1D49F}","D"],["\u{1D4A2}","g"],["\u{1D4A5}","J"],["\u{1D4A6}","K"],["\u{1D4A9}","N"],["\u{1D4AA}","O"],["\u{1D4AB}","P"],["\u{1D4AC}","Q"],["\u{1D4AE}","S"],["\u{1D4AF}","T"],["\u{1D4B0}","U"],["\u{1D4B1}","V"],["\u{1D4B2}","W"],["\u{1D4B3}","X"],["\u{1D4B4}","Y"],["\u{1D4B5}","Z"],["\u{1D4B6}","a"],["\u{1D4B7}","b"],["\u{1D4B8}","c"],["\u{1D4B9}","d"],["\u{1D4BB}","f"],["\u{1D4BD}","h"],["\u{1D4BE}","i"],["\u{1D4BF}","j"],["\u{1D4C0}","k"],["\u{1D4C1}","l"],["\u{1D4C2}","m"],["\u{1D4C3}","n"],["\u{1D4C5}","p"],["\u{1D4C6}","q"],["\u{1D4C7}","r"],["\u{1D4C8}","s"],["\u{1D4C9}","t"],["\u{1D4CA}","u"],["\u{1D4CB}","v"],["\u{1D4CC}","w"],["\u{1D4CD}","x"],["\u{1D4CE}","y"],["\u{1D4CF}","z"],["\u{1D4D0}","A"],["\u{1D4D1}","B"],["\u{1D4D2}","C"],["\u{1D4D3}","D"],["\u{1D4D4}","E"],["\u{1D4D5}","F"],["\u{1D4D6}","G"],["\u{1D4D7}","H"],["\u{1D4D8}","I"],["\u{1D4D9}","J"],["\u{1D4DA}","K"],["\u{1D4DB}","L"],["\u{1D4DC}","M"],["\u{1D4DD}","N"],["\u{1D4DE}","O"],["\u{1D4DF}","P"],["\u{1D4E0}","Q"],["\u{1D4E1}","R"],["\u{1D4E2}","S"],["\u{1D4E3}","T"],["\u{1D4E4}","U"],["\u{1D4E5}","V"],["\u{1D4E6}","W"],["\u{1D4E7}","X"],["\u{1D4E8}","Y"],["\u{1D4E9}","Z"],["\u{1D4EA}","a"],["\u{1D4EB}","b"],["\u{1D4EC}","c"],["\u{1D4ED}","d"],["\u{1D4EE}","e"],["\u{1D4EF}","f"],["\u{1D4F0}","g"],["\u{1D4F1}","h"],["\u{1D4F2}","i"],["\u{1D4F3}","j"],["\u{1D4F4}","k"],["\u{1D4F5}","l"],["\u{1D4F6}","m"],["\u{1D4F7}","n"],["\u{1D4F8}","o"],["\u{1D4F9}","p"],["\u{1D4FA}","q"],["\u{1D4FB}","r"],["\u{1D4FC}","s"],["\u{1D4FD}","t"],["\u{1D4FE}","u"],["\u{1D4FF}","v"],["\u{1D500}","w"],["\u{1D501}","x"],["\u{1D502}","y"],["\u{1D503}","z"],["\u{1D504}","A"],["\u{1D505}","B"],["\u{1D507}","D"],["\u{1D508}","E"],["\u{1D509}","F"],["\u{1D50A}","G"],["\u{1D50D}","J"],["\u{1D50E}","K"],["\u{1D50F}","L"],["\u{1D510}","M"],["\u{1D511}","N"],["\u{1D512}","O"],["\u{1D513}","P"],["\u{1D514}","Q"],["\u{1D516}","S"],["\u{1D517}","T"],["\u{1D518}","U"],["\u{1D519}","V"],["\u{1D51A}","W"],["\u{1D51B}","X"],["\u{1D51C}","Y"],["\u{1D51E}","a"],["\u{1D51F}","b"],["\u{1D520}","c"],["\u{1D521}","d"],["\u{1D522}","e"],["\u{1D523}","f"],["\u{1D524}","g"],["\u{1D525}","h"],["\u{1D526}","i"],["\u{1D527}","j"],["\u{1D528}","k"],["\u{1D529}","l"],["\u{1D52A}","m"],["\u{1D52B}","n"],["\u{1D52C}","o"],["\u{1D52D}","p"],["\u{1D52E}","q"],["\u{1D52F}","r"],["\u{1D530}","s"],["\u{1D531}","t"],["\u{1D532}","u"],["\u{1D533}","v"],["\u{1D534}","w"],["\u{1D535}","x"],["\u{1D536}","y"],["\u{1D537}","z"],["\u{1D538}","A"],["\u{1D539}","B"],["\u{1D53B}","D"],["\u{1D53C}","E"],["\u{1D53D}","F"],["\u{1D53E}","G"],["\u{1D540}","I"],["\u{1D541}","J"],["\u{1D542}","K"],["\u{1D543}","L"],["\u{1D544}","M"],["\u{1D546}","O"],["\u{1D54A}","S"],["\u{1D54B}","T"],["\u{1D54C}","U"],["\u{1D54D}","V"],["\u{1D54E}","W"],["\u{1D54F}","X"],["\u{1D550}","Y"],["\u{1D552}","a"],["\u{1D553}","b"],["\u{1D554}","c"],["\u{1D555}","d"],["\u{1D556}","e"],["\u{1D557}","f"],["\u{1D558}","g"],["\u{1D559}","h"],["\u{1D55A}","i"],["\u{1D55B}","j"],["\u{1D55C}","k"],["\u{1D55D}","l"],["\u{1D55E}","m"],["\u{1D55F}","n"],["\u{1D560}","o"],["\u{1D561}","p"],["\u{1D562}","q"],["\u{1D563}","r"],["\u{1D564}","s"],["\u{1D565}","t"],["\u{1D566}","u"],["\u{1D567}","v"],["\u{1D568}","w"],["\u{1D569}","x"],["\u{1D56A}","y"],["\u{1D56B}","z"],["\u{1D56C}","A"],["\u{1D56D}","B"],["\u{1D56E}","C"],["\u{1D56F}","D"],["\u{1D570}","E"],["\u{1D571}","F"],["\u{1D572}","G"],["\u{1D573}","H"],["\u{1D574}","I"],["\u{1D575}","J"],["\u{1D576}","K"],["\u{1D577}","L"],["\u{1D578}","M"],["\u{1D579}","N"],["\u{1D57A}","O"],["\u{1D57B}","P"],["\u{1D57C}","Q"],["\u{1D57D}","R"],["\u{1D57E}","S"],["\u{1D57F}","T"],["\u{1D580}","U"],["\u{1D581}","V"],["\u{1D582}","W"],["\u{1D583}","X"],["\u{1D584}","Y"],["\u{1D585}","Z"],["\u{1D586}","a"],["\u{1D587}","b"],["\u{1D588}","c"],["\u{1D589}","d"],["\u{1D58A}","e"],["\u{1D58B}","f"],["\u{1D58C}","g"],["\u{1D58D}","h"],["\u{1D58E}","i"],["\u{1D58F}","j"],["\u{1D590}","k"],["\u{1D591}","l"],["\u{1D592}","m"],["\u{1D593}","n"],["\u{1D594}","o"],["\u{1D595}","p"],["\u{1D596}","q"],["\u{1D597}","r"],["\u{1D598}","s"],["\u{1D599}","t"],["\u{1D59A}","u"],["\u{1D59B}","v"],["\u{1D59C}","w"],["\u{1D59D}","x"],["\u{1D59E}","y"],["\u{1D59F}","z"],["\u{1D5A0}","A"],["\u{1D5A1}","B"],["\u{1D5A2}","C"],["\u{1D5A3}","D"],["\u{1D5A4}","E"],["\u{1D5A5}","F"],["\u{1D5A6}","G"],["\u{1D5A7}","H"],["\u{1D5A8}","I"],["\u{1D5A9}","J"],["\u{1D5AA}","K"],["\u{1D5AB}","L"],["\u{1D5AC}","M"],["\u{1D5AD}","N"],["\u{1D5AE}","O"],["\u{1D5AF}","P"],["\u{1D5B0}","Q"],["\u{1D5B1}","R"],["\u{1D5B2}","S"],["\u{1D5B3}","T"],["\u{1D5B4}","U"],["\u{1D5B5}","V"],["\u{1D5B6}","W"],["\u{1D5B7}","X"],["\u{1D5B8}","Y"],["\u{1D5B9}","Z"],["\u{1D5BA}","a"],["\u{1D5BB}","b"],["\u{1D5BC}","c"],["\u{1D5BD}","d"],["\u{1D5BE}","e"],["\u{1D5BF}","f"],["\u{1D5C0}","g"],["\u{1D5C1}","h"],["\u{1D5C2}","i"],["\u{1D5C3}","j"],["\u{1D5C4}","k"],["\u{1D5C5}","l"],["\u{1D5C6}","m"],["\u{1D5C7}","n"],["\u{1D5C8}","o"],["\u{1D5C9}","p"],["\u{1D5CA}","q"],["\u{1D5CB}","r"],["\u{1D5CC}","s"],["\u{1D5CD}","t"],["\u{1D5CE}","u"],["\u{1D5CF}","v"],["\u{1D5D0}","w"],["\u{1D5D1}","x"],["\u{1D5D2}","y"],["\u{1D5D3}","z"],["\u{1D5D4}","A"],["\u{1D5D5}","B"],["\u{1D5D6}","C"],["\u{1D5D7}","D"],["\u{1D5D8}","E"],["\u{1D5D9}","F"],["\u{1D5DA}","G"],["\u{1D5DB}","H"],["\u{1D5DC}","I"],["\u{1D5DD}","J"],["\u{1D5DE}","K"],["\u{1D5DF}","L"],["\u{1D5E0}","M"],["\u{1D5E1}","N"],["\u{1D5E2}","O"],["\u{1D5E3}","P"],["\u{1D5E4}","Q"],["\u{1D5E5}","R"],["\u{1D5E6}","S"],["\u{1D5E7}","T"],["\u{1D5E8}","U"],["\u{1D5E9}","V"],["\u{1D5EA}","W"],["\u{1D5EB}","X"],["\u{1D5EC}","Y"],["\u{1D5ED}","Z"],["\u{1D5EE}","a"],["\u{1D5EF}","b"],["\u{1D5F0}","c"],["\u{1D5F1}","d"],["\u{1D5F2}","e"],["\u{1D5F3}","f"],["\u{1D5F4}","g"],["\u{1D5F5}","h"],["\u{1D5F6}","i"],["\u{1D5F7}","j"],["\u{1D5F8}","k"],["\u{1D5F9}","l"],["\u{1D5FA}","m"],["\u{1D5FB}","n"],["\u{1D5FC}","o"],["\u{1D5FD}","p"],["\u{1D5FE}","q"],["\u{1D5FF}","r"],["\u{1D600}","s"],["\u{1D601}","t"],["\u{1D602}","u"],["\u{1D603}","v"],["\u{1D604}","w"],["\u{1D605}","x"],["\u{1D606}","y"],["\u{1D607}","z"],["\u{1D608}","A"],["\u{1D609}","B"],["\u{1D60A}","C"],["\u{1D60B}","D"],["\u{1D60C}","E"],["\u{1D60D}","F"],["\u{1D60E}","G"],["\u{1D60F}","H"],["\u{1D610}","I"],["\u{1D611}","J"],["\u{1D612}","K"],["\u{1D613}","L"],["\u{1D614}","M"],["\u{1D615}","N"],["\u{1D616}","O"],["\u{1D617}","P"],["\u{1D618}","Q"],["\u{1D619}","R"],["\u{1D61A}","S"],["\u{1D61B}","T"],["\u{1D61C}","U"],["\u{1D61D}","V"],["\u{1D61E}","W"],["\u{1D61F}","X"],["\u{1D620}","Y"],["\u{1D621}","Z"],["\u{1D622}","a"],["\u{1D623}","b"],["\u{1D624}","c"],["\u{1D625}","d"],["\u{1D626}","e"],["\u{1D627}","f"],["\u{1D628}","g"],["\u{1D629}","h"],["\u{1D62A}","i"],["\u{1D62B}","j"],["\u{1D62C}","k"],["\u{1D62D}","l"],["\u{1D62E}","m"],["\u{1D62F}","n"],["\u{1D630}","o"],["\u{1D631}","p"],["\u{1D632}","q"],["\u{1D633}","r"],["\u{1D634}","s"],["\u{1D635}","t"],["\u{1D636}","u"],["\u{1D637}","v"],["\u{1D638}","w"],["\u{1D639}","x"],["\u{1D63A}","y"],["\u{1D63B}","z"],["\u{1D63C}","A"],["\u{1D63D}","B"],["\u{1D63E}","C"],["\u{1D63F}","D"],["\u{1D640}","E"],["\u{1D641}","F"],["\u{1D642}","G"],["\u{1D643}","H"],["\u{1D644}","I"],["\u{1D645}","J"],["\u{1D646}","K"],["\u{1D647}","L"],["\u{1D648}","M"],["\u{1D649}","N"],["\u{1D64A}","O"],["\u{1D64B}","P"],["\u{1D64C}","Q"],["\u{1D64D}","R"],["\u{1D64E}","S"],["\u{1D64F}","T"],["\u{1D650}","U"],["\u{1D651}","V"],["\u{1D652}","W"],["\u{1D653}","X"],["\u{1D654}","Y"],["\u{1D655}","Z"],["\u{1D656}","a"],["\u{1D657}","b"],["\u{1D658}","c"],["\u{1D659}","d"],["\u{1D65A}","e"],["\u{1D65B}","f"],["\u{1D65C}","g"],["\u{1D65D}","h"],["\u{1D65E}","i"],["\u{1D65F}","j"],["\u{1D660}","k"],["\u{1D661}","l"],["\u{1D662}","m"],["\u{1D663}","n"],["\u{1D664}","o"],["\u{1D665}","p"],["\u{1D666}","q"],["\u{1D667}","r"],["\u{1D668}","s"],["\u{1D669}","t"],["\u{1D66A}","u"],["\u{1D66B}","v"],["\u{1D66C}","w"],["\u{1D66D}","x"],["\u{1D66E}","y"],["\u{1D66F}","z"],["\u{1D670}","A"],["\u{1D671}","B"],["\u{1D672}","C"],["\u{1D673}","D"],["\u{1D674}","E"],["\u{1D675}","F"],["\u{1D676}","G"],["\u{1D677}","H"],["\u{1D678}","I"],["\u{1D679}","J"],["\u{1D67A}","K"],["\u{1D67B}","L"],["\u{1D67C}","M"],["\u{1D67D}","N"],["\u{1D67E}","O"],["\u{1D67F}","P"],["\u{1D680}","Q"],["\u{1D681}","R"],["\u{1D682}","S"],["\u{1D683}","T"],["\u{1D684}","U"],["\u{1D685}","V"],["\u{1D686}","W"],["\u{1D687}","X"],["\u{1D688}","Y"],["\u{1D689}","Z"],["\u{1D68A}","a"],["\u{1D68B}","b"],["\u{1D68C}","c"],["\u{1D68D}","d"],["\u{1D68E}","e"],["\u{1D68F}","f"],["\u{1D690}","g"],["\u{1D691}","h"],["\u{1D692}","i"],["\u{1D693}","j"],["\u{1D694}","k"],["\u{1D695}","l"],["\u{1D696}","m"],["\u{1D697}","n"],["\u{1D698}","o"],["\u{1D699}","p"],["\u{1D69A}","q"],["\u{1D69B}","r"],["\u{1D69C}","s"],["\u{1D69D}","t"],["\u{1D69E}","u"],["\u{1D69F}","v"],["\u{1D6A0}","w"],["\u{1D6A1}","x"],["\u{1D6A2}","y"],["\u{1D6A3}","z"],["\u{1D6A4}","l"],["\u{1D6A5}","j"],["\u{1D6E2}","A"],["\u{1D6E3}","B"],["\u{1D6E4}","G"],["\u{1D6E5}","D"],["\u{1D6E6}","E"],["\u{1D6E7}","Z"],["\u{1D6E8}","I"],["\u{1D6E9}","TH"],["\u{1D6EA}","I"],["\u{1D6EB}","K"],["\u{1D6EC}","L"],["\u{1D6ED}","M"],["\u{1D6EE}","N"],["\u{1D6EF}","KS"],["\u{1D6F0}","O"],["\u{1D6F1}","P"],["\u{1D6F2}","R"],["\u{1D6F3}","TH"],["\u{1D6F4}","S"],["\u{1D6F5}","T"],["\u{1D6F6}","Y"],["\u{1D6F7}","F"],["\u{1D6F8}","x"],["\u{1D6F9}","PS"],["\u{1D6FA}","O"],["\u{1D6FB}","D"],["\u{1D6FC}","a"],["\u{1D6FD}","b"],["\u{1D6FE}","g"],["\u{1D6FF}","d"],["\u{1D700}","e"],["\u{1D701}","z"],["\u{1D702}","i"],["\u{1D703}","th"],["\u{1D704}","i"],["\u{1D705}","k"],["\u{1D706}","l"],["\u{1D707}","m"],["\u{1D708}","n"],["\u{1D709}","ks"],["\u{1D70A}","o"],["\u{1D70B}","p"],["\u{1D70C}","r"],["\u{1D70D}","s"],["\u{1D70E}","s"],["\u{1D70F}","t"],["\u{1D710}","y"],["\u{1D711}","f"],["\u{1D712}","x"],["\u{1D713}","ps"],["\u{1D714}","o"],["\u{1D715}","d"],["\u{1D716}","E"],["\u{1D717}","TH"],["\u{1D718}","K"],["\u{1D719}","f"],["\u{1D71A}","r"],["\u{1D71B}","p"],["\u{1D71C}","A"],["\u{1D71D}","V"],["\u{1D71E}","G"],["\u{1D71F}","D"],["\u{1D720}","E"],["\u{1D721}","Z"],["\u{1D722}","I"],["\u{1D723}","TH"],["\u{1D724}","I"],["\u{1D725}","K"],["\u{1D726}","L"],["\u{1D727}","M"],["\u{1D728}","N"],["\u{1D729}","KS"],["\u{1D72A}","O"],["\u{1D72B}","P"],["\u{1D72C}","S"],["\u{1D72D}","TH"],["\u{1D72E}","S"],["\u{1D72F}","T"],["\u{1D730}","Y"],["\u{1D731}","F"],["\u{1D732}","X"],["\u{1D733}","PS"],["\u{1D734}","O"],["\u{1D735}","D"],["\u{1D736}","a"],["\u{1D737}","v"],["\u{1D738}","g"],["\u{1D739}","d"],["\u{1D73A}","e"],["\u{1D73B}","z"],["\u{1D73C}","i"],["\u{1D73D}","th"],["\u{1D73E}","i"],["\u{1D73F}","k"],["\u{1D740}","l"],["\u{1D741}","m"],["\u{1D742}","n"],["\u{1D743}","ks"],["\u{1D744}","o"],["\u{1D745}","p"],["\u{1D746}","r"],["\u{1D747}","s"],["\u{1D748}","s"],["\u{1D749}","t"],["\u{1D74A}","y"],["\u{1D74B}","f"],["\u{1D74C}","x"],["\u{1D74D}","ps"],["\u{1D74E}","o"],["\u{1D74F}","a"],["\u{1D750}","e"],["\u{1D751}","i"],["\u{1D752}","k"],["\u{1D753}","f"],["\u{1D754}","r"],["\u{1D755}","p"],["\u{1D756}","A"],["\u{1D757}","B"],["\u{1D758}","G"],["\u{1D759}","D"],["\u{1D75A}","E"],["\u{1D75B}","Z"],["\u{1D75C}","I"],["\u{1D75D}","TH"],["\u{1D75E}","I"],["\u{1D75F}","K"],["\u{1D760}","L"],["\u{1D761}","M"],["\u{1D762}","N"],["\u{1D763}","KS"],["\u{1D764}","O"],["\u{1D765}","P"],["\u{1D766}","R"],["\u{1D767}","TH"],["\u{1D768}","S"],["\u{1D769}","T"],["\u{1D76A}","Y"],["\u{1D76B}","F"],["\u{1D76C}","X"],["\u{1D76D}","PS"],["\u{1D76E}","O"],["\u{1D76F}","D"],["\u{1D770}","a"],["\u{1D771}","v"],["\u{1D772}","g"],["\u{1D773}","d"],["\u{1D774}","e"],["\u{1D775}","z"],["\u{1D776}","i"],["\u{1D777}","th"],["\u{1D778}","i"],["\u{1D779}","k"],["\u{1D77A}","l"],["\u{1D77B}","m"],["\u{1D77C}","n"],["\u{1D77D}","ks"],["\u{1D77E}","o"],["\u{1D77F}","p"],["\u{1D780}","r"],["\u{1D781}","s"],["\u{1D782}","s"],["\u{1D783}","t"],["\u{1D784}","y"],["\u{1D785}","f"],["\u{1D786}","x"],["\u{1D787}","ps"],["\u{1D788}","o"],["\u{1D789}","a"],["\u{1D78A}","e"],["\u{1D78B}","i"],["\u{1D78C}","k"],["\u{1D78D}","f"],["\u{1D78E}","r"],["\u{1D78F}","p"],["\u{1D790}","A"],["\u{1D791}","V"],["\u{1D792}","G"],["\u{1D793}","D"],["\u{1D794}","E"],["\u{1D795}","Z"],["\u{1D796}","I"],["\u{1D797}","TH"],["\u{1D798}","I"],["\u{1D799}","K"],["\u{1D79A}","L"],["\u{1D79B}","M"],["\u{1D79C}","N"],["\u{1D79D}","KS"],["\u{1D79E}","O"],["\u{1D79F}","P"],["\u{1D7A0}","S"],["\u{1D7A1}","TH"],["\u{1D7A2}","S"],["\u{1D7A3}","T"],["\u{1D7A4}","Y"],["\u{1D7A5}","F"],["\u{1D7A6}","X"],["\u{1D7A7}","PS"],["\u{1D7A8}","O"],["\u{1D7A9}","D"],["\u{1D7AA}","av"],["\u{1D7AB}","g"],["\u{1D7AC}","d"],["\u{1D7AD}","e"],["\u{1D7AE}","z"],["\u{1D7AF}","i"],["\u{1D7B0}","i"],["\u{1D7B1}","th"],["\u{1D7B2}","i"],["\u{1D7B3}","k"],["\u{1D7B4}","l"],["\u{1D7B5}","m"],["\u{1D7B6}","n"],["\u{1D7B7}","ks"],["\u{1D7B8}","o"],["\u{1D7B9}","p"],["\u{1D7BA}","r"],["\u{1D7BB}","s"],["\u{1D7BC}","s"],["\u{1D7BD}","t"],["\u{1D7BE}","y"],["\u{1D7BF}","f"],["\u{1D7C0}","x"],["\u{1D7C1}","ps"],["\u{1D7C2}","o"],["\u{1D7C3}","a"],["\u{1D7C4}","e"],["\u{1D7C5}","i"],["\u{1D7C6}","k"],["\u{1D7C7}","f"],["\u{1D7C8}","r"],["\u{1D7C9}","p"],["\u{1D7CA}","F"],["\u{1D7CB}","f"],["\u249C","(a)"],["\u249D","(b)"],["\u249E","(c)"],["\u249F","(d)"],["\u24A0","(e)"],["\u24A1","(f)"],["\u24A2","(g)"],["\u24A3","(h)"],["\u24A4","(i)"],["\u24A5","(j)"],["\u24A6","(k)"],["\u24A7","(l)"],["\u24A8","(m)"],["\u24A9","(n)"],["\u24AA","(o)"],["\u24AB","(p)"],["\u24AC","(q)"],["\u24AD","(r)"],["\u24AE","(s)"],["\u24AF","(t)"],["\u24B0","(u)"],["\u24B1","(v)"],["\u24B2","(w)"],["\u24B3","(x)"],["\u24B4","(y)"],["\u24B5","(z)"],["\u24B6","(A)"],["\u24B7","(B)"],["\u24B8","(C)"],["\u24B9","(D)"],["\u24BA","(E)"],["\u24BB","(F)"],["\u24BC","(G)"],["\u24BD","(H)"],["\u24BE","(I)"],["\u24BF","(J)"],["\u24C0","(K)"],["\u24C1","(L)"],["\u24C3","(N)"],["\u24C4","(O)"],["\u24C5","(P)"],["\u24C6","(Q)"],["\u24C7","(R)"],["\u24C8","(S)"],["\u24C9","(T)"],["\u24CA","(U)"],["\u24CB","(V)"],["\u24CC","(W)"],["\u24CD","(X)"],["\u24CE","(Y)"],["\u24CF","(Z)"],["\u24D0","(a)"],["\u24D1","(b)"],["\u24D2","(c)"],["\u24D3","(d)"],["\u24D4","(e)"],["\u24D5","(f)"],["\u24D6","(g)"],["\u24D7","(h)"],["\u24D8","(i)"],["\u24D9","(j)"],["\u24DA","(k)"],["\u24DB","(l)"],["\u24DC","(m)"],["\u24DD","(n)"],["\u24DE","(o)"],["\u24DF","(p)"],["\u24E0","(q)"],["\u24E1","(r)"],["\u24E2","(s)"],["\u24E3","(t)"],["\u24E4","(u)"],["\u24E5","(v)"],["\u24E6","(w)"],["\u24E7","(x)"],["\u24E8","(y)"],["\u24E9","(z)"],["\u010A","C"],["\u010B","c"],["\u0120","G"],["\u0121","g"],["\u0126","H"],["\u0127","h"],["\u017B","Z"],["\u017C","z"],["\u{1D7CE}","0"],["\u{1D7CF}","1"],["\u{1D7D0}","2"],["\u{1D7D1}","3"],["\u{1D7D2}","4"],["\u{1D7D3}","5"],["\u{1D7D4}","6"],["\u{1D7D5}","7"],["\u{1D7D6}","8"],["\u{1D7D7}","9"],["\u{1D7D8}","0"],["\u{1D7D9}","1"],["\u{1D7DA}","2"],["\u{1D7DB}","3"],["\u{1D7DC}","4"],["\u{1D7DD}","5"],["\u{1D7DE}","6"],["\u{1D7DF}","7"],["\u{1D7E0}","8"],["\u{1D7E1}","9"],["\u{1D7E2}","0"],["\u{1D7E3}","1"],["\u{1D7E4}","2"],["\u{1D7E5}","3"],["\u{1D7E6}","4"],["\u{1D7E7}","5"],["\u{1D7E8}","6"],["\u{1D7E9}","7"],["\u{1D7EA}","8"],["\u{1D7EB}","9"],["\u{1D7EC}","0"],["\u{1D7ED}","1"],["\u{1D7EE}","2"],["\u{1D7EF}","3"],["\u{1D7F0}","4"],["\u{1D7F1}","5"],["\u{1D7F2}","6"],["\u{1D7F3}","7"],["\u{1D7F4}","8"],["\u{1D7F5}","9"],["\u{1D7F6}","0"],["\u{1D7F7}","1"],["\u{1D7F8}","2"],["\u{1D7F9}","3"],["\u{1D7FA}","4"],["\u{1D7FB}","5"],["\u{1D7FC}","6"],["\u{1D7FD}","7"],["\u{1D7FE}","8"],["\u{1D7FF}","9"],["\u2460","1"],["\u2461","2"],["\u2462","3"],["\u2463","4"],["\u2464","5"],["\u2465","6"],["\u2466","7"],["\u2467","8"],["\u2468","9"],["\u2469","10"],["\u246A","11"],["\u246B","12"],["\u246C","13"],["\u246D","14"],["\u246E","15"],["\u246F","16"],["\u2470","17"],["\u2471","18"],["\u2472","19"],["\u2473","20"],["\u2474","1"],["\u2475","2"],["\u2476","3"],["\u2477","4"],["\u2478","5"],["\u2479","6"],["\u247A","7"],["\u247B","8"],["\u247C","9"],["\u247D","10"],["\u247E","11"],["\u247F","12"],["\u2480","13"],["\u2481","14"],["\u2482","15"],["\u2483","16"],["\u2484","17"],["\u2485","18"],["\u2486","19"],["\u2487","20"],["\u2488","1."],["\u2489","2."],["\u248A","3."],["\u248B","4."],["\u248C","5."],["\u248D","6."],["\u248E","7."],["\u248F","8."],["\u2490","9."],["\u2491","10."],["\u2492","11."],["\u2493","12."],["\u2494","13."],["\u2495","14."],["\u2496","15."],["\u2497","16."],["\u2498","17."],["\u2499","18."],["\u249A","19."],["\u249B","20."],["\u24EA","0"],["\u24EB","11"],["\u24EC","12"],["\u24ED","13"],["\u24EE","14"],["\u24EF","15"],["\u24F0","16"],["\u24F1","17"],["\u24F2","18"],["\u24F3","19"],["\u24F4","20"],["\u24F5","1"],["\u24F6","2"],["\u24F7","3"],["\u24F8","4"],["\u24F9","5"],["\u24FA","6"],["\u24FB","7"],["\u24FC","8"],["\u24FD","9"],["\u24FE","10"],["\u24FF","0"],["\u{1F670}","&"],["\u{1F671}","&"],["\u{1F672}","&"],["\u{1F673}","&"],["\u{1F674}","&"],["\u{1F675}","&"],["\u{1F676}",'"'],["\u{1F677}",'"'],["\u{1F678}",'"'],["\u203D","?!"],["\u{1F679}","?!"],["\u{1F67A}","?!"],["\u{1F67B}","?!"],["\u{1F67C}","/"],["\u{1F67D}","\\"],["\u{1F707}","AR"],["\u{1F708}","V"],["\u{1F709}","V"],["\u{1F706}","VR"],["\u{1F705}","VF"],["\u{1F729}","2"],["\u{1F72A}","5"],["\u{1F761}","f"],["\u{1F762}","W"],["\u{1F763}","U"],["\u{1F767}","V"],["\u{1F768}","T"],["\u{1F76A}","V"],["\u{1F76B}","MB"],["\u{1F76C}","VB"],["\u{1F772}","3B"],["\u{1F773}","3B"],["\u{1F4AF}","100"],["\u{1F519}","BACK"],["\u{1F51A}","END"],["\u{1F51B}","ON!"],["\u{1F51C}","SOON"],["\u{1F51D}","TOP"],["\u{1F51E}","18"],["\u{1F524}","abc"],["\u{1F520}","ABCD"],["\u{1F521}","abcd"],["\u{1F522}","1234"],["\u{1F523}","T&@%"],["#\uFE0F\u20E3","#"],["*\uFE0F\u20E3","*"],["0\uFE0F\u20E3","0"],["1\uFE0F\u20E3","1"],["2\uFE0F\u20E3","2"],["3\uFE0F\u20E3","3"],["4\uFE0F\u20E3","4"],["5\uFE0F\u20E3","5"],["6\uFE0F\u20E3","6"],["7\uFE0F\u20E3","7"],["8\uFE0F\u20E3","8"],["9\uFE0F\u20E3","9"],["\u{1F51F}","10"],["\u{1F170}\uFE0F","A"],["\u{1F171}\uFE0F","B"],["\u{1F18E}","AB"],["\u{1F191}","CL"],["\u{1F17E}\uFE0F","O"],["\u{1F17F}","P"],["\u{1F198}","SOS"],["\u{1F172}","C"],["\u{1F173}","D"],["\u{1F174}","E"],["\u{1F175}","F"],["\u{1F176}","G"],["\u{1F177}","H"],["\u{1F178}","I"],["\u{1F179}","J"],["\u{1F17A}","K"],["\u{1F17B}","L"],["\u{1F17C}","M"],["\u{1F17D}","N"],["\u{1F180}","Q"],["\u{1F181}","R"],["\u{1F182}","S"],["\u{1F183}","T"],["\u{1F184}","U"],["\u{1F185}","V"],["\u{1F186}","W"],["\u{1F187}","X"],["\u{1F188}","Y"],["\u{1F189}","Z"],["\u2212","-"],["\u2053","-"]],z0=new Map(V0),wc=z0});var pm,Li,vc,hm=v(()=>{pm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],Li={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:pm,nb:pm,de:[["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xDF","ss"],["\u1E9E","Ss"]],tr:[["\xE2","a"],["\xC2","A"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"]],hu:[["\u0171","u"],["\u0170","U"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"],["\xE1","a"],["\xC1","A"],["\xE9","e"],["\xC9","E"],["\xED","i"],["\xCD","I"],["\xF3","o"],["\xD3","O"],["\xFA","u"],["\xDA","U"]],sr:[["\u0452","dj"],["\u0402","Dj"],["\u045F","dz"],["\u040F","Dz"],["\u0459","lj"],["\u0409","Lj"],["\u045A","nj"],["\u040A","Nj"],["\u045B","c"],["\u040B","C"],["\u0447","ch"],["\u0427","Ch"],["\u0448","sh"],["\u0428","Sh"],["\u0436","zh"],["\u0416","Zh"]]};for(let n of Object.keys(Li))Li[n]=new Map(Li[n]);vc=Li});function Sc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=X0(e.locale),r=wc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(wc),t)for(let[i,o]of t)r.set(i,o);for(let[i,o]of e.customReplacements)r.set(i,o)}return n=n.normalize(),n=G0(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var G0,X0,mm=v(()=>{fm();hm();G0=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},X0=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return vc[e]||vc[e.split("-")[0]]||void 0}});var Q0,gm,ym=v(()=>{Q0=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],gm=Q0});function kc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={separator:"-",lowercase:!0,decamelize:!0,customReplacements:[],preserveLeadingUnderscore:!1,preserveTrailingDash:!1,preserveCharacters:[],transliterate:!0,...e};let t=e.preserveLeadingUnderscore&&n.startsWith("_"),r=e.preserveTrailingDash&&n.endsWith("-");if(e.transliterate){let i=new Map([...gm,...e.customReplacements]);n=Sc(n,{customReplacements:i,locale:e.locale})}else if(e.customReplacements.length>0)for(let[i,o]of e.customReplacements)n=n.replaceAll(i,o);e.decamelize&&(n=Z0(n));let s=tE(e);return e.lowercase&&(n=e.locale?n.toLocaleLowerCase(e.locale):n.toLowerCase()),n=n.replaceAll(/([a-zA-Z\d]+)['\u2019]([ts])(\s|$)/g,"$1$2$3"),n=n.replace(s,e.separator),n=n.replaceAll("\\",""),e.separator&&(n=eE(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var Z0,eE,tE,bm=v(()=>{dm();mm();ym();Z0=n=>n.replaceAll(/([A-Z]{2,})(\d+)/g,"$1 $2").replaceAll(/([a-z\d]+)([A-Z]{2,})/g,"$1 $2").replaceAll(/([a-z\d])([A-Z])/g,"$1 $2").replaceAll(/([A-Z]+)([A-Z][a-rt-z\d]+)/g,"$1 $2"),eE=(n,e)=>{let t=$i(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},tE=n=>{let e=String.raw`a-z\d`;if(e+=n.lowercase?"":"A-Z",n.transliterate===!1&&(e+=String.raw`\p{L}\p{N}`),n.preserveCharacters.length>0)for(let r of n.preserveCharacters){if(r===n.separator)throw new Error(`The separator character \`${n.separator}\` cannot be included in preserved characters: ${n.preserveCharacters}`);e+=$i(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function An(n){return kc(n)}var wm=v(()=>{bm()});var Tn,vm,Sm=v(()=>{Tn={local:"local",ide:"ide",published:"published",inline:"inline"},vm=Object.values(Tn).map(n=>`'${n}'`).join(" | ")});var jr,xc,km=v(()=>{jr=` *, *::before, *::after { box-sizing: border-box; }
|
|
167
167
|
canvas { max-width: 100%; }
|
|
168
168
|
body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
|
|
169
169
|
html[data-theme="dark"] { color-scheme: dark; }
|
|
170
|
-
html[data-theme="light"] { color-scheme: light; }`,
|
|
171
|
-
\u2026[${n.length-5e4} more characters truncated]`:n}function $e(n){let e=n.replace(
|
|
172
|
-
`).map(i=>i.trim()).filter(Boolean),t=e[0];if(!t)return"";let r=t.length>300?t.slice(0,300).trimEnd()+"\u2026":t,s=e.length-1;return s>0?`${r} (+${s} line${s===1?"":"s"})`:r}var
|
|
173
|
-
`):n==null?"":we(JSON.stringify(n))}function
|
|
174
|
-
`).length,"line")}`;if(t.mode==="content")return Le(t.numLines??0,"line");if(t.mode==="count")return`${Le(t.numMatches??0,"match","matches")} (${Le(t.numFiles??0,"file")})`;if(t.mode==="files_with_matches")return Le(t.numFiles??0,"file");if(Array.isArray(t.structuredPatch)){let r=0,s=0;for(let i of t.structuredPatch)for(let o of i?.lines??[])typeof o=="string"&&(o.startsWith("+")?r++:o.startsWith("-")&&s++);return`+${r} \u2212${s}`}return typeof t.stdout=="string"||typeof t.stderr=="string"?t.backgroundTaskId?"running in background":t.interrupted?"interrupted":$e(t.stdout||t.stderr||"")||"no output":typeof t.code=="number"&&typeof t.codeText=="string"?`${t.code} ${t.codeText}`:typeof t.searchCount=="number"?Le(t.searchCount,"search","searches"):Array.isArray(t.matches)&&typeof t.total_deferred_tools=="number"?Le(t.matches.length,"tool"):Array.isArray(t.newTodos)?Le(t.newTodos.length,"todo"):typeof t.numFiles=="number"?Le(t.numFiles,"file"):$e(e)}function Ur(n){return!!n.isSidechain||!!n.isMeta}function
|
|
170
|
+
html[data-theme="light"] { color-scheme: light; }`,xc=" html, body { height: 100%; }"});var ne=v(()=>{Ns();Na();af();df();bc();um();wm();Sm();km();Is()});function we(n){return n.length>5e4?n.slice(0,5e4)+`
|
|
171
|
+
\u2026[${n.length-5e4} more characters truncated]`:n}function $e(n){let e=n.replace(nE,"").split(`
|
|
172
|
+
`).map(i=>i.trim()).filter(Boolean),t=e[0];if(!t)return"";let r=t.length>300?t.slice(0,300).trimEnd()+"\u2026":t,s=e.length-1;return s>0?`${r} (+${s} line${s===1?"":"s"})`:r}var nE,Mi,Fr=v(()=>{"use strict";nE=/\u001b\[[0-9;]*m/g;Mi=(n,e)=>``});import{existsSync as rE,readdirSync as sE,statSync as iE}from"fs";import{join as oE}from"path";function Bi(n){if(!rE(n))return[];let e;try{e=sE(n)}catch{return[]}let t=[];for(let r of e){if(!r.endsWith(".jsonl"))continue;let s=oE(n,r);try{let i=iE(s);i.isFile()&&t.push({sessionId:r.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Ac=v(()=>{"use strict"});var St,Di=v(()=>{"use strict";St=class{ensureHarnessSupport(){}}});import{openSync as aE,readSync as lE,closeSync as cE,statSync as uE,readdirSync as dE,readFileSync as fE,existsSync as pE}from"fs";import{join as qr}from"path";import{homedir as Pc}from"os";function hE(n){return n.replace(/[^a-zA-Z0-9]/g,"-")}function ji(n){let e=n?.type==="image"?n.source:void 0;return e?.type==="base64"&&e.data?Mi(e.data,e.media_type):""}function Tc(n){return typeof n=="string"?we(n):Array.isArray(n)?n.map(e=>{if(typeof e=="string")return we(e);let t=e;return typeof t?.text=="string"?we(t.text):t?.content!=null?Tc(t.content):ji(t)}).join(`
|
|
173
|
+
`):n==null?"":we(JSON.stringify(n))}function gE(n){let e=n.trim();return!!e&&Om.some(t=>t.test(e))}function yE(n){let e=n.trim();return e?Om.some(t=>{let r=t.exec(e);return!!r&&r.index===0}):!0}function wE(n){return n.replace(bE,"")}function vE(n){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(n)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(n)?.[1]?.trim();return t?`${e} ${t}`:e}function kt(n){let e=wE(n).trim();return e?vE(e)??(gE(e)?"":e):""}function Oc(n){return n?.type==="text"&&typeof n.text=="string"?kt(n.text):""}function Cc(n,e){if(typeof n=="string")return $e(n);if(!n||typeof n!="object")return $e(e);let t=n;if(t.type==="text"&&typeof t.file?.numLines=="number")return Le(t.file.numLines,"line");if(t.type==="image"){let r=Am(t.file?.originalSize);return r?`image (${r})`:"image"}if(t.type==="pdf"){let r=Am(t.file?.originalSize);return r?`PDF (${r})`:"PDF"}if(t.type==="parts"&&typeof t.file?.count=="number")return Le(t.file.count,"page");if(t.type==="file_unchanged")return"unchanged since last read";if(t.type==="create"&&typeof t.content=="string")return`created, ${Le(t.content.split(`
|
|
174
|
+
`).length,"line")}`;if(t.mode==="content")return Le(t.numLines??0,"line");if(t.mode==="count")return`${Le(t.numMatches??0,"match","matches")} (${Le(t.numFiles??0,"file")})`;if(t.mode==="files_with_matches")return Le(t.numFiles??0,"file");if(Array.isArray(t.structuredPatch)){let r=0,s=0;for(let i of t.structuredPatch)for(let o of i?.lines??[])typeof o=="string"&&(o.startsWith("+")?r++:o.startsWith("-")&&s++);return`+${r} \u2212${s}`}return typeof t.stdout=="string"||typeof t.stderr=="string"?t.backgroundTaskId?"running in background":t.interrupted?"interrupted":$e(t.stdout||t.stderr||"")||"no output":typeof t.code=="number"&&typeof t.codeText=="string"?`${t.code} ${t.codeText}`:typeof t.searchCount=="number"?Le(t.searchCount,"search","searches"):Array.isArray(t.matches)&&typeof t.total_deferred_tools=="number"?Le(t.matches.length,"tool"):Array.isArray(t.newTodos)?Le(t.newTodos.length,"todo"):typeof t.numFiles=="number"?Le(t.numFiles,"file"):$e(e)}function Ur(n){return!!n.isSidechain||!!n.isMeta}function SE(n){let e;try{e=aE(n,"r")}catch{return""}try{let r=65536;try{r=uE(n).size}catch{}let s=(c,d)=>{if(d<=0)return"";let u=Buffer.alloc(d),f=lE(e,u,0,d,c);return u.subarray(0,f).toString("utf8")},i=(c,d,u)=>{let f="";for(let p of c.split(`
|
|
175
175
|
`)){if(!p.includes(`"${d}"`))continue;let m;try{m=JSON.parse(p)}catch{continue}let h=m?.[u];m?.type===d&&typeof h=="string"&&h&&(f=h)}return f},o=s(0,Math.min(65536,r)),a=r>65536?s(r-65536,65536):"",l=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(l)return l.replace(/\s+/g," ").trim().slice(0,200);for(let c of o.split(`
|
|
176
|
-
`)){if(!c.trim())continue;let d;try{d=JSON.parse(c)}catch{continue}if(!d||Ur(d)||d.type!=="user")continue;let u=d.message?.content,f="";typeof u=="string"?f=kt(u):Array.isArray(u)&&(f=u.map(
|
|
177
|
-
`),l=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||l.length){let u=Date.parse(e.timestamp??""),f=!isNaN(u)&&u>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:f})}let c=e.message?.usage??e.usage,d=c&&{in:c.input_tokens??0,out:c.output_tokens??0,cached:c.cache_read_input_tokens??0,cacheCreate:c.cache_creation_input_tokens??0};return{events:r,usage:d,model:e.message?.model}}return{events:r}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(c=>c&&c.type==="text").map(c=>c.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(c=>c&&c.type==="tool_result"))&&a.trim()&&kt(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let l of a)l.type==="tool_result"&&l.tool_use_id&&i.add(l.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return
|
|
178
|
-
`):""}function
|
|
179
|
-
`);if(r<0)return t.bytes>=65536?"":void 0;try{let s=JSON.parse(t.text.slice(0,r));return s?.type==="session_meta"&&typeof s.payload?.cwd=="string"?s.payload.cwd:""}catch{return""}}var
|
|
180
|
-
`))if(r.includes('"user_message"'))try{let s=JSON.parse(r);if(s?.type==="event_msg"&&s.payload?.type==="user_message"&&typeof s.payload.message=="string"){let i=s.payload.message.replace(/\s+/g," ").trim();if(i)return i.slice(0,200)}}catch{}return""}searchText(t){if(t?.type!=="response_item"||t.payload?.type!=="message")return"";let r=t.payload.role;return r!=="user"&&r!=="assistant"?"":Jr(t.payload.content,r==="user").replace(/\s+/g," ").trim()}}});import{realpathSync as
|
|
181
|
-
`),r=[];if(t.forEach((o,a)=>{let l=
|
|
182
|
-
`)}function
|
|
176
|
+
`)){if(!c.trim())continue;let d;try{d=JSON.parse(c)}catch{continue}if(!d||Ur(d)||d.type!=="user")continue;let u=d.message?.content,f="";typeof u=="string"?f=kt(u):Array.isArray(u)&&(f=u.map(Oc).filter(Boolean).join(" "));let p=f.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{cE(e)}}function kE(n){let e;try{e=dE(Tm)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let r=JSON.parse(fE(qr(Tm,t),"utf8"));if(r?.sessionId!==n)continue;return process.kill(r.pid,0),!0}catch{}return!1}var mE,Em,Om,bE,Le,Am,Tm,On,Fi=v(()=>{"use strict";Fr();Ac();Di();mE=qr(Pc(),".claude","projects"),Em=n=>qr(mE,hE(n));Om=[/\[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];bE=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;Le=(n,e,t=e+"s")=>`${n} ${n===1?e:t}`,Am=n=>typeof n!="number"?"":n<1024?`${n}B`:n<1048576?`${Math.round(n/1024)}KB`:`${(n/1048576).toFixed(1)}MB`;Tm=qr(Pc(),".claude","sessions");On=class extends St{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}detectsInstalled(){return pE(qr(Pc(),".claude"))}sessionsDir(e){return Em(e)}listSessionFiles(e){return Bi(Em(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(Ur(e))return{events:[]};let r=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=kt(s);i&&r.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result"){let o=Tc(i.content);r.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:Cc(e.toolUseResult,o)})}else{let o=Oc(i)||ji(i);o&&r.push({type:"user",text:o})}return{events:r}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=kt(Tc(e.attachment.prompt));return s&&r.push({type:"user",text:s}),{events:r}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!yE(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
|
|
177
|
+
`),l=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||l.length){let u=Date.parse(e.timestamp??""),f=!isNaN(u)&&u>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:f})}let c=e.message?.usage??e.usage,d=c&&{in:c.input_tokens??0,out:c.output_tokens??0,cached:c.cache_read_input_tokens??0,cacheCreate:c.cache_creation_input_tokens??0};return{events:r,usage:d,model:e.message?.model}}return{events:r}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(c=>c&&c.type==="text").map(c=>c.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(c=>c&&c.type==="tool_result"))&&a.trim()&&kt(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let l of a)l.type==="tool_result"&&l.tool_use_id&&i.add(l.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return kE(e)}readPreview(e){return SE(e)}searchText(e){if(!e||Ur(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,r="";if(typeof t=="string")r=kt(t);else if(Array.isArray(t)){let s=t;r=e.type==="user"?s.map(Oc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return r.replace(/\s+/g," ").trim()}}});import{statSync as xE,readdirSync as EE,openSync as AE,readSync as TE,closeSync as OE,existsSync as PE}from"fs";import{basename as CE,join as Rc,resolve as RE}from"path";import{homedir as Pm}from"os";function NE(n){let e=n.trimStart();return _E.some(t=>e.startsWith(t))}function Jr(n,e){return Array.isArray(n)?n.map(t=>typeof t?.text=="string"?e&&NE(t.text)?"":we(t.text):t?.type==="input_image"&&typeof t.image_url=="string"&&t.image_url.startsWith("data:")?``:"").filter(Boolean).join(`
|
|
178
|
+
`):""}function IE(n){return typeof n=="string"?we(n):Jr(n,!1)}function $E(n){let e=n??"";for(let t of[/tools\.shell_command\((\{[\s\S]*?\})\)/,/tools\.shell_command\((\{[\s\S]*\})\)/]){let r=t.exec(e);if(r)try{return JSON.parse(r[1])}catch{}}return{script:e}}function LE(n){if(typeof n=="string"&&n)try{let e=JSON.parse(n);if(e&&typeof e=="object"&&!Array.isArray(e))return e}catch{}return{arguments:n??""}}function Rm(n,e){let t;try{t=AE(n,"r")}catch{return}try{let r=Buffer.alloc(e),s=TE(t,r,0,e,0);return{text:r.subarray(0,s).toString("utf8"),bytes:s}}finally{OE(t)}}function ME(n){let t=Rm(n,65536);if(t===void 0)return;let r=t.text.indexOf(`
|
|
179
|
+
`);if(r<0)return t.bytes>=65536?"":void 0;try{let s=JSON.parse(t.text.slice(0,r));return s?.type==="session_meta"&&typeof s.payload?.cwd=="string"?s.payload.cwd:""}catch{return""}}var _E,Cm,Pn,_c=v(()=>{"use strict";Fr();Di();_E=["<permissions instructions>","<apps_instructions>","<plugins_instructions>","<skills_instructions>","<recommended_plugins>","<environment_context>","<user_instructions>"];Cm=n=>{let e=RE(n);return process.platform==="win32"?e.toLowerCase():e},Pn=class extends St{constructor(t=Rc(Pm(),".codex","sessions")){super();this.root=t}displayName="Codex Mirror";#e=0;#t;#n=new Map;detectsSelf(){return!!process.env.CODEX_THREAD_ID}detectsInstalled(){return PE(Rc(Pm(),".codex"))}sessionsDir(t){return this.root}listSessionFiles(t){let r=Cm(t),s=[];for(let i of this.#r()){let o;try{let l=xE(i);if(!l.isFile())continue;o=l.mtimeMs}catch{continue}let a=this.#n.get(i);if(a===void 0){if(a=ME(i),a===void 0)continue;this.#n.set(i,a)}Cm(a)===r&&s.push({sessionId:CE(i,".jsonl"),file:i,mtime:o})}return s}#r(){let t=[],r=s=>{try{return EE(s).map(i=>Rc(s,i))}catch{return[]}};for(let s of r(this.root))for(let i of r(s))for(let o of r(i))for(let a of r(o))a.endsWith(".jsonl")&&t.push(a);return t}parseEntry(t){let r;try{r=JSON.parse(t)}catch{return null}return!r||typeof r.type!="string"?null:r}idOf(t){return t.ord===void 0&&(t.ord=String(this.#e++),t.parent=this.#t,this.#t=t.ord),t.ord}parentOf(t){return t.parent}timestampOf(t){return t.timestamp}isSidechain(t){return!1}isLeafType(t){return!0}isRecoveryNoise(t){return!1}apply(t,r){let s=[],i=t.payload;if(!i)return{events:s};let o=()=>{let a=Date.parse(t.timestamp??"");return!isNaN(a)&&a>=r};if(t.type==="response_item"){if(i.type==="message"){if(i.role==="user"){let a=Jr(i.content,!0).trim();a&&s.push({type:"user",text:a})}else if(i.role==="assistant"){let a=Jr(i.content,!1);a&&s.push({type:"assistant",text:a,thinking:"",tools:[],live:o()})}return{events:s}}if(i.type==="reasoning"){let a=Jr(i.summary,!1);return a&&s.push({type:"assistant",text:"",thinking:a,tools:[],live:o()}),{events:s}}if(i.type==="custom_tool_call"||i.type==="function_call"){let a=i.type==="custom_tool_call"?$E(i.input):LE(i.arguments);return s.push({type:"assistant",text:"",thinking:"",tools:[{id:i.call_id??"",name:i.name??"",input:a}],live:o()}),{events:s}}if(i.type==="custom_tool_call_output"||i.type==="function_call_output"){let a=IE(i.output);return s.push({type:"tool_result",id:i.call_id??"",content:a,isError:!1,digest:$e(a)}),{events:s}}return{events:s}}if(t.type==="event_msg"){if(i.type==="token_count"){let a=i.info?.last_token_usage;if(!a)return{events:s};let l={in:Math.max(0,(a.input_tokens??0)-(a.cached_input_tokens??0)),out:a.output_tokens??0,cached:a.cached_input_tokens??0,cacheCreate:a.cache_write_input_tokens??0};return{events:s,usage:l}}return{events:s}}return t.type==="turn_context"?{events:s,model:i.model}:{events:s}}chainWorking(t){let r=!1;for(let s of t){if(s.type!=="event_msg")continue;let i=s.payload?.type;i==="task_started"?r=!0:(i==="task_complete"||i==="turn_aborted")&&(r=!1)}return r}sessionAlive(){}readPreview(t){for(let r of(Rm(t,256*1024)?.text??"").split(`
|
|
180
|
+
`))if(r.includes('"user_message"'))try{let s=JSON.parse(r);if(s?.type==="event_msg"&&s.payload?.type==="user_message"&&typeof s.payload.message=="string"){let i=s.payload.message.replace(/\s+/g," ").trim();if(i)return i.slice(0,200)}}catch{}return""}searchText(t){if(t?.type!=="response_item"||t.payload?.type!=="message")return"";let r=t.payload.role;return r!=="user"&&r!=="assistant"?"":Jr(t.payload.content,r==="user").replace(/\s+/g," ").trim()}}});import{realpathSync as BE}from"fs";import{createHash as DE}from"crypto";import{join as Ui,resolve as jE}from"path";import{homedir as FE}from"os";function xt(){let n=process.env.TYPEBULB_SERVERS_DIR;return n?Ui(n,".."):Ui(FE(),".typebulb")}function Ze(){_m||(_m=!0,console.error(`${xt()} not writable \u2014 continuing stateless: ports won't stick, caches stay cold, and typebulb logs/wait/send/stop may not see this run`))}function et(){return process.env.TYPEBULB_SERVERS_DIR||Ui(xt(),"servers")}function Nm(n){let e=X(n),t=DE("sha1").update(e).digest("hex").slice(0,8),r=e.slice(e.lastIndexOf("/")+1).replace(/\.bulb\.md$/,"");return Ui(xt(),"canvas",`${r}-${t}.png`)}function X(n){let e=jE(n),t=e;try{t=BE.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Im(n,e){let t=X(n),r=X(e);return t.startsWith(r.endsWith("/")?r:r+"/")?!t.includes("/node_modules/"):!1}var _m,Et=v(()=>{"use strict";_m=!1});var Me,qi=v(()=>{"use strict";Me="0.51.1"});import{spawn as $m}from"child_process";import{readdir as UE,readFile as Mm,writeFile as Bm,unlink as Nc,mkdir as qE}from"fs/promises";import{mkdirSync as Dm,writeFileSync as Ji,appendFileSync as JE,readFileSync as Ic}from"fs";import*as Ee from"path";import{fileURLToPath as KE}from"url";function $c(n){return Ee.join(et(),`${n}.json`)}function Hr(n){return Ee.join(et(),`${n}.log`)}function Lc(n){return Ee.join(et(),`${n}.wait.json`)}function jm(n){try{let e=JSON.parse(Ic(Lc(n),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Mc(n,e=""){let t=jm(n)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function Ki(n,e,t=""){try{Dm(et(),{recursive:!0});let r=jm(n);r[t]=e,Ji(Lc(n),JSON.stringify({cursors:r}))}catch{}}function Hi(n){let e=Hr(n);try{Dm(et(),{recursive:!0}),Ji(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),r=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let l=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(JE(e,l),s+=l.length,s>2*Lm){let c=Ic(e),d=c.subarray(Math.max(0,c.length-Lm));Ji(e,d),s=d.length}}catch{i=!0}};return process.stdout.write=((a,...l)=>(o(a),t(a,...l))),process.stderr.write=((a,...l)=>(o(a),r(a,...l))),()=>{process.stdout.write=t,process.stderr.write=r}}function Fm(n){try{Ji(Hr(n),"")}catch{}}function We(n,e=0){try{let t=Ic(Hr(n)),r=e>=0&&e<=t.length?e:0;return{text:t.subarray(r).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Bc(n){return`\u2500\u2500 run ${n} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function WE(n){let e=HE.exec(n);return e?Number(e[1]):void 0}function Um(n,e){let t=n.split(`
|
|
181
|
+
`),r=[];if(t.forEach((o,a)=>{let l=WE(o);l!==void 0&&r.push({id:l,idx:a})}),!r.length)return e==="latest"?n:"";let s=e==="latest"?r[r.length-1]:r.find(o=>o.id===e);if(!s)return"";let i=r.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
|
|
182
|
+
`)}function Dc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function qm(n){try{await qE(et(),{recursive:!0}),await Bm($c(n.pid),JSON.stringify({version:Me,...n}))}catch{Ze()}}async function Jm(n,e){let t=$c(n);try{let r=JSON.parse(await Mm(t,"utf8"));if(r.denied===e)return;r.denied=e,await Bm(t,JSON.stringify(r))}catch{}}async function Kr(n){await Nc($c(n)).catch(()=>{}),await Nc(Hr(n)).catch(()=>{}),await Nc(Lc(n)).catch(()=>{})}async function Q(n){let e;try{e=await UE(et())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await Mm(Ee.join(et(),s),"utf8"))}catch{await Kr(i);return}o&&typeof o.pid=="number"&&Dc(o.pid)?t.push(o):await Kr(i)})),(n?t.filter(s=>s.agent==null&&Im(s.file,n)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function jc(n,e){let t=X(n);return(await Q()).find(r=>r.cwd!=null&&X(r.cwd)===t&&(e?r.agent===e:r.agent!=null))}async function Wt(n){try{process.kill(n,"SIGTERM")}catch{}await Kr(n)}function Cn(n,e){let t=X(e);return n.filter(r=>r.agent==null&&r.pid!==process.pid&&X(r.file)===t)}async function Fc(n){let e=Cn(await Q(),n);for(let t of e)await Wt(t.pid);return e}function VE(n,e,t){(process.platform==="win32"?$m("cmd",["/c","start","","/b",n,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):$m(n,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function Km(){return Ee.join(Ee.dirname(KE(import.meta.url)),"index.js")}function zE(n,e={}){return{command:process.execPath,args:[Km(),...e.trust?["--trust"]:[],...e.batch?["--batch",e.batch]:[],...e.mode?["--mode",e.mode]:[],n,...e.open===!1?["--no-open"]:[]]}}function GE(n){return{command:process.execPath,args:[Km(),`agent:${n}`,"--no-open"]}}async function Hm(n,e,t,r){let s=await n();if(s)return s;VE(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await YE(150);let o=await n();if(o)return o}throw new Error(`Launched ${r} but it did not register within 20s.`)}async function Wi(n,e={}){let t=e.cwd??process.cwd(),r=Ee.resolve(t,n),[s]=await Fc(r),i={...e,batch:e.batch??s?.batch,mode:e.mode??s?.mode};return Hm(async()=>Cn(await Q(),r)[0],zE(n,i),t,Ee.basename(n))}async function Wm(n,e=process.cwd()){return Hm(()=>jc(e,n),GE(n),e,`the ${n} mirror`)}var Lm,HE,YE,Be=v(()=>{"use strict";Et();qi();Lm=1e6;HE=/^── run (\d+) ── /;YE=n=>new Promise(e=>setTimeout(e,n))});function Rn(n){return{...ef(n),server:n.files.get("server.ts")??""}}function Yi(n){return!!n.server&&!n.code}var Wr=v(()=>{"use strict";ne();ne()});function Vi(n){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(n),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function Uc(n){return An(Vi(n)??"bulb")||"bulb"}var qc=v(()=>{"use strict";ne()});import{transform as XE}from"sucrase";function Jc(n,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:r}=XE(n,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:r}}catch(r){return{code:"",error:String(r)}}}var Ym=v(()=>{});function Kc(n){let e=n.split(""),t=(i,o)=>{for(let a=i;a<o&&a<e.length;a++)e[a]!==`
|
|
183
183
|
`&&(e[a]=" ")},r=0,s="";for(;r<n.length;){let i=n[r],o=n[r+1];if(i==="/"&&o==="/"){let a=r;for(;a<n.length&&n[a]!==`
|
|
184
|
-
`;)a++;t(r,a),r=a}else if(i==="/"&&o==="*"){let a=r+2;for(;a<n.length&&!(n[a]==="*"&&n[a+1]==="/");)a++;t(r,Math.min(a+2,n.length)),r=a+2}else if(i==="/"&&
|
|
184
|
+
`;)a++;t(r,a),r=a}else if(i==="/"&&o==="*"){let a=r+2;for(;a<n.length&&!(n[a]==="*"&&n[a+1]==="/");)a++;t(r,Math.min(a+2,n.length)),r=a+2}else if(i==="/"&&QE.has(s)){let a=r+1,l=!1;for(;a<n.length&&n[a]!==`
|
|
185
185
|
`;){let c=n[a];if(c==="\\")a++;else if(c==="[")l=!0;else if(c==="]")l=!1;else if(c==="/"&&!l)break;a++}r=a+1,s="/"}else if(i==='"'||i==="'"){let a=r+1;for(;a<n.length&&n[a]!==i&&n[a]!==`
|
|
186
|
-
`;)n[a]==="\\"&&a++,a++;r=a+1,s=i}else if(i==="`"){let a=
|
|
187
|
-
`).length-1}));return r}function
|
|
188
|
-
`),a=
|
|
189
|
-
`);for(let l=0;l<o.length;l++){let c=a[l],d=l+1+s;for(let u of
|
|
190
|
-
`)).filter(({root:i})=>!s.has(i)).map(({root:i,lineIndex:o})=>{let a=o+1+r;return{type:"UNDECLARED_IMPORT",severity:"error",message:
|
|
186
|
+
`;)n[a]==="\\"&&a++,a++;r=a+1,s=i}else if(i==="`"){let a=Vm(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Vm(n,e){let t=e+1,r=0;for(;t<n.length;){let s=n[t];if(s==="\\"){t+=2;continue}if(s==="`"){if(r===0)return t+1;t=Vm(n,t);continue}if(s==="$"&&n[t+1]==="{"){r++,t+=2;continue}if(s==="}"&&r>0){r--,t++;continue}t++}return n.length}var QE,zm=v(()=>{QE=new Set(["","(",",","=",":","[","!","&","|","?",";","{"])});function tA(n){if(/^[./]/.test(n)||/^[a-z][a-z0-9+.-]*:/i.test(n))return null;let e=n.split("/");return n.startsWith("@")?e.slice(0,2).join("/"):e[0]}function Gm(n){let e=[];for(let s of eA)for(let i of n.matchAll(s)){let o=tA(i[1]);o&&e.push({root:o,index:i.index??0})}e.sort((s,i)=>s.index-i.index);let t=new Set,r=[];for(let{root:s,index:i}of e)t.has(s)||(t.add(s),r.push({root:s,lineIndex:n.slice(0,i).split(`
|
|
187
|
+
`).length-1}));return r}function Xm(n){return Gm(Kc(n)).map(e=>e.root)}function Yr(n,e){if(!n)return[];let{target:t,dependencies:r}=e,s=(e.lineOffset??1)-1,i=[],o=n.split(`
|
|
188
|
+
`),a=Kc(n).split(`
|
|
189
|
+
`);for(let l=0;l<o.length;l++){let c=a[l],d=l+1+s;for(let u of ZE)u.targets.includes(t)&&u.pattern.test(c)&&i.push({type:u.type,severity:"error",message:sA(u.type,d),lineNumber:d,lineContent:o[l]})}return t==="client"&&r&&i.push(...nA(a,o,r,s)),i}function nA(n,e,t,r){let s=new Set(Object.keys(t));return Gm(n.join(`
|
|
190
|
+
`)).filter(({root:i})=>!s.has(i)).map(({root:i,lineIndex:o})=>{let a=o+1+r;return{type:"UNDECLARED_IMPORT",severity:"error",message:rA(i,a),lineNumber:a,lineContent:e[o]}})}function rA(n,e){return`Import "${n}" is not declared in config.json dependencies! Found on line ${e}.
|
|
191
191
|
|
|
192
192
|
**CRITICAL**: Every bare import in code.tsx must be declared in the **config.json** "dependencies" block. A bulb that imports a package it doesn't declare is incomplete \u2014 it won't type-check, its versions aren't pinned, and it can't be reliably re-run or ported to typebulb.com.
|
|
193
193
|
|
|
@@ -201,7 +201,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
|
|
|
201
201
|
}
|
|
202
202
|
\`\`\`
|
|
203
203
|
|
|
204
|
-
**Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${n}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function
|
|
204
|
+
**Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${n}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function sA(n,e){return n==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
|
|
205
205
|
|
|
206
206
|
**CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
|
|
207
207
|
|
|
@@ -355,11 +355,11 @@ import { something } from 'module-name'
|
|
|
355
355
|
const something = require('module-name') // NOT SUPPORTED!
|
|
356
356
|
\`\`\`
|
|
357
357
|
|
|
358
|
-
**Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var Yt,Vt,
|
|
358
|
+
**Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var Yt,Vt,ZE,eA,zi=v(()=>{zm();Yt=["client"],Vt=["client","server"],ZE=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Yt},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:Vt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Yt},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Yt},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Yt},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:Vt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:Vt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:Vt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:Vt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:Vt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:Vt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Yt},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Yt},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Yt}],eA=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function iA(n){return n.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
|
|
359
359
|
`)[0]}`).join(`
|
|
360
|
-
`)}function
|
|
361
|
-
${rA(t)}`)}var Qm=v(()=>{"use strict";Vi()});var At,Vr,Kc,zr=v(()=>{At="https://esm.sh",Vr="https://cdn.jsdelivr.net/npm/",Kc="https://data.jsdelivr.com/v1/package/npm/"});function Zm(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,_n,eg,Gr=v(()=>{zr();j=class n{constructor(e,t,r){let s=typeof e=="string"?n.parse(e):e;this.name=s.name,this.version=_n(t??s.version),this.subpath=_n(r??s.subpath)}static parse(e){let t=Zm(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=eg(t[1]??""),a=_n(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=eg(t[0]),o=_n(t.slice(1).join("/"));return new n({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),r=new URL(At).host,s=new URL(Vr).host;if(t.host===r){let i=Zm(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return n.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return n.parse(o)}return}catch{return}}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 n.parse(e).name}withVersion(e){return new n({name:this.name,version:_n(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},_n=n=>n&&n.length?n:void 0,eg=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),_n(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var zi=v(()=>{});function zt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Hc(n){return n.startsWith("./")?n:`./${n}`}var Xr,Wc=v(()=>{Gr();zi();zr();Xr=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new j(e):e;return`${Vr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(zt(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:r="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:r});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${At}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),r=this.pinCache.get(e);if(r&&t-r.ts<this.pinMs)return r.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${At}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let r=await ye(()=>this.http.head(t)),s=this.parseVersionFromUrl(r?.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 r=await ye(()=>this.http.getJson(`${Kc}${encodeURIComponent(e)}`));if(!r?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=r.tags&&Object.keys(r.tags).length?r.tags:void 0;return await this.cache.setIndex(e,r.versions,s),{versions:r.versions,distTags:s}}parseVersionFromUrl(e){let t=j.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let r=await this.cache.getMeta(e,t);if(r&&Date.now()-r.updatedAt<this.metaTtlMs){let{dependencies:d,peerDependencies:u,peerDependenciesMeta:f}=r;return{name:e,version:t,dependencies:d,peerDependencies:u,peerDependenciesMeta:f}}let s=this.packageJson(new j(`${e}@${t}`)),i=await ye(()=>this.http.getJson(s));if(!i)return;let o=d=>d&&Object.keys(d).length?d:void 0,a=o(i.dependencies),l=o(i.peerDependencies),c=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,l,c),{name:e,version:t,dependencies:a,peerDependencies:l,peerDependenciesMeta:c}}}});var tg,Qr,Yc,sA,Zr,Gi=v(()=>{tg=n=>n.startsWith("@types/"),Qr=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!tg(e)),Yc=n=>Object.keys(n?.dependencies||{}).filter(e=>!tg(e)),sA=n=>Qr(n).filter(e=>!n?.peerDependenciesMeta?.[e]?.optional),Zr=class{constructor(e){this.cdn=e}async resolve(e,t){let r=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(r,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:r})=>({name:t,version:r,meta:await this.cdn.fetchPackageMeta(t,r)})))}async expandWithPeers(e,t){let r=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of sA(i.meta))!r.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),l=await this.cdn.fetchPackageMeta(i,a);r.set(i,{name:i,version:a,meta:l})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...r.values()],autoAddedPeers:s.filter(i=>r.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Qr(i.meta))),r=new Map;for(let i of e)for(let o of Yc(i.meta))r.set(o,(r.get(o)||0)+1);let s=new Set([...r.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Qr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}}});var es,Vc=v(()=>{Gr();zi();es=class{constructor(e,t,r){this.cache=e,this.cdn=t,this.semver=r}async learnExactVersion(e){let t=await ye(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let r=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(r)return r}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let r=await this.cache.getPinnedExact(e,t);if(r){if(this.semver.isExactVersion(r))return r;console.debug("[typebulb] cached version for",e,"is not exact (",r,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await ye(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}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 ye(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let l=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(l)return l}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let r=new j(e),s=r.root(),i=t[s],o=i?await ye(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?r.withVersion(o).format():e,root:s,range:i,pinned:o}}}});import{init as iA,parse as oA}from"es-module-lexer";var Nn,zc=v(()=>{Gr();zr();Gi();Nn=class n{constructor(e,t,r){this.version=e,this.cdn=t,this.peer=r}extractImportsSync(e){let t=new Set;for(let r of n.importPatterns){r.lastIndex=0;for(let s of e.matchAll(r))j.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,r=s=>{j.isBare(s)&&t.add(s)};try{await iA;let[s]=oA(e);s.forEach(i=>r(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,r){let s=(await this.extractImports(e)).filter(u=>!r?.has(j.rootOf(u))),i=[...new Set(s.map(j.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:l,autoAddedPeers:c}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),d=this.buildEntries([...s,...c.map(u=>u.name)],a,l);return{importMap:{imports:Object.fromEntries(d)},prefetchUrls:d.map(([,u])=>u)}}async resolveVersion(e,t){let r=t[e],s=await this.version.resolveExactForRoot(e,r);if(!s)throw new Error(`Cannot resolve ${r?`${e}@${r}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,r){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let m=s.get(j.rootOf(p));return new j(p).withVersion(m.version).format()},o=new Set([...r.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==j.rootOf(p)).map(j.rootOf)),l=[],c=new Set,d=new Set(e.filter(p=>p===j.rootOf(p))),u=new Set;for(let p of e){let m=j.rootOf(p),h=s.get(m),{isPeerRoot:b,hasPeers:A,isSharedDep:S}=r.get(m),P=a.has(m),_=p!==m,R=!(b||S)&&(P||!A),$=this.singletonDepsOf(h,o),x=_&&d.has(m);x&&u.add(m);let D=x?[...$,m]:$.length?$:void 0;l.push([p,this.cdn.buildEsmUrl(i(p),{bundle:R,external:D})]),c.add(p)}let f=new Set([...o,...u]);for(let p of f)s.has(p)&&(c.has(p)||l.push([p,this.cdn.buildEsmUrl(i(p),{})]),l.push([`${p}/`,`${At}/${i(p)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Qr(e.meta),...Yc(e.meta)])].filter(r=>t.has(r))}};Nn.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as ng,satisfies as aA,maxSatisfying as rg,major as lA,valid as cA}from"semver";var Xi,Gt,Gc=v(()=>{Xi=class{cmp(e,t){return e===t?0:ng(e,t)?1:ng(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!aA(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let r=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(r,i))return i;if(s){let a=rg(e,r,{includePrerelease:!1});if(a)return a}return rg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return lA(e)}isExactVersion(e){return cA(e)!==null}},Gt=new Xi});function uA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Xt,sg=v(()=>{zi();Xt=class{constructor(e){this.store=e}async isNegative(e){let t=await ye(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let r=((await ye(()=>this.store.get(e)))?.attempts||0)+1;await ye(()=>this.store.set(e,{until:Date.now()+uA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function ig(n,e){let t=new Xr(n,e),r=new Zr(t),s=new es(n,t,Gt);return{packageService:new Nn(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var tt=v(()=>{Wc();Gi();Vc();zc();Gc();Gr();Gc();zr();Wc();Gi();Vc();zc();sg()});import*as Xc from"fs/promises";import*as og from"crypto";function De(n){return og.createHash("sha1").update(n).digest("hex")}async function nt(n){try{return JSON.parse(await Xc.readFile(n,"utf8"))}catch{return}}async function Qi(n){try{return await Xc.readFile(n,"utf8")}catch{return}}var In=v(()=>{"use strict"});import*as Ot from"fs/promises";import*as rt from"path";import*as lg from"os";function Z(){return Qc||(Qc=fA().catch(()=>Ze())),Qc}function eo(n,e){return rt.join(dA,De(n),e)}async function fA(){await Ot.mkdir(Tt,{recursive:!0});let n=rt.join(Tt,"version.json");if((await nt(n))?.version===ag)return;let t=await Ot.readdir(Tt).catch(()=>[]);await Promise.all(t.map(r=>Ot.rm(rt.join(Tt,r),{recursive:!0,force:!0}))),await Ot.writeFile(n,JSON.stringify({version:ag})+`
|
|
362
|
-
`,"utf8")}var
|
|
360
|
+
`)}function Qm(n,e){let t=Yr(n,{target:"client",dependencies:e}).filter(r=>r.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
|
|
361
|
+
${iA(t)}`)}var Zm=v(()=>{"use strict";zi()});var At,Vr,Hc,zr=v(()=>{At="https://esm.sh",Vr="https://cdn.jsdelivr.net/npm/",Hc="https://data.jsdelivr.com/v1/package/npm/"});function eg(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,_n,tg,Gr=v(()=>{zr();j=class n{constructor(e,t,r){let s=typeof e=="string"?n.parse(e):e;this.name=s.name,this.version=_n(t??s.version),this.subpath=_n(r??s.subpath)}static parse(e){let t=eg(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=tg(t[1]??""),a=_n(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=tg(t[0]),o=_n(t.slice(1).join("/"));return new n({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),r=new URL(At).host,s=new URL(Vr).host;if(t.host===r){let i=eg(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return n.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return n.parse(o)}return}catch{return}}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 n.parse(e).name}withVersion(e){return new n({name:this.name,version:_n(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},_n=n=>n&&n.length?n:void 0,tg=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),_n(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var Gi=v(()=>{});function zt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Wc(n){return n.startsWith("./")?n:`./${n}`}var Xr,Yc=v(()=>{Gr();Gi();zr();Xr=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new j(e):e;return`${Vr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(zt(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:r="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:r});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${At}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),r=this.pinCache.get(e);if(r&&t-r.ts<this.pinMs)return r.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${At}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let r=await ye(()=>this.http.head(t)),s=this.parseVersionFromUrl(r?.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 r=await ye(()=>this.http.getJson(`${Hc}${encodeURIComponent(e)}`));if(!r?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=r.tags&&Object.keys(r.tags).length?r.tags:void 0;return await this.cache.setIndex(e,r.versions,s),{versions:r.versions,distTags:s}}parseVersionFromUrl(e){let t=j.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let r=await this.cache.getMeta(e,t);if(r&&Date.now()-r.updatedAt<this.metaTtlMs){let{dependencies:d,peerDependencies:u,peerDependenciesMeta:f}=r;return{name:e,version:t,dependencies:d,peerDependencies:u,peerDependenciesMeta:f}}let s=this.packageJson(new j(`${e}@${t}`)),i=await ye(()=>this.http.getJson(s));if(!i)return;let o=d=>d&&Object.keys(d).length?d:void 0,a=o(i.dependencies),l=o(i.peerDependencies),c=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,l,c),{name:e,version:t,dependencies:a,peerDependencies:l,peerDependenciesMeta:c}}}});var ng,Qr,Vc,oA,Zr,Xi=v(()=>{ng=n=>n.startsWith("@types/"),Qr=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!ng(e)),Vc=n=>Object.keys(n?.dependencies||{}).filter(e=>!ng(e)),oA=n=>Qr(n).filter(e=>!n?.peerDependenciesMeta?.[e]?.optional),Zr=class{constructor(e){this.cdn=e}async resolve(e,t){let r=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(r,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:r})=>({name:t,version:r,meta:await this.cdn.fetchPackageMeta(t,r)})))}async expandWithPeers(e,t){let r=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of oA(i.meta))!r.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),l=await this.cdn.fetchPackageMeta(i,a);r.set(i,{name:i,version:a,meta:l})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...r.values()],autoAddedPeers:s.filter(i=>r.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Qr(i.meta))),r=new Map;for(let i of e)for(let o of Vc(i.meta))r.set(o,(r.get(o)||0)+1);let s=new Set([...r.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Qr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}}});var es,zc=v(()=>{Gr();Gi();es=class{constructor(e,t,r){this.cache=e,this.cdn=t,this.semver=r}async learnExactVersion(e){let t=await ye(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let r=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(r)return r}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let r=await this.cache.getPinnedExact(e,t);if(r){if(this.semver.isExactVersion(r))return r;console.debug("[typebulb] cached version for",e,"is not exact (",r,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await ye(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}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 ye(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let l=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(l)return l}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let r=new j(e),s=r.root(),i=t[s],o=i?await ye(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?r.withVersion(o).format():e,root:s,range:i,pinned:o}}}});import{init as aA,parse as lA}from"es-module-lexer";var Nn,Gc=v(()=>{Gr();zr();Xi();Nn=class n{constructor(e,t,r){this.version=e,this.cdn=t,this.peer=r}extractImportsSync(e){let t=new Set;for(let r of n.importPatterns){r.lastIndex=0;for(let s of e.matchAll(r))j.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,r=s=>{j.isBare(s)&&t.add(s)};try{await aA;let[s]=lA(e);s.forEach(i=>r(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,r){let s=(await this.extractImports(e)).filter(u=>!r?.has(j.rootOf(u))),i=[...new Set(s.map(j.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:l,autoAddedPeers:c}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),d=this.buildEntries([...s,...c.map(u=>u.name)],a,l);return{importMap:{imports:Object.fromEntries(d)},prefetchUrls:d.map(([,u])=>u)}}async resolveVersion(e,t){let r=t[e],s=await this.version.resolveExactForRoot(e,r);if(!s)throw new Error(`Cannot resolve ${r?`${e}@${r}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,r){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let m=s.get(j.rootOf(p));return new j(p).withVersion(m.version).format()},o=new Set([...r.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==j.rootOf(p)).map(j.rootOf)),l=[],c=new Set,d=new Set(e.filter(p=>p===j.rootOf(p))),u=new Set;for(let p of e){let m=j.rootOf(p),h=s.get(m),{isPeerRoot:b,hasPeers:A,isSharedDep:S}=r.get(m),P=a.has(m),_=p!==m,R=!(b||S)&&(P||!A),$=this.singletonDepsOf(h,o),x=_&&d.has(m);x&&u.add(m);let D=x?[...$,m]:$.length?$:void 0;l.push([p,this.cdn.buildEsmUrl(i(p),{bundle:R,external:D})]),c.add(p)}let f=new Set([...o,...u]);for(let p of f)s.has(p)&&(c.has(p)||l.push([p,this.cdn.buildEsmUrl(i(p),{})]),l.push([`${p}/`,`${At}/${i(p)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Qr(e.meta),...Vc(e.meta)])].filter(r=>t.has(r))}};Nn.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as rg,satisfies as cA,maxSatisfying as sg,major as uA,valid as dA}from"semver";var Qi,Gt,Xc=v(()=>{Qi=class{cmp(e,t){return e===t?0:rg(e,t)?1:rg(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!cA(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let r=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(r,i))return i;if(s){let a=sg(e,r,{includePrerelease:!1});if(a)return a}return sg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return uA(e)}isExactVersion(e){return dA(e)!==null}},Gt=new Qi});function fA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Xt,ig=v(()=>{Gi();Xt=class{constructor(e){this.store=e}async isNegative(e){let t=await ye(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let r=((await ye(()=>this.store.get(e)))?.attempts||0)+1;await ye(()=>this.store.set(e,{until:Date.now()+fA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function og(n,e){let t=new Xr(n,e),r=new Zr(t),s=new es(n,t,Gt);return{packageService:new Nn(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var tt=v(()=>{Yc();Xi();zc();Gc();Xc();Gr();Xc();zr();Yc();Xi();zc();Gc();ig()});import*as Qc from"fs/promises";import*as ag from"crypto";function De(n){return ag.createHash("sha1").update(n).digest("hex")}async function nt(n){try{return JSON.parse(await Qc.readFile(n,"utf8"))}catch{return}}async function Zi(n){try{return await Qc.readFile(n,"utf8")}catch{return}}var In=v(()=>{"use strict"});import*as Ot from"fs/promises";import*as rt from"path";import*as cg from"os";function Z(){return Zc||(Zc=hA().catch(()=>Ze())),Zc}function to(n,e){return rt.join(pA,De(n),e)}async function hA(){await Ot.mkdir(Tt,{recursive:!0});let n=rt.join(Tt,"version.json");if((await nt(n))?.version===lg)return;let t=await Ot.readdir(Tt).catch(()=>[]);await Promise.all(t.map(r=>Ot.rm(rt.join(Tt,r),{recursive:!0,force:!0}))),await Ot.writeFile(n,JSON.stringify({version:lg})+`
|
|
362
|
+
`,"utf8")}var lg,Tt,ts,ns,eo,pA,Zc,$n=v(()=>{"use strict";In();Et();lg=1,Tt=rt.join(cg.homedir(),".typebulb","cache"),ts=rt.join(Tt,"packages"),ns=rt.join(Tt,"proxy"),eo=rt.join(Tt,"dts"),pA=rt.join(Tt,"emit")});import*as Pt from"fs/promises";import*as ug from"path";async function Ae(n,e){let t=`${n}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;try{await Pt.mkdir(ug.dirname(n),{recursive:!0}),await Pt.writeFile(t,e,"utf8")}catch{Ze();return}await Pt.rename(t,n).catch(async()=>{await Pt.rm(t,{force:!0}).catch(()=>{})})}var rs=v(()=>{"use strict";Et()});var Ln,eu=v(()=>{"use strict";rs();In();Ln=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=nt(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 r=await this.load();r.set(e,t),await this.persist(r)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await Ae(this.filePath,JSON.stringify(Object.fromEntries(e)))}}});import*as pg from"fs/promises";import*as je from"path";function fg(n,e){return je.join(mA,no(n),encodeURIComponent(e)+".json")}function no(n){return n.replace(/\//g,"__")}var tu,dg,mA,gA,ro,hg=v(()=>{"use strict";tt();$n();rs();eu();In();tu=je.join(ts,"indexes"),dg=je.join(ts,"pinned"),mA=je.join(ts,"meta"),gA=je.join(ts,"negative.json"),ro=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Xt(new Ln(gA));async getPinnedExact(e,t){let r=`${e}@${t}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await Z();let s=await Zi(je.join(dg,De(r)+".txt"));return this.pinnedMem.set(r,s),s}async setPinnedExact(e,t,r){let s=`${e}@${t}`;this.pinnedMem.set(s,r),await Z(),await Ae(je.join(dg,De(s)+".txt"),r)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await Z();let t=await nt(je.join(tu,no(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,r){let s={versions:t,distTags:r,updatedAt:Date.now()};this.indexMem.set(e,s),await Z(),await Ae(je.join(tu,no(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await pg.rm(je.join(tu,no(e)+".json"),{force:!0}).catch(()=>{})}async isNegative(e){return await Z(),this.negativeCache.isNegative(e)}async recordNegative(e){await Z(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let r=`${e}@${t}`;if(this.metaMem.has(r))return this.metaMem.get(r);await Z();let s=await nt(fg(e,t));return this.metaMem.set(r,s),s}async setMeta(e,t,r,s,i){let o={dependencies:r,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await Z(),await Ae(fg(e,t),JSON.stringify(o))}}});var mg,gg=v(()=>{"use strict";mg={async getJson(n){try{let e=await fetch(n,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(n){try{let e=await fetch(n,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}}});var yA,so,yg,bg,m$,nu=v(()=>{"use strict";tt();hg();gg();yA=new ro,{packageService:so,versionResolver:yg,cdnClient:bg,peerResolver:m$}=og(yA,mg)});function io(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function oo(n,e){return` <script>
|
|
363
363
|
(function() {
|
|
364
364
|
try {
|
|
365
365
|
var KEY = ${Ct(JSON.stringify("tb-theme:"+n))};
|
|
@@ -404,7 +404,7 @@ ${rA(t)}`)}var Qm=v(()=>{"use strict";Vi()});var At,Vr,Kc,zr=v(()=>{At="https://
|
|
|
404
404
|
});
|
|
405
405
|
} catch (e) {}
|
|
406
406
|
})();
|
|
407
|
-
</script>`}var Ct,
|
|
407
|
+
</script>`}var Ct,ao,lo=v(()=>{"use strict";ne();Ct=n=>n.replace(/<\/script/gi,"<\\/script");ao=`
|
|
408
408
|
const es = new EventSource('/__reload');
|
|
409
409
|
let bootId = null;
|
|
410
410
|
let firstErrorAt = 0;
|
|
@@ -421,7 +421,7 @@ ${rA(t)}`)}var Qm=v(()=>{"use strict";Vi()});var At,Vr,Kc,zr=v(()=>{At="https://
|
|
|
421
421
|
es.onerror = () => {
|
|
422
422
|
if (!firstErrorAt) firstErrorAt = Date.now();
|
|
423
423
|
if (Date.now() - firstErrorAt > RETRY_WINDOW_MS) es.close();
|
|
424
|
-
};`});var
|
|
424
|
+
};`});var wg,vg=v(()=>{"use strict";lo();ne();wg=`
|
|
425
425
|
(() => {
|
|
426
426
|
// Inline (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
|
|
427
427
|
// bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
|
|
@@ -1223,7 +1223,7 @@ ${rA(t)}`)}var Qm=v(()=>{"use strict";Vi()});var At,Vr,Kc,zr=v(()=>{At="https://
|
|
|
1223
1223
|
// origin, not an inline bulb); a srcdoc inline bulb or a file:// static export has no server, so onMessage just
|
|
1224
1224
|
// stays inert there. Opening it independent of watch is what lets send reach a --no-watch page.
|
|
1225
1225
|
if (!isFramed && location.protocol.indexOf('http') === 0) {
|
|
1226
|
-
${
|
|
1226
|
+
${ao}
|
|
1227
1227
|
es.addEventListener('message', async (e) => {
|
|
1228
1228
|
// Wire envelope { id?, payload } (JSON \u2014 SSE-line-safe). tb:* payloads are the shim's reserved
|
|
1229
1229
|
// namespace (TB-Interrogation.md): answered by a built-in handler, never delivered to
|
|
@@ -1269,14 +1269,14 @@ ${oo}
|
|
|
1269
1269
|
});
|
|
1270
1270
|
}
|
|
1271
1271
|
})();
|
|
1272
|
-
`});function
|
|
1273
|
-
`+
|
|
1272
|
+
`});function Sg(n){let{name:e,code:t,css:r,html:s,data:i,insight:o,importMap:a,theme:l,inline:c,dir:d,source:u,compileError:f}=n,p=s.trim()||'<div id="app"></div>',m=c?"":`
|
|
1273
|
+
`+xc,h={imports:kA(a.imports)};return`<!DOCTYPE html>
|
|
1274
1274
|
<html>
|
|
1275
1275
|
<head>
|
|
1276
1276
|
<meta charset="utf-8">
|
|
1277
1277
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
1278
|
-
<title>${
|
|
1279
|
-
${
|
|
1278
|
+
<title>${io(e)} - typebulb</title>
|
|
1279
|
+
${oo(e,l)}
|
|
1280
1280
|
<script type="importmap">
|
|
1281
1281
|
${JSON.stringify(h,null,2)}
|
|
1282
1282
|
</script>
|
|
@@ -1296,19 +1296,19 @@ ${d?`<script>window.__TB_DIR__ = ${Ct(JSON.stringify(d))};</script>`:""}
|
|
|
1296
1296
|
${f?`<script>window.__TB_COMPILE_ERROR__ = ${Ct(JSON.stringify(f))};</script>`:""}
|
|
1297
1297
|
|
|
1298
1298
|
<script>
|
|
1299
|
-
${
|
|
1299
|
+
${wg}
|
|
1300
1300
|
</script>
|
|
1301
1301
|
|
|
1302
|
-
${
|
|
1302
|
+
${SA}
|
|
1303
1303
|
|
|
1304
|
-
${
|
|
1304
|
+
${wA(t,u)}
|
|
1305
1305
|
</body>
|
|
1306
|
-
</html>`}function
|
|
1307
|
-
`);return`<script type="module">${s}${
|
|
1308
|
-
</script>`}function
|
|
1306
|
+
</html>`}function wA(n,e){let t=["",...bA],r=e?Array(Math.max(0,e.codeLine-t.length-1)).fill(""):[],s=[...t,...r,Ct(n)].join(`
|
|
1307
|
+
`);return`<script type="module">${s}${vA(e,s)}
|
|
1308
|
+
</script>`}function vA(n,e){if(!n)return"";let t=e.split(`
|
|
1309
1309
|
`).length,r={version:3,file:n.file,sources:[`/__source/${n.file}`],names:[],mappings:["AAAA",...Array(Math.max(0,t-1)).fill("AACA")].join(";")};return`
|
|
1310
1310
|
//# sourceURL=${n.file.replace(/\s/g,"%20")}
|
|
1311
|
-
//# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function
|
|
1311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function kA(n){let e={};for(let[t,r]of Object.entries(n))e[t]=r.startsWith("https://")?"/proxy/"+r:r;return e}var bA,SA,kg=v(()=>{"use strict";vg();lo();bA=["globalThis.__tbEntryRan = true; /* import graph resolved \u2014 the load-failure backstop's signal (imports hoist above this line) */","await globalThis.__tbBoot; /* #tb= fragment restore, set by the shim when present (TB-Inference.md) */"];SA=`<script>
|
|
1312
1312
|
(function () {
|
|
1313
1313
|
var framed = window.parent !== window;
|
|
1314
1314
|
var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
|
|
@@ -1407,22 +1407,22 @@ ${yA(t,u)}
|
|
|
1407
1407
|
}
|
|
1408
1408
|
});
|
|
1409
1409
|
})();
|
|
1410
|
-
</script>`});import*as
|
|
1411
|
-
Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await
|
|
1410
|
+
</script>`});import*as uo from"fs/promises";import*as co from"path";import{existsSync as xg,readFileSync as xA}from"fs";import{execFile as EA}from"child_process";import{promisify as AA}from"util";import{builtinModules as TA}from"node:module";import{satisfies as OA}from"semver";async function fo(n,e,t,r){let i=n.map(c=>_A(c,t)).filter(c=>!NA(c,e));if(i.length===0)return;let o=i.filter(c=>!RA.test(c));if(o.length)throw new Error(`Refusing to install npm spec(s) with unsupported characters: ${o.join(", ")}
|
|
1411
|
+
Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await uo.mkdir(e,{recursive:!0});let a=co.join(e,"package.json");xg(a)||await uo.writeFile(a,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${i.join(", ")}`);let l=["--no-audit","--no-fund",...r?.ignoreScripts?["--ignore-scripts"]:[]];await PA("npm",["install",...l,...i],{cwd:e,shell:!0})}function _A(n,e){if(!e||j.parse(n).version)return n;let t=e[n];return t?`${n}@${t}`:n}function NA(n,e){let{name:t,version:r}=j.parse(n),s=co.join(e,"node_modules",t);if(!xg(s))return!1;if(!r)return!0;try{let i=JSON.parse(xA(co.join(s,"package.json"),"utf-8")).version;return OA(i,r)}catch{return!1}}function po(n){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,r;for(;r=t.exec(n);){let s=r[1];if(s.includes(":"))continue;let i=j.rootOf(s);CA.has(i)||e.add(i)}return[...e]}var PA,CA,RA,ru=v(()=>{"use strict";tt();PA=AA(EA),CA=new Set(TA),RA=/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+(@[a-zA-Z0-9.^~*x-]+)?$/i});var Eg,Ag=v(()=>{Eg=n=>n!=null&&n>=0&&n<=4?n:void 0});var ve,Fe,Mn=v(()=>{ve=class extends Error{constructor(e,t="unknown",r=!1){super(e),this.code=t,this.retryable=r}},Fe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
|
|
1412
1412
|
|
|
1413
|
-
`){let r=e.filter(s=>s.role==="system").map(s=>s.content);return{system:r.length?r.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let r=JSON.parse(e);return r.error&&typeof r.error=="object"?{message:r.error.message||`HTTP ${t}`,type:r.error.type}:r.message?{message:r.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 r=t.code||"unknown";throw new ve(t.message,r,!!t.retryable)}if(t.error){let r=t.error,s=typeof r=="object"&&r!==null?String(r.type??r.code??""):"",i=/rate_limit|too_many_requests/i.test(s),o=/overloaded|server_error|unavailable/i.test(s),a=/context_length/i.test(s);throw new ve(this.extractErrorMessage(t.error),i?"rate_limit":a?"context_exceeded":"unknown",i||o)}}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
|
|
1413
|
+
`){let r=e.filter(s=>s.role==="system").map(s=>s.content);return{system:r.length?r.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let r=JSON.parse(e);return r.error&&typeof r.error=="object"?{message:r.error.message||`HTTP ${t}`,type:r.error.type}:r.message?{message:r.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 r=t.code||"unknown";throw new ve(t.message,r,!!t.retryable)}if(t.error){let r=t.error,s=typeof r=="object"&&r!==null?String(r.type??r.code??""):"",i=/rate_limit|too_many_requests/i.test(s),o=/overloaded|server_error|unavailable/i.test(s),a=/context_length/i.test(s);throw new ve(this.extractErrorMessage(t.error),i?"rate_limit":a?"context_exceeded":"unknown",i||o)}}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 ho,su=v(()=>{Mn();ho=class extends Fe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high",4:"xhigh"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,r,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(r?.webSearch===!0&&(o.tools=[{type:"web_search"}]),r?.effort!==void 0){let a=this.effortMap[r.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return r?.maxOutputTokens!==void 0&&(o.max_output_tokens=r.maxOutputTokens),o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",r;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(r=s.summary.map(i=>i.text).join(`
|
|
1414
1414
|
`)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:r}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"response.failed":{let r=e.response?.error,s=r?.message||"Response failed",i=r?.code==="insufficient_quota"||r?.code==="rate_limit_exceeded";throw new ve(s,i?"rate_limit":"unknown",i)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};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(`
|
|
1415
1415
|
|
|
1416
|
-
`)}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 Bn,
|
|
1416
|
+
`)}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 Bn,mo=v(()=>{Mn();Bn=class extends Fe{parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,r=t.choices[0],s=r?.message,i=s?.content??r?.text??"",o=s?.reasoning??s?.reasoning_content??t.reasoning;return{text:i,reasoning:o}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let r=t.delta||t.message;if(!r)return null;let s=r.content||void 0,i=r.reasoning||r.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}}});var go,iu=v(()=>{mo();go=class extends Bn{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high",4:"xhigh"}}buildHeaders(e,t){let r={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(r["HTTP-Referer"]=t,r.Referer=t,r.Origin=t),r}buildPayload(e,t,r,s){let i={model:t,messages:e,stream:s};r?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=r?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),r?.maxOutputTokens!==void 0&&(i.max_tokens=r.maxOutputTokens),i}}});var yo,ou=v(()=>{Mn();yo=class extends Fe{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,r,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:Math.min(this.getMaxTokens(t),r?.maxOutputTokens??1/0),messages:this.withTailMessagesCached(o),stream:s};r?.webSearch===!0&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]);let l=r?.effort;if(l!==void 0){if(this.isModernModel(t))if(l===0)this.alwaysThinks(t)||(a.thinking={type:"disabled"}),a.output_config={effort:"low"};else{let c={1:"low",2:"medium",3:"high",4:"max"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:c[l]}}else if(l!==0){let c={1:2048,2:4096,3:8192,4:16384};a.thinking={type:"enabled",budget_tokens:c[l]}}}return a}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),r=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
|
|
1417
1417
|
|
|
1418
|
-
`);return{text:t,reasoning:r||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withTailMessagesCached(e){let t=Math.max(0,e.length-2);return e.map((r,s)=>s>=t?{role:r.role,content:[{type:"text",text:r.content,cache_control:{type:"ephemeral"}}]}:r)}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-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let r=+t[1],s=t[2]?+t[2]:0;return r>4||r===4&&s>=6}alwaysThinks(e){return/^claude-(fable|mythos)\b/i.test(e)}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}}});var
|
|
1418
|
+
`);return{text:t,reasoning:r||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withTailMessagesCached(e){let t=Math.max(0,e.length-2);return e.map((r,s)=>s>=t?{role:r.role,content:[{type:"text",text:r.content,cache_control:{type:"ephemeral"}}]}:r)}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-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let r=+t[1],s=t[2]?+t[2]:0;return r>4||r===4&&s>=6}alwaysThinks(e){return/^claude-(fable|mythos)\b/i.test(e)}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}}});var bo,au=v(()=>{Mn();bo=class extends Fe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models",this.budgetMap={0:0,1:1024,2:8192,3:-1,4:-1}}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,r,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
|
|
1419
1419
|
`),l={contents:o.map(d=>({role:d.role==="assistant"?"model":"user",parts:[{text:d.content}]}))};r?.webSearch===!0&&(l.tools=[{google_search:{}}]),i&&(l.systemInstruction={role:"system",parts:[{text:i}]});let c=r?.effort;if(c!==void 0){let d=this.geminiVersion(t),u=d!==null&&d>=3?{thinkingLevel:this.thinkingLevelFor(d,c)}:{thinkingBudget:this.budgetMap[c]};l.generationConfig={thinkingConfig:c===0?u:{includeThoughts:!0,...u}}}return r?.maxOutputTokens!==void 0&&(l.generationConfig={...l.generationConfig,maxOutputTokens:r.maxOutputTokens}),l}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let r=JSON.parse(e),s=Array.isArray(r)?r[0]?.error:r?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
|
|
1420
|
-
`)[0],type:s.status,code:s.code?.toString()}:r.message?{message:r.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",r=e.candidates?.[0]?.finishReason,s="complete";return r==="MAX_TOKENS"?s="interrupted":(r==="SAFETY"||r==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}geminiVersion(e){let t=e.match(/^gemini-(\d+(?:\.\d+)?)/);return t?Number(t[1]):null}thinkingLevelFor(e,t){let r=["minimal","low","medium","high","high"][t];return r==="minimal"&&e<3.5?"low":r}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let r="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:r+=i.text);return{text:r||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ve(`Prompt blocked: ${t}`)}}}});var
|
|
1420
|
+
`)[0],type:s.status,code:s.code?.toString()}:r.message?{message:r.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",r=e.candidates?.[0]?.finishReason,s="complete";return r==="MAX_TOKENS"?s="interrupted":(r==="SAFETY"||r==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}geminiVersion(e){let t=e.match(/^gemini-(\d+(?:\.\d+)?)/);return t?Number(t[1]):null}thinkingLevelFor(e,t){let r=["minimal","low","medium","high","high"][t];return r==="minimal"&&e<3.5?"low":r}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let r="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:r+=i.text);return{text:r||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ve(`Prompt blocked: ${t}`)}}}});var wo,lu=v(()=>{mo();wo=class extends Bn{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,r,s){return{model:t,messages:e,stream:s}}}});function Qt(n){let e=IA.get(n);if(!e)throw new Error(`Unsupported protocol: ${n}`);return e}function $A(n,e){return n.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function cu(n,e){let t=Qt(n.protocol),r=t.getPath(n.model,e.stream),s=$A(n.baseUrl,r),i=t.buildHeaders(n.apiKey,e.origin),o=t.buildPayload(e.messages,n.model,{effort:e.effort,webSearch:e.webSearch,maxOutputTokens:e.maxOutputTokens},e.stream);return fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}function LA(n){return/prompt is too long|context[_ ](length|window)|maximum context|token count exceeds|too many tokens/i.test(n)}async function Dn(n,e){let t=Qt(e),r=await n.text().catch(()=>""),{message:s}=t.parseError(r,n.status),i=n.status,o="unknown";return i===429?o="rate_limit":(i===413||LA(s))&&(o="context_exceeded"),{code:o,message:s,retryable:i===429||i>=500}}var Tg,IA,uu=v(()=>{su();iu();ou();au();lu();Tg=new wo,IA=new Map([["openai",new ho],["openrouter",new go],["anthropic",new yo],["gemini",new bo],["ollama",Tg],["openai-compat",Tg]])});function Og(n){let e=n.indexOf(`\r
|
|
1421
1421
|
\r
|
|
1422
1422
|
`),t=n.indexOf(`
|
|
1423
1423
|
|
|
1424
|
-
`);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function
|
|
1425
|
-
`).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*
|
|
1424
|
+
`);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function du(n){let t=n.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let r=t.map(s=>s.replace(/^data:\s?/,"")).join(`
|
|
1425
|
+
`).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*Pg(n,e,t){let r=new TextDecoder,s="",i,o=e?new Promise((a,l)=>{e.aborted&&l(new Error("Aborted")),i=()=>l(new Error("Aborted")),e.addEventListener("abort",i,{once:!0})}):null;o?.catch(()=>{});try{for(;;){let{done:a,value:l}=o?await Promise.race([n.read(),o]):await n.read();if(a){if(s.trim()){let u=du(s);u!==null&&u!=="done"&&(yield u)}return}t?.(),s+=r.decode(l,{stream:!0});let{pos:c,len:d}=Og(s);for(;c!==-1;){let u=s.slice(0,c);s=s.slice(c+d);let f=du(u);if(f==="done")return;f!==null&&(yield f),{pos:c,len:d}=Og(s)}}}finally{i&&e?.removeEventListener("abort",i);try{await n.cancel()}catch{}}}async function Zt(n,e){if(!n.body)throw new Error("Response body is missing");let t="";for await(let r of en(n,e))r.kind==="text"&&(t+=r.text);return t}async function*en(n,e){let t=e??(n.headers.get("X-Provider-Protocol")||"openai"),r=Qt(t);if(!n.body)return;let s=n.body.getReader();for await(let i of Pg(s)){let o=r.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}var Cg=v(()=>{uu()});import{strToU8 as MA,strFromU8 as BA,deflateSync as DA,inflateSync as jA}from"fflate";function pu(n,e){let t=[];if(t.push(`You are a data processor. Follow the instructions to analyze the provided data. Output valid JSON that the code can consume.
|
|
1426
1426
|
|
|
1427
1427
|
---
|
|
1428
1428
|
Instructions:
|
|
@@ -1440,21 +1440,21 @@ ${r}
|
|
|
1440
1440
|
</data>`)}return t.push(`
|
|
1441
1441
|
Output only valid JSON. No explanation, no markdown fences, just the JSON object. Every number must be a JSON literal \u2014 never an expression like 2 * pi; write the computed decimal instead.`),t.join(`
|
|
1442
1442
|
|
|
1443
|
-
`)}function ss(n){try{return JSON.parse(n)}catch{return null}}function
|
|
1444
|
-
`)){let t=e.trim();if(!t||t.startsWith("#"))continue;let r=t.indexOf("=");if(r===-1)continue;let s=t.slice(0,r).trim(),i=t.slice(r+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function
|
|
1445
|
-
`)}var jn,VA,zA,GA,XA,is,vo,os,nn=v(()=>{"use strict";jn={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};VA="https://api.typebulb.com/api/models",zA=1440*60*1e3,GA=5e3,XA=60*1e3,is=null,vo=null,os=null});function ot(n,e){let t=n??process.env.TB_AI_PROVIDER,r=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(!r)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=Qt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Fn(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:r,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:r,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=jn[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:r,isFreeModel:!1}:`No API key for '${t}'. Set ${i} \u2014 ${$g()}.`}function _t(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return lu(n,{messages:t,stream:!0,effort:xg(e.effort),webSearch:e.webSearch,signal:e.signal})}var ko=v(()=>{"use strict";tn();tn();st();nn()});import*as Un from"fs/promises";import*as at from"path";function xo(n,e,t=e){let r=at.resolve(e,n),s=at.normalize(t),i=at.normalize(r);if(i!==s&&!i.startsWith(s+at.sep))throw new Error("Path traversal detected - access denied");return r}async function as(n,e,t){return Un.readFile(xo(n,e,t))}async function Eo(n,e,t,r){let s=xo(n,t,r);await Un.mkdir(at.dirname(s),{recursive:!0}),await Un.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var bu=v(()=>{"use strict"});async function Dg(n){let e=ot(n.provider,n.model);if(typeof e=="string")throw new Error(e);let t=await _t(e,n);if(!t.ok){let r=await Dn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function tT(n){let{response:e,protocol:t}=await Dg(n);return{text:await Zt(e,t)}}async function*nT(n){let{response:e,protocol:t}=await Dg(n);yield*en(e,t)}function jg(n,e=process.cwd()){let t=Object.assign(tT,{stream:nT}),r={read:async s=>{let i=await as(s,n,e);try{return new TextDecoder("utf-8",{fatal:!0}).decode(i)}catch{throw new Error(`File is not valid UTF-8 text: ${s} \u2014 use tb.fs.readBytes() for binary files.`)}},readBytes:async s=>new Uint8Array(await as(s,n,e)),write:async(s,i)=>(await Eo(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>it(),aiAccess:So,mode:Tn.local})}var Fg=v(()=>{"use strict";tn();ne();ko();nn();bu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as rT}from"url";async function Ug(n){let t=(await Ue.readdir(n)).find(r=>r.endsWith(".bulb.md"));return t?ie.join(n,t):null}function Nt(n,e){let t=ie.resolve(n),r=ie.join(ie.dirname(t),ie.basename(t).replace(/\.bulb\.md$/,""));return e?ie.join(r,"batches",e):r}async function qn(n,e){let t=Nt(n,e);await Ue.mkdir(t,{recursive:!0});let r=new Date;await Ue.utimes(t,r,r).catch(()=>{})}function Jn(n){let[e,t,r,s]=n.split(ie.sep).slice(-4);if(!(e!=="typebulbs"||t!=="u"||!r||!s?.endsWith(".bulb.md")))return{userSlug:r,slug:s.slice(0,-8)}}async function qe(n){let e=await Ue.readFile(n,"utf-8"),t=ue(e);if(!t)throw new Error("Invalid .bulb.md file format");let r=Rn(t);return{bulb:r,config:ir(r.config),warnings:Qd(e),starts:t.starts}}function wu(n){let e=ie.basename(n).replace(/\.bulb\.md$/i,"");return ie.join(ie.dirname(n),".typebulb",`${e}.server.mjs`)}async function ls(n,e,t,r,s){let i=qc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Yd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=fo(o);l.length>0&&await uo(l,a,r);let c=wu(e);return await Ue.writeFile(c,o,"utf-8"),jg(Nt(e,s)),await import(`${rT(c).href}?t=${Date.now()}`)}async function vu(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Ni(i.data);Xm(i.code,o.dependencies??{});let c=qc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await ro.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=vg({name:i.name,code:c.code,css:i.css,html:i.html,data:l,insight:i.insight,importMap:d,dir:Nt(n,s),watch:e,source:{file:ie.basename(n),codeLine:a.get("code.tsx")??1},compileError:c.error?String(c.error):void 0}),f=null;return i.server&&t&&(f=await ls(i.server,n,r,o.dependencies,s)),{html:u,bulb:i,serverExports:f}}var It,Ve=v(()=>{"use strict";Wr();Wm();Qm();tu();Sg();nu();Rs();Fg();It=(n,e)=>ie.join(Nt(n,e),"assets")});import{readdirSync as qg,readFileSync as sT,statSync as Jg}from"fs";import{join as Ao,basename as iT}from"path";function Kg(n,e,t){if(e>8)return t;let r;try{r=qg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Kg(Ao(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Ao(n,s.name));return t}function Su(n){let e=Ao(Nt(n),"batches"),t;try{t=qg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Jg(Ao(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function To(n){return Kg(n,0,[]).map(e=>{let t=0;try{t=Jg(e).mtimeMs}catch{}let r,s=!1;try{let i=sT(e,"utf8");r=Yi(i.slice(0,1024));let o=ue(i);s=!!o&&Wi(Rn(o))}catch{}return{path:e,name:r??iT(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var Hg=v(()=>{"use strict";ne();Wr();Uc();Ve()});import*as Vg from"net";import{mkdir as oT,readFile as aT,writeFile as zg}from"fs/promises";import{existsSync as lT}from"fs";import{join as Gg}from"path";function Zg(){return Gg(xt(),"blocks")}function ku(n){return Gg(Zg(),`${n}.json`)}function Po(n){return new Promise(e=>{let t=Vg.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function dT(n){for(let e=n;e<65535;e++)if(await Po(e))return e;throw new Error(`No free port found above ${n}`)}async function xu(n){let e=(await Q()).find(r=>r.port===n),t=e?` (pid ${e.pid}, ${e.agent?`agent:${e.agent}`:e.file})`:"";console.error(`port ${n} in use${t}`),process.exit(1)}async function Co(n){try{let e=JSON.parse(await aT(ku(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function Ro(n,e){try{return await zg(ku(n),JSON.stringify(e,null,2)),!0}catch{return Ze(),!1}}async function fT(n){let e=X(n);try{await oT(Zg(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<Qg;o++)t.push(Xg+o*rn);let r=await Promise.all(t.map(async o=>({base:o,block:await Co(o)})));for(let{base:o,block:a}of r)if(a?.cwd===e)return o;let s={cwd:e,slots:{},mirrors:{}};for(let{base:o,block:a}of r){if(!a)try{return await zg(ku(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Co(o))?.cwd===e)return o;l.code!=="EEXIST"&&Ze();continue}if(!lT(a.cwd))return await Ro(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>Wg(o.block)-Wg(a.block))[0];if(i)return await Ro(i.base,s)?i.base:void 0}function Wg(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function pT(n,e){let t=await Co(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=Yg(t),a=o.has(0)?uT:0;for(;a>Oo&&o.has(a);)a--;return t.mirrors[e.agent]=a,await Ro(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=Yg(t);for(s=Oo;s<rn&&i.has(s);)s++;if(s>=rn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:Oo,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await Ro(n,t),s}function Yg(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function hT(n,e){let t=await fT(e);return t===void 0?void 0:t+await pT(t,n)}async function cs(n){let e=X(n);for(let t=0;t<Qg;t++){let r=await Co(Xg+t*rn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function _o(n){if(n.explicit!==void 0)return await Po(n.explicit)||await xu(n.explicit),{port:n.explicit};let e=await hT(n.target,n.cwd);if(e!==void 0){let r=e-e%rn;for(let s=0;s<4;s++){if(await Po(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=Oo;s<rn;s++){let i=r+s;if(i!==e&&await Po(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await dT(cT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var Xg,rn,Qg,cT,Oo,uT,Kn=v(()=>{"use strict";Et();Be();Xg=20100,rn=100,Qg=19,cT=23e3,Oo=1,uT=rn-1});function Hn(n){if(n.server.trim())return"server-side code (server.ts)";let e=n.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")||n.infer.trim()||/\btb\s*\.\s*infer\b/.test(e))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var No=v(()=>{"use strict"});import{readFile as mT}from"fs/promises";async function Eu(n){try{let e=ue(await mT(n,"utf-8"));return e?Hn(Rn(e)):void 0}catch{return}}var ey=v(()=>{"use strict";Wr();No()});function Au(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=Gm(t);if(!r.length)return n;let s=e.files.get("config.json"),i={};if(s)try{let c=JSON.parse(s);c&&typeof c=="object"&&(i=c)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=r.filter(c=>!(c in o));if(!a.length)return n;for(let c of a)o[c]="latest";i.dependencies=o;let l={name:e.frontmatter.name};for(let[c,d]of e.files){let u=Vd(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),nf(l)}var ty=v(()=>{"use strict";ne();Vi()});import{spawn as ny}from"child_process";import{basename as gT}from"path";function yT(){return process.env.TYPEBULB_EDITOR||"code"}function wT(n,e,t){return t==null?[e]:bT.test(gT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function vT(n,e){let t=yT();return{command:t,args:wT(t,n,e)}}function Tu(n,e){let{command:t,args:r}=vT(n,e),s=process.platform==="win32"?ny("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):ny(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var bT,ry=v(()=>{"use strict";bT=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as ST,writeFileSync as kT,mkdirSync as xT}from"fs";import{join as ET}from"path";function Ou(){return ET(xt(),"trust.json")}function Pu(){try{let n=JSON.parse(ST(Ou(),"utf8"));return new Set(Array.isArray(n)?n:[])}catch{return new Set}}function AT(n){try{xT(xt(),{recursive:!0}),kT(Ou(),JSON.stringify([...n]))}catch(e){throw new Error(`can't write ${Ou()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function sn(n){return Pu().has(X(n))}function Wn(n,e){let t=Pu(),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),AT(t))}function Cu(){return[...Pu()]}var us=v(()=>{"use strict";Et()});import{readFileSync as fM,existsSync as TT}from"fs";import*as Yn from"path";import{fileURLToPath as OT}from"url";function PT(){let n=Yn.dirname(OT(import.meta.url));for(;!TT(Yn.join(n,"package.json"));){let e=Yn.dirname(n);if(e===n)break;n=e}return n}function ds(){return Yn.join(PT(),"SKILL.md")}var Ru=v(()=>{"use strict"});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as CT}from"crypto";async function Nu(n,e,t){let r=[...n],s=async()=>{for(let i=r.shift();i!==void 0;i=r.shift())await t(i)};await Promise.all(Array.from({length:Math.min(e,n.length)},s))}function Vn(n){try{return JSON.parse(n).error||n}catch{return n}}async function $u(n,e){try{let t=await fetch(fs(n),{headers:e.token?{Authorization:`Bearer ${e.token}`}:{},signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0});return t.ok?t.headers.get("content-type")?.includes("json")?{entries:await t.json()}:{error:"manifest response is not JSON \u2014 wrong origin?"}:{error:`manifest request failed (${t.status}): ${Vn(await t.text())}`}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function Lu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||RT;try{return Lo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function Lo(n,e,t){if(/^https?:\/\//i.test(n)){let i=new URL(n),o=i.pathname.split("/").filter(Boolean).map(decodeURIComponent),a=o[0]==="api"&&o[1]==="scripts"?o.slice(2):o;if(a[0]!=="u"||!a[1]||!a[2])throw new Error(`Not a bulb URL: ${n}
|
|
1446
|
-
Expected <origin>/u/<user>/<slug>`);let l=a[1],c=a[2].replace(/(\.bulb)?\.md$/,"");return{origin:i.origin,userSlug:l,slug:c,dest:Oe.join(e
|
|
1447
|
-
A pull target must be a bulb URL, or a local file at typebulbs/u/<user>/<slug>.bulb.md \u2014 the path is its remote identity.`);return{origin:t,...s,dest:r}}async function
|
|
1448
|
-
`),r=ue(t(n)),s=ue(t(e));return!r||!s?t(n)===t(e):r.frontmatter.name===s.frontmatter.name&&_e.every(i=>(r.files.get(le[i].path)||"")===(s.files.get(le[i].path)||""))}async function
|
|
1443
|
+
`)}function ss(n){try{return JSON.parse(n)}catch{return null}}function UA(n,e){let t="",r=0,s=!1,i=!1;for(let o=0;o<n.length;o++){let a=n[o];if(i){i=!1;continue}if(a==="\\"){i=!0;continue}a==='"'&&(s?(t+=n.slice(r,o+1),r=o+1):(t+=e(n.slice(r,o))+'"',r=o+1),s=!s)}return t+=s?n.slice(r):e(n.slice(r)),t}function qA(n){let e=UA(n,t=>t.replace(/\bpi\b/g,"3.141592653589793").replace(/\be\b/g,"2.718281828459045").replace(/-?\d[\d.\s+\-*/()]*\d|\(-?\d[\d.\s+\-*/()]*\d\)/g,r=>{if(!/[+\-*/]/.test(r.replace(/^-/,""))||r.length>64||!/^[\d\s.+\-*/()]+$/.test(r))return r;try{let s=Function(`"use strict"; return (${r})`)();return typeof s=="number"&&Number.isFinite(s)?String(s):r}catch{return r}}));return e!==n?e:null}function JA(n,e){let t=0,r=!1,s=!1;for(let i=e;i<n.length;i++){let o=n[i];if(s){s=!1;continue}if(o==="\\"){s=!0;continue}if(o==='"'){r=!r;continue}if(!r){if(o==="{"||o==="[")t++;else if((o==="}"||o==="]")&&(t--,t===0))return i}}return-1}function KA(n){let e=null,t=0;for(;t<n.length;){let r=n[t];if(r==="{"||r==="["){let s=JA(n,t);if(s!==-1){let i=n.slice(t,s+1),o=ss(i);o!==null&&(e={parsed:o,json:i}),t=s+1;continue}}t++}return e}function hu(n){let e=[],t=n.trim();t.startsWith("```")&&(t=t.replace(/^```(?:json)?\s*\n?/,"").replace(/\n?```\s*$/,""),e.push("markdown fences"));let r=ss(t);if(r!==null)return{parsed:r,json:t,fixesApplied:e};let s=t.match(/```(?:json)?\s*\n([\s\S]*?)\n?```\s*$/);if(s&&(t=s[1].trim(),e.push("preamble before fenced JSON"),r=ss(t),r!==null))return{parsed:r,json:t,fixesApplied:e};if(!t.startsWith("{")&&!t.startsWith("[")){let o=t.indexOf("{"),a=t.indexOf("["),l=o>=0&&a>=0?Math.min(o,a):o>=0?o:a;if(l>0&&(t=t.slice(l),e.push("preamble text"),r=ss(t),r!==null))return{parsed:r,json:t,fixesApplied:e}}for(let[o,a]of FA){let l=a(t);if(l!==null){let c=ss(l);if(c!==null)return{parsed:c,json:l,fixesApplied:[...e,o]}}}let i=KA(n);return i!==null?{...i,fixesApplied:[...e,"extracted last JSON value"]}:{parsed:null,json:t,fixesApplied:e}}function mu(n){try{let e={i:n.insight,d:n.data},t=JSON.stringify(e),r=DA(MA(t),{level:9}),s=WA(r),i=`${Rg}:${s}`;return i.length>HA?"":"#"+fu+i}catch{return""}}function gu(n){try{let e=n.startsWith("#")?n.slice(1):n;if(!e.startsWith(fu))return null;let t=e.slice(fu.length),r=t.indexOf(":");if(r===-1||t.slice(0,r)!==Rg)return null;let s=YA(t.slice(r+1)),i=JSON.parse(BA(jA(s)));return!i||typeof i.i>"u"||!Array.isArray(i.d)?null:{insight:i.i,insightJson:JSON.stringify(i.i,null,2),data:i.d}}catch{return null}}function WA(n){let e="";for(let t=0;t<n.length;t+=32768)e+=String.fromCharCode(...n.subarray(t,t+32768));return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function YA(n){let e=n.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";let t=atob(e),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r}var FA,fu,Rg,HA,_g=v(()=>{FA=[["orphan quote",n=>{let e=n.replace(/^[ \t]*"[ \t]*\r?\n/gm,"");return e!==n?e:null}],["trailing }",n=>n.endsWith("}}")?n.slice(0,-1):null],["trailing ]",n=>n.endsWith("]]")?n.slice(0,-1):null],["trailing },",n=>n.endsWith("},")?n.slice(0,-1):null],["trailing ],",n=>n.endsWith("],")?n.slice(0,-1):null],["trailing comma in object",n=>n.match(/,\s*\}$/)?n.replace(/,\s*\}$/,"}"):null],["trailing comma in array",n=>n.match(/,\s*\]$/)?n.replace(/,\s*\]$/,"]"):null],["arithmetic constants",qA]];fu="tb=",Rg="1",HA=6e4});var tn=v(()=>{Ag();Mn();uu();Cg();_g();mo();ou();au();su();iu();lu()});import{readFileSync as Ng,existsSync as VA}from"fs";import*as Ye from"path";function Ig(n){return[...n?[`.env.${n}.local`,`.env.${n}`]:[],".env.local",".env"]}function Te(n,e=process.cwd()){let t={},r=[];for(let s of Ig(n)){let i;try{i=Ng(Ye.resolve(e,s),"utf-8")}catch{continue}r.push(s);for(let[o,a]of $g(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:n,sources:t,loaded:r}}function*$g(n){for(let e of n.split(`
|
|
1444
|
+
`)){let t=e.trim();if(!t||t.startsWith("#"))continue;let r=t.indexOf("=");if(r===-1)continue;let s=t.slice(0,r).trim(),i=t.slice(r+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function vo(n,e=process.cwd()){for(let t of Ig()){let r;try{r=Ng(Ye.resolve(e,t),"utf-8")}catch{continue}for(let[s,i]of $g(r))if(s===n)return i}return process.env[n]}function zA(n){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let r;r=t.exec(n);)e.add(r[1]??r[2]);return[...e]}function Lg(){return`.env loads from ${process.cwd()} (the directory you ran from, not the bulb's)`}function Rt(n,e,t){let{sources:r,mode:s,loaded:i}=n,o=process.cwd(),a=Ye.dirname(e),l=`(mode: ${s??"none"})`,c=t?zA(t):[],d=c.filter(p=>r[p]).map(p=>`${p} \u2190 ${r[p]}`);d.length?console.log(`env: ${d.join(", ")} ${l}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${l}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Ye.resolve(a)!==Ye.resolve(o);if(u)for(let p of[".env.local",".env"])VA(Ye.join(a,p))&&console.log(`env: ${Ye.join(a,p)} present but not loaded (cwd is ${o})`);let f=c.filter(p=>process.env[p]===void 0);if(f.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${f.join(", ")} but ${f.length>1?"they are":"it's"} unset${p}`)}}var st=v(()=>{"use strict"});function Fn(n){return(n.includes("://")?n:`http://${n}`).replace(/\/+$/,"")}function yu(){return os}async function it(){let[n,e]=await Promise.all([Bg(),tT()]);return eT([...nT(e),...n],process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL)}function eT(n,e,t){return!e||!t?n:n.map(r=>r.provider===e&&r.name===t?{...r,default:!0}:r)}async function Mg(){let n;try{n=await fetch(GA,{signal:AbortSignal.timeout(QA)})}catch(e){return os=`catalog fetch failed: ${e?.message??e}`,null}if(!n.ok)return os=`catalog fetch failed: HTTP ${n.status}`,null;try{return await n.json()}catch(e){return os=`catalog returned an unreadable body: ${e?.message??e}`,null}}async function tT(){if(is&&Date.now()-is.fetchedAt<=XA)return is.models;let n=await Mg()??await Mg();return n?(is={models:n,fetchedAt:Date.now()},os=null,n):is?.models??[]}async function Bg(){if(So&&Date.now()-So.fetchedAt<=ZA)return So.models;let n=Fn(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",n).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return So={models:e,fetchedAt:Date.now()},e}function nT(n){let e=new Set(Object.entries(jn).filter(([,t])=>!!process.env[t]).map(([t])=>t));return n.filter(t=>e.has(t.provider))}function bu(){return Object.values(jn).some(n=>!!process.env[n])}async function ko(){return bu()||process.env.TB_AI_BASE_URL||(await Bg()).length>0?"own":"none"}function Dg(n,e,t){let r=Math.max(...n.map(o=>o.name.length)),s=Math.max(...n.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of n)i.push(` ${o.name.padEnd(r)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
|
|
1445
|
+
`)}var jn,GA,XA,QA,ZA,is,So,os,nn=v(()=>{"use strict";jn={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};GA="https://api.typebulb.com/api/models",XA=1440*60*1e3,QA=5e3,ZA=60*1e3,is=null,So=null,os=null});function ot(n,e){let t=n??process.env.TB_AI_PROVIDER,r=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(!r)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=Qt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Fn(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:r,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:r,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=jn[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:r,isFreeModel:!1}:`No API key for '${t}'. Set ${i} \u2014 ${Lg()}.`}function _t(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return cu(n,{messages:t,stream:!0,effort:Eg(e.effort),webSearch:e.webSearch,signal:e.signal})}var xo=v(()=>{"use strict";tn();tn();st();nn()});import*as Un from"fs/promises";import*as at from"path";function Eo(n,e,t=e){let r=at.resolve(e,n),s=at.normalize(t),i=at.normalize(r);if(i!==s&&!i.startsWith(s+at.sep))throw new Error("Path traversal detected - access denied");return r}async function as(n,e,t){return Un.readFile(Eo(n,e,t))}async function Ao(n,e,t,r){let s=Eo(n,t,r);await Un.mkdir(at.dirname(s),{recursive:!0}),await Un.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var wu=v(()=>{"use strict"});async function jg(n){let e=ot(n.provider,n.model);if(typeof e=="string")throw new Error(e);let t=await _t(e,n);if(!t.ok){let r=await Dn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function rT(n){let{response:e,protocol:t}=await jg(n);return{text:await Zt(e,t)}}async function*sT(n){let{response:e,protocol:t}=await jg(n);yield*en(e,t)}function Fg(n,e=process.cwd()){let t=Object.assign(rT,{stream:sT}),r={read:async s=>{let i=await as(s,n,e);try{return new TextDecoder("utf-8",{fatal:!0}).decode(i)}catch{throw new Error(`File is not valid UTF-8 text: ${s} \u2014 use tb.fs.readBytes() for binary files.`)}},readBytes:async s=>new Uint8Array(await as(s,n,e)),write:async(s,i)=>(await Ao(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>it(),aiAccess:ko,mode:Tn.local})}var Ug=v(()=>{"use strict";tn();ne();xo();nn();wu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as iT}from"url";async function qg(n){let t=(await Ue.readdir(n)).find(r=>r.endsWith(".bulb.md"));return t?ie.join(n,t):null}function Nt(n,e){let t=ie.resolve(n),r=ie.join(ie.dirname(t),ie.basename(t).replace(/\.bulb\.md$/,""));return e?ie.join(r,"batches",e):r}async function qn(n,e){let t=Nt(n,e);await Ue.mkdir(t,{recursive:!0});let r=new Date;await Ue.utimes(t,r,r).catch(()=>{})}function Jn(n){let[e,t,r,s]=n.split(ie.sep).slice(-4);if(!(e!=="typebulbs"||t!=="u"||!r||!s?.endsWith(".bulb.md")))return{userSlug:r,slug:s.slice(0,-8)}}async function qe(n){let e=await Ue.readFile(n,"utf-8"),t=ue(e);if(!t)throw new Error("Invalid .bulb.md file format");let r=Rn(t);return{bulb:r,config:ir(r.config),warnings:Zd(e),starts:t.starts}}function vu(n){let e=ie.basename(n).replace(/\.bulb\.md$/i,"");return ie.join(ie.dirname(n),".typebulb",`${e}.server.mjs`)}async function ls(n,e,t,r,s){let i=Jc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Vd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=po(o);l.length>0&&await fo(l,a,r);let c=vu(e);return await Ue.writeFile(c,o,"utf-8"),Fg(Nt(e,s)),await import(`${iT(c).href}?t=${Date.now()}`)}async function Su(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Ii(i.data);Qm(i.code,o.dependencies??{});let c=Jc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await so.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=Sg({name:i.name,code:c.code,css:i.css,html:i.html,data:l,insight:i.insight,importMap:d,dir:Nt(n,s),watch:e,source:{file:ie.basename(n),codeLine:a.get("code.tsx")??1},compileError:c.error?String(c.error):void 0}),f=null;return i.server&&t&&(f=await ls(i.server,n,r,o.dependencies,s)),{html:u,bulb:i,serverExports:f}}var It,Ve=v(()=>{"use strict";Wr();Ym();Zm();nu();kg();ru();_s();Ug();It=(n,e)=>ie.join(Nt(n,e),"assets")});import{readdirSync as Kg,readFileSync as oT,statSync as Hg}from"fs";import{join as To,basename as aT}from"path";function Wg(n,e,t){if(e>8)return t;let r;try{r=Kg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Wg(To(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(To(n,s.name));return t}function ku(n){let e=To(Nt(n),"batches"),t;try{t=Kg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Hg(To(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function lT(n,e){let t,r=!1;try{let s=oT(n,"utf8");t=Vi(s.slice(0,1024));let i=ue(s);r=!!i&&Yi(Rn(i))}catch{}return{mtime:e,name:t??aT(n).replace(/\.bulb\.md$/,""),serverOnly:r}}function Oo(n){let e=new Map,t=Wg(n,0,[]).map(r=>{let s=0;try{s=Hg(r).mtimeMs}catch{}let i=s?Jg.get(r):void 0,o=i?.mtime===s?i:lT(r,s);return s&&e.set(r,o),{path:r,...o}});return Jg=e,t}var Jg,Yg=v(()=>{"use strict";ne();Wr();qc();Ve();Jg=new Map});import*as Gg from"net";import{mkdir as cT,readFile as uT,writeFile as Xg}from"fs/promises";import{existsSync as dT}from"fs";import{join as Qg}from"path";function ty(){return Qg(xt(),"blocks")}function xu(n){return Qg(ty(),`${n}.json`)}function Co(n){return new Promise(e=>{let t=Gg.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function hT(n){for(let e=n;e<65535;e++)if(await Co(e))return e;throw new Error(`No free port found above ${n}`)}async function Eu(n){let e=(await Q()).find(r=>r.port===n),t=e?` (pid ${e.pid}, ${e.agent?`agent:${e.agent}`:e.file})`:"";console.error(`port ${n} in use${t}`),process.exit(1)}async function Ro(n){try{let e=JSON.parse(await uT(xu(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function _o(n,e){try{return await Xg(xu(n),JSON.stringify(e,null,2)),!0}catch{return Ze(),!1}}async function mT(n){let e=X(n);try{await cT(ty(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<ey;o++)t.push(Zg+o*rn);let r=await Promise.all(t.map(async o=>({base:o,block:await Ro(o)})));for(let{base:o,block:a}of r)if(a?.cwd===e)return o;let s={cwd:e,slots:{},mirrors:{}};for(let{base:o,block:a}of r){if(!a)try{return await Xg(xu(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Ro(o))?.cwd===e)return o;l.code!=="EEXIST"&&Ze();continue}if(!dT(a.cwd))return await _o(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>Vg(o.block)-Vg(a.block))[0];if(i)return await _o(i.base,s)?i.base:void 0}function Vg(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function gT(n,e){let t=await Ro(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=zg(t),a=o.has(0)?pT:0;for(;a>Po&&o.has(a);)a--;return t.mirrors[e.agent]=a,await _o(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=zg(t);for(s=Po;s<rn&&i.has(s);)s++;if(s>=rn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:Po,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await _o(n,t),s}function zg(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function yT(n,e){let t=await mT(e);return t===void 0?void 0:t+await gT(t,n)}async function cs(n){let e=X(n);for(let t=0;t<ey;t++){let r=await Ro(Zg+t*rn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function No(n){if(n.explicit!==void 0)return await Co(n.explicit)||await Eu(n.explicit),{port:n.explicit};let e=await yT(n.target,n.cwd);if(e!==void 0){let r=e-e%rn;for(let s=0;s<4;s++){if(await Co(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=Po;s<rn;s++){let i=r+s;if(i!==e&&await Co(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await hT(fT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var Zg,rn,ey,fT,Po,pT,Kn=v(()=>{"use strict";Et();Be();Zg=20100,rn=100,ey=19,fT=23e3,Po=1,pT=rn-1});function Hn(n){if(n.server.trim())return"server-side code (server.ts)";let e=n.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")||n.infer.trim()||/\btb\s*\.\s*infer\b/.test(e))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Io=v(()=>{"use strict"});import{readFile as bT}from"fs/promises";async function Au(n){try{let e=ue(await bT(n,"utf-8"));return e?Hn(Rn(e)):void 0}catch{return}}var ny=v(()=>{"use strict";Wr();Io()});function Tu(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=Xm(t);if(!r.length)return n;let s=e.files.get("config.json"),i={};if(s)try{let c=JSON.parse(s);c&&typeof c=="object"&&(i=c)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=r.filter(c=>!(c in o));if(!a.length)return n;for(let c of a)o[c]="latest";i.dependencies=o;let l={name:e.frontmatter.name};for(let[c,d]of e.files){let u=zd(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),rf(l)}var ry=v(()=>{"use strict";ne();zi()});import{spawn as sy}from"child_process";import{basename as wT}from"path";function vT(){return process.env.TYPEBULB_EDITOR||"code"}function kT(n,e,t){return t==null?[e]:ST.test(wT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function xT(n,e){let t=vT();return{command:t,args:kT(t,n,e)}}function Ou(n,e){let{command:t,args:r}=xT(n,e),s=process.platform==="win32"?sy("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):sy(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ST,iy=v(()=>{"use strict";ST=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as ET,writeFileSync as AT,mkdirSync as TT,statSync as OT}from"fs";import{join as PT}from"path";function Pu(){return PT(xt(),"trust.json")}function Cu(){try{let n=Pu(),e=OT(n).mtimeMs;if(us?.mtime!==e){let t=JSON.parse(ET(n,"utf8"));us={mtime:e,set:new Set(Array.isArray(t)?t:[])}}return us.set}catch{return us=void 0,new Set}}function CT(n){try{TT(xt(),{recursive:!0}),AT(Pu(),JSON.stringify([...n])),us=void 0}catch(e){throw new Error(`can't write ${Pu()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function sn(n){return Cu().has(X(n))}function Wn(n,e){let t=new Set(Cu()),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),CT(t))}function Ru(){return[...Cu()]}var us,ds=v(()=>{"use strict";Et()});import{readFileSync as gM,existsSync as RT}from"fs";import*as Yn from"path";import{fileURLToPath as _T}from"url";function NT(){let n=Yn.dirname(_T(import.meta.url));for(;!RT(Yn.join(n,"package.json"));){let e=Yn.dirname(n);if(e===n)break;n=e}return n}function fs(){return Yn.join(NT(),"SKILL.md")}var _u=v(()=>{"use strict"});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as IT}from"crypto";async function Iu(n,e,t){let r=[...n],s=async()=>{for(let i=r.shift();i!==void 0;i=r.shift())await t(i)};await Promise.all(Array.from({length:Math.min(e,n.length)},s))}function Vn(n){try{return JSON.parse(n).error||n}catch{return n}}async function Lu(n,e){try{let t=await fetch(ps(n),{headers:e.token?{Authorization:`Bearer ${e.token}`}:{},signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0});return t.ok?t.headers.get("content-type")?.includes("json")?{entries:await t.json()}:{error:"manifest response is not JSON \u2014 wrong origin?"}:{error:`manifest request failed (${t.status}): ${Vn(await t.text())}`}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function Mu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||$T;try{return Mo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function Mo(n,e,t){if(/^https?:\/\//i.test(n)){let i=new URL(n),o=i.pathname.split("/").filter(Boolean).map(decodeURIComponent),a=o[0]==="api"&&o[1]==="scripts"?o.slice(2):o;if(a[0]!=="u"||!a[1]||!a[2])throw new Error(`Not a bulb URL: ${n}
|
|
1446
|
+
Expected <origin>/u/<user>/<slug>`);let l=a[1],c=a[2].replace(/(\.bulb)?\.md$/,"");return{origin:i.origin,userSlug:l,slug:c,dest:Oe.join(e,$o(l,c))}}let r=Oe.resolve(e,n),s=Jn(r);if(!s)throw new Error(`Not a conventional bulb path: ${n}
|
|
1447
|
+
A pull target must be a bulb URL, or a local file at typebulbs/u/<user>/<slug>.bulb.md \u2014 the path is its remote identity.`);return{origin:t,...s,dest:r}}async function LT(n,e){let t=await Lu(n,e);if("error"in t||!t.entries.length)return{kind:"none"};let r=t.entries,s=It(n.dest),i=[],o=[],a=0;for(let l of r){let c=await Se.readFile(Oe.join(s,...l.path.split("/"))).catch(()=>{});c===void 0?i.push(l.path):$u(c)===l.md5?a++:e.force?i.push(l.path):o.push(l.path)}return o.length?{kind:"conflict",paths:o}:{kind:"plan",toGet:i,unchanged:a}}async function MT(n,e,t){let r=It(n.dest),s=[],i=0;return await Iu(e.toGet,4,async o=>{try{let a=await fetch(`${ps(n)}/${Lo(o)}`,{headers:t.token?{Authorization:`Bearer ${t.token}`}:{},signal:AbortSignal.timeout(t.timeoutMs??3e4)});if(!a.ok){s.push(`${o}: HTTP ${a.status}`);return}let l=Oe.join(r,...o.split("/"));await Se.mkdir(Oe.dirname(l),{recursive:!0}),await Se.writeFile(l,new Uint8Array(await a.arrayBuffer())),i++}catch(a){s.push(`${o}: ${a instanceof Error?a.message:String(a)}`)}}),{downloaded:i,unchanged:e.unchanged,errors:s}}async function Bo(n,e={}){let t=await fetch(Nu(n),{headers:e.token?{Authorization:`Bearer ${e.token}`}:{},signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0});if(!t.ok)return{kind:"http-error",status:t.status};let r=t.headers.get("content-type");if(!r?.includes("text/markdown"))return{kind:"not-markdown",contentType:r};let s=await t.text(),i;try{i=await Se.readFile(n.dest,"utf-8")}catch{}let o=i!==void 0&&BT(i,s);if(i!==void 0&&!o&&!e.force){let{mtime:c}=await Se.stat(n.dest);return{kind:"conflict",dest:n.dest,localMtime:c,remoteLastModified:t.headers.get("last-modified")}}let a=await LT(n,e);if(a.kind==="conflict")return{kind:"asset-conflict",dest:n.dest,paths:a.paths};if(!o){await Se.mkdir(Oe.dirname(n.dest),{recursive:!0}),await Se.writeFile(n.dest,s);let c=new Date(t.headers.get("last-modified")??"");isNaN(c.getTime())||await Se.utimes(n.dest,new Date,c)}let l=a.kind==="plan"?await MT(n,a,e):void 0;return o?{kind:"up-to-date",dest:n.dest,assets:l}:{kind:"written",dest:n.dest,created:i===void 0,assets:l}}function BT(n,e){let t=i=>i.replace(/\r\n/g,`
|
|
1448
|
+
`),r=ue(t(n)),s=ue(t(e));return!r||!s?t(n)===t(e):r.frontmatter.name===s.frontmatter.name&&_e.every(i=>(r.files.get(le[i].path)||"")===(s.files.get(le[i].path)||""))}async function ay(n,e){n||(console.error("Usage: typebulb pull <bulb url | typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1));let t=Mu(n,e.mode),r=`${t.origin}/u/${t.userSlug}/${t.slug}`,s;try{s=await Bo(t,{force:e.force,token:process.env.TYPEBULB_TOKEN})}catch(o){console.error(`Could not reach ${t.origin}: ${o instanceof Error?o.message:String(o)}`),process.exitCode=1;return}let i=Oe.relative(process.cwd(),t.dest)||t.dest;switch(s.kind){case"written":console.log(`pulled ${r} \u2192 ${i}${s.created?"":" (overwritten)"}`),oy(s.assets);return;case"up-to-date":console.log(`up to date: ${i}`),oy(s.assets);return;case"conflict":console.error(`Refusing to overwrite ${i} \u2014 it differs from ${r}
|
|
1449
1449
|
local file modified ${s.localMtime.toISOString()}
|
|
1450
1450
|
remote last saved ${s.remoteLastModified??"unknown"}
|
|
1451
1451
|
Re-run with --force to overwrite the local file.`),process.exitCode=1;return;case"asset-conflict":console.error(`Refusing to overwrite local assets that differ from the hosted copies:
|
|
1452
1452
|
`+s.paths.map(o=>` assets/${o}`).join(`
|
|
1453
1453
|
`)+`
|
|
1454
|
-
Re-run with --force to overwrite them.`),process.exitCode=1;return;case"http-error":s.status===404?console.error(`Bulb not found: ${r}`):s.status===401||s.status===403?console.error(`This bulb is private (${s.status}) \u2014 pulling it needs a TYPEBULB_TOKEN for its owner.`):console.error(`Pull failed: ${t.origin} responded ${s.status}`),process.exitCode=1;return;case"not-markdown":console.error(`${r}.md did not return bulb markdown (got ${s.contentType??"no content-type"}) \u2014 is ${t.origin} a typebulb host?`),process.exitCode=1}}function
|
|
1454
|
+
Re-run with --force to overwrite them.`),process.exitCode=1;return;case"http-error":s.status===404?console.error(`Bulb not found: ${r}`):s.status===401||s.status===403?console.error(`This bulb is private (${s.status}) \u2014 pulling it needs a TYPEBULB_TOKEN for its owner.`):console.error(`Pull failed: ${t.origin} responded ${s.status}`),process.exitCode=1;return;case"not-markdown":console.error(`${r}.md did not return bulb markdown (got ${s.contentType??"no content-type"}) \u2014 is ${t.origin} a typebulb host?`),process.exitCode=1}}function oy(n){if(!(!n||!n.downloaded&&!n.errors.length)){console.log(`assets: ${n.downloaded} downloaded${n.unchanged?`, ${n.unchanged} unchanged`:""}`);for(let e of n.errors)console.error(` asset failed \u2014 ${e} (a re-pull retries just the missing ones)`);n.errors.length&&(process.exitCode=1)}}var $T,$o,Nu,Lo,ps,$u,Do=v(()=>{"use strict";st();ne();Ve();$T="https://typebulb.com",$o=(n,e)=>Oe.join("typebulbs","u",n,`${e}.bulb.md`),Nu=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}.md`,Lo=n=>n.split("/").map(encodeURIComponent).join("/"),ps=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}/assets`;$u=n=>IT("md5").update(n).digest("hex")});import*as ze from"fs/promises";import*as hs from"path";async function ly(n,e=""){let t=await ze.readdir(n,{withFileTypes:!0}).catch(()=>[]),r=[];for(let s of t)s.isDirectory()?r.push(...await ly(hs.join(n,s.name),`${e}${s.name}/`)):s.isFile()&&r.push(e+s.name);return r}async function DT(n,e){let t=e.timeoutMs??3e4,r=ps(n),s={Authorization:`Bearer ${e.token}`},i=It(n.dest);if(!await ze.stat(i).then(m=>m.isDirectory()).catch(()=>!1))return{kind:"skipped"};let o=await ly(i),a=await Lu(n,{token:e.token,timeoutMs:t});if("error"in a)return{kind:"sync-error",message:a.error};let l=a.entries;if(!o.length&&!l.length)return{kind:"skipped"};let c=new Map(l.map(m=>[m.path,m.md5])),d=new Set(o),u=l.map(m=>m.path).filter(m=>!d.has(m)),f=0,p=0;try{await Iu(o,4,async m=>{let h=await ze.readFile(hs.join(i,...m.split("/")));if(c.get(m)===$u(h)){p++;return}let b=await fetch(`${r}/${Lo(m)}`,{method:"PUT",body:new Uint8Array(h),headers:s,signal:AbortSignal.timeout(t)});if(!b.ok)throw new Error(`upload of '${m}' refused (${b.status}): ${Vn(await b.text())}`);f++})}catch(m){return{kind:"sync-error",message:m instanceof Error?m.message:String(m)}}return{kind:"synced",uploaded:f,unchanged:p,toDelete:u,base:Ls(n.userSlug,n.slug)}}async function jT(n,e,t){let r=t.timeoutMs??3e4,s=ps(n),i=[];for(let o of e)try{let a=await fetch(`${s}/${Lo(o)}`,{method:"DELETE",headers:{Authorization:`Bearer ${t.token}`},signal:AbortSignal.timeout(r)});if(!a.ok)return{deleted:i,error:`delete of '${o}' refused (${a.status}): ${Vn(await a.text())}`};i.push(o)}catch(a){return{deleted:i,error:a instanceof Error?a.message:String(a)}}return{deleted:i}}async function jo(n,e){let t=await ze.readFile(n.dest,"utf-8"),{mtime:r}=await ze.stat(n.dest),s=await DT(n,{token:e.token,timeoutMs:e.timeoutMs});if(s.kind==="sync-error")return{kind:"asset-error",message:s.message};let i=s.kind==="synced"?{uploaded:s.uploaded,unchanged:s.unchanged,deleted:[],base:s.base}:void 0,o={Authorization:`Bearer ${e.token}`,"Content-Type":"text/markdown; charset=utf-8"};e.force||(o["If-Unmodified-Since"]=r.toUTCString());let a=await fetch(Nu(n),{method:"PUT",body:t,headers:o,signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0}),l=await a.text();if(a.status===409)return{kind:"conflict",message:Vn(l),assets:i};if(!a.ok)return{kind:"http-error",status:a.status,message:Vn(l),assets:i};let c=JSON.parse(l);if(await ze.utimes(n.dest,new Date,new Date(c.updatedAt)),i&&s.kind==="synced"&&s.toDelete.length){let d=await jT(n,s.toDelete,{token:e.token,timeoutMs:e.timeoutMs});i.deleted=d.deleted,d.error&&(i.pruneError=d.error)}return{kind:"pushed",created:c.created,serverStripped:c.serverStripped,updatedAt:c.updatedAt,assets:i}}async function cy(n,e){n||(console.error("Usage: typebulb push <typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1)),/^https?:\/\//i.test(n)&&(console.error("push takes a local .bulb.md file, not a URL (the path is its remote identity)"),process.exit(1));let t=Mu(n,e.mode),r=process.env.TYPEBULB_TOKEN;r||(console.error("push needs TYPEBULB_TOKEN in your .env \u2014 create one on your typebulb.com settings page."),process.exit(1));let s=`${t.origin}/u/${t.userSlug}/${t.slug}`,i=hs.relative(process.cwd(),t.dest)||t.dest,o;try{o=await jo(t,{token:r,force:e.force})}catch(a){let l=a instanceof Error?a.message:String(a);console.error(a?.code==="ENOENT"?`File not found: ${i}`:`Could not push to ${t.origin}: ${l}`),process.exitCode=1;return}switch(o.kind!=="asset-error"&&o.assets&&console.log(`assets: ${o.assets.uploaded} uploaded, ${o.assets.unchanged} unchanged \u2192 ${o.assets.base}`),o.kind){case"asset-error":console.error(`assets sync failed: ${o.message}
|
|
1455
1455
|
push refused: the bulb text was not pushed.`),process.exitCode=1;return;case"pushed":{console.log(`pushed ${i} \u2192 ${s}`),o.created&&(console.log(" created a new bulb, unlisted \u2014 nothing existed at this URL before"),console.log(" if you renamed this file, its previous bulb is still live at the old URL")),o.serverStripped&&console.log("note: the server.ts block was stripped on the server copy (CLI-only); your local file is untouched.");for(let a of o.assets?.deleted??[])console.log(` deleted ${a} (no longer in assets/)`);o.assets?.pruneError&&console.log(`note: asset cleanup incomplete \u2014 ${o.assets.pruneError}; the next push will retry.`);return}case"conflict":console.error(`${o.message}
|
|
1456
1456
|
pull to see the remote: typebulb pull ${i}
|
|
1457
|
-
or overwrite it: typebulb push ${i} --force`),process.exitCode=1;return;case"http-error":o.status===401?console.error("The server rejected TYPEBULB_TOKEN (401) \u2014 it may be revoked; mint a new one on the settings page."):console.error(`Push failed: ${t.origin} responded ${o.status}${o.message?` \u2014 ${o.message}`:""}`),process.exitCode=1}}var
|
|
1457
|
+
or overwrite it: typebulb push ${i} --force`),process.exitCode=1;return;case"http-error":o.status===401?console.error("The server rejected TYPEBULB_TOKEN (401) \u2014 it may be revoked; mint a new one on the settings page."):console.error(`Push failed: ${t.origin} responded ${o.status}${o.message?` \u2014 ${o.message}`:""}`),process.exitCode=1}}var Bu=v(()=>{"use strict";ne();Do();Ve()});var zn=v(()=>{"use strict";Be();Yg();Kn();ny();qc();ry();iy();ds();nn();nn();xo();_u();Do();Bu();st()});import{existsSync as FT,mkdirSync as UT,rmSync as qT,writeFileSync as JT}from"fs";import{homedir as KT}from"os";import*as Gn from"path";function VT(){return YT.replace('"__TB_SKILL_PATH__"',JSON.stringify(fs()))}function uy(){try{if(!FT(Du()))return}catch{return}try{let n=HT();UT(Gn.dirname(n),{recursive:!0}),JT(n,VT())}catch{}for(let n of WT())try{qT(n,{force:!0})}catch{}}var Du,HT,WT,YT,dy=v(()=>{"use strict";zn();Du=()=>Gn.join(KT(),".pi","agent"),HT=()=>Gn.join(Du(),"extensions","typebulb.ts"),WT=()=>["typebulb-wait.ts","matchu-patchu.ts"].map(n=>Gn.join(Du(),"extensions",n)),YT=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
|
|
1458
1458
|
import { spawn } from "node:child_process";
|
|
1459
1459
|
import { existsSync } from "node:fs";
|
|
1460
1460
|
|
|
@@ -1599,31 +1599,31 @@ export default function (pi) {
|
|
|
1599
1599
|
try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
|
|
1600
1600
|
} catch (e) { logErr("load", e && e.message); }
|
|
1601
1601
|
}
|
|
1602
|
-
`});function Y(n){return n?.message??String(n)}var z,$t=v(()=>{"use strict";z=process.cwd()});import{spawn as
|
|
1603
|
-
`))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var
|
|
1604
|
-
`)}catch{}await Promise.race([this.#v,
|
|
1605
|
-
`)}catch{}}#p(e,t){let r=e.length>200?e.slice(0,200)+"\u2026":e;r&&(this.#o={text:r,kind:t,until:Date.now()+(t==="info"?
|
|
1602
|
+
`});function Y(n){return n?.message??String(n)}var z,$t=v(()=>{"use strict";z=process.cwd()});import{spawn as fy}from"child_process";import{StringDecoder as zT}from"string_decoder";function rO(n,e){let t=new zT("utf8"),r="";n.on("data",s=>{r+=typeof s=="string"?s:t.write(s);let i;for(;(i=r.indexOf(`
|
|
1603
|
+
`))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var GT,XT,py,QT,ZT,eO,tO,nO,Fo,Uo,hy,my=v(()=>{"use strict";$t();GT=3e4,XT=5e3,py=2e3,QT=2e3,ZT=12e4,eO=8e3,tO=15e3,nO=new Set(["get_state","get_commands","get_available_models","set_model","set_thinking_level","cycle_thinking_level","get_session_stats","compact","set_auto_compaction","get_fork_messages","fork","clone","set_session_name","export_html","bash","abort_bash"]),Fo=new Set;process.on("exit",()=>{for(let n of Fo)try{n.kill()}catch{}});Uo=class{#e;#t=!1;#n=0;#r=!1;#c=null;#h=null;#s=null;#o=null;#u=new Map;#i=[];#m=null;#w=null;#g=null;#d;#f;#y="";#A=1;#a=new Map;#v;#b;constructor(e,t,r=(s,i)=>fy(s,{cwd:i,shell:!0,stdio:["pipe","pipe","pipe"],env:{...process.env,TYPEBULB_MIRROR:"1"}})){if(this.#v=new Promise(o=>{this.#b=o}),t?.includes('"')){this.#f="session path contains a quote \u2014 cannot drive it",this.#b();return}let s=t?`pi --mode rpc --session "${t}"`:"pi --mode rpc",i;try{i=r(s,e)}catch(o){this.#f=`could not start pi: ${Y(o)}`,this.#b();return}this.#e=i,this.#d=t,Fo.add(i),i.stdout&&rO(i.stdout,o=>this.#T(o)),i.stderr&&i.stderr.on("data",o=>{this.#y=(this.#y+o.toString()).slice(-QT)}),i.on("error",o=>this.#x(`could not start pi: ${o.message}`)),i.on("exit",o=>{this.#e===i&&this.#x(o?`pi exited (code ${o})${this.#y.trim()?`: ${this.#y.trim()}`:""}`:"pi exited"),Fo.delete(i),this.#b()}),this.#l({type:"get_state"}).then(o=>{let a=o.data?.sessionFile;typeof a=="string"&&a&&(this.#d=a);let l=o.data?.model;l&&typeof l.id=="string"&&l.id&&(this.#g=l.id)}).catch(()=>{}),this.#S()}get streaming(){return this.#t||Date.now()<this.#n}get draft(){return this.#c}get echo(){return this.#h}get queue(){return this.#m}get stats(){return this.#w}get model(){return this.#g}get sessionFile(){return this.#d}get error(){return this.#f}get status(){if(this.#s)return this.#s;if(this.#o){if(Date.now()<this.#o.until)return{text:this.#o.text,kind:this.#o.kind};this.#o=null}return this.#u.size?{text:[...this.#u.values()].join(" \xB7 "),kind:"info"}:null}get dialog(){let e=Date.now();for(;this.#i.length;){let t=this.#i[0];if(e<t.until)return t.req;this.#i.shift(),t.ownTimeout||this.#k({type:"extension_ui_response",id:t.req.id,cancelled:!0})}return null}notice(e,t){this.#p(e,t)}respondUi(e,t){let r=this.#i.findIndex(o=>o.req.id===e);if(r<0)return{ok:!1,error:"dialog expired or already answered"};let[s]=this.#i.splice(r,1),i={type:"extension_ui_response",id:e};return t.cancelled?i.cancelled=!0:s.req.method==="confirm"?i.confirmed=!!t.confirmed:i.value=t.value??"",this.#k(i),{ok:!0}}async rpc(e){if(!nO.has(e.type))return{ok:!1,error:`command not allowed: ${e.type}`};try{let t=await this.#l(e);if(t.success&&e.type==="set_model"){let r=t.data?.id;typeof r=="string"&&r&&(this.#g=r)}if(t.success&&(e.type==="fork"||e.type==="clone")){try{let s=(await this.#l({type:"get_state"})).data?.sessionFile;typeof s=="string"&&s&&(this.#d=s)}catch{}return{ok:!0,data:{...t.data??{},sessionFile:this.#d}}}return t.success?{ok:!0,data:t.data}:{ok:!1,error:t.error??`pi rejected ${e.type}`}}catch(t){return{ok:!1,error:Y(t)}}}async send(e,t){let r=this.streaming,s=r?e.trimStart().startsWith("/")?{type:"prompt",message:e,streamingBehavior:t?.followUp?"followUp":"steer"}:{type:t?.followUp?"follow_up":"steer",message:e}:{type:"prompt",message:e},i;try{i=await this.#l(s)}catch(o){return{ok:!1,error:Y(o)}}return i.success&&!r&&(this.#n=Date.now()+XT),i.success&&!r&&!e.trimStart().startsWith("/")&&(this.#h=e),i.success?{ok:!0}:{ok:!1,error:i.error??"pi rejected the message"}}async stop(){if(this.#e)try{await this.#l({type:"abort"})}catch{}}clearCompletedDraft(){this.#r||(this.#c=null)}clearEcho(){this.#h=null}async dispose(){let e=this.#e;if(e){if(this.#e=void 0,this.#t){try{e.stdin?.write(JSON.stringify({type:"abort"})+`
|
|
1604
|
+
`)}catch{}await Promise.race([this.#v,hy(py)])}try{e.stdin?.end()}catch{}if(await Promise.race([this.#v,hy(py)]),e.exitCode===null&&!e.killed)if(process.platform==="win32"&&e.pid)try{fy("taskkill",["/pid",String(e.pid),"/T","/F"],{stdio:"ignore"})}catch{}else try{e.kill("SIGKILL")}catch{}Fo.delete(e),this.#i=[],this.#E("pi was shut down")}}#k(e){try{this.#e?.stdin?.write(JSON.stringify(e)+`
|
|
1605
|
+
`)}catch{}}#p(e,t){let r=e.length>200?e.slice(0,200)+"\u2026":e;r&&(this.#o={text:r,kind:t,until:Date.now()+(t==="info"?eO:tO)})}#S(){this.#l({type:"get_session_stats"}).then(e=>{if(!e.success||!e.data)return;let t=e.data;this.#w={cost:typeof t.cost=="number"?t.cost:0,contextTokens:typeof t.contextUsage?.tokens=="number"?t.contextUsage.tokens:null,contextPercent:typeof t.contextUsage?.percent=="number"?t.contextUsage.percent:null}}).catch(()=>{})}#l(e){let t=this.#e;if(!t?.stdin?.writable)return Promise.reject(new Error(this.#f??"pi is not running"));let r=`tb-${this.#A++}`;return new Promise((s,i)=>{let o=setTimeout(()=>{this.#a.delete(r),i(new Error("pi did not respond (30s)"))},GT);o.unref?.(),this.#a.set(r,{resolve:s,timer:o});try{t.stdin.write(JSON.stringify({id:r,...e})+`
|
|
1606
1606
|
`)}catch(a){clearTimeout(o),this.#a.delete(r),i(new Error(Y(a)))}})}#T(e){let t;try{t=JSON.parse(e)}catch{return}switch(t.type){case"response":{let r=t,s=r.id?this.#a.get(r.id):void 0;s&&(this.#a.delete(r.id),clearTimeout(s.timer),s.resolve(r));return}case"agent_start":this.#t=!0,this.#n=0;return;case"agent_end":this.#t=!1,this.#n=0,this.#r=!1,this.#s=null,this.#m=null,this.#S();return;case"message_start":{t.message?.role==="assistant"&&(this.#r=!0,this.#c={text:"",thinking:""});return}case"message_update":{if(!this.#r)return;let r=t.message,s=Array.isArray(r?.content)?r.content:[],i=s[s.length-1];this.#c={text:s.filter(o=>o?.type==="text").map(o=>o.text??"").join(""),thinking:s.filter(o=>o?.type==="thinking").map(o=>o.thinking??"").join(`
|
|
1607
|
-
`),tool:i?.type==="toolCall"?i.name:void 0};return}case"message_end":this.#r=!1;return;case"auto_retry_start":this.#s={text:`retrying after a transient error (attempt ${Number(t.attempt)||1}/${Number(t.maxAttempts)||"?"})\u2026`,kind:"warning"};return;case"auto_retry_end":this.#s=null,t.success===!1&&this.#p(`retries exhausted: ${String(t.finalError??"unknown error")}`,"error");return;case"compaction_start":this.#s={text:"compacting context\u2026",kind:"info"};return;case"compaction_end":{this.#s=null;let r=t.result;typeof t.errorMessage=="string"&&t.errorMessage?this.#p(`compaction failed: ${t.errorMessage}`,"error"):r?.tokensBefore&&this.#p(`compacted: ~${Math.round(r.tokensBefore/1e3)}k \u2192 ~${Math.round((r.estimatedTokensAfter??0)/1e3)}k tokens`,"info"),this.#S();return}case"queue_update":{let r=Array.isArray(t.steering)?t.steering.map(String):[],s=Array.isArray(t.followUp)?t.followUp.map(String):[];this.#m=r.length||s.length?{steering:r,followUp:s}:null;return}case"extension_ui_request":{let r=String(t.method??"");if(r==="select"||r==="confirm"||r==="input"||r==="editor"){let s=typeof t.timeout=="number"&&t.timeout>0?t.timeout:void 0;this.#i.push({req:{id:String(t.id??""),method:r,title:typeof t.title=="string"?t.title:void 0,message:typeof t.message=="string"?t.message:void 0,options:Array.isArray(t.options)?t.options.map(String):void 0,placeholder:typeof t.placeholder=="string"?t.placeholder:void 0,prefill:typeof t.prefill=="string"?t.prefill:void 0},until:Date.now()+(s??
|
|
1608
|
-
`).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function
|
|
1609
|
-
`),l=i.filter(f=>f.type==="toolCall").map(f=>({id:f.id??"",name:f.name??"",input:f.arguments??{}}));if(o||a||l.length){let f=Date.parse(e.timestamp??""),p=!isNaN(f)&&f>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:p})}let c=s.usage,d=c?(c.input??0)+(c.output??0)+(c.cacheRead??0)+(c.cacheWrite??0):0,u=c&&d>0&&s.stopReason!=="aborted"&&s.stopReason!=="error"?{in:c.input??0,out:c.output??0,cached:c.cacheRead??0,cacheCreate:c.cacheWrite??0}:void 0;return{events:r,usage:u,model:s.model,cost:c?.cost?.total}}return{events:r}}chainWorking(e){let t;for(let a of e)
|
|
1607
|
+
`),tool:i?.type==="toolCall"?i.name:void 0};return}case"message_end":this.#r=!1;return;case"auto_retry_start":this.#s={text:`retrying after a transient error (attempt ${Number(t.attempt)||1}/${Number(t.maxAttempts)||"?"})\u2026`,kind:"warning"};return;case"auto_retry_end":this.#s=null,t.success===!1&&this.#p(`retries exhausted: ${String(t.finalError??"unknown error")}`,"error");return;case"compaction_start":this.#s={text:"compacting context\u2026",kind:"info"};return;case"compaction_end":{this.#s=null;let r=t.result;typeof t.errorMessage=="string"&&t.errorMessage?this.#p(`compaction failed: ${t.errorMessage}`,"error"):r?.tokensBefore&&this.#p(`compacted: ~${Math.round(r.tokensBefore/1e3)}k \u2192 ~${Math.round((r.estimatedTokensAfter??0)/1e3)}k tokens`,"info"),this.#S();return}case"queue_update":{let r=Array.isArray(t.steering)?t.steering.map(String):[],s=Array.isArray(t.followUp)?t.followUp.map(String):[];this.#m=r.length||s.length?{steering:r,followUp:s}:null;return}case"extension_ui_request":{let r=String(t.method??"");if(r==="select"||r==="confirm"||r==="input"||r==="editor"){let s=typeof t.timeout=="number"&&t.timeout>0?t.timeout:void 0;this.#i.push({req:{id:String(t.id??""),method:r,title:typeof t.title=="string"?t.title:void 0,message:typeof t.message=="string"?t.message:void 0,options:Array.isArray(t.options)?t.options.map(String):void 0,placeholder:typeof t.placeholder=="string"?t.placeholder:void 0,prefill:typeof t.prefill=="string"?t.prefill:void 0},until:Date.now()+(s??ZT),ownTimeout:s!==void 0})}else if(r==="notify"){let s=t.notifyType==="warning"?"warning":t.notifyType==="error"?"error":"info";this.#p(String(t.message??""),s),console.log(`[composer] pi extension: ${String(t.message??"")}`)}else if(r==="setStatus"){let s=String(t.statusKey??"");typeof t.statusText=="string"&&t.statusText?this.#u.set(s,t.statusText):this.#u.delete(s)}return}default:return}}#x(e){this.#f=e,this.#t=!1,this.#n=0,this.#r=!1,this.#c=null,this.#h=null,this.#s=null,this.#o=null,this.#u.clear(),this.#i=[],this.#m=null,this.#w=null,this.#g=null,this.#e=void 0,this.#E(e)}#E(e){for(let[,t]of this.#a)clearTimeout(t.timer),t.resolve({type:"response",success:!1,error:e});this.#a.clear()}},hy=n=>new Promise(e=>{setTimeout(e,n).unref?.()})});import{existsSync as gy,readFileSync as sO,realpathSync as iO}from"fs";import{join as on,dirname as vy,resolve as oO}from"path";import{homedir as yy}from"os";function lO(n,e){let t=on(n,".pi");if(aO.some(s=>gy(on(t,s))))return!0;let r=on(e,".agents","skills");for(let s=n;;){let i=on(s,".agents","skills");if(i!==r&&gy(i))return!0;let o=vy(s);if(o===s)return!1;s=o}}function cO(n,e){for(let t=e;;){if(n[t]===!0||n[t]===!1)return!0;let r=vy(t);if(r===t)return!1;t=r}}function Sy(n,e){try{let t=e?.agentDir??on(yy(),".pi","agent"),r=by(e?.home??process.env.HOME??yy()),s=by(oO(n));if(!lO(s,r))return null;let i=wy(on(t,"settings.json")).defaultProjectTrust;return i==="always"||i==="never"||cO(wy(on(t,"trust.json")),s)?null:"pi has no trust decision for this project \u2014 running untrusted; run `pi` once in a terminal to grant it"}catch{return null}}var aO,by,wy,ky=v(()=>{"use strict";aO=["settings.json","extensions","skills","prompts","themes","SYSTEM.md","APPEND_SYSTEM.md"],by=n=>{try{return iO(n)}catch{return n}},wy=n=>{try{return JSON.parse(sO(n,"utf8"))}catch{return{}}}});import{statSync as uO,openSync as dO,readSync as fO,closeSync as pO,existsSync as Ey}from"fs";import{join as qo}from"path";import{homedir as ju}from"os";import{execFile as hO}from"child_process";async function gO(n){let e=qo(ju(),".pi","agent","bin",process.platform==="win32"?"fd.exe":"fd");for(let t of["fd","fdfind",...Ey(e)?[e]:[]]){let r=await new Promise(s=>{hO(t,["--base-directory",n,"--type","f","--follow","--hidden","--exclude",".git"],{maxBuffer:67108864},(i,o)=>s(i?null:o))});if(r!==null)return r.split(`
|
|
1608
|
+
`).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function yO(n){return`--${n.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function xy(n){return n.type==="message"?bO(n.message?.role):n.type==="custom_message"?n.display!==!1:!1}var mO,bO,Xn,Fu=v(()=>{"use strict";Fr();Ac();Di();dy();my();ky();mO=qo(ju(),".pi","agent","sessions");bO=n=>n==="user"||n==="assistant"||n==="toolResult"||n==="bashExecution";Xn=class extends St{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}detectsInstalled(){return Ey(qo(ju(),".pi","agent"))}ensureHarnessSupport(){uy()}createDriver(e,t){let r=new Uo(e,t),s=Sy(e);return s&&r.notice(s,"warning"),r}walkFiles(e){return gO(e)}sessionsDir(e){return qo(mO,yO(e))}listSessionFiles(e){return Bi(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return xy(e)}isRecoveryNoise(e){return!1}apply(e,t){let r=[];if(e.type==="custom_message"){if(e.display===!1)return{events:r};let i=this.contentText(e.content).trim();return i&&r.push({type:"user",text:i}),{events:r}}if(e.type!=="message"||!e.message)return{events:r};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&r.push({type:"user",text:i}),{events:r}}if(s.role==="toolResult"){let i=this.contentText(s.content);return r.push({type:"tool_result",id:s.toolCallId??"",content:i,isError:!!s.isError,digest:$e(i)}),{events:r}}if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&r.push({type:"user",text:`$ ${s.command}`}),{events:r};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(f=>f.type==="text").map(f=>f.text??"").join(""),a=i.filter(f=>f.type==="thinking").map(f=>f.thinking??"").join(`
|
|
1609
|
+
`),l=i.filter(f=>f.type==="toolCall").map(f=>({id:f.id??"",name:f.name??"",input:f.arguments??{}}));if(o||a||l.length){let f=Date.parse(e.timestamp??""),p=!isNaN(f)&&f>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:p})}let c=s.usage,d=c?(c.input??0)+(c.output??0)+(c.cacheRead??0)+(c.cacheWrite??0):0,u=c&&d>0&&s.stopReason!=="aborted"&&s.stopReason!=="error"?{in:c.input??0,out:c.output??0,cached:c.cacheRead??0,cacheCreate:c.cacheWrite??0}:void 0;return{events:r,usage:u,model:s.model,cost:c?.cost?.total}}return{events:r}}chainWorking(e){let t;for(let a of e)xy(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let r=t.message.role;if(r==="user"||r==="toolResult"||r==="bashExecution")return!0;if(r!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=dO(e,"r")}catch{return""}try{let s=65536;try{s=uO(e).size}catch{}let i=(u,f)=>{let p=Buffer.alloc(f),m=fO(t,p,0,f,u);return p.subarray(0,m).toString("utf8")},o=i(0,Math.min(65536,s)),a=s>65536?i(s-65536,65536):"",l=u=>{let f="";for(let p of u.split(`
|
|
1610
1610
|
`))if(p.includes('"session_info"'))try{let m=JSON.parse(p);m?.type==="session_info"&&typeof m.name=="string"&&m.name&&(f=m.name)}catch{}return f},c="";for(let u of o.split(`
|
|
1611
|
-
`))if(!(c||!u.includes('"type"')))try{let f=JSON.parse(u);f?.type==="message"&&f.message?.role==="user"&&(c=this.contentText(f.message.content).replace(/\s+/g," ").trim())}catch{}let d=l(a)||l(o)||c;return d?d.slice(0,200):""}finally{
|
|
1612
|
-
`):""}}});var
|
|
1613
|
-
|
|
1614
|
-
${n.slice(0,
|
|
1615
|
-
`))>=0;){let W=g.partial.slice(0,I);if(g.partial=g.partial.slice(I+1),!W.trim())continue;let be=n.parseEntry(W);if(!be)continue;let ae=n.idOf(be);ae&&(g.entries.set(ae,be),!n.isSidechain(be)&&n.isLeafType(be)&&(T=ae))}if(!T)return;let B=[],F=g.entries.get(T),V=!1;for(;F;){if(B.push(F),n.idOf(F)===g.chainLastId){V=!0;break}let W=n.parentOf(F);F=W?g.entries.get(W):void 0}if(V)for(let W=B.length-2;W>=0;W--)N(B[W]);else{g.chainLastId!==void 0&&(g.buffer.push({type:"cleared"}),g.buffer.push({type:"session",sessionId:g.sessionId}),g.latest={in:0,out:0,cached:0,cacheCreate:0});let W=new Set(B.map(ae=>n.idOf(ae))),be=q(g.entries);for(let ae=B.length-1;ae>=0;ae--)N(B[ae]),y(n.idOf(B[ae]),be,W)}g.chainLastId=T}function q(g){let k=new Map;for(let w of g.values()){let T=n.parentOf(w);if(!T)continue;let I=k.get(T);I?I.push(w):k.set(T,[w])}return k}function y(g,k,w){if(!g)return;let T=k.get(g);if(!T)return;let I=T.filter(W=>!n.isSidechain(W));if(I.length<2)return;let B=I.filter(W=>!w.has(n.idOf(W)));if(!B.length)return;let F=[],V=0;for(let W of B){let be=E(W,k);F.push(...be.events),V+=be.count}V>0&&e.buffer.push({type:"fork",atId:g,count:V,events:F})}function E(g,k){let w=[],T=[g];for(;T.length;){let F=T.pop();if(n.isSidechain(F))continue;w.push(F);let V=k.get(n.idOf(F)??"");if(V)for(let W of V)T.push(W)}w.sort((F,V)=>(Date.parse(n.timestampOf(F)??"")||0)-(Date.parse(n.timestampOf(V)??"")||0));let I=[];for(let F of w)n.isRecoveryNoise(F)||I.push(...n.apply(F,e.sessionStartMs).events);return{count:I.reduce((F,V)=>F+(V.type==="user"||V.type==="assistant"?1:0),0),events:I}}function N(g){try{let{events:k,usage:w,model:T,cost:I}=n.apply(g,e.sessionStartMs);for(let B of k)e.buffer.push(B);k.some(B=>B.type==="assistant")&&i()?.d.clearCompletedDraft(),k.some(B=>B.type==="user")&&i()?.d.clearEcho(),T&&(e.latestModel=T),w&&(e.latest=w),(w||I)&&e.buffer.push({type:"usage",...e.latest,cost:I})}catch(k){console.error("[mirror] skipped malformed entry:",Y(k))}}async function L(){return{cwd:e.cwd,pid:process.pid,composer:!!n.createDriver,elsewhere:await M()}}async function M(){if(n.listSessionFiles(e.cwd).length)return;let g=await an();if(!g)return;let k=
|
|
1616
|
-
`).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await
|
|
1617
|
-
`)){if(!B.trim())continue;let F=n.parseEntry(B);if(!F)continue;let V=n.searchText(F);V&&T.push({text:V,lower:V.toLowerCase()})}return
|
|
1618
|
-
`)){if(!F.trim())continue;let V=n.parseEntry(F);if(V)for(let W of n.apply(V,e.sessionStartMs).events)W.type==="assistant"&&W.text.trim()&&(I=W.text.trim())}let B=I.length>
|
|
1619
|
-
`)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=
|
|
1620
|
-
${n}`;return Lt?.key===e&&Date.now()-Lt.fetchedAt<=
|
|
1621
|
-
`)}function
|
|
1611
|
+
`))if(!(c||!u.includes('"type"')))try{let f=JSON.parse(u);f?.type==="message"&&f.message?.role==="user"&&(c=this.contentText(f.message.content).replace(/\s+/g," ").trim())}catch{}let d=l(a)||l(o)||c;return d?d.slice(0,200):""}finally{pO(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let r=e.message?.content,s="";return typeof r=="string"?s=r:Array.isArray(r)&&(s=r.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?we(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?we(t.text):t?.type==="image"&&t.data?Mi(t.data,t.mimeType):"").filter(Boolean).join(`
|
|
1612
|
+
`):""}}});var Jo,Ay=v(()=>{"use strict";Jo=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});import{execFile as wO}from"child_process";import{promisify as vO}from"util";import{readFile as SO}from"fs/promises";import{resolve as Ty,sep as kO}from"path";async function Je(n,e){let{stdout:t}=await xO("git",n,{cwd:e,maxBuffer:67108864});return t}async function an(){if(Ko)return Ko;try{Ko=(await Je(["rev-parse","--show-toplevel"],z)).trim()}catch{}return Ko}function EO(n,e){let t=e===" "?n:e;return t==="?"?"U":t}async function qu(){let n=await an();if(!n)return{repo:!1,root:"",files:[]};try{let e=await Je(["status","--porcelain","-z"],n),t=[],r=e.split("\0");for(let s=0;s<r.length;s++){let i=r[s];i.length<4||((i[0]==="R"||i[0]==="C")&&s++,t.push({path:i.slice(3),status:EO(i[0],i[1])}))}try{let s=await Je(["diff","--numstat","-z","HEAD"],n),i=new Map,o=s.split("\0");for(let a=0;a<o.length;a++){let l=/^(\d+|-)\t(\d+|-)\t(.*)$/.exec(o[a]);if(!l)continue;let c=l[3]||o[a+=2];c&&i.set(c,{add:+l[1]||0,del:+l[2]||0,binary:l[1]==="-"})}for(let a of t){let l=i.get(a.path);l&&(l.binary?a.binary=!0:(a.add=l.add,a.del=l.del))}}catch{}return t.sort((s,i)=>s.path.localeCompare(i.path)),{repo:!0,root:n,files:t}}catch(e){return{repo:!1,root:"",files:[],error:Y(e)}}}async function Ju(n){let e=await an();if(!e)return{ok:!1,error:"not a git repository"};try{if((await Je(["status","--porcelain","-z","--",n],e)).startsWith("??")){let s=Ty(e,n);if(!s.startsWith(Ty(e)+kO))return{ok:!1,error:"outside repository"};let i=await SO(s);return i.includes(0)?Uu("Binary file (not shown)",!1):Uu(i.toString("utf8"),!0)}let r;try{r=await Je(["diff","--no-color","--unified=999999","HEAD","--",n],e)}catch{r=await Je(["diff","--no-color","--unified=999999","--",n],e)}return Uu(r,!1)}catch(t){return{ok:!1,error:Y(t)}}}var xO,Oy,Ko,Uu,ms=v(()=>{"use strict";$t();xO=vO(wO),Oy=2e6;Uu=(n,e)=>({ok:!0,text:n.slice(0,Oy),untracked:e,truncated:n.length>Oy})});function Ho(n,e){let t=0,r="";for(let s of n){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!r)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);r=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:r}}var Ku=v(()=>{"use strict"});var Wo,Yo,Py=v(()=>{"use strict";Wo=".typebulb/paste",Yo={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp"}});import{existsSync as AO,mkdirSync as TO,writeFileSync as OO,readFileSync as PO}from"fs";import{join as Vo}from"path";function Cy(){let n=new Date,e=t=>String(t).padStart(2,"0");return`${n.getFullYear()}${e(n.getMonth()+1)}${e(n.getDate())}-${e(n.getHours())}${e(n.getMinutes())}${e(n.getSeconds())}`}function NO(n){return n.trim().toLowerCase().replace(/\.[a-z0-9]{1,4}$/,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)}async function IO(n){let e=AbortSignal.timeout(CO);for(let[t,r]of _O){let s=ot(t,r);if(typeof s!="string"){try{let i=await _t(s,{messages:[{role:"user",content:`Reply with ONLY a short kebab-case filename (2-5 words, lowercase, no extension) describing this text:
|
|
1613
|
+
|
|
1614
|
+
${n.slice(0,RO)}`}],effort:0,webSearch:!1,signal:e});if(!i.ok)continue;let o=NO(await Zt(i,s.protocol));if(o)return o}catch{}if(e.aborted)return}}}async function Ry(n,e){if(!e||e.kind!=="image"&&e.kind!=="text")return{ok:!1,error:"bad paste kind"};if(typeof e.data!="string"||!e.data)return{ok:!1,error:"empty paste"};let t=Vo(n,Wo);try{TO(t,{recursive:!0})}catch(a){return{ok:!1,error:Y(a)}}let r,s,i;if(e.kind==="image"){if(r=`img-${Cy()}`,s=Object.keys(Yo).find(a=>Yo[a]===e.mime)??"png",i=Buffer.from(e.data,"base64"),!i.length)return{ok:!1,error:"empty image data"}}else r=await IO(e.data)??`paste-${Cy()}`,s="md",i=e.data;let o=`${r}.${s}`;for(let a=2;AO(Vo(t,o));a++)o=`${r}-${a}.${s}`;try{OO(Vo(t,o),i)}catch(a){return{ok:!1,error:Y(a)}}return{ok:!0,path:`${Wo}/${o}`}}function _y(n,e){if(!/^[\w-]+(\.[\w-]+)*$/.test(e))return{ok:!1,error:"bad name"};let t=e.slice(e.lastIndexOf(".")+1).toLowerCase(),r=Yo[t];if(!r)return{ok:!1,error:"not an image"};try{return{ok:!0,mime:r,base64:PO(Vo(n,Wo,e)).toString("base64")}}catch{return{ok:!1,error:"not found"}}}var CO,RO,_O,Ny=v(()=>{"use strict";tn();zn();$t();Py();CO=4e3,RO=4e3,_O=[["openrouter","google/gemini-3.1-flash-lite-preview"],["gemini","gemini-3.1-flash-lite"]]});function $O(n,...e){return n.slice().sort((t,r)=>{for(let{key:s,desc:i}of e){let o=s(t),a=s(r);if(o!==a)return o==null?i?-1:1:a==null||o<a?i?1:-1:i?-1:1}return 0})}var Iy,$y=v(()=>{"use strict";Iy=(n,e)=>$O(n,{key:e,desc:!0})});import{existsSync as Ly,openSync as LO,readSync as MO,closeSync as BO,statSync as Qn,readdirSync as My,watchFile as DO,unwatchFile as By,mkdirSync as jO,writeFileSync as FO,readFileSync as zo,unlinkSync as UO,rmSync as qO}from"fs";import{stat as JO}from"fs/promises";import{dirname as KO,join as ln,resolve as Dy}from"path";function VO(n){if(!Number.isInteger(n))return!0;try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}function Zn(n){let e={cwd:z,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=new Set,r,s=0;function i(){if(e.file){for(let g of t)if(g.file===e.file)return g;return}return r}function o(g){let k={d:n.createDriver(e.cwd,g),file:g,id:`new:${++s}`,startedAt:Date.now()};return t.add(k),e.file||(r=k),k}function a(){let g=[...t].filter(w=>w.file);if(!g.length)return[];let k=new Map(n.listSessionFiles(e.cwd).map(w=>[w.file,w.sessionId]));return g.map(w=>{let T=k.get(w.file);return{rec:w,sessionId:T??w.id,pending:T===void 0}})}let l=()=>a().filter(g=>g.pending&&g.rec.prompt!==void 0);async function c(g){t.delete(g),r===g&&(r=void 0);try{await g.d.dispose()}catch(k){console.error("[composer] dispose:",Y(k))}}function d(){let g=i(),k=new Set(l().map(w=>w.rec));for(let w of[...t])w!==g&&(k.has(w)||w.d.streaming||w.d.queue||w.d.error||c(w))}function u(){for(let g of t)g.d.sessionFile&&g.file!==g.d.sessionFile&&(g.file=g.d.sessionFile);if(r&&!e.file&&r.file){let g=n.listSessionFiles(e.cwd).find(k=>k.file===r.file);g&&x(g)}r&&!e.file&&r.prompt!==void 0&&e.sessionId!==r.id&&($(void 0,r.id),e.everAttached=!0)}let f=g=>ln(g,WO),p=(g,k)=>ln(f(g),`${k}.lock`);function m(g,k){try{let w=p(g,k);if(Date.now()-Qn(w).mtimeMs>=jy)return!1;try{let T=parseInt(zo(w,"utf8").trim(),10);if(T===process.pid||!VO(T))return!1}catch{}return!0}catch{return!1}}function h(g,k){if(k)try{jO(f(g),{recursive:!0}),FO(p(g,k),String(process.pid))}catch(w){console.error("[lock] claim failed:",Y(w))}}function b(g){try{qO(ln(g,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function A(g){let k=f(g);if(!Ly(k))return;let w;try{w=My(k)}catch{return}let T=Date.now();for(let I of w){if(!I.endsWith(".lock"))continue;let B=ln(k,I);try{let F=Qn(B);T-F.mtimeMs>YO&&UO(B)}catch{}}}function S(g){try{return Qn(g),!1}catch(k){return k.code==="ENOENT"}}function P(){let g=e;if(g.file&&!S(g.file)){h(g.cwd,g.sessionId);return}let k=_(g);k&&x(k)}function _(g){if(!g.everAttached)return C(g.cwd)??R(g.cwd,()=>!0)}function C(g){let k=f(g);if(!Ly(k))return;let w;try{w=My(k)}catch{return}let T;for(let B of w)if(B.endsWith(".lock"))try{let F=Qn(ln(k,B));if(Date.now()-F.mtimeMs>=jy||parseInt(zo(ln(k,B),"utf8").trim(),10)!==process.pid)continue;(!T||F.mtimeMs>T.mtime)&&(T={sessionId:B.slice(0,-5),mtime:F.mtimeMs})}catch{}if(!T)return;let I=n.listSessionFiles(g).find(B=>B.sessionId===T.sessionId);if(!(!I||S(I.file)))return I}function R(g,k){return n.listSessionFiles(g).sort((w,T)=>T.mtime-w.mtime).find(w=>!m(g,w.sessionId)&&k(w))}function $(g,k){let w=e;if(w.file)try{By(w.file)}catch{}w.file=g,w.sessionId=k,w.partial="",w.offset=0,w.latest={in:0,out:0,cached:0,cacheCreate:0},w.latestModel=null,w.entries=new Map,w.chainLastId=void 0,w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:k})}function x(g){let k=e;r=void 0,$(g.file,g.sessionId),k.everAttached=!0,h(k.cwd,g.sessionId),K();try{By(g.file)}catch{}DO(g.file,{interval:200},()=>K())}function D(){$(void 0,"")}function K(){let g=e;if(!g.file)return;let k;try{k=Qn(g.file).size}catch{return}if(k<=g.offset)return;let w;try{w=LO(g.file,"r")}catch{return}try{let W=k-g.offset,be=Buffer.alloc(W),ae=0;for(;ae<W;){let Fd=MO(w,be,ae,W-ae,g.offset+ae);if(!Fd)break;ae+=Fd}g.offset+=ae,g.partial+=be.subarray(0,ae).toString("utf8")}finally{BO(w)}let T,I;for(;(I=g.partial.indexOf(`
|
|
1615
|
+
`))>=0;){let W=g.partial.slice(0,I);if(g.partial=g.partial.slice(I+1),!W.trim())continue;let be=n.parseEntry(W);if(!be)continue;let ae=n.idOf(be);ae&&(g.entries.set(ae,be),!n.isSidechain(be)&&n.isLeafType(be)&&(T=ae))}if(!T)return;let B=[],F=g.entries.get(T),V=!1;for(;F;){if(B.push(F),n.idOf(F)===g.chainLastId){V=!0;break}let W=n.parentOf(F);F=W?g.entries.get(W):void 0}if(V)for(let W=B.length-2;W>=0;W--)N(B[W]);else{g.chainLastId!==void 0&&(g.buffer.push({type:"cleared"}),g.buffer.push({type:"session",sessionId:g.sessionId}),g.latest={in:0,out:0,cached:0,cacheCreate:0});let W=new Set(B.map(ae=>n.idOf(ae))),be=q(g.entries);for(let ae=B.length-1;ae>=0;ae--)N(B[ae]),y(n.idOf(B[ae]),be,W)}g.chainLastId=T}function q(g){let k=new Map;for(let w of g.values()){let T=n.parentOf(w);if(!T)continue;let I=k.get(T);I?I.push(w):k.set(T,[w])}return k}function y(g,k,w){if(!g)return;let T=k.get(g);if(!T)return;let I=T.filter(W=>!n.isSidechain(W));if(I.length<2)return;let B=I.filter(W=>!w.has(n.idOf(W)));if(!B.length)return;let F=[],V=0;for(let W of B){let be=E(W,k);F.push(...be.events),V+=be.count}V>0&&e.buffer.push({type:"fork",atId:g,count:V,events:F})}function E(g,k){let w=[],T=[g];for(;T.length;){let F=T.pop();if(n.isSidechain(F))continue;w.push(F);let V=k.get(n.idOf(F)??"");if(V)for(let W of V)T.push(W)}w.sort((F,V)=>(Date.parse(n.timestampOf(F)??"")||0)-(Date.parse(n.timestampOf(V)??"")||0));let I=[];for(let F of w)n.isRecoveryNoise(F)||I.push(...n.apply(F,e.sessionStartMs).events);return{count:I.reduce((F,V)=>F+(V.type==="user"||V.type==="assistant"?1:0),0),events:I}}function N(g){try{let{events:k,usage:w,model:T,cost:I}=n.apply(g,e.sessionStartMs);for(let B of k)e.buffer.push(B);k.some(B=>B.type==="assistant")&&i()?.d.clearCompletedDraft(),k.some(B=>B.type==="user")&&i()?.d.clearEcho(),T&&(e.latestModel=T),w&&(e.latest=w),(w||I)&&e.buffer.push({type:"usage",...e.latest,cost:I})}catch(k){console.error("[mirror] skipped malformed entry:",Y(k))}}async function L(){return{cwd:e.cwd,pid:process.pid,composer:!!n.createDriver,elsewhere:await M()}}async function M(){if(n.listSessionFiles(e.cwd).length)return;let g=await an();if(!g)return;let k=Dy(g).toLowerCase();for(let w=Dy(e.cwd);w.toLowerCase()!==k;){let T=KO(w);if(T===w)return;w=T;let I=n.listSessionFiles(w).length;if(I)return{dir:w,count:I}}}M().then(g=>{g&&console.log(`No sessions for ${e.cwd} \u2014 ${g.count} exist for ${g.dir}. Launched from a subfolder? Relaunch from the project root.`)}).catch(()=>{});let H=new Jo;async function G(g,k){H.accept(g,k)&&console.log(k)}function he(){let g=n.sessionAlive(e.sessionId,e.cwd);if(g!==void 0)return g;if(!e.file)return!1;try{return Date.now()-Qn(e.file).mtimeMs<1e4}catch{return!1}}function ee(){return n.chainWorking([...e.entries.values()])&&he()}function oe(){!n.createDriver||i()||e.latestModel||ee()||o(e.file)}async function ke(g){let k=e;P(),u(),oe(),d();let w=i();for(let B of t)B!==w&&B.d.dialog;let T=a().filter(B=>B.rec.d.streaming).map(B=>B.sessionId),I=n.createDriver?{streaming:!!w?.d.streaming,draft:w?.d.draft??null,echo:w?.d.echo??null,status:w?.d.status??null,dialog:w?.d.dialog??null,queue:w?.d.queue??null,stats:w?.d.stats??null,model:w?.d.model??null,error:w?.d.error}:void 0;return{events:k.buffer.slice(g),cursor:k.buffer.length,working:!!w?.d.streaming||ee(),latestModel:k.latestModel,composer:I,busy:T}}async function Re(){P(),u();let g=i();if(g?.d.error&&!g.d.streaming&&(await c(g),g=void 0),!g){if(ee())return{ok:!1,error:"the agent is mid-turn in a terminal \u2014 watch only"};g=o(e.file)}let k=g;return{ok:!0,d:k.d,markSent:w=>{k.prompt===void 0&&(k.prompt=w)}}}async function xa(g,k){if(!n.createDriver)return{ok:!1,error:"not supported"};let w=String(g??"").trim();if(!w)return{ok:!1,error:"empty message"};let T=await Re();if(!T.ok)return T;let I=await T.d.send(w,k);return I.ok&&T.markSent(w),I}async function Nw(g,k){let w=i();return w?w.d.respondUi(String(g??""),k??{}):{ok:!1,error:"no dialog pending"}}async function Iw(g,k){if(!n.createDriver)return{ok:!1,error:"not supported"};if(!g||typeof g.type!="string")return{ok:!1,error:"bad command"};if(k?.spawn){let T=await Re();return T.ok?T.d.rpc(g):T}let w=i();return!w||w.d.error?{ok:!1,error:"not running"}:w.d.rpc(g)}async function $w(){let g=i();if(g)try{await g.d.stop()}catch(k){console.error("[composer] stop:",Y(k))}return{ok:!0}}async function Lw(){return n.createDriver?(u(),!e.file&&r&&r.prompt===void 0&&!r.d.streaming&&!r.d.error?{ok:!0}:(r?.d.error&&await c(r),r=void 0,D(),o(void 0),d(),{ok:!0})):{ok:!1,error:"not supported"}}async function Mw(){if(!n.createDriver)return[];let g=await Je(["ls-files","--cached","--others","--exclude-standard"],e.cwd).catch(()=>null),k=g!==null?g.split(`
|
|
1616
|
+
`).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await JO(ln(e.cwd,T))).mtimeMs}}catch{return{f:T,m:0}}}))).sort((T,I)=>I.m-T.m).map(T=>T.f)}function Bw(){for(let g of[...t])c(g)}async function Dw(g){return n.createDriver?Ry(e.cwd,g):{ok:!1,error:"not supported"}}async function jw(g){return _y(e.cwd,String(g??""))}async function Fw(){let g=n.listSessionFiles(e.cwd).map(({sessionId:w,file:T,mtime:I})=>({sessionId:w,mtime:I,preview:n.readPreview(T)})),k=l().map(w=>({sessionId:w.sessionId,mtime:w.rec.startedAt,preview:w.rec.prompt??"",pending:!0}));return Iy([...g,...k],w=>w.mtime)}let Bd=new Map;function Uw(g,k){let w=Bd.get(g);if(w&&w.mtime===k)return w.turns;let T=[],I="";try{I=zo(g,"utf8")}catch{return[]}for(let B of I.split(`
|
|
1617
|
+
`)){if(!B.trim())continue;let F=n.parseEntry(B);if(!F)continue;let V=n.searchText(F);V&&T.push({text:V,lower:V.toLowerCase()})}return Bd.set(g,{mtime:k,turns:T}),T}async function qw(g){let k=g.toLowerCase(),w=[];for(let{sessionId:T,file:I,mtime:B}of n.listSessionFiles(e.cwd).sort((F,V)=>V.mtime-F.mtime)){let{hitCount:F,snippet:V}=Ho(Uw(I,B),k);if(F&&(w.push({sessionId:T,mtime:B,preview:n.readPreview(I),hitCount:F,snippet:V}),w.length>=zO))break}return w}let Dd=800,jd=new Map;function Jw(g,k){let w=jd.get(g);if(w&&w.mtime===k)return w.text;let T="";try{T=zo(g,"utf8")}catch{return""}let I="";for(let F of T.split(`
|
|
1618
|
+
`)){if(!F.trim())continue;let V=n.parseEntry(F);if(V)for(let W of n.apply(V,e.sessionStartMs).events)W.type==="assistant"&&W.text.trim()&&(I=W.text.trim())}let B=I.length>Dd?I.slice(0,Dd).trimEnd()+"\u2026":I;return jd.set(g,{mtime:k,text:B}),B}async function Kw(g){let k=n.listSessionFiles(e.cwd).find(w=>w.sessionId===g);return{text:k?Jw(k.file,k.mtime):""}}async function Hw(g){let k=e,w=n.listSessionFiles(k.cwd).find(T=>T.sessionId===g);if(!w){let T=l().find(I=>I.sessionId===g)?.rec;return T?((r!==T||k.sessionId!==T.id)&&(r=T,$(void 0,T.id),k.everAttached=!0,d()),{ok:!0}):{ok:!1,error:"session not found"}}return w.file===k.file?{ok:!0}:(x(w),u(),d(),{ok:!0})}return b(e.cwd),A(e.cwd),P(),{info:L,poll:ke,logInlineStatus:G,listSessions:Fw,searchSessions:qw,sessionPeek:Kw,attach:Hw,composerSend:xa,composerStop:$w,composerNew:Lw,composerFiles:Mw,composerUiRespond:Nw,composerRpc:Iw,composerPaste:Dw,composerPasteRead:jw,shutdownComposer:Bw}}var HO,WO,jy,YO,zO,Go=v(()=>{"use strict";$t();Ay();ms();Ku();Ny();$y();HO=".typebulb",WO=`${HO}/locks`,jy=5e3,YO=6e4;zO=50});import{existsSync as Vu,mkdirSync as GO,readFileSync as Fy,writeFileSync as XO}from"fs";import{join as cn,isAbsolute as QO}from"path";async function Gu(n,e){let t=QO(n)?n:cn(z,n);return Vu(t)?(Ou(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function Xu(n){let e=z,t=Tu(n),r=cn(e,"typebulbs");GO(r,{recursive:!0});let s=Uc(t),i=`${s}.bulb.md`;for(let c=2;Vu(cn(r,i))&&Fy(cn(r,i),"utf8")!==t;c++)i=`${s}-${c}.bulb.md`;let o=cn(r,i);Vu(o)||XO(o,t);let a=cn("typebulbs",i),l=await Wi(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:l.pid,url:l.url}}async function Qu(){return Q(z)}async function Zu(n){return await Wt(n),{ok:!0}}async function ed(){let n=await cs(z);return Oo(z).filter(e=>!e.serverOnly).map(e=>({...e,trusted:sn(e.path),batches:ku(e.path),lastRunAt:n(e.path)}))}async function td(n){let e=n.toLowerCase(),t=[];for(let r of Oo(z).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=Fy(r.path,"utf8")}catch{continue}let i=[];for(let l of s.split(`
|
|
1619
|
+
`)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Ho(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function nd(n,e,t){let r=z;e!=null&&Wn(n,e);let s=await Wi(n,{cwd:r,open:!1,trust:e,batch:t??void 0});return{ok:!0,file:s.file,pid:s.pid,url:s.url,trust:!!s.trust}}async function rd(n){return{cap:await Au(n)}}async function sd(n,e){return Wn(n,e),{ok:!0}}async function id(n,e){return We(n,e)}async function od(){return gs&&Date.now()-gs.fetchedAt<=eP?gs.samples:(Hu??=tP().finally(()=>{Hu=null}),Hu)}async function tP(){try{let n=await fetch(`${ZO}/api/scripts/u/samples?stubs`,{signal:AbortSignal.timeout(qy)});if(!n.ok)throw new Error(`HTTP ${n.status}`);let e=await n.json(),t=i=>i.order??Number.MAX_SAFE_INTEGER,r=i=>Date.parse(i.createdAt??"")||0,s=e.filter(i=>i.slug!=="welcome").sort((i,o)=>t(i)-t(o)||r(o)-r(i)).map(i=>({slug:i.slug,name:i.name,description:Ia(i.config)}));return gs={samples:s,fetchedAt:Date.now()},s}catch{return gs?.samples??[]}}async function ad(n){return zu.test(n)?Ky(Uy,"samples",n,!0):{ok:!1,error:"bad slug"}}async function cd(){let n=ld();if(!n)return{bulbs:[]};let e=`${Xo()}
|
|
1620
|
+
${n}`;return Lt?.key===e&&Date.now()-Lt.fetchedAt<=nP?{user:Lt.user,bulbs:Lt.bulbs}:(Wu??=rP(e,n).finally(()=>{Wu=null}),Wu)}async function Yu(n,e,t){let r=await fetch(`${n}${e}`,{headers:t,signal:AbortSignal.timeout(qy)});if(!r.ok)throw new Error(`HTTP ${r.status}`);if(!r.headers.get("content-type")?.includes("json"))throw new Error("not json");return r.json()}async function rP(n,e){let t={Authorization:`Bearer ${e}`};try{let r=Xo(),s;try{s=await Yu(r,"/api/me",t)}catch{let a=new URL(r);r=`${a.protocol}//api.${a.host}`,s=await Yu(r,"/api/me",t)}let o=(await Yu(r,"/api/scripts/list",t)).filter(a=>a.userSlug===s.slug&&!a.isTemplate).map(a=>({slug:a.slug,name:a.name,description:Ia(a.config)}));return Lt={key:n,user:s.slug,bulbs:o,fetchedAt:Date.now()},{user:s.slug,bulbs:o}}catch{return Lt?.key===n?{user:Lt.user,bulbs:Lt.bulbs}:{bulbs:[]}}}async function ud(n,e,t=!1){return!zu.test(e)||!zu.test(n)?{ok:!1,error:"bad slug"}:Ky(Xo(),n,e,t)}async function Ky(n,e,t,r){let s=$o(e,t);try{let i=await Bo({origin:n,userSlug:e,slug:t,dest:cn(z,s)},{force:r,token:ld(),timeoutMs:Jy});return i.kind==="conflict"?{ok:!1,conflict:!0,error:"local file differs from the site copy"}:i.kind==="asset-conflict"?{ok:!1,conflict:!0,error:`local assets differ from the site copies (${i.paths.join(", ")})`}:i.kind==="http-error"?{ok:!1,error:`HTTP ${i.status}`}:i.kind==="not-markdown"?{ok:!1,error:`not a bulb (${i.contentType??"no content-type"})`}:{ok:!0,file:s,upToDate:i.kind==="up-to-date"}}catch(i){return{ok:!1,error:i?.message??String(i)}}}async function dd(n,e=!1){let t=ld();if(!t)return{ok:!1,error:"no TYPEBULB_TOKEN in .env"};try{let r=Mo(n,z,Xo()),s=await jo(r,{token:t,force:e,timeoutMs:Jy});return s.kind==="conflict"?{ok:!1,conflict:!0,error:s.message}:s.kind==="asset-error"?{ok:!1,error:`assets sync failed: ${s.message}`}:s.kind==="http-error"?{ok:!1,error:`HTTP ${s.status}: ${s.message}`}:{ok:!0,created:s.created,serverStripped:s.serverStripped}}catch(r){return{ok:!1,error:r?.message??String(r)}}}var ZO,Uy,eP,qy,Jy,gs,Hu,zu,nP,Lt,Wu,Xo,ld,Qo=v(()=>{"use strict";zn();$t();Ku();ne();ZO="https://api.typebulb.com",Uy="https://typebulb.com",eP=3600*1e3,qy=5e3,Jy=15e3,gs=null,Hu=null;zu=/^[a-z0-9][a-z0-9-]*$/,nP=300*1e3,Lt=null,Wu=null,Xo=()=>vo("TYPEBULB_ORIGIN",z)||Uy,ld=()=>vo("TYPEBULB_TOKEN",z)});import{readFileSync as hd,writeFileSync as Wy,mkdirSync as sP,appendFileSync as Yy,rmSync as Hy}from"fs";import{join as ta,dirname as iP}from"path";import{createServer as oP}from"http";function Mt(n){try{return JSON.parse(hd(n,"utf8"))}catch{return null}}function ea(n,e){sP(iP(n),{recursive:!0}),Wy(n,JSON.stringify(e,null,2)+`
|
|
1621
|
+
`)}function zy(n,e,t){let r=ta(n,".gitignore"),s="";try{s=hd(r,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(l=>l.trim())),o=e.filter(l=>!i.has(l));if(!o.length)return;let a=s&&!s.endsWith(`
|
|
1622
1622
|
`)?`
|
|
1623
|
-
`:"";try{
|
|
1623
|
+
`:"";try{Yy(r,a+t+`
|
|
1624
1624
|
`+o.join(`
|
|
1625
1625
|
`)+`
|
|
1626
|
-
`)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function
|
|
1626
|
+
`)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function dP(n){let e=i=>{let o=i.exec(n);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),r=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||r>0?ws="live":s>uP&&(ws="uncached")}function Xy(n,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":n.headers["anthropic-version"]||"2023-06-01"},r=n.headers["anthropic-beta"];return typeof r=="string"&&(t["anthropic-beta"]=r),t}function fP(n){if(Array.isArray(n?.messages))for(let e of n.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(r=>r?.type!=="thinking"&&r?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Qy(n){let e;try{e=JSON.parse(n)}catch{return n}bs=typeof e?.model=="string"?e.model:null,Ge&&(e.model=Ge),dn&&(e.provider=Gy(dn));let t=/haiku/i.test(bs||"");return vs!=null&&!t&&(e.reasoning={effort:fd[vs]}),delete e.thinking,e.output_config&&delete e.output_config.effort,fP(e),JSON.stringify(e)}function pP(){let n="",e=0,t=new Map,r=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(r.has(a.content_block?.type))return t.set(a.index,null),null;let l=e++;return t.set(a.index,l),a.index=l,`event: ${a.type}
|
|
1627
1627
|
data: ${JSON.stringify(a)}
|
|
1628
1628
|
|
|
1629
1629
|
`}case"content_block_delta":case"content_block_stop":{let l=t.get(a.index);return l==null?null:(a.index=l,`event: ${a.type}
|
|
@@ -1631,11 +1631,11 @@ data: ${JSON.stringify(a)}
|
|
|
1631
1631
|
|
|
1632
1632
|
`)}default:return i}};return i=>{n+=i;let o="",a;for(;(a=n.indexOf(`
|
|
1633
1633
|
|
|
1634
|
-
`))!==-1;){let l=n.slice(0,a);if(n=n.slice(a+2),!l.trim())continue;let c=s(l);c!==null&&(o+=c)}return o}}function
|
|
1634
|
+
`))!==-1;){let l=n.slice(0,a);if(n=n.slice(a+2),!l.trim())continue;let c=s(l);c!==null&&(o+=c)}return o}}function hP(n){return new Promise(e=>{let t=[];n.on("data",r=>t.push(r)),n.on("end",()=>e(Buffer.concat(t).toString("utf8"))),n.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function ys(n,e,t,r){n.writableEnded||(n.writeHead(e,{"content-type":"application/json"}),n.end(JSON.stringify({type:"error",error:{type:t,message:r}})))}async function mP(n,e,t){if(!Ge){ys(e,400,"invalid_request_error",cP);return}let r=process.env.OPENROUTER_API_KEY;if(!r){ys(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(md,{method:"POST",headers:Xy(n,r),body:Qy(t),signal:s.signal})}catch(u){ys(e,502,"api_error",`proxy upstream failed: ${Y(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),l=i.body.getReader(),c=new TextDecoder,d=a?pP():null;try{for(;;){let{done:u,value:f}=await l.read();if(u)break;if(f)if(d){let p=c.decode(f,{stream:!0});dP(p);let m=d(p);m&&e.write(m)}else e.write(Buffer.from(f))}}catch{}finally{e.writableEnded||e.end()}}async function gP(n,e,t){let r=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!Ge||!r)return s();try{let i=await fetch(`${md}/count_tokens`,{method:"POST",headers:Xy(n,r),body:Qy(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function yP(n,e){let t=n.url||"/";if(n.method==="HEAD"){e.writeHead(200),e.end();return}if(n.method!=="POST"){ys(e,404,"not_found_error",t);return}hP(n).then(r=>{if(t.includes("count_tokens"))return gP(n,e,r);if(t.includes("/v1/messages"))return mP(n,e,r);ys(e,404,"not_found_error",t)})}function bP(){return er&&un?Promise.resolve(un):new Promise((n,e)=>{let t=oP(yP);t.on("error",e),t.listen(0,"127.0.0.1",()=>{er=t,un=t.address().port,console.log(`[switcher] wire proxy listening on ${Zo(un)}`),n(un)})})}function wP(){try{er?.close()}catch{}er=null,un=null}function vP(n,e){let t=na(n),r=Mt(t),s=r||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Zo(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=ra(n);if(!Mt(i)){let a={};for(let l of Vy)a[l]=l in s.env?s.env[l]:null;ea(i,{managedBy:"agent-switcher",fileExisted:r!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Zo(e),s.env.ANTHROPIC_AUTH_TOKEN=lP,ea(t,s),zy(n,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function SP(n,e,t){let r=ra(n),s=Mt(r)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},ea(r,s)}function Zy(n){let e=na(n),t=ra(n),r=Mt(t),s=Mt(e);if(s?.env){let i=r?.snapshot||{};for(let o of Vy){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,r?.fileExisted===!1&&Object.keys(s).length===0)try{Hy(e,{force:!0})}catch{}else ea(e,s)}try{Hy(t,{force:!0})}catch{}}async function kP(){let n=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await it()).filter(r=>r.provider==="openrouter"&&!gd(r.name)).map(r=>({id:r.name,label:r.friendlyName||r.name}))}catch(r){console.error("[switcher] model list failed",Y(r))}let t=e.length?void 0:yu()??void 0;return{hasKey:n,models:e,error:t}}async function xP(){if(er&&Ge)return{active:!0,managed:!0,model:Ge,port:un,provider:dn,routedModel:bs,caching:ws,reasoning:vs,externalBaseUrl:null};let n=Mt(na(z))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:vs,externalBaseUrl:n.ANTHROPIC_BASE_URL||null}}async function eb(n,e){let t=await bP();return Ge=n,dn=e,vP(z,t),t}async function EP({model:n}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!n)return{ok:!1,error:"no model given"};if(gd(n))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await eb(n,yd[n]??null),bs=null,ws="unknown",SP(z,n,dn)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${Y(e)}`}}return{ok:!0}}async function AP({level:n}){return n!=null&&(!Number.isInteger(n)||n<0||n>=fd.length)?{ok:!1,error:`reasoning level must be 0\u2013${fd.length-1} or null`}:(vs=n,{ok:!0,level:n})}async function TP(){return Zy(z),Ge=null,dn=null,bs=null,ws="unknown",{ok:!0}}async function OP({key:n}){let e=(n||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=z,r=ta(t,".env"),s="";try{s=hd(r,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))Wy(r,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
|
|
1635
1635
|
`)?`
|
|
1636
|
-
`:"";
|
|
1637
|
-
`)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,
|
|
1638
|
-
`)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var
|
|
1636
|
+
`:"";Yy(r,i+`OPENROUTER_API_KEY=${e}
|
|
1637
|
+
`)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,zy(t,[".env"],"# secrets"),{ok:!0}}function PP(){if(!(!er&&!Ge)){try{Zy(z)}catch{}wP()}}function CP(n,e){return tb.test(e)?"blocked by your OpenRouter data policy":n===401||n===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":n===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":n===429||/rate limit/i.test(e)?"rate limited":n===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function RP(n){if(tb.test(n))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function _P(n,e,t){if(!n)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let r=pd(e?.cache_read_input_tokens)||pd(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return r>0?{works:!0,read:r,note:`${r} tokens read from cache on the 2nd call`}:s?{works:!1,read:r,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:r,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function NP({model:n}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!n)return{ok:!1,error:"no model given"};if(gd(n))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),r=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:n,max_tokens:64,system:[{type:"text",text:r,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let l=new AbortController,c=setTimeout(()=>l.abort(),2e4);try{let d=JSON.stringify(a?{...i,provider:Gy(a)}:i),u=await fetch(md,{method:"POST",signal:l.signal,headers:s,body:d}),f=await u.json().catch(()=>({}));return{r:u,j:f}}finally{clearTimeout(c)}};try{let{r:a,j:l}=await o();if(!a.ok){let A=l?.error?.message||l?.message||JSON.stringify(l).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:CP(a.status,A),restriction:RP(A)}}let c=typeof l?.provider=="string"?l.provider:void 0,d=l?.content?.find?.(A=>A.type==="text")?.text??l?.content?.[0]?.text??"ok",u=pd(l?.usage?.cache_creation_input_tokens),{r:f,j:p}=await o(c),{works:m,read:h,note:b}=_P(f.ok,p?.usage,c);return m===!0&&c&&(yd[n]=c,Ge===n&&(dn=c)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:c,sample:String(d).trim().slice(0,60),cache:{works:m,created:u,read:h,note:b}}}catch(a){let l=Y(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(l)?"timed out (20s)":l}}}var aP,md,lP,cP,Vy,uP,fd,na,ra,Zo,gd,er,un,Ge,dn,bs,ws,vs,yd,pd,Gy,tb,nb=v(()=>{"use strict";zn();$t();aP="https://openrouter.ai/api",md=`${aP}/v1/messages`,lP="typebulb-proxy-managed",cP="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",Vy=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],uP=5e3,fd=["low","medium","high"],na=n=>ta(n,".claude","settings.local.json"),ra=n=>ta(n,".claude",".cc-switcher.json"),Zo=n=>`http://127.0.0.1:${n}`;gd=n=>/^anthropic\//i.test(n)||/claude/i.test(n),er=null,un=null,Ge=null,dn=null,bs=null,ws="unknown",vs=1,yd={},pd=n=>typeof n=="number"?n:0,Gy=n=>({order:[n],allow_fallbacks:!1});tb=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=Mt(ra(z)),t=e?.active?.model;if(!t)return;let s=(Mt(na(z))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await eb(t,e.active.provider??yd[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${Zo(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",Y(e))}})()});var sb={};Aa(sb,{attach:()=>FP,blockToMarkdown:()=>ji,breakout:()=>Xu,capText:()=>we,cleanUserText:()=>kt,clearSwitchModel:()=>TP,composerPasteRead:()=>UP,displayName:()=>IP,downloadSample:()=>ad,firstLineDigest:()=>$e,git:()=>Je,gitChangedFiles:()=>qu,gitDiff:()=>Ju,info:()=>$P,isHiddenTurn:()=>Ur,launchBulb:()=>nd,listBreakouts:()=>Qu,listBulbFiles:()=>ed,listMyBulbs:()=>cd,listSamples:()=>od,listSessions:()=>BP,listSwitchModels:()=>kP,logInlineStatus:()=>MP,openFile:()=>Gu,poll:()=>LP,predictTrustOf:()=>rd,probeModel:()=>NP,pullRemoteBulb:()=>ud,pushLocalBulb:()=>dd,readBulbLog:()=>id,repoRoot:()=>an,saveOpenRouterKey:()=>OP,searchBulbs:()=>td,searchSessions:()=>DP,sessionPeek:()=>jP,setBulbTrust:()=>sd,setReasoning:()=>AP,setSwitchModel:()=>EP,shutdownSwitcher:()=>PP,stopBreakout:()=>Zu,switchState:()=>xP,toolResultDigest:()=>Cc});var rb,IP,$P,LP,MP,BP,DP,jP,FP,UP,ib=v(()=>{"use strict";Go();Fi();Qo();ms();nb();Fi();Fr();rb=new On,IP=rb.displayName,{info:$P,poll:LP,logInlineStatus:MP,listSessions:BP,searchSessions:DP,sessionPeek:jP,attach:FP,composerPasteRead:UP}=Zn(rb)});var ab={};Aa(ab,{attach:()=>zP,breakout:()=>Xu,composerPasteRead:()=>GP,displayName:()=>qP,downloadSample:()=>ad,git:()=>Je,gitChangedFiles:()=>qu,gitDiff:()=>Ju,info:()=>JP,launchBulb:()=>nd,listBreakouts:()=>Qu,listBulbFiles:()=>ed,listMyBulbs:()=>cd,listSamples:()=>od,listSessions:()=>WP,logInlineStatus:()=>HP,openFile:()=>Gu,poll:()=>KP,predictTrustOf:()=>rd,pullRemoteBulb:()=>ud,pushLocalBulb:()=>dd,readBulbLog:()=>id,repoRoot:()=>an,searchBulbs:()=>td,searchSessions:()=>YP,sessionPeek:()=>VP,setBulbTrust:()=>sd,stopBreakout:()=>Zu});var ob,qP,JP,KP,HP,WP,YP,VP,zP,GP,lb=v(()=>{"use strict";Go();_c();Qo();ms();ob=new Pn,qP=ob.displayName,{info:JP,poll:KP,logInlineStatus:HP,listSessions:WP,searchSessions:YP,sessionPeek:VP,attach:zP,composerPasteRead:GP}=Zn(ob)});import{readFileSync as XP,writeFileSync as QP,mkdirSync as ZP}from"fs";import{homedir as eC}from"os";import*as sa from"path";async function db(){try{let n=await fetch(new URL("/api/tags",ub()).toString(),{signal:AbortSignal.timeout(tC)});return n.ok?((await n.json()).models??[]).map(t=>t.name).filter(t=>!!t):[]}catch{return[]}}function fb(n){let e;try{e=XP(n,"utf-8")}catch{return{json:void 0,unreadable:!1}}try{let t=JSON.parse(e);if(t&&typeof t=="object"&&!Array.isArray(t)){let r=t;return{json:r,unreadable:"providers"in r&&!bd(r)}}}catch{}return{json:void 0,unreadable:!0}}function bd(n){let e=n?.providers;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function nC(n){let e=bd(n);if(!e||!("ollama"in e))return null;let t=e.ollama?.models;return Array.isArray(t)?t.map(r=>r?.id).filter(r=>typeof r=="string"):[]}async function pb(){let{json:n,unreadable:e}=fb(cb());return e?{installed:[],configured:null}:{installed:await db(),configured:nC(n)}}async function hb(){let n=await db();return n.length?rC(cb(),n,ub()):{ok:!1,error:"Ollama is not running (or has no models installed)"}}function rC(n,e,t){let{json:r,unreadable:s}=fb(n);if(s)return{ok:!1,error:`could not parse ${n} \u2014 edit the ollama provider there yourself`};let i={...r??{},providers:{...bd(r)??{},ollama:{baseUrl:`${t}/v1`,api:"openai-completions",apiKey:"ollama",models:e.map(o=>({id:o}))}}};try{ZP(sa.dirname(n),{recursive:!0}),QP(n,JSON.stringify(i,null,2)+`
|
|
1638
|
+
`)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var tC,cb,ub,mb=v(()=>{"use strict";$t();zn();tC=1500,cb=()=>sa.join(eC(),".pi","agent","models.json"),ub=()=>Fn(process.env.OLLAMA_HOST??"http://localhost:11434")});var yb={};Aa(yb,{attach:()=>dC,breakout:()=>Xu,composerFiles:()=>mC,composerNew:()=>hC,composerPaste:()=>bC,composerPasteRead:()=>wC,composerRpc:()=>yC,composerSend:()=>fC,composerStop:()=>pC,composerUiRespond:()=>gC,displayName:()=>sC,downloadSample:()=>ad,git:()=>Je,gitChangedFiles:()=>qu,gitDiff:()=>Ju,info:()=>iC,launchBulb:()=>nd,listBreakouts:()=>Qu,listBulbFiles:()=>ed,listMyBulbs:()=>cd,listSamples:()=>od,listSessions:()=>lC,logInlineStatus:()=>aC,ollamaOffer:()=>pb,ollamaSync:()=>hb,openFile:()=>Gu,poll:()=>oC,predictTrustOf:()=>rd,pullRemoteBulb:()=>ud,pushLocalBulb:()=>dd,readBulbLog:()=>id,repoRoot:()=>an,searchBulbs:()=>td,searchSessions:()=>cC,sessionPeek:()=>uC,setBulbTrust:()=>sd,shutdownComposer:()=>vC,stopBreakout:()=>Zu});var gb,sC,iC,oC,aC,lC,cC,uC,dC,fC,pC,hC,mC,gC,yC,bC,wC,vC,bb=v(()=>{"use strict";Go();Fu();Qo();ms();mb();gb=new Xn,sC=gb.displayName,{info:iC,poll:oC,logInlineStatus:aC,listSessions:lC,searchSessions:cC,sessionPeek:uC,attach:dC,composerSend:fC,composerStop:pC,composerNew:hC,composerFiles:mC,composerUiRespond:gC,composerRpc:yC,composerPaste:bC,composerPasteRead:wC,shutdownComposer:vC}=Zn(gb)});import*as _w from"fs/promises";import*as ut from"path";_s();ne();function Ec(n){if(!_e.includes(n))throw new Error(`Unknown block kind '${n}' (one of: ${_e.join(", ")})`);return n}function xm(n){let e=[];for(let t of n){let r=t.indexOf("=");if(r<=0||r===t.length-1)throw new Error(`Expected <kind>=<source>, got '${t}' (e.g. data=results.json, or data=- for stdin)`);let s=Ec(t.slice(0,r));if(e.some(i=>i.kind===s))throw new Error(`Duplicate block kind '${s}' \u2014 each block can be written once per invocation`);e.push({kind:s,source:t.slice(r+1)})}if(e.filter(t=>t.source==="-").length>1)throw new Error("Only one <kind>=- can read stdin");return e}Fi();_c();Fu();var ia={claude:{adapter:()=>new On,server:()=>Promise.resolve().then(()=>(ib(),sb))},codex:{adapter:()=>new Pn,server:()=>Promise.resolve().then(()=>(lb(),ab))},pi:{adapter:()=>new Xn,server:()=>Promise.resolve().then(()=>(bb(),yb))}};function wb(n){return n in ia}function tr(){return Object.keys(ia)}function vb(){return Object.fromEntries(Object.entries(ia).map(([n,e])=>[n,e.adapter]))}function Sb(n){return ia[n].server()}var Ss=vb();function kb(){for(let n of Object.values(Ss))try{n().ensureHarnessSupport()}catch{}}function fn(){for(let n of Object.keys(Ss))try{if(Ss[n]().detectsSelf())return n}catch{}}function xb(n){let e=tr(),t=new Map(e.filter(i=>Ss[i]).map(i=>[i,Ss[i]()]));for(let[i,o]of t)if(o.detectsSelf())return{name:i};let r=[...t].filter(([,i])=>i.detectsInstalled()).map(([i])=>i);if(r.length===0)return{name:e[0]};if(r.length===1)return{name:r[0]};let s=i=>t.get(i).listSessionFiles(n).length>0;return{ambiguous:[...r].sort((i,o)=>Number(s(o))-Number(s(i)))}}var vd=5e3;function wd(n){try{return n()}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}}function Eb(n){let t={subcommand:"run",file:"",watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"||fn()!==void 0),server:!1,trust:!1,noTrust:!1,force:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},r=["call","check","predict","logs","wait","stop","trust","untrust","models","slug","send","pull","push","get","put"],s=n[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}n=n.slice(1)}else s&&r.includes(s)&&(t.subcommand=s,n=n.slice(1));let i=[];for(let o=0;o<n.length;o++){let a=n[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--force")t.force=!0;else if(a==="--mode"){let l=n[++o];(!l||l.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=l}else if(a==="--batch"){let l=n[++o];(!l||l.startsWith("-"))&&(console.error("Missing value for --batch (a batch name, e.g. --batch pilot)"),process.exit(1));let c=l.replace(/[\\/]+$/,"");(!c||/[\\/]/.test(c)||c==="."||c==="..")&&(console.error(`Invalid --batch value: ${l} (a single folder name \u2014 no path separators or dot segments)`),process.exit(1)),t.batch=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let l=n[++o];if(l==="latest")t.run="latest";else{let c=parseInt(l,10);(isNaN(c)||c<1)&&(console.error(`Invalid --run value: ${l} (a run number, or 'latest')`),process.exit(1)),t.run=c}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let l=n[++o];l===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=l}else if(a==="--timeout"){let l=parseInt(n[++o],10);(isNaN(l)||l<=0)&&(console.error(`Invalid --timeout value: ${n[o]} (seconds)`),process.exit(1)),t.timeoutSec=l}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let l=parseInt(a.slice(7),10);(isNaN(l)||l<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=l}else t.sendWaitMs=vd;else if(a==="--lines"||a==="-n"){let l=parseInt(n[++o],10);(isNaN(l)||l<0)&&(console.error(`Invalid --lines value: ${n[o]}`),process.exit(1)),t.lines=l}else if(a==="--port"||a==="-p"){let l=n[++o],c=parseInt(l,10);isNaN(c)&&(console.error(`Invalid port: ${l}`),process.exit(1)),t.port=c}else if(a==="--replace"||a.startsWith("--replace=")){let l=a.startsWith("--replace=")?a.slice(10):n[++o]??"",c=wd(()=>Wd(l));t.local&&(console.error(`--replace can only be used once (got '${t.local.name}' and '${c.name}')`),process.exit(1)),t.local=c}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let l=a.startsWith("--args=")?a.slice(7):n[++o];l===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=l}else if(!a.startsWith("-"))["call","send","get","put","slug"].includes(t.subcommand)?i.push(a):t.file=a;else{let l=t.subcommand==="call"?" (for a negative or dash-leading argument, use --args '<json-array>')":"";console.error(`Unknown option: ${a}${l}`),process.exit(1)}}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t.subcommand==="slug"&&(i.length||(console.error("Usage: typebulb slug <bulb name>"),process.exit(1)),t.slugName=i.join(" ")),t.subcommand==="get"&&(i.length!==2&&(console.error("Usage: typebulb get <file> <kind>"),process.exit(1)),t.file=i[0],t.blockKind=wd(()=>Ec(i[1]))),t.subcommand==="put"&&(i.length<2&&(console.error("Usage: typebulb put <file> <kind>=<source> [<kind>=<source> \u2026]"),process.exit(1)),t.file=i[0],t.blockPairs=wd(()=>xm(i.slice(1)))),t}function Ab(){console.log(`
|
|
1639
1639
|
typebulb - Local bulb runner for Typebulb
|
|
1640
1640
|
|
|
1641
1641
|
Usage:
|
|
@@ -1808,7 +1808,7 @@ Examples:
|
|
|
1808
1808
|
typebulb my-editor.bulb.md
|
|
1809
1809
|
typebulb --no-watch --port 8080 my-editor.bulb.md
|
|
1810
1810
|
typebulb .
|
|
1811
|
-
`)}Ve();Wr();
|
|
1811
|
+
`)}Ve();Wr();_s();ds();Ve();import*as Ce from"path";import{spawn as YC,execSync as VC}from"child_process";import{createRequire as zC}from"module";import{existsSync as GC}from"fs";import*as pe from"fs/promises";import*as de from"path";var Sd=[{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"}],kd=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function xd(n,e){if(!e)return n.filter(s=>!s.since);let t={"5.0":0,"5.5":1},r=t[e];return n.filter(s=>!s.since||t[s.since]<=r)}ne();var SC=`
|
|
1812
1812
|
/**
|
|
1813
1813
|
* Get raw data chunk from the Data tab.
|
|
1814
1814
|
* @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
|
|
@@ -1819,7 +1819,7 @@ Examples:
|
|
|
1819
1819
|
* @param index - Chunk index (0-based)
|
|
1820
1820
|
* @throws If chunk is not valid JSON/JSON-ish
|
|
1821
1821
|
*/
|
|
1822
|
-
json<T = unknown>(index: number): T;`,
|
|
1822
|
+
json<T = unknown>(index: number): T;`,kC=`
|
|
1823
1823
|
/**
|
|
1824
1824
|
* Get the insight data produced by the inference layer.
|
|
1825
1825
|
*
|
|
@@ -1828,7 +1828,7 @@ Examples:
|
|
|
1828
1828
|
*
|
|
1829
1829
|
* @returns The parsed insight JSON, or undefined if no insight is available
|
|
1830
1830
|
*/
|
|
1831
|
-
insight<T = unknown>(): T | undefined;`,
|
|
1831
|
+
insight<T = unknown>(): T | undefined;`,Tb=`options: {
|
|
1832
1832
|
messages: Array<{ role: "user" | "assistant"; content: string }>;
|
|
1833
1833
|
system?: string;
|
|
1834
1834
|
/** Reasoning effort: 0=minimal, 1=low, 2=med, 3=high, 4=xhigh. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking level, Anthropic adaptive thinking). 0 reaches the vendor's explicit off switch, and floors to a little thinking only on always-thinking models. 4 reaches the rung above high where the vendor has one (OpenAI/OpenRouter xhigh, Anthropic max) and clamps to high where it doesn't (Gemini) \u2014 never an error. Pin 1 (low) for most work; pick 0 deliberately, when you want the raw model or latency is the constraint. Omitting is NOT off \u2014 it buys the model's own default (medium on GPT-5.6), which reasons and bills invisibly. Ignored on the courtesy model, which runs at the level Typebulb sets. */
|
|
@@ -1839,15 +1839,15 @@ Examples:
|
|
|
1839
1839
|
webSearch?: boolean;
|
|
1840
1840
|
/** Abort the request. On abort the promise rejects / the stream ends. */
|
|
1841
1841
|
signal?: AbortSignal;
|
|
1842
|
-
}`,
|
|
1842
|
+
}`,Ob=`
|
|
1843
1843
|
/** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
|
|
1844
1844
|
type AiChunk =
|
|
1845
1845
|
| { kind: "text"; text: string }
|
|
1846
1846
|
| { kind: "reasoning"; text: string };
|
|
1847
|
-
`,
|
|
1847
|
+
`,Pb=`
|
|
1848
1848
|
/** What backs \`tb.ai\`: the user's own keys, the quota-limited courtesy model, or nothing. */
|
|
1849
1849
|
type AiAccess = "own" | "courtesy" | "none";
|
|
1850
|
-
`,
|
|
1850
|
+
`,Cb=`
|
|
1851
1851
|
/**
|
|
1852
1852
|
* General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
|
|
1853
1853
|
* returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
|
|
@@ -1856,7 +1856,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1856
1856
|
* @throws On rate limit, network error, or provider error
|
|
1857
1857
|
*/
|
|
1858
1858
|
ai: {
|
|
1859
|
-
(${
|
|
1859
|
+
(${Tb}): Promise<{ text: string }>;
|
|
1860
1860
|
/**
|
|
1861
1861
|
* Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
|
|
1862
1862
|
* as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
|
|
@@ -1870,8 +1870,8 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1870
1870
|
* if (c.kind === "text") answer += c.text;
|
|
1871
1871
|
* }
|
|
1872
1872
|
*/
|
|
1873
|
-
stream(${
|
|
1874
|
-
};`,
|
|
1873
|
+
stream(${Tb}): AsyncIterable<AiChunk>;
|
|
1874
|
+
};`,Rb=`
|
|
1875
1875
|
/**
|
|
1876
1876
|
* Returns AI models available to the current user.
|
|
1877
1877
|
* Models are filtered by the user's configured API keys.
|
|
@@ -1901,7 +1901,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1901
1901
|
* \`tb.mode\` or the length of \`tb.models()\` \u2014 which hosts offer a courtesy
|
|
1902
1902
|
* model is the host's business and changes without your bulb changing.
|
|
1903
1903
|
*/
|
|
1904
|
-
aiAccess(): Promise<AiAccess>;`,
|
|
1904
|
+
aiAccess(): Promise<AiAccess>;`,xC="\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;",_b=`
|
|
1905
1905
|
/**
|
|
1906
1906
|
* The mode this bulb is running in.
|
|
1907
1907
|
*
|
|
@@ -1911,7 +1911,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1911
1911
|
* - \`'inline'\` \u2014 Running inline in an agent's transcript, rendered by the mirror
|
|
1912
1912
|
* (sandboxed, client-only: AI, filesystem, and server RPC are unavailable)
|
|
1913
1913
|
*/
|
|
1914
|
-
mode: ${
|
|
1914
|
+
mode: ${vm};`,Nb=`
|
|
1915
1915
|
/**
|
|
1916
1916
|
* Local filesystem access (CLI only).
|
|
1917
1917
|
*
|
|
@@ -1928,7 +1928,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1928
1928
|
readBytes(path: string): Promise<Uint8Array>;
|
|
1929
1929
|
/** Write text or raw bytes to a file. Creates parent directories if needed. */
|
|
1930
1930
|
write(path: string, content: string | Uint8Array): Promise<boolean>;
|
|
1931
|
-
};`,
|
|
1931
|
+
};`,Ib="\n /**\n * The bulb's folder \u2014 absolute path to `<bulb-dir>/<filename-stem>/`\n * (or its `batches/<name>/` folder when the run is scoped with `--batch`).\n *\n * For interop only (handing a path to `server.ts` or a spawned tool):\n * `tb.fs` already resolves relative paths against it, so bulb code writing\n * its own files never needs it. CLI only \u2014 throws in ide/published/inline mode.\n */\n readonly dir: string;",EC=`
|
|
1932
1932
|
/**
|
|
1933
1933
|
* Async value inspector for tensor-like objects.
|
|
1934
1934
|
*
|
|
@@ -1995,47 +1995,47 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1995
1995
|
*
|
|
1996
1996
|
* @returns The full canonical URL
|
|
1997
1997
|
*/
|
|
1998
|
-
url(): Promise<string>;`,
|
|
1998
|
+
url(): Promise<string>;`,AC="\n /**\n * Subscribe to a value pushed from the terminal via `typebulb send <file> [message]`.\n *\n * The dual of `tb.log` (data out): a value sent *in* from the CLI, no `--trust` required.\n * Use it to start expensive work on demand instead of on load \u2014 e.g. `tb.onMessage(() => start())`\n * \u2014 so hot reloads don't re-trigger it while you edit, and an agent kicks off one run when ready.\n *\n * The message is the JSON-parsed value of what `send` was given (or the raw string if it isn't\n * JSON; `undefined` for a bare `typebulb send <file>`). A non-`undefined` return value (awaited)\n * becomes the reply `send --wait` prints on stdout \u2014 JSON-serializable, at most one handler\n * replying \u2014 the structured read-back for self-tests. Returns an unsubscribe function. Inert in\n * an inline bulb (no sender) \u2014 the handler is registered but never fires.\n *\n * @param handler - Called with each pushed message; may return a JSON-serializable reply.\n * @returns An unsubscribe function.\n */\n onMessage(handler: (message: any) => unknown): () => void;",TC="\n /**\n * Print to the CLI's stdout \u2014 the bulb's log channel, read back with `typebulb logs <file>`.\n *\n * Ungated: needs no `server.ts` block and no `--trust`, so a Restricted client-only bulb can\n * instrument itself. Args cross to the CLI as JSON; where no CLI serves the page (web, inline,\n * or a transport failure) it falls back to the browser console. Works in `server.ts` too (same\n * as `console.log` there).\n */\n log(...args: any[]): void;",OC="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ed=`${Ob}${Pb}
|
|
1999
1999
|
/**
|
|
2000
2000
|
* Typebulb utilities namespace.
|
|
2001
2001
|
* Type \`tb.\` to discover available helpers.
|
|
2002
2002
|
*/
|
|
2003
|
-
declare const tb: {${
|
|
2003
|
+
declare const tb: {${SC}${EC}${kC}${TC}${OC}${AC}${Cb}${Nb}${Ib}${Rb}${xC}${_b}
|
|
2004
2004
|
};
|
|
2005
|
-
`,
|
|
2005
|
+
`,PC=`
|
|
2006
2006
|
/**
|
|
2007
2007
|
* Print to the CLI's stdout \u2014 the same channel as \`console.log\` here (the server's console IS
|
|
2008
2008
|
* the bulb's log). One log verb across blocks: page-side \`tb.log\` reaches this same stdout.
|
|
2009
2009
|
*/
|
|
2010
|
-
log(...args: any[]): void;`,
|
|
2010
|
+
log(...args: any[]): void;`,Ad=`${Ob}${Pb}
|
|
2011
2011
|
/**
|
|
2012
2012
|
* Typebulb utilities namespace (server-side).
|
|
2013
2013
|
* Type \`tb.\` to discover available helpers.
|
|
2014
2014
|
*/
|
|
2015
|
-
declare const tb: {${
|
|
2015
|
+
declare const tb: {${PC}${Cb}${Nb}${Ib}${Rb}${_b}
|
|
2016
2016
|
};
|
|
2017
|
-
`;tt();import
|
|
2017
|
+
`;tt();import NC from"p-limit";tt();import{resolve as Lb}from"resolve.exports";var lt={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},ks=["index.d.ts","index.d.mts"],Td=/\.d\.(ts|mts|cts)$/i;function oa(n){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(n)||/[?&]dts(?:[&#]|$)/i.test(n)}function $b(n){return[`${n}.d.ts`,`${n}.d.mts`]}function Bt(n){if(!n||n==="./"||n==="/")return[...ks];let e=n.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=$b(e),r=e.endsWith("/")?e:`${e}/`;return t.push(...$b(`${r}index`)),t}async function nr(n,{retries:e=2,timeoutMs:t=15e3,init:r}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(n,{...r,signal:i.signal});if(CC(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function CC(n){return n===408||n===429||n>=500&&n<600}var aa=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let r=await this.fetchDts(t);if(r&&(this.looksLikeDts(r.dts)||oa(r.url)))return r}}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)}async loadPackageAtVersionedRoot(e,t){let r=this.cdnClient.packageJson(new j({name:e,version:t})),s=await nr(r);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new j({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 r of e){let s=await t(r);if(s)return s}}async resolveFromSelected(e,t,r){if(e.kind==="types"){let o=zt(e.path);if(!o||o==="/"||o===".")return this.tryUntilSuccess([...ks],t);if(!Td.test(o)){let a=await this.tryUntilSuccess(Bt(o),t);if(a)return a}return t(o)}let s=Bt(e.path),i=r?.subpath?[...s,...ks]:[...ks,...s];return this.tryUntilSuccess(i,t)}toResolutionResult(e){return{kind:Td.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let r=t||".",s=e;try{let i=this.extractPathFromResult(Lb(s,r,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Lb(s,r,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=j.parse(e),{pkg:r,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!r||!s)return;let i={name:t.name,version:t.version},o=new j(i).format(),a=new j({...i,subpath:t.subpath}).format(),l=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Wc(t.subpath),f=this.resolveExportsPath(r,u);if(f){let m=await this.resolveFromSelected(this.toResolutionResult(f),l,{subpath:!0});if(m)return{...m,resolvedPkg:a}}let p=await this.tryUntilSuccess(Bt(u),l);if(p)return{...p,resolvedPkg:a}}let c=r.types??r.typings;if(c){let u=await this.resolveFromSelected({kind:"types",path:c},l);if(u)return{...u,resolvedPkg:o}}let d=this.resolveExportsPath(r,".");if(d){let u=await this.resolveFromSelected(this.toResolutionResult(d),l);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,r){let s=zt(r),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};tt();import{gunzipSync as RC}from"fflate";var la=class{async fetchAndExtract(e,t){let r=this.getTarballUrl(e,t),s=await nr(r,{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\//,""),r=t.indexOf("/");return r>0?t.substring(r+1):t}extractDtsFiles(e){let t=new Map;try{let r=RC(e),s=new TextDecoder("utf-8"),i=0;for(;i<r.length-512;){let o=r.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),l=a.indexOf(0),c=s.decode(a.slice(0,l>0?l:100)).trim(),d=o.slice(124,136),u=s.decode(d).trim().replace(/\0/g,""),f=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(c.endsWith(".d.ts")||c.endsWith(".d.mts"))){let m=r.slice(i,i+f);t.set(this.normalizeTarPath(c),s.decode(m))}i+=Math.ceil(f/512)*512}}catch{}return t}};var ca=class{constructor(e,t,r=new la){this.cdnClient=e,this.cache=t,this.tarballFetcher=r}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,r){try{if(r){let i=Gt.majorOf(r),o=e.filter(a=>Gt.majorOf(a)===i);if(o.length)return o.sort((a,l)=>Gt.cmp(l,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),r=Bt(e);return t!==e&&r.push(`${e}.d.ts`,`${e}/index.d.ts`),r}async fetchFromVersionedRoot(e,t){let r=new j(e),s=r.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(r.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,l]of i.entries()){let c=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(c,l)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let l=i.get(a);if(l)return{dts:l,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new j(t).format():t.name}}}async resolve(e){let t=j.parse(e);if(t.name)for(let r of this.typesNameCandidates(t.name)){let s=`@types/${r}`,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 ua=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=e.split(`
|
|
2018
2018
|
`).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
|
|
2019
|
-
`),r=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))r.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))r.add(s[1]);return Array.from(r)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};tt();var
|
|
2020
|
-
`);await this.prefetchBareDeps(m,c,f,p,s);let h=l.format(),b=e===h?[e]:[e,h],A=b.some(S=>this.ambientlyDeclares(i,S));return A?this.markFileAmbient(f,d):p.push(...b.map(S=>({module:S,path:d}))),{pkg:e,mainPath:d,files:f,shims:p,ambient:A}}};
|
|
2021
|
-
`,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),
|
|
2022
|
-
`,"utf8"),{dir:e}}function
|
|
2023
|
-
`))console.log(`${e} ${r}`);return n.length>0}function
|
|
2019
|
+
`),r=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))r.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))r.add(s[1]);return Array.from(r)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};tt();var Mb="file:///node_modules",da=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${Mb}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let r=zt(t);return`${Mb}/${this.epochDir()}/${e}/${r}`}};import{LRUCache as _C}from"lru-cache";function Bb(n){let e=new _C({ttl:lt.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await n.isNegative(s)||e.has(s))return;let i=await n.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let l=await nr(s,{init:{cache:"no-store"}});if(!l?.ok){l?.status===404&&(e.set(s,!0),await n.recordNegative(s));return}let c=await l.text(),d=l.url||s;return await n.clearNegative(s),await n.setCachedFile(d,c),{dts:c,url:d}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var xs=class{constructor(e){this.inFlight=new Map,this.scanner=new ua,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Bb(e.cache),this.typescriptProvider=new aa(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new ca(e.cdnClient,e.cache),this.virtualFs=new da}withInFlight(e,t){let r=this.inFlight.get(e);if(r)return r;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,r){e.some(s=>s.path===t)||e.push({path:t,content:r})}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 fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let r=await t.resolve(e);if(r?.dts)return r}catch{}}async fetchRootDts(e,t){let{effectivePackage:r,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(r);if(o?.content){let l=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:l,resolvedPkg:r}}let a;try{a=await this.fetchViaProviders(r)}catch{return}if(!(!a?.dts||!a.url)&&new j(r).subpath===new j(a.resolvedPkg||r).subpath){try{await this.cache.setCachedDts(r,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,r){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(r,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let r=new URL(e),s=this.extractPackageRootUrl(r);return{mainPath:this.toVirtualPath(s,r,t),packageRootUrl:s}}async expandRelativeRefs(e,t,r,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>lt.maxRelativeTypeRefs)))try{let a=new URL(t),l=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let c=this.scanner.collectRelativeTypeRefs(e).slice(0,lt.maxRelativeTypeRefs);for(let d of c)await this.tryRelativeRef(d,l,o,r,s,i)}catch{}}async tryRelativeRef(e,t,r,s,i,o){try{let a=new URL(e,t),l=a.pathname+a.search,c=oa(l)?[l]:Bt(l);for(let d of c){let f=new URL(d,a).toString();if(o.has(f))return;let p=await this.fetchDts(f);if(p?.dts){let m=this.toVirtualPath(r,new URL(p.url),s);this.pushFileIfNew(i,m,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,r);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new j(e).name!==new j(t).name}ambientlyDeclares(e,t){if(/^(?:import|export)\b/m.test(e))return!1;for(let r of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=r[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let r=e.find(s=>s.path===t);r&&(r.ambient=!0)}async prefetchBareDeps(e,t,r,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,lt.maxBareDeps).filter(c=>this.isDifferentPackage(c,t));if(!o.length)return;let a=new Set([t]),l=NC(lt.prefetchConcurrency);await Promise.all(o.map(c=>l(()=>this.prefetchBareDepsRecursive(c,r,s,lt.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,r,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 l=a.resolvedPkg||e,c=this.virtualFs.pathForMain(l);this.pushFileIfNew(t,c,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,c):r.push({module:e,path:c}),a.url&&await this.expandRelativeRefs(a.dts,a.url,l,t);let d=this.scanner.collectBareModuleRefs(a.dts).slice(0,lt.maxBareDeps).filter(u=>!i.has(u));for(let u of d)await this.prefetchBareDepsRecursive(u,t,r,s-1,i,o)}async resolve(e,t,r){let s=await this.packageService.extractImports(e),i=r?[...s,...r]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:r}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(r,async()=>{let s=new j(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,r,s){let{dts:i,url:o,resolvedPkg:a}=t,l=new j(a||r),c=l.version?`${l.name}@${l.version}`:l.name,{mainPath:d,packageRootUrl:u}=this.computeEntryPath(o,c),f=[{path:d,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,c,f,void 0,u);let m=f.map(S=>S.content).join(`
|
|
2020
|
+
`);await this.prefetchBareDeps(m,c,f,p,s);let h=l.format(),b=e===h?[e]:[e,h],A=b.some(S=>this.ambientlyDeclares(i,S));return A?this.markFileAmbient(f,d):p.push(...b.map(S=>({module:S,path:d}))),{pkg:e,mainPath:d,files:f,shims:p,ambient:A}}};nu();tt();$n();rs();eu();In();import*as rr from"path";var IC=rr.join(eo,"pkg"),$C=rr.join(eo,"files"),LC=rr.join(eo,"negative.json"),pa=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Xt(new Ln(LC));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await Z();let t=await nt(Db(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,r){let s={content:t,url:r};this.pkgMem.set(e,s),await fa(async()=>{await Z(),await Ae(Db(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await Z();let t=await Zi(jb(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await fa(async()=>{await Z(),await Ae(jb(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await fa(async()=>{await Z(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return fa(()=>this.negativeCache.clearNegative(e))}};async function fa(n){try{await n()}catch{}}function Db(n){return rr.join(IC,De(n)+".json")}function jb(n){return rr.join($C,De(n)+".txt")}$n();var Od;function MC(){return Od||(Od=new xs({cache:new pa,cdnClient:bg,packageService:so,versionResolver:yg})),Od}var Fb="file:///node_modules/";async function Ub(n){let e=to(n.emitKey,"typecheck");await Z(),await pe.rm(e,{recursive:!0,force:!0}),await pe.mkdir(e,{recursive:!0});let t=FC(n.jsxImportSource,n.dependencies),r=await MC().resolve(n.code,n.dependencies,t),s=n.local?.name,i=s?r.filter(d=>d.pkg!==s):r,o=new Set;for(let d of i)for(let u of d.files){let f=ha(u.path);if(!f||o.has(f))continue;o.add(f);let p=de.join(e,"node_modules",f);await pe.mkdir(de.dirname(p),{recursive:!0}),await pe.writeFile(p,u.content,"utf8")}let a={};for(let d of i)for(let u of d.shims){let f=ha(u.path);f&&(a[u.module]=[`./node_modules/${f}`])}for(let d of i){if(d.ambient)continue;let u=ha(d.mainPath);u&&(a[d.pkg]=[`./node_modules/${u}`])}let l=new Set;for(let d of i)for(let u of d.files){if(!u.ambient)continue;let f=ha(u.path);f&&l.add(`node_modules/${f}`)}if(n.local){delete a[n.local.name];let d=await UC(n.local,e);d?a[n.local.name]=[`./node_modules/${n.local.name}/${d}`]:console.warn(` local: '${n.local.name}' ships no type defs; check cannot type against it.`)}let c=BC(n.jsxImportSource,a,[...l]);return await pe.writeFile(de.join(e,"tsconfig.json"),JSON.stringify(c,null,2)+`
|
|
2021
|
+
`,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),Ed,"utf8"),{dir:e}}var Pd={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function BC(n,e,t=[]){return{compilerOptions:{...Pd,lib:DC([...Sd,...kd]),jsx:"react-jsx",jsxImportSource:n??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function DC(n){return xd(n).map(e=>jC(e.name))}function jC(n){return n.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 FC(n,e){let t=n??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function ha(n){if(!n.startsWith(Fb))return;let e=n.slice(Fb.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function UC(n,e){if(!n.typesAbs)return;let t=de.dirname(n.typesAbs),r=de.join(e,"node_modules",n.name);for(let s of await qC(t)){let i=de.join(r,de.relative(t,s));await pe.mkdir(de.dirname(i),{recursive:!0}),await pe.copyFile(s,i)}return de.basename(n.typesAbs)}async function qC(n){let e=[];async function t(r){let s=await pe.readdir(r,{withFileTypes:!0});for(let i of s){let o=de.join(r,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(n),e}import*as Pe from"fs/promises";import*as ct from"path";import{existsSync as JC}from"fs";$n();ru();var KC="^22";async function qb(n){let e=to(n.emitKey,"typecheck-server");await Z(),await Pe.rm(e,{recursive:!0,force:!0}),await Pe.mkdir(e,{recursive:!0});let t=ct.join(n.bulbDir,".typebulb"),r=po(n.server).filter(o=>o!==n.local?.name);await fo([`@types/node@${KC}`,...r],t,n.dependencies,{ignoreScripts:!0});let s=ct.join(t,"node_modules"),i=ct.join(e,"node_modules");return await WC(s,i),await Pe.writeFile(ct.join(e,"server.ts"),n.server,"utf8"),await Pe.writeFile(ct.join(e,"tb.d.ts"),Ad,"utf8"),await Pe.writeFile(ct.join(e,"tsconfig.json"),JSON.stringify(HC(n.local),null,2)+`
|
|
2022
|
+
`,"utf8"),{dir:e}}function HC(n){let e={...Pd,lib:["ES2023"],types:["node"]};if(n?.typesAbs){let t=i=>i.replace(/\\/g,"/"),r=t(ct.dirname(n.typesAbs)),s=t(n.typesAbs).replace(/\.d\.ts$/,"");e.paths={[n.name]:[s],[`${n.name}/*`]:[`${r}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function WC(n,e){if(!JC(n)){await Pe.mkdir(e,{recursive:!0});return}await Pe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await Pe.symlink(n,e,t)}zi();ne();async function Kb(n,e){let{bulb:t,config:r,warnings:s,starts:i}=await qe(n),o=Ce.basename(n),a=h=>i.get(h)??1;!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let l=!1,c=!1;for(let h of s)console.log(`structure ${h}`);s.length&&(l=!0);let d=Jn(Ce.resolve(n)),u=d?An(t.name):"";d&&u&&u!==d.slug&&(console.log(`naming filename '${d.slug}.bulb.md' doesn't match the title '${t.name}' \u2014 its slug derives to '${u}'. Rename the file to '${u}.bulb.md', or change name: to suit the filename.`),c=!0),t.code&&(l=Jb(Yr(t.code,{target:"client",dependencies:r.dependencies??{},lineOffset:a("code.tsx")}),"client")||l),t.server&&(l=Jb(Yr(t.server,{target:"server",lineOffset:a("server.ts")}),"server")||l);let f=eR([process.cwd(),Ce.dirname(n)]);if(!f){let h=Ce.relative(process.cwd(),n)||n;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${h}`),process.exit(2)}let p=[];if(t.code){let{dir:h}=await Ub({code:t.code,dependencies:r.dependencies??{},jsxImportSource:r.ts?.jsxImportSource,emitKey:n,local:e});p.push({role:"client",dir:h})}if(t.server){let{dir:h}=await qb({server:t.server,bulbDir:Ce.dirname(n),emitKey:n,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:r.dependencies});p.push({role:"server",dir:h})}for(let{role:h,dir:b}of p){let{stdout:A,exitCode:S}=await QC(f,b);for(let P of A.split(/\r?\n/))P.trim()&&console.log(`${h} ${XC(P,o,a)}`);S!==0&&(l=!0)}l&&process.exit(1);let m=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(c?`\u2713 type-checks (${m}) \u2014 see the naming warning above`:`\u2713 no issues (${m})`)}function Jb(n,e){for(let t of n)for(let r of t.message.split(`
|
|
2023
|
+
`))console.log(`${e} ${r}`);return n.length>0}function XC(n,e,t){return n.replace(/\b(code\.tsx|server\.ts)\((\d+),(\d+)\)/g,(r,s,i,o)=>`${e}(${Number(i)+t(s)-1},${o})`)}function QC(n,e){return new Promise(t=>{let r=YC(process.execPath,[n,"--noEmit"],{cwd:e}),s="";r.stdout?.on("data",i=>{s+=i.toString()}),r.stderr?.on("data",i=>{s+=i.toString()}),r.on("close",i=>t({stdout:s,exitCode:i??1}))})}var ZC=zC(import.meta.url);function eR(n){let e=r=>{try{let s=ZC.resolve("typescript/package.json",{paths:r}),i=Ce.join(Ce.dirname(s),"lib","tsc.js");return GC(i)?i:void 0}catch{return}},t=e(n);if(t)return t;try{let r=VC("npm root -g",{encoding:"utf8"}).trim();return e([r])}catch{return}}Ve();Io();ds();async function Hb(n,e){let{bulb:t}=await qe(n),r=Hn(t);if(sn(n)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),r&&console.log(` (it uses ${r})`);return}r?(console.log(`This bulb appears to use ${r}; 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.)")}ds();import*as Es from"path";async function Wb(n,e){if(!n){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let r=Ru();if(!r.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of r)console.log(` ${s}`);return}let t=Es.resolve(n);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));try{Wn(t,e)}catch(r){console.error(r.message),process.exit(1)}console.log(e?`Trusted ${Es.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Es.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Be();import*as Vb from"readline";_u();function Cd(n){let e=t=>r=>n?`\x1B[${t}m${r}\x1B[0m`:r;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function zb(n){let e=xb(process.cwd());if("ambiguous"in e){let t=await tR(n,e.ambiguous);return t?Yb(n,t):nR(n,e.ambiguous)}return Yb(n,e.name)}async function Yb(n,e){let t,r;try{t=await Wm(e)}catch(d){r=d instanceof Error?d.message:String(d)}let{lit:s,litLink:i,brand:o}=Cd(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s(fs())}`],l=t?[` Agent mirror (${e}) is live\u{1F4A1}`,` ${s("\u25CF")} ${i(t.url)}`," Inline bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 emit an inline bulb",...e==="codex"?[" verify it this turn \u2014 foreground-wait, bounded:",` \u2022 ${s('typebulb wait agent --match "[inline <name>" --timeout 120')}`," raise the shell tool's timeout_ms to 130000"," (its 10s default kills even a clean ok)"]:[e==="pi"?" arm a wait for its render verdict \u2014 run it plainly:":" background a wait for its render verdict:",` \u2022 ${s('typebulb wait agent --match "[inline <name>"')}`],...a," End this reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${r})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],c=[` ${o(`typebulb v${n}`)}`,...l,""];process.stdout.write(c.join(`
|
|
2024
2024
|
`)+`
|
|
2025
|
-
`)}async function
|
|
2025
|
+
`)}async function tR(n,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:r}=Cd(!0),s=[` ${r(`typebulb v${n}`)}`," More than one agent harness is available here.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
|
|
2026
2026
|
`)+`
|
|
2027
|
-
`);let i=
|
|
2027
|
+
`);let i=Vb.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(l=>i.question(" Open which? [1]: ",l))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(l=>l===o.toLowerCase())}finally{i.close()}}function nR(n,e){let{lit:t,brand:r}=Cd(process.stdout.isTTY===!0),s=[` ${r(`typebulb v${n}`)}`," More than one agent harness is available here."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
|
|
2028
2028
|
`)+`
|
|
2029
|
-
`)}st();nn();async function
|
|
2030
|
-
`+e)}function
|
|
2029
|
+
`)}st();nn();async function Gb(n){Te(n);let e=await it();if(e.length>0){console.log(Dg(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!bu()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,r]of Object.entries(jn))console.log(` ${r.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}ne();function Xb(n){n?.trim()||(console.error("Usage: typebulb slug <bulb name>"),process.exit(1));let e=An(n);e||(console.error(`'${n}' has no slug \u2014 a bulb name needs at least one letter or digit.`),process.exit(1)),console.log(e)}Et();import*as Zb from"path";import{valid as Qb,lt as rR}from"semver";Be();qi();function sR(n,e,t,r){if(/^\d+$/.test(e))return n.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?n.filter(i=>i.agent!=null):n.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&X(o.cwd)===X(t));return r&&i.find(o=>o.agent===r)||i[0]}return n.find(i=>X(i.file)===X(e))}var As=n=>n.agent??Zb.basename(n.file);function iR(n){return n===Me?"":n?(Qb(n)&&Qb(Me)?rR(n,Me):!0)?` STALE runtime v${n} (this CLI is v${Me} \u2014 relaunch to update)`:` runtime v${n} (newer than this CLI's v${Me})`:" STALE runtime (predates the version stamp \u2014 relaunch to update)"}function ew(n,e){for(let t of n)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"}${t.batch?` --batch ${t.batch}`:""}${iR(t.version)} ${t.file}`)}function Rd(n,e){if(!n.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),ew(n,t=>console.log(t)),console.log(`
|
|
2030
|
+
`+e)}function _d(n,e,t,r,s){let i=sR(n,e,r,s);if(i)return i;console.error(`No running server for '${e}'.`),n.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),ew(n,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function tw(n,e){if(!n){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),Rd(await Q(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=_d(await Q(),n,"logs",process.cwd(),fn());if(e.clear){Fm(t.pid),console.log(`Cleared log for ${As(t)} (pid ${t.pid}).`);return}let r=We(t.pid),s=r.text;if(e.run!==void 0?(s=Um(s,e.run),s||console.error(e.run==="latest"?"No output in the latest run yet (the server has logged nothing since its last reload).":`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)):!s&&!e.follow&&console.error("Log is empty \u2014 this server has logged nothing yet."),e.lines&&e.lines>0){let i=s.split(`
|
|
2031
2031
|
`);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
|
|
2032
2032
|
`)}if(process.stdout.write(s),s&&!s.endsWith(`
|
|
2033
2033
|
`)&&process.stdout.write(`
|
|
2034
|
-
`),e.follow&&e.run===void 0){let i=r.offset,o=setInterval(()=>{let l=We(t.pid,i);i=l.offset,l.text&&process.stdout.write(l.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var
|
|
2035
|
-
`);h=S.pop()??"";for(let P of S)P.trim()&&(e.match&&!P.includes(e.match)||(console.log(P),m??=Date.now()+f,r&&(P.includes("] compile error")||P.includes("] runtime error"))&&(m=Math.min(m,Date.now()+p))))}if(m&&Date.now()>=m)break;if(!i&&!m&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${
|
|
2034
|
+
`),e.follow&&e.run===void 0){let i=r.offset,o=setInterval(()=>{let l=We(t.pid,i);i=l.offset,l.text&&process.stdout.write(l.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var oR=n=>new Promise(e=>setTimeout(e,n));async function nw(n,e){if(!n){Rd(await Q(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=_d(await Q(),n,"wait",process.cwd(),fn()),r=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",l=We(t.pid).offset,c=Mc(t.pid,a)??(a?Mc(t.pid):void 0),d=c!==void 0&&c<=l?c:a?0:l,u=Date.now()+o*1e3,f=r?1e4:1e3,p=2e3,m,h="",b=0;for(;;){let A=We(t.pid,d);if(d=A.offset,A.text){h+=A.text;let S=h.split(`
|
|
2035
|
+
`);h=S.pop()??"";for(let P of S)P.trim()&&(e.match&&!P.includes(e.match)||(console.log(P),m??=Date.now()+f,r&&(P.includes("] compile error")||P.includes("] runtime error"))&&(m=Math.min(m,Date.now()+p))))}if(m&&Date.now()>=m)break;if(!i&&!m&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${As(t)} within ${o}s`),b=2;break}if(!Dc(t.pid)){m||(console.error(`server ${As(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await oR(400)}Ki(t.pid,d,a),process.exit(b)}async function rw(n){if(!n){Rd(await Q(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=_d(await Q(),n,"stop",process.cwd(),fn());await Wt(e.pid),console.log(`Stopped ${As(e)} (pid ${e.pid}, ${e.url}).`)}async function sw(n){let e=process.cwd(),t=n==="agent"?fn():void 0,r=n==="global"?await Q():n==="bulbs"?await Q(e):(await Q()).filter(i=>i.agent!=null&&i.cwd!=null&&X(i.cwd)===X(e)&&(!t||i.agent===t)),s=n==="global"?"server":n==="agent"?"mirror":"bulb";if(!r.length){console.log(n==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(r.map(i=>Wt(i.pid))),console.log(`Stopped ${r.length} ${s}${r.length===1?"":"s"}:`);for(let i of r)console.log(` ${i.url} pid ${i.pid} ${As(i)}`)}Be();Et();Kn();import*as ma from"path";import*as iw from"http";import{mkdir as aR,writeFile as lR}from"fs/promises";function cR(n,e){return new Promise((t,r)=>{let s=new URL(n),i=iw.request({hostname:s.hostname,port:s.port,path:s.pathname+s.search,method:"POST",headers:{"Content-Type":"text/plain","Content-Length":Buffer.byteLength(e)}},o=>{let a="";o.setEncoding("utf8"),o.on("data",l=>{a+=l}),o.on("end",()=>t({status:o.statusCode??0,text:a}))});i.setTimeout(0),i.on("error",r),i.end(e)})}var uR=n=>{let e=Math.round((Date.now()-n)/6e4);return e<1?"moments ago":e<60?`${e}m ago`:`${Math.round(e/60)}h ago`};async function ow(n,e,t=0){let r=e!==void 0&&e.startsWith("tb:");r&&t<=0&&(t=vd);let s=e!==void 0&&/^tb:(click|set)( |$)/.test(e),i=ma.resolve(n),o=Cn(await Q(),i)[0];if(!o){let p=(await cs(process.cwd()))(i);console.error(p?`No running server for '${n}' \u2014 it last ran ${uR(p)}. Relaunching reuses the same URL (a stale tab is one reload from live): npx typebulb ${n}`:`No running server for '${n}'. Start it first: npx typebulb ${n}`),process.exit(1)}let a=async p=>{let m=[p>0?`reply=${p}`:"",s?"solo=1":""].filter(Boolean).join("&"),h=await cR(`${o.url}/__send${m?`?${m}`:""}`,e??"");(h.status<200||h.status>=300)&&(console.error(`send failed: HTTP ${h.status} from ${o.url}/__send`),process.exit(1));try{return JSON.parse(h.text)}catch{return{}}},l={};try{let p=Date.now()+t;do{if(l=await a(t>0?Math.max(p-Date.now(),1e3):0),(l.clients??0)>0||Date.now()>=p)break;await new Promise(m=>setTimeout(m,150))}while(!0)}catch(p){console.error(`send failed: ${p instanceof Error?p.message:String(p)}`),process.exit(1)}let c=l.clients??0,d=`${c} page${c===1?"":"s"}`;if(l.refused&&(console.error(`Actuation needs exactly one connected page; ${d} are open on ${o.url} \u2014 close the extras and retry.`),process.exit(1)),c===0){let p=l.droppedMsAgo,m=p!==void 0?` \u2014 a page disconnected ${Math.round(p/1e3)}s ago and hasn't reconnected; reload it, or open ${o.url}`:` \u2014 no page has ever connected; share ${o.url} and arm: typebulb wait ${n} --match "[page] connected"`;t>0?console.error(`No page connected after ${t/1e3}s${m}`):console.error(`Sent, but no page is connected${m}`),r&&process.exit(1);return}console.error(`Sent to ${d}.`);let u=l.results??[],f=l.errors??[];for(let p of f)console.error(`handler error: ${p}`);if(f.length&&process.exit(1),u.length>1&&(console.error(`${u.length} replies from ${d} \u2014 one reply owns stdout: at most one tb.onMessage handler, in one page, may return a value.`),process.exit(1)),u.length===1){if(e!==void 0&&/^tb:png( |$)/.test(e)){let m={};try{m=JSON.parse(u[0])}catch{}typeof m.png!="string"&&(console.error("tb:png replied with an unexpected shape \u2014 an older runtime? (`typebulb logs` lists server versions)"),process.exit(1));let h=Nm(i);await aR(ma.dirname(h),{recursive:!0}),await lR(h,Buffer.from(m.png,"base64"));let b=[m.via?`inside "${m.via}"`:"",m.backdrop?`backdrop ${m.backdrop}`:""].filter(Boolean);console.error(`canvas ${m.width}\xD7${m.height} \u2192 PNG${b.length?` (${b.join("; ")})`:""}`),console.log(h);return}let p;try{p=JSON.parse(u[0])}catch{p=void 0}console.log(typeof p=="string"?p:u[0])}else l.timedOut&&(r&&(console.error(`No reply to '${e}' within ${t/1e3}s \u2014 reload the page and retry.`),process.exit(1)),console.error(`(no reply within ${t/1e3}s \u2014 slow work needs a larger --wait=ms; a reply that NEVER comes is a done-promise that missed an exit)`))}Do();Bu();ne();import*as aw from"fs/promises";async function lw(n,e){let t=await aw.readFile(n,"utf-8"),r=ue(t);r||(console.error(`Not a valid bulb: ${n}`),process.exit(1));let s=le[e].path,i=r.files.get(s);i||(console.error(i===void 0?`No **${s}** block in ${n}`:`The **${s}** block in ${n} is empty`),process.exit(2)),process.stdout.write(i.endsWith(`
|
|
2036
2036
|
`)?i:i+`
|
|
2037
|
-
`)}ne();import*as
|
|
2038
|
-
`).trimEnd()}function
|
|
2037
|
+
`)}ne();import*as Ts from"fs/promises";async function dw(n,e){let t=await Ts.readFile(n,"utf-8"),r=[];for(let{kind:i,source:o}of e){let a;try{a=o==="-"?await fR():await Ts.readFile(o,"utf-8")}catch(l){uw(`Cannot read ${i}'s source: ${l instanceof Error?l.message:String(l)}`)}r.push({kind:i,content:fw(a),label:o==="-"?"stdin":o})}let s;try{s=dR(t,r)}catch(i){uw(`${n}: ${i instanceof Error?i.message:String(i)}`)}for(let i of s.upToDate)console.log(`${le[i].path}: already up to date`);if(s.written.length){await Ts.writeFile(n,s.text);for(let i of s.written)console.log(i.action==="removed"?`${le[i.kind].path}: removed (${i.label} is empty)`:`${le[i.kind].path}: ${i.action} from ${i.label} (${i.chars.toLocaleString()} chars)`)}}function dR(n,e){let t=ue(n);if(!t)throw new Error("not a valid bulb");let r=n,s=[],i=[];for(let{kind:o,content:a,label:l}of e){let c=le[o].path,d=t.files.get(c);if(!a){if(d===void 0){i.push(o);continue}r=cw(of(r,o),r,c),s.push({kind:o,action:"removed",chars:0,label:l});continue}if(d!==void 0&&fw(d)===a){i.push(o);continue}r=cw(sr(r,o,a),r,c),s.push({kind:o,action:d===void 0?"created":"replaced",chars:a.length,label:l})}return{text:r,written:s,upToDate:i}}function fw(n){return(n.charCodeAt(0)===65279?n.slice(1):n).replace(/\r\n/g,`
|
|
2038
|
+
`).trimEnd()}function cw(n,e,t){if(n===e)throw new Error(`the **${t}** block's fence is unterminated; refusing to rewrite inside it`);return n}function uw(n){console.error(n),process.exit(1)}async function fR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}st();Ve();ne();Io();import*as jt from"fs/promises";import*as ka from"path";import{EventEmitter as bw}from"events";import CR from"open";tn();ne();import{Hono as bR}from"hono";import{serve as wR}from"@hono/node-server";import{streamSSE as vR}from"hono/streaming";import*as Ld from"fs/promises";$n();rs();In();import*as Nd from"fs/promises";import*as Os from"path";var ga=class{async get(e){let t=De(e),r=Os.join(ns,t+".bin"),s=Os.join(ns,t+".json");try{let[i,o]=await Promise.all([Nd.readFile(r),Nd.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await Z();let r=De(e),s=Os.join(ns,r+".bin"),i=Os.join(ns,r+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([Ae(s,t.body),Ae(i,JSON.stringify(o))])}};var pw=`
|
|
2039
2039
|
const CSS = '\\n' +
|
|
2040
2040
|
/* The agent mirror's token set, verbatim (agents/core/client/styles.css) \u2014 one system across CLI
|
|
2041
2041
|
chrome: app chrome sits on --panel, content wells paint --veil, grays ride one neutral tint.
|
|
@@ -2339,18 +2339,18 @@ export function runInference(ctx) {
|
|
|
2339
2339
|
showConfirm();
|
|
2340
2340
|
document.body.appendChild(host);
|
|
2341
2341
|
}
|
|
2342
|
-
`;Be();nn();
|
|
2343
|
-
${f}`:"";return y.text(`Forbidden: this capability requires --trust.${M}`,403)}await E()},C=async(y,E)=>{let N=y.req.header("sec-fetch-site");if(N){if(N!=="same-origin")return y.text(`Forbidden: ${N} request`,403)}else{let L=y.req.header("origin");if(L&&!
|
|
2344
|
-
`+ee.slice(-4e3)),new ve("LLM output is not valid JSON","parse_error",!0);oe.fixesApplied.length&&console.warn("[tb.infer] sanitized output, fixes applied:",oe.fixesApplied.join(", "));let ke={insight:oe.parsed,insightJson:oe.json,data:M};yield{kind:"complete",...ke,fixesApplied:oe.fixesApplied,hash:
|
|
2342
|
+
`;Be();nn();xo();tn();import{stream as pR}from"hono/streaming";var hR="X-TB-Stream";function Ps(n){return n instanceof ve?{message:n.message,code:n.code,retryable:n.retryable}:{message:n instanceof Error?n.message:"Unknown error",code:"unknown",retryable:!1}}function ya(n,e){return n.header("Content-Type","application/x-ndjson; charset=utf-8"),n.header("Cache-Control","no-cache"),n.header(hR,"1"),pR(n,async t=>{let r=e[Symbol.asyncIterator]();t.onAbort(()=>{r.return?.()});try{for(;;){let{done:s,value:i}=await r.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:Ps(s)}))}finally{try{await r.return?.()}catch{}}})}var ba={log:(...n)=>console.log(...n)};function wa(n,e){let t=n?.[e]??(Object.hasOwn(ba,e)?ba[e]:void 0);return typeof t=="function"?t:void 0}function va(n){return n.constructor?.name==="AsyncGeneratorFunction"}wu();var mR=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,gR=/[?&]target=/,yR=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function hw(n,e=""){return mR.test(n)?!0:yR.test(n)&&gR.test(e)}var SR="127.0.0.1",kR=new Set(["localhost","127.0.0.1","::1"]),xR=0;function ER(n){if(n)try{return new URL(n.includes("://")?n:`http://${n}`).hostname}catch{return}}function AR(n){let e=ER(n);return!!e&&kR.has(e)}function TR(n,e){if(!e)return!1;try{return new URL(n).host===e}catch{return!1}}function Id(n){return n instanceof Error?n.message:"Unknown error"}async function gw(n){let{getHtml:e,basePath:t,fsBase:r,port:s,reloadEmitter:i,messageEmitter:o,getServerExports:a,getBulbBlocks:l,saveInferenceResult:c,localOverride:d,trusted:u=!1,trustHint:f,staticAssets:p,bulbAssets:m,sourceFile:h}=n,b=`${process.pid}-${++xR}-${Date.now()}`,A=r??t,S=new bR;S.use("*",async(y,E)=>{if(!AR(y.req.header("host")))return y.text("Forbidden: untrusted Host",403);await E()}),S.use("*",async(y,E)=>{await E(),y.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),y.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let P=[["/__fs/*","the filesystem"],["/__api/*","server-side code (server.ts)"],["/__ai","AI (your API keys)"],["/__infer","AI (your API keys)"],["/__infer-save","the filesystem"]],_=async(y,E)=>{if(!u){let N=new URL(y.req.url).pathname,L=P.find(([H])=>H.endsWith("/*")?N.startsWith(H.slice(0,-2)):N===H)?.[1]??"server-side code (server.ts)";Jm(process.pid,L);let M=f?`
|
|
2343
|
+
${f}`:"";return y.text(`Forbidden: this capability requires --trust.${M}`,403)}await E()},C=async(y,E)=>{let N=y.req.header("sec-fetch-site");if(N){if(N!=="same-origin")return y.text(`Forbidden: ${N} request`,403)}else{let L=y.req.header("origin");if(L&&!TR(L,y.req.header("host")))return y.text("Forbidden: cross-origin request",403)}await E()};for(let[y]of P)S.use(y,_),S.use(y,C);S.use("/__log",C),S.post("/__log",async y=>{try{let{args:E}=await y.req.json();console.log(...E||[])}catch{}return y.json({ok:!0})});let R=0;if(o){let y=0,E=new Map;S.use("/__send",C),S.post("/__send",async N=>{let L="";try{L=await N.req.text()}catch{}let M=Number(N.req.query("reply"))||0,H=o.listenerCount("message"),G=H===0&&R?Date.now()-R:void 0;if(N.req.query("solo")!==void 0&&H!==1)return N.json({clients:H,droppedMsAgo:G,refused:H>1});if(M<=0||H===0)return o.emit("message",{payload:L}),N.json({clients:H,droppedMsAgo:G});let he=++y,ee=await new Promise(oe=>{let ke={expected:H,received:0,results:[],errors:[],finish:xa=>{clearTimeout(Re),E.delete(he),oe({results:ke.results,errors:ke.errors,timedOut:xa})}},Re=setTimeout(()=>ke.finish(!0),M);E.set(he,ke),o.emit("message",{id:he,payload:L})});return N.json({clients:H,...ee})}),S.use("/__send-reply",C),S.post("/__send-reply",async N=>{try{let{id:L,results:M,errors:H}=await N.req.json(),G=E.get(L);G&&(G.results.push(...M??[]),G.errors.push(...H??[]),++G.received>=G.expected&&G.finish(!1))}catch{}return N.json({ok:!0})})}S.get("/",y=>y.html(e())),S.post("/__fs/read",async y=>{try{let{path:E}=await y.req.json(),N=await as(E,A,t);return new Response(new Uint8Array(N),{headers:{"Content-Type":"application/octet-stream"}})}catch(E){let N=Id(E);return y.json({error:N},400)}}),S.post("/__fs/write",async y=>{try{let E=y.req.query("path");return E?(await Ao(E,new Uint8Array(await y.req.arrayBuffer()),A,t),y.json({success:!0})):y.json({error:"Missing path"},400)}catch(E){let N=Id(E);return y.json({error:N},400)}}),S.post("/__api/:name",async y=>{try{let E=y.req.param("name"),N=wa(a?.(),E);if(!N)return y.json({error:`API function '${E}' not found`},404);let{args:L}=await y.req.json();if(va(N))return ya(y,N(...L||[]));let M=await N(...L||[]);return y.json({result:M})}catch(E){let N=Id(E);return y.json({error:N},500)}}),S.post("/__ai",async y=>{try{let{messages:E,system:N,effort:L,provider:M,model:H,webSearch:G,stream:he}=await y.req.json();if(!E||!Array.isArray(E)||E.length===0)return y.json({message:"messages array is required",code:"unknown",retryable:!1},400);let ee=ot(M,H);if(typeof ee=="string")return y.json({message:ee,code:"unknown",retryable:!1},400);let oe=await _t(ee,{messages:E,system:N,effort:L,webSearch:G,signal:y.req.raw.signal});if(!oe.ok){let Re=await Dn(oe,ee.protocol);return y.json(Re,oe.status)}if(he)return ya(y,en(oe,ee.protocol));let ke=await Zt(oe,ee.protocol);return ke||console.warn("[tb.ai] Empty response from provider"),y.json({text:ke})}catch(E){return y.json(Ps(E),500)}}),S.post("/__infer",async y=>{try{let{data:E}=await y.req.json().catch(()=>({})),N=l?.();if(!N?.infer.trim())return y.json({message:"This bulb has no infer.md block.",code:"unknown",retryable:!1},400);let L=ot();if(typeof L=="string")return y.json({message:L,code:"unknown",retryable:!1},400);let M=Array.isArray(E)?E.map(String):[],H=pu(N,M),G=await _t(L,{messages:[{role:"user",content:H}],signal:y.req.raw.signal});if(!G.ok){let ee=await Dn(G,L.protocol);return y.json(ee,G.status)}let he=(async function*(){let ee="";for await(let Re of en(G,L.protocol))Re.kind!=="text"||!Re.text||(ee+=Re.text,yield{kind:"delta",text:Re.text});let oe=hu(ee);if(oe.parsed===null)throw console.warn(`[tb.infer] output not valid JSON after sanitize; raw output (last 4000 chars):
|
|
2344
|
+
`+ee.slice(-4e3)),new ve("LLM output is not valid JSON","parse_error",!0);oe.fixesApplied.length&&console.warn("[tb.infer] sanitized output, fixes applied:",oe.fixesApplied.join(", "));let ke={insight:oe.parsed,insightJson:oe.json,data:M};yield{kind:"complete",...ke,fixesApplied:oe.fixesApplied,hash:mu(ke)}})();return ya(y,he)}catch(E){return y.json(Ps(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?gu(E):null};S.post("/__infer-save",async y=>{try{if(!c)return y.json({message:"Save is not available for this server.",code:"unknown",retryable:!1},400);let E=await $(y);return E?(await c(E.data,E.insightJson),y.json({ok:!0})):y.json({message:"No decodable #tb= fragment to save.",code:"unknown",retryable:!1},400)}catch(E){return y.json(Ps(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=ir(E?.config??"").inference,L=Ii(E?.data??""),M=ot();return typeof M=="string"?y.json({error:M,inference:N,data:L}):y.json({provider:M.protocol,model:M.model,inference:N,data:L})}),S.use("/__infer-decode",C),S.post("/__infer-decode",async y=>y.json(await $(y)??{error:"invalid fragment"})),S.get("/__infer-ui.js",y=>y.body(pw,200,{"Content-Type":"text/javascript; charset=utf-8"})),S.get("/__models",async y=>{try{let E=await it();return y.json(E)}catch{return y.json([],200)}}),S.get("/__ai-access",async y=>{try{return y.json(await ko())}catch{return y.json("none",200)}}),h&&S.get("/__source/*",async y=>{let E=await Ld.readFile(h,"utf-8").catch(()=>{});return E===void 0?y.text("Not Found",404):new Response(E,{headers:{"Content-Type":"text/plain; charset=utf-8"}})});let x=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],D=new ga;S.get("/proxy/*",async y=>{let E=new URL(y.req.url),L=(E.pathname+E.search).slice(7),M=L.lastIndexOf("https://");return M===-1?y.text("Invalid proxy URL",400):K(y,L.slice(M))}),d&&mw(S,`/local/${d.name}/`,d.serveDir),p&&mw(S,p.mount,p.dir),m&&S.get("/assets/*",async y=>{let{pathname:E}=new URL(y.req.url),N=E.slice(8),L;try{L=decodeURIComponent(N)}catch{return y.text("Not Found",404)}let M=uf(L);if(M)return y.text(`${M} is not an asset type: a bulb's code and markup live in the bulb; assets are media and data`,403);try{for(let G of m.dirs){let he=await yw(L,G,{"Cache-Control":"no-cache"});if(he)return he}}catch{return y.text("Not Found",404)}let H=m.remoteBase;return H?y.redirect(H+N,302):y.text("Not Found",404)});async function K(y,E){let N;try{N=new URL(E)}catch{return y.text("Invalid URL",400)}if(N.protocol!=="https:")return y.text("HTTPS only",400);if(!x.includes(N.hostname))return y.text("Host not allowed",403);let L=await D.get(E);if(L)return new Response(L.body,{status:200,headers:$d(L.contentType,L.cacheControl)});try{let M=await fetch(E,{headers:{Accept:y.req.header("Accept")||"*/*"},redirect:"follow"});if(!M.ok)return y.text(`Upstream ${M.status}`,M.status);let H=M.headers.get("Content-Type")||void 0,G=M.headers.get("Cache-Control")||void 0;if(M.body){let[he,ee]=M.body.tee();return(async()=>{try{let oe=await new Response(ee).arrayBuffer();await D.set(E,{body:Buffer.from(oe),contentType:H,cacheControl:G})}catch{}})(),new Response(he,{status:M.status,headers:$d(H,G)})}return new Response(null,{status:M.status,headers:$d(H,G)})}catch(M){return y.text(`Proxy fetch failed: ${M instanceof Error?M.message:M}`,502)}}(i||o)&&S.get("/__reload",y=>vR(y,async E=>{let N=()=>{E.writeSSE({event:"reload",data:""})},L=M=>{E.writeSSE({event:"message",data:JSON.stringify(M)})};for(i?.on("reload",N),o?.on("message",L),o&&o.listenerCount("message")===1&&console.log("[page] connected"),E.onAbort(()=>{i?.removeListener("reload",N),o?.removeListener("message",L),R=Date.now()}),await E.writeSSE({event:"hello",data:b});!E.aborted;)await E.sleep(3e4)})),S.notFound(async y=>{if(y.req.method!=="GET")return y.text("Not Found",404);let E=new URL(y.req.url);return hw(E.pathname,E.search)?K(y,"https://esm.sh"+E.pathname+E.search):y.text("Not Found",404)});let q=wR({fetch:S.fetch,port:s,hostname:SR});return q.listening||await new Promise((y,E)=>{let N=L=>E(L);q.once("error",N),q.once("listening",()=>{q.removeListener("error",N),y()})}),{port:s,close:()=>q.close()}}function $d(n,e){let t=new Headers;return n&&t.set("Content-Type",n),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function mw(n,e,t){n.get(`${e}*`,async r=>{let{pathname:s}=new URL(r.req.url);if(!s.startsWith(e))return r.text("Not Found",404);try{return await yw(decodeURIComponent(s.slice(e.length)),t)??r.text("Not Found",404)}catch{return r.text("Not Found",404)}})}async function yw(n,e,t={}){let r=Eo(n,e),s=await Ld.readFile(r).catch(()=>{});if(s)return new Response(s,{headers:{"Content-Type":cf(r),...t}})}Be();Kn();async function Sa(n){let{port:e,portNote:t,makeServerOptions:r,makeEntry:s,displayName:i,stopLog:o}=n,a=await gw(r(e)).catch(async u=>{if(u?.code!=="EADDRINUSE")throw u;return Eu(e)}),l=`http://localhost:${e}`;await qm(s(e,l)),console.log(`
|
|
2345
2345
|
${i}`),console.log(` ${l}`),t&&console.log(` ${t}`);let c=[],d=async()=>{console.log(`
|
|
2346
|
-
Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(process.pid),process.exit(0)};return process.on("SIGINT",d),process.on("SIGTERM",d),{port:e,url:l,onCleanup(u){c.push(u)}}}Kn();import
|
|
2346
|
+
Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(process.pid),process.exit(0)};return process.on("SIGINT",d),process.on("SIGTERM",d),{port:e,url:l,onCleanup(u){c.push(u)}}}Kn();import OR from"chokidar";var PR={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function Dt(n){let{target:e,onChange:t,events:r="change",debounceMs:s=150}=n,i,o=OR.watch(e,PR);o.on("error",l=>console.warn(`watch: ${l instanceof Error?l.message:l} \u2014 continuing`));let a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return r==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Be();async function ww(n,e,t,r){let s=process.cwd(),i=Hi(process.pid),o=e.watch?new bw:void 0,a=new bw;a.setMaxListeners(0);let l=Te(e.mode),c=await Fc(n);c.length&&console.log(`Replacing the running server for this bulb (pid ${c.map(x=>x.pid).join(", ")})`);let{port:d,note:u}=await No({explicit:e.port,target:{kind:"bulb",file:n},cwd:process.cwd()}),f=1;console.log(Bc(f)),e.batch&&await qn(n,e.batch),console.log(`Loading ${ka.basename(n)}...`);let{html:p,bulb:m,serverExports:h}=await Su(n,e.watch,e.trust,r,e.batch);Rt(l,n,m.server);let b=[...e.batch?[It(n,e.batch)]:[],It(n)],A=Jn(ka.resolve(n)),S=e.trust?void 0:Hn(m),{port:P,url:_,onCleanup:C}=await Sa({port:d,portNote:u,displayName:m.name,stopLog:i,makeServerOptions:x=>({getHtml:()=>p,basePath:s,fsBase:Nt(n,e.batch),port:x,reloadEmitter:o,messageEmitter:a,getServerExports:()=>h,getBulbBlocks:()=>({infer:m.infer,insight:m.insight,code:m.code,config:m.config,data:m.data}),saveInferenceResult:async(D,K)=>{let q=await jt.readFile(n,"utf-8");q=sr(q,"data",D.join(cm)),q=sr(q,"insight",K),await jt.writeFile(n,q)},localOverride:r?{name:r.name,serveDir:r.serveDir}:void 0,bulbAssets:{dirs:b,remoteBase:A&&Ls(A.userSlug,A.slug)},sourceFile:n,trusted:e.trust,trustHint:t}),makeEntry:(x,D)=>({pid:process.pid,port:x,url:D,file:n,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,batch:e.batch,mode:e.mode,predicted:S})});e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(S?` trust: restricted \u2014 this bulb appears to use ${S}; re-run with --trust to enable it:
|
|
2347
2347
|
${t}
|
|
2348
2348
|
`:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
|
|
2349
2349
|
`),e.watch&&console.log(` Watching for changes...
|
|
2350
|
-
`);let R,$;if(e.watch&&o){let x=0,D=Promise.resolve();if(R=Dt({target:n,onChange:()=>{let K=++x;D=D.then(async()=>{if(K===x)try{console.log("Recompiling...");let q=await
|
|
2350
|
+
`);let R,$;if(e.watch&&o){let x=0,D=Promise.resolve();if(R=Dt({target:n,onChange:()=>{let K=++x;D=D.then(async()=>{if(K===x)try{console.log("Recompiling...");let q=await Su(n,!0,e.trust,r,e.batch);p=q.html,h=q.serverExports,m=q.bulb,f++,console.log(Bc(f)),o.emit("reload")}catch(q){console.error("Compile error:",q)}})}}),r){let{name:K,serveDir:q}=r;$=Dt({target:q,events:"all",onChange:()=>{console.log(`Local package '${K}' changed. Browser reloading...
|
|
2351
2351
|
`),o.emit("reload")}})}for(let K of b)await jt.stat(K).then(q=>q.isDirectory()).catch(()=>!1)&&C(Dt({target:K,events:"all",onChange:()=>{console.log(`Assets changed. Browser reloading...
|
|
2352
|
-
`),o.emit("reload")}}))}R&&C(R),$&&C($),C(()=>jt.rm(
|
|
2353
|
-
`):await
|
|
2352
|
+
`),o.emit("reload")}}))}R&&C(R),$&&C($),C(()=>jt.rm(vu(n),{force:!0})),e.open&&(c.some(x=>x.port===P)?console.log(` Reusing the open browser tab.
|
|
2353
|
+
`):await CR(_))}st();import{readFileSync as Sw,copyFileSync as _R,existsSync as NR}from"fs";import*as fe from"path";import{fileURLToPath as IR}from"url";import{EventEmitter as $R}from"events";import kw from"open";Kn();Be();lo();var Md=n=>`/agents/${n}/client.js`,RR=`
|
|
2354
2354
|
(() => {
|
|
2355
2355
|
const api = async (name, ...args) => {
|
|
2356
2356
|
const resp = await fetch('/__api/' + name, {
|
|
@@ -2379,16 +2379,16 @@ Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(pr
|
|
|
2379
2379
|
})
|
|
2380
2380
|
});
|
|
2381
2381
|
if (window.__TYPEBULB_WATCH__) {
|
|
2382
|
-
${
|
|
2382
|
+
${ao}
|
|
2383
2383
|
}
|
|
2384
2384
|
})();
|
|
2385
|
-
`;function
|
|
2385
|
+
`;function vw(n){let{name:e,agent:t,styles:r,mountHtml:s,watch:i,theme:o}=n,a=Md(t);return`<!DOCTYPE html>
|
|
2386
2386
|
<html>
|
|
2387
2387
|
<head>
|
|
2388
2388
|
<meta charset="utf-8">
|
|
2389
2389
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
2390
|
-
<title>${
|
|
2391
|
-
${
|
|
2390
|
+
<title>${io(e)} - typebulb</title>
|
|
2391
|
+
${oo(e,o)}
|
|
2392
2392
|
<style>
|
|
2393
2393
|
${jr}
|
|
2394
2394
|
</style>
|
|
@@ -2402,17 +2402,17 @@ ${s}
|
|
|
2402
2402
|
${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
|
|
2403
2403
|
|
|
2404
2404
|
<script>
|
|
2405
|
-
${
|
|
2405
|
+
${RR}
|
|
2406
2406
|
</script>
|
|
2407
2407
|
|
|
2408
2408
|
<script type="module" src="${a}"></script>
|
|
2409
2409
|
</body>
|
|
2410
|
-
</html>`}async function
|
|
2411
|
-
${r.url}`),n.open&&await
|
|
2412
|
-
`);let _=fe.join(u,t,"client"),C=fe.join(u,"core","client");async function R(){await(await import("esbuild")).build({entryPoints:[fe.join(_,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:fe.join(d,"client.js")});for(let D of["styles.css","index.html","typebulb.png","typebulb-inv.png"])
|
|
2413
|
-
`),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await
|
|
2414
|
-
`);let l=0,c=Promise.resolve();Dt({target:n,onChange:()=>{let d=++l;c=c.then(async()=>{if(d===l)try{console.log("Re-running..."),await a()}catch(u){console.error("Error:",u)}})}})}}st();Ve();import{Console as
|
|
2415
|
-
`)}catch(p){
|
|
2416
|
-
`),
|
|
2417
|
-
`),process.exit(1)}function
|
|
2418
|
-
${e}`),process.exit(1))}async function
|
|
2410
|
+
</html>`}async function xw(n){let e=process.cwd(),t=n.agentTarget;wb(t)||(console.error(`Unknown agent '${t}'. Known: ${tr().join(", ")}.`),process.exit(1));let r=await jc(e,t);if(r){console.log(`Mirror '${t}' is already running for this project:
|
|
2411
|
+
${r.url}`),n.open&&await kw(r.url);return}let s=Hi(process.pid),i=n.watch?new $R:void 0,o=Te(n.mode),a=await Sb(t),l=a.displayName||`${t} mirror`;Rt(o,fe.join(e,"mirror"));let c=fe.dirname(IR(import.meta.url)),d=fe.join(c,"agents",t),u=fe.join(c,"..","cli","agents"),f=fe.join(d,"styles.css"),p=fe.join(d,"index.html"),m=()=>vw({name:l,agent:t,styles:Sw(f,"utf8"),mountHtml:Sw(p,"utf8"),watch:n.watch}),{port:h,note:b}=await No({explicit:n.port,target:{kind:"mirror",agent:t},cwd:e}),{port:A,url:S,onCleanup:P}=await Sa({port:h,portNote:b,displayName:l,stopLog:s,makeServerOptions:x=>({getHtml:m,basePath:e,port:x,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${fe.posix.dirname(Md(t))}/`,dir:d}}),makeEntry:(x,D)=>({pid:process.pid,port:x,url:D,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t})});n.watch&&console.log(` Watching for changes...
|
|
2412
|
+
`);let _=fe.join(u,t,"client"),C=fe.join(u,"core","client");async function R(){await(await import("esbuild")).build({entryPoints:[fe.join(_,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:fe.join(d,"client.js")});for(let D of["styles.css","index.html","typebulb.png","typebulb-inv.png"])_R(fe.join(C,D),fe.join(d,D))}let $;if(n.watch&&i){let x=NR(_),D=!1;$=Dt({target:x?u:d,events:"all",onChange:async()=>{if(!D){D=!0;try{x&&await R(),console.log(`Mirror rebuilt. Browser reloading...
|
|
2413
|
+
`),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await kw(S),P(()=>a.shutdownSwitcher?.()),P(()=>a.shutdownComposer?.()),$&&P($)}st();Ve();import*as Ew from"path";async function Aw(n,e,t,r,s){let i=Te(t),o=!1;s&&await qn(n,s);let a=async()=>{let{bulb:l,config:c}=await qe(n);o||(Rt(i,n,l.server),o=!0),await ls(l.server,n,r,c.dependencies,s)};if(console.log(`Running ${Ew.basename(n)}...`),await a(),e){console.log(`Watching for changes...
|
|
2414
|
+
`);let l=0,c=Promise.resolve();Dt({target:n,onChange:()=>{let d=++l;c=c.then(async()=>{if(d===l)try{console.log("Re-running..."),await a()}catch(u){console.error("Error:",u)}})}})}}st();Ve();import{Console as LR}from"node:console";Be();async function Pw(n,e,t,r,s){FR();try{let p=Cn(await Q(),n)[0];p&&(Ki(p.pid,We(p.pid).offset),console.error(`note: 'call' boots a fresh server.ts instance; the running server (${p.url}) is not contacted \u2014 state shared with it must live on disk.`))}catch{}let i=Te(t),{bulb:o,config:a}=await qe(n);o.server||Cs("This bulb has no **server.ts** block; nothing to call."),Rt(i,n,o.server),s&&await qn(n,s);let l;try{l=await ls(o.server,n,r,a.dependencies,s)}catch(p){Cs(p instanceof Error?p.message:String(p))}let c=wa(l,e.fn);if(!c){let p=[...Object.keys(l).filter(m=>typeof l[m]=="function"),...Object.keys(ba)];Cs(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let d=await MR(e);if(va(c)){try{for await(let p of c(...d))await Ow(JSON.stringify(p,Cw)+`
|
|
2415
|
+
`)}catch(p){Cs(p instanceof Error?p.stack??p.message:String(p))}return Tw(0)}let u;try{u=await c(...d)}catch(p){Cs(p instanceof Error?p.stack??p.message:String(p))}let f=jR(u);f!==void 0&&await Ow(f+`
|
|
2416
|
+
`),Tw(0)}function Tw(n){process.exitCode=n,setTimeout(()=>process.exit(n),2e3).unref?.()}async function MR(n){if(n.hasArgsFlag){let e=n.argsJson??"";return e==="-"&&(e=await UR()),DR(e)}return BR(n.positional)}function BR(n){return n.map(e=>{try{return JSON.parse(e)}catch{return e}})}function DR(n){let e;try{e=JSON.parse(n)}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 jR(n){if(n!==void 0)return JSON.stringify(n,Cw,2)}function Cw(n,e){return typeof e=="bigint"?e.toString():e}function Cs(n){process.stderr.write(n+`
|
|
2417
|
+
`),process.exit(1)}function FR(){let n=new LR(process.stderr,process.stderr);console.log=n.log.bind(n),console.info=n.info.bind(n),console.debug=n.debug.bind(n),console.dir=n.dir.bind(n)}function Ow(n){return new Promise((e,t)=>{process.stdout.write(n,r=>r?t(r):e())})}async function UR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}qi();for(let n of[process.stdout,process.stderr])n.on("error",e=>{if(e?.code!=="EPIPE")throw e});function Rw(n,e){n||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
|
|
2418
|
+
${e}`),process.exit(1))}async function qR(){let n=Eb(process.argv.slice(2));if(n.version&&(console.log(`typebulb ${Me}`),process.exit(0)),n.help&&(Ab(),process.exit(0)),kb(),n.subcommand==="logs"){await tw(n.file||void 0,{follow:n.follow,clear:n.clear,run:n.run,lines:n.lines});return}if(n.subcommand==="wait"){await nw(n.file||void 0,{match:n.match,timeoutSec:n.timeoutSec});return}if(n.subcommand==="stop"){n.stopScope?await sw(n.stopScope):await rw(n.file||void 0);return}if(n.subcommand==="send"){await ow(n.file,n.sendMessage,n.sendWaitMs??0);return}if(n.subcommand==="models"){await Gb(n.mode);return}if(n.subcommand==="slug"){Xb(n.slugName);return}if(n.subcommand==="pull"){await ay(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="push"){await cy(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="agent"){await(n.agentTarget?xw(n):zb(Me));return}if(n.subcommand==="trust"||n.subcommand==="untrust"){await Wb(n.file||void 0,n.subcommand==="trust");return}let e;if(!n.file||n.file==="."){let l=await qg(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=ut.resolve(n.file);if(await _w.access(e).then(()=>!0,()=>!1)||(tr().includes(n.file)&&(console.error(`To open the ${n.file} agent mirror, run: npx typebulb agent:${n.file}`),process.exit(1)),console.error(`File not found: ${e}`+(ut.isAbsolute(n.file)?"":` (resolved from cwd ${process.cwd()})`)),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),n.subcommand==="get"){await lw(e,n.blockKind);return}if(n.subcommand==="put"){await dw(e,n.blockPairs);return}let r=n.file&&n.file!=="."?n.file:ut.relative(process.cwd(),e)||ut.basename(e),s=`npx typebulb --trust ${r.includes(" ")?`"${r}"`:r}`;if(n.subcommand==="predict"){await Hb(e,s);return}let i=!n.noTrust&&sn(e);i&&!n.trust&&console.error("trust: granted from memory (run `typebulb untrust` to revoke)"),n.trust=n.noTrust?!1:n.trust||i;let o;try{o=await qe(e)}catch{}let a;if(n.local){o&&!(n.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${n.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&n.subcommand!=="call"&&(!o.bulb.code||n.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await Yd(n.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.error(`replace: ${a.name} \u2192 ${ut.relative(process.cwd(),a.dir)||"."}`)}if(n.subcommand==="check"){await Kb(e,a);return}if(n.subcommand==="call"){Rw(n.trust,s),await Pw(e,{fn:n.fn,positional:n.callArgs,argsJson:n.argsJson,hasArgsFlag:n.hasArgsFlag},n.mode,a,n.batch);return}if(o&&o.bulb.server&&(Yi(o.bulb)||n.server)){Rw(n.trust,s),await Aw(e,n.watch,n.mode,a,n.batch);return}await ww(e,n,s,a)}qR().catch(n=>{console.error("Error:",n.message),process.exit(1)});
|