typebulb 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/claude/client.js +341 -205
- package/dist/agents/claude/styles.css +3 -21
- package/dist/ai/aiProvider.d.ts +59 -0
- package/dist/ai/aiProvider.d.ts.map +1 -0
- package/dist/ai/aiProvider.js +109 -0
- package/dist/ai/aiProvider.js.map +1 -0
- package/dist/ai/aiProviders.d.ts +28 -0
- package/dist/ai/aiProviders.d.ts.map +1 -0
- package/dist/ai/aiProviders.js +47 -0
- package/dist/ai/aiProviders.js.map +1 -0
- package/dist/ai/chat.d.ts +32 -0
- package/dist/ai/chat.d.ts.map +1 -0
- package/dist/ai/chat.js +5 -0
- package/dist/ai/chat.js.map +1 -0
- package/dist/ai/index.d.ts +9 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +11 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/protocol.d.ts +18 -0
- package/dist/ai/protocol.d.ts.map +1 -0
- package/dist/ai/protocol.js +3 -0
- package/dist/ai/protocol.js.map +1 -0
- package/dist/ai/providers/anthropic.d.ts +123 -0
- package/dist/ai/providers/anthropic.d.ts.map +1 -0
- package/dist/ai/providers/anthropic.js +130 -0
- package/dist/ai/providers/anthropic.js.map +1 -0
- package/dist/ai/providers/gemini.d.ts +62 -0
- package/dist/ai/providers/gemini.d.ts.map +1 -0
- package/dist/ai/providers/gemini.js +136 -0
- package/dist/ai/providers/gemini.js.map +1 -0
- package/dist/ai/providers/openAI.d.ts +146 -0
- package/dist/ai/providers/openAI.d.ts.map +1 -0
- package/dist/ai/providers/openAI.js +127 -0
- package/dist/ai/providers/openAI.js.map +1 -0
- package/dist/ai/providers/openRouter.d.ts +65 -0
- package/dist/ai/providers/openRouter.d.ts.map +1 -0
- package/dist/ai/providers/openRouter.js +82 -0
- package/dist/ai/providers/openRouter.js.map +1 -0
- package/dist/ai/sseParser.d.ts +32 -0
- package/dist/ai/sseParser.d.ts.map +1 -0
- package/dist/ai/sseParser.js +121 -0
- package/dist/ai/sseParser.js.map +1 -0
- package/dist/ai/stream.d.ts +20 -0
- package/dist/ai/stream.d.ts.map +1 -0
- package/dist/ai/stream.js +6 -0
- package/dist/ai/stream.js.map +1 -0
- package/dist/dts/cache.d.ts +30 -0
- package/dist/dts/cache.d.ts.map +1 -0
- package/dist/dts/cache.js +2 -0
- package/dist/dts/cache.js.map +1 -0
- package/dist/dts/definitelyTypedProvider.d.ts +20 -0
- package/dist/dts/definitelyTypedProvider.d.ts.map +1 -0
- package/dist/dts/definitelyTypedProvider.js +93 -0
- package/dist/dts/definitelyTypedProvider.js.map +1 -0
- package/dist/dts/dtsConfig.d.ts +12 -0
- package/dist/dts/dtsConfig.d.ts.map +1 -0
- package/dist/dts/dtsConfig.js +24 -0
- package/dist/dts/dtsConfig.js.map +1 -0
- package/dist/dts/dtsResolver.d.ts +63 -0
- package/dist/dts/dtsResolver.d.ts.map +1 -0
- package/dist/dts/dtsResolver.js +272 -0
- package/dist/dts/dtsResolver.js.map +1 -0
- package/dist/dts/fetchDts.d.ts +13 -0
- package/dist/dts/fetchDts.d.ts.map +1 -0
- package/dist/dts/fetchDts.js +46 -0
- package/dist/dts/fetchDts.js.map +1 -0
- package/dist/dts/httpFetch.d.ts +17 -0
- package/dist/dts/httpFetch.d.ts.map +1 -0
- package/dist/dts/httpFetch.js +35 -0
- package/dist/dts/httpFetch.js.map +1 -0
- package/dist/dts/index.d.ts +14 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/index.js +14 -0
- package/dist/dts/index.js.map +1 -0
- package/dist/dts/libManifest.d.ts +41 -0
- package/dist/dts/libManifest.d.ts.map +1 -0
- package/dist/dts/libManifest.js +109 -0
- package/dist/dts/libManifest.js.map +1 -0
- package/dist/dts/negativeCacheHelper.d.ts +29 -0
- package/dist/dts/negativeCacheHelper.d.ts.map +1 -0
- package/dist/dts/negativeCacheHelper.js +44 -0
- package/dist/dts/negativeCacheHelper.js.map +1 -0
- package/dist/dts/tarballFetcher.d.ts +13 -0
- package/dist/dts/tarballFetcher.d.ts.map +1 -0
- package/dist/dts/tarballFetcher.js +58 -0
- package/dist/dts/tarballFetcher.js.map +1 -0
- package/dist/dts/tbTypings.d.ts +15 -0
- package/dist/dts/tbTypings.d.ts.map +1 -0
- package/dist/dts/tbTypings.js +210 -0
- package/dist/dts/tbTypings.js.map +1 -0
- package/dist/dts/typeProvider.d.ts +37 -0
- package/dist/dts/typeProvider.d.ts.map +1 -0
- package/dist/dts/typeProvider.js +30 -0
- package/dist/dts/typeProvider.js.map +1 -0
- package/dist/dts/typeRefScanner.d.ts +8 -0
- package/dist/dts/typeRefScanner.d.ts.map +1 -0
- package/dist/dts/typeRefScanner.js +33 -0
- package/dist/dts/typeRefScanner.js.map +1 -0
- package/dist/dts/typescriptProvider.d.ts +21 -0
- package/dist/dts/typescriptProvider.d.ts.map +1 -0
- package/dist/dts/typescriptProvider.js +140 -0
- package/dist/dts/typescriptProvider.js.map +1 -0
- package/dist/dts/virtualFs.d.ts +20 -0
- package/dist/dts/virtualFs.d.ts.map +1 -0
- package/dist/dts/virtualFs.js +48 -0
- package/dist/dts/virtualFs.js.map +1 -0
- package/dist/format/chunks.d.ts +20 -0
- package/dist/format/chunks.d.ts.map +1 -0
- package/dist/format/chunks.js +51 -0
- package/dist/format/chunks.js.map +1 -0
- package/dist/format/config.d.ts +17 -0
- package/dist/format/config.d.ts.map +1 -0
- package/dist/format/config.js +13 -0
- package/dist/format/config.js.map +1 -0
- package/dist/format/detection.d.ts +11 -0
- package/dist/format/detection.d.ts.map +1 -0
- package/dist/format/detection.js +43 -0
- package/dist/format/detection.js.map +1 -0
- package/dist/format/index.d.ts +8 -0
- package/dist/format/index.d.ts.map +1 -0
- package/dist/format/index.js +8 -0
- package/dist/format/index.js.map +1 -0
- package/dist/format/parse.d.ts +20 -0
- package/dist/format/parse.d.ts.map +1 -0
- package/dist/format/parse.js +88 -0
- package/dist/format/parse.js.map +1 -0
- package/dist/format/registry.d.ts +24 -0
- package/dist/format/registry.d.ts.map +1 -0
- package/dist/format/registry.js +31 -0
- package/dist/format/registry.js.map +1 -0
- package/dist/format/serialize.d.ts +8 -0
- package/dist/format/serialize.d.ts.map +1 -0
- package/dist/format/serialize.js +30 -0
- package/dist/format/serialize.js.map +1 -0
- package/dist/format/yaml.d.ts +4 -0
- package/dist/format/yaml.d.ts.map +1 -0
- package/dist/format/yaml.js +17 -0
- package/dist/format/yaml.js.map +1 -0
- package/dist/index.js +385 -84
- package/dist/lint/index.d.ts +29 -0
- package/dist/lint/index.d.ts.map +1 -0
- package/dist/lint/index.js +257 -0
- package/dist/lint/index.js.map +1 -0
- package/dist/render.js +174 -38
- package/dist/resolver/attempt.d.ts +2 -0
- package/dist/resolver/attempt.d.ts.map +1 -0
- package/dist/resolver/attempt.js +9 -0
- package/dist/resolver/attempt.js.map +1 -0
- package/dist/resolver/cdnClient.d.ts +46 -0
- package/dist/resolver/cdnClient.d.ts.map +1 -0
- package/dist/resolver/cdnClient.js +107 -0
- package/dist/resolver/cdnClient.js.map +1 -0
- package/dist/resolver/cdnConstants.d.ts +10 -0
- package/dist/resolver/cdnConstants.d.ts.map +1 -0
- package/dist/resolver/cdnConstants.js +10 -0
- package/dist/resolver/cdnConstants.js.map +1 -0
- package/dist/resolver/index.d.ts +20 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +20 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/packageRef.d.ts +21 -0
- package/dist/resolver/packageRef.d.ts.map +1 -0
- package/dist/resolver/packageRef.js +89 -0
- package/dist/resolver/packageRef.js.map +1 -0
- package/dist/resolver/packageService.d.ts +40 -0
- package/dist/resolver/packageService.d.ts.map +1 -0
- package/dist/resolver/packageService.js +156 -0
- package/dist/resolver/packageService.js.map +1 -0
- package/dist/resolver/peerResolver.d.ts +33 -0
- package/dist/resolver/peerResolver.d.ts.map +1 -0
- package/dist/resolver/peerResolver.js +66 -0
- package/dist/resolver/peerResolver.js.map +1 -0
- package/dist/resolver/semver.d.ts +17 -0
- package/dist/resolver/semver.d.ts.map +1 -0
- package/dist/resolver/semver.js +56 -0
- package/dist/resolver/semver.js.map +1 -0
- package/dist/resolver/types.d.ts +33 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +2 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/resolver/versionResolver.d.ts +29 -0
- package/dist/resolver/versionResolver.d.ts.map +1 -0
- package/dist/resolver/versionResolver.js +79 -0
- package/dist/resolver/versionResolver.js.map +1 -0
- package/dist/servers.js +142 -3
- package/dist/transpile/index.d.ts +19 -0
- package/dist/transpile/index.d.ts.map +1 -0
- package/dist/transpile/index.js +23 -0
- package/dist/transpile/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +99 -68
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exponential-backoff negative caching helper.
|
|
3
|
+
*
|
|
4
|
+
* Storage-agnostic: takes a NegativeCacheStore interface that consumers
|
|
5
|
+
* implement against Dexie (web), the filesystem (CLI), or in-memory (tests).
|
|
6
|
+
*/
|
|
7
|
+
/** Record shape stored per negative-cached key. */
|
|
8
|
+
export interface NegativeRecord {
|
|
9
|
+
until: number;
|
|
10
|
+
attempts: number;
|
|
11
|
+
}
|
|
12
|
+
/** Minimal key/value storage interface used by NegativeCacheHelper. */
|
|
13
|
+
export interface NegativeCacheStore {
|
|
14
|
+
get(key: string): Promise<NegativeRecord | undefined>;
|
|
15
|
+
set(key: string, record: NegativeRecord): Promise<void>;
|
|
16
|
+
delete(key: string): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Tracks "this thing doesn't exist" outcomes with progressive retry delays:
|
|
20
|
+
* 15m base, doubling per attempt, capped at 24h.
|
|
21
|
+
*/
|
|
22
|
+
export declare class NegativeCacheHelper {
|
|
23
|
+
private store;
|
|
24
|
+
constructor(store: NegativeCacheStore);
|
|
25
|
+
isNegative(key: string): Promise<boolean>;
|
|
26
|
+
recordNegative(key: string): Promise<void>;
|
|
27
|
+
clearNegative(key: string): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=negativeCacheHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negativeCacheHelper.d.ts","sourceRoot":"","sources":["../../dts/src/negativeCacheHelper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;IACrD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,kBAAkB;IAEvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exponential-backoff negative caching helper.
|
|
3
|
+
*
|
|
4
|
+
* Storage-agnostic: takes a NegativeCacheStore interface that consumers
|
|
5
|
+
* implement against Dexie (web), the filesystem (CLI), or in-memory (tests).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Tracks "this thing doesn't exist" outcomes with progressive retry delays:
|
|
9
|
+
* 15m base, doubling per attempt, capped at 24h.
|
|
10
|
+
*/
|
|
11
|
+
export class NegativeCacheHelper {
|
|
12
|
+
constructor(store) {
|
|
13
|
+
this.store = store;
|
|
14
|
+
}
|
|
15
|
+
async isNegative(key) {
|
|
16
|
+
const rec = await safe(() => this.store.get(key));
|
|
17
|
+
return !!rec && rec.until > Date.now();
|
|
18
|
+
}
|
|
19
|
+
async recordNegative(key) {
|
|
20
|
+
const existing = await safe(() => this.store.get(key));
|
|
21
|
+
const attempts = (existing?.attempts || 0) + 1;
|
|
22
|
+
await safe(() => this.store.set(key, {
|
|
23
|
+
until: Date.now() + computeNextTtlMs(attempts),
|
|
24
|
+
attempts,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
async clearNegative(key) {
|
|
28
|
+
await safe(() => this.store.delete(key));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function computeNextTtlMs(attempts) {
|
|
32
|
+
const base = 15 * 60 * 1000;
|
|
33
|
+
const max = 24 * 60 * 60 * 1000;
|
|
34
|
+
return Math.min(base * Math.pow(2, Math.max(0, attempts - 1)), max);
|
|
35
|
+
}
|
|
36
|
+
async function safe(fn) {
|
|
37
|
+
try {
|
|
38
|
+
return await fn();
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=negativeCacheHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negativeCacheHelper.js","sourceRoot":"","sources":["../../dts/src/negativeCacheHelper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC9B,YAAoB,KAAyB;QAAzB,UAAK,GAAL,KAAK,CAAoB;IAAG,CAAC;IAEjD,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAC9C,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC;YAC9C,QAAQ;SACT,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW;QAC7B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACrE,CAAC;AAED,KAAK,UAAU,IAAI,CAAI,EAAoB;IACzC,IAAI,CAAC;QAAC,OAAO,MAAM,EAAE,EAAE,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAA;IAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches an npm tarball from registry.npmjs.org and extracts .d.ts / .d.mts
|
|
3
|
+
* files in-memory. Uses fflate (isomorphic). No deps to inject — usable
|
|
4
|
+
* from both web client and CLI.
|
|
5
|
+
*/
|
|
6
|
+
export declare class TarballFetcher {
|
|
7
|
+
fetchAndExtract(packageName: string, version: string): Promise<Map<string, string>>;
|
|
8
|
+
private getTarballUrl;
|
|
9
|
+
private normalizeTarPath;
|
|
10
|
+
private extractDtsFiles;
|
|
11
|
+
}
|
|
12
|
+
export declare const tarballFetcher: TarballFetcher;
|
|
13
|
+
//# sourceMappingURL=tarballFetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tarballFetcher.d.ts","sourceRoot":"","sources":["../../dts/src/tarballFetcher.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,cAAc;IACnB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAUzF,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;CAkCxB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { gunzipSync } from 'fflate';
|
|
2
|
+
import { fetchWithRetry } from './httpFetch.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fetches an npm tarball from registry.npmjs.org and extracts .d.ts / .d.mts
|
|
5
|
+
* files in-memory. Uses fflate (isomorphic). No deps to inject — usable
|
|
6
|
+
* from both web client and CLI.
|
|
7
|
+
*/
|
|
8
|
+
export class TarballFetcher {
|
|
9
|
+
async fetchAndExtract(packageName, version) {
|
|
10
|
+
const tarballUrl = this.getTarballUrl(packageName, version);
|
|
11
|
+
// Tarballs are large; give them double the default timeout for slow networks.
|
|
12
|
+
const response = await fetchWithRetry(tarballUrl, { timeoutMs: 30000 });
|
|
13
|
+
if (!response?.ok)
|
|
14
|
+
return new Map();
|
|
15
|
+
const gzipped = new Uint8Array(await response.arrayBuffer());
|
|
16
|
+
return this.extractDtsFiles(gzipped);
|
|
17
|
+
}
|
|
18
|
+
getTarballUrl(packageName, version) {
|
|
19
|
+
const encodedName = packageName.replace('/', '%2F');
|
|
20
|
+
return `https://registry.npmjs.org/${encodedName}/-/${packageName.split('/').pop()}-${version}.tgz`;
|
|
21
|
+
}
|
|
22
|
+
normalizeTarPath(tarPath) {
|
|
23
|
+
let p = tarPath.replace(/^package\//, '');
|
|
24
|
+
const firstSlash = p.indexOf('/');
|
|
25
|
+
return firstSlash > 0 ? p.substring(firstSlash + 1) : p;
|
|
26
|
+
}
|
|
27
|
+
extractDtsFiles(gzipped) {
|
|
28
|
+
const files = new Map();
|
|
29
|
+
try {
|
|
30
|
+
const tarData = gunzipSync(gzipped);
|
|
31
|
+
const decoder = new TextDecoder('utf-8');
|
|
32
|
+
let offset = 0;
|
|
33
|
+
while (offset < tarData.length - 512) {
|
|
34
|
+
const header = tarData.slice(offset, offset + 512);
|
|
35
|
+
if (header[0] === 0)
|
|
36
|
+
break;
|
|
37
|
+
const filenameBytes = header.slice(0, 100);
|
|
38
|
+
const nullIndex = filenameBytes.indexOf(0);
|
|
39
|
+
const filename = decoder.decode(filenameBytes.slice(0, nullIndex > 0 ? nullIndex : 100)).trim();
|
|
40
|
+
const sizeBytes = header.slice(124, 136);
|
|
41
|
+
const sizeStr = decoder.decode(sizeBytes).trim().replace(/\0/g, '');
|
|
42
|
+
const fileSize = parseInt(sizeStr, 8) || 0;
|
|
43
|
+
const fileType = String.fromCharCode(header[156]);
|
|
44
|
+
offset += 512;
|
|
45
|
+
if ((fileType === '0' || fileType === '\0') &&
|
|
46
|
+
(filename.endsWith('.d.ts') || filename.endsWith('.d.mts'))) {
|
|
47
|
+
const fileData = tarData.slice(offset, offset + fileSize);
|
|
48
|
+
files.set(this.normalizeTarPath(filename), decoder.decode(fileData));
|
|
49
|
+
}
|
|
50
|
+
offset += Math.ceil(fileSize / 512) * 512;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch { }
|
|
54
|
+
return files;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export const tarballFetcher = new TarballFetcher();
|
|
58
|
+
//# sourceMappingURL=tarballFetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tarballFetcher.js","sourceRoot":"","sources":["../../dts/src/tarballFetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tb` global typings for Typebulb bulbs.
|
|
3
|
+
*
|
|
4
|
+
* Two flavors:
|
|
5
|
+
* - `clientTbTypings` — full surface available in browser-side code (code.tsx)
|
|
6
|
+
* - `serverTbTypings` — Node-flavored subset available in server-side code (server.ts)
|
|
7
|
+
*
|
|
8
|
+
* Single source of truth for Monaco IntelliSense (web client), the standalone
|
|
9
|
+
* TypeChecker, and the CLI's emitted typecheck dirs.
|
|
10
|
+
*/
|
|
11
|
+
/** Typebulb globals available in browser-side code (code.tsx). */
|
|
12
|
+
export declare const clientTbTypings = "\n/**\n * Typebulb utilities namespace.\n * Type `tb.` to discover available helpers.\n */\ndeclare const tb: {\n /**\n * Get raw data chunk from the Data tab.\n * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.\n */\n data(index: number): string;\n /**\n * Get data chunk parsed as JSON (handles JSON-ish with unquoted keys).\n * @param index - Chunk index (0-based)\n * @throws If chunk is not valid JSON/JSON-ish\n */\n json<T = unknown>(index: number): T;\n /**\n * Async value inspector for tensor-like objects.\n *\n * Materializes lazy values (like GPU tensors) and logs them with metadata.\n * Handles objects with `.js()`, `.data()`, `.array()`, `.arraySync()`, etc.\n *\n * @remarks\n * - Always use `await` - materialization may be async (GPU\u2192CPU readback)\n * - Large values are truncated (max 1000 elements)\n * - Promises are logged as `[Promise]` (not awaited - could hang)\n */\n dump(...args: any[]): Promise<void>;\n /**\n * Trigger inference to generate new insight data.\n *\n * Opens a confirmation modal showing the data to be analyzed, then streams\n * the inference result. On success, updates the insight so subsequent\n * `tb.insight()` calls return the new value.\n *\n * @param opts - Options for inference\n * @param opts.data - Data to pre-populate in the modal (string or array of strings). If omitted, modal opens with empty textarea for user to paste.\n * @returns Promise that resolves with the parsed insight JSON\n * @throws If inference is already in progress, or on network/parse/rate limit errors\n */\n infer<T = unknown>(opts?: { data?: string | string[] }): Promise<T>;\n /**\n * Get the current inference state.\n *\n * @returns 'idle' | 'running' | 'complete' | 'error'\n */\n inferenceState(): 'idle' | 'running' | 'complete' | 'error';\n /**\n * Set a data chunk for the next inference call.\n *\n * Use this to programmatically set data that will be sent when `tb.infer()` is called\n * without the `data` option.\n *\n * @param index - The chunk index (0-based)\n * @param content - The content for this chunk\n */\n setData(index: number, content: string): void;\n /**\n * Proxy a CDN URL through the sandbox origin for Web Worker/WASM same-origin loading.\n *\n * In the sandbox, prepends `/proxy/` so the URL is served from the same origin.\n * Outside the sandbox (exported HTML, CLI), returns the URL unchanged.\n *\n * @param url - Full HTTPS URL to an allowlisted CDN (esm.sh, unpkg.com, cdn.jsdelivr.net, cdnjs.cloudflare.com)\n * @returns The proxied URL (sandbox) or the original URL (standalone/CLI)\n */\n proxy(url: string): string;\n /**\n * Copy text to clipboard.\n * Must be called synchronously within a user gesture (click/keydown).\n * @returns true if successful, false otherwise\n */\n copy(text: string): Promise<boolean>;\n /**\n * Get the canonical URL of this bulb.\n *\n * Returns the parent typebulb.com URL (including path, query, and `#tb=` fragment),\n * resolving correctly from inside the cross-origin sandbox iframe.\n * Use this instead of `location.href` or `document.referrer`.\n *\n * @returns The full canonical URL\n */\n url(): Promise<string>;\n /**\n * Get the insight data produced by the inference layer.\n *\n * Returns the parsed JSON from insight.json, populated by the inference LLM.\n * Use a type parameter to get typed access to the insight data.\n *\n * @returns The parsed insight JSON, or undefined if no insight is available\n */\n insight<T = unknown>(): T | undefined;\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n */\n server: Record<string, (...args: any[]) => Promise<any>>;\n /**\n * General-purpose AI call.\n *\n * @param options - Messages, system prompt, optional provider/model override\n * @returns Promise resolving to { text: string }\n * @throws On rate limit, network error, or provider error\n */\n ai(options: {\n messages: Array<{ role: \"user\" | \"assistant\"; content: string }>;\n system?: string;\n /** Reasoning depth hint (0=min, 1=low, 2=med, 3=max). Mapped to provider-specific parameters (e.g. Anthropic adaptive thinking, OpenAI reasoning effort). Default: 0. */\n reasoning?: 0 | 1 | 2 | 3;\n provider?: string;\n model?: string;\n /** Enable/disable web search. Default: on for BYOK, always off for free model. */\n webSearch?: boolean;\n }): Promise<{ text: string }>;\n /**\n * Local filesystem access (CLI only).\n *\n * Paths are resolved relative to the directory containing the bulb file.\n * Throws in editor/published mode.\n */\n fs: {\n /** Read a file as UTF-8 text. Throws if the file is not valid UTF-8 \u2014 use readBytes for binary. */\n read(path: string): Promise<string>;\n /** Read a file as raw bytes. */\n readBytes(path: string): Promise<Uint8Array>;\n /** Write text or raw bytes to a file. Creates parent directories if needed. */\n write(path: string, content: string | Uint8Array): Promise<boolean>;\n };\n /**\n * Returns AI models available to the current user.\n * Models are filtered by the user's configured API keys.\n * If no keys are configured, returns only the courtesy model.\n */\n models(): Promise<Array<{\n /** Provider protocol: \"anthropic\", \"openai\", \"gemini\", \"openrouter\" */\n provider: string;\n /** Model identifier, e.g. \"claude-sonnet-4-6\" */\n name: string;\n /** Human-readable display name, e.g. \"Sonnet 4.6\" */\n friendlyName: string;\n /** Provider display name, e.g. \"Anthropic\" */\n providerName: string;\n }>>;\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;\n /**\n * The mode this bulb is running in.\n *\n * - `'local'` \u2014 Running via the typebulb CLI\n * - `'editor'` \u2014 Running in the typebulb.com editor\n * - `'published'` \u2014 Running as a published/standalone bulb on typebulb.com\n * - `'embedded'` \u2014 Running as a bulb embedded inside another bulb (sandboxed,\n * client-only: AI, filesystem, and server RPC are unavailable)\n */\n mode: 'local' | 'editor' | 'published' | 'embedded';\n};\n";
|
|
13
|
+
/** Typebulb globals available in Node-side code (server.ts). */
|
|
14
|
+
export declare const serverTbTypings = "\n/**\n * Typebulb utilities namespace (server-side).\n * Type `tb.` to discover available helpers.\n */\ndeclare const tb: {\n /**\n * Get raw data chunk from the Data tab.\n * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.\n */\n data(index: number): string;\n /**\n * Get data chunk parsed as JSON (handles JSON-ish with unquoted keys).\n * @param index - Chunk index (0-based)\n * @throws If chunk is not valid JSON/JSON-ish\n */\n json<T = unknown>(index: number): T;\n /**\n * Get the insight data produced by the inference layer.\n *\n * Returns the parsed JSON from insight.json, populated by the inference LLM.\n * Use a type parameter to get typed access to the insight data.\n *\n * @returns The parsed insight JSON, or undefined if no insight is available\n */\n insight<T = unknown>(): T | undefined;\n /**\n * General-purpose AI call.\n *\n * @param options - Messages, system prompt, optional provider/model override\n * @returns Promise resolving to { text: string }\n * @throws On rate limit, network error, or provider error\n */\n ai(options: {\n messages: Array<{ role: \"user\" | \"assistant\"; content: string }>;\n system?: string;\n /** Reasoning depth hint (0=min, 1=low, 2=med, 3=max). Mapped to provider-specific parameters (e.g. Anthropic adaptive thinking, OpenAI reasoning effort). Default: 0. */\n reasoning?: 0 | 1 | 2 | 3;\n provider?: string;\n model?: string;\n /** Enable/disable web search. Default: on for BYOK, always off for free model. */\n webSearch?: boolean;\n }): Promise<{ text: string }>;\n /**\n * Local filesystem access (CLI only).\n *\n * Paths are resolved relative to the directory containing the bulb file.\n * Throws in editor/published mode.\n */\n fs: {\n /** Read a file as UTF-8 text. Throws if the file is not valid UTF-8 \u2014 use readBytes for binary. */\n read(path: string): Promise<string>;\n /** Read a file as raw bytes. */\n readBytes(path: string): Promise<Uint8Array>;\n /** Write text or raw bytes to a file. Creates parent directories if needed. */\n write(path: string, content: string | Uint8Array): Promise<boolean>;\n };\n /**\n * Server-side function proxy. The built-in `log` prints to CLI stdout\n * (falls back to console.log on web). On the server side, this object only\n * exposes `log` \u2014 server-to-server calls are not supported.\n */\n server: {\n log(...args: any[]): Promise<void>;\n };\n /**\n * Returns AI models available to the current user.\n * Models are filtered by the user's configured API keys.\n * If no keys are configured, returns only the courtesy model.\n */\n models(): Promise<Array<{\n /** Provider protocol: \"anthropic\", \"openai\", \"gemini\", \"openrouter\" */\n provider: string;\n /** Model identifier, e.g. \"claude-sonnet-4-6\" */\n name: string;\n /** Human-readable display name, e.g. \"Sonnet 4.6\" */\n friendlyName: string;\n /** Provider display name, e.g. \"Anthropic\" */\n providerName: string;\n }>>;\n /**\n * The mode this bulb is running in.\n *\n * - `'local'` \u2014 Running via the typebulb CLI\n * - `'editor'` \u2014 Running in the typebulb.com editor\n * - `'published'` \u2014 Running as a published/standalone bulb on typebulb.com\n * - `'embedded'` \u2014 Running as a bulb embedded inside another bulb (sandboxed,\n * client-only: AI, filesystem, and server RPC are unavailable)\n */\n mode: 'local' | 'editor' | 'published' | 'embedded';\n};\n";
|
|
15
|
+
//# sourceMappingURL=tbTypings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tbTypings.d.ts","sourceRoot":"","sources":["../../dts/src/tbTypings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiMH,kEAAkE;AAClE,eAAO,MAAM,eAAe,ozNAO3B,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,eAAe,wgHAO3B,CAAA"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tb` global typings for Typebulb bulbs.
|
|
3
|
+
*
|
|
4
|
+
* Two flavors:
|
|
5
|
+
* - `clientTbTypings` — full surface available in browser-side code (code.tsx)
|
|
6
|
+
* - `serverTbTypings` — Node-flavored subset available in server-side code (server.ts)
|
|
7
|
+
*
|
|
8
|
+
* Single source of truth for Monaco IntelliSense (web client), the standalone
|
|
9
|
+
* TypeChecker, and the CLI's emitted typecheck dirs.
|
|
10
|
+
*/
|
|
11
|
+
const dataAndJson = `
|
|
12
|
+
/**
|
|
13
|
+
* Get raw data chunk from the Data tab.
|
|
14
|
+
* @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
|
|
15
|
+
*/
|
|
16
|
+
data(index: number): string;
|
|
17
|
+
/**
|
|
18
|
+
* Get data chunk parsed as JSON (handles JSON-ish with unquoted keys).
|
|
19
|
+
* @param index - Chunk index (0-based)
|
|
20
|
+
* @throws If chunk is not valid JSON/JSON-ish
|
|
21
|
+
*/
|
|
22
|
+
json<T = unknown>(index: number): T;`;
|
|
23
|
+
const insight = `
|
|
24
|
+
/**
|
|
25
|
+
* Get the insight data produced by the inference layer.
|
|
26
|
+
*
|
|
27
|
+
* Returns the parsed JSON from insight.json, populated by the inference LLM.
|
|
28
|
+
* Use a type parameter to get typed access to the insight data.
|
|
29
|
+
*
|
|
30
|
+
* @returns The parsed insight JSON, or undefined if no insight is available
|
|
31
|
+
*/
|
|
32
|
+
insight<T = unknown>(): T | undefined;`;
|
|
33
|
+
const ai = `
|
|
34
|
+
/**
|
|
35
|
+
* General-purpose AI call.
|
|
36
|
+
*
|
|
37
|
+
* @param options - Messages, system prompt, optional provider/model override
|
|
38
|
+
* @returns Promise resolving to { text: string }
|
|
39
|
+
* @throws On rate limit, network error, or provider error
|
|
40
|
+
*/
|
|
41
|
+
ai(options: {
|
|
42
|
+
messages: Array<{ role: "user" | "assistant"; content: string }>;
|
|
43
|
+
system?: string;
|
|
44
|
+
/** Reasoning depth hint (0=min, 1=low, 2=med, 3=max). Mapped to provider-specific parameters (e.g. Anthropic adaptive thinking, OpenAI reasoning effort). Default: 0. */
|
|
45
|
+
reasoning?: 0 | 1 | 2 | 3;
|
|
46
|
+
provider?: string;
|
|
47
|
+
model?: string;
|
|
48
|
+
/** Enable/disable web search. Default: on for BYOK, always off for free model. */
|
|
49
|
+
webSearch?: boolean;
|
|
50
|
+
}): Promise<{ text: string }>;`;
|
|
51
|
+
const models = `
|
|
52
|
+
/**
|
|
53
|
+
* Returns AI models available to the current user.
|
|
54
|
+
* Models are filtered by the user's configured API keys.
|
|
55
|
+
* If no keys are configured, returns only the courtesy model.
|
|
56
|
+
*/
|
|
57
|
+
models(): Promise<Array<{
|
|
58
|
+
/** Provider protocol: "anthropic", "openai", "gemini", "openrouter" */
|
|
59
|
+
provider: string;
|
|
60
|
+
/** Model identifier, e.g. "claude-sonnet-4-6" */
|
|
61
|
+
name: string;
|
|
62
|
+
/** Human-readable display name, e.g. "Sonnet 4.6" */
|
|
63
|
+
friendlyName: string;
|
|
64
|
+
/** Provider display name, e.g. "Anthropic" */
|
|
65
|
+
providerName: string;
|
|
66
|
+
}>>;`;
|
|
67
|
+
const theme = `
|
|
68
|
+
/**
|
|
69
|
+
* The bulb's theme override (\`<html data-theme>\`).
|
|
70
|
+
*
|
|
71
|
+
* - Get: the current override — \`'dark'\` | \`'light'\`, or \`undefined\` when
|
|
72
|
+
* following the OS preference.
|
|
73
|
+
* - Set \`'dark'\`/\`'light'\` to force and persist it (per-bulb); set
|
|
74
|
+
* \`undefined\` to clear the override and follow the OS again.
|
|
75
|
+
*
|
|
76
|
+
* Drives \`<html data-theme>\`, so render off \`html[data-theme="…"]\` selectors
|
|
77
|
+
* (or observe the attribute) rather than reading \`tb.theme\`.
|
|
78
|
+
*/
|
|
79
|
+
theme: 'light' | 'dark' | undefined;`;
|
|
80
|
+
const mode = `
|
|
81
|
+
/**
|
|
82
|
+
* The mode this bulb is running in.
|
|
83
|
+
*
|
|
84
|
+
* - \`'local'\` — Running via the typebulb CLI
|
|
85
|
+
* - \`'editor'\` — Running in the typebulb.com editor
|
|
86
|
+
* - \`'published'\` — Running as a published/standalone bulb on typebulb.com
|
|
87
|
+
* - \`'embedded'\` — Running as a bulb embedded inside another bulb (sandboxed,
|
|
88
|
+
* client-only: AI, filesystem, and server RPC are unavailable)
|
|
89
|
+
*/
|
|
90
|
+
mode: 'local' | 'editor' | 'published' | 'embedded';`;
|
|
91
|
+
const fs = `
|
|
92
|
+
/**
|
|
93
|
+
* Local filesystem access (CLI only).
|
|
94
|
+
*
|
|
95
|
+
* Paths are resolved relative to the directory containing the bulb file.
|
|
96
|
+
* Throws in editor/published mode.
|
|
97
|
+
*/
|
|
98
|
+
fs: {
|
|
99
|
+
/** Read a file as UTF-8 text. Throws if the file is not valid UTF-8 — use readBytes for binary. */
|
|
100
|
+
read(path: string): Promise<string>;
|
|
101
|
+
/** Read a file as raw bytes. */
|
|
102
|
+
readBytes(path: string): Promise<Uint8Array>;
|
|
103
|
+
/** Write text or raw bytes to a file. Creates parent directories if needed. */
|
|
104
|
+
write(path: string, content: string | Uint8Array): Promise<boolean>;
|
|
105
|
+
};`;
|
|
106
|
+
const serverLogOnly = `
|
|
107
|
+
/**
|
|
108
|
+
* Server-side function proxy. The built-in \`log\` prints to CLI stdout
|
|
109
|
+
* (falls back to console.log on web). On the server side, this object only
|
|
110
|
+
* exposes \`log\` — server-to-server calls are not supported.
|
|
111
|
+
*/
|
|
112
|
+
server: {
|
|
113
|
+
log(...args: any[]): Promise<void>;
|
|
114
|
+
};`;
|
|
115
|
+
const clientOnlyMembers = `
|
|
116
|
+
/**
|
|
117
|
+
* Async value inspector for tensor-like objects.
|
|
118
|
+
*
|
|
119
|
+
* Materializes lazy values (like GPU tensors) and logs them with metadata.
|
|
120
|
+
* Handles objects with \`.js()\`, \`.data()\`, \`.array()\`, \`.arraySync()\`, etc.
|
|
121
|
+
*
|
|
122
|
+
* @remarks
|
|
123
|
+
* - Always use \`await\` - materialization may be async (GPU→CPU readback)
|
|
124
|
+
* - Large values are truncated (max 1000 elements)
|
|
125
|
+
* - Promises are logged as \`[Promise]\` (not awaited - could hang)
|
|
126
|
+
*/
|
|
127
|
+
dump(...args: any[]): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Trigger inference to generate new insight data.
|
|
130
|
+
*
|
|
131
|
+
* Opens a confirmation modal showing the data to be analyzed, then streams
|
|
132
|
+
* the inference result. On success, updates the insight so subsequent
|
|
133
|
+
* \`tb.insight()\` calls return the new value.
|
|
134
|
+
*
|
|
135
|
+
* @param opts - Options for inference
|
|
136
|
+
* @param opts.data - Data to pre-populate in the modal (string or array of strings). If omitted, modal opens with empty textarea for user to paste.
|
|
137
|
+
* @returns Promise that resolves with the parsed insight JSON
|
|
138
|
+
* @throws If inference is already in progress, or on network/parse/rate limit errors
|
|
139
|
+
*/
|
|
140
|
+
infer<T = unknown>(opts?: { data?: string | string[] }): Promise<T>;
|
|
141
|
+
/**
|
|
142
|
+
* Get the current inference state.
|
|
143
|
+
*
|
|
144
|
+
* @returns 'idle' | 'running' | 'complete' | 'error'
|
|
145
|
+
*/
|
|
146
|
+
inferenceState(): 'idle' | 'running' | 'complete' | 'error';
|
|
147
|
+
/**
|
|
148
|
+
* Set a data chunk for the next inference call.
|
|
149
|
+
*
|
|
150
|
+
* Use this to programmatically set data that will be sent when \`tb.infer()\` is called
|
|
151
|
+
* without the \`data\` option.
|
|
152
|
+
*
|
|
153
|
+
* @param index - The chunk index (0-based)
|
|
154
|
+
* @param content - The content for this chunk
|
|
155
|
+
*/
|
|
156
|
+
setData(index: number, content: string): void;
|
|
157
|
+
/**
|
|
158
|
+
* Proxy a CDN URL through the sandbox origin for Web Worker/WASM same-origin loading.
|
|
159
|
+
*
|
|
160
|
+
* In the sandbox, prepends \`/proxy/\` so the URL is served from the same origin.
|
|
161
|
+
* Outside the sandbox (exported HTML, CLI), returns the URL unchanged.
|
|
162
|
+
*
|
|
163
|
+
* @param url - Full HTTPS URL to an allowlisted CDN (esm.sh, unpkg.com, cdn.jsdelivr.net, cdnjs.cloudflare.com)
|
|
164
|
+
* @returns The proxied URL (sandbox) or the original URL (standalone/CLI)
|
|
165
|
+
*/
|
|
166
|
+
proxy(url: string): string;
|
|
167
|
+
/**
|
|
168
|
+
* Copy text to clipboard.
|
|
169
|
+
* Must be called synchronously within a user gesture (click/keydown).
|
|
170
|
+
* @returns true if successful, false otherwise
|
|
171
|
+
*/
|
|
172
|
+
copy(text: string): Promise<boolean>;
|
|
173
|
+
/**
|
|
174
|
+
* Get the canonical URL of this bulb.
|
|
175
|
+
*
|
|
176
|
+
* Returns the parent typebulb.com URL (including path, query, and \`#tb=\` fragment),
|
|
177
|
+
* resolving correctly from inside the cross-origin sandbox iframe.
|
|
178
|
+
* Use this instead of \`location.href\` or \`document.referrer\`.
|
|
179
|
+
*
|
|
180
|
+
* @returns The full canonical URL
|
|
181
|
+
*/
|
|
182
|
+
url(): Promise<string>;`;
|
|
183
|
+
const clientServerProxy = `
|
|
184
|
+
/**
|
|
185
|
+
* Server-side function proxy.
|
|
186
|
+
*
|
|
187
|
+
* In the CLI, calls exported functions from the \`**server.ts**\` section.
|
|
188
|
+
* \`tb.server.log(...)\` is a built-in that prints to CLI stdout (falls back to console.log on web).
|
|
189
|
+
* User exports override built-ins of the same name.
|
|
190
|
+
*/
|
|
191
|
+
server: Record<string, (...args: any[]) => Promise<any>>;`;
|
|
192
|
+
/** Typebulb globals available in browser-side code (code.tsx). */
|
|
193
|
+
export const clientTbTypings = `
|
|
194
|
+
/**
|
|
195
|
+
* Typebulb utilities namespace.
|
|
196
|
+
* Type \`tb.\` to discover available helpers.
|
|
197
|
+
*/
|
|
198
|
+
declare const tb: {${dataAndJson}${clientOnlyMembers}${insight}${clientServerProxy}${ai}${fs}${models}${theme}${mode}
|
|
199
|
+
};
|
|
200
|
+
`;
|
|
201
|
+
/** Typebulb globals available in Node-side code (server.ts). */
|
|
202
|
+
export const serverTbTypings = `
|
|
203
|
+
/**
|
|
204
|
+
* Typebulb utilities namespace (server-side).
|
|
205
|
+
* Type \`tb.\` to discover available helpers.
|
|
206
|
+
*/
|
|
207
|
+
declare const tb: {${dataAndJson}${insight}${ai}${fs}${serverLogOnly}${models}${mode}
|
|
208
|
+
};
|
|
209
|
+
`;
|
|
210
|
+
//# sourceMappingURL=tbTypings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tbTypings.js","sourceRoot":"","sources":["../../dts/src/tbTypings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,GAAG;;;;;;;;;;;uCAWmB,CAAA;AAEvC,MAAM,OAAO,GAAG;;;;;;;;;yCASyB,CAAA;AAEzC,MAAM,EAAE,GAAG;;;;;;;;;;;;;;;;;iCAiBsB,CAAA;AAEjC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;OAeR,CAAA;AAEP,MAAM,KAAK,GAAG;;;;;;;;;;;;uCAYyB,CAAA;AAEvC,MAAM,IAAI,GAAG;;;;;;;;;;uDAU0C,CAAA;AAEvD,MAAM,EAAE,GAAG;;;;;;;;;;;;;;KAcN,CAAA;AAEL,MAAM,aAAa,GAAG;;;;;;;;KAQjB,CAAA;AAEL,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmEA,CAAA;AAE1B,MAAM,iBAAiB,GAAG;;;;;;;;4DAQkC,CAAA;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;qBAKV,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;;CAEnH,CAAA;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;qBAKV,WAAW,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,GAAG,MAAM,GAAG,IAAI;;CAEnF,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { FetchDtsWithCache } from './fetchDts.js';
|
|
2
|
+
export type TypeFetchResult = {
|
|
3
|
+
dts: string;
|
|
4
|
+
url: string;
|
|
5
|
+
resolvedPkg?: string;
|
|
6
|
+
};
|
|
7
|
+
export type ModuleShim = {
|
|
8
|
+
module: string;
|
|
9
|
+
path: string;
|
|
10
|
+
};
|
|
11
|
+
export interface ResolvedTypeFile {
|
|
12
|
+
path: string;
|
|
13
|
+
content: string;
|
|
14
|
+
ambient?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ResolvedTypeDef {
|
|
17
|
+
pkg: string;
|
|
18
|
+
mainPath: string;
|
|
19
|
+
files: ResolvedTypeFile[];
|
|
20
|
+
shims: ModuleShim[];
|
|
21
|
+
ambient?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare abstract class TypeProvider {
|
|
24
|
+
protected fetchDts: FetchDtsWithCache;
|
|
25
|
+
constructor(fetchDts: FetchDtsWithCache);
|
|
26
|
+
protected fetchDtsText(url: string): Promise<{
|
|
27
|
+
dts: string;
|
|
28
|
+
url: string;
|
|
29
|
+
} | undefined>;
|
|
30
|
+
protected tryUrls(urls: string[]): Promise<{
|
|
31
|
+
dts: string;
|
|
32
|
+
url: string;
|
|
33
|
+
} | undefined>;
|
|
34
|
+
private looksLikeDts;
|
|
35
|
+
abstract resolve(pkg: string): Promise<TypeFetchResult | undefined>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=typeProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeProvider.d.ts","sourceRoot":"","sources":["../../dts/src/typeProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAChF,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAKzD,MAAM,WAAW,gBAAgB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AACtF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,8BAAsB,YAAY;IACpB,SAAS,CAAC,QAAQ,EAAE,iBAAiB;gBAA3B,QAAQ,EAAE,iBAAiB;IAEjD,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM;;;;cAIlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;;;;IAYtC,OAAO,CAAC,YAAY;IAOpB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;CACpE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class TypeProvider {
|
|
2
|
+
constructor(fetchDts) {
|
|
3
|
+
this.fetchDts = fetchDts;
|
|
4
|
+
}
|
|
5
|
+
fetchDtsText(url) {
|
|
6
|
+
return this.tryUrls([url]);
|
|
7
|
+
}
|
|
8
|
+
async tryUrls(urls) {
|
|
9
|
+
for (const url of urls) {
|
|
10
|
+
const out = await this.fetchDts(url);
|
|
11
|
+
if (!out)
|
|
12
|
+
continue;
|
|
13
|
+
if (this.looksLikeDts(out.dts))
|
|
14
|
+
return out;
|
|
15
|
+
if (/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(out.url))
|
|
16
|
+
return out;
|
|
17
|
+
if (/[?&]dts(?:[&#]|$)/i.test(out.url))
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
looksLikeDts(text) {
|
|
23
|
+
if (/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(text))
|
|
24
|
+
return true;
|
|
25
|
+
return /declare\s+(module|namespace|class|interface|function|const|var|let)/.test(text)
|
|
26
|
+
|| /interface\s+\w+/.test(text)
|
|
27
|
+
|| /type\s+\w+\s*=/.test(text);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=typeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeProvider.js","sourceRoot":"","sources":["../../dts/src/typeProvider.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAgB,YAAY;IAChC,YAAsB,QAA2B;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAE3C,YAAY,CAAC,GAAW;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAc;QACpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,CAAC,GAAG;gBAAE,SAAQ;YAElB,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAA;YAC1C,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAA;YAC7D,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAA;QACpD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5D,OAAO,qEAAqE,CAAC,IAAI,CAAC,IAAI,CAAC;eAClF,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;eAC5B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CAGF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeRefScanner.d.ts","sourceRoot":"","sources":["../../dts/src/typeRefScanner.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAIlC,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export class TypeRefScanner {
|
|
2
|
+
collectRelativeTypeRefs(text) {
|
|
3
|
+
return this.collectRefs(text).filter(s => s.startsWith('./') || s.startsWith('../'));
|
|
4
|
+
}
|
|
5
|
+
collectBareModuleRefs(text) {
|
|
6
|
+
return this.collectRefs(text).filter(s => this.isBare(s));
|
|
7
|
+
}
|
|
8
|
+
collectRefs(text) {
|
|
9
|
+
const refs = new Set();
|
|
10
|
+
const add = (m, idx) => { refs.add(m[idx]); return null; };
|
|
11
|
+
this.matchAll(text, /(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/, m => add(m, 2));
|
|
12
|
+
this.matchAll(text, /export\s*\*\s*from\s*['"]([^'"\n]+)['"]/, m => add(m, 1));
|
|
13
|
+
return Array.from(refs);
|
|
14
|
+
}
|
|
15
|
+
matchAll(text, regex, mapper) {
|
|
16
|
+
const results = [];
|
|
17
|
+
try {
|
|
18
|
+
const re = new RegExp(regex.source, 'g');
|
|
19
|
+
let m;
|
|
20
|
+
while ((m = re.exec(text))) {
|
|
21
|
+
const r = mapper(m);
|
|
22
|
+
if (r !== null)
|
|
23
|
+
results.push(r);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch { }
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
isBare(s) {
|
|
30
|
+
return !(s.startsWith('./') || s.startsWith('../') || s.startsWith('file:') || s.startsWith('http://') || s.startsWith('https://'));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=typeRefScanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeRefScanner.js","sourceRoot":"","sources":["../../dts/src/typeRefScanner.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACzB,uBAAuB,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IACtF,CAAC;IAED,qBAAqB,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,MAAM,GAAG,GAAG,CAAC,CAAkB,EAAE,GAAW,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC,CAAA;QAClF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,qDAAqD,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1F,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,yCAAyC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEO,QAAQ,CAAI,IAAY,EAAE,KAAa,EAAE,MAA4C;QAC3F,MAAM,OAAO,GAAQ,EAAE,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACxC,IAAI,CAAyB,CAAA;YAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACnB,IAAI,CAAC,KAAK,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,MAAM,CAAC,CAAS;QACtB,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IACrI,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type CdnClient } from 'typebulb/resolver';
|
|
2
|
+
import { TypeProvider } from './typeProvider.js';
|
|
3
|
+
import type { FetchDtsWithCache } from './fetchDts.js';
|
|
4
|
+
export declare class TypescriptProvider extends TypeProvider {
|
|
5
|
+
private cdnClient;
|
|
6
|
+
constructor(fetchDts: FetchDtsWithCache, cdnClient: CdnClient);
|
|
7
|
+
private loadPackageAtVersionedRoot;
|
|
8
|
+
private extractPathFromResult;
|
|
9
|
+
private tryUntilSuccess;
|
|
10
|
+
private resolveFromSelected;
|
|
11
|
+
private toResolutionResult;
|
|
12
|
+
private resolveExportsPath;
|
|
13
|
+
resolve(packageRef: string): Promise<{
|
|
14
|
+
resolvedPkg: string;
|
|
15
|
+
dts: string;
|
|
16
|
+
url: string;
|
|
17
|
+
} | undefined>;
|
|
18
|
+
private fetchCandidateFrom;
|
|
19
|
+
declarationCandidatesFor(runtimePath: string): string[];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=typescriptProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescriptProvider.d.ts","sourceRoot":"","sources":["../../dts/src/typescriptProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAwB,MAAM,mBAAmB,CAAA;AAGtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAatD,qBAAa,kBAAmB,SAAQ,YAAY;IACT,OAAO,CAAC,SAAS;gBAA9C,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,SAAS;YAIvD,0BAA0B;IAcxC,OAAO,CAAC,qBAAqB;YAMf,eAAe;YAOf,mBAAmB;IAmBjC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;IAqBpB,OAAO,CAAC,UAAU,EAAE,MAAM;;;;;YA2ClB,kBAAkB;IAOhC,wBAAwB,CAAC,WAAW,EAAE,MAAM;CAU7C"}
|