@reckona/mreact-router 0.0.67 → 0.0.69

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.
Files changed (59) hide show
  1. package/dist/actions.js.map +1 -1
  2. package/dist/adapters/aws-lambda.js.map +1 -1
  3. package/dist/adapters/cloudflare.js.map +1 -1
  4. package/dist/adapters/devtools.js.map +1 -1
  5. package/dist/adapters/edge.js.map +1 -1
  6. package/dist/adapters/node.js.map +1 -1
  7. package/dist/adapters/static.js.map +1 -1
  8. package/dist/app-router-globals.js.map +1 -1
  9. package/dist/assets.js.map +1 -1
  10. package/dist/build.js.map +1 -1
  11. package/dist/bundle-pipeline.js.map +1 -1
  12. package/dist/cache-config.js.map +1 -1
  13. package/dist/cache-stats.js.map +1 -1
  14. package/dist/cache.js.map +1 -1
  15. package/dist/cli-options.js.map +1 -1
  16. package/dist/cli.js.map +1 -1
  17. package/dist/client.js.map +1 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/cookies.js.map +1 -1
  20. package/dist/csp.js.map +1 -1
  21. package/dist/csrf.js.map +1 -1
  22. package/dist/deferred.js.map +1 -1
  23. package/dist/dev-server.js.map +1 -1
  24. package/dist/file-conventions.js.map +1 -1
  25. package/dist/http.js.map +1 -1
  26. package/dist/i18n.js.map +1 -1
  27. package/dist/import-policy.js.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/link.js.map +1 -1
  30. package/dist/logger.js.map +1 -1
  31. package/dist/module-runner.js.map +1 -1
  32. package/dist/multipart.js.map +1 -1
  33. package/dist/native-escape.js.map +1 -1
  34. package/dist/native-route-matcher.js.map +1 -1
  35. package/dist/navigation-state.js.map +1 -1
  36. package/dist/navigation.js.map +1 -1
  37. package/dist/prerender-store.js.map +1 -1
  38. package/dist/render.js.map +1 -1
  39. package/dist/route-path.js.map +1 -1
  40. package/dist/route-shells.js.map +1 -1
  41. package/dist/route-source.js.map +1 -1
  42. package/dist/route-styles.js.map +1 -1
  43. package/dist/routes.js.map +1 -1
  44. package/dist/runtime-cache.js.map +1 -1
  45. package/dist/runtime-state.js.map +1 -1
  46. package/dist/security-headers.js.map +1 -1
  47. package/dist/serve.js.map +1 -1
  48. package/dist/session.js.map +1 -1
  49. package/dist/source-jsx.js.map +1 -1
  50. package/dist/source-modules.js.map +1 -1
  51. package/dist/stream-list.js.map +1 -1
  52. package/dist/trace.js.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/dist/upgrade.js.map +1 -1
  55. package/dist/vite-config.js.map +1 -1
  56. package/dist/vite-plugin-cache-key.js.map +1 -1
  57. package/dist/vite.js.map +1 -1
  58. package/dist/workspace-packages.js.map +1 -1
  59. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"route-path.js","sourceRoot":"","sources":["../src/route-path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtF,OAAO,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"route-path.js","sourceRoot":"","sources":["../src/route-path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtF,OAAO,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;AACxD,CAAC","sourcesContent":["export function normalizeRoutePath(pathname: string): string {\n const withoutTrailing = pathname.length > 1 ? pathname.replace(/\\/+$/, \"\") : pathname;\n\n return withoutTrailing === \"\" ? \"/\" : withoutTrailing;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"route-shells.js","sourceRoot":"","sources":["../src/route-shells.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAUpD,MAAM,eAAe,GAAG;IACtB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IAC/B,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5B,CAAC,qBAAqB,EAAE,UAAU,CAAC;CAC8B,CAAC;AAEpE,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,QAAgB;IACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CACvC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,SAAS;QACT,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC/B,IAAI;KACL,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe,EACf,QAAgB,EAChB,MAA0C;IAE1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CACpE,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAoC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AACnG,CAAC"}
1
+ {"version":3,"file":"route-shells.js","sourceRoot":"","sources":["../src/route-shells.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAUpD,MAAM,eAAe,GAAG;IACtB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IAC/B,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5B,CAAC,qBAAqB,EAAE,UAAU,CAAC;CAC8B,CAAC;AAEpE,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,QAAgB;IACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CACvC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,SAAS;QACT,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC/B,IAAI;KACL,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe,EACf,QAAgB,EAChB,MAA0C;IAE1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CACpE,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAoC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AACnG,CAAC","sourcesContent":["import { dirname, join, relative } from \"node:path\";\n\nexport type RouteShellKind = \"layout\" | \"template\";\n\nexport interface RouteShellCandidate {\n directory: string;\n file: string;\n kind: RouteShellKind;\n}\n\nconst routeShellFiles = [\n [\"layout.tsx\", \"layout\"],\n [\"layout.mreact.tsx\", \"layout\"],\n [\"template.tsx\", \"template\"],\n [\"template.mreact.tsx\", \"template\"],\n] as const satisfies readonly (readonly [string, RouteShellKind])[];\n\nexport function routeShellCandidates(rootDir: string, pageFile: string): RouteShellCandidate[] {\n const relativeDir = relative(rootDir, dirname(pageFile));\n const parts = relativeDir === \"\" ? [] : relativeDir.split(/[\\\\/]/);\n const directories = [rootDir];\n\n for (let index = 0; index < parts.length; index += 1) {\n directories.push(join(rootDir, ...parts.slice(0, index + 1)));\n }\n\n return directories.flatMap((directory) =>\n routeShellFiles.map(([filename, kind]) => ({\n directory,\n file: join(directory, filename),\n kind,\n }))\n );\n}\n\nexport async function existingRouteShellCandidates(\n rootDir: string,\n pageFile: string,\n exists: (file: string) => Promise<boolean>,\n): Promise<RouteShellCandidate[]> {\n const candidates = routeShellCandidates(rootDir, pageFile);\n const existing = await Promise.all(candidates.map(async (candidate) =>\n await exists(candidate.file) ? candidate : undefined\n ));\n\n return existing.filter((candidate): candidate is RouteShellCandidate => candidate !== undefined);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"route-source.js","sourceRoot":"","sources":["../src/route-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-source.js","sourceRoot":"","sources":["../src/route-source.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname, isAbsolute, join } from \"node:path\";\nimport {\n collectTopLevelValueExportNames,\n collectJsxComponentRootNames,\n collectStaticImportReferences,\n demoteTopLevelExportDeclarations,\n hasModuleDirective,\n hasTopLevelExportDeclaration,\n stripTopLevelExportDeclarations,\n} from \"@reckona/mreact-compiler\";\nimport type { StaticImportReference } from \"@reckona/mreact-compiler\";\nimport { sourceModuleCandidates } from \"./source-modules.js\";\n\nconst routeModuleExportNames = [\n \"auth\",\n \"generateStaticParams\",\n \"loader\",\n \"middleware\",\n \"prerender\",\n \"revalidate\",\n \"stream\",\n] as const;\nconst routeClientOnlyExportNames = [\n ...routeModuleExportNames,\n \"generateMetadata\",\n \"metadata\",\n] as const;\nconst routeRequestRenderExportNames = [\"default\", \"slots\"] as const;\nconst routeRenderExportNames = new Set<string>([\"default\", \"slots\"]);\nconst routeRequestExportNames = new Set<string>([\n ...routeClientOnlyExportNames,\n \"generateMetadata\",\n \"metadata\",\n]);\nconst routeLoaderOnlyExportNames = new Set<string>([\"loader\"]);\nconst routeMetadataOnlyExportNames = new Set<string>([\"generateMetadata\", \"metadata\"]);\n\nexport function stripRouteModuleExports(code: string): string {\n return demoteRouteHelperExports(stripTopLevelExportDeclarations({\n code,\n names: routeModuleExportNames,\n }));\n}\n\nexport function stripRouteClientOnlyExports(code: string): string {\n return demoteRouteHelperExports(stripTopLevelExportDeclarations({\n code,\n names: routeClientOnlyExportNames,\n }));\n}\n\nexport function stripRouteBuildExports(code: string): string {\n return stripRouteClientOnlyExports(code);\n}\n\nexport function stripRouteRequestOnlyExports(code: string): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n names: routeRequestRenderExportNames,\n }),\n routeRequestExportNames,\n );\n}\n\nexport function stripRouteLoaderOnlyExports(code: string): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n names: [\"auth\", \"default\", \"generateMetadata\", \"generateStaticParams\", \"metadata\", \"middleware\", \"prerender\", \"revalidate\", \"slots\", \"stream\"],\n }),\n routeLoaderOnlyExportNames,\n );\n}\n\nexport function stripRouteMetadataOnlyExports(code: string): string {\n return demoteRouteHelperExports(\n stripTopLevelExportDeclarations({\n code,\n names: [\"auth\", \"default\", \"generateStaticParams\", \"loader\", \"middleware\", \"prerender\", \"revalidate\", \"slots\", \"stream\"],\n }),\n routeMetadataOnlyExportNames,\n );\n}\n\nexport function stripRouteConfigExports(code: string): string {\n return stripTopLevelExportDeclarations({\n code,\n names: [\"auth\", \"prerender\", \"revalidate\", \"stream\"],\n });\n}\n\nexport function isStreamRouteSource(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"stream\"] });\n}\n\nexport function mayUseAwaitBoundarySource(code: string): boolean {\n return collectJsxComponentRootNames({ code }).includes(\"Await\");\n}\n\nexport function routeClosureMayUseAwaitBoundary(options: {\n filename: string;\n files: Record<string, string>;\n projectRoot: string;\n seen?: Set<string> | undefined;\n source: string;\n}): boolean {\n const seen = options.seen ?? new Set<string>();\n if (\n seen.has(options.filename) ||\n hasModuleDirective({ code: options.source, directive: \"use client\" })\n ) {\n return false;\n }\n\n seen.add(options.filename);\n\n try {\n if (mayUseAwaitBoundarySource(options.source)) {\n return true;\n }\n\n const sourceFilename = sourceFilenameForCompiler(options.projectRoot, options.filename);\n const jsxComponentRoots = new Set(\n collectJsxComponentRootNames({\n code: options.source,\n filename: sourceFilename,\n }),\n );\n\n for (const reference of collectStaticImportReferences({\n code: options.source,\n filename: sourceFilename,\n })) {\n if (!isRenderedStaticImportReference(reference, jsxComponentRoots)) {\n continue;\n }\n\n const resolved = resolveLocalSourceImport(options.files, options.filename, reference.source);\n\n if (resolved === undefined) {\n continue;\n }\n\n const importedSource = options.files[resolved];\n\n if (\n importedSource !== undefined &&\n routeClosureMayUseAwaitBoundary({\n filename: resolved,\n files: options.files,\n projectRoot: options.projectRoot,\n seen,\n source: importedSource,\n })\n ) {\n return true;\n }\n }\n\n return false;\n } finally {\n seen.delete(options.filename);\n }\n}\n\nexport function hasPrerenderExport(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"prerender\"] });\n}\n\nexport function hasGenerateStaticParamsExport(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"generateStaticParams\"] });\n}\n\nexport function hasLoaderExport(code: string): boolean {\n return hasTopLevelExportDeclaration({ code, names: [\"loader\"] });\n}\n\nfunction demoteRouteHelperExports(\n code: string,\n preservedExportNames: ReadonlySet<string> = routeRenderExportNames,\n): string {\n const helperNames = collectTopLevelValueExportNames({ code })\n .filter((name) => !preservedExportNames.has(name) && startsLowercase(name));\n\n return helperNames.length === 0\n ? code\n : demoteTopLevelExportDeclarations({ code, names: helperNames });\n}\n\nfunction startsLowercase(value: string): boolean {\n return /^[a-z]/.test(value);\n}\n\nfunction isRenderedStaticImportReference(\n reference: StaticImportReference,\n jsxComponentRoots: ReadonlySet<string>,\n): boolean {\n return reference.localNames.some((localName) => jsxComponentRoots.has(localName));\n}\n\nfunction resolveLocalSourceImport(\n files: Record<string, string>,\n importer: string,\n specifier: string,\n): string | undefined {\n if (!specifier.startsWith(\".\")) {\n return undefined;\n }\n\n const base = join(dirname(importer), specifier);\n\n for (const candidate of sourceModuleCandidates(base)) {\n if (files[candidate] !== undefined) {\n return candidate;\n }\n }\n\n return undefined;\n}\n\nfunction sourceFilenameForCompiler(projectRoot: string, filename: string): string {\n return isAbsolute(filename) ? filename : join(projectRoot, filename);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"route-styles.js","sourceRoot":"","sources":["../src/route-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAI1C;IACC,MAAM,UAAU,GAAG,CAAC,MAAM,4BAA4B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC9F,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5C,KAAK,MAAM,SAAS,IAAI,6BAA6B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACxF,MAAM,OAAO,GAAG,gBAAgB,CAAC;gBAC/B,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB,CAAC,CAAC;YAEH,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAK1C;IACC,OAAO,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAE5E,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,OAIzB;IACC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;QAC7D,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9B,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACjG,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB,EAAE,IAAY;IAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEhD,OAAO,YAAY,KAAK,EAAE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC;QACrF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,qDAAqD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"route-styles.js","sourceRoot":"","sources":["../src/route-styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { access, readFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, relative, resolve, sep } from \"node:path\";\nimport { collectStaticImportReferences } from \"@reckona/mreact-compiler\";\nimport { existingRouteShellCandidates } from \"./route-shells.js\";\n\nexport async function collectRouteCssFiles(options: {\n appDir: string;\n pageFile: string;\n projectRoot: string;\n}): Promise<string[]> {\n const shellFiles = (await existingRouteShellCandidates(options.appDir, options.pageFile, isFile))\n .map((candidate) => candidate.file);\n const files = [...shellFiles, options.pageFile];\n const seen = new Set<string>();\n const cssFiles: string[] = [];\n\n for (const file of files) {\n const source = await readFile(file, \"utf8\");\n\n for (const reference of collectStaticImportReferences({ code: source, filename: file })) {\n const cssFile = resolveCssImport({\n importer: file,\n projectRoot: options.projectRoot,\n source: reference.source,\n });\n\n if (cssFile === undefined || seen.has(cssFile)) {\n continue;\n }\n\n seen.add(cssFile);\n cssFiles.push(cssFile);\n }\n }\n\n return cssFiles;\n}\n\nexport async function collectRouteCssHrefs(options: {\n appDir: string;\n hrefPrefix?: string | undefined;\n pageFile: string;\n projectRoot: string;\n}): Promise<string[]> {\n return (await collectRouteCssFiles(options)).map((file) => {\n const href = `/${relative(options.projectRoot, file).split(sep).join(\"/\")}`;\n\n return options.hrefPrefix === undefined ? href : `${options.hrefPrefix}${href.slice(1)}`;\n });\n}\n\nfunction resolveCssImport(options: {\n importer: string;\n projectRoot: string;\n source: string;\n}): string | undefined {\n if (!isCssSource(options.source)) {\n return undefined;\n }\n\n const resolved = isAbsolute(options.source)\n ? normalizeInsideProject(options.projectRoot, options.source)\n : options.source.startsWith(\".\")\n ? normalizeInsideProject(options.projectRoot, resolve(dirname(options.importer), options.source))\n : undefined;\n\n return resolved;\n}\n\nfunction normalizeInsideProject(projectRoot: string, file: string): string | undefined {\n const normalized = resolve(file);\n const root = resolve(projectRoot);\n const relativePath = relative(root, normalized);\n\n return relativePath === \"\" || relativePath.startsWith(\"..\") || isAbsolute(relativePath)\n ? undefined\n : normalized;\n}\n\nfunction isCssSource(source: string): boolean {\n return /\\.(?:css|pcss|postcss|scss|sass|less|styl|stylus)$/u.test(source);\n}\n\nasync function isFile(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { readdir } from \"node:fs/promises\";\nimport { join, relative, sep } from \"node:path\";\nimport { createNativeRouteMatcher } from \"./native-route-matcher.js\";\nimport {\n appFileConventionForRootFilename,\n type AppFileConvention,\n} from \"./file-conventions.js\";\n\nexport interface ScanAppRoutesOptions {\n appDir: string;\n}\n\nexport type AppRoute = AppAssetRoute | AppMetadataRoute | PageRoute | ServerRoute;\n\nexport interface PageRoute {\n kind: \"page\";\n path: string;\n file: string;\n segments: RouteSegment[];\n}\n\nexport interface ServerRoute {\n kind: \"server\";\n path: string;\n file: string;\n segments: RouteSegment[];\n}\n\nexport interface AppMetadataRoute {\n convention: AppFileConvention;\n kind: \"metadata\";\n path: string;\n file: string;\n segments: RouteSegment[];\n}\n\nexport interface AppAssetRoute {\n convention: AppFileConvention;\n kind: \"asset\";\n path: string;\n file: string;\n segments: RouteSegment[];\n}\n\nexport type RouteSegment =\n | { kind: \"static\"; value: string }\n | { kind: \"dynamic\"; name: string }\n | { kind: \"catch-all\"; name: string };\n\nexport interface MatchedRoute {\n route: AppRoute;\n params: Record<string, readonly string[] | string>;\n}\n\nexport interface RouteMatcher {\n match(pathname: string): MatchedRoute | undefined;\n}\n\nexport async function scanAppRoutes(\n options: ScanAppRoutesOptions,\n): Promise<AppRoute[]> {\n const files = await collectRouteFiles(options.appDir);\n\n return files\n .map((file): AppRoute => {\n const relativeFile = relative(options.appDir, file);\n const convention = appFileConventionForRelativeFile(relativeFile);\n if (convention !== undefined) {\n return {\n convention: convention.convention,\n file,\n kind: convention.kind,\n path: convention.path,\n segments: segmentsFromPath(convention.path),\n };\n }\n\n const kind = relativeFile.endsWith(\"route.ts\") ? \"server\" : \"page\";\n const routePath = routePathFromRelativeFile(relativeFile);\n const segments = segmentsFromPath(routePath);\n\n return { kind, path: routePath, file, segments };\n })\n .sort(compareRouteListEntries);\n}\n\nexport function matchRoute(\n routes: readonly AppRoute[],\n pathname: string,\n): MatchedRoute | undefined {\n return createRouteMatcher(routes).match(pathname);\n}\n\nexport function createRouteMatcher(routes: readonly AppRoute[]): RouteMatcher {\n const sortedRoutes = [...routes].sort(compareRoutes);\n const nativeMatcher = createNativeRouteMatcher(sortedRoutes);\n\n if (nativeMatcher !== undefined) {\n return nativeMatcher;\n }\n\n return {\n match(pathname) {\n return matchSortedRoutes(sortedRoutes, pathname);\n },\n };\n}\n\nfunction matchSortedRoutes(\n routes: readonly AppRoute[],\n pathname: string,\n): MatchedRoute | undefined {\n const normalized = normalizePath(pathname);\n const pathnameSegments = normalized === \"/\" ? [] : normalized.slice(1).split(\"/\");\n\n for (const route of routes) {\n const catchAllIndex = route.segments.findIndex(\n (segment) => segment.kind === \"catch-all\",\n );\n\n if (catchAllIndex === -1 && route.segments.length !== pathnameSegments.length) {\n continue;\n }\n\n if (catchAllIndex !== -1 && pathnameSegments.length < catchAllIndex + 1) {\n continue;\n }\n\n const params: Record<string, readonly string[] | string> = {};\n let matched = true;\n\n for (const [index, segment] of route.segments.entries()) {\n const value = pathnameSegments[index];\n\n if (value === undefined) {\n matched = false;\n break;\n }\n\n if (segment.kind === \"static\" && segment.value !== value) {\n matched = false;\n break;\n }\n\n if (segment.kind === \"dynamic\") {\n const decoded = safeDecodeURIComponent(value);\n if (decoded === undefined) {\n // Malformed percent-encoding -- treat as non-match rather than\n // letting URIError escape and produce a 500 (Issue 072).\n matched = false;\n break;\n }\n params[segment.name] = decoded;\n }\n\n if (segment.kind === \"catch-all\") {\n const suffixSegments = route.segments.slice(index + 1);\n const catchAllEnd = pathnameSegments.length - suffixSegments.length;\n\n if (catchAllEnd <= index) {\n matched = false;\n break;\n }\n\n const decodedParts: string[] = [];\n let decodeOk = true;\n for (const part of pathnameSegments.slice(index, catchAllEnd)) {\n const decoded = safeDecodeURIComponent(part);\n if (decoded === undefined) {\n decodeOk = false;\n break;\n }\n decodedParts.push(decoded);\n }\n if (!decodeOk) {\n matched = false;\n break;\n }\n params[segment.name] = decodedParts;\n\n for (let suffixIndex = 0; suffixIndex < suffixSegments.length; suffixIndex += 1) {\n const suffixSegment = suffixSegments[suffixIndex];\n const suffixValue = pathnameSegments[catchAllEnd + suffixIndex];\n\n if (suffixSegment === undefined || suffixValue === undefined) {\n matched = false;\n break;\n }\n\n if (suffixSegment.kind === \"static\" && suffixSegment.value !== suffixValue) {\n matched = false;\n break;\n }\n\n if (suffixSegment.kind === \"dynamic\") {\n const decoded = safeDecodeURIComponent(suffixValue);\n if (decoded === undefined) {\n matched = false;\n break;\n }\n params[suffixSegment.name] = decoded;\n }\n\n if (suffixSegment.kind === \"catch-all\") {\n matched = false;\n break;\n }\n }\n\n break;\n }\n }\n\n if (matched) {\n return { route, params };\n }\n }\n\n return undefined;\n}\n\n// Issue 072: attacker-supplied path segments / cookie values can include\n// malformed percent escapes (e.g. `%ZZ`, `%E0`). Catch the URIError so a\n// single bad byte cannot turn every request into a 500 + stack-leaking\n// response.\nexport function safeDecodeURIComponent(value: string): string | undefined {\n try {\n return decodeURIComponent(value);\n } catch {\n return undefined;\n }\n}\n\nasync function collectRouteFiles(directory: string, rootDirectory = directory): Promise<string[]> {\n const entries = await readdir(directory, { withFileTypes: true });\n const files: string[] = [];\n\n for (const entry of entries) {\n const path = join(directory, entry.name);\n\n if (entry.isDirectory()) {\n files.push(...(await collectRouteFiles(path, rootDirectory)));\n continue;\n }\n\n if (\n entry.isFile() &&\n (entry.name === \"page.tsx\" ||\n entry.name === \"page.mreact.tsx\" ||\n entry.name === \"route.ts\" ||\n appFileConventionForRelativeFile(relative(rootDirectory, path)) !== undefined)\n ) {\n files.push(path);\n }\n }\n\n return files;\n}\n\nfunction appFileConventionForRelativeFile(\n relativeFile: string,\n): ReturnType<typeof appFileConventionForRootFilename> {\n const parts = relativeFile.split(sep);\n const filename = parts.at(-1);\n\n if (filename === undefined) {\n return undefined;\n }\n\n const convention = appFileConventionForRootFilename(filename);\n\n if (convention === undefined) {\n return undefined;\n }\n\n if (parts.length === 1) {\n return convention;\n }\n\n if (convention.kind !== \"metadata\" || convention.convention !== \"opengraph-image\") {\n return undefined;\n }\n\n const routeParts = parts\n .slice(0, -1)\n .filter((part) => !isRouteGroup(part))\n .map((part) => (part.startsWith(\"$\") ? `:${part.slice(1)}` : part));\n const conventionPath = convention.path.startsWith(\"/\")\n ? convention.path.slice(1)\n : convention.path;\n\n return {\n ...convention,\n path: normalizePath(`/${[...routeParts, conventionPath].join(\"/\")}`),\n };\n}\n\nfunction routePathFromRelativeFile(relativeFile: string): string {\n const parts = relativeFile.split(sep);\n const routeParts = parts\n .slice(0, -1)\n .filter((part) => !isRouteGroup(part))\n .map((part) => (part.startsWith(\"$\") ? `:${part.slice(1)}` : part));\n\n return normalizePath(`/${routeParts.join(\"/\")}`);\n}\n\nfunction segmentsFromPath(path: string): RouteSegment[] {\n return path === \"/\"\n ? []\n : path\n .slice(1)\n .split(\"/\")\n .map((part) =>\n part.startsWith(\":...\")\n ? { kind: \"catch-all\", name: part.slice(4) }\n : part.startsWith(\":\")\n ? { kind: \"dynamic\", name: part.slice(1) }\n : { kind: \"static\", value: part },\n );\n}\n\nfunction normalizePath(path: string): string {\n const withoutTrailing = path.length > 1 ? path.replace(/\\/+$/, \"\") : path;\n\n return withoutTrailing === \"\" ? \"/\" : withoutTrailing;\n}\n\nfunction isRouteGroup(part: string): boolean {\n return part.startsWith(\"(\") && part.endsWith(\")\");\n}\n\nfunction compareRoutes(a: AppRoute, b: AppRoute): number {\n const scoreDelta = routeScore(b) - routeScore(a);\n\n return scoreDelta === 0 ? a.path.localeCompare(b.path) || a.kind.localeCompare(b.kind) : scoreDelta;\n}\n\nfunction compareRouteListEntries(a: AppRoute, b: AppRoute): number {\n return routeListKey(a.path).localeCompare(routeListKey(b.path)) ||\n a.kind.localeCompare(b.kind);\n}\n\nfunction routeListKey(path: string): string {\n return path === \"/\"\n ? \"\"\n : path.replaceAll(\"/:...\", \"/zzzz-catch-all-\").replaceAll(\"/:\", \"/zzzz-dynamic-\");\n}\n\nfunction routeScore(route: AppRoute): number {\n return route.segments.reduce((score, segment) => {\n if (segment.kind === \"static\") {\n return score + 100;\n }\n\n if (segment.kind === \"dynamic\") {\n return score + 10;\n }\n\n return score;\n }, route.segments.length);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-cache.js","sourceRoot":"","sources":["../src/runtime-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAI5D,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,GAAG,6BAA6B,EAAE,EAAE,GAAG,mCAAmC,EAAE,CAAC,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"runtime-cache.js","sourceRoot":"","sources":["../src/runtime-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAI5D,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,GAAG,6BAA6B,EAAE,EAAE,GAAG,mCAAmC,EAAE,CAAC,CAAC;AACxF,CAAC","sourcesContent":["import { routerModuleRunnerRuntimeCacheStats } from \"./module-runner.js\";\nimport { routerRenderRuntimeCacheStats } from \"./render.js\";\nimport type { RouterRuntimeCacheStat } from \"./cache-stats.js\";\nexport type { RouterRuntimeCacheStat } from \"./cache-stats.js\";\n\nexport function getRouterRuntimeCacheStats(): RouterRuntimeCacheStat[] {\n return [...routerRenderRuntimeCacheStats(), ...routerModuleRunnerRuntimeCacheStats()];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,MAAoB;IAEpB,MAAM,MAAM,GAAG,UAA2B,CAAC;IAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,MAAoB;IAEpB,MAAM,MAAM,GAAG,UAA2B,CAAC;IAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC","sourcesContent":["type RuntimeGlobal = typeof globalThis & Record<string, unknown>;\ntype RuntimeStateRoot = Record<string, unknown>;\n\nconst namespace = \"__mreactRouterRuntimeState\";\n\nexport function getServerRuntimeState<TState extends object>(\n key: string,\n create: () => TState,\n): TState {\n const global = globalThis as RuntimeGlobal;\n const root = getOrCreateRoot(global);\n const existing = root[key];\n\n if (existing !== undefined) {\n return existing as TState;\n }\n\n const state = create();\n root[key] = state;\n return state;\n}\n\nfunction getOrCreateRoot(global: RuntimeGlobal): RuntimeStateRoot {\n const existing = global[namespace];\n\n if (isRuntimeGlobal(existing)) {\n return existing;\n }\n\n const root: RuntimeStateRoot = {};\n global[namespace] = root;\n return root;\n}\n\nfunction isRuntimeGlobal(value: unknown): value is RuntimeStateRoot {\n return typeof value === \"object\" && value !== null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"security-headers.js","sourceRoot":"","sources":["../src/security-headers.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,oBAAoB,EAAE,0CAA0C;IAChE,iBAAiB,EAAE,iCAAiC;IACpD,wBAAwB,EAAE,SAAS;CACpC,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAAC,OAGpC;IACC,MAAM,OAAO,GAA2B,EAAE,GAAG,wBAAwB,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CACrD,QAAQ,EAAE,kBAAkB,IAAI,SAAS,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAC9C,QAAQ,EAAE,cAAc,IAAI,iCAAiC,CAC9D,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAClF,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,oBAAoB,CAAC,GAAG,iBAAiB,CAAC;QACpD,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,QAAQ,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,IACE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1C,QAAQ,EAAE,IAAI,KAAK,SAAS;QAC5B,QAAQ,CAAC,IAAI,KAAK,KAAK;QACvB,QAAQ,CAAC,IAAI,KAAK,IAAI,EACtB,CAAC;QACD,OAAO,CAAC,2BAA2B,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,IAA+C;IACpE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,0BAA0B,CACjC,MAA0E;IAE1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,aAAa,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,gCAAgC,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAa;IACjD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CAAC,qCAAqC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAa;IACrD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClF,OAAO;IACT,CAAC;IAED,IAAI,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,kEAAkE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"security-headers.js","sourceRoot":"","sources":["../src/security-headers.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,oBAAoB,EAAE,0CAA0C;IAChE,iBAAiB,EAAE,iCAAiC;IACpD,wBAAwB,EAAE,SAAS;CACpC,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAAC,OAGpC;IACC,MAAM,OAAO,GAA2B,EAAE,GAAG,wBAAwB,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CACrD,QAAQ,EAAE,kBAAkB,IAAI,SAAS,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAC9C,QAAQ,EAAE,cAAc,IAAI,iCAAiC,CAC9D,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAClF,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,oBAAoB,CAAC,GAAG,iBAAiB,CAAC;QACpD,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,QAAQ,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,IACE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1C,QAAQ,EAAE,IAAI,KAAK,SAAS;QAC5B,QAAQ,CAAC,IAAI,KAAK,KAAK;QACvB,QAAQ,CAAC,IAAI,KAAK,IAAI,EACtB,CAAC;QACD,OAAO,CAAC,2BAA2B,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,IAA+C;IACpE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,0BAA0B,CACjC,MAA0E;IAE1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,aAAa,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,gCAAgC,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAa;IACjD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CAAC,qCAAqC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAa;IACrD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClF,OAAO;IACT,CAAC;IAED,IAAI,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,kEAAkE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;AACJ,CAAC","sourcesContent":["import type { RouteSecurityHeaders } from \"./types.js\";\n\nconst DEFAULT_SECURITY_HEADERS = Object.freeze({\n \"permissions-policy\": \"camera=(), microphone=(), geolocation=()\",\n \"referrer-policy\": \"strict-origin-when-cross-origin\",\n \"x-content-type-options\": \"nosniff\",\n});\n\nexport function routeSecurityHeaders(options: {\n request: Request;\n security: RouteSecurityHeaders | undefined;\n}): Record<string, string> {\n const headers: Record<string, string> = { ...DEFAULT_SECURITY_HEADERS };\n const security = options.security;\n\n if (security?.contentTypeOptions === null) {\n delete headers[\"x-content-type-options\"];\n } else {\n headers[\"x-content-type-options\"] = validateHeaderValue(\n security?.contentTypeOptions ?? \"nosniff\",\n );\n }\n\n if (security?.referrerPolicy === null) {\n delete headers[\"referrer-policy\"];\n } else {\n headers[\"referrer-policy\"] = validateHeaderValue(\n security?.referrerPolicy ?? \"strict-origin-when-cross-origin\",\n );\n }\n\n if (security?.permissionsPolicy === null) {\n delete headers[\"permissions-policy\"];\n } else {\n const permissionsPolicy = serializePermissionsPolicy(security?.permissionsPolicy);\n if (permissionsPolicy === undefined) {\n delete headers[\"permissions-policy\"];\n } else {\n headers[\"permissions-policy\"] = permissionsPolicy;\n }\n }\n\n if (security?.frameOptions === null) {\n delete headers[\"x-frame-options\"];\n } else if (security?.frameOptions !== undefined) {\n headers[\"x-frame-options\"] = validateHeaderValue(security.frameOptions);\n }\n\n if (\n options.request.url.startsWith(\"https://\") &&\n security?.hsts !== undefined &&\n security.hsts !== false &&\n security.hsts !== null\n ) {\n headers[\"strict-transport-security\"] = serializeHsts(security.hsts);\n }\n\n return headers;\n}\n\nfunction serializeHsts(hsts: NonNullable<RouteSecurityHeaders[\"hsts\"]>): string {\n if (hsts === false) {\n throw new TypeError(\"Invalid security header value for hsts.\");\n }\n\n const maxAge = Math.trunc(hsts.maxAge);\n if (!Number.isFinite(maxAge) || maxAge < 0) {\n throw new TypeError(\"Invalid security header value for hsts.maxAge.\");\n }\n\n const parts = [`max-age=${maxAge}`];\n if (hsts.includeSubDomains === true) {\n parts.push(\"includeSubDomains\");\n }\n if (hsts.preload === true) {\n parts.push(\"preload\");\n }\n\n return parts.join(\"; \");\n}\n\nfunction serializePermissionsPolicy(\n policy: NonNullable<RouteSecurityHeaders[\"permissionsPolicy\"]> | undefined,\n): string | undefined {\n if (policy === undefined) {\n return DEFAULT_SECURITY_HEADERS[\"permissions-policy\"];\n }\n\n const directives: string[] = [];\n for (const [directive, allowlist] of Object.entries(policy)) {\n if (allowlist === null || allowlist === undefined) {\n continue;\n }\n\n validateToken(directive, \"permissionsPolicy directive\");\n for (const value of allowlist) {\n validatePermissionAllowlistValue(value);\n }\n directives.push(`${directive}=(${allowlist.join(\" \")})`);\n }\n\n return directives.length === 0 ? undefined : directives.join(\", \");\n}\n\nfunction validateHeaderValue(value: string): string {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code <= 0x1f || code === 0x7f) {\n throw new TypeError(`Invalid security header value: ${JSON.stringify(value)}`);\n }\n }\n\n return value;\n}\n\nfunction validateToken(value: string, label: string): void {\n if (!/^[A-Za-z][A-Za-z0-9-]*$/.test(value)) {\n throw new TypeError(`Invalid security header value for ${label}: ${JSON.stringify(value)}`);\n }\n}\n\nfunction validatePermissionAllowlistValue(value: string): void {\n if (value === \"self\" || value === \"*\" || /^[A-Za-z][A-Za-z0-9+.-]*:$/.test(value)) {\n return;\n }\n\n if (/^https:\\/\\/[A-Za-z0-9.-]+(?::[0-9]+)?$/.test(value)) {\n return;\n }\n\n throw new TypeError(\n `Invalid security header value for permissionsPolicy allowlist: ${JSON.stringify(value)}`,\n );\n}\n"]}
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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","sourcesContent":["import { createServer, type Server } from \"node:http\";\nimport { createHash } from \"node:crypto\";\nimport { mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join, normalize, sep } from \"node:path\";\nimport type {\n BuiltPrerenderedRoute,\n BuiltServerManifest,\n BuiltServerModuleArtifact,\n} from \"./build.js\";\nimport type { AppRouterCache } from \"./cache.js\";\nimport type { ClientRouteManifestEntry } from \"./client.js\";\nimport { createRouteMatcher, type AppRoute, type RouteMatcher } from \"./routes.js\";\nimport type { AppRouterServerActionOptions } from \"./actions.js\";\nimport type { AppRouterImportPolicy } from \"./import-policy.js\";\nimport {\n preloadBuiltRequestModules,\n renderAppRequest,\n resolveAppRouterMiddleware,\n type AppRouterRenderPreload,\n type AppRouterResponseHook,\n type RenderAppRequestOptions,\n} from \"./render.js\";\nimport type { RouterInstrumentation } from \"./trace.js\";\nimport { bytesResponse, htmlResponse, nodeRequestToWebRequest, sendResponse } from \"./http.js\";\nimport {\n emitRouterLog,\n logDurationMs,\n logError,\n logNow,\n nodeRequestPath,\n requestLogFields,\n type AppRouterLogger,\n} from \"./logger.js\";\nimport { routeShellCandidates } from \"./route-shells.js\";\nimport { normalizeRoutePath } from \"./route-path.js\";\nimport type { HttpUpgradeHandler } from \"./upgrade.js\";\n\ninterface BuiltRuntime {\n appDir: string;\n allowedSourceDirs: readonly string[];\n assetBaseUrl?: string | undefined;\n clientScripts: ReadonlyMap<string, string>;\n clientStyles: ReadonlyMap<string, readonly string[]>;\n hasMiddleware: boolean;\n navigationScripts: ReadonlyMap<string, string>;\n projectRoot: string;\n publicAssetBaseUrl?: string | undefined;\n prerenderableRoutes: ReadonlySet<string>;\n prerenderLocks: Map<string, Promise<Response>>;\n prerenderedRoutes: Map<string, BuiltPrerenderedRoute>;\n routeMatcher: RouteMatcher;\n routes: readonly AppRoute[];\n serverActionManifest?: readonly { moduleId: string; exportName: string; inferred?: boolean }[] | undefined;\n serverModuleArtifactLoads: Map<string, Promise<void>>;\n serverModuleFiles: ReadonlyMap<string, string>;\n serverModuleRenderFiles: ReadonlyMap<string, string>;\n serverModuleRequestFiles: ReadonlyMap<string, string>;\n serverModules: Map<string, BuiltServerModuleArtifact>;\n serverModuleCacheVersion: string;\n serverSourceFiles: ReadonlyMap<string, string>;\n}\n\ninterface BuiltRuntimeCacheEntry {\n clientManifestText: string;\n runtime: Promise<BuiltRuntime>;\n serverManifestText: string;\n}\n\nconst builtRuntimeCache = new Map<string, BuiltRuntimeCacheEntry>();\nconst builtPublicAssetCache = new Map<string, BuiltPublicAsset | null>();\n\ninterface BuiltPublicAsset {\n bytes: Uint8Array;\n headers: HeadersInit;\n}\n\n/**\n * Strategy for the final response body shape sent to the HTTP layer.\n *\n * - `\"string\"` (default, cross-runtime): body is the raw HTML string. The\n * underlying runtime encodes to UTF-8 bytes when writing to the socket.\n * - `\"buffer\"` (Node only): materialize the response body into a Buffer\n * before returning. Skips the implicit encode at the Response → socket\n * boundary and can let Node's HTTP layer write bytes directly.\n *\n * The buffer path forces full materialization of streaming responses\n * (loses TTFB streaming) — only opt in if the throughput gain outweighs\n * that on your workload.\n */\nexport type ResponseSinkStrategy = \"string\" | \"buffer\";\nexport type RequestHostPolicy = \"strict\" | \"trusted-proxy\";\n\nlet warnedImplicitHostTrust = false;\n\nexport interface RenderBuiltAppRequestOptions {\n outDir: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n request: Request;\n routeCache?: AppRouterCache | undefined;\n runtimeDir?: string | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy;\n preload?: AppRouterRenderPreload | undefined;\n}\n\nexport type BuiltAppRuntimePreloadMode =\n | \"all\"\n | \"hot-route-requests\"\n | \"hot-routes\"\n | \"middleware\"\n | \"none\";\n\nexport interface BuiltAppRuntimePreloadStrategy {\n mode: BuiltAppRuntimePreloadMode;\n routes?: readonly string[] | undefined;\n}\n\nexport interface StartServerOptions {\n outDir: string;\n port: number;\n hostname?: string;\n // Optional hook for customizing the 500 response. The default returns\n // a generic \"Internal Server Error\" body and logs the stack to stderr\n // via console.error. Issue 071: stack traces must never end up in\n // production responses.\n errorHandler?: (error: unknown) => { body: string; status: number; headers?: Record<string, string> };\n // When set, an incoming Host header that does not exactly match one of\n // the listed values is replaced with the configured hostname/port for\n // origin reconstruction. Use this in front of public deployments to\n // block Host header injection (Issue 068). Undefined preserves the\n // legacy \"trust Host\" behavior for backward compatibility when\n // hostPolicy is not configured.\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy;\n onUpgrade?: HttpUpgradeHandler | undefined;\n}\n\nexport function resolveRequestHost(options: {\n allowedHosts?: readonly string[] | undefined;\n fallbackHost: string;\n hostPolicy?: RequestHostPolicy | undefined;\n rawHost: string | undefined;\n}): string {\n const raw = options.rawHost;\n if (raw === undefined || raw === \"\") return options.fallbackHost;\n if (options.allowedHosts === undefined) {\n return options.hostPolicy === \"strict\" ? options.fallbackHost : raw;\n }\n return options.allowedHosts.includes(raw) ? raw : options.fallbackHost;\n}\n\nexport function warnIfImplicitHostTrust(options: {\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n}): void {\n if (\n process.env.NODE_ENV !== \"production\" ||\n options.allowedHosts !== undefined ||\n options.hostPolicy !== undefined ||\n warnedImplicitHostTrust\n ) {\n return;\n }\n\n warnedImplicitHostTrust = true;\n console.error(\n \"[mreact] Host header trust is implicit because neither allowedHosts nor hostPolicy is configured. Set allowedHosts for public deployments, hostPolicy: \\\"strict\\\" to reject unlisted Host headers, or hostPolicy: \\\"trusted-proxy\\\" when a trusted reverse proxy normalizes Host.\",\n );\n}\n\nexport interface AppRouterPrerenderStore {\n delete(path: string): void | Promise<void>;\n get(path: string): BuiltPrerenderedRoute | undefined | Promise<BuiltPrerenderedRoute | undefined>;\n set(path: string, entry: BuiltPrerenderedRoute): void | Promise<void>;\n withLock?<T>(path: string, task: () => Promise<T>): Promise<T>;\n}\n\nexport async function preloadBuiltAppRuntime(options: {\n importPolicy?: AppRouterImportPolicy | undefined;\n outDir: string;\n preload?: BuiltAppRuntimePreloadStrategy | undefined;\n runtimeDir?: string | undefined;\n}): Promise<void> {\n const runtime = await readBuiltRuntime({\n outDir: options.outDir,\n runtimeDir: options.runtimeDir,\n });\n const strategy = options.preload ?? { mode: \"all\" };\n\n if (strategy.mode === \"none\") {\n return;\n }\n\n const routes = builtRuntimePreloadRoutes(runtime, strategy);\n if (strategy.mode === \"all\") {\n await loadBuiltServerModuleArtifacts(runtime, allBuiltServerModuleFiles(runtime), \"all\");\n } else {\n await loadBuiltServerModuleArtifactsForRequest(runtime, undefined, {\n includeRender: strategy.mode !== \"hot-route-requests\",\n });\n for (const route of routes) {\n await loadBuiltServerModuleArtifactsForRequest(runtime, route.file, {\n includeShells: strategy.mode !== \"hot-route-requests\",\n includeRender: strategy.mode !== \"hot-route-requests\",\n });\n }\n }\n await preloadBuiltRequestModules({\n appDir: runtime.appDir,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: runtime.allowedSourceDirs,\n projectRoot: runtime.projectRoot,\n },\n routes,\n serverModules: runtime.serverModules,\n serverModuleCacheVersion: runtime.serverModuleCacheVersion,\n serverSourceFiles: runtime.serverSourceFiles,\n includeRenderModules: strategy.mode !== \"hot-route-requests\",\n });\n}\n\nfunction builtRuntimePreloadRoutes(\n runtime: BuiltRuntime,\n strategy: BuiltAppRuntimePreloadStrategy,\n): readonly AppRoute[] {\n if (strategy.mode === \"all\") {\n return runtime.routes;\n }\n\n if (strategy.mode === \"middleware\" || strategy.mode === \"none\") {\n return [];\n }\n\n const routes = strategy.routes ?? [];\n return routes.map((path) => {\n const route = runtime.routeMatcher.match(normalizeRoutePath(path))?.route;\n if (route === undefined) {\n throw new Error(`Unknown hot route preload path: ${path}`);\n }\n return route;\n });\n}\n\nexport async function renderBuiltAppRequest(\n options: RenderBuiltAppRequestOptions,\n): Promise<Response> {\n const response = await renderBuiltAppRequestWithRuntime({\n ...options,\n runtime: await readBuiltRuntime({\n outDir: options.outDir,\n runtimeDir: options.runtimeDir,\n }),\n });\n\n return applyBuiltAppResponseHook(response, options);\n}\n\nasync function renderBuiltAppRequestWithRuntime(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n): Promise<Response> {\n const url = new URL(options.request.url);\n const timing = createBuiltRenderTiming(options.logger);\n\n if (url.pathname.startsWith(\"/_mreact/client/\")) {\n return readBuiltClientAsset(options.outDir, url.pathname);\n }\n\n if (options.request.method === \"GET\" || options.request.method === \"HEAD\") {\n const publicAsset = await readBuiltPublicAsset(options.outDir, url.pathname);\n\n if (publicAsset !== undefined) {\n return publicAsset;\n }\n }\n\n let request = options.request;\n let normalizedPath = normalizeRoutePath(url.pathname);\n let matched = options.runtime.routeMatcher.match(normalizedPath);\n\n if (options.request.method === \"GET\" || options.request.method === \"HEAD\") {\n // Sync fast path when no external prerender store is configured (the\n // common case): skip the Promise wrap that `readPrerenderedRoute`\n // would otherwise introduce just to satisfy the async signature.\n const prerendered =\n options.prerenderStore === undefined\n ? options.runtime.prerenderedRoutes.get(normalizedPath)\n : await readPrerenderedRoute(\n options.runtime,\n normalizedPath,\n options.prerenderStore,\n );\n\n if (prerendered !== undefined) {\n if (options.request.method === \"HEAD\") {\n return new Response(null, {\n headers: prerendered.headers,\n status: prerendered.status,\n });\n }\n return htmlResponse(prerendered.html, {\n headers: prerendered.headers,\n status: prerendered.status,\n });\n }\n }\n\n const middlewareStartedAt = builtRenderTimingPhaseStartedAt(timing);\n const middlewareResult = await resolveBuiltMiddleware({ ...options, timing }, request);\n finishBuiltRenderTimingPhase(timing, middlewareStartedAt, \"middlewareMs\");\n if (middlewareResult.type === \"response\") {\n emitBuiltRenderTiming(options, request, timing, middlewareResult.response.status);\n return middlewareResult.response;\n }\n request = middlewareResult.request;\n normalizedPath = normalizeRoutePath(new URL(request.url).pathname);\n matched = options.runtime.routeMatcher.match(normalizedPath);\n\n if (request.method === \"GET\" && options.runtime.prerenderableRoutes.has(normalizedPath)) {\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, matched?.route.file, {\n includeRender: false,\n });\n return renderAndCachePrerenderWithLock({ ...options, request }, normalizedPath);\n }\n\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, matched?.route.file, {\n includeRender: false,\n });\n const response = await renderBuiltDynamicResponse({ ...options, request });\n\n await applyBuiltPrerenderInvalidations(\n options.runtime,\n response,\n options.prerenderStore,\n );\n\n return options.sinkStrategy === \"buffer\"\n ? await materializeResponseAsBuffer(response)\n : response;\n}\n\nasync function resolveBuiltMiddleware(\n options: RenderBuiltAppRequestOptions & {\n runtime: BuiltRuntime;\n timing?: { phases: Record<string, number> } | undefined;\n },\n request: Request,\n): Promise<{ request: Request; type: \"continue\" } | { response: Response; type: \"response\" }> {\n if (!options.runtime.hasMiddleware) {\n return { request, type: \"continue\" };\n }\n\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, undefined);\n\n return resolveAppRouterMiddleware({\n appDir: options.runtime.appDir,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n instrumentation: options.instrumentation,\n request,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n timing: options.timing,\n });\n}\n\nfunction createBuiltRenderTiming(\n logger: AppRouterLogger | undefined,\n): { phases: Record<string, number> } | undefined {\n return logger?.debug === undefined ? undefined : { phases: {} };\n}\n\nfunction builtRenderTimingPhaseStartedAt(\n timing: { phases: Record<string, number> } | undefined,\n): number | undefined {\n return timing === undefined ? undefined : logNow();\n}\n\nfunction finishBuiltRenderTimingPhase(\n timing: { phases: Record<string, number> } | undefined,\n startedAt: number | undefined,\n phaseName: string,\n): void {\n if (timing === undefined || startedAt === undefined) {\n return;\n }\n\n timing.phases[phaseName] = logDurationMs(startedAt);\n}\n\nfunction emitBuiltRenderTiming(\n options: RenderBuiltAppRequestOptions,\n request: Request,\n timing: { phases: Record<string, number> } | undefined,\n status: number,\n): void {\n if (timing === undefined) {\n return;\n }\n\n emitRouterLog(options.logger, \"debug\", {\n method: request.method,\n path: new URL(request.url).pathname,\n phases: timing.phases,\n status,\n type: \"router:render:timing\",\n });\n}\n\nasync function applyBuiltAppResponseHook(\n response: Response,\n options: Pick<RenderBuiltAppRequestOptions, \"onResponse\" | \"request\">,\n): Promise<Response> {\n const hooked = await options.onResponse?.(response, {\n request: options.request,\n });\n\n return hooked instanceof Response ? hooked : response;\n}\n\nasync function materializeResponseAsBuffer(response: Response): Promise<Response> {\n if (response.body === null) {\n return response;\n }\n\n // Drains streaming responses into a single Buffer (loses TTFB streaming\n // by design — opt-in via sinkStrategy === \"buffer\"). Avoids the\n // string → UTF-8 encode the Response stream would otherwise do lazily\n // during the socket write. Tagged via `bytesResponse` so `sendResponse`\n // can take the raw-bytes fast path.\n const bytes = new Uint8Array(await response.arrayBuffer());\n return bytesResponse(bytes, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nexport async function startServer(\n options: StartServerOptions,\n): Promise<{ close(): Promise<void>; server: Server; url: string }> {\n warnIfImplicitHostTrust(options);\n const runtime = await readBuiltRuntime({ outDir: options.outDir });\n const server = createServer(async (incoming, outgoing) => {\n const startedAt = logNow();\n const fallbackRequestFields = {\n method: incoming.method ?? \"GET\",\n path: nodeRequestPath(incoming.url),\n runtime: \"node\" as const,\n };\n\n try {\n const fallbackHost = `${options.hostname ?? \"127.0.0.1\"}:${options.port}`;\n const host = resolveRequestHost({\n allowedHosts: options.allowedHosts,\n fallbackHost,\n hostPolicy: options.hostPolicy,\n rawHost: incoming.headers.host,\n });\n const origin = `http://${host}`;\n const request = nodeRequestToWebRequest(incoming, origin);\n const logFields = requestLogFields(request, \"node\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n const response = await applyBuiltAppResponseHook(await renderBuiltAppRequestWithRuntime({\n outDir: options.outDir,\n importPolicy: options.importPolicy,\n instrumentation: options.instrumentation,\n logger: options.logger,\n onResponse: options.onResponse,\n prerenderStore: options.prerenderStore,\n request,\n routeCache: options.routeCache,\n runtime,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n }), { onResponse: options.onResponse, request });\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: response.status,\n type: \"router:request:end\",\n });\n\n await sendResponse(outgoing, response);\n } catch (error) {\n // Log the full stack to stderr for operator visibility; never\n // place it in the response body where attackers can scrape it\n // (Issue 071). The errorHandler hook lets embedders customize\n // the public response shape while still benefiting from the\n // server-side log.\n emitRouterLog(options.logger, \"error\", {\n ...fallbackRequestFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n if (options.logger === undefined) {\n console.error(\"[mreact] startServer request failed:\", error);\n }\n const payload = options.errorHandler\n ? options.errorHandler(error)\n : { body: \"Internal Server Error\", status: 500 };\n outgoing.statusCode = payload.status;\n outgoing.setHeader(\n \"content-type\",\n payload.headers?.[\"content-type\"] ?? \"text/plain; charset=utf-8\",\n );\n for (const [name, value] of Object.entries(payload.headers ?? {})) {\n if (name.toLowerCase() === \"content-type\") continue;\n outgoing.setHeader(name, value);\n }\n outgoing.end(payload.body);\n }\n });\n\n if (options.onUpgrade !== undefined) {\n server.on(\"upgrade\", options.onUpgrade);\n }\n\n await new Promise<void>((resolve) =>\n server.listen(options.port, options.hostname ?? \"127.0.0.1\", resolve),\n );\n const address = server.address();\n const port = typeof address === \"object\" && address !== null ? address.port : options.port;\n\n return {\n server,\n url: `http://${options.hostname ?? \"127.0.0.1\"}:${port}`,\n close: () =>\n new Promise<void>((resolve, reject) =>\n server.close((error) => (error ? reject(error) : resolve())),\n ),\n };\n}\n\nasync function readBuiltClientAsset(outDir: string, pathname: string): Promise<Response> {\n const clientPrefix = \"/_mreact/client/\";\n const relativePath = pathname.slice(clientPrefix.length);\n const normalized = normalize(relativePath);\n\n if (normalized.startsWith(\"..\")) {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n try {\n const code = await readFile(join(outDir, \"client\", normalized), \"utf8\");\n\n return new Response(code, {\n headers: clientAssetHeaders(normalized),\n });\n } catch {\n return new Response(\"Not Found\", { status: 404 });\n }\n}\n\nasync function readBuiltPublicAsset(\n outDir: string,\n pathname: string,\n): Promise<Response | undefined> {\n const relativePath = pathname.startsWith(\"/\") ? pathname.slice(1) : pathname;\n\n if (relativePath === \"\") {\n return undefined;\n }\n\n const normalized = normalize(relativePath);\n\n if (isAbsolute(normalized) || normalized === \"..\" || normalized.startsWith(\"../\")) {\n return undefined;\n }\n\n try {\n const cacheKey = `${outDir}\\0${normalized}`;\n const cached = builtPublicAssetCache.get(cacheKey);\n\n if (cached === null) {\n return undefined;\n }\n\n if (cached !== undefined) {\n return bytesResponse(cached.bytes, {\n headers: cached.headers,\n });\n }\n\n const bytes = await readFile(join(outDir, \"client\", \"public\", normalized));\n const headers = publicAssetHeaders(normalized);\n\n builtPublicAssetCache.set(cacheKey, {\n bytes,\n headers,\n });\n\n return bytesResponse(bytes, { headers });\n } catch {\n builtPublicAssetCache.set(`${outDir}\\0${normalized}`, null);\n return undefined;\n }\n}\n\nasync function readBuiltRuntime(options: {\n outDir: string;\n runtimeDir?: string | undefined;\n}): Promise<BuiltRuntime> {\n const outDir = options.outDir;\n const runtimeDir = options.runtimeDir ?? join(outDir, \"server\", \"runtime\");\n const [serverManifestText, clientManifestText] = await Promise.all([\n readFile(join(outDir, \"server\", \"manifest.json\"), \"utf8\"),\n readFile(join(outDir, \"client\", \"manifest.json\"), \"utf8\"),\n ]);\n const cacheKey = `${outDir}\\0${runtimeDir}`;\n const cached = builtRuntimeCache.get(cacheKey);\n\n if (\n cached !== undefined &&\n cached.serverManifestText === serverManifestText &&\n cached.clientManifestText === clientManifestText\n ) {\n return cached.runtime;\n }\n\n const runtime = materializeBuiltRuntime({\n clientManifestText,\n outDir,\n runtimeDir,\n serverManifestText,\n });\n\n builtRuntimeCache.set(cacheKey, {\n clientManifestText,\n runtime,\n serverManifestText,\n });\n\n return runtime;\n}\n\nasync function materializeBuiltRuntime(options: {\n clientManifestText: string;\n outDir: string;\n runtimeDir: string;\n serverManifestText: string;\n}): Promise<BuiltRuntime> {\n const serverManifest = JSON.parse(options.serverManifestText) as BuiltServerManifest;\n const clientManifest = JSON.parse(options.clientManifestText) as {\n routes: ClientRouteManifestEntry[];\n };\n const appDir = await materializeBuiltServerApp(options.runtimeDir, serverManifest);\n const projectRoot = appDir;\n const routesDir = join(projectRoot, serverManifest.routesDir ?? \"\");\n const routes = serverManifest.routes.map((route) => ({\n ...route,\n file: join(projectRoot, route.file),\n }));\n const prerenderedRoutes = new Map(Object.entries(serverManifest.prerenderedRoutes ?? {}));\n const prerenderableRoutes = new Set(prerenderedRoutes.keys());\n const prerenderLocks = new Map<string, Promise<Response>>();\n const serverModules = new Map<string, BuiltServerModuleArtifact>(\n Object.entries(serverManifest.serverModules ?? {}).map(([file, artifact]) => [\n join(appDir, file),\n artifact,\n ]),\n );\n const serverModuleFiles = new Map(\n Object.entries(serverManifest.serverModuleFiles ?? {}).map(([file, artifactFile]) => [\n join(appDir, file),\n join(options.outDir, \"server\", safeManifestFilePath(artifactFile)),\n ]),\n );\n const serverModuleRequestFiles = new Map(\n Object.entries(serverManifest.serverModuleRequestFiles ?? {}).map(([file, artifactFile]) => [\n join(appDir, file),\n join(options.outDir, \"server\", safeManifestFilePath(artifactFile)),\n ]),\n );\n const serverModuleRenderFiles = new Map(\n Object.entries(serverManifest.serverModuleRenderFiles ?? {}).map(([file, artifactFile]) => [\n join(appDir, file),\n join(options.outDir, \"server\", safeManifestFilePath(artifactFile)),\n ]),\n );\n const serverSourceFiles = new Map(\n Object.entries(serverManifest.files).map(([file, source]) => [join(appDir, file), source]),\n );\n const routeMatcher = createRouteMatcher(routes);\n const clientScripts = new Map(\n clientManifest.routes.flatMap((route) =>\n route.client && route.script !== undefined ? [[route.path, route.script]] : [],\n ),\n );\n const clientStyles = new Map(\n clientManifest.routes.flatMap((route) =>\n route.css !== undefined && route.css.length > 0 ? [[route.path, route.css]] : [],\n ),\n );\n const navigationScripts = new Map(\n clientManifest.routes.flatMap((route) =>\n route.navigation === true && route.navigationScript !== undefined\n ? [[route.path, route.navigationScript]]\n : [],\n ),\n );\n const hasMiddleware =\n serverSourceFiles.has(join(routesDir, \"middleware.ts\")) ||\n serverSourceFiles.has(join(routesDir, \"middleware.mreact.ts\"));\n const serverModuleCacheVersion = createHash(\"sha256\")\n .update(options.serverManifestText)\n .update(\"\\0\")\n .update(options.clientManifestText)\n .digest(\"hex\")\n .slice(0, 16);\n\n const allowedSourceDirs = (serverManifest.allowedSourceDirs ?? [\"\"]).map((directory) =>\n join(projectRoot, directory),\n );\n\n return {\n appDir: routesDir,\n allowedSourceDirs,\n ...(serverManifest.assetBaseUrl === undefined\n ? {}\n : { assetBaseUrl: serverManifest.assetBaseUrl }),\n clientScripts,\n clientStyles,\n hasMiddleware,\n navigationScripts,\n projectRoot,\n ...(serverManifest.publicAssetBaseUrl === undefined\n ? {}\n : { publicAssetBaseUrl: serverManifest.publicAssetBaseUrl }),\n prerenderableRoutes,\n prerenderLocks,\n prerenderedRoutes,\n routeMatcher,\n routes,\n ...(serverManifest.serverActionManifest === undefined\n ? {}\n : { serverActionManifest: serverManifest.serverActionManifest }),\n serverModuleArtifactLoads: new Map(),\n serverModuleFiles,\n serverModuleRenderFiles,\n serverModuleRequestFiles,\n serverModules,\n serverModuleCacheVersion,\n serverSourceFiles,\n };\n}\n\nasync function loadBuiltServerModuleArtifacts(\n runtime: BuiltRuntime,\n files: Iterable<string>,\n kind: BuiltServerModuleArtifactKind = \"all\",\n): Promise<void> {\n for (const file of files) {\n await loadBuiltServerModuleArtifact(runtime, file, kind);\n }\n}\n\ntype BuiltServerModuleArtifactKind = \"all\" | \"render\" | \"request\";\n\nasync function loadBuiltServerModuleArtifact(\n runtime: BuiltRuntime,\n file: string,\n kind: BuiltServerModuleArtifactKind = \"all\",\n): Promise<void> {\n if (kind === \"all\") {\n await loadBuiltServerModuleArtifact(runtime, file, \"request\");\n await loadBuiltServerModuleArtifact(runtime, file, \"render\");\n return;\n }\n\n const artifactPath =\n kind === \"request\"\n ? runtime.serverModuleRequestFiles.get(file) ?? runtime.serverModuleFiles.get(file)\n : runtime.serverModuleRenderFiles.get(file) ?? runtime.serverModuleFiles.get(file);\n\n if (artifactPath === undefined) {\n return;\n }\n\n const cached = runtime.serverModuleArtifactLoads.get(`${kind}\\0${file}`);\n\n if (cached !== undefined) {\n await cached;\n return;\n }\n\n const loaded = readFile(artifactPath, \"utf8\")\n .then((text) => {\n const existing = runtime.serverModules.get(file) ?? {};\n runtime.serverModules.set(\n file,\n mergeBuiltServerModuleArtifacts(\n existing,\n hydrateBuiltServerModuleArtifact(\n JSON.parse(text) as BuiltServerModuleArtifact,\n builtServerDirForArtifactPath(artifactPath),\n ),\n ),\n );\n })\n .catch((error) => {\n runtime.serverModuleArtifactLoads.delete(`${kind}\\0${file}`);\n throw error;\n });\n runtime.serverModuleArtifactLoads.set(`${kind}\\0${file}`, loaded);\n\n await loaded;\n}\n\nfunction allBuiltServerModuleFiles(runtime: BuiltRuntime): Iterable<string> {\n return new Set([\n ...runtime.serverModuleFiles.keys(),\n ...runtime.serverModuleRequestFiles.keys(),\n ...runtime.serverModuleRenderFiles.keys(),\n ]);\n}\n\nfunction builtServerDirForArtifactPath(artifactPath: string): string {\n const marker = `${sep}server-modules${sep}`;\n const index = artifactPath.lastIndexOf(marker);\n\n return index === -1 ? dirname(dirname(artifactPath)) : artifactPath.slice(0, index);\n}\n\nfunction hydrateBuiltServerModuleArtifact(\n artifact: BuiltServerModuleArtifact,\n serverDir: string,\n): BuiltServerModuleArtifact {\n return {\n ...(artifact.analysis === undefined ? {} : { analysis: artifact.analysis }),\n ...(artifact.loader === undefined\n ? {}\n : { loader: hydrateBuiltServerModuleOutput(artifact.loader, serverDir) }),\n ...(artifact.routeMetadata === undefined\n ? {}\n : { routeMetadata: hydrateBuiltServerModuleOutput(artifact.routeMetadata, serverDir) }),\n ...(artifact.request === undefined\n ? {}\n : { request: hydrateBuiltServerModuleOutput(artifact.request, serverDir) }),\n ...(artifact.stream === undefined\n ? {}\n : { stream: hydrateBuiltServerModuleOutput(artifact.stream, serverDir) }),\n ...(artifact.string === undefined\n ? {}\n : { string: hydrateBuiltServerModuleOutput(artifact.string, serverDir) }),\n };\n}\n\nfunction hydrateBuiltServerModuleOutput<T extends { moduleFile?: string | undefined }>(\n output: T,\n serverDir: string,\n): T {\n if (output.moduleFile === undefined || isAbsolute(output.moduleFile)) {\n return output;\n }\n\n return {\n ...output,\n moduleFile: join(serverDir, safeManifestFilePath(output.moduleFile)),\n };\n}\n\nfunction mergeBuiltServerModuleArtifacts(\n existing: BuiltServerModuleArtifact,\n loaded: BuiltServerModuleArtifact,\n): BuiltServerModuleArtifact {\n return {\n ...existing,\n ...loaded,\n };\n}\n\nasync function loadBuiltServerModuleArtifactsForRequest(\n runtime: BuiltRuntime,\n routeFile: string | undefined,\n options: {\n includeRender?: boolean | undefined;\n includeShells?: boolean | undefined;\n } = {},\n): Promise<void> {\n const roots = [\n join(runtime.appDir, \"middleware.ts\"),\n join(runtime.appDir, \"middleware.mreact.ts\"),\n ...(routeFile === undefined\n ? []\n : [\n routeFile,\n ...(options.includeShells === false ? [] : shellFilesForRoute(runtime, routeFile)),\n ]),\n ];\n const seen = new Set<string>();\n\n for (const file of roots) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"request\");\n }\n\n if (options.includeRender === true) {\n seen.clear();\n for (const file of roots) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"render\");\n }\n }\n}\n\nasync function loadBuiltServerModuleArtifactClosure(\n runtime: BuiltRuntime,\n file: string,\n seen: Set<string>,\n kind: BuiltServerModuleArtifactKind,\n): Promise<void> {\n if (seen.has(file)) {\n return;\n }\n seen.add(file);\n\n await loadBuiltServerModuleArtifact(runtime, file, kind);\n\n const source = runtime.serverSourceFiles.get(file);\n\n if (source === undefined) {\n return;\n }\n\n for (const specifier of localServerModuleSpecifiers(source)) {\n const resolved = resolveBuiltLocalServerSourceImport(runtime, file, specifier);\n\n if (resolved !== undefined) {\n await loadBuiltServerModuleArtifactClosure(runtime, resolved, seen, kind);\n }\n }\n}\n\nfunction localServerModuleSpecifiers(code: string): string[] {\n const specifiers = new Set<string>();\n const importPattern =\n /\\b(?:import|export)\\s+(?:type\\s+)?(?:[^\"']*?\\s+from\\s*)?[\"'](?<source>\\.{1,2}\\/[^\"']+)[\"']/g;\n\n for (const match of code.matchAll(importPattern)) {\n const source = match.groups?.source;\n\n if (source !== undefined) {\n specifiers.add(source);\n }\n }\n\n return Array.from(specifiers);\n}\n\nfunction resolveBuiltLocalServerSourceImport(\n runtime: BuiltRuntime,\n fromFile: string,\n specifier: string,\n): string | undefined {\n const base = join(dirname(fromFile), specifier);\n\n for (const candidate of localServerSourceImportCandidates(base)) {\n if (runtime.serverSourceFiles.has(candidate)) {\n return candidate;\n }\n }\n\n return undefined;\n}\n\nfunction localServerSourceImportCandidates(base: string): string[] {\n const candidates = [base];\n\n if (base.endsWith(\".js\")) {\n const withoutJs = base.slice(0, -\".js\".length);\n candidates.push(`${withoutJs}.ts`, `${withoutJs}.tsx`, `${withoutJs}.mreact.tsx`);\n } else if (base.endsWith(\".jsx\")) {\n const withoutJsx = base.slice(0, -\".jsx\".length);\n candidates.push(`${withoutJsx}.tsx`, `${withoutJsx}.mreact.tsx`);\n } else if (base.endsWith(\".mreact\")) {\n candidates.push(`${base}.tsx`);\n } else {\n candidates.push(\n `${base}.ts`,\n `${base}.tsx`,\n `${base}.mreact.tsx`,\n join(base, \"index.ts\"),\n join(base, \"index.tsx\"),\n join(base, \"index.mreact.tsx\"),\n );\n }\n\n return candidates;\n}\n\nfunction shellFilesForRoute(runtime: BuiltRuntime, routeFile: string): string[] {\n return routeShellCandidates(runtime.appDir, routeFile)\n .map((candidate) => candidate.file)\n .filter((file) => runtime.serverSourceFiles.has(file));\n}\n\nasync function readPrerenderedRoute(\n runtime: BuiltRuntime,\n path: string,\n store: AppRouterPrerenderStore | undefined,\n): Promise<BuiltPrerenderedRoute | undefined> {\n const stored = await store?.get(path);\n\n if (stored !== undefined) {\n runtime.prerenderedRoutes.set(path, stored);\n return stored;\n }\n\n const manifestEntry = runtime.prerenderedRoutes.get(path);\n\n if (manifestEntry !== undefined && store !== undefined) {\n await store.set(path, manifestEntry);\n }\n\n return manifestEntry;\n}\n\nfunction renderBuiltDynamicResponse(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n): Promise<Response> {\n return renderAppRequest(builtRenderAppRequestOptions(options));\n}\n\nfunction builtRenderAppRequestOptions(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n): RenderAppRequestOptions {\n const renderOptions: RenderAppRequestOptions & {\n __mreactLoadServerRenderArtifacts?: ((routeFile: string) => Promise<void>) | undefined;\n } = {\n appDir: options.runtime.appDir,\n assetBaseUrl: options.runtime.assetBaseUrl,\n clientScripts: options.runtime.clientScripts,\n clientStyles: options.runtime.clientStyles,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n request: options.request,\n instrumentation: options.instrumentation,\n logger: options.logger,\n navigationScripts: options.runtime.navigationScripts,\n routeCache: options.routeCache,\n routeMatcher: options.runtime.routeMatcher,\n routes: options.runtime.routes,\n __mreactLoadServerRenderArtifacts: async (routeFile: string) => {\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, routeFile, {\n includeRender: true,\n });\n },\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n serverActions: mergeBuiltServerActionOptions(\n options.serverActions,\n options.runtime.serverActionManifest,\n ),\n skipMiddleware: true,\n ...(options.preload === undefined ? {} : { preload: options.preload }),\n };\n\n return renderOptions;\n}\n\nfunction mergeBuiltServerActionOptions(\n options: AppRouterServerActionOptions | undefined,\n allowedActions: readonly { moduleId: string; exportName: string; inferred?: boolean }[] | undefined,\n): AppRouterServerActionOptions | undefined {\n if (allowedActions === undefined) {\n return options;\n }\n\n return {\n ...options,\n allowedActions,\n };\n}\n\nasync function renderAndCachePrerenderWithLock(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n path: string,\n): Promise<Response> {\n const existing = options.runtime.prerenderLocks.get(path);\n\n if (existing !== undefined) {\n return cloneResponse(await existing);\n }\n\n const task = runPrerenderRegeneration(options, path);\n options.runtime.prerenderLocks.set(path, task);\n\n try {\n return cloneResponse(await task);\n } finally {\n options.runtime.prerenderLocks.delete(path);\n }\n}\n\nasync function runPrerenderRegeneration(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n path: string,\n): Promise<Response> {\n const regenerate = async () => {\n const stored = await readPrerenderedRoute(options.runtime, path, options.prerenderStore);\n\n if (stored !== undefined) {\n return htmlResponse(stored.html, {\n headers: stored.headers,\n status: stored.status,\n });\n }\n\n const response = await renderBuiltDynamicResponse(options);\n\n return response.ok\n ? await cacheRegeneratedPrerenderedRoute(\n options.runtime,\n path,\n response,\n options.prerenderStore,\n )\n : response;\n };\n\n return options.prerenderStore?.withLock === undefined\n ? await regenerate()\n : await options.prerenderStore.withLock(path, regenerate);\n}\n\nasync function applyBuiltPrerenderInvalidations(\n runtime: BuiltRuntime,\n response: Response,\n store: AppRouterPrerenderStore | undefined,\n): Promise<void> {\n const revalidated = response.headers.get(\"x-mreact-revalidate\");\n\n if (revalidated === null) {\n return;\n }\n\n for (const path of revalidated.split(\",\")) {\n const normalized = normalizeRoutePath(path.trim());\n runtime.prerenderedRoutes.delete(normalized);\n await store?.delete(normalized);\n }\n}\n\nasync function cacheRegeneratedPrerenderedRoute(\n runtime: BuiltRuntime,\n path: string,\n response: Response,\n store: AppRouterPrerenderStore | undefined,\n): Promise<Response> {\n const body = await response.text();\n const headers: Record<string, string> = {};\n\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n const entry = {\n headers,\n html: body,\n status: response.status,\n };\n runtime.prerenderedRoutes.set(path, entry);\n await store?.set(path, entry);\n\n return htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n });\n}\n\nasync function cloneResponse(response: Response): Promise<Response> {\n return htmlResponse(await response.clone().text(), {\n headers: response.headers,\n status: response.status,\n });\n}\n\nasync function materializeBuiltServerApp(\n runtimeDir: string,\n manifest: BuiltServerManifest,\n): Promise<string> {\n const appDir = join(runtimeDir, \"app\");\n\n await rm(appDir, { force: true, recursive: true });\n await Promise.all(\n Object.entries(manifest.files).map(async ([file, code]) => {\n const outputFile = join(appDir, safeManifestFilePath(file));\n\n await mkdir(dirname(outputFile), { recursive: true });\n await writeFile(outputFile, code);\n }),\n );\n\n return appDir;\n}\n\nfunction safeManifestFilePath(pathname: string): string {\n const normalized = normalize(pathname);\n\n if (isAbsolute(normalized) || normalized === \"..\" || normalized.startsWith(\"../\")) {\n throw new Error(`Invalid built app manifest file path: ${pathname}`);\n }\n\n return normalized;\n}\n\nfunction clientAssetHeaders(pathname: string): HeadersInit {\n if (pathname === \"manifest.json\") {\n return {\n \"cache-control\": \"no-cache\",\n \"content-type\": \"application/json; charset=utf-8\",\n };\n }\n\n return {\n \"cache-control\": \"public, max-age=31536000, immutable\",\n \"content-type\": pathname.endsWith(\".css\")\n ? \"text/css; charset=utf-8\"\n : \"text/javascript; charset=utf-8\",\n };\n}\n\nfunction publicAssetHeaders(pathname: string): HeadersInit {\n return {\n \"cache-control\": \"public, max-age=3600\",\n \"content-type\": publicAssetContentType(pathname),\n };\n}\n\nfunction publicAssetContentType(pathname: string): string {\n if (pathname.endsWith(\".css\")) return \"text/css; charset=utf-8\";\n if (pathname.endsWith(\".html\")) return \"text/html; charset=utf-8\";\n if (pathname.endsWith(\".js\")) return \"text/javascript; charset=utf-8\";\n if (pathname.endsWith(\".json\")) return \"application/json; charset=utf-8\";\n if (pathname.endsWith(\".svg\")) return \"image/svg+xml\";\n if (pathname.endsWith(\".png\")) return \"image/png\";\n if (pathname.endsWith(\".jpg\") || pathname.endsWith(\".jpeg\")) return \"image/jpeg\";\n if (pathname.endsWith(\".webp\")) return \"image/webp\";\n if (pathname.endsWith(\".ico\")) return \"image/x-icon\";\n if (pathname.endsWith(\".txt\")) return \"text/plain; charset=utf-8\";\n\n return \"application/octet-stream\";\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA6B1E,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAEpD,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AACnE,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAgC,EAAE;IAC9D,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;IAElC,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,OAAO,CAAC,aAAa,IAAI,uBAAuB;QACxD,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG;QAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU;KAC5B,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CACpB,OAAgB,EAChB,UAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,iBAAiB,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAEjC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAqC,EAAE;IAEvC,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,2BAA2B,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;IACxD,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,SAAS,YAAY,CAAC,GAAW;QAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,WAAW,GAAG,GAAG,GAAG,eAAe,CAAC;IACtC,CAAC;IAED,SAAS,iBAAiB,CAAC,GAAW;QACpC,IAAI,eAAe,KAAK,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;YAChD,YAAY,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,SAAS,kBAAkB;QACzB,OAAO,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAE7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,GAAG,CAAC,EAAE;YACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;gBACpD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1B,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,GAAG,CAAC,MAAM;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAEvB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAE/B,IAAI,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;gBAC9B,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,kBAAkB,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAyB,EAAE,QAAgB;IAC3E,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAyB,EAAE,QAAgB;IAC9E,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAgB,EAChB,KAA0B,EAC1B,UAAgC,EAAE;IAElC,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAkB,EAClB,KAA0B,EAC1B,IAAW,EACX,UAAgC,EAAE;IAElC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACvE,MAAM,MAAM,GAAyB;QACnC,SAAS,EAAE,GAAG;QACd,IAAI;QACJ,SAAS,EAAE,GAAG,GAAG,aAAa,GAAG,IAAI;QACrC,EAAE,EAAE,eAAe,EAAE;KACtB,CAAC;IAEF,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,IAAI,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;QACxE,GAAG,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,QAAkB,EAClB,KAA0B,EAC1B,UAAgC,EAAE;IAElC,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,IAAI,iBAAiB,EAAE,EAAE;QAChE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG;QAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE;KACzC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgB,EAChB,QAAkB,EAClB,KAA0B,EAC1B,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE1D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEzE,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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","sourcesContent":["import { deleteCookie, parseCookieHeader, setCookie } from \"./cookies.js\";\n\nexport interface SessionRecord<TData = unknown> {\n createdAt: number;\n data: TData;\n expiresAt: number;\n id: string;\n rotatedAt?: number;\n}\n\nexport interface SessionStore<TData = unknown> {\n delete(id: string): void | Promise<void>;\n get(id: string): SessionRecord<TData> | undefined | Promise<SessionRecord<TData> | undefined>;\n set(record: SessionRecord<TData>): void | Promise<void>;\n}\n\nexport interface MemorySessionStoreOptions {\n maxEntries?: number;\n sweepIntervalMs?: number;\n}\n\nexport interface SessionCookieOptions {\n cookieName?: string;\n maxAgeSeconds?: number;\n path?: string;\n sameSite?: \"Strict\" | \"Lax\" | \"None\";\n secure?: boolean;\n}\n\nconst DEFAULT_MAX_AGE_SECONDS = 7 * 24 * 60 * 60;\nconst SESSION_COOKIE_DEV = \"mreact.session\";\nconst SESSION_COOKIE_PROD = \"__Host-mreact.session\";\n\nfunction isProduction(): boolean {\n return process.env.NODE_ENV === \"production\";\n}\n\nfunction defaultCookieName(): string {\n return isProduction() ? SESSION_COOKIE_PROD : SESSION_COOKIE_DEV;\n}\n\nfunction sessionCookieOptions(options: SessionCookieOptions = {}) {\n const production = isProduction();\n\n return {\n httpOnly: true,\n maxAge: options.maxAgeSeconds ?? DEFAULT_MAX_AGE_SECONDS,\n path: production ? \"/\" : options.path ?? \"/\",\n sameSite: options.sameSite ?? \"Lax\",\n secure: options.secure ?? production,\n } as const;\n}\n\nfunction readSessionId(\n request: Request,\n options: SessionCookieOptions = {},\n): string | undefined {\n const values = parseCookieHeader(request.headers.get(\"cookie\"));\n return values.get(options.cookieName ?? defaultCookieName());\n}\n\nfunction createSessionId(): string {\n const bytes = new Uint8Array(32);\n\n globalThis.crypto.getRandomValues(bytes);\n\n let binary = \"\";\n for (const byte of bytes) {\n binary += String.fromCharCode(byte);\n }\n\n return btoa(binary).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\nexport function createMemorySessionStore<TData>(\n options: MemorySessionStoreOptions = {},\n): SessionStore<TData> {\n const maxEntries = positiveIntegerOrDefault(options.maxEntries, 100_000);\n const sweepIntervalMs = nonNegativeIntegerOrDefault(options.sweepIntervalMs, 60_000);\n const records = new Map<string, SessionRecord<TData>>();\n let nextSweepAt = 0;\n\n function sweepExpired(now: number): void {\n for (const [id, value] of records) {\n if (value.expiresAt <= now) {\n records.delete(id);\n }\n }\n\n nextSweepAt = now + sweepIntervalMs;\n }\n\n function maybeSweepExpired(now: number): void {\n if (sweepIntervalMs === 0 || now >= nextSweepAt) {\n sweepExpired(now);\n }\n }\n\n function evictOldestEntries(): void {\n while (records.size > maxEntries) {\n const oldestId = records.keys().next().value;\n\n if (oldestId === undefined) {\n return;\n }\n\n records.delete(oldestId);\n }\n }\n\n return {\n delete(id) {\n records.delete(id);\n },\n get(id) {\n const now = Date.now();\n maybeSweepExpired(now);\n const record = records.get(id);\n\n if (record !== undefined && record.expiresAt <= now) {\n records.delete(id);\n return undefined;\n }\n\n if (record !== undefined) {\n records.delete(id);\n records.set(id, record);\n }\n\n return record;\n },\n set(record) {\n const now = Date.now();\n maybeSweepExpired(now);\n\n records.delete(record.id);\n records.set(record.id, record);\n\n if (records.size > maxEntries) {\n sweepExpired(now);\n evictOldestEntries();\n }\n },\n };\n}\n\nfunction positiveIntegerOrDefault(value: number | undefined, fallback: number): number {\n return value === undefined || !Number.isInteger(value) || value < 1 ? fallback : value;\n}\n\nfunction nonNegativeIntegerOrDefault(value: number | undefined, fallback: number): number {\n return value === undefined || !Number.isInteger(value) || value < 0 ? fallback : value;\n}\n\nexport async function getSession<TData>(\n request: Request,\n store: SessionStore<TData>,\n options: SessionCookieOptions = {},\n): Promise<SessionRecord<TData> | undefined> {\n const id = readSessionId(request, options);\n\n if (id === undefined || id.length === 0) {\n return undefined;\n }\n\n const record = await store.get(id);\n\n if (record === undefined) {\n return undefined;\n }\n\n if (record.expiresAt <= Date.now()) {\n await store.delete(id);\n return undefined;\n }\n\n return record;\n}\n\nexport async function createSession<TData>(\n response: Response,\n store: SessionStore<TData>,\n data: TData,\n options: SessionCookieOptions = {},\n): Promise<SessionRecord<TData>> {\n const now = Date.now();\n const maxAgeSeconds = options.maxAgeSeconds ?? DEFAULT_MAX_AGE_SECONDS;\n const record: SessionRecord<TData> = {\n createdAt: now,\n data,\n expiresAt: now + maxAgeSeconds * 1000,\n id: createSessionId(),\n };\n\n await store.set(record);\n setCookie(response, options.cookieName ?? defaultCookieName(), record.id, {\n ...sessionCookieOptions({ ...options, maxAgeSeconds }),\n });\n\n return record;\n}\n\nexport async function destroySession<TData>(\n request: Request,\n response: Response,\n store: SessionStore<TData>,\n options: SessionCookieOptions = {},\n): Promise<void> {\n const id = readSessionId(request, options);\n\n if (id !== undefined) {\n await store.delete(id);\n }\n\n deleteCookie(response, options.cookieName ?? defaultCookieName(), {\n path: isProduction() ? \"/\" : options.path ?? \"/\",\n sameSite: options.sameSite ?? \"Lax\",\n secure: options.secure ?? isProduction(),\n });\n}\n\nexport async function rotateSession<TData>(\n request: Request,\n response: Response,\n store: SessionStore<TData>,\n options: SessionCookieOptions = {},\n): Promise<SessionRecord<TData> | undefined> {\n const current = await getSession(request, store, options);\n\n if (current === undefined) {\n return undefined;\n }\n\n await store.delete(current.id);\n const next = await createSession(response, store, current.data, options);\n\n return { ...next, rotatedAt: Date.now() };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"source-jsx.js","sourceRoot":"","sources":["../src/source-jsx.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,IACE,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,MAAM,CAAC,IAAI,KAAK,aAAa;QAC7B,MAAM,CAAC,IAAI,KAAK,wBAAwB,EACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"source-jsx.js","sourceRoot":"","sources":["../src/source-jsx.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,IACE,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,MAAM,CAAC,IAAI,KAAK,aAAa;QAC7B,MAAM,CAAC,IAAI,KAAK,wBAAwB,EACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["export function hasJsxSyntax(node: unknown): boolean {\n if (Array.isArray(node)) {\n return node.some(hasJsxSyntax);\n }\n\n if (node === null || typeof node !== \"object\") {\n return false;\n }\n\n const object = node as Record<string, unknown>;\n if (\n object.type === \"JSXElement\" ||\n object.type === \"JSXFragment\" ||\n object.type === \"JSXExpressionContainer\"\n ) {\n return true;\n }\n\n for (const [key, value] of Object.entries(object)) {\n if (key === \"type\" || key === \"start\" || key === \"end\" || key === \"loc\") {\n continue;\n }\n\n if (hasJsxSyntax(value)) {\n return true;\n }\n }\n\n return false;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"source-modules.js","sourceRoot":"","sources":["../src/source-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,GAAG,IAAI,KAAK;YACZ,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,KAAK;YACZ,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;SACd,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,GAAG,IAAI,KAAK;QACZ,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,aAAa;QACpB,GAAG,IAAI,KAAK;QACZ,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,OAAO,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAY;IACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"source-modules.js","sourceRoot":"","sources":["../src/source-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,GAAG,IAAI,KAAK;YACZ,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,KAAK;YACZ,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;YACb,GAAG,IAAI,MAAM;SACd,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,GAAG,IAAI,KAAK;QACZ,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,aAAa;QACpB,GAAG,IAAI,KAAK;QACZ,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,GAAG,IAAI,MAAM;QACb,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,OAAO,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAY;IACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["import { extname, join } from \"node:path\";\n\nexport function sourceModuleCandidates(base: string): string[] {\n if (hasSourceModuleExtension(base)) {\n return [base, ...typescriptSourceModuleCandidates(base)];\n }\n\n if (/\\.(?:client|compat)$/.test(base)) {\n return [\n `${base}.ts`,\n `${base}.tsx`,\n `${base}.js`,\n `${base}.jsx`,\n `${base}.mjs`,\n `${base}.mts`,\n `${base}.cjs`,\n `${base}.cts`,\n ];\n }\n\n if (extname(base) !== \"\") {\n return [];\n }\n\n return [\n `${base}.ts`,\n `${base}.tsx`,\n `${base}.mreact.tsx`,\n `${base}.js`,\n `${base}.jsx`,\n `${base}.mjs`,\n `${base}.mts`,\n `${base}.cjs`,\n `${base}.cts`,\n join(base, \"index.ts\"),\n join(base, \"index.tsx\"),\n join(base, \"index.mreact.tsx\"),\n join(base, \"index.js\"),\n join(base, \"index.jsx\"),\n join(base, \"index.mjs\"),\n join(base, \"index.mts\"),\n join(base, \"index.cjs\"),\n join(base, \"index.cts\"),\n ];\n}\n\nfunction hasSourceModuleExtension(path: string): boolean {\n return /\\.(?:mreact\\.tsx|tsx?|jsx?|mjs|mts|cjs|cts)$/.test(path);\n}\n\nfunction typescriptSourceModuleCandidates(path: string): string[] {\n if (path.endsWith(\".js\")) {\n return [`${path.slice(0, -3)}.ts`, `${path.slice(0, -3)}.tsx`];\n }\n\n if (path.endsWith(\".jsx\")) {\n return [`${path.slice(0, -4)}.tsx`];\n }\n\n if (path.endsWith(\".mjs\")) {\n return [`${path.slice(0, -4)}.mts`];\n }\n\n if (path.endsWith(\".cjs\")) {\n return [`${path.slice(0, -4)}.cts`];\n }\n\n return [];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stream-list.js","sourceRoot":"","sources":["../src/stream-list.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,UAAU,CACxB,KAAwB,EACxB,OAAyC;IAEzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAyC,EAAE,CAAC;IAEzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,IAAI;YACP,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5E,GAAG,IAAI;gBACP,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;aACnB,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"stream-list.js","sourceRoot":"","sources":["../src/stream-list.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,UAAU,CACxB,KAAwB,EACxB,OAAyC;IAEzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAyC,EAAE,CAAC;IAEzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,IAAI;YACP,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5E,GAAG,IAAI;gBACP,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;aACnB,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["export interface StreamListBatch<TItem> {\n index: number;\n items: TItem[];\n size: number;\n start: number;\n}\n\nexport interface StreamListPendingBatch<TItem> {\n index: number;\n size: number;\n start: number;\n value: Promise<StreamListBatch<TItem>>;\n}\n\nexport interface StreamListOptions<TInput, TItem> {\n batchSize: number;\n loadBatch: (\n items: readonly TInput[],\n batch: { index: number; size: number; start: number },\n ) => PromiseLike<readonly TItem[]> | readonly TItem[];\n}\n\nexport function streamList<TInput, TItem = TInput>(\n items: readonly TInput[],\n options: StreamListOptions<TInput, TItem>,\n): Array<StreamListPendingBatch<TItem>> {\n const requestedBatchSize = Math.floor(options.batchSize);\n const batchSize = Number.isFinite(requestedBatchSize) ? Math.max(1, requestedBatchSize) : 1;\n const batches: Array<StreamListPendingBatch<TItem>> = [];\n\n for (let start = 0; start < items.length; start += batchSize) {\n const batchItems = items.slice(start, start + batchSize);\n const index = batches.length;\n const meta = { index, size: batchItems.length, start };\n batches.push({\n ...meta,\n value: Promise.resolve(options.loadBatch(batchItems, meta)).then((loaded) => ({\n ...meta,\n items: [...loaded],\n })),\n });\n }\n\n return batches;\n}\n"]}
package/dist/trace.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAkDA,MAAM,UAAU,iBAAiB,CAC/B,WAAsC,EACtC,UAAqC;IAErC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,8DAA8D,CAAC,IAAI,CAC/E,WAAW,CACZ,CAAC;IAEF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,YAAY;QACZ,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,OAAO;QACP,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QACtC,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAA8D,EAC9D,KAAY;IAEZ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAkDA,MAAM,UAAU,iBAAiB,CAC/B,WAAsC,EACtC,UAAqC;IAErC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,8DAA8D,CAAC,IAAI,CAC/E,WAAW,CACZ,CAAC;IAEF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,YAAY;QACZ,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,OAAO;QACP,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QACtC,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAA8D,EAC9D,KAAY;IAEZ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAClC,CAAC;AACJ,CAAC","sourcesContent":["export interface RouterTraceContext {\n parentSpanId: string;\n sampled: boolean;\n traceId: string;\n traceparent: string;\n tracestate?: string;\n}\n\nexport interface RouterRequestInstrumentationEvent {\n method: string;\n path: string;\n request: Request;\n trace?: RouterTraceContext;\n}\n\nexport interface RouterRequestEndInstrumentationEvent\n extends RouterRequestInstrumentationEvent {\n status: number;\n}\n\nexport interface RouterRouteInstrumentationEvent\n extends RouterRequestInstrumentationEvent {\n routeId: string;\n routePath: string;\n}\n\nexport interface RouterRouteEndInstrumentationEvent\n extends RouterRouteInstrumentationEvent {\n error?: unknown;\n}\n\nexport interface RouterMiddlewareInstrumentationEvent\n extends RouterRequestInstrumentationEvent {\n name: string;\n}\n\nexport interface RouterMiddlewareEndInstrumentationEvent\n extends RouterMiddlewareInstrumentationEvent {\n error?: unknown;\n}\n\nexport interface RouterInstrumentation {\n onLoaderEnd?: (event: RouterRouteEndInstrumentationEvent) => void | Promise<void>;\n onLoaderStart?: (event: RouterRouteInstrumentationEvent) => void | Promise<void>;\n onMiddlewareEnd?: (event: RouterMiddlewareEndInstrumentationEvent) => void | Promise<void>;\n onMiddlewareStart?: (event: RouterMiddlewareInstrumentationEvent) => void | Promise<void>;\n onRequestEnd?: (event: RouterRequestEndInstrumentationEvent) => void | Promise<void>;\n onRequestStart?: (event: RouterRequestInstrumentationEvent) => void | Promise<void>;\n}\n\nexport function parseTraceContext(\n traceparent: string | null | undefined,\n tracestate: string | null | undefined,\n): RouterTraceContext | undefined {\n if (traceparent === null || traceparent === undefined) {\n return undefined;\n }\n\n const match = /^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/i.exec(\n traceparent,\n );\n\n if (match === null) {\n return undefined;\n }\n\n const traceId = match[2]?.toLowerCase() ?? \"\";\n const parentSpanId = match[3]?.toLowerCase() ?? \"\";\n const flags = Number.parseInt(match[4] ?? \"00\", 16);\n\n if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId)) {\n return undefined;\n }\n\n return {\n parentSpanId,\n sampled: (flags & 1) === 1,\n traceId,\n traceparent: traceparent.toLowerCase(),\n ...(tracestate === null || tracestate === undefined ? {} : { tracestate }),\n };\n}\n\nexport function traceContextFromRequest(request: Request): RouterTraceContext | undefined {\n return parseTraceContext(request.headers.get(\"traceparent\"), request.headers.get(\"tracestate\"));\n}\n\nexport function invokeRouterInstrumentation<Event>(\n callback: ((event: Event) => void | Promise<void>) | undefined,\n event: Event,\n): void {\n if (callback === undefined) {\n return;\n }\n\n try {\n const result = callback(event);\n\n if (isPromiseLike(result)) {\n result.catch(() => {});\n }\n } catch {\n // Instrumentation is best-effort and must never affect request handling.\n }\n}\n\nfunction isPromiseLike(value: unknown): value is Promise<void> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"catch\" in value &&\n typeof value.catch === \"function\"\n );\n}\n"]}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ReactCompatNode } from \"@reckona/mreact-compat\";\nimport type { QueryClient } from \"@reckona/mreact-query\";\n\nexport type InferLoaderData<TLoader extends (...args: never[]) => unknown> = Awaited<\n ReturnType<TLoader>\n>;\n\nexport type RouteParams = Record<string, readonly string[] | string>;\n\nexport interface LoaderContext<TParams extends RouteParams = RouteParams> {\n params: TParams;\n queryClient: QueryClient;\n request: Request;\n}\n\nexport interface GenerateMetadataContext<\n TData = unknown,\n TParams extends RouteParams = RouteParams,\n> {\n data: TData;\n params: TParams;\n request: Request;\n}\n\nexport interface RouteHandlerContext<TParams extends RouteParams = RouteParams> {\n params: TParams;\n request: Request;\n}\n\nexport interface PageProps<TData = unknown, TParams extends RouteParams = RouteParams> {\n data: TData;\n params: TParams;\n request: Request;\n}\n\nexport interface LayoutProps<TParams extends RouteParams = RouteParams> {\n children: ReactCompatNode;\n params: TParams;\n request: Request;\n}\n\nexport type MReactNode = ReactCompatNode;\n\nexport type MetadataScalar = boolean | number | string;\n\nexport interface MetadataImage {\n alt?: MetadataScalar;\n height?: MetadataScalar;\n type?: MetadataScalar;\n url: MetadataScalar;\n width?: MetadataScalar;\n}\n\nexport interface RouteMetadata {\n alternates?: {\n canonical?: MetadataScalar;\n };\n csp?: {\n disable?: boolean;\n directives?: Record<string, readonly string[] | string>;\n nonce?: string;\n remove?: readonly string[];\n replace?: Record<string, readonly string[] | string>;\n };\n description?: MetadataScalar;\n head?: readonly RouteHeadDescriptor[];\n icons?: {\n apple?: MetadataScalar;\n icon?: MetadataScalar;\n };\n openGraph?: {\n description?: MetadataScalar;\n image?: MetadataImage | MetadataScalar;\n images?: readonly (MetadataImage | MetadataScalar)[];\n title?: MetadataScalar;\n };\n lang?: MetadataScalar;\n robots?:\n | string\n | {\n follow?: boolean;\n index?: boolean;\n };\n security?: RouteSecurityHeaders;\n themeColor?: MetadataScalar | MetadataThemeColor;\n title?: MetadataScalar;\n viewport?: MetadataScalar | MetadataViewport;\n}\n\nexport type MetadataViewport = Record<string, MetadataScalar | null | undefined>;\n\nexport interface MetadataThemeColor {\n color?: MetadataScalar;\n media?: MetadataScalar;\n}\n\nexport interface RouteHeadDescriptor {\n attrs?: Record<string, boolean | number | string | undefined>;\n content?: string;\n nonce?: boolean | string;\n tag: \"base\" | \"link\" | \"meta\" | \"script\" | \"style\";\n}\n\nexport interface RouteSecurityHeaders {\n contentTypeOptions?: \"nosniff\" | null | undefined;\n frameOptions?: \"DENY\" | \"SAMEORIGIN\" | null | undefined;\n hsts?: RouteStrictTransportSecurity | false | null | undefined;\n permissionsPolicy?: Record<string, readonly string[] | null | undefined> | null | undefined;\n referrerPolicy?: string | null | undefined;\n}\n\nexport interface RouteStrictTransportSecurity {\n includeSubDomains?: boolean | undefined;\n maxAge: number;\n preload?: boolean | undefined;\n}\n\nexport interface RobotsContext {\n baseUrl: string;\n host: string;\n request: Request;\n}\n\nexport interface RobotsManifest {\n host?: string | undefined;\n rules?: RobotsRule | readonly RobotsRule[] | undefined;\n sitemap?: string | readonly string[] | undefined;\n}\n\nexport interface RobotsRule {\n allow?: string | readonly string[] | undefined;\n disallow?: string | readonly string[] | undefined;\n userAgent: string | readonly string[];\n}\n\nexport interface SitemapContext {\n baseUrl: string;\n host: string;\n request: Request;\n}\n\nexport interface SitemapEntry {\n changeFrequency?: string | undefined;\n lastModified?: Date | string | number | undefined;\n priority?: number | undefined;\n url: string;\n}\n\nexport interface ManifestContext {\n baseUrl: string;\n host: string;\n request: Request;\n}\n\nexport type ManifestDescriptor = Record<string, unknown>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"","sourcesContent":["import type { IncomingMessage } from \"node:http\";\nimport type { Duplex } from \"node:stream\";\n\nexport type HttpUpgradeHandler = (\n request: IncomingMessage,\n socket: Duplex,\n head: Buffer,\n) => void;\n"]}