@wular/pnext 0.1.8 → 0.1.10

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 (74) hide show
  1. package/dist/server/_chunks/{aliases-pycbtjt1.js → aliases-s49gt0bb.js} +5 -5
  2. package/dist/server/_chunks/{analyze-4d9e00g9.js → analyze-c45xjea8.js} +8 -8
  3. package/dist/server/_chunks/{boot-bhemypxz.js → boot-exjk45ry.js} +8 -8
  4. package/dist/server/_chunks/{build-c991dv65.js → build-m49fem3j.js} +4 -4
  5. package/dist/server/_chunks/{build-kh5e3x48.js → build-ntq282xh.js} +82 -40
  6. package/dist/server/_chunks/{build-tier-0a96kmx3.js → build-tier-byqfyz34.js} +17 -17
  7. package/dist/server/_chunks/{config-27rj7830.js → config-1hdw96je.js} +2 -2
  8. package/dist/server/_chunks/{config-0tvz03a6.js → config-m2yaayer.js} +3 -3
  9. package/dist/server/_chunks/{create-9rvwshsp.js → create-k089tdt7.js} +3 -3
  10. package/dist/server/_chunks/{dev-ex9exynt.js → dev-kwp1t8b3.js} +2 -2
  11. package/dist/server/_chunks/{generate-myw9hef7.js → generate-ap2zs26g.js} +3 -3
  12. package/dist/server/_chunks/{index-x2m17v9c.js → index-0f5t5730.js} +16 -13
  13. package/dist/server/_chunks/{index-xh1nbk46.js → index-1q52cw31.js} +7 -7
  14. package/dist/server/_chunks/{index-nf3df4jy.js → index-1tmqkr6x.js} +3 -3
  15. package/dist/server/_chunks/index-1xrvw3zp.js +92 -0
  16. package/dist/server/_chunks/{index-yrjkqtfj.js → index-4g6amwtg.js} +2 -2
  17. package/dist/server/_chunks/{index-11xpbfej.js → index-4hspm5ez.js} +1 -1
  18. package/dist/server/_chunks/{index-qcrvt6er.js → index-56jw1658.js} +2 -2
  19. package/dist/server/_chunks/{index-d158y67j.js → index-6w807g31.js} +12 -4
  20. package/dist/server/_chunks/{index-29pq0kax.js → index-72wjyacg.js} +2 -2
  21. package/dist/server/_chunks/{index-3e075kny.js → index-81qnfmzz.js} +1 -1
  22. package/dist/server/_chunks/{index-3ycf5ckv.js → index-8hy8qskn.js} +3 -3
  23. package/dist/server/_chunks/{index-he6n2bvp.js → index-8y2yft9b.js} +1 -1
  24. package/dist/server/_chunks/{index-8ct7rqy3.js → index-a4asdd4j.js} +1 -1
  25. package/dist/server/_chunks/{index-1pzm1hdy.js → index-cqft8ae4.js} +7 -7
  26. package/dist/server/_chunks/{index-9hz3s0m8.js → index-dd4tb5vy.js} +1 -1
  27. package/dist/server/_chunks/{index-tq3b39a5.js → index-drfxdvvh.js} +4 -4
  28. package/dist/server/_chunks/{index-4da76t62.js → index-e63ma63t.js} +1 -1
  29. package/dist/server/_chunks/{index-rgj5mx84.js → index-ed6rwv1x.js} +1 -1
  30. package/dist/server/_chunks/{index-dgr390q7.js → index-f76517s5.js} +23 -23
  31. package/dist/server/_chunks/{index-b7j671dj.js → index-fdc7wz3a.js} +1 -1
  32. package/dist/server/_chunks/{index-0yjv5v47.js → index-g39z5s9d.js} +3 -3
  33. package/dist/server/_chunks/{index-cvr4z22m.js → index-hw5k2sgj.js} +1 -1
  34. package/dist/server/_chunks/{index-evhd413j.js → index-jh486fye.js} +1 -1
  35. package/dist/server/_chunks/{index-fjv96re1.js → index-mjvq5c7e.js} +8 -8
  36. package/dist/server/_chunks/{index-kdhxpwyq.js → index-mph0cmh9.js} +3 -3
  37. package/dist/server/_chunks/{index-gkndxkxf.js → index-nxg8k7cg.js} +2 -2
  38. package/dist/server/_chunks/{index-jn9rbhrx.js → index-p79ck9cd.js} +4 -4
  39. package/dist/server/_chunks/{index-hdbwtdv2.js → index-pshjr3qm.js} +1 -1
  40. package/dist/server/_chunks/{index-n629dy38.js → index-r1kzsnyp.js} +4 -4
  41. package/dist/server/_chunks/{index-cn86z041.js → index-ra6fsg5v.js} +1 -1
  42. package/dist/server/_chunks/{index-38xpdxwd.js → index-tgwt3kwf.js} +4 -4
  43. package/dist/server/_chunks/{index-71885zaq.js → index-x3cvacmf.js} +4 -4
  44. package/dist/server/_chunks/{index-j681c48a.js → index-zq077xjc.js} +1 -1
  45. package/dist/server/_chunks/{index-rjegyfx4.js → index-zvy5134a.js} +5 -5
  46. package/dist/server/_chunks/{loader-5en7wpt5.js → loader-5j9bjhw7.js} +6 -6
  47. package/dist/server/_chunks/{modules-t92favpj.js → modules-gy48pdw3.js} +8 -8
  48. package/dist/server/_chunks/{pipeline-4t9q43ht.js → pipeline-m8ac90dn.js} +11 -11
  49. package/dist/server/_chunks/{production-385bw8df.js → production-26vqtxvg.js} +1 -1
  50. package/dist/server/_chunks/{proxy-gfhmktbk.js → proxy-74a1mg4v.js} +7 -7
  51. package/dist/server/_chunks/{proxy-config-60gprphe.js → proxy-config-7hnexa7b.js} +5 -5
  52. package/dist/server/_chunks/{router-xnrva921.js → router-frkywyzb.js} +4 -4
  53. package/dist/server/_chunks/{routes-ht868pdc.js → routes-y7de16ja.js} +7 -7
  54. package/dist/server/_chunks/{run-d40d63ag.js → run-q8aq4cez.js} +4 -4
  55. package/dist/server/_chunks/{server-2p8fgqq2.js → server-21t1fzp7.js} +19 -19
  56. package/dist/server/_chunks/{tsconfig-defaults-bcn34eqb.js → tsconfig-defaults-bcq068bd.js} +3 -3
  57. package/dist/server/_chunks/{typegen-dvtcjtaw.js → typegen-wdqj67rx.js} +10 -10
  58. package/dist/server/cli/index.js +11 -11
  59. package/dist/server/cli/start.js +5 -5
  60. package/dist/server/compat/next/config-headers.js +4 -4
  61. package/dist/server/compat/next/font/cache.js +4 -4
  62. package/dist/server/compat/next/font/local.js +5 -5
  63. package/dist/server/compat/next/font/runtime.js +5 -5
  64. package/dist/server/compat/next/navigation.js +4 -4
  65. package/dist/server/compat/next/redirects.js +4 -4
  66. package/dist/server/compat/next/rewrites.js +3 -3
  67. package/dist/server/generation.json +1 -1
  68. package/package.json +1 -1
  69. package/src/cli/adapters/vercel-warm.ts +2 -1
  70. package/src/cli/adapters/vercel.ts +43 -4
  71. package/src/cli/serve/standalone.ts +49 -17
  72. package/src/css/assets.ts +9 -1
  73. package/src/render/renderer.ts +6 -3
  74. package/dist/server/_chunks/index-gcmj16xy.js +0 -92
