@reckona/mreact-router 0.0.153 → 0.0.155

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.
@@ -23,10 +23,17 @@ export declare function importAppRouterBuiltFileModule<T>(options: {
23
23
  cacheKey?: string | undefined;
24
24
  file: string;
25
25
  }): Promise<T>;
26
+ export declare const COMPAT_VENDOR_PLACEHOLDER_PREFIX = "mreact-compat-vendor:";
27
+ export declare function compatVendorEntryNames(): readonly string[];
28
+ export declare function sourceReferencesCompatVendorSpecifier(source: string): boolean;
29
+ export declare function resolveCompatVendorEntryFiles(resolveDir?: string): Map<string, string>;
30
+ export declare function rewriteCompatVendorPlaceholderImportsForRunner(code: string, resolveDir?: string): string;
31
+ export declare function compatVendorExternalizePlugin(): RouterCompatPlugin;
26
32
  export declare function bundleAppRouterSourceModule(options: {
27
33
  code: string;
28
34
  define?: UserConfig["define"] | undefined;
29
35
  externalizeAppSourceModuleDirs?: readonly string[] | undefined;
36
+ externalizeCompatVendor?: boolean | undefined;
30
37
  label: string;
31
38
  plugins?: readonly RouterCompatPlugin[] | undefined;
32
39
  resolveDir?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,MAAM,CAAC;AAEd,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,6BAA6B,CAAC;AA0BrC,wBAAgB,mCAAmC,IAAI,sBAAsB,EAAE,CAe9E;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,8BAA8B,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Bb;AAmCD,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAK3E;AAgFD,wBAAsB,8BAA8B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Bb;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,8BAA8B,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBlB;AAED,wBAAgB,uBAAuB,IAAI,kBAAkB,CAwB5D;AAED,UAAU,4BAA4B;IACpC,yBAAyB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAClE,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC3E,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD"}
1
+ {"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"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"}
@@ -154,6 +154,87 @@ export async function importAppRouterBuiltFileModule(options) {
154
154
  }
155
155
  return (await import(pathToFileURL(options.file).href));
156
156
  }
157
+ export const COMPAT_VENDOR_PLACEHOLDER_PREFIX = "mreact-compat-vendor:";
158
+ // Specifier-to-dist-entry table for the react-compat server family. The
159
+ // per-route externalization plugin and the shared vendor chunk build must
160
+ // agree exactly with the workspace alias table above, so both derive from
161
+ // this map.
162
+ const compatVendorSpecifierEntries = new Map([
163
+ ["react", "index"],
164
+ ["react-dom", "index"],
165
+ ["react-dom/client", "index"],
166
+ ["react-dom/server", "index"],
167
+ ["react/jsx-dev-runtime", "jsx-dev-runtime"],
168
+ ["react/jsx-runtime", "jsx-runtime"],
169
+ ["@reckona/mreact-compat", "index"],
170
+ ["@reckona/mreact-compat/event-priority", "event-priority"],
171
+ ["@reckona/mreact-compat/flight", "flight"],
172
+ ["@reckona/mreact-compat/hooks", "hooks-entry"],
173
+ ["@reckona/mreact-compat/internal", "internal"],
174
+ ["@reckona/mreact-compat/jsx-dev-runtime", "jsx-dev-runtime"],
175
+ ["@reckona/mreact-compat/jsx-runtime", "jsx-runtime"],
176
+ ["@reckona/mreact-compat/scheduler", "scheduler"],
177
+ ]);
178
+ const compatVendorEntrySpecifiers = new Map([
179
+ ["index", "@reckona/mreact-compat"],
180
+ ["jsx-runtime", "@reckona/mreact-compat/jsx-runtime"],
181
+ ["jsx-dev-runtime", "@reckona/mreact-compat/jsx-dev-runtime"],
182
+ ["hooks-entry", "@reckona/mreact-compat/hooks"],
183
+ ["scheduler", "@reckona/mreact-compat/scheduler"],
184
+ ["event-priority", "@reckona/mreact-compat/event-priority"],
185
+ ["flight", "@reckona/mreact-compat/flight"],
186
+ ["internal", "@reckona/mreact-compat/internal"],
187
+ ]);
188
+ export function compatVendorEntryNames() {
189
+ return [...compatVendorEntrySpecifiers.keys()];
190
+ }
191
+ // Cheap build-time prefilter. A false positive only costs one unused vendor
192
+ // chunk build; a false negative keeps the per-route inlining fallback.
193
+ const compatVendorSpecifierPattern = /["'](?:react|react-dom|react\/jsx(?:-dev)?-runtime|react-dom\/(?:client|server)|@reckona\/mreact-compat(?:\/[\w-]+)?)["']/u;
194
+ export function sourceReferencesCompatVendorSpecifier(source) {
195
+ return compatVendorSpecifierPattern.test(source);
196
+ }
197
+ export function resolveCompatVendorEntryFiles(resolveDir) {
198
+ const files = new Map();
199
+ for (const [entry, specifier] of compatVendorEntrySpecifiers) {
200
+ files.set(entry, resolveWorkspacePackageFile({
201
+ currentFileUrl: import.meta.url,
202
+ entry,
203
+ monorepoDir: "react-compat",
204
+ packageName: "@reckona/mreact-compat",
205
+ resolveDir,
206
+ specifier,
207
+ }));
208
+ }
209
+ return files;
210
+ }
211
+ const compatVendorPlaceholderImportPattern = /(["'])mreact-compat-vendor:([\w-]+)\1/gu;
212
+ export function rewriteCompatVendorPlaceholderImportsForRunner(code, resolveDir) {
213
+ if (!code.includes(COMPAT_VENDOR_PLACEHOLDER_PREFIX)) {
214
+ return code;
215
+ }
216
+ const entryFiles = resolveCompatVendorEntryFiles(resolveDir);
217
+ return code.replace(compatVendorPlaceholderImportPattern, (source, quote, entry) => {
218
+ const file = entryFiles.get(entry);
219
+ return file === undefined ? source : `${quote}${pathToFileURL(file).href}${quote}`;
220
+ });
221
+ }
222
+ // Marks every compat-family import as external with a deterministic
223
+ // placeholder specifier; writeServerModuleArtifactFiles later rewrites the
224
+ // placeholders to relative paths into the emitted shared vendor chunks.
225
+ export function compatVendorExternalizePlugin() {
226
+ return {
227
+ name: "mreact-compat-vendor-externalize",
228
+ setup(buildApi) {
229
+ buildApi.onResolve({ filter: /^(?:react|react-dom|react\/.+|react-dom\/.+|@reckona\/mreact-compat(?:\/.+)?)$/u }, (args) => {
230
+ const entry = compatVendorSpecifierEntries.get(args.path);
231
+ return entry === undefined
232
+ ? undefined
233
+ : { external: true, path: `${COMPAT_VENDOR_PLACEHOLDER_PREFIX}${entry}` };
234
+ });
235
+ },
236
+ };
237
+ }
157
238
  export async function bundleAppRouterSourceModule(options) {
158
239
  const output = await bundleRouterModule({
159
240
  code: options.code,
@@ -164,6 +245,7 @@ export async function bundleAppRouterSourceModule(options) {
164
245
  root: options.root,
165
246
  vitePlugins: options.vitePlugins,
166
247
  plugins: [
248
+ ...(options.externalizeCompatVendor === true ? [compatVendorExternalizePlugin()] : []),
167
249
  workspacePackageResolutionPlugin(),
168
250
  ...(options.serverSourceTransform === undefined
169
251
  ? []
@@ -1 +1 @@
1
- {"version":3,"file":"module-runner.js","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, join, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { formatDiagnostic } from \"@reckona/mreact-compiler\";\nimport type { ServerOutputMode } from \"@reckona/mreact-shared/compiler-contract\";\nimport { transformCompilerModuleContext } from \"@reckona/mreact-compiler/internal\";\nimport {\n createRunnableDevEnvironment,\n mergeConfig,\n resolveConfig,\n type InlineConfig,\n type PluginOption,\n type RunnableDevEnvironment,\n type UserConfig,\n} from \"vite\";\nimport { resolveWorkspacePackageFile } from \"./workspace-packages.js\";\nimport {\n bundleRouterModule,\n type RouterCompatBuildApi,\n type RouterCompatPlugin,\n} from \"./bundle-pipeline.js\";\nimport { resolveRouterCacheLimit } from \"./cache-config.js\";\nimport type { BuiltServerModuleArtifact } from \"./build.js\";\nimport {\n createRouterRuntimeCacheCounters,\n readRouterRuntimeCacheEntry,\n routerRuntimeCacheStat,\n type RouterRuntimeCacheCounters,\n type RouterRuntimeCacheStat,\n} from \"./cache-stats.js\";\nimport {\n compilerModuleContextForSource,\n createClientRouteInferenceCache,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n type ClientRouteInferenceCache,\n} from \"./client-route-inference.js\";\nimport { viteDefineCacheKey, vitePluginsCacheKey } from \"./vite-plugin-cache-key.js\";\n\nconst runnerConfig = {\n configFile: false,\n logLevel: \"silent\",\n} satisfies InlineConfig;\nconst nativeEscapeTransform = {\n batchImportName: \"escapeHtmlBatch\",\n batchImportSource: \"@reckona/mreact-router/native-escape\",\n} as const;\nconst sourceModuleCache = new Map<string, Promise<unknown>>();\nconst maxSourceModuleCacheEntries = resolveRouterCacheLimit(\"SOURCE_MODULE\", 512);\nconst sourceModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst serverSourceTransformCache = new Map<string, string>();\nconst maxServerSourceTransformCacheEntries = resolveRouterCacheLimit(\n \"SERVER_SOURCE_TRANSFORM\",\n 512,\n);\nconst serverSourceTransformCacheCounters = createRouterRuntimeCacheCounters();\nconst packageTypeCache = new Map<string, string | undefined>();\nconst runnerVirtualModulePrefix = \"virtual:mreact-router-source/\";\nconst runnerVirtualModules = new Map<string, string>();\nlet sharedRunnerEnvironment: Promise<RunnableDevEnvironment> | undefined;\nlet fileImportVersion = 0;\n\nexport function routerModuleRunnerRuntimeCacheStats(): RouterRuntimeCacheStat[] {\n return [\n routerRuntimeCacheStat(\n \"source-module\",\n sourceModuleCache,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"server-source-transform\",\n serverSourceTransformCache,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n ),\n ];\n}\n\nexport async function importAppRouterSourceModule<T>(options: {\n cacheKey?: string | undefined;\n code: string;\n define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = importAppRouterSourceModuleWithoutCache<T>(options).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return importAppRouterSourceModuleWithoutCache(options);\n}\n\nasync function importAppRouterSourceModuleWithoutCache<T>(options: {\n code: string;\n define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n const code =\n options.resolveDir === undefined ? options.code : await bundleAppRouterSourceModule(options);\n const sourcefile = options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\");\n const executableCode = withNodeRequireShimForEsmBundle({\n code: withFileImportMetaUrl(code, sourcefile),\n filename: sourcefile,\n requireBaseDir:\n options.resolveDir ??\n (options.sourcefile === undefined ? undefined : dirname(options.sourcefile)),\n });\n const encodedLabel = encodeURIComponent(options.label.replace(/[^A-Za-z0-9_$.-]/g, \"-\"));\n const publicId = `${runnerVirtualModulePrefix}${encodedLabel}-${Date.now()}-${Math.random()}.mjs`;\n runnerVirtualModules.set(publicId, executableCode);\n\n try {\n return await importWithSharedRunner<T>(publicId, { invalidateEntry: true });\n } finally {\n runnerVirtualModules.delete(publicId);\n }\n}\n\nexport async function importAppRouterFileModule<T>(file: string): Promise<T> {\n fileImportVersion += 1;\n const url = `${pathToFileURL(file).href}?t=${Date.now()}${fileImportVersion}`;\n\n return await importWithSharedRunner<T>(url, { invalidateEntry: true });\n}\n\nasync function importWithSharedRunner<T>(\n moduleId: string,\n options?: { invalidateEntry?: boolean | undefined },\n): Promise<T> {\n const environment = await getSharedRunnerEnvironment();\n const module = (await environment.runner.import(moduleId)) as T;\n\n if (options?.invalidateEntry === true) {\n const evaluatedModule =\n environment.runner.evaluatedModules.getModuleByUrl(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(`\\0${moduleId}`);\n\n if (evaluatedModule !== undefined) {\n environment.runner.evaluatedModules.invalidateModule(evaluatedModule);\n }\n }\n\n return module;\n}\n\nasync function getSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n if (sharedRunnerEnvironment !== undefined) {\n return await sharedRunnerEnvironment;\n }\n\n sharedRunnerEnvironment = createSharedRunnerEnvironment().catch((error) => {\n sharedRunnerEnvironment = undefined;\n throw error;\n });\n\n return await sharedRunnerEnvironment;\n}\n\nasync function createSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n const config = await resolveConfig(\n mergeConfig(runnerConfig, {\n cacheDir: process.cwd(),\n configFile: false,\n envDir: false,\n environments: {\n mreact_router: {\n consumer: \"server\",\n dev: { moduleRunnerTransform: true },\n resolve: {\n conditions: [\"node\"],\n external: true,\n mainFields: [],\n },\n },\n },\n plugins: [\n {\n name: \"mreact-router-source-module\",\n resolveId(source) {\n return runnerVirtualModules.has(source) ? `\\0${source}` : undefined;\n },\n load(id) {\n const source = id.startsWith(\"\\0\") ? id.slice(1) : id;\n\n return source.startsWith(runnerVirtualModulePrefix)\n ? runnerVirtualModules.get(source)\n : undefined;\n },\n },\n ],\n } satisfies InlineConfig),\n \"serve\",\n );\n const environment = createRunnableDevEnvironment(\"mreact_router\", config, {\n hot: false,\n runnerOptions: { hmr: { logger: false } },\n });\n await environment.init();\n\n return environment;\n}\n\nexport async function importAppRouterBuiltFileModule<T>(options: {\n cacheKey?: string | undefined;\n file: string;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = import(pathToFileURL(options.file).href).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n }) as Promise<T>;\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return (await import(pathToFileURL(options.file).href)) as T;\n}\n\nexport async function bundleAppRouterSourceModule(options: {\n code: string;\n define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: options.code,\n define: options.define,\n externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,\n filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\"),\n platform: \"node\",\n root: options.root,\n vitePlugins: options.vitePlugins,\n plugins: [\n workspacePackageResolutionPlugin(),\n ...(options.serverSourceTransform === undefined\n ? []\n : [serverSourceTransformPlugin(options.serverSourceTransform)]),\n ...(options.plugins ?? []),\n ],\n });\n const code = output.code;\n\n if (code === undefined) {\n throw new Error(`Failed to bundle ${options.label} for Vite runner.`);\n }\n\n return code;\n}\n\nexport function fileImportMetaUrlPlugin(): RouterCompatPlugin {\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-file-import-meta-url\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx?$/ }, async (args) => {\n if (\n args.path.includes(`${sep}node_modules${sep}`) ||\n args.path.startsWith(`${workspacePackagesDir}${sep}`)\n ) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n\n return {\n contents: withFileImportMetaUrl(source, args.path),\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\ninterface ServerSourceTransformOptions {\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n define?: UserConfig[\"define\"] | undefined;\n dev: boolean;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverOutput: ServerOutputMode;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\nfunction serverSourceTransformPlugin(options: ServerSourceTransformOptions): RouterCompatPlugin {\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-server-source-transform\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx$/ }, async (args) => {\n if (args.path.includes(`${sep}node_modules${sep}`)) {\n return undefined;\n }\n\n if (args.path.startsWith(`${workspacePackagesDir}${sep}`)) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n const contents = await transformServerSourceFile({\n ...options,\n clientRouteInferenceCache,\n filename: args.path,\n source,\n });\n\n return {\n contents,\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\nasync function transformServerSourceFile(\n options: ServerSourceTransformOptions & {\n filename: string;\n source: string;\n },\n): Promise<string> {\n const sourceHash = hashText(options.source);\n const artifact = options.serverModules?.get(options.filename)?.[options.serverOutput];\n\n if (artifact !== undefined && artifact.sourceHash === sourceHash) {\n return artifact.code;\n }\n\n const source = options.dev\n ? withFileImportMetaUrl(options.source, options.filename)\n : options.source;\n const transformedSourceHash = source === options.source ? sourceHash : hashText(source);\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const moduleContext = await compilerModuleContextForSource({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n });\n const clientInference = await inferClientRouteModule({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n moduleContext,\n vitePlugins: options.vitePlugins,\n });\n\n for (const diagnostic of clientInference.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n\n const cacheKey = `${options.serverOutput}\\0${options.dev ? \"dev\" : \"prod\"}\\0${options.filename}\\0${transformedSourceHash}\\0${clientInference.clientBoundaryImports.join(\"\\0\")}\\0${clientInference.clientBoundaryFallbackImports.join(\"\\0\")}\\0${viteDefineCacheKey(options.define)}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n const cached = readRouterRuntimeCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n serverSourceTransformCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const output = transformCompilerModuleContext({\n code: source,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n clientBoundaryFallbackImports: clientInference.clientBoundaryFallbackImports,\n dev: options.dev,\n filename: options.filename,\n moduleContext,\n serverEscape: nativeEscapeTransform,\n serverOutput: options.serverOutput,\n target: \"server\",\n });\n const fatalDiagnostics = output.diagnostics.filter(\n (diagnostic) => diagnostic.code !== \"MR_UNSUPPORTED_SERVER_EVENT_HANDLER\",\n );\n\n if (fatalDiagnostics.length > 0) {\n throw new Error(\n fatalDiagnostics\n .map((diagnostic) => formatDiagnostic(options.filename, diagnostic))\n .join(\"\\n\"),\n );\n }\n\n setBoundedCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n output.code,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n );\n\n return output.code;\n}\n\nfunction withFileImportMetaUrl(source: string, filename: string): string {\n if (!source.includes(\"import.meta.url\")) {\n return source;\n }\n\n return source.replaceAll(\"import.meta.url\", JSON.stringify(pathToFileURL(filename).href));\n}\n\nfunction withNodeRequireShimForEsmBundle(options: {\n code: string;\n filename: string;\n requireBaseDir?: string | undefined;\n}): string {\n const requireBaseUrl = pathToFileURL(\n join(options.requireBaseDir ?? process.cwd(), \"__mreact_require_shim.cjs\"),\n ).href;\n const rewritten = rewriteNodeModulesExternalImports(options.code);\n const code = rewritten.code.replaceAll(\n \"createRequire(import.meta.url)\",\n `createRequire(${JSON.stringify(requireBaseUrl)})`,\n );\n const needsFilenameGlobalShim = needsCommonJsFilenameGlobalShim(options.code);\n const needsRequireShim = needsNodeRequireShim(options.code);\n\n if (\n !rewritten.needsNativeImport &&\n !rewritten.needsRequire &&\n !needsFilenameGlobalShim &&\n !needsRequireShim\n ) {\n return code;\n }\n\n return `${rewritten.needsNativeImport ? 'const __mreactNativeImport = Function(\"specifier\", \"return import(specifier)\");\\n' : \"\"}${\n needsFilenameGlobalShim\n ? `const __filename = ${JSON.stringify(options.filename)};\nconst __dirname = ${JSON.stringify(dirname(options.filename))};\n`\n : \"\"\n }${\n rewritten.needsRequire || needsRequireShim\n ? `import { createRequire as __mreactCreateRequire } from \"node:module\";\nconst __mreactRequire = __mreactCreateRequire(${JSON.stringify(requireBaseUrl)});\nconst require = __mreactRequire;\n`\n : \"\"\n }${code}`;\n}\n\nfunction needsCommonJsFilenameGlobalShim(code: string): boolean {\n return /\\b__(?:filename|dirname)\\b/.test(code);\n}\n\nfunction needsNodeRequireShim(code: string): boolean {\n return code.includes(\"Dynamic require of\") && /\\b__require\\s*=/.test(code);\n}\n\nfunction rewriteNodeModulesExternalImports(code: string): {\n code: string;\n needsNativeImport: boolean;\n needsRequire: boolean;\n} {\n const nativeImportBindings = new Map<string, string>();\n let needsNativeImport = false;\n let needsRequire = false;\n let importIndex = 0;\n const importFromPattern = /^import\\s+([^;\\n]+?)\\s+from\\s+([\"'])([^\"']+)\\2;?$/gm;\n const sideEffectImportPattern = /^import\\s+([\"'])([^\"']+)\\1;?$/gm;\n const withRewrittenImports = code.replace(\n importFromPattern,\n (statement: string, clause: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n const requireExpression = `__mreactRequire(${JSON.stringify(file)})`;\n return commonJsImportClauseToRequireStatements(\n clause.trim(),\n requireExpression,\n importIndex++,\n );\n }\n\n needsNativeImport = true;\n const rewritten = esmImportClauseToNativeImportStatements(\n clause.trim(),\n specifier,\n importIndex++,\n );\n for (const [name, replacement] of rewritten.bindings) {\n nativeImportBindings.set(name, replacement);\n }\n\n return rewritten.code;\n },\n );\n const rewrittenCode = withRewrittenImports.replace(\n sideEffectImportPattern,\n (statement: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n return `__mreactRequire(${JSON.stringify(file)});`;\n }\n\n needsNativeImport = true;\n return `await __mreactNativeImport(${JSON.stringify(specifier)});`;\n },\n );\n\n return {\n code:\n nativeImportBindings.size === 0\n ? rewrittenCode\n : replaceImportedIdentifiers(rewrittenCode, nativeImportBindings),\n needsNativeImport,\n needsRequire,\n };\n}\n\nfunction nodeModulesExternalImportPath(specifier: string): string | undefined {\n const file = externalImportFilePath(specifier);\n\n if (file === undefined || !isNodeModulesPath(file)) {\n return undefined;\n }\n\n return file;\n}\n\nfunction externalImportFilePath(specifier: string): string | undefined {\n if (specifier.startsWith(\"file://\")) {\n try {\n return fileURLToPath(specifier);\n } catch {\n return undefined;\n }\n }\n\n return isAbsolute(specifier) ? specifier : undefined;\n}\n\nfunction isNodeModulesPath(file: string): boolean {\n return file.split(sep).includes(\"node_modules\");\n}\n\nfunction isNodeImportableModuleFile(file: string): boolean {\n const extension = extname(file);\n\n return (\n extension === \".cjs\" || extension === \".mjs\" || extension === \".js\" || extension === \".node\"\n );\n}\n\nfunction isNodeCommonJsModuleFile(file: string): boolean {\n const extension = extname(file);\n\n if (extension === \".cjs\" || extension === \".cts\" || extension === \".node\") {\n return true;\n }\n\n if (extension === \".mjs\" || extension === \".mts\" || extension !== \".js\") {\n return false;\n }\n\n return nearestPackageType(file) !== \"module\";\n}\n\nfunction nearestPackageType(file: string): string | undefined {\n let directory = dirname(file);\n\n while (true) {\n const packageJson = join(directory, \"package.json\");\n\n if (packageTypeCache.has(packageJson)) {\n return packageTypeCache.get(packageJson);\n }\n\n if (existsSync(packageJson)) {\n const type = readPackageType(packageJson);\n packageTypeCache.set(packageJson, type);\n return type;\n }\n\n const parent = dirname(directory);\n\n if (parent === directory) {\n return undefined;\n }\n\n directory = parent;\n }\n}\n\nfunction readPackageType(packageJson: string): string | undefined {\n try {\n const parsed = JSON.parse(readFileSync(packageJson, \"utf8\")) as { type?: unknown };\n\n return typeof parsed.type === \"string\" ? parsed.type : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction commonJsImportClauseToRequireStatements(\n clause: string,\n requireExpression: string,\n importIndex: number,\n): string {\n if (clause.startsWith(\"* as \")) {\n return `const ${clause.slice(5).trim()} = ${requireExpression};`;\n }\n\n if (clause.startsWith(\"{\")) {\n return namedCommonJsImportsToRequireStatements(clause, requireExpression);\n }\n\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n return `const ${clause} = ${requireExpression};`;\n }\n\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n const temporaryName = `__mreactExternalCommonJs${importIndex}`;\n const statements = [\n `const ${temporaryName} = ${requireExpression};`,\n `const ${defaultName} = ${temporaryName};`,\n ];\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n statements.push(namedCommonJsImportsToRequireStatements(namedOrNamespace, temporaryName));\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction esmImportClauseToNativeImportStatements(\n clause: string,\n specifier: string,\n importIndex: number,\n): { bindings: Map<string, string>; code: string } {\n const bindings = new Map<string, string>();\n const temporaryName = `__mreactExternalModule${importIndex}`;\n const statements = [\n `const ${temporaryName} = await __mreactNativeImport(${JSON.stringify(specifier)});`,\n ];\n\n if (clause.startsWith(\"* as \")) {\n statements.push(`const ${clause.slice(5).trim()} = ${temporaryName};`);\n } else if (clause.startsWith(\"{\")) {\n collectNamedEsmImportBindings(clause, temporaryName, bindings);\n } else {\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n bindings.set(clause, `${temporaryName}.default`);\n } else {\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n bindings.set(defaultName, `${temporaryName}.default`);\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n collectNamedEsmImportBindings(namedOrNamespace, temporaryName, bindings);\n }\n }\n }\n\n return { bindings, code: statements.join(\"\\n\") };\n}\n\nfunction collectNamedEsmImportBindings(\n clause: string,\n moduleName: string,\n bindings: Map<string, string>,\n): void {\n for (const binding of namedImportBindings(clause)) {\n const replacement =\n binding.imported === \"default\"\n ? `${moduleName}.default`\n : `${moduleName}[${JSON.stringify(binding.imported)}]`;\n bindings.set(binding.local, replacement);\n }\n}\n\nfunction namedCommonJsImportsToRequireStatements(clause: string, sourceExpression: string): string {\n const objectBindings: string[] = [];\n const statements: string[] = [];\n\n for (const binding of namedImportBindings(clause)) {\n if (binding.imported === \"default\") {\n statements.push(`const ${binding.local} = ${sourceExpression};`);\n } else if (binding.imported === binding.local) {\n objectBindings.push(binding.imported);\n } else {\n objectBindings.push(`${JSON.stringify(binding.imported)}: ${binding.local}`);\n }\n }\n\n if (objectBindings.length > 0) {\n statements.unshift(`const { ${objectBindings.join(\", \")} } = ${sourceExpression};`);\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction namedImportBindings(clause: string): Array<{ imported: string; local: string }> {\n return clause\n .slice(1, -1)\n .split(\",\")\n .map((binding) => binding.trim())\n .filter((binding) => binding.length > 0)\n .map((binding) => {\n const alias = binding.match(/^(.+?)\\s+as\\s+(.+)$/);\n const imported = alias?.[1]?.trim() ?? binding;\n const local = alias?.[2]?.trim() ?? binding;\n\n return { imported, local };\n });\n}\n\nfunction replaceImportedIdentifiers(code: string, bindings: ReadonlyMap<string, string>): string {\n let rewritten = \"\";\n let index = 0;\n\n while (index < code.length) {\n const char = code[index];\n const next = code[index + 1];\n\n if (char === '\"' || char === \"'\") {\n const end = quotedStringEnd(code, index, char);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"`\") {\n const end = templateLiteralEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n const end = lineCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n const end = blockCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (isIdentifierStart(char)) {\n const end = identifierEnd(code, index);\n const identifier = code.slice(index, end);\n const replacement = bindings.get(identifier);\n\n if (replacement !== undefined && shouldReplaceImportedIdentifier(code, index, end)) {\n rewritten += importedIdentifierReplacement(code, index, end, identifier, replacement);\n } else {\n rewritten += identifier;\n }\n\n index = end;\n continue;\n }\n\n rewritten += char;\n index += 1;\n }\n\n return rewritten;\n}\n\nfunction shouldReplaceImportedIdentifier(code: string, start: number, end: number): boolean {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return previous !== \".\" && previous !== \"?\" && next !== \":\";\n}\n\nfunction importedIdentifierReplacement(\n code: string,\n start: number,\n end: number,\n identifier: string,\n replacement: string,\n): string {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return (previous === \"{\" || previous === \",\") && (next === \",\" || next === \"}\")\n ? `${identifier}: ${replacement}`\n : replacement;\n}\n\nfunction previousNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index - 1; position >= 0; position -= 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction nextNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index; position < code.length; position += 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction quotedStringEnd(code: string, start: number, quote: string): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === quote) {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction templateLiteralEnd(code: string, start: number): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === \"`\") {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction lineCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"\\n\", start + 2);\n\n return end === -1 ? code.length : end;\n}\n\nfunction blockCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"*/\", start + 2);\n\n return end === -1 ? code.length : end + 2;\n}\n\nfunction identifierEnd(code: string, start: number): number {\n let end = start + 1;\n\n while (end < code.length && isIdentifierPart(code[end] ?? \"\")) {\n end += 1;\n }\n\n return end;\n}\n\nfunction isIdentifierStart(char: string | undefined): boolean {\n return char !== undefined && /[A-Za-z_$]/u.test(char);\n}\n\nfunction isIdentifierPart(char: string): boolean {\n return /[A-Za-z0-9_$]/u.test(char);\n}\n\nfunction workspacePackageResolutionPlugin() {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n const packageRoot = dirname(currentDir);\n const sourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/index.js\" : \"src/index.ts\";\n const appRouterGlobalsSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/app-router-globals.js\"\n : \"src/app-router-globals.ts\";\n const linkSourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/link.js\" : \"src/link.ts\";\n const nativeEscapeSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/native-escape.js\"\n : \"src/native-escape.ts\";\n const navigationStateSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/navigation-state.js\"\n : \"src/navigation-state.ts\";\n const sessionSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/session.js\"\n : \"src/session.ts\";\n const streamListSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/stream-list.js\"\n : \"src/stream-list.ts\";\n const packageFile = (\n monorepoDir: string,\n packageName: string,\n entry: string,\n specifier: string,\n resolveDir?: string | undefined,\n ): string =>\n resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir,\n packageName,\n resolveDir,\n specifier,\n });\n const entries = new Map<string, { entry: string; monorepoDir: string; packageName: string }>([\n [\n \"react\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/client\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/server\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"react/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\"@reckona/mreact\", { entry: \"index\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" }],\n [\n \"@reckona/mreact/jsx-dev-runtime\",\n { entry: \"jsx-dev-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact-auth\",\n { entry: \"index\", monorepoDir: \"auth\", packageName: \"@reckona/mreact-auth\" },\n ],\n [\n \"@reckona/mreact-compat\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/event-priority\",\n {\n entry: \"event-priority\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/flight\",\n { entry: \"flight\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/hooks\",\n { entry: \"hooks-entry\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/internal\",\n { entry: \"internal\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/scheduler\",\n { entry: \"scheduler\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-reactive-core\",\n {\n entry: \"index\",\n monorepoDir: \"reactive-core\",\n packageName: \"@reckona/mreact-reactive-core\",\n },\n ],\n [\n \"@reckona/mreact-query\",\n { entry: \"index\", monorepoDir: \"query\", packageName: \"@reckona/mreact-query\" },\n ],\n [\n \"@reckona/mreact-server\",\n { entry: \"index\", monorepoDir: \"server\", packageName: \"@reckona/mreact-server\" },\n ],\n ]);\n const routerEntries = new Map([\n [\"@reckona/mreact-router\", join(packageRoot, sourceOrDist)],\n [\"@reckona/mreact-router/app-router-globals\", join(packageRoot, appRouterGlobalsSourceOrDist)],\n [\"@reckona/mreact-router/link\", join(packageRoot, linkSourceOrDist)],\n [\"@reckona/mreact-router/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/navigation-state\", join(packageRoot, navigationStateSourceOrDist)],\n [\"@reckona/mreact-router/session\", join(packageRoot, sessionSourceOrDist)],\n [\"@reckona/mreact-router/stream-list\", join(packageRoot, streamListSourceOrDist)],\n [\"@reckona/mreact-router/internal/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/internal/session\", join(packageRoot, sessionSourceOrDist)],\n ]);\n\n return {\n name: \"mreact-router-workspace-packages\",\n setup(buildApi: Pick<RouterCompatBuildApi, \"onResolve\">) {\n buildApi.onResolve(\n {\n filter:\n /^(?:react(?:\\/jsx-(?:dev-)?runtime)?|react-dom(?:\\/(?:client|server))?|@reckona\\/(?:mreact(?:\\/(?:jsx-dev-runtime|jsx-runtime))?|mreact-(?:auth|query|reactive-core|server|router|compat)(?:\\/(?:event-priority|flight|internal|jsx-dev-runtime|jsx-runtime|scheduler|app-router-globals|link|native-escape|navigation-state|session|stream-list|internal\\/native-escape|internal\\/session))?))$/,\n },\n (args) => {\n const routerPath = routerEntries.get(args.path);\n\n if (routerPath !== undefined) {\n return { path: routerPath };\n }\n\n const entry = entries.get(args.path);\n\n return entry === undefined\n ? undefined\n : {\n path: packageFile(\n entry.monorepoDir,\n entry.packageName,\n entry.entry,\n args.path,\n args.resolveDir,\n ),\n };\n },\n );\n },\n };\n}\n\nfunction setBoundedCacheEntry<K, V>(\n cache: Map<K, V>,\n key: K,\n value: V,\n maxEntries: number,\n counters: RouterRuntimeCacheCounters,\n): void {\n if (cache.size >= maxEntries) {\n const oldestKey = cache.keys().next().value as K | undefined;\n\n if (oldestKey !== undefined) {\n cache.delete(oldestKey);\n counters.evictions += 1;\n }\n }\n\n cache.set(key, value);\n}\n\nfunction hashText(text: string): string {\n return createHash(\"sha256\").update(text).digest(\"hex\").slice(0, 16);\n}\n"]}
1
+ {"version":3,"file":"module-runner.js","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, join, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { formatDiagnostic } from \"@reckona/mreact-compiler\";\nimport type { ServerOutputMode } from \"@reckona/mreact-shared/compiler-contract\";\nimport { transformCompilerModuleContext } from \"@reckona/mreact-compiler/internal\";\nimport {\n createRunnableDevEnvironment,\n mergeConfig,\n resolveConfig,\n type InlineConfig,\n type PluginOption,\n type RunnableDevEnvironment,\n type UserConfig,\n} from \"vite\";\nimport { resolveWorkspacePackageFile } from \"./workspace-packages.js\";\nimport {\n bundleRouterModule,\n type RouterCompatBuildApi,\n type RouterCompatPlugin,\n} from \"./bundle-pipeline.js\";\nimport { resolveRouterCacheLimit } from \"./cache-config.js\";\nimport type { BuiltServerModuleArtifact } from \"./build.js\";\nimport {\n createRouterRuntimeCacheCounters,\n readRouterRuntimeCacheEntry,\n routerRuntimeCacheStat,\n type RouterRuntimeCacheCounters,\n type RouterRuntimeCacheStat,\n} from \"./cache-stats.js\";\nimport {\n compilerModuleContextForSource,\n createClientRouteInferenceCache,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n type ClientRouteInferenceCache,\n} from \"./client-route-inference.js\";\nimport { viteDefineCacheKey, vitePluginsCacheKey } from \"./vite-plugin-cache-key.js\";\n\nconst runnerConfig = {\n configFile: false,\n logLevel: \"silent\",\n} satisfies InlineConfig;\nconst nativeEscapeTransform = {\n batchImportName: \"escapeHtmlBatch\",\n batchImportSource: \"@reckona/mreact-router/native-escape\",\n} as const;\nconst sourceModuleCache = new Map<string, Promise<unknown>>();\nconst maxSourceModuleCacheEntries = resolveRouterCacheLimit(\"SOURCE_MODULE\", 512);\nconst sourceModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst serverSourceTransformCache = new Map<string, string>();\nconst maxServerSourceTransformCacheEntries = resolveRouterCacheLimit(\n \"SERVER_SOURCE_TRANSFORM\",\n 512,\n);\nconst serverSourceTransformCacheCounters = createRouterRuntimeCacheCounters();\nconst packageTypeCache = new Map<string, string | undefined>();\nconst runnerVirtualModulePrefix = \"virtual:mreact-router-source/\";\nconst runnerVirtualModules = new Map<string, string>();\nlet sharedRunnerEnvironment: Promise<RunnableDevEnvironment> | undefined;\nlet fileImportVersion = 0;\n\nexport function routerModuleRunnerRuntimeCacheStats(): RouterRuntimeCacheStat[] {\n return [\n routerRuntimeCacheStat(\n \"source-module\",\n sourceModuleCache,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"server-source-transform\",\n serverSourceTransformCache,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n ),\n ];\n}\n\nexport async function importAppRouterSourceModule<T>(options: {\n cacheKey?: string | undefined;\n code: string;\n define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = importAppRouterSourceModuleWithoutCache<T>(options).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return importAppRouterSourceModuleWithoutCache(options);\n}\n\nasync function importAppRouterSourceModuleWithoutCache<T>(options: {\n code: string;\n define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n const code =\n options.resolveDir === undefined ? options.code : await bundleAppRouterSourceModule(options);\n const sourcefile = options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\");\n const executableCode = withNodeRequireShimForEsmBundle({\n code: withFileImportMetaUrl(code, sourcefile),\n filename: sourcefile,\n requireBaseDir:\n options.resolveDir ??\n (options.sourcefile === undefined ? undefined : dirname(options.sourcefile)),\n });\n const encodedLabel = encodeURIComponent(options.label.replace(/[^A-Za-z0-9_$.-]/g, \"-\"));\n const publicId = `${runnerVirtualModulePrefix}${encodedLabel}-${Date.now()}-${Math.random()}.mjs`;\n runnerVirtualModules.set(publicId, executableCode);\n\n try {\n return await importWithSharedRunner<T>(publicId, { invalidateEntry: true });\n } finally {\n runnerVirtualModules.delete(publicId);\n }\n}\n\nexport async function importAppRouterFileModule<T>(file: string): Promise<T> {\n fileImportVersion += 1;\n const url = `${pathToFileURL(file).href}?t=${Date.now()}${fileImportVersion}`;\n\n return await importWithSharedRunner<T>(url, { invalidateEntry: true });\n}\n\nasync function importWithSharedRunner<T>(\n moduleId: string,\n options?: { invalidateEntry?: boolean | undefined },\n): Promise<T> {\n const environment = await getSharedRunnerEnvironment();\n const module = (await environment.runner.import(moduleId)) as T;\n\n if (options?.invalidateEntry === true) {\n const evaluatedModule =\n environment.runner.evaluatedModules.getModuleByUrl(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(`\\0${moduleId}`);\n\n if (evaluatedModule !== undefined) {\n environment.runner.evaluatedModules.invalidateModule(evaluatedModule);\n }\n }\n\n return module;\n}\n\nasync function getSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n if (sharedRunnerEnvironment !== undefined) {\n return await sharedRunnerEnvironment;\n }\n\n sharedRunnerEnvironment = createSharedRunnerEnvironment().catch((error) => {\n sharedRunnerEnvironment = undefined;\n throw error;\n });\n\n return await sharedRunnerEnvironment;\n}\n\nasync function createSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n const config = await resolveConfig(\n mergeConfig(runnerConfig, {\n cacheDir: process.cwd(),\n configFile: false,\n envDir: false,\n environments: {\n mreact_router: {\n consumer: \"server\",\n dev: { moduleRunnerTransform: true },\n resolve: {\n conditions: [\"node\"],\n external: true,\n mainFields: [],\n },\n },\n },\n plugins: [\n {\n name: \"mreact-router-source-module\",\n resolveId(source) {\n return runnerVirtualModules.has(source) ? `\\0${source}` : undefined;\n },\n load(id) {\n const source = id.startsWith(\"\\0\") ? id.slice(1) : id;\n\n return source.startsWith(runnerVirtualModulePrefix)\n ? runnerVirtualModules.get(source)\n : undefined;\n },\n },\n ],\n } satisfies InlineConfig),\n \"serve\",\n );\n const environment = createRunnableDevEnvironment(\"mreact_router\", config, {\n hot: false,\n runnerOptions: { hmr: { logger: false } },\n });\n await environment.init();\n\n return environment;\n}\n\nexport async function importAppRouterBuiltFileModule<T>(options: {\n cacheKey?: string | undefined;\n file: string;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = import(pathToFileURL(options.file).href).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n }) as Promise<T>;\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return (await import(pathToFileURL(options.file).href)) as T;\n}\n\n\nexport const COMPAT_VENDOR_PLACEHOLDER_PREFIX = \"mreact-compat-vendor:\";\n\n// Specifier-to-dist-entry table for the react-compat server family. The\n// per-route externalization plugin and the shared vendor chunk build must\n// agree exactly with the workspace alias table above, so both derive from\n// this map.\nconst compatVendorSpecifierEntries = new Map<string, string>([\n [\"react\", \"index\"],\n [\"react-dom\", \"index\"],\n [\"react-dom/client\", \"index\"],\n [\"react-dom/server\", \"index\"],\n [\"react/jsx-dev-runtime\", \"jsx-dev-runtime\"],\n [\"react/jsx-runtime\", \"jsx-runtime\"],\n [\"@reckona/mreact-compat\", \"index\"],\n [\"@reckona/mreact-compat/event-priority\", \"event-priority\"],\n [\"@reckona/mreact-compat/flight\", \"flight\"],\n [\"@reckona/mreact-compat/hooks\", \"hooks-entry\"],\n [\"@reckona/mreact-compat/internal\", \"internal\"],\n [\"@reckona/mreact-compat/jsx-dev-runtime\", \"jsx-dev-runtime\"],\n [\"@reckona/mreact-compat/jsx-runtime\", \"jsx-runtime\"],\n [\"@reckona/mreact-compat/scheduler\", \"scheduler\"],\n]);\n\nconst compatVendorEntrySpecifiers = new Map<string, string>([\n [\"index\", \"@reckona/mreact-compat\"],\n [\"jsx-runtime\", \"@reckona/mreact-compat/jsx-runtime\"],\n [\"jsx-dev-runtime\", \"@reckona/mreact-compat/jsx-dev-runtime\"],\n [\"hooks-entry\", \"@reckona/mreact-compat/hooks\"],\n [\"scheduler\", \"@reckona/mreact-compat/scheduler\"],\n [\"event-priority\", \"@reckona/mreact-compat/event-priority\"],\n [\"flight\", \"@reckona/mreact-compat/flight\"],\n [\"internal\", \"@reckona/mreact-compat/internal\"],\n]);\n\nexport function compatVendorEntryNames(): readonly string[] {\n return [...compatVendorEntrySpecifiers.keys()];\n}\n\n// Cheap build-time prefilter. A false positive only costs one unused vendor\n// chunk build; a false negative keeps the per-route inlining fallback.\nconst compatVendorSpecifierPattern =\n /[\"'](?:react|react-dom|react\\/jsx(?:-dev)?-runtime|react-dom\\/(?:client|server)|@reckona\\/mreact-compat(?:\\/[\\w-]+)?)[\"']/u;\n\nexport function sourceReferencesCompatVendorSpecifier(source: string): boolean {\n return compatVendorSpecifierPattern.test(source);\n}\n\nexport function resolveCompatVendorEntryFiles(resolveDir?: string): Map<string, string> {\n const files = new Map<string, string>();\n\n for (const [entry, specifier] of compatVendorEntrySpecifiers) {\n files.set(\n entry,\n resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n resolveDir,\n specifier,\n }),\n );\n }\n\n return files;\n}\n\nconst compatVendorPlaceholderImportPattern =\n /([\"'])mreact-compat-vendor:([\\w-]+)\\1/gu;\n\nexport function rewriteCompatVendorPlaceholderImportsForRunner(\n code: string,\n resolveDir?: string,\n): string {\n if (!code.includes(COMPAT_VENDOR_PLACEHOLDER_PREFIX)) {\n return code;\n }\n const entryFiles = resolveCompatVendorEntryFiles(resolveDir);\n\n return code.replace(\n compatVendorPlaceholderImportPattern,\n (source, quote: string, entry: string) => {\n const file = entryFiles.get(entry);\n\n return file === undefined ? source : `${quote}${pathToFileURL(file).href}${quote}`;\n },\n );\n}\n\n// Marks every compat-family import as external with a deterministic\n// placeholder specifier; writeServerModuleArtifactFiles later rewrites the\n// placeholders to relative paths into the emitted shared vendor chunks.\nexport function compatVendorExternalizePlugin(): RouterCompatPlugin {\n return {\n name: \"mreact-compat-vendor-externalize\",\n setup(buildApi) {\n buildApi.onResolve(\n { filter: /^(?:react|react-dom|react\\/.+|react-dom\\/.+|@reckona\\/mreact-compat(?:\\/.+)?)$/u },\n (args) => {\n const entry = compatVendorSpecifierEntries.get(args.path);\n\n return entry === undefined\n ? undefined\n : { external: true, path: `${COMPAT_VENDOR_PLACEHOLDER_PREFIX}${entry}` };\n },\n );\n },\n };\n}\n\nexport async function bundleAppRouterSourceModule(options: {\n code: string;\n define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n externalizeCompatVendor?: boolean | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: options.code,\n define: options.define,\n externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,\n filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\"),\n platform: \"node\",\n root: options.root,\n vitePlugins: options.vitePlugins,\n plugins: [\n ...(options.externalizeCompatVendor === true ? [compatVendorExternalizePlugin()] : []),\n workspacePackageResolutionPlugin(),\n ...(options.serverSourceTransform === undefined\n ? []\n : [serverSourceTransformPlugin(options.serverSourceTransform)]),\n ...(options.plugins ?? []),\n ],\n });\n const code = output.code;\n\n if (code === undefined) {\n throw new Error(`Failed to bundle ${options.label} for Vite runner.`);\n }\n\n return code;\n}\n\nexport function fileImportMetaUrlPlugin(): RouterCompatPlugin {\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-file-import-meta-url\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx?$/ }, async (args) => {\n if (\n args.path.includes(`${sep}node_modules${sep}`) ||\n args.path.startsWith(`${workspacePackagesDir}${sep}`)\n ) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n\n return {\n contents: withFileImportMetaUrl(source, args.path),\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\ninterface ServerSourceTransformOptions {\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n define?: UserConfig[\"define\"] | undefined;\n dev: boolean;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverOutput: ServerOutputMode;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\nfunction serverSourceTransformPlugin(options: ServerSourceTransformOptions): RouterCompatPlugin {\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-server-source-transform\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx$/ }, async (args) => {\n if (args.path.includes(`${sep}node_modules${sep}`)) {\n return undefined;\n }\n\n if (args.path.startsWith(`${workspacePackagesDir}${sep}`)) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n const contents = await transformServerSourceFile({\n ...options,\n clientRouteInferenceCache,\n filename: args.path,\n source,\n });\n\n return {\n contents,\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\nasync function transformServerSourceFile(\n options: ServerSourceTransformOptions & {\n filename: string;\n source: string;\n },\n): Promise<string> {\n const sourceHash = hashText(options.source);\n const artifact = options.serverModules?.get(options.filename)?.[options.serverOutput];\n\n if (artifact !== undefined && artifact.sourceHash === sourceHash) {\n return artifact.code;\n }\n\n const source = options.dev\n ? withFileImportMetaUrl(options.source, options.filename)\n : options.source;\n const transformedSourceHash = source === options.source ? sourceHash : hashText(source);\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const moduleContext = await compilerModuleContextForSource({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n });\n const clientInference = await inferClientRouteModule({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n moduleContext,\n vitePlugins: options.vitePlugins,\n });\n\n for (const diagnostic of clientInference.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n\n const cacheKey = `${options.serverOutput}\\0${options.dev ? \"dev\" : \"prod\"}\\0${options.filename}\\0${transformedSourceHash}\\0${clientInference.clientBoundaryImports.join(\"\\0\")}\\0${clientInference.clientBoundaryFallbackImports.join(\"\\0\")}\\0${viteDefineCacheKey(options.define)}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n const cached = readRouterRuntimeCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n serverSourceTransformCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const output = transformCompilerModuleContext({\n code: source,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n clientBoundaryFallbackImports: clientInference.clientBoundaryFallbackImports,\n dev: options.dev,\n filename: options.filename,\n moduleContext,\n serverEscape: nativeEscapeTransform,\n serverOutput: options.serverOutput,\n target: \"server\",\n });\n const fatalDiagnostics = output.diagnostics.filter(\n (diagnostic) => diagnostic.code !== \"MR_UNSUPPORTED_SERVER_EVENT_HANDLER\",\n );\n\n if (fatalDiagnostics.length > 0) {\n throw new Error(\n fatalDiagnostics\n .map((diagnostic) => formatDiagnostic(options.filename, diagnostic))\n .join(\"\\n\"),\n );\n }\n\n setBoundedCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n output.code,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n );\n\n return output.code;\n}\n\nfunction withFileImportMetaUrl(source: string, filename: string): string {\n if (!source.includes(\"import.meta.url\")) {\n return source;\n }\n\n return source.replaceAll(\"import.meta.url\", JSON.stringify(pathToFileURL(filename).href));\n}\n\nfunction withNodeRequireShimForEsmBundle(options: {\n code: string;\n filename: string;\n requireBaseDir?: string | undefined;\n}): string {\n const requireBaseUrl = pathToFileURL(\n join(options.requireBaseDir ?? process.cwd(), \"__mreact_require_shim.cjs\"),\n ).href;\n const rewritten = rewriteNodeModulesExternalImports(options.code);\n const code = rewritten.code.replaceAll(\n \"createRequire(import.meta.url)\",\n `createRequire(${JSON.stringify(requireBaseUrl)})`,\n );\n const needsFilenameGlobalShim = needsCommonJsFilenameGlobalShim(options.code);\n const needsRequireShim = needsNodeRequireShim(options.code);\n\n if (\n !rewritten.needsNativeImport &&\n !rewritten.needsRequire &&\n !needsFilenameGlobalShim &&\n !needsRequireShim\n ) {\n return code;\n }\n\n return `${rewritten.needsNativeImport ? 'const __mreactNativeImport = Function(\"specifier\", \"return import(specifier)\");\\n' : \"\"}${\n needsFilenameGlobalShim\n ? `const __filename = ${JSON.stringify(options.filename)};\nconst __dirname = ${JSON.stringify(dirname(options.filename))};\n`\n : \"\"\n }${\n rewritten.needsRequire || needsRequireShim\n ? `import { createRequire as __mreactCreateRequire } from \"node:module\";\nconst __mreactRequire = __mreactCreateRequire(${JSON.stringify(requireBaseUrl)});\nconst require = __mreactRequire;\n`\n : \"\"\n }${code}`;\n}\n\nfunction needsCommonJsFilenameGlobalShim(code: string): boolean {\n return /\\b__(?:filename|dirname)\\b/.test(code);\n}\n\nfunction needsNodeRequireShim(code: string): boolean {\n return code.includes(\"Dynamic require of\") && /\\b__require\\s*=/.test(code);\n}\n\nfunction rewriteNodeModulesExternalImports(code: string): {\n code: string;\n needsNativeImport: boolean;\n needsRequire: boolean;\n} {\n const nativeImportBindings = new Map<string, string>();\n let needsNativeImport = false;\n let needsRequire = false;\n let importIndex = 0;\n const importFromPattern = /^import\\s+([^;\\n]+?)\\s+from\\s+([\"'])([^\"']+)\\2;?$/gm;\n const sideEffectImportPattern = /^import\\s+([\"'])([^\"']+)\\1;?$/gm;\n const withRewrittenImports = code.replace(\n importFromPattern,\n (statement: string, clause: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n const requireExpression = `__mreactRequire(${JSON.stringify(file)})`;\n return commonJsImportClauseToRequireStatements(\n clause.trim(),\n requireExpression,\n importIndex++,\n );\n }\n\n needsNativeImport = true;\n const rewritten = esmImportClauseToNativeImportStatements(\n clause.trim(),\n specifier,\n importIndex++,\n );\n for (const [name, replacement] of rewritten.bindings) {\n nativeImportBindings.set(name, replacement);\n }\n\n return rewritten.code;\n },\n );\n const rewrittenCode = withRewrittenImports.replace(\n sideEffectImportPattern,\n (statement: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n return `__mreactRequire(${JSON.stringify(file)});`;\n }\n\n needsNativeImport = true;\n return `await __mreactNativeImport(${JSON.stringify(specifier)});`;\n },\n );\n\n return {\n code:\n nativeImportBindings.size === 0\n ? rewrittenCode\n : replaceImportedIdentifiers(rewrittenCode, nativeImportBindings),\n needsNativeImport,\n needsRequire,\n };\n}\n\nfunction nodeModulesExternalImportPath(specifier: string): string | undefined {\n const file = externalImportFilePath(specifier);\n\n if (file === undefined || !isNodeModulesPath(file)) {\n return undefined;\n }\n\n return file;\n}\n\nfunction externalImportFilePath(specifier: string): string | undefined {\n if (specifier.startsWith(\"file://\")) {\n try {\n return fileURLToPath(specifier);\n } catch {\n return undefined;\n }\n }\n\n return isAbsolute(specifier) ? specifier : undefined;\n}\n\nfunction isNodeModulesPath(file: string): boolean {\n return file.split(sep).includes(\"node_modules\");\n}\n\nfunction isNodeImportableModuleFile(file: string): boolean {\n const extension = extname(file);\n\n return (\n extension === \".cjs\" || extension === \".mjs\" || extension === \".js\" || extension === \".node\"\n );\n}\n\nfunction isNodeCommonJsModuleFile(file: string): boolean {\n const extension = extname(file);\n\n if (extension === \".cjs\" || extension === \".cts\" || extension === \".node\") {\n return true;\n }\n\n if (extension === \".mjs\" || extension === \".mts\" || extension !== \".js\") {\n return false;\n }\n\n return nearestPackageType(file) !== \"module\";\n}\n\nfunction nearestPackageType(file: string): string | undefined {\n let directory = dirname(file);\n\n while (true) {\n const packageJson = join(directory, \"package.json\");\n\n if (packageTypeCache.has(packageJson)) {\n return packageTypeCache.get(packageJson);\n }\n\n if (existsSync(packageJson)) {\n const type = readPackageType(packageJson);\n packageTypeCache.set(packageJson, type);\n return type;\n }\n\n const parent = dirname(directory);\n\n if (parent === directory) {\n return undefined;\n }\n\n directory = parent;\n }\n}\n\nfunction readPackageType(packageJson: string): string | undefined {\n try {\n const parsed = JSON.parse(readFileSync(packageJson, \"utf8\")) as { type?: unknown };\n\n return typeof parsed.type === \"string\" ? parsed.type : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction commonJsImportClauseToRequireStatements(\n clause: string,\n requireExpression: string,\n importIndex: number,\n): string {\n if (clause.startsWith(\"* as \")) {\n return `const ${clause.slice(5).trim()} = ${requireExpression};`;\n }\n\n if (clause.startsWith(\"{\")) {\n return namedCommonJsImportsToRequireStatements(clause, requireExpression);\n }\n\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n return `const ${clause} = ${requireExpression};`;\n }\n\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n const temporaryName = `__mreactExternalCommonJs${importIndex}`;\n const statements = [\n `const ${temporaryName} = ${requireExpression};`,\n `const ${defaultName} = ${temporaryName};`,\n ];\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n statements.push(namedCommonJsImportsToRequireStatements(namedOrNamespace, temporaryName));\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction esmImportClauseToNativeImportStatements(\n clause: string,\n specifier: string,\n importIndex: number,\n): { bindings: Map<string, string>; code: string } {\n const bindings = new Map<string, string>();\n const temporaryName = `__mreactExternalModule${importIndex}`;\n const statements = [\n `const ${temporaryName} = await __mreactNativeImport(${JSON.stringify(specifier)});`,\n ];\n\n if (clause.startsWith(\"* as \")) {\n statements.push(`const ${clause.slice(5).trim()} = ${temporaryName};`);\n } else if (clause.startsWith(\"{\")) {\n collectNamedEsmImportBindings(clause, temporaryName, bindings);\n } else {\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n bindings.set(clause, `${temporaryName}.default`);\n } else {\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n bindings.set(defaultName, `${temporaryName}.default`);\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n collectNamedEsmImportBindings(namedOrNamespace, temporaryName, bindings);\n }\n }\n }\n\n return { bindings, code: statements.join(\"\\n\") };\n}\n\nfunction collectNamedEsmImportBindings(\n clause: string,\n moduleName: string,\n bindings: Map<string, string>,\n): void {\n for (const binding of namedImportBindings(clause)) {\n const replacement =\n binding.imported === \"default\"\n ? `${moduleName}.default`\n : `${moduleName}[${JSON.stringify(binding.imported)}]`;\n bindings.set(binding.local, replacement);\n }\n}\n\nfunction namedCommonJsImportsToRequireStatements(clause: string, sourceExpression: string): string {\n const objectBindings: string[] = [];\n const statements: string[] = [];\n\n for (const binding of namedImportBindings(clause)) {\n if (binding.imported === \"default\") {\n statements.push(`const ${binding.local} = ${sourceExpression};`);\n } else if (binding.imported === binding.local) {\n objectBindings.push(binding.imported);\n } else {\n objectBindings.push(`${JSON.stringify(binding.imported)}: ${binding.local}`);\n }\n }\n\n if (objectBindings.length > 0) {\n statements.unshift(`const { ${objectBindings.join(\", \")} } = ${sourceExpression};`);\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction namedImportBindings(clause: string): Array<{ imported: string; local: string }> {\n return clause\n .slice(1, -1)\n .split(\",\")\n .map((binding) => binding.trim())\n .filter((binding) => binding.length > 0)\n .map((binding) => {\n const alias = binding.match(/^(.+?)\\s+as\\s+(.+)$/);\n const imported = alias?.[1]?.trim() ?? binding;\n const local = alias?.[2]?.trim() ?? binding;\n\n return { imported, local };\n });\n}\n\nfunction replaceImportedIdentifiers(code: string, bindings: ReadonlyMap<string, string>): string {\n let rewritten = \"\";\n let index = 0;\n\n while (index < code.length) {\n const char = code[index];\n const next = code[index + 1];\n\n if (char === '\"' || char === \"'\") {\n const end = quotedStringEnd(code, index, char);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"`\") {\n const end = templateLiteralEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n const end = lineCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n const end = blockCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (isIdentifierStart(char)) {\n const end = identifierEnd(code, index);\n const identifier = code.slice(index, end);\n const replacement = bindings.get(identifier);\n\n if (replacement !== undefined && shouldReplaceImportedIdentifier(code, index, end)) {\n rewritten += importedIdentifierReplacement(code, index, end, identifier, replacement);\n } else {\n rewritten += identifier;\n }\n\n index = end;\n continue;\n }\n\n rewritten += char;\n index += 1;\n }\n\n return rewritten;\n}\n\nfunction shouldReplaceImportedIdentifier(code: string, start: number, end: number): boolean {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return previous !== \".\" && previous !== \"?\" && next !== \":\";\n}\n\nfunction importedIdentifierReplacement(\n code: string,\n start: number,\n end: number,\n identifier: string,\n replacement: string,\n): string {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return (previous === \"{\" || previous === \",\") && (next === \",\" || next === \"}\")\n ? `${identifier}: ${replacement}`\n : replacement;\n}\n\nfunction previousNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index - 1; position >= 0; position -= 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction nextNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index; position < code.length; position += 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction quotedStringEnd(code: string, start: number, quote: string): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === quote) {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction templateLiteralEnd(code: string, start: number): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === \"`\") {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction lineCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"\\n\", start + 2);\n\n return end === -1 ? code.length : end;\n}\n\nfunction blockCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"*/\", start + 2);\n\n return end === -1 ? code.length : end + 2;\n}\n\nfunction identifierEnd(code: string, start: number): number {\n let end = start + 1;\n\n while (end < code.length && isIdentifierPart(code[end] ?? \"\")) {\n end += 1;\n }\n\n return end;\n}\n\nfunction isIdentifierStart(char: string | undefined): boolean {\n return char !== undefined && /[A-Za-z_$]/u.test(char);\n}\n\nfunction isIdentifierPart(char: string): boolean {\n return /[A-Za-z0-9_$]/u.test(char);\n}\n\nfunction workspacePackageResolutionPlugin() {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n const packageRoot = dirname(currentDir);\n const sourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/index.js\" : \"src/index.ts\";\n const appRouterGlobalsSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/app-router-globals.js\"\n : \"src/app-router-globals.ts\";\n const linkSourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/link.js\" : \"src/link.ts\";\n const nativeEscapeSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/native-escape.js\"\n : \"src/native-escape.ts\";\n const navigationStateSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/navigation-state.js\"\n : \"src/navigation-state.ts\";\n const sessionSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/session.js\"\n : \"src/session.ts\";\n const streamListSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/stream-list.js\"\n : \"src/stream-list.ts\";\n const packageFile = (\n monorepoDir: string,\n packageName: string,\n entry: string,\n specifier: string,\n resolveDir?: string | undefined,\n ): string =>\n resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir,\n packageName,\n resolveDir,\n specifier,\n });\n const entries = new Map<string, { entry: string; monorepoDir: string; packageName: string }>([\n [\n \"react\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/client\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/server\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"react/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\"@reckona/mreact\", { entry: \"index\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" }],\n [\n \"@reckona/mreact/jsx-dev-runtime\",\n { entry: \"jsx-dev-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact-auth\",\n { entry: \"index\", monorepoDir: \"auth\", packageName: \"@reckona/mreact-auth\" },\n ],\n [\n \"@reckona/mreact-compat\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/event-priority\",\n {\n entry: \"event-priority\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/flight\",\n { entry: \"flight\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/hooks\",\n { entry: \"hooks-entry\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/internal\",\n { entry: \"internal\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/scheduler\",\n { entry: \"scheduler\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-reactive-core\",\n {\n entry: \"index\",\n monorepoDir: \"reactive-core\",\n packageName: \"@reckona/mreact-reactive-core\",\n },\n ],\n [\n \"@reckona/mreact-query\",\n { entry: \"index\", monorepoDir: \"query\", packageName: \"@reckona/mreact-query\" },\n ],\n [\n \"@reckona/mreact-server\",\n { entry: \"index\", monorepoDir: \"server\", packageName: \"@reckona/mreact-server\" },\n ],\n ]);\n const routerEntries = new Map([\n [\"@reckona/mreact-router\", join(packageRoot, sourceOrDist)],\n [\"@reckona/mreact-router/app-router-globals\", join(packageRoot, appRouterGlobalsSourceOrDist)],\n [\"@reckona/mreact-router/link\", join(packageRoot, linkSourceOrDist)],\n [\"@reckona/mreact-router/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/navigation-state\", join(packageRoot, navigationStateSourceOrDist)],\n [\"@reckona/mreact-router/session\", join(packageRoot, sessionSourceOrDist)],\n [\"@reckona/mreact-router/stream-list\", join(packageRoot, streamListSourceOrDist)],\n [\"@reckona/mreact-router/internal/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/internal/session\", join(packageRoot, sessionSourceOrDist)],\n ]);\n\n return {\n name: \"mreact-router-workspace-packages\",\n setup(buildApi: Pick<RouterCompatBuildApi, \"onResolve\">) {\n buildApi.onResolve(\n {\n filter:\n /^(?:react(?:\\/jsx-(?:dev-)?runtime)?|react-dom(?:\\/(?:client|server))?|@reckona\\/(?:mreact(?:\\/(?:jsx-dev-runtime|jsx-runtime))?|mreact-(?:auth|query|reactive-core|server|router|compat)(?:\\/(?:event-priority|flight|internal|jsx-dev-runtime|jsx-runtime|scheduler|app-router-globals|link|native-escape|navigation-state|session|stream-list|internal\\/native-escape|internal\\/session))?))$/,\n },\n (args) => {\n const routerPath = routerEntries.get(args.path);\n\n if (routerPath !== undefined) {\n return { path: routerPath };\n }\n\n const entry = entries.get(args.path);\n\n return entry === undefined\n ? undefined\n : {\n path: packageFile(\n entry.monorepoDir,\n entry.packageName,\n entry.entry,\n args.path,\n args.resolveDir,\n ),\n };\n },\n );\n },\n };\n}\n\nfunction setBoundedCacheEntry<K, V>(\n cache: Map<K, V>,\n key: K,\n value: V,\n maxEntries: number,\n counters: RouterRuntimeCacheCounters,\n): void {\n if (cache.size >= maxEntries) {\n const oldestKey = cache.keys().next().value as K | undefined;\n\n if (oldestKey !== undefined) {\n cache.delete(oldestKey);\n counters.evictions += 1;\n }\n }\n\n cache.set(key, value);\n}\n\nfunction hashText(text: string): string {\n return createHash(\"sha256\").update(text).digest(\"hex\").slice(0, 16);\n}\n"]}
package/dist/render.d.ts CHANGED
@@ -37,6 +37,7 @@ export interface RenderAppRequestOptions {
37
37
  routes?: readonly AppRoute[] | undefined;
38
38
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
39
39
  serverModuleCacheVersion?: string | undefined;
40
+ dev?: boolean | undefined;
40
41
  serverSourceFiles?: ReadonlyMap<string, string> | undefined;
41
42
  serverActions?: AppRouterServerActionOptions | undefined;
42
43
  serverActionReferencesByFile?: ReadonlyMap<string, readonly PreparedFormActionReference[]> | undefined;
@@ -103,6 +104,11 @@ declare function transformServerModule(options: {
103
104
  serverAwaitHydration?: boolean;
104
105
  }): TransformOutput;
105
106
  export declare const __transformServerModuleForTesting: typeof transformServerModule;
107
+ export declare function __resetProductionRenderWarningsForTesting(): void;
108
+ export declare function __warnProductionRenderWithoutPrebuiltModulesForTesting(options: {
109
+ dev?: boolean | undefined;
110
+ serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
111
+ }): void;
106
112
  export declare function bundleRouteLoaderModuleCode(options: {
107
113
  appDir: string;
108
114
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}