typebulb 0.56.1 → 0.56.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/SKILL.md +6 -5
- package/dist/agents/claude/client.js +14 -3
- package/dist/agents/codex/client.js +14 -3
- package/dist/agents/pi/client.js +14 -3
- package/dist/index.js +247 -234
- package/dist/render.js +14 -3
- package/dist/servers.js +14 -3
- package/package.json +1 -1
package/dist/render.js
CHANGED
|
@@ -582,8 +582,8 @@ ${B1}
|
|
|
582
582
|
});
|
|
583
583
|
} catch (e) {}
|
|
584
584
|
})();
|
|
585
|
-
<\/script>`}var Mk=30*6e4;var hp
|
|
586
|
-
const es = new EventSource(
|
|
585
|
+
<\/script>`}var Mk=30*6e4;var hp=(t="'/__reload'")=>`
|
|
586
|
+
const es = new EventSource(${t});
|
|
587
587
|
let bootId = null;
|
|
588
588
|
let firstErrorAt = 0;
|
|
589
589
|
const RETRY_WINDOW_MS = ${Mk};
|
|
@@ -1400,7 +1400,18 @@ ${B1}
|
|
|
1400
1400
|
// origin, not an inline bulb); a srcdoc inline bulb or a file:// static export has no server, so onMessage just
|
|
1401
1401
|
// stays inert there. Opening it independent of watch is what lets send reach a --no-watch page.
|
|
1402
1402
|
if (!isFramed && location.protocol.indexOf('http') === 0) {
|
|
1403
|
-
|
|
1403
|
+
// A page the CLI opened arrives as #tb-relay (TB-VSCode-Browser.md, one CLI-opened page): it
|
|
1404
|
+
// announces itself on its stream under a per-document id, and strips the hash so a reload is an
|
|
1405
|
+
// ordinary page. Told to yield, it closes itself; a tab the browser won't let a script close
|
|
1406
|
+
// parks instead, which still stops the bulb running twice.
|
|
1407
|
+
const relayed = location.hash === '#tb-relay';
|
|
1408
|
+
if (relayed) history.replaceState(null, '', location.pathname + location.search);
|
|
1409
|
+
${hp("relayed ? '/__reload?relay=' + Math.random().toString(36).slice(2) : '/__reload'")}
|
|
1410
|
+
es.addEventListener('yield', () => {
|
|
1411
|
+
es.close();
|
|
1412
|
+
window.close();
|
|
1413
|
+
setTimeout(() => location.replace('/__parked'), 250);
|
|
1414
|
+
});
|
|
1404
1415
|
es.addEventListener('message', async (e) => {
|
|
1405
1416
|
// Wire envelope { id?, payload } (JSON \u2014 SSE-line-safe). tb:* payloads are the shim's reserved
|
|
1406
1417
|
// namespace (TB-Interrogation.md): answered by a built-in handler, never delivered to
|
package/dist/servers.js
CHANGED
|
@@ -290,8 +290,8 @@ ${s}`}function Z1(t){let e=pr.filter(n=>t[n]).map(n=>T0(n,t[n]));return["---",`f
|
|
|
290
290
|
`).length-1}));return r}function tk(t){return wO(ZT(t)).map(e=>e.root)}var Lr="https://esm.sh",zo="https://cdn.jsdelivr.net/npm/",o1="https://data.jsdelivr.com/v1/package/npm/";function nk(t){let e=(t||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var kt=class t{constructor(e,n,r){let s=typeof e=="string"?t.parse(e):e;this.name=s.name,this.version=Ms(n??s.version),this.subpath=Ms(r??s.subpath)}static parse(e){let n=nk(e||"");if(!n.length)return new t({name:""});if(n[0].startsWith("@")){let s=n[0],[o,i]=rk(n[1]??""),a=Ms(n.slice(2).join("/"));return new t({name:`${s}/${o}`,version:i,subpath:a})}else{let[s,o]=rk(n[0]),i=Ms(n.slice(1).join("/"));return new t({name:s,version:o,subpath:i})}}static fromUrl(e){try{let n=new URL(e),r=new URL(Lr).host,s=new URL(zo).host;if(n.host===r){let o=nk(n.pathname.replace(/^\/v\d+\//,"/"));if(!o.length)return;let i=o[0].startsWith("@")?`${o[0]}/${o[1]??""}`:o[0];return t.parse(i)}if(n.host===s){let o=n.pathname.split("/npm/")[1];if(!o)return;let i=o.split("/")[0]||"";return t.parse(i)}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 t.parse(e).name}withVersion(e){return new t({name:this.name,version:Ms(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},Ms=t=>t&&t.length?t:void 0,rk=t=>{let e=t.indexOf("@");return e<0?[t,void 0]:[t.slice(0,e),Ms(t.slice(e+1))]};async function Xt(t){try{return await t()}catch{return}}function sk(t){let e=t||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}var Zo=class{constructor(e,n){this.cache=e,this.http=n,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let n=typeof e=="string"?new kt(e):e;return`${zo}${n.name}${n.version?`@${n.version}`:""}/`}file(e,n){return new URL(sk(n),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,n={}){let{target:r="es2022",bundle:s=!1,external:o}=n,i=new URLSearchParams({target:r});return s&&i.append("bundle",""),o?.length&&i.append("external",o.join(",")),`${Lr}/${e}?${i.toString()}`}async resolveExactVersion(e){let n=Date.now(),r=this.pinCache.get(e);if(r&&n-r.ts<this.pinMs)return r.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${Lr}/${e}`]);return this.pinCache.set(e,{value:s,ts:n}),s}async tryResolveFromUrls(e){for(let n of e){let r=await Xt(()=>this.http.head(n)),s=this.parseVersionFromUrl(r?.url||n);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let n=await this.cache.getIndex(e);if(n&&Date.now()-n.updatedAt<this.versionsIndexMs)return{versions:n.versions,distTags:n.distTags};let r=await Xt(()=>this.http.getJson(`${o1}${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 n=kt.fromUrl(e)?.version;return n&&/\d+\.\d+\.\d+/.test(n)?n:void 0}async fetchPackageMeta(e,n){let r=await this.cache.getMeta(e,n);if(r&&Date.now()-r.updatedAt<this.metaTtlMs){let{dependencies:h,peerDependencies:u,peerDependenciesMeta:p}=r;return{name:e,version:n,dependencies:h,peerDependencies:u,peerDependenciesMeta:p}}let s=this.packageJson(new kt(`${e}@${n}`)),o=await Xt(()=>this.http.getJson(s));if(!o)return;let i=h=>h&&Object.keys(h).length?h:void 0,a=i(o.dependencies),l=i(o.peerDependencies),c=i(o.peerDependenciesMeta);return await this.cache.setMeta(e,n,a,l,c),{name:e,version:n,dependencies:a,peerDependencies:l,peerDependenciesMeta:c}}};var ok=t=>t.startsWith("@types/"),ei=t=>Object.keys(t?.peerDependencies||{}).filter(e=>!ok(e)),i1=t=>Object.keys(t?.dependencies||{}).filter(e=>!ok(e)),bO=t=>ei(t).filter(e=>!t?.peerDependenciesMeta?.[e]?.optional),ti=class{constructor(e){this.cdn=e}async resolve(e,n){let r=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:o}=await this.expandWithPeers(r,n),i=this.computeFlags(s);return{allRoots:s,flags:i,autoAddedPeers:o}}async fetchMeta(e){return Promise.all(e.map(async({name:n,version:r})=>({name:n,version:r,meta:await this.cdn.fetchPackageMeta(n,r)})))}async expandWithPeers(e,n){let r=new Map(e.map(o=>[o.name,o])),s=[];for(let o of e)for(let i of bO(o.meta))!r.has(i)&&!s.some(a=>a.name===i)&&s.push({name:i,requiredBy:o.name});for(let{name:o,requiredBy:i}of s)try{let a=await n(o),l=await this.cdn.fetchPackageMeta(o,a);r.set(o,{name:o,version:a,meta:l})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${o}" for "${i}":`,a)}return{allRoots:[...r.values()],autoAddedPeers:s.filter(o=>r.has(o.name))}}computeFlags(e){let n=new Set(e.flatMap(o=>ei(o.meta))),r=new Map;for(let o of e)for(let i of i1(o.meta))r.set(i,(r.get(i)||0)+1);let s=new Set([...r.entries()].filter(([,o])=>o>=2).map(([o])=>o));return new Map(e.map(o=>[o.name,{isPeerRoot:n.has(o.name),hasPeers:ei(o.meta).length>0,isSharedDep:s.has(o.name)}]))}};var ni=class{constructor(e,n,r){this.cache=e,this.cdn=n,this.semver=r}async learnExactVersion(e){let n=await Xt(()=>this.cdn.fetchVersionsIndex(e));if(n?.versions?.length){let r=this.semver.selectBestVersion(n.versions,{distTags:n.distTags});if(r)return r}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,n){if(!n)return this.learnExactVersion(e);let r=a=>!this.semver.isRange(n)||this.semver.satisfies(n,a),s=await this.cache.getPinnedExact(e,n);if(s){if(this.semver.isExactVersion(s)&&r(s))return s;console.debug("[typebulb] cached version for",e,"is not exact or not in",n,"(",s,"); re-resolving from registry")}let o=async a=>{if(a&&this.semver.isExactVersion(a)&&r(a))return await this.cache.setPinnedExact(e,n,a),a},i=await Xt(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let a=this.semver.selectBestVersion(i.versions,{range:n,distTags:i.distTags});if(a){let l=await o(a);if(l)return l}else{console.debug("[typebulb] refreshing version cache for",e,"(",n,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let l=await Xt(()=>this.cdn.fetchVersionsIndex(e));if(l?.versions?.length){let c=await o(this.semver.selectBestVersion(l.versions,{range:n,distTags:l.distTags}));if(c)return c}}}return o(await this.cdn.resolveExactVersion(`${e}@${n}`))}async effectivePackage(e,n){let r=new kt(e),s=r.root(),o=n[s],i=o?await Xt(()=>this.resolveExactForRoot(s,o)):void 0;return{effectivePackage:i?r.withVersion(i).format():e,root:s,range:o,pinned:i}}};var ik;(function(t){t[t.Static=1]="Static",t[t.Dynamic=2]="Dynamic",t[t.ImportMeta=3]="ImportMeta",t[t.StaticSourcePhase=4]="StaticSourcePhase",t[t.DynamicSourcePhase=5]="DynamicSourcePhase",t[t.StaticDeferPhase=6]="StaticDeferPhase",t[t.DynamicDeferPhase=7]="DynamicDeferPhase"})(ik||(ik={}));var xO=new Uint8Array(new Uint16Array([1]).buffer)[0]===1;function hl(t,e="@"){if(!Xe)return ml.then((()=>hl(t)));let n=t.length+1,r=(Xe.__heap_base.value||Xe.__heap_base)+4*n-Xe.memory.buffer.byteLength;r>0&&Xe.memory.grow(Math.ceil(r/65536));let s=Xe.sa(n-1);if((xO?CO:EO)(t,new Uint16Array(Xe.memory.buffer,s,n)),!Xe.parse())throw Object.assign(new Error(`Parse error ${e}:${t.slice(0,Xe.e()).split(`
|
|
291
291
|
`).length}:${Xe.e()-t.lastIndexOf(`
|
|
292
292
|
`,Xe.e()-1)}`),{idx:Xe.e()});let o=[],i=[];for(;Xe.ri();){let l=Xe.is(),c=Xe.ie(),h=Xe.it(),u=Xe.ai(),p=Xe.id(),m=Xe.ss(),b=Xe.se(),k;Xe.ip()&&(k=a(t.slice(p===-1?l-1:l,p===-1?c+1:c))),o.push({n:k,t:h,s:l,e:c,ss:m,se:b,d:p,a:u})}for(;Xe.re();){let l=Xe.es(),c=Xe.ee(),h=Xe.els(),u=Xe.ele(),p=t.slice(l,c),m=p[0],b=h<0?void 0:t.slice(h,u),k=b?b[0]:"";i.push({s:l,e:c,ls:h,le:u,n:m==='"'||m==="'"?a(p):p,ln:k==='"'||k==="'"?a(b):b})}function a(l){try{return(0,eval)(l)}catch{}}return[o,i,!!Xe.f(),!!Xe.ms()]}function EO(t,e){let n=t.length,r=0;for(;r<n;){let s=t.charCodeAt(r);e[r++]=(255&s)<<8|s>>>8}}function CO(t,e){let n=t.length,r=0;for(;r<n;)e[r]=t.charCodeAt(r++)}var Xe,IO=()=>{return t="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GzYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQIMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhAiABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIAJBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiACECA0BBACACQQJqNgKwCgJAAkACQEEBECkiAkEiRg0AIAJBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQIMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSECDAELIAIQLCECCwJAIAJBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAkEiRg0AIAJBJ0YNAEEAIAE2ArAKDwsgAhAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAkEsRg0AIAJB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiECDAELC0EAKALwCSIBIAA2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=",typeof Buffer<"u"?Buffer.from(t,"base64"):Uint8Array.from(atob(t),(e=>e.charCodeAt(0)));var t},ml=WebAssembly.compile(IO()).then(WebAssembly.instantiate).then((({exports:t})=>{Xe=t}));var qs=class t{constructor(e,n,r){this.version=e,this.cdn=n,this.peer=r}extractImportsSync(e){let n=new Set;for(let r of t.importPatterns){r.lastIndex=0;for(let s of e.matchAll(r))kt.isBare(s[1])&&n.add(s[1])}return Array.from(n)}async extractImports(e){let n=new Set,r=s=>{kt.isBare(s)&&n.add(s)};try{await ml;let[s]=hl(e);s.forEach(o=>r(e.slice(o.s,o.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(n)}async buildImportMap(e,n,r){let s=(await this.extractImports(e)).filter(u=>!r?.has(kt.rootOf(u))),o=[...new Set(s.map(kt.rootOf))],i=await Promise.all(o.map(async u=>({name:u,version:await this.resolveVersion(u,n)}))),{allRoots:a,flags:l,autoAddedPeers:c}=await this.peer.resolve(i,u=>this.resolveVersion(u,n)),h=this.buildEntries([...s,...c.map(u=>u.name)],a,l);return{importMap:{imports:Object.fromEntries(h)},prefetchUrls:h.map(([,u])=>u)}}async resolveVersion(e,n){let r=n[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,n,r){let s=new Map(n.map(m=>[m.name,m])),o=m=>{let b=s.get(kt.rootOf(m));return new kt(m).withVersion(b.version).format()},i=new Set([...r.entries()].filter(([,m])=>m.isPeerRoot||m.isSharedDep).map(([m])=>m)),a=new Set(e.filter(m=>m!==kt.rootOf(m)).map(kt.rootOf)),l=[],c=new Set,h=new Set(e.filter(m=>m===kt.rootOf(m))),u=new Set;for(let m of e){let b=kt.rootOf(m),k=s.get(b),{isPeerRoot:A,hasPeers:R,isSharedDep:Q}=r.get(b),Y=a.has(b),H=m!==b,Z=!(A||Q)&&(Y||!R),pe=this.singletonDepsOf(k,i),J=H&&h.has(b);J&&u.add(b);let ke=J?[...pe,b]:pe.length?pe:void 0;l.push([m,this.cdn.buildEsmUrl(o(m),{bundle:Z,external:ke})]),c.add(m)}let p=new Set([...i,...u]);for(let m of p)s.has(m)&&(c.has(m)||l.push([m,this.cdn.buildEsmUrl(o(m),{})]),l.push([`${m}/`,`${Lr}/${o(m)}/`]));return l}singletonDepsOf(e,n){return[...new Set([...ei(e.meta),...i1(e.meta)])].filter(r=>n.has(r))}};qs.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];var zt=ki(C1(),1),_l=class{cmp(e,n){return e===n?0:(0,zt.gt)(e,n)?1:(0,zt.gt)(n,e)?-1:0}satisfies(e,n){return!e||!e.trim()?!0:!!(0,zt.satisfies)(n,e,{includePrerelease:!0})}selectBestVersion(e,n){if(!e?.length)return;let r=n?.range?.trim()||"*",s=n?.preferStable??!0,o=n?.distTags?.latest;if(o&&e.includes(o)&&this.satisfies(r,o))return o;if(s){let a=(0,zt.maxSatisfying)(e,r,{includePrerelease:!1});if(a)return a}return(0,zt.maxSatisfying)(e,r,{includePrerelease:!0})??void 0}majorOf(e){return(0,zt.major)(e)}isExactVersion(e){return(0,zt.valid)(e)!==null}isRange(e){return(0,zt.validRange)(e)!==null}},I1=new _l;var ui=class{constructor(e){this.store=e}async isNegative(e){let n=await Xt(()=>this.store.get(e));return!!n&&n.until>Date.now()}async recordNegative(e){let r=((await Xt(()=>this.store.get(e)))?.attempts||0)+1;await Xt(()=>this.store.set(e,{until:Date.now()+bQ(r),attempts:r}))}async clearNegative(e){await Xt(()=>this.store.delete(e))}};function bQ(t){return Math.min(9e5*Math.pow(2,Math.max(0,t-1)),864e5)}function VA(t,e){let n=new Zo(t,e),r=new ti(n),s=new ni(t,n,I1);return{packageService:new qs(s,n,r),versionResolver:s,cdnClient:n,peerResolver:r}}import*as rv from"fs/promises";import*as Ln from"path";import*as Mr from"fs/promises";import*as Qr from"path";import*as ZA from"os";import*as _1 from"fs/promises";import*as WA from"crypto";function Sl(t){return WA.createHash("sha1").update(t).digest("hex")}async function ns(t){try{return JSON.parse(await _1.readFile(t,"utf8"))}catch{return}}async function XA(t){try{return await _1.readFile(t,"utf8")}catch{return}}var zA=1,Dr=Qr.join(ZA.homedir(),".typebulb","cache"),pi=Qr.join(Dr,"packages"),UK=Qr.join(Dr,"proxy"),JK=Qr.join(Dr,"dts"),HK=Qr.join(Dr,"emit"),S1;function ar(){return S1||(S1=xQ().catch(()=>cs())),S1}async function xQ(){await Mr.mkdir(Dr,{recursive:!0});let t=Qr.join(Dr,"version.json");if((await ns(t))?.version===zA)return;let n=await Mr.readdir(Dr).catch(()=>[]);await Promise.all(n.map(r=>Mr.rm(Qr.join(Dr,r),{recursive:!0,force:!0}))),await Mr.writeFile(t,JSON.stringify({version:zA})+`
|
|
293
|
-
`,"utf8")}import*as qr from"fs/promises";import*as ev from"path";async function Fs(t,e){let n=`${t}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;try{await qr.mkdir(ev.dirname(t),{recursive:!0}),await qr.writeFile(n,e,"utf8")}catch{cs();return}await qr.rename(n,t).catch(async()=>{await qr.rm(n,{force:!0}).catch(()=>{})})}var Nl=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=ns(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,n){let r=await this.load();r.set(e,n),await this.persist(r)}async delete(e){let n=await this.load();n.delete(e)&&await this.persist(n)}async persist(e){await Fs(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var N1=Ln.join(pi,"indexes"),tv=Ln.join(pi,"pinned"),EQ=Ln.join(pi,"meta"),CQ=Ln.join(pi,"negative.json"),Bl=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new ui(new Nl(CQ));async getPinnedExact(e,n){let r=`${e}@${n}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await ar();let s=await XA(Ln.join(tv,Sl(r)+".txt"));return this.pinnedMem.set(r,s),s}async setPinnedExact(e,n,r){let s=`${e}@${n}`;this.pinnedMem.set(s,r),await ar(),await Fs(Ln.join(tv,Sl(s)+".txt"),r)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await ar();let n=await ns(Ln.join(N1,Pl(e)+".json"));return this.indexMem.set(e,n),n}async setIndex(e,n,r){let s={versions:n,distTags:r,updatedAt:Date.now()};this.indexMem.set(e,s),await ar(),await Fs(Ln.join(N1,Pl(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await rv.rm(Ln.join(N1,Pl(e)+".json"),{force:!0}).catch(()=>{})}async isNegative(e){return await ar(),this.negativeCache.isNegative(e)}async recordNegative(e){await ar(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,n){let r=`${e}@${n}`;if(this.metaMem.has(r))return this.metaMem.get(r);await ar();let s=await ns(nv(e,n));return this.metaMem.set(r,s),s}async setMeta(e,n,r,s,o){let i={dependencies:r,peerDependencies:s,peerDependenciesMeta:o,updatedAt:Date.now()};this.metaMem.set(`${e}@${n}`,i),await ar(),await Fs(nv(e,n),JSON.stringify(i))}};function nv(t,e){return Ln.join(EQ,Pl(t),encodeURIComponent(e)+".json")}function Pl(t){return t.replace(/\//g,"__")}var sv={async getJson(t){try{let e=await fetch(t,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(t){try{let e=await fetch(t,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var IQ=new Bl,{packageService:_Q,versionResolver:cU,cdnClient:uU,peerResolver:pU}=VA(IQ,sv);var PQ=30*6e4;var ov
|
|
294
|
-
const es = new EventSource(
|
|
293
|
+
`,"utf8")}import*as qr from"fs/promises";import*as ev from"path";async function Fs(t,e){let n=`${t}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;try{await qr.mkdir(ev.dirname(t),{recursive:!0}),await qr.writeFile(n,e,"utf8")}catch{cs();return}await qr.rename(n,t).catch(async()=>{await qr.rm(n,{force:!0}).catch(()=>{})})}var Nl=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=ns(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,n){let r=await this.load();r.set(e,n),await this.persist(r)}async delete(e){let n=await this.load();n.delete(e)&&await this.persist(n)}async persist(e){await Fs(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var N1=Ln.join(pi,"indexes"),tv=Ln.join(pi,"pinned"),EQ=Ln.join(pi,"meta"),CQ=Ln.join(pi,"negative.json"),Bl=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new ui(new Nl(CQ));async getPinnedExact(e,n){let r=`${e}@${n}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await ar();let s=await XA(Ln.join(tv,Sl(r)+".txt"));return this.pinnedMem.set(r,s),s}async setPinnedExact(e,n,r){let s=`${e}@${n}`;this.pinnedMem.set(s,r),await ar(),await Fs(Ln.join(tv,Sl(s)+".txt"),r)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await ar();let n=await ns(Ln.join(N1,Pl(e)+".json"));return this.indexMem.set(e,n),n}async setIndex(e,n,r){let s={versions:n,distTags:r,updatedAt:Date.now()};this.indexMem.set(e,s),await ar(),await Fs(Ln.join(N1,Pl(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await rv.rm(Ln.join(N1,Pl(e)+".json"),{force:!0}).catch(()=>{})}async isNegative(e){return await ar(),this.negativeCache.isNegative(e)}async recordNegative(e){await ar(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,n){let r=`${e}@${n}`;if(this.metaMem.has(r))return this.metaMem.get(r);await ar();let s=await ns(nv(e,n));return this.metaMem.set(r,s),s}async setMeta(e,n,r,s,o){let i={dependencies:r,peerDependencies:s,peerDependenciesMeta:o,updatedAt:Date.now()};this.metaMem.set(`${e}@${n}`,i),await ar(),await Fs(nv(e,n),JSON.stringify(i))}};function nv(t,e){return Ln.join(EQ,Pl(t),encodeURIComponent(e)+".json")}function Pl(t){return t.replace(/\//g,"__")}var sv={async getJson(t){try{let e=await fetch(t,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(t){try{let e=await fetch(t,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var IQ=new Bl,{packageService:_Q,versionResolver:cU,cdnClient:uU,peerResolver:pU}=VA(IQ,sv);var PQ=30*6e4;var ov=(t="'/__reload'")=>`
|
|
294
|
+
const es = new EventSource(${t});
|
|
295
295
|
let bootId = null;
|
|
296
296
|
let firstErrorAt = 0;
|
|
297
297
|
const RETRY_WINDOW_MS = ${PQ};
|
|
@@ -1108,7 +1108,18 @@ ${s}`}function Z1(t){let e=pr.filter(n=>t[n]).map(n=>T0(n,t[n]));return["---",`f
|
|
|
1108
1108
|
// origin, not an inline bulb); a srcdoc inline bulb or a file:// static export has no server, so onMessage just
|
|
1109
1109
|
// stays inert there. Opening it independent of watch is what lets send reach a --no-watch page.
|
|
1110
1110
|
if (!isFramed && location.protocol.indexOf('http') === 0) {
|
|
1111
|
-
|
|
1111
|
+
// A page the CLI opened arrives as #tb-relay (TB-VSCode-Browser.md, one CLI-opened page): it
|
|
1112
|
+
// announces itself on its stream under a per-document id, and strips the hash so a reload is an
|
|
1113
|
+
// ordinary page. Told to yield, it closes itself; a tab the browser won't let a script close
|
|
1114
|
+
// parks instead, which still stops the bulb running twice.
|
|
1115
|
+
const relayed = location.hash === '#tb-relay';
|
|
1116
|
+
if (relayed) history.replaceState(null, '', location.pathname + location.search);
|
|
1117
|
+
${ov("relayed ? '/__reload?relay=' + Math.random().toString(36).slice(2) : '/__reload'")}
|
|
1118
|
+
es.addEventListener('yield', () => {
|
|
1119
|
+
es.close();
|
|
1120
|
+
window.close();
|
|
1121
|
+
setTimeout(() => location.replace('/__parked'), 250);
|
|
1122
|
+
});
|
|
1112
1123
|
es.addEventListener('message', async (e) => {
|
|
1113
1124
|
// Wire envelope { id?, payload } (JSON \u2014 SSE-line-safe). tb:* payloads are the shim's reserved
|
|
1114
1125
|
// namespace (TB-Interrogation.md): answered by a built-in handler, never delivered to
|