@@ -4,7 +4,7 @@ import {
4
4
  findGlobalError,
5
5
  findLayouts,
6
6
  serverActionsUnsupportedMessage
7
- } from "./index-8ct7rqy3.js";
7
+ } from "./index-a4asdd4j.js";
8
8
  import {
9
9
  devClientModuleHref,
10
10
  devServerModuleHref,
@@ -13,7 +13,7 @@ import {
13
13
  importModuleOnce,
14
14
  registerServerRuntime,
15
15
  serverBundleTargetForRuntime
16
- } from "./index-0yjv5v47.js";
16
+ } from "./index-g39z5s9d.js";
17
17
  import {
18
18
  assetHref,
19
19
  emitFontCssStylesheet,
@@ -23,7 +23,7 @@ import {
23
23
  routeCssAssetNames,
24
24
  routeCssHref,
25
25
  withAssetPrefix
26
- } from "./index-d158y67j.js";
26
+ } from "./index-6w807g31.js";
27
27
  import {
28
28
  getActionModuleExtensions,
29
29
  getActiveMetadataExtensions,
@@ -72,23 +72,23 @@ import {
72
72
  runInParamsScope,
73
73
  serializeProps,
74
74
  slotBoundarySymbol
75
- } from "./index-29pq0kax.js";
75
+ } from "./index-72wjyacg.js";
76
76
  import {
77
77
  matchSegments,
78
78
  pathnameSegments,
79
79
  slotDirectoriesIn
80
- } from "./index-cn86z041.js";
80
+ } from "./index-ra6fsg5v.js";
81
81
  import {
82
82
  pnextVersionRange,
83
83
  readText,
84
84
  toPosixPath
85
- } from "./index-4da76t62.js";
85
+ } from "./index-e63ma63t.js";
86
86
  import {
87
87
  traceEnabled
88
88
  } from "./index-vz0km5qk.js";
