veryfront 0.1.806 → 0.1.809

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 (71) hide show
  1. package/esm/cli/commands/build/command-help.d.ts.map +1 -1
  2. package/esm/cli/commands/build/command-help.js +7 -3
  3. package/esm/cli/commands/build/command.js +1 -1
  4. package/esm/cli/commands/build/config-display.js +1 -1
  5. package/esm/cli/commands/build/handler.js +1 -1
  6. package/esm/cli/mcp/tools/build-tool.js +2 -2
  7. package/esm/cli/shared/server-startup.d.ts.map +1 -1
  8. package/esm/cli/shared/server-startup.js +32 -1
  9. package/esm/deno.js +1 -1
  10. package/esm/src/build/bundler/code-splitter/esbuild-plugin.js +1 -1
  11. package/esm/src/build/index.d.ts +1 -0
  12. package/esm/src/build/index.d.ts.map +1 -1
  13. package/esm/src/build/index.js +1 -0
  14. package/esm/src/build/production-build/build/build-initializer.js +1 -1
  15. package/esm/src/build/production-build/build/build-orchestrator.js +1 -1
  16. package/esm/src/build/production-build/build/output-generator.d.ts.map +1 -1
  17. package/esm/src/build/production-build/build/output-generator.js +9 -0
  18. package/esm/src/build/production-build/client-runtime.d.ts.map +1 -1
  19. package/esm/src/build/production-build/client-runtime.js +21 -3
  20. package/esm/src/build/production-build/index.d.ts +1 -0
  21. package/esm/src/build/production-build/index.d.ts.map +1 -1
  22. package/esm/src/build/production-build/index.js +1 -0
  23. package/esm/src/build/production-build/local-release-assets.d.ts +15 -0
  24. package/esm/src/build/production-build/local-release-assets.d.ts.map +1 -0
  25. package/esm/src/build/production-build/local-release-assets.js +83 -0
  26. package/esm/src/build/production-build/static-generation.d.ts.map +1 -1
  27. package/esm/src/build/production-build/static-generation.js +14 -1
  28. package/esm/src/build/production-build/templates.d.ts.map +1 -1
  29. package/esm/src/build/production-build/templates.js +2 -2
  30. package/esm/src/html/utils.d.ts.map +1 -1
  31. package/esm/src/html/utils.js +5 -1
  32. package/esm/src/modules/server/module-server.d.ts.map +1 -1
  33. package/esm/src/modules/server/module-server.js +20 -1
  34. package/esm/src/release-assets/build-executor.d.ts +25 -0
  35. package/esm/src/release-assets/build-executor.d.ts.map +1 -1
  36. package/esm/src/release-assets/build-executor.js +137 -31
  37. package/esm/src/release-assets/constants.d.ts +2 -0
  38. package/esm/src/release-assets/constants.d.ts.map +1 -1
  39. package/esm/src/release-assets/constants.js +2 -0
  40. package/esm/src/release-assets/index.d.ts +13 -0
  41. package/esm/src/release-assets/index.d.ts.map +1 -0
  42. package/esm/src/release-assets/index.js +12 -0
  43. package/esm/src/release-assets/module-consumption.d.ts +16 -0
  44. package/esm/src/release-assets/module-consumption.d.ts.map +1 -0
  45. package/esm/src/release-assets/module-consumption.js +92 -0
  46. package/esm/src/routing/client/page-transition.js +2 -2
  47. package/esm/src/security/client/html-sanitizer.d.ts +2 -0
  48. package/esm/src/security/client/html-sanitizer.d.ts.map +1 -1
  49. package/esm/src/security/client/html-sanitizer.js +3 -1
  50. package/esm/src/server/handlers/request/module/data-endpoint-handler.d.ts.map +1 -1
  51. package/esm/src/server/handlers/request/module/data-endpoint-handler.js +2 -1
  52. package/esm/src/server/handlers/request/module/page-module-handler.d.ts.map +1 -1
  53. package/esm/src/server/handlers/request/module/page-module-handler.js +11 -0
  54. package/esm/src/server/handlers/request/static.handler.d.ts.map +1 -1
  55. package/esm/src/server/handlers/request/static.handler.js +20 -1
  56. package/esm/src/server/production-server.d.ts +2 -0
  57. package/esm/src/server/production-server.d.ts.map +1 -1
  58. package/esm/src/server/production-server.js +2 -1
  59. package/esm/src/server/runtime-handler/index.d.ts +2 -0
  60. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  61. package/esm/src/server/runtime-handler/index.js +1 -0
  62. package/esm/src/server/runtime-handler/project-resolution.d.ts +2 -0
  63. package/esm/src/server/runtime-handler/project-resolution.d.ts.map +1 -1
  64. package/esm/src/server/runtime-handler/project-resolution.js +1 -1
  65. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
  66. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
  67. package/esm/src/server/services/static/static-file.service.d.ts.map +1 -1
  68. package/esm/src/server/services/static/static-file.service.js +4 -2
  69. package/esm/src/utils/version-constant.d.ts +1 -1
  70. package/esm/src/utils/version-constant.js +1 -1
  71. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,kBAAkB,EAClB,uBAAuB,EACvB,oCAAoC,EACpC,2BAA2B,EAC3B,uCAAuC,EACvC,+BAA+B,EAC/B,qCAAqC,EACrC,4BAA4B,EAC5B,gCAAgC,EAChC,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,EAC9B,oCAAoC,EACpC,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,KAAK,2BAA2B,EAChC,mCAAmC,GACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Release Asset Manifest — public barrel.
