@rangojs/router 0.0.0-experimental.145 → 0.0.0-experimental.147

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 (46) hide show
  1. package/dist/bin/rango.js +8 -40
  2. package/dist/vite/index.js +840 -243
  3. package/package.json +6 -1
  4. package/src/browser/event-controller.ts +16 -2
  5. package/src/browser/rsc-router.tsx +11 -0
  6. package/src/cache/cache-scope.ts +41 -3
  7. package/src/cache/cf/cf-cache-store.ts +23 -0
  8. package/src/cache/handle-snapshot.ts +22 -1
  9. package/src/cache/memory-segment-store.ts +32 -0
  10. package/src/cache/segment-codec.ts +47 -0
  11. package/src/cache/shell-snapshot.ts +47 -0
  12. package/src/cache/types.ts +27 -0
  13. package/src/cache/vercel/vercel-cache-store.ts +71 -2
  14. package/src/deps/ssr.ts +4 -1
  15. package/src/prerender/build-shell-capture.ts +237 -0
  16. package/src/prerender/shell-manifest-key.ts +20 -0
  17. package/src/prerender/store.ts +10 -1
  18. package/src/router/loader-resolution.ts +16 -0
  19. package/src/router/match-api.ts +9 -2
  20. package/src/router/match-handlers.ts +13 -0
  21. package/src/router/match-middleware/cache-lookup.ts +12 -1
  22. package/src/router/prerender-match.ts +21 -0
  23. package/src/router/segment-resolution/mask-nested.ts +19 -3
  24. package/src/rsc/capture-queue.ts +67 -0
  25. package/src/rsc/rsc-rendering.ts +136 -25
  26. package/src/rsc/shell-build-manifest.ts +244 -0
  27. package/src/rsc/shell-capture.ts +194 -43
  28. package/src/segment-fragments.ts +124 -0
  29. package/src/segment-system.tsx +49 -19
  30. package/src/server/request-context.ts +112 -11
  31. package/src/ssr/index.tsx +151 -22
  32. package/src/ssr/inject-rsc-eager.ts +2 -2
  33. package/src/ssr/preinit-client-references.ts +106 -0
  34. package/src/ssr/ssr-root.tsx +35 -2
  35. package/src/vite/discovery/discover-routers.ts +27 -0
  36. package/src/vite/discovery/prerender-collection.ts +16 -0
  37. package/src/vite/discovery/shell-prerender-phase.ts +395 -0
  38. package/src/vite/discovery/state.ts +42 -0
  39. package/src/vite/index.ts +1 -0
  40. package/src/vite/plugin-types.ts +33 -0
  41. package/src/vite/plugins/version-plugin.ts +8 -0
  42. package/src/vite/plugins/virtual-entries.ts +37 -4
  43. package/src/vite/rango.ts +11 -2
  44. package/src/vite/router-discovery.ts +292 -8
  45. package/src/vite/utils/prerender-utils.ts +25 -6
  46. package/src/vite/utils/shared-utils.ts +4 -2
package/dist/bin/rango.js CHANGED
@@ -1394,7 +1394,7 @@ var init_generate_route_types = __esm({
1394
1394
  function getVirtualVersionContent(version) {
1395
1395
  return `export const VERSION = ${JSON.stringify(version)};`;
1396
1396
  }
1397
- var VIRTUAL_ENTRY_BROWSER, VIRTUAL_ENTRY_SSR, VIRTUAL_IDS;
1397
+ var VIRTUAL_ENTRY_BROWSER, VIRTUAL_IDS;
1398
1398
  var init_virtual_entries = __esm({
1399
1399
  "src/vite/plugins/virtual-entries.ts"() {
1400
1400
  "use strict";
@@ -1434,45 +1434,6 @@ async function initializeApp() {
1434
1434
  }
1435
1435
 
1436
1436
  initializeApp().catch(console.error);
1437
- `.trim();
1438
- VIRTUAL_ENTRY_SSR = `
1439
- import { createFromReadableStream } from "@rangojs/router/internal/deps/ssr";
1440
- import { renderToReadableStream, resume } from "react-dom/server.edge";
1441
- import { prerender } from "react-dom/static.edge";
1442
- import { injectRSCPayload } from "@rangojs/router/internal/deps/html-stream-server";
1443
- import {
1444
- createSSRHandler,
1445
- createShellCaptureHandler,
1446
- createShellResumeHandler,
1447
- } from "@rangojs/router/ssr";
1448
-
1449
- export const renderHTML = createSSRHandler({
1450
- createFromReadableStream,
1451
- renderToReadableStream,
1452
- injectRSCPayload,
1453
- loadBootstrapScriptContent: () =>
1454
- import.meta.viteRsc.loadBootstrapScriptContent("index"),
1455
- });
1456
-
1457
- export const captureShellHTML = createShellCaptureHandler({
1458
- createFromReadableStream,
1459
- renderToReadableStream,
1460
- injectRSCPayload,
1461
- prerender,
1462
- resume,
1463
- loadBootstrapScriptContent: () =>
1464
- import.meta.viteRsc.loadBootstrapScriptContent("index"),
1465
- });
1466
-
1467
- export const resumeShellHTML = createShellResumeHandler({
1468
- createFromReadableStream,
1469
- renderToReadableStream,
1470
- injectRSCPayload,
1471
- prerender,
1472
- resume,
1473
- loadBootstrapScriptContent: () =>
1474
- import.meta.viteRsc.loadBootstrapScriptContent("index"),
1475
- });
1476
1437
  `.trim();
1477
1438
  VIRTUAL_IDS = {
1478
1439
  browser: "virtual:rsc-router/entry.browser.js",
@@ -1613,6 +1574,13 @@ function createVersionPlugin() {
1613
1574
  return {
1614
1575
  name: "@rangojs/router:version",
1615
1576
  enforce: "pre",
1577
+ // The build-time shell capture phase (producer B, #699) stamps entries
1578
+ // with THIS instance's version — the value folded into the shipped worker
1579
+ // — never the discovery temp server's own version-plugin value (a
1580
+ // different Date.now() stamp that would fail the serve-side gate).
1581
+ api: {
1582
+ getBuildVersion: () => currentVersion
1583
+ },
1616
1584
  configResolved(config) {
1617
1585
  isDev = config.command === "serve";
1618
1586
  resolvedCacheDir = config.cacheDir ? String(config.cacheDir).replace(/\\/g, "/") : void 0;