89
89
  import {
90
90
  pathToFileHref
91
- } from "./index-71885zaq.js";
91
+ } from "./index-x3cvacmf.js";
92
92
  import {
93
93
  markErrorLogged
94
94
  } from "./index-jcsjq3d1.js";
@@ -98,7 +98,7 @@ import {
98
98
  servedAppFiles,
99
99
  servedConventions,
100
100
  servedRelease
101
- } from "./index-hdbwtdv2.js";
101
+ } from "./index-pshjr3qm.js";
102
102
  import {
103
103
  clientReferenceId,
104
104
  clientReferenceSymbol,
@@ -2181,7 +2181,7 @@ async function importClientModule(file, options) {
2181
2181
  }
2182
2182
  async function syntheticRouteCss(config, id, scan) {
2183
2183
  if (!productionRelease(config))
2184
- return scan(await import("./routes-ht868pdc.js"));
2184
+ return scan(await import("./routes-y7de16ja.js"));
2185
2185
  const name = `${id}.css`;
2186
2186
  return emittedAssetName(config, name) === name ? [] : [name];
2187
2187
  }
@@ -3949,12 +3949,15 @@ async function renderTreeInFrame(options, tree, stream, pageMetadata = {}, extra
3949
3949
  ...fonts.css ? { prependCss: fonts.css } : {},
3950
3950
  ...nonce ? { nonce } : {}
3951
3951
  }));
3952
+ let fontStyle = "";
3952
3953
  if (!inlineStylesheets && fonts.css) {
3953
3954
  const fontAsset = await profileRenderStep(profile, "font stylesheet", () => emitFontCssStylesheet(options.config, options.route.id, fonts.css, stylesheetAssets[0], {
3954
3955
  dev: Boolean(options.dev)
3955
3956
  }));
3956
- const fontHref = assetHref(options.config, fontAsset);
3957
- if (globalStylesheet)
3957
+ const fontHref = fontAsset && assetHref(options.config, fontAsset);
3958
+ if (!fontHref)
3959
+ fontStyle = `<style${nonce ? ` nonce="${escapeHtml(nonce)}"` : ""}>${fonts.css}</style>`;
3960
+ else if (globalStylesheet)
3958
3961
  globalStylesheet = fontHref;
3959
3962
  else if (Array.isArray(routeStylesheet))
3960
3963
  routeStylesheet = [fontHref, ...routeStylesheet.slice(1)];
@@ -3979,8 +3982,8 @@ async function renderTreeInFrame(options, tree, stream, pageMetadata = {}, extra
3979
3982
  const bootstrapScripts = modulePreloads.map((src) => `<script async type="module" src="${escapeHtml(src)}"></script>`).join(`
3980
3983
  `);
3981
3984
  const compatBuildManifestScript = nextCompatEnabled(options.config) && !options.dev ? `<script src="${escapeHtml(withAssetPrefix(options.config, "/_next/static/pnext/_buildManifest.js"))}"></script>` : "";
3982
- const headStyles = inlineStylesheets?.join(`
3983
- `) ?? "";
3985
+ const headStyles = [fontStyle, ...inlineStylesheets ?? []].filter(Boolean).join(`
3986
+ `);
3984
3987
  const headScripts = profileRenderSyncStep(profile, "head scripts", () => [
3985
3988
  renderCollectedHeadScripts(),
3986
3989
  bootstrapScripts,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./index-wm36rj4v.js";
9
9
  import {
10
10
  selectRouteForRequest
11
- } from "./index-8ct7rqy3.js";
11
+ } from "./index-a4asdd4j.js";
12
12
  import {
13
13
  compatAliases,
14
14
  missingCompatImportError,
@@ -17,10 +17,10 @@ import {
17
17
  reactCompatEnabled,
18
18
  reactCompilerOptions,
19
19
  reactServerLayerAliases
20
- } from "./index-kdhxpwyq.js";
20
+ } from "./index-mph0cmh9.js";
21
21
  import {
22
22
  findProxyFiles
23
- } from "./index-3ycf5ckv.js";
23
+ } from "./index-8hy8qskn.js";
24
24
  import {
25
25
  getRequestRuntime
26
26
  } from "./index-z88qv16t.js";
@@ -35,13 +35,13 @@ import {
35
35
  } from "./index-cjgqs13g.js";
36
36
  import {
37
37
  cssModuleScopePath
38
- } from "./index-4da76t62.js";
38
+ } from "./index-e63ma63t.js";
39
39
  import {
40
40
  markErrorLogged
41
41
  } from "./index-jcsjq3d1.js";
42
42
  import {
43
43
  productionRelease
44
- } from "./index-hdbwtdv2.js";
44
+ } from "./index-pshjr3qm.js";
45
45
  import {
46
46
  getWorkUnit
47
47
  } from "./index-grta8ap3.js";
