@ricsam/isolate 0.1.2 → 0.1.4
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/cjs/internal/module-loader/bundle.cjs +37 -11
- package/dist/cjs/internal/module-loader/bundle.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/internal/module-loader/bundle.mjs +37 -11
- package/dist/mjs/internal/module-loader/bundle.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- package/dist/types/internal/module-loader/bundle.d.ts +1 -1
- package/package.json +1 -1
|
@@ -207,21 +207,38 @@ function resolveImportEntryFromPackageJson(packageJson, subpath) {
|
|
|
207
207
|
return pickImportTarget(exportsField);
|
|
208
208
|
}
|
|
209
209
|
if (typeof exportsField === "object" && exportsField !== null && !Array.isArray(exportsField)) {
|
|
210
|
-
const
|
|
211
|
-
|
|
210
|
+
const exportsRecord = exportsField;
|
|
211
|
+
const directTarget = exportsRecord[exportKey];
|
|
212
|
+
if (directTarget !== undefined) {
|
|
213
|
+
return pickImportTarget(directTarget);
|
|
214
|
+
}
|
|
215
|
+
for (const [pattern, target] of Object.entries(exportsRecord)) {
|
|
216
|
+
if (!pattern.includes("*")) {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
const starIndex = pattern.indexOf("*");
|
|
220
|
+
const prefix = pattern.slice(0, starIndex);
|
|
221
|
+
const suffix = pattern.slice(starIndex + 1);
|
|
222
|
+
if (!exportKey.startsWith(prefix) || !exportKey.endsWith(suffix)) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
const wildcardMatch = exportKey.slice(prefix.length, suffix.length > 0 ? -suffix.length : undefined);
|
|
226
|
+
return pickImportTarget(target, wildcardMatch);
|
|
227
|
+
}
|
|
228
|
+
return null;
|
|
212
229
|
}
|
|
213
230
|
return exportKey === "." ? pickImportTarget(exportsField) : null;
|
|
214
231
|
}
|
|
215
232
|
function isConditionalExportsObject(value) {
|
|
216
233
|
return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).every((key) => !key.startsWith("."));
|
|
217
234
|
}
|
|
218
|
-
function pickImportTarget(value) {
|
|
235
|
+
function pickImportTarget(value, wildcardMatch) {
|
|
219
236
|
if (typeof value === "string") {
|
|
220
|
-
return value;
|
|
237
|
+
return wildcardMatch === undefined ? value : value.replaceAll("*", wildcardMatch);
|
|
221
238
|
}
|
|
222
239
|
if (Array.isArray(value)) {
|
|
223
240
|
for (const item of value) {
|
|
224
|
-
const target = pickImportTarget(item);
|
|
241
|
+
const target = pickImportTarget(item, wildcardMatch);
|
|
225
242
|
if (target) {
|
|
226
243
|
return target;
|
|
227
244
|
}
|
|
@@ -232,16 +249,16 @@ function pickImportTarget(value) {
|
|
|
232
249
|
return null;
|
|
233
250
|
}
|
|
234
251
|
const record = value;
|
|
235
|
-
for (const key of ["
|
|
252
|
+
for (const key of ["workerd", "worker", "edge-light", "import", "module", "default", "browser"]) {
|
|
236
253
|
if (key in record) {
|
|
237
|
-
const target = pickImportTarget(record[key]);
|
|
254
|
+
const target = pickImportTarget(record[key], wildcardMatch);
|
|
238
255
|
if (target) {
|
|
239
256
|
return target;
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
259
|
}
|
|
243
260
|
for (const nestedValue of Object.values(record)) {
|
|
244
|
-
const target = pickImportTarget(nestedValue);
|
|
261
|
+
const target = pickImportTarget(nestedValue, wildcardMatch);
|
|
245
262
|
if (target) {
|
|
246
263
|
return target;
|
|
247
264
|
}
|
|
@@ -318,6 +335,8 @@ function externalizeDepsPlugin(currentPackageName) {
|
|
|
318
335
|
return null;
|
|
319
336
|
if (source.startsWith(".") || source.startsWith("/"))
|
|
320
337
|
return null;
|
|
338
|
+
if (source.startsWith("#"))
|
|
339
|
+
return null;
|
|
321
340
|
if (isNodeBuiltin(source))
|
|
322
341
|
return null;
|
|
323
342
|
const { packageName } = import_resolve.parseSpecifier(source);
|
|
@@ -356,7 +375,11 @@ async function doBundleSpecifier(specifier, rootDir) {
|
|
|
356
375
|
plugins: [
|
|
357
376
|
packageEntryWrapperPlugin(specifier, namedExports),
|
|
358
377
|
externalizeDepsPlugin(packageName),
|
|
359
|
-
nodeResolve({
|
|
378
|
+
nodeResolve({
|
|
379
|
+
rootDir,
|
|
380
|
+
browser: false,
|
|
381
|
+
exportConditions: ["workerd", "worker", "edge-light"]
|
|
382
|
+
}),
|
|
360
383
|
shimNodeBuiltinsPlugin(),
|
|
361
384
|
commonjs(commonjsInteropOptions),
|
|
362
385
|
json(),
|
|
@@ -396,6 +419,8 @@ function externalizeAllBareSpecifiersPlugin() {
|
|
|
396
419
|
return null;
|
|
397
420
|
if (source.startsWith(".") || source.startsWith("/"))
|
|
398
421
|
return null;
|
|
422
|
+
if (source.startsWith("#"))
|
|
423
|
+
return null;
|
|
399
424
|
if (isNodeBuiltin(source))
|
|
400
425
|
return null;
|
|
401
426
|
return { id: source, external: true };
|
|
@@ -440,8 +465,9 @@ async function doBundleHostFile(hostFilePath) {
|
|
|
440
465
|
externalizeAllBareSpecifiersPlugin(),
|
|
441
466
|
stripTypeScriptPlugin(),
|
|
442
467
|
nodeResolve({
|
|
443
|
-
browser: true,
|
|
444
468
|
rootDir,
|
|
469
|
+
browser: false,
|
|
470
|
+
exportConditions: ["workerd", "worker", "edge-light"],
|
|
445
471
|
extensions: [".mjs", ".js", ".json", ".node", ...TS_EXTENSIONS]
|
|
446
472
|
}),
|
|
447
473
|
shimNodeBuiltinsPlugin(),
|
|
@@ -479,4 +505,4 @@ function clearBundleCache() {
|
|
|
479
505
|
bundleCache.clear();
|
|
480
506
|
}
|
|
481
507
|
|
|
482
|
-
//# debugId=
|
|
508
|
+
//# debugId=D077AC7E84F7727D64756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/module-loader/bundle.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { builtinModules, createRequire } from \"node:module\";\nimport { rollup, type Plugin } from \"rollup\";\nimport * as nodeResolveModule from \"@rollup/plugin-node-resolve\";\nimport * as commonjsModule from \"@rollup/plugin-commonjs\";\nimport * as jsonModule from \"@rollup/plugin-json\";\nimport * as replaceModule from \"@rollup/plugin-replace\";\nimport { detectFormat, parseSpecifier } from \"./resolve.cjs\";\nimport { processTypeScript, isTypeScriptFile } from \"./strip-types.cjs\";\nimport type { RollupCommonJSOptions } from \"@rollup/plugin-commonjs\";\nimport type { RollupJsonOptions } from \"@rollup/plugin-json\";\nimport type { RollupReplaceOptions } from \"@rollup/plugin-replace\";\n\n// Handle CJS default exports\nconst nodeResolve = ((nodeResolveModule as any).default ||\n nodeResolveModule) as (typeof nodeResolveModule)[\"nodeResolve\"];\nconst commonjs = ((commonjsModule as any).default || commonjsModule) as (\n options?: RollupCommonJSOptions\n) => Plugin;\nconst json = ((jsonModule as any).default || jsonModule) as (\n options?: RollupJsonOptions\n) => Plugin;\nconst replace = ((replaceModule as any).default || replaceModule) as (\n options?: RollupReplaceOptions\n) => Plugin;\n\nconst commonjsInteropOptions = {\n // External package imports are resolved by later loader calls as ESM bundles,\n // so CommonJS requires need ESM-aware interop instead of default-import assumptions.\n esmExternals: true,\n requireReturnsDefault: \"auto\",\n} satisfies RollupCommonJSOptions;\n\nconst PACKAGE_ENTRY_WRAPPER_PREFIX = \"\\0package-entry-wrapper:\";\nconst INVALID_FUNCTION_EXPORT_NAMES = new Set([\n \"arguments\",\n \"caller\",\n \"length\",\n \"name\",\n \"prototype\",\n]);\n\n/**\n * Set of Node.js built-in module names (e.g. \"fs\", \"path\", \"crypto\").\n */\nconst nodeBuiltins = new Set(builtinModules);\n\n/**\n * Check if a specifier refers to a Node.js built-in module.\n * Handles bare names (\"fs\"), subpaths (\"fs/promises\"), and node: prefix (\"node:fs\").\n */\nfunction isNodeBuiltin(source: string): boolean {\n const name = source.startsWith(\"node:\") ? source.slice(5) : source;\n const topLevel = name.split(\"/\")[0]!;\n return nodeBuiltins.has(topLevel);\n}\n\nconst NODE_BUILTIN_SHIM_PREFIX = \"\\0node-builtin-shim:\";\n\nexport function getNodeBuiltinShimCode(source: string): string {\n if (source === \"ws\" || source === \"node:ws\") {\n return `\nconst WebSocketShim = globalThis.WebSocket;\n\nif (!WebSocketShim) {\n throw new Error(\"The isolate runtime does not provide a global WebSocket implementation.\");\n}\n\nexport { WebSocketShim as WebSocket };\nexport default WebSocketShim;\n`;\n }\n\n return \"export default {};\\n\";\n}\n\n/**\n * Rollup plugin that provides empty shims for Node.js built-in modules.\n * Place after nodeResolve — acts as a catch-all for builtins that the\n * package's browser field didn't map to false.\n */\nfunction shimNodeBuiltinsPlugin(): Plugin {\n return {\n name: \"shim-node-builtins\",\n resolveId(source) {\n if (isNodeBuiltin(source)) {\n return { id: `${NODE_BUILTIN_SHIM_PREFIX}${source}`, moduleSideEffects: false };\n }\n return null;\n },\n load(id) {\n if (id.startsWith(NODE_BUILTIN_SHIM_PREFIX)) {\n return getNodeBuiltinShimCode(id.slice(NODE_BUILTIN_SHIM_PREFIX.length));\n }\n return null;\n },\n };\n}\n\nfunction isValidEsmIdentifier(name: string): boolean {\n return /^[$A-Z_a-z][$\\w]*$/.test(name);\n}\n\nfunction resolvePackageImportPath(specifier: string, rootDir: string): string | null {\n const resolver = createRequire(path.join(rootDir, \"__isolate_module_loader__.js\"));\n\n let resolvedRequirePath: string;\n try {\n resolvedRequirePath = resolver.resolve(specifier);\n } catch {\n return null;\n }\n\n const { packageName, subpath } = parseSpecifier(specifier);\n const packageJsonPath = findPackageJsonPath(resolvedRequirePath, packageName);\n if (!packageJsonPath) {\n return resolvedRequirePath;\n }\n\n let packageJson: Record<string, unknown>;\n try {\n packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as Record<string, unknown>;\n } catch {\n return resolvedRequirePath;\n }\n\n const packageRoot = path.dirname(packageJsonPath);\n const exportPath = resolveImportEntryFromPackageJson(packageJson, subpath);\n\n if (exportPath) {\n return path.resolve(packageRoot, exportPath);\n }\n\n if (!subpath) {\n const moduleEntry = packageJson.module;\n if (typeof moduleEntry === \"string\") {\n return path.resolve(packageRoot, moduleEntry);\n }\n\n const browserEntry = packageJson.browser;\n if (typeof browserEntry === \"string\") {\n return path.resolve(packageRoot, browserEntry);\n }\n }\n\n return resolvedRequirePath;\n}\n\nfunction findPackageJsonPath(resolvedPath: string, packageName: string): string | null {\n let currentDir = path.dirname(resolvedPath);\n let matchedPackageJsonPath: string | null = null;\n\n while (true) {\n const packageJsonPath = path.join(currentDir, \"package.json\");\n\n if (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as { name?: string };\n if (packageJson.name === packageName) {\n // Keep walking upward: published packages often include nested\n // dist/cjs or dist/mjs package.json files with the same name, but the\n // real package root higher up contains the export map we need.\n matchedPackageJsonPath = packageJsonPath;\n }\n } catch {\n // Keep walking upward if a parent package.json is malformed.\n }\n }\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return matchedPackageJsonPath;\n }\n currentDir = parentDir;\n }\n}\n\nfunction resolveImportEntryFromPackageJson(\n packageJson: Record<string, unknown>,\n subpath: string\n): string | null {\n const exportsField = packageJson.exports;\n if (exportsField === undefined) {\n return null;\n }\n\n const exportKey = subpath ? `.${subpath}` : \".\";\n\n if (isConditionalExportsObject(exportsField)) {\n if (exportKey !== \".\") {\n return null;\n }\n return pickImportTarget(exportsField);\n }\n\n if (typeof exportsField === \"object\" && exportsField !== null && !Array.isArray(exportsField)) {\n const target = (exportsField as Record<string, unknown>)[exportKey];\n return target === undefined ? null : pickImportTarget(target);\n }\n\n return exportKey === \".\" ? pickImportTarget(exportsField) : null;\n}\n\nfunction isConditionalExportsObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\"\n && value !== null\n && !Array.isArray(value)\n && Object.keys(value).every((key) => !key.startsWith(\".\"));\n}\n\nfunction pickImportTarget(value: unknown): string | null {\n if (typeof value === \"string\") {\n return value;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n const target = pickImportTarget(item);\n if (target) {\n return target;\n }\n }\n return null;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return null;\n }\n\n const record = value as Record<string, unknown>;\n\n for (const key of [\"browser\", \"import\", \"module\", \"default\"]) {\n if (key in record) {\n const target = pickImportTarget(record[key]);\n if (target) {\n return target;\n }\n }\n }\n\n for (const nestedValue of Object.values(record)) {\n const target = pickImportTarget(nestedValue);\n if (target) {\n return target;\n }\n }\n\n return null;\n}\n\nfunction getCommonJsNamedExports(specifier: string, rootDir: string): string[] {\n const resolvedHostPath = resolvePackageImportPath(specifier, rootDir);\n if (!resolvedHostPath) {\n return [];\n }\n\n let code: string;\n try {\n code = fs.readFileSync(resolvedHostPath, \"utf-8\");\n } catch {\n return [];\n }\n\n if (detectFormat(resolvedHostPath, code) !== \"cjs\") {\n return [];\n }\n\n let moduleExports: unknown;\n try {\n moduleExports = createRequire(resolvedHostPath)(resolvedHostPath);\n } catch {\n return [];\n }\n\n if (moduleExports == null || (typeof moduleExports !== \"object\" && typeof moduleExports !== \"function\")) {\n return [];\n }\n\n const names = new Set([\n ...Object.keys(moduleExports),\n ...Object.getOwnPropertyNames(moduleExports),\n ]);\n\n names.delete(\"default\");\n names.delete(\"__esModule\");\n\n if (typeof moduleExports === \"function\") {\n for (const name of INVALID_FUNCTION_EXPORT_NAMES) {\n names.delete(name);\n }\n }\n\n return [...names].filter(isValidEsmIdentifier).sort();\n}\n\nfunction packageEntryWrapperPlugin(specifier: string, namedExports: string[]): Plugin {\n const wrapperId = `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`;\n\n return {\n name: \"package-entry-wrapper\",\n resolveId(source) {\n if (source === wrapperId) {\n return wrapperId;\n }\n return null;\n },\n load(id) {\n if (id !== wrapperId) {\n return null;\n }\n\n const namedExportLines = namedExports.map(\n (name) => `export const ${name} = __packageDefault.${name};`\n );\n\n return [\n `import __packageDefault from ${JSON.stringify(specifier)};`,\n \"export default __packageDefault;\",\n ...namedExportLines,\n ].join(\"\\n\");\n },\n };\n}\n\n/**\n * Cache for bundled npm packages. Key includes specifier + resolution root.\n */\nconst bundleCache = new Map<string, { code: string }>();\n\n/**\n * In-flight bundle promises to avoid duplicate concurrent bundles.\n */\nconst bundlesInFlight = new Map<string, Promise<{ code: string }>>();\n\n/**\n * Create a Rollup plugin that externalizes all bare specifiers that don't\n * belong to the current package. Internal files of the package are inlined;\n * other npm packages remain as import statements.\n */\nfunction externalizeDepsPlugin(currentPackageName: string): Plugin {\n return {\n name: \"externalize-deps\",\n resolveId(source, importer) {\n // Don't externalize the entry point\n if (!importer) return null;\n\n // Don't externalize relative imports (internal to the package)\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n\n // Don't externalize Node.js builtins — let nodeResolve handle them\n // via the package's browser field (e.g. \"fs\": false → empty module)\n if (isNodeBuiltin(source)) return null;\n\n // Check if this is a different npm package\n const { packageName } = parseSpecifier(source);\n if (packageName !== currentPackageName) {\n return { id: source, external: true };\n }\n\n // Same package — let Rollup resolve it normally\n return null;\n },\n };\n}\n\n/**\n * Bundle a bare specifier (npm package) using Rollup.\n *\n * Each unique bare specifier gets its own bundle with:\n * - node-resolve with browser conditions\n * - commonjs conversion\n * - json support\n * - process.env.NODE_ENV replacement\n * - External deps (other npm packages) left as import statements\n *\n * Results are cached permanently (npm packages are static).\n */\nexport async function bundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const cacheKey = `${specifier}\\0${rootDir}`;\n\n // Check cache\n const cached = bundleCache.get(cacheKey);\n if (cached) return cached;\n\n // Check in-flight\n const inFlight = bundlesInFlight.get(cacheKey);\n if (inFlight) return inFlight;\n\n const promise = doBundleSpecifier(specifier, rootDir);\n bundlesInFlight.set(cacheKey, promise);\n\n try {\n const result = await promise;\n bundleCache.set(cacheKey, result);\n return result;\n } finally {\n bundlesInFlight.delete(cacheKey);\n }\n}\n\nasync function doBundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const { packageName } = parseSpecifier(specifier);\n const namedExports = getCommonJsNamedExports(specifier, rootDir);\n const input = namedExports.length > 0\n ? `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`\n : specifier;\n\n const bundle = await rollup({\n input,\n // Disable tree-shaking: we're creating a virtual module that must faithfully\n // expose all package exports. We can't predict which ones user code will import.\n // Without this, exports like AWS SDK's ConverseStreamOutput (a namespace with\n // a visit() helper that nothing inside the bundle references) get dropped.\n treeshake: false,\n plugins: [\n packageEntryWrapperPlugin(specifier, namedExports),\n externalizeDepsPlugin(packageName),\n nodeResolve({ browser: true, rootDir }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Create a Rollup plugin that externalizes ALL bare specifiers.\n * Used for module aliases where the host file's relative imports are bundled\n * but npm package dependencies are left as external imports.\n */\nfunction externalizeAllBareSpecifiersPlugin(): Plugin {\n return {\n name: \"externalize-all-bare-specifiers\",\n resolveId(source, importer) {\n if (!importer) return null;\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n // Don't externalize Node.js builtins — let nodeResolve/shim handle them\n if (isNodeBuiltin(source)) return null;\n return { id: source, external: true };\n },\n };\n}\n\n/**\n * Create a Rollup transform plugin that strips TypeScript types.\n */\nfunction stripTypeScriptPlugin(): Plugin {\n return {\n name: \"strip-typescript\",\n transform(code, id) {\n if (isTypeScriptFile(id)) {\n return { code: processTypeScript(code, id), map: null };\n }\n return null;\n },\n };\n}\n\nconst TS_EXTENSIONS = [\".ts\", \".tsx\", \".mts\", \".cts\"];\n\n/**\n * Bundle a host file using Rollup, inlining its relative imports.\n *\n * - Uses the host file path as Rollup input\n * - Externalizes ALL bare specifiers (npm packages)\n * - Strips TypeScript via processTypeScript\n * - Shares the bundleCache/bundlesInFlight (no key collision since file paths start with `/`)\n *\n * Results are cached permanently.\n */\nexport async function bundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const cached = bundleCache.get(hostFilePath);\n if (cached) return cached;\n\n const inFlight = bundlesInFlight.get(hostFilePath);\n if (inFlight) return inFlight;\n\n const promise = doBundleHostFile(hostFilePath);\n bundlesInFlight.set(hostFilePath, promise);\n\n try {\n const result = await promise;\n bundleCache.set(hostFilePath, result);\n return result;\n } finally {\n bundlesInFlight.delete(hostFilePath);\n }\n}\n\nasync function doBundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const rootDir = path.dirname(hostFilePath);\n\n const bundle = await rollup({\n input: hostFilePath,\n treeshake: false,\n plugins: [\n externalizeAllBareSpecifiersPlugin(),\n stripTypeScriptPlugin(),\n nodeResolve({\n browser: true,\n rootDir,\n extensions: [\".mjs\", \".js\", \".json\", \".node\", ...TS_EXTENSIONS],\n }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Clear the bundle cache. Useful for testing.\n */\nexport function clearBundleCache(): void {\n bundleCache.clear();\n}\n"
|
|
5
|
+
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { builtinModules, createRequire } from \"node:module\";\nimport { rollup, type Plugin } from \"rollup\";\nimport * as nodeResolveModule from \"@rollup/plugin-node-resolve\";\nimport * as commonjsModule from \"@rollup/plugin-commonjs\";\nimport * as jsonModule from \"@rollup/plugin-json\";\nimport * as replaceModule from \"@rollup/plugin-replace\";\nimport { detectFormat, parseSpecifier } from \"./resolve.cjs\";\nimport { processTypeScript, isTypeScriptFile } from \"./strip-types.cjs\";\nimport type { RollupCommonJSOptions } from \"@rollup/plugin-commonjs\";\nimport type { RollupJsonOptions } from \"@rollup/plugin-json\";\nimport type { RollupReplaceOptions } from \"@rollup/plugin-replace\";\n\n// Handle CJS default exports\nconst nodeResolve = ((nodeResolveModule as any).default ||\n nodeResolveModule) as (typeof nodeResolveModule)[\"nodeResolve\"];\nconst commonjs = ((commonjsModule as any).default || commonjsModule) as (\n options?: RollupCommonJSOptions\n) => Plugin;\nconst json = ((jsonModule as any).default || jsonModule) as (\n options?: RollupJsonOptions\n) => Plugin;\nconst replace = ((replaceModule as any).default || replaceModule) as (\n options?: RollupReplaceOptions\n) => Plugin;\n\nconst commonjsInteropOptions = {\n // External package imports are resolved by later loader calls as ESM bundles,\n // so CommonJS requires need ESM-aware interop instead of default-import assumptions.\n esmExternals: true,\n requireReturnsDefault: \"auto\",\n} satisfies RollupCommonJSOptions;\n\nconst PACKAGE_ENTRY_WRAPPER_PREFIX = \"\\0package-entry-wrapper:\";\nconst INVALID_FUNCTION_EXPORT_NAMES = new Set([\n \"arguments\",\n \"caller\",\n \"length\",\n \"name\",\n \"prototype\",\n]);\n\n/**\n * Set of Node.js built-in module names (e.g. \"fs\", \"path\", \"crypto\").\n */\nconst nodeBuiltins = new Set(builtinModules);\n\n/**\n * Check if a specifier refers to a Node.js built-in module.\n * Handles bare names (\"fs\"), subpaths (\"fs/promises\"), and node: prefix (\"node:fs\").\n */\nfunction isNodeBuiltin(source: string): boolean {\n const name = source.startsWith(\"node:\") ? source.slice(5) : source;\n const topLevel = name.split(\"/\")[0]!;\n return nodeBuiltins.has(topLevel);\n}\n\nconst NODE_BUILTIN_SHIM_PREFIX = \"\\0node-builtin-shim:\";\n\nexport function getNodeBuiltinShimCode(source: string): string {\n if (source === \"ws\" || source === \"node:ws\") {\n return `\nconst WebSocketShim = globalThis.WebSocket;\n\nif (!WebSocketShim) {\n throw new Error(\"The isolate runtime does not provide a global WebSocket implementation.\");\n}\n\nexport { WebSocketShim as WebSocket };\nexport default WebSocketShim;\n`;\n }\n\n return \"export default {};\\n\";\n}\n\n/**\n * Rollup plugin that provides empty shims for Node.js built-in modules.\n * Place after nodeResolve — acts as a catch-all for builtins that the\n * package's browser field didn't map to false.\n */\nfunction shimNodeBuiltinsPlugin(): Plugin {\n return {\n name: \"shim-node-builtins\",\n resolveId(source) {\n if (isNodeBuiltin(source)) {\n return { id: `${NODE_BUILTIN_SHIM_PREFIX}${source}`, moduleSideEffects: false };\n }\n return null;\n },\n load(id) {\n if (id.startsWith(NODE_BUILTIN_SHIM_PREFIX)) {\n return getNodeBuiltinShimCode(id.slice(NODE_BUILTIN_SHIM_PREFIX.length));\n }\n return null;\n },\n };\n}\n\nfunction isValidEsmIdentifier(name: string): boolean {\n return /^[$A-Z_a-z][$\\w]*$/.test(name);\n}\n\nfunction resolvePackageImportPath(specifier: string, rootDir: string): string | null {\n const resolver = createRequire(path.join(rootDir, \"__isolate_module_loader__.js\"));\n\n let resolvedRequirePath: string;\n try {\n resolvedRequirePath = resolver.resolve(specifier);\n } catch {\n return null;\n }\n\n const { packageName, subpath } = parseSpecifier(specifier);\n const packageJsonPath = findPackageJsonPath(resolvedRequirePath, packageName);\n if (!packageJsonPath) {\n return resolvedRequirePath;\n }\n\n let packageJson: Record<string, unknown>;\n try {\n packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as Record<string, unknown>;\n } catch {\n return resolvedRequirePath;\n }\n\n const packageRoot = path.dirname(packageJsonPath);\n const exportPath = resolveImportEntryFromPackageJson(packageJson, subpath);\n\n if (exportPath) {\n return path.resolve(packageRoot, exportPath);\n }\n\n if (!subpath) {\n const moduleEntry = packageJson.module;\n if (typeof moduleEntry === \"string\") {\n return path.resolve(packageRoot, moduleEntry);\n }\n\n const browserEntry = packageJson.browser;\n if (typeof browserEntry === \"string\") {\n return path.resolve(packageRoot, browserEntry);\n }\n }\n\n return resolvedRequirePath;\n}\n\nfunction findPackageJsonPath(resolvedPath: string, packageName: string): string | null {\n let currentDir = path.dirname(resolvedPath);\n let matchedPackageJsonPath: string | null = null;\n\n while (true) {\n const packageJsonPath = path.join(currentDir, \"package.json\");\n\n if (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as { name?: string };\n if (packageJson.name === packageName) {\n // Keep walking upward: published packages often include nested\n // dist/cjs or dist/mjs package.json files with the same name, but the\n // real package root higher up contains the export map we need.\n matchedPackageJsonPath = packageJsonPath;\n }\n } catch {\n // Keep walking upward if a parent package.json is malformed.\n }\n }\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return matchedPackageJsonPath;\n }\n currentDir = parentDir;\n }\n}\n\nfunction resolveImportEntryFromPackageJson(\n packageJson: Record<string, unknown>,\n subpath: string\n): string | null {\n const exportsField = packageJson.exports;\n if (exportsField === undefined) {\n return null;\n }\n\n const exportKey = subpath ? `.${subpath}` : \".\";\n\n if (isConditionalExportsObject(exportsField)) {\n if (exportKey !== \".\") {\n return null;\n }\n return pickImportTarget(exportsField);\n }\n\n if (typeof exportsField === \"object\" && exportsField !== null && !Array.isArray(exportsField)) {\n const exportsRecord = exportsField as Record<string, unknown>;\n const directTarget = exportsRecord[exportKey];\n if (directTarget !== undefined) {\n return pickImportTarget(directTarget);\n }\n\n for (const [pattern, target] of Object.entries(exportsRecord)) {\n if (!pattern.includes(\"*\")) {\n continue;\n }\n\n const starIndex = pattern.indexOf(\"*\");\n const prefix = pattern.slice(0, starIndex);\n const suffix = pattern.slice(starIndex + 1);\n\n if (!exportKey.startsWith(prefix) || !exportKey.endsWith(suffix)) {\n continue;\n }\n\n const wildcardMatch = exportKey.slice(\n prefix.length,\n suffix.length > 0 ? -suffix.length : undefined,\n );\n\n return pickImportTarget(target, wildcardMatch);\n }\n\n return null;\n }\n\n return exportKey === \".\" ? pickImportTarget(exportsField) : null;\n}\n\nfunction isConditionalExportsObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\"\n && value !== null\n && !Array.isArray(value)\n && Object.keys(value).every((key) => !key.startsWith(\".\"));\n}\n\nfunction pickImportTarget(value: unknown, wildcardMatch?: string): string | null {\n if (typeof value === \"string\") {\n return wildcardMatch === undefined ? value : value.replaceAll(\"*\", wildcardMatch);\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n const target = pickImportTarget(item, wildcardMatch);\n if (target) {\n return target;\n }\n }\n return null;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return null;\n }\n\n const record = value as Record<string, unknown>;\n\n for (const key of [\"workerd\", \"worker\", \"edge-light\", \"import\", \"module\", \"default\", \"browser\"]) {\n if (key in record) {\n const target = pickImportTarget(record[key], wildcardMatch);\n if (target) {\n return target;\n }\n }\n }\n\n for (const nestedValue of Object.values(record)) {\n const target = pickImportTarget(nestedValue, wildcardMatch);\n if (target) {\n return target;\n }\n }\n\n return null;\n}\n\nfunction getCommonJsNamedExports(specifier: string, rootDir: string): string[] {\n const resolvedHostPath = resolvePackageImportPath(specifier, rootDir);\n if (!resolvedHostPath) {\n return [];\n }\n\n let code: string;\n try {\n code = fs.readFileSync(resolvedHostPath, \"utf-8\");\n } catch {\n return [];\n }\n\n if (detectFormat(resolvedHostPath, code) !== \"cjs\") {\n return [];\n }\n\n let moduleExports: unknown;\n try {\n moduleExports = createRequire(resolvedHostPath)(resolvedHostPath);\n } catch {\n return [];\n }\n\n if (moduleExports == null || (typeof moduleExports !== \"object\" && typeof moduleExports !== \"function\")) {\n return [];\n }\n\n const names = new Set([\n ...Object.keys(moduleExports),\n ...Object.getOwnPropertyNames(moduleExports),\n ]);\n\n names.delete(\"default\");\n names.delete(\"__esModule\");\n\n if (typeof moduleExports === \"function\") {\n for (const name of INVALID_FUNCTION_EXPORT_NAMES) {\n names.delete(name);\n }\n }\n\n return [...names].filter(isValidEsmIdentifier).sort();\n}\n\nfunction packageEntryWrapperPlugin(specifier: string, namedExports: string[]): Plugin {\n const wrapperId = `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`;\n\n return {\n name: \"package-entry-wrapper\",\n resolveId(source) {\n if (source === wrapperId) {\n return wrapperId;\n }\n return null;\n },\n load(id) {\n if (id !== wrapperId) {\n return null;\n }\n\n const namedExportLines = namedExports.map(\n (name) => `export const ${name} = __packageDefault.${name};`\n );\n\n return [\n `import __packageDefault from ${JSON.stringify(specifier)};`,\n \"export default __packageDefault;\",\n ...namedExportLines,\n ].join(\"\\n\");\n },\n };\n}\n\n/**\n * Cache for bundled npm packages. Key includes specifier + resolution root.\n */\nconst bundleCache = new Map<string, { code: string }>();\n\n/**\n * In-flight bundle promises to avoid duplicate concurrent bundles.\n */\nconst bundlesInFlight = new Map<string, Promise<{ code: string }>>();\n\n/**\n * Create a Rollup plugin that externalizes all bare specifiers that don't\n * belong to the current package. Internal files of the package are inlined;\n * other npm packages remain as import statements.\n */\nfunction externalizeDepsPlugin(currentPackageName: string): Plugin {\n return {\n name: \"externalize-deps\",\n resolveId(source, importer) {\n // Don't externalize the entry point\n if (!importer) return null;\n\n // Don't externalize relative imports (internal to the package)\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n\n // Keep package-private imports inside the current bundle so Rollup can\n // resolve them through the importing package's `imports` map.\n if (source.startsWith(\"#\")) return null;\n\n // Don't externalize Node.js builtins — let nodeResolve handle them\n // via the package's browser field (e.g. \"fs\": false → empty module)\n if (isNodeBuiltin(source)) return null;\n\n // Check if this is a different npm package\n const { packageName } = parseSpecifier(source);\n if (packageName !== currentPackageName) {\n return { id: source, external: true };\n }\n\n // Same package — let Rollup resolve it normally\n return null;\n },\n };\n}\n\n/**\n * Bundle a bare specifier (npm package) using Rollup.\n *\n * Each unique bare specifier gets its own bundle with:\n * - node-resolve with worker/server-safe export conditions\n * - commonjs conversion\n * - json support\n * - process.env.NODE_ENV replacement\n * - External deps (other npm packages) left as import statements\n *\n * Results are cached permanently (npm packages are static).\n */\nexport async function bundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const cacheKey = `${specifier}\\0${rootDir}`;\n\n // Check cache\n const cached = bundleCache.get(cacheKey);\n if (cached) return cached;\n\n // Check in-flight\n const inFlight = bundlesInFlight.get(cacheKey);\n if (inFlight) return inFlight;\n\n const promise = doBundleSpecifier(specifier, rootDir);\n bundlesInFlight.set(cacheKey, promise);\n\n try {\n const result = await promise;\n bundleCache.set(cacheKey, result);\n return result;\n } finally {\n bundlesInFlight.delete(cacheKey);\n }\n}\n\nasync function doBundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const { packageName } = parseSpecifier(specifier);\n const namedExports = getCommonJsNamedExports(specifier, rootDir);\n const input = namedExports.length > 0\n ? `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`\n : specifier;\n\n const bundle = await rollup({\n input,\n // Disable tree-shaking: we're creating a virtual module that must faithfully\n // expose all package exports. We can't predict which ones user code will import.\n // Without this, exports like AWS SDK's ConverseStreamOutput (a namespace with\n // a visit() helper that nothing inside the bundle references) get dropped.\n treeshake: false,\n plugins: [\n packageEntryWrapperPlugin(specifier, namedExports),\n externalizeDepsPlugin(packageName),\n nodeResolve({\n rootDir,\n browser: false,\n exportConditions: [\"workerd\", \"worker\", \"edge-light\"],\n }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Create a Rollup plugin that externalizes ALL bare specifiers.\n * Used for module aliases where the host file's relative imports are bundled\n * but npm package dependencies are left as external imports.\n */\nfunction externalizeAllBareSpecifiersPlugin(): Plugin {\n return {\n name: \"externalize-all-bare-specifiers\",\n resolveId(source, importer) {\n if (!importer) return null;\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n if (source.startsWith(\"#\")) return null;\n // Don't externalize Node.js builtins — let nodeResolve/shim handle them\n if (isNodeBuiltin(source)) return null;\n return { id: source, external: true };\n },\n };\n}\n\n/**\n * Create a Rollup transform plugin that strips TypeScript types.\n */\nfunction stripTypeScriptPlugin(): Plugin {\n return {\n name: \"strip-typescript\",\n transform(code, id) {\n if (isTypeScriptFile(id)) {\n return { code: processTypeScript(code, id), map: null };\n }\n return null;\n },\n };\n}\n\nconst TS_EXTENSIONS = [\".ts\", \".tsx\", \".mts\", \".cts\"];\n\n/**\n * Bundle a host file using Rollup, inlining its relative imports.\n *\n * - Uses the host file path as Rollup input\n * - Externalizes ALL bare specifiers (npm packages)\n * - Strips TypeScript via processTypeScript\n * - Shares the bundleCache/bundlesInFlight (no key collision since file paths start with `/`)\n *\n * Results are cached permanently.\n */\nexport async function bundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const cached = bundleCache.get(hostFilePath);\n if (cached) return cached;\n\n const inFlight = bundlesInFlight.get(hostFilePath);\n if (inFlight) return inFlight;\n\n const promise = doBundleHostFile(hostFilePath);\n bundlesInFlight.set(hostFilePath, promise);\n\n try {\n const result = await promise;\n bundleCache.set(hostFilePath, result);\n return result;\n } finally {\n bundlesInFlight.delete(hostFilePath);\n }\n}\n\nasync function doBundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const rootDir = path.dirname(hostFilePath);\n\n const bundle = await rollup({\n input: hostFilePath,\n treeshake: false,\n plugins: [\n externalizeAllBareSpecifiersPlugin(),\n stripTypeScriptPlugin(),\n nodeResolve({\n rootDir,\n browser: false,\n exportConditions: [\"workerd\", \"worker\", \"edge-light\"],\n extensions: [\".mjs\", \".js\", \".json\", \".node\", ...TS_EXTENSIONS],\n }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Clear the bundle cache. Useful for testing.\n */\nexport function clearBundleCache(): void {\n bundleCache.clear();\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAe,IAAf;AACiB,IAAjB;AAC8C,IAA9C;AACoC,IAApC;AACmC,IAAnC;AACgC,IAAhC;AAC4B,IAA5B;AAC+B,IAA/B;AAC6C,IAA7C;AACoD,IAApD;AAMA,IAAM,cAA0C,6BAC9C;AACF,IAAM,WAAoC,0BAAW;AAGrD,IAAM,OAA4B,sBAAW;AAG7C,IAAM,UAAkC,yBAAW;AAInD,IAAM,yBAAyB;AAAA,EAG7B,cAAc;AAAA,EACd,uBAAuB;AACzB;AAEA,IAAM,+BAA+B;AACrC,IAAM,gCAAgC,IAAI,IAAI;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKD,IAAM,eAAe,IAAI,IAAI,iCAAc;AAM3C,SAAS,aAAa,CAAC,QAAyB;AAAA,EAC9C,MAAM,OAAO,OAAO,WAAW,OAAO,IAAI,OAAO,MAAM,CAAC,IAAI;AAAA,EAC5D,MAAM,WAAW,KAAK,MAAM,GAAG,EAAE;AAAA,EACjC,OAAO,aAAa,IAAI,QAAQ;AAAA;AAGlC,IAAM,2BAA2B;AAE1B,SAAS,sBAAsB,CAAC,QAAwB;AAAA,EAC7D,IAAI,WAAW,QAAQ,WAAW,WAAW;AAAA,IAC3C,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUT;AAAA,EAEA,OAAO;AAAA;AAAA;AAQT,SAAS,sBAAsB,GAAW;AAAA,EACxC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ;AAAA,MAChB,IAAI,cAAc,MAAM,GAAG;AAAA,QACzB,OAAO,EAAE,IAAI,GAAG,2BAA2B,UAAU,mBAAmB,MAAM;AAAA,MAChF;AAAA,MACA,OAAO;AAAA;AAAA,IAET,IAAI,CAAC,IAAI;AAAA,MACP,IAAI,GAAG,WAAW,wBAAwB,GAAG;AAAA,QAC3C,OAAO,uBAAuB,GAAG,MAAM,yBAAyB,MAAM,CAAC;AAAA,MACzE;AAAA,MACA,OAAO;AAAA;AAAA,EAEX;AAAA;AAGF,SAAS,oBAAoB,CAAC,MAAuB;AAAA,EACnD,OAAO,qBAAqB,KAAK,IAAI;AAAA;AAGvC,SAAS,wBAAwB,CAAC,WAAmB,SAAgC;AAAA,EACnF,MAAM,WAAW,iCAAc,yBAAK,KAAK,SAAS,8BAA8B,CAAC;AAAA,EAEjF,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,sBAAsB,SAAS,QAAQ,SAAS;AAAA,IAChD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAGT,QAAQ,aAAa,YAAY,8BAAe,SAAS;AAAA,EACzD,MAAM,kBAAkB,oBAAoB,qBAAqB,WAAW;AAAA,EAC5E,IAAI,CAAC,iBAAiB;AAAA,IACpB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,cAAc,KAAK,MAAM,uBAAG,aAAa,iBAAiB,OAAO,CAAC;AAAA,IAClE,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAGT,MAAM,cAAc,yBAAK,QAAQ,eAAe;AAAA,EAChD,MAAM,aAAa,kCAAkC,aAAa,OAAO;AAAA,EAEzE,IAAI,YAAY;AAAA,IACd,OAAO,yBAAK,QAAQ,aAAa,UAAU;AAAA,EAC7C;AAAA,EAEA,IAAI,CAAC,SAAS;AAAA,IACZ,MAAM,cAAc,YAAY;AAAA,IAChC,IAAI,OAAO,gBAAgB,UAAU;AAAA,MACnC,OAAO,yBAAK,QAAQ,aAAa,WAAW;AAAA,IAC9C;AAAA,IAEA,MAAM,eAAe,YAAY;AAAA,IACjC,IAAI,OAAO,iBAAiB,UAAU;AAAA,MACpC,OAAO,yBAAK,QAAQ,aAAa,YAAY;AAAA,IAC/C;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGT,SAAS,mBAAmB,CAAC,cAAsB,aAAoC;AAAA,EACrF,IAAI,aAAa,yBAAK,QAAQ,YAAY;AAAA,EAC1C,IAAI,yBAAwC;AAAA,EAE5C,OAAO,MAAM;AAAA,IACX,MAAM,kBAAkB,yBAAK,KAAK,YAAY,cAAc;AAAA,IAE5D,IAAI,uBAAG,WAAW,eAAe,GAAG;AAAA,MAClC,IAAI;AAAA,QACF,MAAM,cAAc,KAAK,MAAM,uBAAG,aAAa,iBAAiB,OAAO,CAAC;AAAA,QACxE,IAAI,YAAY,SAAS,aAAa;AAAA,UAIpC,yBAAyB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,IAGV;AAAA,IAEA,MAAM,YAAY,yBAAK,QAAQ,UAAU;AAAA,IACzC,IAAI,cAAc,YAAY;AAAA,MAC5B,OAAO;AAAA,IACT;AAAA,IACA,aAAa;AAAA,EACf;AAAA;AAGF,SAAS,iCAAiC,CACxC,aACA,SACe;AAAA,EACf,MAAM,eAAe,YAAY;AAAA,EACjC,IAAI,iBAAiB,WAAW;AAAA,IAC9B,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,UAAU,IAAI,YAAY;AAAA,EAE5C,IAAI,2BAA2B,YAAY,GAAG;AAAA,IAC5C,IAAI,cAAc,KAAK;AAAA,MACrB,OAAO;AAAA,IACT;AAAA,IACA,OAAO,iBAAiB,YAAY;AAAA,EACtC;AAAA,EAEA,IAAI,OAAO,iBAAiB,YAAY,iBAAiB,QAAQ,CAAC,MAAM,QAAQ,YAAY,GAAG;AAAA,IAC7F,MAAM,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "D077AC7E84F7727D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/cjs/package.json
CHANGED
|
@@ -137,21 +137,38 @@ function resolveImportEntryFromPackageJson(packageJson, subpath) {
|
|
|
137
137
|
return pickImportTarget(exportsField);
|
|
138
138
|
}
|
|
139
139
|
if (typeof exportsField === "object" && exportsField !== null && !Array.isArray(exportsField)) {
|
|
140
|
-
const
|
|
141
|
-
|
|
140
|
+
const exportsRecord = exportsField;
|
|
141
|
+
const directTarget = exportsRecord[exportKey];
|
|
142
|
+
if (directTarget !== undefined) {
|
|
143
|
+
return pickImportTarget(directTarget);
|
|
144
|
+
}
|
|
145
|
+
for (const [pattern, target] of Object.entries(exportsRecord)) {
|
|
146
|
+
if (!pattern.includes("*")) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const starIndex = pattern.indexOf("*");
|
|
150
|
+
const prefix = pattern.slice(0, starIndex);
|
|
151
|
+
const suffix = pattern.slice(starIndex + 1);
|
|
152
|
+
if (!exportKey.startsWith(prefix) || !exportKey.endsWith(suffix)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const wildcardMatch = exportKey.slice(prefix.length, suffix.length > 0 ? -suffix.length : undefined);
|
|
156
|
+
return pickImportTarget(target, wildcardMatch);
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
142
159
|
}
|
|
143
160
|
return exportKey === "." ? pickImportTarget(exportsField) : null;
|
|
144
161
|
}
|
|
145
162
|
function isConditionalExportsObject(value) {
|
|
146
163
|
return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).every((key) => !key.startsWith("."));
|
|
147
164
|
}
|
|
148
|
-
function pickImportTarget(value) {
|
|
165
|
+
function pickImportTarget(value, wildcardMatch) {
|
|
149
166
|
if (typeof value === "string") {
|
|
150
|
-
return value;
|
|
167
|
+
return wildcardMatch === undefined ? value : value.replaceAll("*", wildcardMatch);
|
|
151
168
|
}
|
|
152
169
|
if (Array.isArray(value)) {
|
|
153
170
|
for (const item of value) {
|
|
154
|
-
const target = pickImportTarget(item);
|
|
171
|
+
const target = pickImportTarget(item, wildcardMatch);
|
|
155
172
|
if (target) {
|
|
156
173
|
return target;
|
|
157
174
|
}
|
|
@@ -162,16 +179,16 @@ function pickImportTarget(value) {
|
|
|
162
179
|
return null;
|
|
163
180
|
}
|
|
164
181
|
const record = value;
|
|
165
|
-
for (const key of ["
|
|
182
|
+
for (const key of ["workerd", "worker", "edge-light", "import", "module", "default", "browser"]) {
|
|
166
183
|
if (key in record) {
|
|
167
|
-
const target = pickImportTarget(record[key]);
|
|
184
|
+
const target = pickImportTarget(record[key], wildcardMatch);
|
|
168
185
|
if (target) {
|
|
169
186
|
return target;
|
|
170
187
|
}
|
|
171
188
|
}
|
|
172
189
|
}
|
|
173
190
|
for (const nestedValue of Object.values(record)) {
|
|
174
|
-
const target = pickImportTarget(nestedValue);
|
|
191
|
+
const target = pickImportTarget(nestedValue, wildcardMatch);
|
|
175
192
|
if (target) {
|
|
176
193
|
return target;
|
|
177
194
|
}
|
|
@@ -248,6 +265,8 @@ function externalizeDepsPlugin(currentPackageName) {
|
|
|
248
265
|
return null;
|
|
249
266
|
if (source.startsWith(".") || source.startsWith("/"))
|
|
250
267
|
return null;
|
|
268
|
+
if (source.startsWith("#"))
|
|
269
|
+
return null;
|
|
251
270
|
if (isNodeBuiltin(source))
|
|
252
271
|
return null;
|
|
253
272
|
const { packageName } = parseSpecifier(source);
|
|
@@ -286,7 +305,11 @@ async function doBundleSpecifier(specifier, rootDir) {
|
|
|
286
305
|
plugins: [
|
|
287
306
|
packageEntryWrapperPlugin(specifier, namedExports),
|
|
288
307
|
externalizeDepsPlugin(packageName),
|
|
289
|
-
nodeResolve({
|
|
308
|
+
nodeResolve({
|
|
309
|
+
rootDir,
|
|
310
|
+
browser: false,
|
|
311
|
+
exportConditions: ["workerd", "worker", "edge-light"]
|
|
312
|
+
}),
|
|
290
313
|
shimNodeBuiltinsPlugin(),
|
|
291
314
|
commonjs(commonjsInteropOptions),
|
|
292
315
|
json(),
|
|
@@ -326,6 +349,8 @@ function externalizeAllBareSpecifiersPlugin() {
|
|
|
326
349
|
return null;
|
|
327
350
|
if (source.startsWith(".") || source.startsWith("/"))
|
|
328
351
|
return null;
|
|
352
|
+
if (source.startsWith("#"))
|
|
353
|
+
return null;
|
|
329
354
|
if (isNodeBuiltin(source))
|
|
330
355
|
return null;
|
|
331
356
|
return { id: source, external: true };
|
|
@@ -370,8 +395,9 @@ async function doBundleHostFile(hostFilePath) {
|
|
|
370
395
|
externalizeAllBareSpecifiersPlugin(),
|
|
371
396
|
stripTypeScriptPlugin(),
|
|
372
397
|
nodeResolve({
|
|
373
|
-
browser: true,
|
|
374
398
|
rootDir,
|
|
399
|
+
browser: false,
|
|
400
|
+
exportConditions: ["workerd", "worker", "edge-light"],
|
|
375
401
|
extensions: [".mjs", ".js", ".json", ".node", ...TS_EXTENSIONS]
|
|
376
402
|
}),
|
|
377
403
|
shimNodeBuiltinsPlugin(),
|
|
@@ -415,4 +441,4 @@ export {
|
|
|
415
441
|
bundleHostFile
|
|
416
442
|
};
|
|
417
443
|
|
|
418
|
-
//# debugId=
|
|
444
|
+
//# debugId=B79CBC73CAD590E164756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/module-loader/bundle.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { builtinModules, createRequire } from \"node:module\";\nimport { rollup, type Plugin } from \"rollup\";\nimport * as nodeResolveModule from \"@rollup/plugin-node-resolve\";\nimport * as commonjsModule from \"@rollup/plugin-commonjs\";\nimport * as jsonModule from \"@rollup/plugin-json\";\nimport * as replaceModule from \"@rollup/plugin-replace\";\nimport { detectFormat, parseSpecifier } from \"./resolve.mjs\";\nimport { processTypeScript, isTypeScriptFile } from \"./strip-types.mjs\";\nimport type { RollupCommonJSOptions } from \"@rollup/plugin-commonjs\";\nimport type { RollupJsonOptions } from \"@rollup/plugin-json\";\nimport type { RollupReplaceOptions } from \"@rollup/plugin-replace\";\n\n// Handle CJS default exports\nconst nodeResolve = ((nodeResolveModule as any).default ||\n nodeResolveModule) as (typeof nodeResolveModule)[\"nodeResolve\"];\nconst commonjs = ((commonjsModule as any).default || commonjsModule) as (\n options?: RollupCommonJSOptions\n) => Plugin;\nconst json = ((jsonModule as any).default || jsonModule) as (\n options?: RollupJsonOptions\n) => Plugin;\nconst replace = ((replaceModule as any).default || replaceModule) as (\n options?: RollupReplaceOptions\n) => Plugin;\n\nconst commonjsInteropOptions = {\n // External package imports are resolved by later loader calls as ESM bundles,\n // so CommonJS requires need ESM-aware interop instead of default-import assumptions.\n esmExternals: true,\n requireReturnsDefault: \"auto\",\n} satisfies RollupCommonJSOptions;\n\nconst PACKAGE_ENTRY_WRAPPER_PREFIX = \"\\0package-entry-wrapper:\";\nconst INVALID_FUNCTION_EXPORT_NAMES = new Set([\n \"arguments\",\n \"caller\",\n \"length\",\n \"name\",\n \"prototype\",\n]);\n\n/**\n * Set of Node.js built-in module names (e.g. \"fs\", \"path\", \"crypto\").\n */\nconst nodeBuiltins = new Set(builtinModules);\n\n/**\n * Check if a specifier refers to a Node.js built-in module.\n * Handles bare names (\"fs\"), subpaths (\"fs/promises\"), and node: prefix (\"node:fs\").\n */\nfunction isNodeBuiltin(source: string): boolean {\n const name = source.startsWith(\"node:\") ? source.slice(5) : source;\n const topLevel = name.split(\"/\")[0]!;\n return nodeBuiltins.has(topLevel);\n}\n\nconst NODE_BUILTIN_SHIM_PREFIX = \"\\0node-builtin-shim:\";\n\nexport function getNodeBuiltinShimCode(source: string): string {\n if (source === \"ws\" || source === \"node:ws\") {\n return `\nconst WebSocketShim = globalThis.WebSocket;\n\nif (!WebSocketShim) {\n throw new Error(\"The isolate runtime does not provide a global WebSocket implementation.\");\n}\n\nexport { WebSocketShim as WebSocket };\nexport default WebSocketShim;\n`;\n }\n\n return \"export default {};\\n\";\n}\n\n/**\n * Rollup plugin that provides empty shims for Node.js built-in modules.\n * Place after nodeResolve — acts as a catch-all for builtins that the\n * package's browser field didn't map to false.\n */\nfunction shimNodeBuiltinsPlugin(): Plugin {\n return {\n name: \"shim-node-builtins\",\n resolveId(source) {\n if (isNodeBuiltin(source)) {\n return { id: `${NODE_BUILTIN_SHIM_PREFIX}${source}`, moduleSideEffects: false };\n }\n return null;\n },\n load(id) {\n if (id.startsWith(NODE_BUILTIN_SHIM_PREFIX)) {\n return getNodeBuiltinShimCode(id.slice(NODE_BUILTIN_SHIM_PREFIX.length));\n }\n return null;\n },\n };\n}\n\nfunction isValidEsmIdentifier(name: string): boolean {\n return /^[$A-Z_a-z][$\\w]*$/.test(name);\n}\n\nfunction resolvePackageImportPath(specifier: string, rootDir: string): string | null {\n const resolver = createRequire(path.join(rootDir, \"__isolate_module_loader__.js\"));\n\n let resolvedRequirePath: string;\n try {\n resolvedRequirePath = resolver.resolve(specifier);\n } catch {\n return null;\n }\n\n const { packageName, subpath } = parseSpecifier(specifier);\n const packageJsonPath = findPackageJsonPath(resolvedRequirePath, packageName);\n if (!packageJsonPath) {\n return resolvedRequirePath;\n }\n\n let packageJson: Record<string, unknown>;\n try {\n packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as Record<string, unknown>;\n } catch {\n return resolvedRequirePath;\n }\n\n const packageRoot = path.dirname(packageJsonPath);\n const exportPath = resolveImportEntryFromPackageJson(packageJson, subpath);\n\n if (exportPath) {\n return path.resolve(packageRoot, exportPath);\n }\n\n if (!subpath) {\n const moduleEntry = packageJson.module;\n if (typeof moduleEntry === \"string\") {\n return path.resolve(packageRoot, moduleEntry);\n }\n\n const browserEntry = packageJson.browser;\n if (typeof browserEntry === \"string\") {\n return path.resolve(packageRoot, browserEntry);\n }\n }\n\n return resolvedRequirePath;\n}\n\nfunction findPackageJsonPath(resolvedPath: string, packageName: string): string | null {\n let currentDir = path.dirname(resolvedPath);\n let matchedPackageJsonPath: string | null = null;\n\n while (true) {\n const packageJsonPath = path.join(currentDir, \"package.json\");\n\n if (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as { name?: string };\n if (packageJson.name === packageName) {\n // Keep walking upward: published packages often include nested\n // dist/cjs or dist/mjs package.json files with the same name, but the\n // real package root higher up contains the export map we need.\n matchedPackageJsonPath = packageJsonPath;\n }\n } catch {\n // Keep walking upward if a parent package.json is malformed.\n }\n }\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return matchedPackageJsonPath;\n }\n currentDir = parentDir;\n }\n}\n\nfunction resolveImportEntryFromPackageJson(\n packageJson: Record<string, unknown>,\n subpath: string\n): string | null {\n const exportsField = packageJson.exports;\n if (exportsField === undefined) {\n return null;\n }\n\n const exportKey = subpath ? `.${subpath}` : \".\";\n\n if (isConditionalExportsObject(exportsField)) {\n if (exportKey !== \".\") {\n return null;\n }\n return pickImportTarget(exportsField);\n }\n\n if (typeof exportsField === \"object\" && exportsField !== null && !Array.isArray(exportsField)) {\n const target = (exportsField as Record<string, unknown>)[exportKey];\n return target === undefined ? null : pickImportTarget(target);\n }\n\n return exportKey === \".\" ? pickImportTarget(exportsField) : null;\n}\n\nfunction isConditionalExportsObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\"\n && value !== null\n && !Array.isArray(value)\n && Object.keys(value).every((key) => !key.startsWith(\".\"));\n}\n\nfunction pickImportTarget(value: unknown): string | null {\n if (typeof value === \"string\") {\n return value;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n const target = pickImportTarget(item);\n if (target) {\n return target;\n }\n }\n return null;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return null;\n }\n\n const record = value as Record<string, unknown>;\n\n for (const key of [\"browser\", \"import\", \"module\", \"default\"]) {\n if (key in record) {\n const target = pickImportTarget(record[key]);\n if (target) {\n return target;\n }\n }\n }\n\n for (const nestedValue of Object.values(record)) {\n const target = pickImportTarget(nestedValue);\n if (target) {\n return target;\n }\n }\n\n return null;\n}\n\nfunction getCommonJsNamedExports(specifier: string, rootDir: string): string[] {\n const resolvedHostPath = resolvePackageImportPath(specifier, rootDir);\n if (!resolvedHostPath) {\n return [];\n }\n\n let code: string;\n try {\n code = fs.readFileSync(resolvedHostPath, \"utf-8\");\n } catch {\n return [];\n }\n\n if (detectFormat(resolvedHostPath, code) !== \"cjs\") {\n return [];\n }\n\n let moduleExports: unknown;\n try {\n moduleExports = createRequire(resolvedHostPath)(resolvedHostPath);\n } catch {\n return [];\n }\n\n if (moduleExports == null || (typeof moduleExports !== \"object\" && typeof moduleExports !== \"function\")) {\n return [];\n }\n\n const names = new Set([\n ...Object.keys(moduleExports),\n ...Object.getOwnPropertyNames(moduleExports),\n ]);\n\n names.delete(\"default\");\n names.delete(\"__esModule\");\n\n if (typeof moduleExports === \"function\") {\n for (const name of INVALID_FUNCTION_EXPORT_NAMES) {\n names.delete(name);\n }\n }\n\n return [...names].filter(isValidEsmIdentifier).sort();\n}\n\nfunction packageEntryWrapperPlugin(specifier: string, namedExports: string[]): Plugin {\n const wrapperId = `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`;\n\n return {\n name: \"package-entry-wrapper\",\n resolveId(source) {\n if (source === wrapperId) {\n return wrapperId;\n }\n return null;\n },\n load(id) {\n if (id !== wrapperId) {\n return null;\n }\n\n const namedExportLines = namedExports.map(\n (name) => `export const ${name} = __packageDefault.${name};`\n );\n\n return [\n `import __packageDefault from ${JSON.stringify(specifier)};`,\n \"export default __packageDefault;\",\n ...namedExportLines,\n ].join(\"\\n\");\n },\n };\n}\n\n/**\n * Cache for bundled npm packages. Key includes specifier + resolution root.\n */\nconst bundleCache = new Map<string, { code: string }>();\n\n/**\n * In-flight bundle promises to avoid duplicate concurrent bundles.\n */\nconst bundlesInFlight = new Map<string, Promise<{ code: string }>>();\n\n/**\n * Create a Rollup plugin that externalizes all bare specifiers that don't\n * belong to the current package. Internal files of the package are inlined;\n * other npm packages remain as import statements.\n */\nfunction externalizeDepsPlugin(currentPackageName: string): Plugin {\n return {\n name: \"externalize-deps\",\n resolveId(source, importer) {\n // Don't externalize the entry point\n if (!importer) return null;\n\n // Don't externalize relative imports (internal to the package)\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n\n // Don't externalize Node.js builtins — let nodeResolve handle them\n // via the package's browser field (e.g. \"fs\": false → empty module)\n if (isNodeBuiltin(source)) return null;\n\n // Check if this is a different npm package\n const { packageName } = parseSpecifier(source);\n if (packageName !== currentPackageName) {\n return { id: source, external: true };\n }\n\n // Same package — let Rollup resolve it normally\n return null;\n },\n };\n}\n\n/**\n * Bundle a bare specifier (npm package) using Rollup.\n *\n * Each unique bare specifier gets its own bundle with:\n * - node-resolve with browser conditions\n * - commonjs conversion\n * - json support\n * - process.env.NODE_ENV replacement\n * - External deps (other npm packages) left as import statements\n *\n * Results are cached permanently (npm packages are static).\n */\nexport async function bundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const cacheKey = `${specifier}\\0${rootDir}`;\n\n // Check cache\n const cached = bundleCache.get(cacheKey);\n if (cached) return cached;\n\n // Check in-flight\n const inFlight = bundlesInFlight.get(cacheKey);\n if (inFlight) return inFlight;\n\n const promise = doBundleSpecifier(specifier, rootDir);\n bundlesInFlight.set(cacheKey, promise);\n\n try {\n const result = await promise;\n bundleCache.set(cacheKey, result);\n return result;\n } finally {\n bundlesInFlight.delete(cacheKey);\n }\n}\n\nasync function doBundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const { packageName } = parseSpecifier(specifier);\n const namedExports = getCommonJsNamedExports(specifier, rootDir);\n const input = namedExports.length > 0\n ? `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`\n : specifier;\n\n const bundle = await rollup({\n input,\n // Disable tree-shaking: we're creating a virtual module that must faithfully\n // expose all package exports. We can't predict which ones user code will import.\n // Without this, exports like AWS SDK's ConverseStreamOutput (a namespace with\n // a visit() helper that nothing inside the bundle references) get dropped.\n treeshake: false,\n plugins: [\n packageEntryWrapperPlugin(specifier, namedExports),\n externalizeDepsPlugin(packageName),\n nodeResolve({ browser: true, rootDir }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Create a Rollup plugin that externalizes ALL bare specifiers.\n * Used for module aliases where the host file's relative imports are bundled\n * but npm package dependencies are left as external imports.\n */\nfunction externalizeAllBareSpecifiersPlugin(): Plugin {\n return {\n name: \"externalize-all-bare-specifiers\",\n resolveId(source, importer) {\n if (!importer) return null;\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n // Don't externalize Node.js builtins — let nodeResolve/shim handle them\n if (isNodeBuiltin(source)) return null;\n return { id: source, external: true };\n },\n };\n}\n\n/**\n * Create a Rollup transform plugin that strips TypeScript types.\n */\nfunction stripTypeScriptPlugin(): Plugin {\n return {\n name: \"strip-typescript\",\n transform(code, id) {\n if (isTypeScriptFile(id)) {\n return { code: processTypeScript(code, id), map: null };\n }\n return null;\n },\n };\n}\n\nconst TS_EXTENSIONS = [\".ts\", \".tsx\", \".mts\", \".cts\"];\n\n/**\n * Bundle a host file using Rollup, inlining its relative imports.\n *\n * - Uses the host file path as Rollup input\n * - Externalizes ALL bare specifiers (npm packages)\n * - Strips TypeScript via processTypeScript\n * - Shares the bundleCache/bundlesInFlight (no key collision since file paths start with `/`)\n *\n * Results are cached permanently.\n */\nexport async function bundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const cached = bundleCache.get(hostFilePath);\n if (cached) return cached;\n\n const inFlight = bundlesInFlight.get(hostFilePath);\n if (inFlight) return inFlight;\n\n const promise = doBundleHostFile(hostFilePath);\n bundlesInFlight.set(hostFilePath, promise);\n\n try {\n const result = await promise;\n bundleCache.set(hostFilePath, result);\n return result;\n } finally {\n bundlesInFlight.delete(hostFilePath);\n }\n}\n\nasync function doBundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const rootDir = path.dirname(hostFilePath);\n\n const bundle = await rollup({\n input: hostFilePath,\n treeshake: false,\n plugins: [\n externalizeAllBareSpecifiersPlugin(),\n stripTypeScriptPlugin(),\n nodeResolve({\n browser: true,\n rootDir,\n extensions: [\".mjs\", \".js\", \".json\", \".node\", ...TS_EXTENSIONS],\n }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Clear the bundle cache. Useful for testing.\n */\nexport function clearBundleCache(): void {\n bundleCache.clear();\n}\n"
|
|
5
|
+
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { builtinModules, createRequire } from \"node:module\";\nimport { rollup, type Plugin } from \"rollup\";\nimport * as nodeResolveModule from \"@rollup/plugin-node-resolve\";\nimport * as commonjsModule from \"@rollup/plugin-commonjs\";\nimport * as jsonModule from \"@rollup/plugin-json\";\nimport * as replaceModule from \"@rollup/plugin-replace\";\nimport { detectFormat, parseSpecifier } from \"./resolve.mjs\";\nimport { processTypeScript, isTypeScriptFile } from \"./strip-types.mjs\";\nimport type { RollupCommonJSOptions } from \"@rollup/plugin-commonjs\";\nimport type { RollupJsonOptions } from \"@rollup/plugin-json\";\nimport type { RollupReplaceOptions } from \"@rollup/plugin-replace\";\n\n// Handle CJS default exports\nconst nodeResolve = ((nodeResolveModule as any).default ||\n nodeResolveModule) as (typeof nodeResolveModule)[\"nodeResolve\"];\nconst commonjs = ((commonjsModule as any).default || commonjsModule) as (\n options?: RollupCommonJSOptions\n) => Plugin;\nconst json = ((jsonModule as any).default || jsonModule) as (\n options?: RollupJsonOptions\n) => Plugin;\nconst replace = ((replaceModule as any).default || replaceModule) as (\n options?: RollupReplaceOptions\n) => Plugin;\n\nconst commonjsInteropOptions = {\n // External package imports are resolved by later loader calls as ESM bundles,\n // so CommonJS requires need ESM-aware interop instead of default-import assumptions.\n esmExternals: true,\n requireReturnsDefault: \"auto\",\n} satisfies RollupCommonJSOptions;\n\nconst PACKAGE_ENTRY_WRAPPER_PREFIX = \"\\0package-entry-wrapper:\";\nconst INVALID_FUNCTION_EXPORT_NAMES = new Set([\n \"arguments\",\n \"caller\",\n \"length\",\n \"name\",\n \"prototype\",\n]);\n\n/**\n * Set of Node.js built-in module names (e.g. \"fs\", \"path\", \"crypto\").\n */\nconst nodeBuiltins = new Set(builtinModules);\n\n/**\n * Check if a specifier refers to a Node.js built-in module.\n * Handles bare names (\"fs\"), subpaths (\"fs/promises\"), and node: prefix (\"node:fs\").\n */\nfunction isNodeBuiltin(source: string): boolean {\n const name = source.startsWith(\"node:\") ? source.slice(5) : source;\n const topLevel = name.split(\"/\")[0]!;\n return nodeBuiltins.has(topLevel);\n}\n\nconst NODE_BUILTIN_SHIM_PREFIX = \"\\0node-builtin-shim:\";\n\nexport function getNodeBuiltinShimCode(source: string): string {\n if (source === \"ws\" || source === \"node:ws\") {\n return `\nconst WebSocketShim = globalThis.WebSocket;\n\nif (!WebSocketShim) {\n throw new Error(\"The isolate runtime does not provide a global WebSocket implementation.\");\n}\n\nexport { WebSocketShim as WebSocket };\nexport default WebSocketShim;\n`;\n }\n\n return \"export default {};\\n\";\n}\n\n/**\n * Rollup plugin that provides empty shims for Node.js built-in modules.\n * Place after nodeResolve — acts as a catch-all for builtins that the\n * package's browser field didn't map to false.\n */\nfunction shimNodeBuiltinsPlugin(): Plugin {\n return {\n name: \"shim-node-builtins\",\n resolveId(source) {\n if (isNodeBuiltin(source)) {\n return { id: `${NODE_BUILTIN_SHIM_PREFIX}${source}`, moduleSideEffects: false };\n }\n return null;\n },\n load(id) {\n if (id.startsWith(NODE_BUILTIN_SHIM_PREFIX)) {\n return getNodeBuiltinShimCode(id.slice(NODE_BUILTIN_SHIM_PREFIX.length));\n }\n return null;\n },\n };\n}\n\nfunction isValidEsmIdentifier(name: string): boolean {\n return /^[$A-Z_a-z][$\\w]*$/.test(name);\n}\n\nfunction resolvePackageImportPath(specifier: string, rootDir: string): string | null {\n const resolver = createRequire(path.join(rootDir, \"__isolate_module_loader__.js\"));\n\n let resolvedRequirePath: string;\n try {\n resolvedRequirePath = resolver.resolve(specifier);\n } catch {\n return null;\n }\n\n const { packageName, subpath } = parseSpecifier(specifier);\n const packageJsonPath = findPackageJsonPath(resolvedRequirePath, packageName);\n if (!packageJsonPath) {\n return resolvedRequirePath;\n }\n\n let packageJson: Record<string, unknown>;\n try {\n packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as Record<string, unknown>;\n } catch {\n return resolvedRequirePath;\n }\n\n const packageRoot = path.dirname(packageJsonPath);\n const exportPath = resolveImportEntryFromPackageJson(packageJson, subpath);\n\n if (exportPath) {\n return path.resolve(packageRoot, exportPath);\n }\n\n if (!subpath) {\n const moduleEntry = packageJson.module;\n if (typeof moduleEntry === \"string\") {\n return path.resolve(packageRoot, moduleEntry);\n }\n\n const browserEntry = packageJson.browser;\n if (typeof browserEntry === \"string\") {\n return path.resolve(packageRoot, browserEntry);\n }\n }\n\n return resolvedRequirePath;\n}\n\nfunction findPackageJsonPath(resolvedPath: string, packageName: string): string | null {\n let currentDir = path.dirname(resolvedPath);\n let matchedPackageJsonPath: string | null = null;\n\n while (true) {\n const packageJsonPath = path.join(currentDir, \"package.json\");\n\n if (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as { name?: string };\n if (packageJson.name === packageName) {\n // Keep walking upward: published packages often include nested\n // dist/cjs or dist/mjs package.json files with the same name, but the\n // real package root higher up contains the export map we need.\n matchedPackageJsonPath = packageJsonPath;\n }\n } catch {\n // Keep walking upward if a parent package.json is malformed.\n }\n }\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return matchedPackageJsonPath;\n }\n currentDir = parentDir;\n }\n}\n\nfunction resolveImportEntryFromPackageJson(\n packageJson: Record<string, unknown>,\n subpath: string\n): string | null {\n const exportsField = packageJson.exports;\n if (exportsField === undefined) {\n return null;\n }\n\n const exportKey = subpath ? `.${subpath}` : \".\";\n\n if (isConditionalExportsObject(exportsField)) {\n if (exportKey !== \".\") {\n return null;\n }\n return pickImportTarget(exportsField);\n }\n\n if (typeof exportsField === \"object\" && exportsField !== null && !Array.isArray(exportsField)) {\n const exportsRecord = exportsField as Record<string, unknown>;\n const directTarget = exportsRecord[exportKey];\n if (directTarget !== undefined) {\n return pickImportTarget(directTarget);\n }\n\n for (const [pattern, target] of Object.entries(exportsRecord)) {\n if (!pattern.includes(\"*\")) {\n continue;\n }\n\n const starIndex = pattern.indexOf(\"*\");\n const prefix = pattern.slice(0, starIndex);\n const suffix = pattern.slice(starIndex + 1);\n\n if (!exportKey.startsWith(prefix) || !exportKey.endsWith(suffix)) {\n continue;\n }\n\n const wildcardMatch = exportKey.slice(\n prefix.length,\n suffix.length > 0 ? -suffix.length : undefined,\n );\n\n return pickImportTarget(target, wildcardMatch);\n }\n\n return null;\n }\n\n return exportKey === \".\" ? pickImportTarget(exportsField) : null;\n}\n\nfunction isConditionalExportsObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\"\n && value !== null\n && !Array.isArray(value)\n && Object.keys(value).every((key) => !key.startsWith(\".\"));\n}\n\nfunction pickImportTarget(value: unknown, wildcardMatch?: string): string | null {\n if (typeof value === \"string\") {\n return wildcardMatch === undefined ? value : value.replaceAll(\"*\", wildcardMatch);\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n const target = pickImportTarget(item, wildcardMatch);\n if (target) {\n return target;\n }\n }\n return null;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return null;\n }\n\n const record = value as Record<string, unknown>;\n\n for (const key of [\"workerd\", \"worker\", \"edge-light\", \"import\", \"module\", \"default\", \"browser\"]) {\n if (key in record) {\n const target = pickImportTarget(record[key], wildcardMatch);\n if (target) {\n return target;\n }\n }\n }\n\n for (const nestedValue of Object.values(record)) {\n const target = pickImportTarget(nestedValue, wildcardMatch);\n if (target) {\n return target;\n }\n }\n\n return null;\n}\n\nfunction getCommonJsNamedExports(specifier: string, rootDir: string): string[] {\n const resolvedHostPath = resolvePackageImportPath(specifier, rootDir);\n if (!resolvedHostPath) {\n return [];\n }\n\n let code: string;\n try {\n code = fs.readFileSync(resolvedHostPath, \"utf-8\");\n } catch {\n return [];\n }\n\n if (detectFormat(resolvedHostPath, code) !== \"cjs\") {\n return [];\n }\n\n let moduleExports: unknown;\n try {\n moduleExports = createRequire(resolvedHostPath)(resolvedHostPath);\n } catch {\n return [];\n }\n\n if (moduleExports == null || (typeof moduleExports !== \"object\" && typeof moduleExports !== \"function\")) {\n return [];\n }\n\n const names = new Set([\n ...Object.keys(moduleExports),\n ...Object.getOwnPropertyNames(moduleExports),\n ]);\n\n names.delete(\"default\");\n names.delete(\"__esModule\");\n\n if (typeof moduleExports === \"function\") {\n for (const name of INVALID_FUNCTION_EXPORT_NAMES) {\n names.delete(name);\n }\n }\n\n return [...names].filter(isValidEsmIdentifier).sort();\n}\n\nfunction packageEntryWrapperPlugin(specifier: string, namedExports: string[]): Plugin {\n const wrapperId = `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`;\n\n return {\n name: \"package-entry-wrapper\",\n resolveId(source) {\n if (source === wrapperId) {\n return wrapperId;\n }\n return null;\n },\n load(id) {\n if (id !== wrapperId) {\n return null;\n }\n\n const namedExportLines = namedExports.map(\n (name) => `export const ${name} = __packageDefault.${name};`\n );\n\n return [\n `import __packageDefault from ${JSON.stringify(specifier)};`,\n \"export default __packageDefault;\",\n ...namedExportLines,\n ].join(\"\\n\");\n },\n };\n}\n\n/**\n * Cache for bundled npm packages. Key includes specifier + resolution root.\n */\nconst bundleCache = new Map<string, { code: string }>();\n\n/**\n * In-flight bundle promises to avoid duplicate concurrent bundles.\n */\nconst bundlesInFlight = new Map<string, Promise<{ code: string }>>();\n\n/**\n * Create a Rollup plugin that externalizes all bare specifiers that don't\n * belong to the current package. Internal files of the package are inlined;\n * other npm packages remain as import statements.\n */\nfunction externalizeDepsPlugin(currentPackageName: string): Plugin {\n return {\n name: \"externalize-deps\",\n resolveId(source, importer) {\n // Don't externalize the entry point\n if (!importer) return null;\n\n // Don't externalize relative imports (internal to the package)\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n\n // Keep package-private imports inside the current bundle so Rollup can\n // resolve them through the importing package's `imports` map.\n if (source.startsWith(\"#\")) return null;\n\n // Don't externalize Node.js builtins — let nodeResolve handle them\n // via the package's browser field (e.g. \"fs\": false → empty module)\n if (isNodeBuiltin(source)) return null;\n\n // Check if this is a different npm package\n const { packageName } = parseSpecifier(source);\n if (packageName !== currentPackageName) {\n return { id: source, external: true };\n }\n\n // Same package — let Rollup resolve it normally\n return null;\n },\n };\n}\n\n/**\n * Bundle a bare specifier (npm package) using Rollup.\n *\n * Each unique bare specifier gets its own bundle with:\n * - node-resolve with worker/server-safe export conditions\n * - commonjs conversion\n * - json support\n * - process.env.NODE_ENV replacement\n * - External deps (other npm packages) left as import statements\n *\n * Results are cached permanently (npm packages are static).\n */\nexport async function bundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const cacheKey = `${specifier}\\0${rootDir}`;\n\n // Check cache\n const cached = bundleCache.get(cacheKey);\n if (cached) return cached;\n\n // Check in-flight\n const inFlight = bundlesInFlight.get(cacheKey);\n if (inFlight) return inFlight;\n\n const promise = doBundleSpecifier(specifier, rootDir);\n bundlesInFlight.set(cacheKey, promise);\n\n try {\n const result = await promise;\n bundleCache.set(cacheKey, result);\n return result;\n } finally {\n bundlesInFlight.delete(cacheKey);\n }\n}\n\nasync function doBundleSpecifier(\n specifier: string,\n rootDir: string\n): Promise<{ code: string }> {\n const { packageName } = parseSpecifier(specifier);\n const namedExports = getCommonJsNamedExports(specifier, rootDir);\n const input = namedExports.length > 0\n ? `${PACKAGE_ENTRY_WRAPPER_PREFIX}${specifier}`\n : specifier;\n\n const bundle = await rollup({\n input,\n // Disable tree-shaking: we're creating a virtual module that must faithfully\n // expose all package exports. We can't predict which ones user code will import.\n // Without this, exports like AWS SDK's ConverseStreamOutput (a namespace with\n // a visit() helper that nothing inside the bundle references) get dropped.\n treeshake: false,\n plugins: [\n packageEntryWrapperPlugin(specifier, namedExports),\n externalizeDepsPlugin(packageName),\n nodeResolve({\n rootDir,\n browser: false,\n exportConditions: [\"workerd\", \"worker\", \"edge-light\"],\n }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Create a Rollup plugin that externalizes ALL bare specifiers.\n * Used for module aliases where the host file's relative imports are bundled\n * but npm package dependencies are left as external imports.\n */\nfunction externalizeAllBareSpecifiersPlugin(): Plugin {\n return {\n name: \"externalize-all-bare-specifiers\",\n resolveId(source, importer) {\n if (!importer) return null;\n if (source.startsWith(\".\") || source.startsWith(\"/\")) return null;\n if (source.startsWith(\"#\")) return null;\n // Don't externalize Node.js builtins — let nodeResolve/shim handle them\n if (isNodeBuiltin(source)) return null;\n return { id: source, external: true };\n },\n };\n}\n\n/**\n * Create a Rollup transform plugin that strips TypeScript types.\n */\nfunction stripTypeScriptPlugin(): Plugin {\n return {\n name: \"strip-typescript\",\n transform(code, id) {\n if (isTypeScriptFile(id)) {\n return { code: processTypeScript(code, id), map: null };\n }\n return null;\n },\n };\n}\n\nconst TS_EXTENSIONS = [\".ts\", \".tsx\", \".mts\", \".cts\"];\n\n/**\n * Bundle a host file using Rollup, inlining its relative imports.\n *\n * - Uses the host file path as Rollup input\n * - Externalizes ALL bare specifiers (npm packages)\n * - Strips TypeScript via processTypeScript\n * - Shares the bundleCache/bundlesInFlight (no key collision since file paths start with `/`)\n *\n * Results are cached permanently.\n */\nexport async function bundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const cached = bundleCache.get(hostFilePath);\n if (cached) return cached;\n\n const inFlight = bundlesInFlight.get(hostFilePath);\n if (inFlight) return inFlight;\n\n const promise = doBundleHostFile(hostFilePath);\n bundlesInFlight.set(hostFilePath, promise);\n\n try {\n const result = await promise;\n bundleCache.set(hostFilePath, result);\n return result;\n } finally {\n bundlesInFlight.delete(hostFilePath);\n }\n}\n\nasync function doBundleHostFile(\n hostFilePath: string,\n): Promise<{ code: string }> {\n const rootDir = path.dirname(hostFilePath);\n\n const bundle = await rollup({\n input: hostFilePath,\n treeshake: false,\n plugins: [\n externalizeAllBareSpecifiersPlugin(),\n stripTypeScriptPlugin(),\n nodeResolve({\n rootDir,\n browser: false,\n exportConditions: [\"workerd\", \"worker\", \"edge-light\"],\n extensions: [\".mjs\", \".js\", \".json\", \".node\", ...TS_EXTENSIONS],\n }),\n shimNodeBuiltinsPlugin(),\n commonjs(commonjsInteropOptions),\n json(),\n replace({\n preventAssignment: true,\n values: { \"process.env.NODE_ENV\": JSON.stringify(\"development\") },\n }),\n ],\n onwarn: (warning, warn) => {\n if (warning.code === \"CIRCULAR_DEPENDENCY\") return;\n if (warning.code === \"THIS_IS_UNDEFINED\") return;\n if (warning.code === \"UNUSED_EXTERNAL_IMPORT\") return;\n if (warning.code === \"EMPTY_BUNDLE\") return;\n // Suppress warnings about named imports from shimmed Node.js builtins\n if (warning.code === \"MISSING_EXPORT\" && warning.exporter?.startsWith(NODE_BUILTIN_SHIM_PREFIX)) return;\n warn(warning);\n },\n });\n\n const { output } = await bundle.generate({\n format: \"es\",\n sourcemap: \"inline\",\n inlineDynamicImports: true,\n });\n await bundle.close();\n\n const code = output[0]!.code;\n return { code };\n}\n\n/**\n * Clear the bundle cache. Useful for testing.\n */\nexport function clearBundleCache(): void {\n bundleCache.clear();\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "B79CBC73CAD590E164756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/mjs/package.json
CHANGED
|
@@ -3,7 +3,7 @@ export declare function getNodeBuiltinShimCode(source: string): string;
|
|
|
3
3
|
* Bundle a bare specifier (npm package) using Rollup.
|
|
4
4
|
*
|
|
5
5
|
* Each unique bare specifier gets its own bundle with:
|
|
6
|
-
* - node-resolve with
|
|
6
|
+
* - node-resolve with worker/server-safe export conditions
|
|
7
7
|
* - commonjs conversion
|
|
8
8
|
* - json support
|
|
9
9
|
* - process.env.NODE_ENV replacement
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ricsam/isolate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Unified runtime host for app servers, script runtimes, browser runtimes, module resolution, file bindings, and typechecking",
|
|
6
6
|
"author": "ricsam <oss@ricsam.dev>",
|