3
+ *
4
+ * @module release-assets
5
+ */
6
+ export { contentTypeForExtension, isAllowedReleaseAssetContentType, isValidContentHash, RELEASE_ASSET_BASE_PATH, RELEASE_ASSET_CONTENT_TYPE_ALLOWLIST, RELEASE_ASSET_CONTENT_TYPES, RELEASE_ASSET_IMMUTABLE_MAX_AGE_SECONDS, RELEASE_ASSET_MANIFEST_ENV_FLAG, RELEASE_ASSET_MANIFEST_SCHEMA_VERSION, RELEASE_ASSET_MAX_SIZE_BYTES, RELEASE_ASSET_UPLOAD_CONCURRENCY, releaseAssetUrl, } from "./constants.js";
7
+ export { sha256Hex, sha256HexBytes } from "./hash.js";
8
+ export { getReleaseAssetManifestSchema, parseReleaseAssetManifest, } from "./manifest-schema.js";
9
+ export { clearReleaseAssetManifestCache, configureReleaseAssetManifestFetcher, getReadyManifestForRender, isReleaseAssetManifestEnabled, registerManifestFetcherForRelease, unregisterManifestFetcherForRelease, } from "./manifest-cache.js";
10
+ export { normalizeManifestModuleKey, resolveManifestModuleUrl, resolveManifestRoutePreloadUrls, } from "./html-consumption.js";
11
+ export { runReleaseAssetBuild, } from "./build-executor.js";
12
+ export { createCompileProjectCss, } from "./css-compile.js";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Release Asset Manifest — module response consumption helpers.
3
+ *
4
+ * Rewrites browser module import specifiers that point at vendored HTTP bundles
5
+ * to the manifest's immutable local dependency assets. This keeps production
6
+ * `/_vf_modules/*` fallback responses on the same React/dependency module
7
+ * instances as the release import map.
8
+ *
9
+ * @module release-assets/module-consumption
10
+ */
11
+ export interface RewriteReleaseDependencyImportsOptions {
12
+ releaseId?: string | null;
13
+ readDependencySource: (path: string) => Promise<string>;
14
+ }
15
+ export declare function rewriteReleaseDependencyImportsForModule(code: string, options: RewriteReleaseDependencyImportsOptions): Promise<string>;
16
+ //# sourceMappingURL=module-consumption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-consumption.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/module-consumption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,sCAAsC;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAmDD,wBAAsB,wCAAwC,CAC5D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Release Asset Manifest — module response consumption helpers.
3
+ *
4
+ * Rewrites browser module import specifiers that point at vendored HTTP bundles
5
+ * to the manifest's immutable local dependency assets. This keeps production
6
+ * `/_vf_modules/*` fallback responses on the same React/dependency module
7
+ * instances as the release import map.
8
+ *
9
+ * @module release-assets/module-consumption
10
+ */
11
+ import { getHostEnv } from "../platform/compat/process.js";
12
+ import { normalizeHttpUrl } from "../transforms/esm/http-cache.js";
13
+ import { parseImports, replaceSpecifiers } from "../transforms/esm/lexer.js";
14
+ import { extractSourceUrl } from "../transforms/esm/source-url-embed.js";
15
+ import { RELEASE_ASSET_DEPENDENCY_IMPORT_MAP_ENV_FLAG, releaseAssetUrl } from "./constants.js";
16
+ import { getReadyManifestForRenderAsync } from "./manifest-cache.js";
17
+ function dependencyAssetUrl(manifest, specifier) {
18
+ const direct = manifest.dependencies[specifier] ??
19
+ manifest.dependencies[specifier.replace(/[?#].*$/, "")];
20
+ if (direct)
21
+ return releaseAssetUrl(direct.contentHash, "js");
22
+ const normalized = normalizeHttpUrl(specifier);
23
+ const normalizedEntry = manifest.dependencies[normalized] ??
24
+ manifest.dependencies[normalized.replace(/[?#].*$/, "")];
25
+ return normalizedEntry ? releaseAssetUrl(normalizedEntry.contentHash, "js") : null;
26
+ }
27
+ function localHttpBundlePath(specifier) {
28
+ try {
29
+ const url = new URL(specifier);
30
+ let path = null;
31
+ if (url.protocol === "file:") {
32
+ path = decodeURIComponent(url.pathname);
33
+ }
34
+ else if (url.protocol === "https:" && url.hostname === "esm.sh") {
35
+ const pathname = decodeURIComponent(url.pathname);
36
+ if (pathname.startsWith("/file://")) {
37
+ path = pathname.slice("/file://".length);
38
+ if (!path.startsWith("/"))
39
+ path = `/${path}`;
40
+ }
41
+ }
42
+ if (!path)
43
+ return null;
44
+ if (!/\/veryfront-http-bundle\/http-[a-z0-9]+\.mjs$/i.test(path))
45
+ return null;
46
+ return path;
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
52
+ async function sourceUrlForLocalHttpBundle(specifier, readDependencySource) {
53
+ const path = localHttpBundlePath(specifier);
54
+ if (!path)
55
+ return null;
56
+ try {
57
+ return extractSourceUrl(await readDependencySource(path));
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ export async function rewriteReleaseDependencyImportsForModule(code, options) {
64
+ if (!options.releaseId)
65
+ return code;
66
+ if (getHostEnv(RELEASE_ASSET_DEPENDENCY_IMPORT_MAP_ENV_FLAG) !== "1")
67
+ return code;
68
+ if (!code.includes("http") && !code.includes("veryfront-http-bundle"))
69
+ return code;
70
+ const manifest = await getReadyManifestForRenderAsync(options.releaseId);
71
+ if (!manifest || Object.keys(manifest.dependencies).length === 0)
72
+ return code;
73
+ const replacements = new Map();
74
+ for (const imp of await parseImports(code)) {
75
+ if (!imp.n || replacements.has(imp.n))
76
+ continue;
77
+ const direct = dependencyAssetUrl(manifest, imp.n);
78
+ if (direct) {
79
+ replacements.set(imp.n, direct);
80
+ continue;
81
+ }
82
+ const sourceUrl = await sourceUrlForLocalHttpBundle(imp.n, options.readDependencySource);
83
+ if (!sourceUrl)
84
+ continue;
85
+ const assetUrl = dependencyAssetUrl(manifest, sourceUrl);
86
+ if (assetUrl)
87
+ replacements.set(imp.n, assetUrl);
88
+ }
89
+ if (replacements.size === 0)
90
+ return code;
91
+ return await replaceSpecifiers(code, (specifier) => replacements.get(specifier) ?? null);
92
+ }
@@ -34,8 +34,8 @@ export class PageTransition {
34
34
  rootElement.style.opacity = "0";
35
35
  this.pendingTransitionTimeout = dntShim.setTimeout(() => {
36
36
  this.pendingTransitionTimeout = undefined;
37
- // Server-rendered RSC HTML is trusted; validateTrustedHtml provides defense-in-depth
38
- rootElement.innerHTML = validateTrustedHtml(String(data.html));
37
+ // Server-rendered navigation HTML may include framework-managed scripts.
38
+ rootElement.innerHTML = validateTrustedHtml(String(data.html), { allowInlineScripts: true });
39
39
  rootElement.style.opacity = "1";
40
40
  executeScripts(rootElement);
41
41
  applyHeadDirectives(rootElement);
@@ -7,6 +7,8 @@ interface ValidateTrustedHtmlOptions {
7
7
  strict?: boolean;
8
8
  /** Log warnings for suspicious patterns */
9
9
  warn?: boolean;
10
+ /** Allow framework-emitted script tags in trusted navigation HTML */
11
+ allowInlineScripts?: boolean;
10
12
  }
11
13
  /**
12
14
  * Validate trusted HTML from server (defense-in-depth).
@@ -1 +1 @@
1
- {"version":3,"file":"html-sanitizer.d.ts","sourceRoot":"","sources":["../../../../src/src/security/client/html-sanitizer.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,CAAC;AAoBtB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAOnF;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAwBxD;AAiBD,UAAU,0BAA0B;IAClC,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAcR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC,GAAG,cAAc,CA+BjB"}
1
+ {"version":3,"file":"html-sanitizer.d.ts","sourceRoot":"","sources":["../../../../src/src/security/client/html-sanitizer.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,CAAC;AAoBtB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAOnF;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAwBxD;AAiBD,UAAU,0BAA0B;IAClC,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC,GAAG,cAAc,CA+BjB"}
@@ -73,8 +73,10 @@ function isDevMode() {
73
73
  * @throws Error if suspicious patterns detected in strict mode or production
74
74
  */
75
75
  export function validateTrustedHtml(html, options = {}) {
76
- const { strict = false, warn = true } = options;
76
+ const { allowInlineScripts = false, strict = false, warn = true } = options;
77
77
  for (const { pattern, name } of createSuspiciousPatterns()) {
78
+ if (allowInlineScripts && name === "inline script")
79
+ continue;
78
80
  pattern.lastIndex = 0;
79
81
  if (!pattern.test(html))
80
82
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"data-endpoint-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/module/data-endpoint-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAKhE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,qBAAqB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,EAC/D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,aAAa,EAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAC1C,OAAO,CAAC,aAAa,CAAC,CAgExB"}
1
+ {"version":3,"file":"data-endpoint-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/module/data-endpoint-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAKhE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,qBAAqB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,EAC/D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,aAAa,EAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAC1C,OAAO,CAAC,aAAa,CAAC,CAiExB"}
@@ -6,7 +6,8 @@ import { serverLogger } from "../../../../utils/index.js";
6
6
  export function handleDataEndpoint(req, pathname, ctx, createResponseBuilder, respond, getErrorMessage) {
7
7
  return withSpan("module.data.handle", async () => {
8
8
  try {
9
- const encSlug = pathname.replace("/_veryfront/data/", "").replace(/\.json$/, "");
9
+ const rawSlug = pathname.replace("/_veryfront/data/", "").replace(/\.json$/, "");
10
+ const encSlug = rawSlug === "index" ? "" : rawSlug;
10
11
  const renderer = await getRendererForProject(ctx);
11
12
  const result = await renderer.renderPage(encSlug);
12
13
  const data = {
@@ -1 +1 @@
1
- {"version":3,"file":"page-module-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/module/page-module-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAMhE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,qBAAqB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,EAC/D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,aAAa,EAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAC1C,OAAO,CAAC,aAAa,CAAC,CAmExB"}
1
+ {"version":3,"file":"page-module-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/module/page-module-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAYhE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,qBAAqB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,EAC/D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,aAAa,EAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAC1C,OAAO,CAAC,aAAa,CAAC,CA4ExB"}
@@ -4,6 +4,11 @@ import { getRendererForProject } from "../../../shared/renderer-factory.js";
4
4
  import { shouldUseNoCacheHeadersFromHandler } from "../../../context/enriched-context.js";
5
5
  import { withSpan } from "../../../../observability/tracing/otlp-setup.js";
6
6
  import { serverLogger } from "../../../../utils/index.js";
7
+ import { VeryfrontError } from "../../../../errors/index.js";
8
+ function isPageModuleNotFound(error) {
9
+ return error instanceof VeryfrontError &&
10
+ (error.status === 404 || error.slug === "file-not-found" || error.slug === "page-not-found");
11
+ }
7
12
  export function handlePageModule(req, pathname, ctx, createResponseBuilder, respond, getErrorMessage) {
8
13
  return withSpan("module.page.handle", async () => {
9
14
  try {
@@ -35,6 +40,12 @@ export function handlePageModule(req, pathname, ctx, createResponseBuilder, resp
35
40
  return respond(builder.withCache(cacheMode).withETag(etag).javascript(code, 200));
36
41
  }
37
42
  catch (error) {
43
+ if (isPageModuleNotFound(error)) {
44
+ return respond(ResponseBuilder.error(404, "Module not found", req, {
45
+ securityConfig: ctx.securityConfig,
46
+ corsConfig: ctx.securityConfig?.cors,
47
+ }));
48
+ }
38
49
  // Log the full error server-side but return a generic message
39
50
  // to avoid leaking internal details (Babel/TS errors, file paths, etc.)
40
51
  serverLogger.error("[page-module] Failed to generate module", {
@@ -1 +1 @@
1
- {"version":3,"file":"static.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/static.handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAgBnG,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,EAAE,eAAe,CAOvB;IAEF,OAAO,CAAC,aAAa,CAA2B;IAEhD,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAajE,OAAO,CAAC,cAAc;CAuEvB"}
1
+ {"version":3,"file":"static.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/static.handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAkCnG,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,EAAE,eAAe,CAOvB;IAEF,OAAO,CAAC,aAAa,CAA2B;IAEhD,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAejE,OAAO,CAAC,cAAc;CAwEvB"}
@@ -18,6 +18,22 @@ import { computeEtag } from "../utils/etag.js";
18
18
  function isHtmlResponse(contentType) {
19
19
  return /\btext\/html\b/i.test(contentType);
20
20
  }
21
+ function isProductionBuildAssetPath(pathname) {
22
+ return pathname === "/_veryfront/app.js" ||
23
+ pathname === "/_veryfront/client.js" ||
24
+ pathname === "/_veryfront/router.js" ||
25
+ pathname === "/_veryfront/prefetch.js" ||
26
+ pathname === "/_veryfront/hydration-runtime.js" ||
27
+ pathname === "/_veryfront/manifest.json" ||
28
+ pathname.startsWith("/_veryfront/chunks/") ||
29
+ pathname.startsWith("/_veryfront/pages/") ||
30
+ pathname.startsWith("/_veryfront/data/") ||
31
+ pathname.startsWith("/_vf/assets/");
32
+ }
33
+ function isDynamicBuildFallbackPath(pathname) {
34
+ return pathname.startsWith("/_veryfront/pages/") ||
35
+ pathname.startsWith("/_veryfront/data/");
36
+ }
21
37
  export class StaticHandler extends BaseHandler {
22
38
  metadata = {
23
39
  name: "StaticHandler",
@@ -33,8 +49,9 @@ export class StaticHandler extends BaseHandler {
33
49
  if (method !== "GET" && method !== "HEAD")
34
50
  return Promise.resolve(this.continue());
35
51
  const pathname = new URL(req.url).pathname;
36
- if (pathname.startsWith("/_"))
52
+ if (pathname.startsWith("/_") && !isProductionBuildAssetPath(pathname)) {
37
53
  return Promise.resolve(this.continue());
54
+ }
38
55
  return this.withProxyContext(ctx, async () => {
39
56
  const response = await this.tryServeStatic(req, pathname, ctx);
40
57
  return response ? this.respond(response) : this.continue();
@@ -55,6 +72,8 @@ export class StaticHandler extends BaseHandler {
55
72
  isLocalProject: isLocal,
56
73
  });
57
74
  if (!result) {
75
+ if (isDynamicBuildFallbackPath(pathname))
76
+ return null;
58
77
  if (!this.staticService.isAssetRequest(pathname))
59
78
  return null;
60
79
  return builder
@@ -21,6 +21,8 @@ interface ServerOptions {
21
21
  defaultProjectSlug?: string;
22
22
  /** Default project ID when not provided via proxy headers (for tests/local mode) */
23
23
  defaultProjectId?: string;
24
+ /** Default release ID when not provided via proxy headers (for standalone production mode) */
25
+ defaultReleaseId?: string;
24
26
  /** Default environment for standalone mode (preview or production). Defaults to preview for safety. */
25
27
  defaultEnvironment?: "preview" | "production";
26
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"production-server.d.ts","sourceRoot":"","sources":["../../../src/src/server/production-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA6BrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAgFtE,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAC9C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,oFAAoF;IACpF,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,8FAA8F;IAC9F,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,gCAAgC;AAChC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,YAAY,CAAC,CA0JvB"}
1
+ {"version":3,"file":"production-server.d.ts","sourceRoot":"","sources":["../../../src/src/server/production-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA6BrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAgFtE,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAC9C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,oFAAoF;IACpF,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,8FAA8F;IAC9F,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,gCAAgC;AAChC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,YAAY,CAAC,CA4JvB"}
@@ -80,7 +80,7 @@ async function prewarmLocalProductionCSSArtifacts(adapter, options) {
80
80
  /** Starts production server. */
81
81
  export function startProductionServer(options) {
82
82
  return withSpan("server.startProductionServer", async () => {
83
- const { projectDir, port, bindAddress = "0.0.0.0", signal, debug, defaultProjectSlug, defaultProjectId, defaultEnvironment, requestInterceptor, bootstrapResult, discoveryConfig, localProjects, } = options;
83
+ const { projectDir, port, bindAddress = "0.0.0.0", signal, debug, defaultProjectSlug, defaultProjectId, defaultReleaseId, defaultEnvironment, requestInterceptor, bootstrapResult, discoveryConfig, localProjects, } = options;
84
84
  const baseAdapter = options.adapter ?? (await runtime.get());
85
85
  const memoryMonitoringConfig = startConfiguredMemoryMonitoring(baseAdapter.env);
86
86
  const ownsMemoryMonitoring = memoryMonitoringConfig.enabled;
@@ -142,6 +142,7 @@ export function startProductionServer(options) {
142
142
  config: bootstrap.config,
143
143
  defaultProjectSlug,
144
144
  defaultProjectId,
145
+ defaultReleaseId,
145
146
  defaultEnvironment,
146
147
  localProjects,
147
148
  });
@@ -56,6 +56,8 @@ export interface RuntimeHandlerOptions {
56
56
  defaultProjectSlug?: string;
57
57
  /** Default project ID when not provided via proxy headers (for tests/local mode) */
58
58
  defaultProjectId?: string;
59
+ /** Default release ID when not provided via proxy headers (for standalone production mode) */
60
+ defaultReleaseId?: string;
59
61
  /** Default environment for standalone mode (preview or production). Defaults to preview for safety. */
60
62
  defaultEnvironment?: "preview" | "production";
61
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAmCpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAiErE,OAAO,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAMtF,2CAA2C;AAC3C,eAAO,MAAM,aAAa,msBAmChB,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE,mBAAwB,GAC7B;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAuB5D;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CAC/C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE,qBAAsC,GAC3C,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAqcnE;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAmCpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAiErE,OAAO,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAMtF,2CAA2C;AAC3C,eAAO,MAAM,aAAa,msBAmChB,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE,mBAAwB,GAC7B;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAuB5D;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CAC/C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE,qBAAsC,GAC3C,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAscnE;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC"}
@@ -368,6 +368,7 @@ export function createVeryfrontHandler(projectDir, adapter, opts = { projectDir
368
368
  reqCtx,
369
369
  defaultProjectSlug: opts.defaultProjectSlug,
370
370
  defaultProjectId: opts.defaultProjectId,
371
+ defaultReleaseId: opts.defaultReleaseId,
371
372
  wsSlugOverride,
372
373
  }));
373
374
  updateRequestProfileContext({ projectSlug: projectRes.projectSlug });
@@ -84,6 +84,8 @@ interface ProjectResolutionOptions {
84
84
  defaultProjectSlug: string | undefined;
85
85
  /** Default project ID for standalone mode */
86
86
  defaultProjectId: string | undefined;
87
+ /** Default release ID for standalone mode */
88
+ defaultReleaseId?: string | undefined;
87
89
  /** WS slug override from query param */
88
90
  wsSlugOverride: string | undefined;
89
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-resolution.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/project-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-resolution.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/project-resolution.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,7 @@ export async function resolveProject(req, url, headers, opts) {
87
87
  resolvedSlugBeforeDefault === opts.defaultProjectSlug;
88
88
  let projectId = headers.projectId ??
89
89
  (slugMatchesDefault ? opts.defaultProjectId : undefined);
90
- let releaseId = headers.releaseId;
90
+ let releaseId = headers.releaseId ?? opts.defaultReleaseId;
91
91
  let environmentName;
92
92
  let proxyEnv = parseProxyEnvironment(headers.environment ?? null);
93
93
  const shouldSkipDomainLookup = isInternalHost(host);
@@ -1 +1 @@
1
- {"version":3,"file":"rsc-bundles.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,EAAE,MACsr2B,CAAC;AAExt2B,eAAO,MAAM,iBAAiB,EAAE,MACirnB,CAAC"}
1
+ {"version":3,"file":"rsc-bundles.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,EAAE,MAC2u2B,CAAC;AAE7w2B,eAAO,MAAM,iBAAiB,EAAE,MACsunB,CAAC"}