@@ -170,7 +170,7 @@ function nextCssModuleChunkPlugin(config) {
170
170
  setup(build2) {
171
171
  build2.onLoad({ filter: /\.css$/ }, async ({ path: file }) => {
172
172
  const source = nextCssSource(file, config.root);
173
- const raw = (await (cssBuild ??= import("./build-c991dv65.js"))).hoistCssImports(readFileSync(source, "utf8"));
173
+ const raw = (await (cssBuild ??= import("./build-m49fem3j.js"))).hoistCssImports(readFileSync(source, "utf8"));
174
174
  const contents = file.endsWith(".module.css") ? transformCssModule(raw, source, config.root) : rewriteTransparentBodyChildren(raw);
175
175
  return {
176
176
  contents: maybeLightningcssTransform(contents, source, config.root),
@@ -1291,7 +1291,7 @@ function resolveTranspiledRouteDependency() {
1291
1291
  async function validateProxyFiles(config) {
1292
1292
  if (findProxyFiles(config, NEXT_PROXY_NAMES).length === 0)
1293
1293
  return;
1294
- const { registerProxyExtensions } = await import("./proxy-gfhmktbk.js");
1294
+ const { registerProxyExtensions } = await import("./proxy-74a1mg4v.js");
1295
1295
  registerProxyExtensions(config);
1296
1296
  await getProxyExtensions().validateFiles(config);
1297
1297
  }
@@ -4,18 +4,18 @@ import {
4
4
  } from "./index-2wfv4kvx.js";
5
5
  import {
6
6
  nextCompatEnabled
7
- } from "./index-kdhxpwyq.js";
7
+ } from "./index-mph0cmh9.js";
8
8
  import {
9
9
  findProxyFiles,
10
10
  setProxyRewriteObserver
11
- } from "./index-3ycf5ckv.js";
11
+ } from "./index-8hy8qskn.js";
12
12
  import {
13
13
  getNextConfig
14
14
  } from "./index-m63czgq5.js";
15
15
  import {
16
16
  readText,
17
17
  toPosixPath
18
- } from "./index-4da76t62.js";
18
+ } from "./index-e63ma63t.js";
19
19
  import {
20
20
  recordCanonicalUrl
21
21
  } from "./index-en7n9f7m.js";
@@ -0,0 +1,92 @@
1
+ // @bun
2
+ import { join as __pnextJoin } from "node:path";
3
+ const __PNEXT_PACKAGE_ROOT__ = __pnextJoin(import.meta.dirname, "../../..");
4
+ // src/runtime/fingerprint.ts
5
+ import { createHash } from "crypto";
6
+ import { mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
7
+ import path from "path";
8
+ import { fileURLToPath } from "url";
9
+ var prebundleFingerprint = typeof { version: "0.1.10", fingerprint: "db18aac8a57bc886", entries: ["cli/index", "cli/start", "client/reference", "api/client-cache", "compat/next/canonical-url", "compat/next/link-transform", "compat/next/client-navigation", "compat/next/og", "compat/next/link", "compat/next/usage", "compat/next/client-script", "compat/next/headers", "compat/next/custom-server", "compat/next/legacy-image", "compat/next/router", "compat/next/navigation", "compat/next/dist/server/web/spec-extension/unstable-no-store", "compat/next/dist/server/web/spec-extension/unstable-cache", "compat/next/dist/server/web/spec-extension/revalidate", "compat/next/dist/client/components/app-router-headers", "compat/next/web-vitals", "compat/next/root-params", "compat/next/route-state", "compat/next/server-only", "compat/next/client-server", "compat/next/legacy-request-apis", "compat/next/redirects", "compat/next/resource-hints", "compat/next/svgr", "compat/next/client-only", "compat/next/image/props", "compat/next/image/optimizer", "compat/next/image/validate", "compat/next/image/shared", "compat/next/image/patterns", "compat/next/image/config", "compat/next/image/client", "compat/next/image/static-metadata", "compat/next/user-agent", "compat/next/client-cache", "compat/next/head", "compat/next/dynamic", "compat/next/telemetry", "compat/next/offline", "compat/next/cache", "compat/next/constants", "compat/next/error", "compat/next/script", "compat/next/index", "compat/next/font/shared", "compat/next/font/runtime", "compat/next/font/google", "compat/next/font/cache", "compat/next/font/runtime-client", "compat/next/font/local", "compat/next/font/index", "compat/next/config-loader", "compat/next/config", "compat/next/image", "compat/next/server", "compat/next/rewrites", "compat/next/preferred-region", "compat/next/config-headers", "compat/next/form", "compat/react/dom", "compat/react/hooks-extra", "compat/react/react-server", "compat/react/dom-client", "compat/react/style-values", "compat/react/compiler-runtime", "compat/react/router-shim", "compat/react/dom-server", "compat/react/dom-react-server", "compat/react/server-component-use", "compat/react/action-state", "compat/react/client", "compat/react/client-lite", "compat/react/server-inserted-html", "compat/react/parity", "compat/react/preact", "compat/react/use", "compat/react/view-transition", "compat/react/internals", "compat/react/server"] } === "object" ? { version: "0.1.10", fingerprint: "db18aac8a57bc886", entries: ["cli/index", "cli/start", "client/reference", "api/client-cache", "compat/next/canonical-url", "compat/next/link-transform", "compat/next/client-navigation", "compat/next/og", "compat/next/link", "compat/next/usage", "compat/next/client-script", "compat/next/headers", "compat/next/custom-server", "compat/next/legacy-image", "compat/next/router", "compat/next/navigation", "compat/next/dist/server/web/spec-extension/unstable-no-store", "compat/next/dist/server/web/spec-extension/unstable-cache", "compat/next/dist/server/web/spec-extension/revalidate", "compat/next/dist/client/components/app-router-headers", "compat/next/web-vitals", "compat/next/root-params", "compat/next/route-state", "compat/next/server-only", "compat/next/client-server", "compat/next/legacy-request-apis", "compat/next/redirects", "compat/next/resource-hints", "compat/next/svgr", "compat/next/client-only", "compat/next/image/props", "compat/next/image/optimizer", "compat/next/image/validate", "compat/next/image/shared", "compat/next/image/patterns", "compat/next/image/config", "compat/next/image/client", "compat/next/image/static-metadata", "compat/next/user-agent", "compat/next/client-cache", "compat/next/head", "compat/next/dynamic", "compat/next/telemetry", "compat/next/offline", "compat/next/cache", "compat/next/constants", "compat/next/error", "compat/next/script", "compat/next/index", "compat/next/font/shared", "compat/next/font/runtime", "compat/next/font/google", "compat/next/font/cache", "compat/next/font/runtime-client", "compat/next/font/local", "compat/next/font/index", "compat/next/config-loader", "compat/next/config", "compat/next/image", "compat/next/server", "compat/next/rewrites", "compat/next/preferred-region", "compat/next/config-headers", "compat/next/form", "compat/react/dom", "compat/react/hooks-extra", "compat/react/react-server", "compat/react/dom-client", "compat/react/style-values", "compat/react/compiler-runtime", "compat/react/router-shim", "compat/react/dom-server", "compat/react/dom-react-server", "compat/react/server-component-use", "compat/react/action-state", "compat/react/client", "compat/react/client-lite", "compat/react/server-inserted-html", "compat/react/parity", "compat/react/preact", "compat/react/use", "compat/react/view-transition", "compat/react/internals", "compat/react/server"] }.fingerprint : undefined;
10
+ var SOURCE_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx", ".cjs", ".mjs"]);
11
+ var DECLARATION = /\.d\.[cm]?ts$/;
12
+ var frameworkSrc = fileURLToPath(new URL("..", Bun.pathToFileURL(__PNEXT_PACKAGE_ROOT__ + "/src/runtime/fingerprint.ts").href));
13
+ function sourceFiles(dir, found = []) {
14
+ let entries;
15
+ try {
16
+ entries = readdirSync(dir, { withFileTypes: true });
17
+ } catch {
18
+ return found;
19
+ }
20
+ for (const entry of entries.sort((a, b) => a.name < b.name ? -1 : 1)) {
21
+ const full = path.join(dir, entry.name);
22
+ if (entry.isDirectory())
23
+ sourceFiles(full, found);
24
+ else if (SOURCE_EXTENSIONS.has(path.extname(entry.name)) && !DECLARATION.test(entry.name))
25
+ found.push(full);
26
+ }
27
+ return found;
28
+ }
29
+ function contentFingerprint(files, dir) {
30
+ const hash = createHash("sha256");
31
+ for (const file of files) {
32
+ hash.update(path.relative(dir, file));
33
+ try {
34
+ hash.update(Bun.hash(readFileSync(file)).toString(36));
35
+ } catch {}
36
+ hash.update("\x00");
37
+ }
38
+ return hash.digest("hex").slice(0, 16);
39
+ }
40
+ var RECORD_VERSION = 1;
41
+ function statSignature(files, dir) {
42
+ const hash = createHash("sha256");
43
+ for (const file of files) {
44
+ const stats = statSync(file, { throwIfNoEntry: false });
45
+ hash.update(`${path.relative(dir, file)}:${stats?.size ?? -1}:${stats?.mtimeMs ?? -1}\x00`);
46
+ }
47
+ return hash.digest("hex").slice(0, 16);
48
+ }
49
+ function recordFile(dir) {
50
+ return path.join(dir, "framework.json");
51
+ }
52
+ function readRecord(dir) {
53
+ try {
54
+ const parsed = JSON.parse(readFileSync(recordFile(dir), "utf8"));
55
+ return parsed.version === RECORD_VERSION && parsed.stats && parsed.fingerprint ? parsed : undefined;
56
+ } catch {
57
+ return;
58
+ }
59
+ }
60
+ function writeRecord(dir, record) {
61
+ try {
62
+ mkdirSync(dir, { recursive: true });
63
+ writeFileSync(recordFile(dir), JSON.stringify(record));
64
+ } catch {}
65
+ }
66
+ var fingerprint;
67
+ var fingerprintStats;
68
+ var scanned = false;
69
+ var recorded = new Set;
70
+ function frameworkFingerprint(recordDir) {
71
+ const pinned = process.env.PNEXT_FRAMEWORK_FINGERPRINT ?? prebundleFingerprint;
72
+ if (pinned)
73
+ return pinned;
74
+ if (fingerprint !== undefined && (!recordDir || recorded.has(recordDir)))
75
+ return fingerprint;
76
+ const previous = recordDir ? readRecord(recordDir) : undefined;
77
+ if (!scanned || fingerprint === undefined || fingerprintStats === undefined) {
78
+ const files = sourceFiles(frameworkSrc);
79
+ fingerprintStats = statSignature(files, frameworkSrc);
80
+ const recordedFingerprint = previous?.stats === fingerprintStats ? previous.fingerprint : undefined;
81
+ scanned = recordedFingerprint === undefined;
82
+ fingerprint = recordedFingerprint ?? contentFingerprint(files, frameworkSrc);
83
+ }
84
+ if (recordDir) {
85
+ recorded.add(recordDir);
86
+ if (previous?.stats !== fingerprintStats)
87
+ writeRecord(recordDir, { version: RECORD_VERSION, stats: fingerprintStats, fingerprint });
88
+ }
89
+ return fingerprint;
90
+ }
91
+
92
+ export { frameworkFingerprint };
@@ -6,10 +6,10 @@ import {
6
6
  } from "./index-jbj7ehef.js";
7
7
  import {
8
8
  readText
9
- } from "./index-4da76t62.js";
9
+ } from "./index-e63ma63t.js";
10
10
  import {
11
11
  pathToFileHref
12
- } from "./index-71885zaq.js";
12
+ } from "./index-x3cvacmf.js";
13
13
  import {
14
14
  clientReferenceId
15
15
  } from "./index-ras0sdab.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-m63czgq5.js";
5
5
  import {
6
6
  registerConfigSource
7
- } from "./index-71885zaq.js";
7
+ } from "./index-x3cvacmf.js";
8
8
 
9
9
  // src/compat/register/config.ts
10
10
  function registerConfigSource2() {
@@ -4,10 +4,10 @@ import {
4
4
  } from "./index-knp0s912.js";
5
5
  import {
6
6
  frameworkFingerprint
7
- } from "./index-gcmj16xy.js";
7
+ } from "./index-1xrvw3zp.js";
8
8
  import {
9
9
  writeFileAtomic
10
- } from "./index-4da76t62.js";
10
+ } from "./index-e63ma63t.js";
11
11
  import {
12
12
  outCachePath
13
13
  } from "./index-bzd2ef7t.js";
@@ -6,10 +6,10 @@ import {
6
6
  cssModuleScopePath,
7
7
  ensureDir,
8
8
  readText
9
- } from "./index-4da76t62.js";
9
+ } from "./index-e63ma63t.js";
10
10
  import {
11
11
  productionRelease
12
- } from "./index-hdbwtdv2.js";
12
+ } from "./index-pshjr3qm.js";
13
13
  import {
14
14
  getCssExtensions
15
15
  } from "./index-zqpqyg8p.js";
@@ -34,7 +34,7 @@ import { readFile, writeFile } from "fs/promises";
34
34
  import path from "path";
35
35
  var build;
36
36
  async function globalCssHref(config) {
37
- const sources = productionRelease(config)?.globalCss ?? (await (build ??= import("./build-c991dv65.js"))).globalCssSources(config);
37
+ const sources = productionRelease(config)?.globalCss ?? (await (build ??= import("./build-m49fem3j.js"))).globalCssSources(config);
38
38
  return sources.length > 0 ? assetHref(config, "global.css") : undefined;
39
39
  }
40
40
  var emittedAssets = new Map;
@@ -88,10 +88,18 @@ async function emitFontCssStylesheet(config, routeId, fontCss, baseAsset, option
88
88
  const logicalName = baseAsset ? baseAsset.replace(/-[0-9a-f]{16}(?=\.css$)/, "") : `${routeId}.css`;
89
89
  const name = hashedAssetName(logicalName, contents);
90
90
  const file = path.join(outDir, name);
91
- if (!existsSync(file) || await readFile(file, "utf8") !== contents)
91
+ if (existsSync(file) && await readFile(file, "utf8") === contents)
92
+ return name;
93
+ try {
92
94
  await writeFile(file, contents);
95
+ } catch (error) {
96
+ if (options.dev || !readOnlyErrors.has(error.code ?? ""))
97
+ throw error;
98
+ return;
99
+ }
93
100
  return name;
94
101
  }
102
+ var readOnlyErrors = new Set(["EROFS", "EACCES", "EPERM"]);
95
103
  function withAssetPrefix(config, href) {
96
104
  const prefix = config?.assetPrefix;
97
105
  if (!prefix)
@@ -8,10 +8,10 @@ import {
8
8
  pathnameSegments,
9
9
  slotConventionFile,
10
10
  slotDirectoriesIn
11
- } from "./index-cn86z041.js";
11
+ } from "./index-ra6fsg5v.js";
12
12
  import {
13
13
  toPosixPath
14
- } from "./index-4da76t62.js";
14
+ } from "./index-e63ma63t.js";
15
15
  import {
16
16
  getRenderExtensions
17
17
  } from "./index-zqpqyg8p.js";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  findProxyFile
4
- } from "./index-3ycf5ckv.js";
4
+ } from "./index-8hy8qskn.js";
5
5
  import {
6
6
  loadNative
7
7
  } from "./index-7wc9n8be.js";
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  devServerModuleHref,
4
4
  registerServerRuntime
5
- } from "./index-0yjv5v47.js";
5
+ } from "./index-g39z5s9d.js";
6
6
  import {
7
7
  pathToFileHref
8
- } from "./index-71885zaq.js";
8
+ } from "./index-x3cvacmf.js";
9
9
  import {
10
10
  runWithRequest
11
11
  } from "./index-grta8ap3.js";
@@ -291,7 +291,7 @@ async function staticProxyMatchers(file) {
291
291
  return cached.matchers;
292
292
  let matchers;
293
293
  try {
294
- const { staticProxyConfig } = await import("./proxy-config-60gprphe.js");
294
+ const { staticProxyConfig } = await import("./proxy-config-7hnexa7b.js");
295
295
  const config = staticProxyConfig(file, readFileSync(file, "utf8"));
296
296
  if (config)
297
297
  matchers = proxyMatchers(config);
@@ -19,7 +19,7 @@ import {
19
19
  } from "./index-m63czgq5.js";
20
20
  import {
21
21
  pathToFileHref
22
- } from "./index-71885zaq.js";
22
+ } from "./index-x3cvacmf.js";
23
23
  import {
24
24
  runWithRequest,
25
25
  setPhase
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  readDirListing,
4
4
  toPosixPath
5
- } from "./index-4da76t62.js";
5
+ } from "./index-e63ma63t.js";
6
6
  import {
7
7
  extraPageExtensions
8
8
  } from "./index-zqpqyg8p.js";
@@ -12,13 +12,13 @@ import {
12
12
  ISLAND_BOUNDARY_ERROR_MESSAGE_ATTRIBUTE,
13
13
  ISLAND_STATIC_CHILDREN_ATTRIBUTE,
14
14
  clientEntryName
15
- } from "./index-x2m17v9c.js";
15
+ } from "./index-0f5t5730.js";
16
16
  import {
17
17
  findLayouts
18
- } from "./index-8ct7rqy3.js";
18
+ } from "./index-a4asdd4j.js";
19
19
  import {
20
20
  cssModuleClientPlugin
21
- } from "./index-n629dy38.js";
21
+ } from "./index-r1kzsnyp.js";
22
22
  import {
23
23
  createVerboseLogger,
24
24
  formatDuration
@@ -26,10 +26,10 @@ import {
26
26
  import {
27
27
  assetContentHash,
28
28
  withAssetPrefix
29
- } from "./index-d158y67j.js";
29
+ } from "./index-6w807g31.js";
30
30
  import {
31
31
  frameworkFingerprint
32
- } from "./index-gcmj16xy.js";
32
+ } from "./index-1xrvw3zp.js";
33
33
  import {
34
34
  readSourceSync,
35
35
  readSourceText
@@ -39,14 +39,14 @@ import {
39
39
  listFiles,
40
40
  readText,
41
41
  writeText
42
- } from "./index-4da76t62.js";
42
+ } from "./index-e63ma63t.js";
43
43
  import {
44
44
  traceEnabled
45
45
  } from "./index-vz0km5qk.js";
46
46
  import {
47
47
  frameworkRuntimeAliasEntries,
48
48
  publicEnvDefines
49
- } from "./index-71885zaq.js";
49
+ } from "./index-x3cvacmf.js";
50
50
  import {
51
51
  dim
52
52
  } from "./index-6kp9r0d9.js";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  ensureDir,
10
10
  toPosixPath
11
- } from "./index-4da76t62.js";
11
+ } from "./index-e63ma63t.js";
12
12
 
13
13
  // src/compat/typed-routes/generate.ts
14
14
  import { existsSync as existsSync2 } from "fs";
@@ -83,22 +83,22 @@ function bootstrapCompatBoot(config) {
83
83
  installFetchHostNormalization();
84
84
  if (!compatEnabled(config))
85
85
  return Promise.resolve();
86
- bootRegistration ??= import("./boot-bhemypxz.js").then((module) => module.registerCompatBootExtensions(config));
86
+ bootRegistration ??= import("./boot-exjk45ry.js").then((module) => module.registerCompatBootExtensions(config));
87
87
  return bootRegistration;
88
88
  }
89
89
  function bootstrapCompat(config, options = {}) {
90
90
  installFetchHostNormalization();
91
91
  if (!compatEnabled(config))
92
92
  return Promise.resolve();
93
- registration ??= bootstrapCompatBoot(config).then(() => import("./index-dgr390q7.js")).then((module) => module.registerCompatExtensions(config, options));
93
+ registration ??= bootstrapCompatBoot(config).then(() => import("./index-f76517s5.js")).then((module) => module.registerCompatExtensions(config, options));
94
94
  return registration;
95
95
  }
96
96
  async function generateCompatRouteTypes(config, routes) {
97
97
  if (!config.compat?.next)
98
98
  return;
99
99
  const [{ writeTsconfigDefaults }, { generateTypedRoutes }] = await Promise.all([
100
- import("./tsconfig-defaults-bcn34eqb.js"),
101
- import("./generate-myw9hef7.js")
100
+ import("./tsconfig-defaults-bcq068bd.js"),
101
+ import("./generate-ap2zs26g.js")
102
102
  ]);
103
103
  await writeTsconfigDefaults(config);
104
104
  await generateTypedRoutes(config, routes);
@@ -3,7 +3,7 @@ import { join as __pnextJoin } from "node:path";
3
3
  const __PNEXT_PACKAGE_ROOT__ = __pnextJoin(import.meta.dirname, "../../..");
4
4
  import {
5
5
  frozenDirListing
6
- } from "./index-hdbwtdv2.js";
6
+ } from "./index-pshjr3qm.js";
7
7
 
8
8
  // src/utils/fs.ts
9
9
  import { existsSync, readdirSync, readFileSync } from "fs";
@@ -6,7 +6,7 @@ import {
6
6
  loadResolvedNextConfig,
7
7
  parseConditions,
8
8
  substitute
9
- } from "./index-he6n2bvp.js";
9
+ } from "./index-8y2yft9b.js";
10
10
 
11
11
  // src/compat/next/config-headers.ts
12
12
  async function loadCompatHeaders(root) {