@rebask/core 0.1.0 → 0.1.2

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.
@@ -16,10 +16,10 @@ export function Link({ href, prefetch, scroll, onClick, ref, ...props }) {
16
16
  if (!import.meta.env.PROD || !link || !isPrefetchable(link) || !isLinkVisible(link))
17
17
  return;
18
18
  if (getPrefetchStrategy(prefetch) === "viewport") {
19
- router.prefetch(link.href, { skipShell: true });
19
+ router.prefetch(link.href, { skipShell: true }).catch(() => { });
20
20
  }
21
21
  else {
22
- router.prefetchStatic(link.href);
22
+ router.prefetchStatic(link.href).catch(() => { });
23
23
  }
24
24
  };
25
25
  useEffect(() => {
@@ -31,17 +31,17 @@ export function Link({ href, prefetch, scroll, onClick, ref, ...props }) {
31
31
  const strategy = getPrefetchStrategy(prefetch);
32
32
  const onPrefetchStatic = () => {
33
33
  if (isPrefetchable(link))
34
- router.prefetchStatic(link.href);
34
+ router.prefetchStatic(link.href).catch(() => { });
35
35
  };
36
36
  const onPrefetchFull = () => {
37
37
  if (isPrefetchable(link))
38
- router.prefetch(link.href);
38
+ router.prefetch(link.href).catch(() => { });
39
39
  };
40
40
  if (strategy === "viewport") {
41
41
  // A viewport full prefetch goes for the full RSC directly instead of a shell.
42
42
  return listenLinkViewport(link, () => {
43
43
  if (isPrefetchable(link))
44
- router.prefetch(link.href, { skipShell: true });
44
+ router.prefetch(link.href, { skipShell: true }).catch(() => { });
45
45
  });
46
46
  }
47
47
  if (strategy === "intent") {
@@ -18,10 +18,10 @@ export function PrefetchLinks({ prefetch }) {
18
18
  return;
19
19
  }
20
20
  if (strategy === "viewport") {
21
- router.prefetch(el.href, { skipShell: true });
21
+ router.prefetch(el.href, { skipShell: true }).catch(() => { });
22
22
  }
23
23
  else {
24
- router.prefetchStatic(el.href);
24
+ router.prefetchStatic(el.href).catch(() => { });
25
25
  }
26
26
  });
27
27
  };
@@ -48,19 +48,19 @@ export function PrefetchLinks({ prefetch }) {
48
48
  const strategy = getPrefetchStrategy(prefetch);
49
49
  const onPrefetchStatic = (el) => {
50
50
  if (el instanceof HTMLAnchorElement && isPrefetchable(el)) {
51
- router.prefetchStatic(el.href);
51
+ router.prefetchStatic(el.href).catch(() => { });
52
52
  }
53
53
  };
54
54
  const onPrefetchFull = (el) => {
55
55
  if (el instanceof HTMLAnchorElement && isPrefetchable(el)) {
56
- router.prefetch(el.href);
56
+ router.prefetch(el.href).catch(() => { });
57
57
  }
58
58
  };
59
59
  if (strategy === "viewport") {
60
60
  // A viewport full prefetch goes for the full RSC directly, never a shell.
61
61
  return listenViewport((el) => {
62
62
  if (el instanceof HTMLAnchorElement && isPrefetchable(el)) {
63
- router.prefetch(el.href, { skipShell: true });
63
+ router.prefetch(el.href, { skipShell: true }).catch(() => { });
64
64
  }
65
65
  });
66
66
  }
@@ -6,6 +6,7 @@ import { AppRoot } from "./components/app-root.js";
6
6
  import { learnRoutePrediction } from "./lib/client-route-prediction.js";
7
7
  import { captureClientTraceData, getClientTraceHeaders, setClientTraceData, } from "./lib/client-trace.js";
8
8
  import { getDeploymentIdHeader } from "./lib/deployment-id.js";
9
+ import { reloadForDeploymentMismatch } from "./lib/deployment-reload.js";
9
10
  import { readDocumentRoute } from "./lib/document-route.js";
10
11
  import { HandledDeploymentMismatch, isRebaskServerError, ServerFunctionError, } from "./lib/errors.js";
11
12
  import { REBASK_ACTION_HEADER } from "./lib/ppr/headers.js";
@@ -55,8 +56,10 @@ async function main() {
55
56
  cache.handleDeploymentMismatch(response, url, "action");
56
57
  }
57
58
  catch (error) {
58
- if (error instanceof HandledDeploymentMismatch)
59
+ if (error instanceof HandledDeploymentMismatch) {
60
+ reloadForDeploymentMismatch(error.event);
59
61
  return;
62
+ }
60
63
  throw error;
61
64
  }
62
65
  // Non-Flight responses happen when the server rejects the request before action
@@ -0,0 +1,3 @@
1
+ import type { DeploymentMismatchEvent } from "../deployment.js";
2
+ export declare function reloadForDeploymentMismatch(event: DeploymentMismatchEvent): void;
3
+ //# sourceMappingURL=deployment-reload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-reload.d.ts","sourceRoot":"","sources":["../../src/lib/deployment-reload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAI/D,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,uBAAuB,QAOzE"}
@@ -0,0 +1,9 @@
1
+ const RELOAD_KEY = "rebask:deployment-reload";
2
+ export function reloadForDeploymentMismatch(event) {
3
+ // A mismatch can survive a reload when a CDN keeps serving an older asset, so reload at most
4
+ // once for each deployment.
5
+ if (sessionStorage.getItem(RELOAD_KEY) === event.receivedDeploymentId)
6
+ return;
7
+ sessionStorage.setItem(RELOAD_KEY, event.receivedDeploymentId);
8
+ window.location.reload();
9
+ }
@@ -31,7 +31,8 @@ export declare class ServerFunctionError extends Error {
31
31
  }
32
32
  /** Internal error used when there's a mismatch error in the router */
33
33
  export declare class HandledDeploymentMismatch extends Error {
34
- constructor();
34
+ readonly event: DeploymentMismatchEvent;
35
+ constructor(event: DeploymentMismatchEvent);
35
36
  }
36
37
  export declare function isHangingPromiseError(error: unknown): error is HangingPromiseError;
37
38
  export declare function isPrerenderAbortError(error: unknown): error is PrerenderAbortError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAM/D,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AActE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,4BAAyB;IAExC,YAAY,UAAU,EAAE,MAAM,EAE7B;CACD;AAED,yFAAyF;AACzF,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,4BAAyB;IAExC,cAGC;CACD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,kCAAyB;IAExC,YAAY,OAAO,EAAE,MAAM,EAK1B;CACD;AAED,8EAA8E;AAC9E,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,kCAAyB;IAExC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAExC;CACD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,EAAE,uBAAuB;IAAnD,YAAqB,KAAK,EAAE,uBAAuB,EAElD;CACD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAG5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAFxB,YACC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EAIvB;CACD;AAED,sEAAsE;AACtE,qBAAa,yBAA0B,SAAQ,KAAK;IACnD,cAEC;CACD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG3D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAM/D,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AActE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,4BAAyB;IAExC,YAAY,UAAU,EAAE,MAAM,EAE7B;CACD;AAED,yFAAyF;AACzF,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,4BAAyB;IAExC,cAGC;CACD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,kCAAyB;IAExC,YAAY,OAAO,EAAE,MAAM,EAK1B;CACD;AAED,8EAA8E;AAC9E,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,kCAAyB;IAExC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAExC;CACD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,EAAE,uBAAuB;IAAnD,YAAqB,KAAK,EAAE,uBAAuB,EAElD;CACD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAG5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAFxB,YACC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EAIvB;CACD;AAED,sEAAsE;AACtE,qBAAa,yBAA0B,SAAQ,KAAK;IACvC,QAAQ,CAAC,KAAK,EAAE,uBAAuB;IAAnD,YAAqB,KAAK,EAAE,uBAAuB,EAElD;CACD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG3D"}
@@ -62,8 +62,10 @@ export class ServerFunctionError extends Error {
62
62
  }
63
63
  /** Internal error used when there's a mismatch error in the router */
64
64
  export class HandledDeploymentMismatch extends Error {
65
- constructor() {
65
+ event;
66
+ constructor(event) {
66
67
  super("handled deployment mismatch");
68
+ this.event = event;
67
69
  }
68
70
  }
69
71
  export function isHangingPromiseError(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"router-cache.d.ts","sourceRoot":"","sources":["../../src/lib/router-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-cache.d.ts","sourceRoot":"","sources":["../../src/lib/router-cache.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { atom } from "@lfades/atom";
2
2
  import { getDeploymentId, REBASK_DEPLOYMENT_ID_HEADER } from "./deployment-id.js";
3
+ import { reloadForDeploymentMismatch } from "./deployment-reload.js";
3
4
  import { DeploymentMismatchError, HandledDeploymentMismatch } from "./errors.js";
4
5
  import { getRouteTreeUrl } from "./route-prediction.js";
5
6
  import { buildSlotKey, FLAG_LAYOUT, getNodeKey, KEY_SEPARATOR, segmentLocationMatches, segmentPathToShellPattern, segmentToCacheKey, } from "./segment-utils.js";
@@ -655,11 +656,13 @@ export class RouterCache {
655
656
  if (!id || !deploymentId || id === deploymentId)
656
657
  return;
657
658
  const event = { kind, url: String(url), deploymentId, receivedDeploymentId: id };
658
- const action = this.onDeploymentMismatch?.(event) ?? "reload";
659
+ const action = this.onDeploymentMismatch?.(event);
659
660
  if (action === "throw") {
660
661
  throw new DeploymentMismatchError(event);
661
662
  }
662
- window.location.href = event.url;
663
- throw new HandledDeploymentMismatch();
663
+ if (action === "reload") {
664
+ reloadForDeploymentMismatch(event);
665
+ }
666
+ throw new HandledDeploymentMismatch(event);
664
667
  }
665
668
  }
@@ -1 +1 @@
1
- {"version":3,"file":"observe-navigations.d.ts","sourceRoot":"","sources":["../src/observe-navigations.tsx"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAgB,kBAAkB,SAkEjC"}
1
+ {"version":3,"file":"observe-navigations.d.ts","sourceRoot":"","sources":["../src/observe-navigations.tsx"],"names":[],"mappings":"AAcA;;;GAGG;AACH,wBAAgB,kBAAkB,SAsEjC"}
@@ -1,5 +1,7 @@
1
1
  import { useEffect } from "react";
2
2
  import { useRouterCache } from "./components/cache-slot.js";
3
+ import { reloadForDeploymentMismatch } from "./lib/deployment-reload.js";
4
+ import { HandledDeploymentMismatch } from "./lib/errors.js";
3
5
  import { beginNavigation, createNavigationIntent, isCurrentNavigation, pendingScrollAtom, } from "./lib/scroll.js";
4
6
  import { useRouter } from "./router.js";
5
7
  /**
@@ -31,7 +33,11 @@ export function ObserveNavigations() {
31
33
  .prefetch(window.location.href, { onRouteTree: activate })
32
34
  .then((response) => activate(response, true))
33
35
  // React receives rendering failures separately. This catch prevents a duplicate unhandled rejection.
34
- .catch(() => { });
36
+ .catch((error) => {
37
+ if (error instanceof HandledDeploymentMismatch) {
38
+ reloadForDeploymentMismatch(error.event);
39
+ }
40
+ });
35
41
  }
36
42
  function onPopstate() {
37
43
  onNavigation(beginNavigation(), null);
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.tsx"],"names":[],"mappings":"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"}
package/dist/router.js CHANGED
@@ -8,6 +8,7 @@ import { useSegment } from "./components/segment-boundary.js";
8
8
  import { denyRoutePrediction, getRoutePathInfo, learnedPredictions, learnRoutePrediction, predictRouteTree, } from "./lib/client-route-prediction.js";
9
9
  import { captureClientTraceData, getClientTraceHeaders } from "./lib/client-trace.js";
10
10
  import { getDeploymentIdHeader } from "./lib/deployment-id.js";
11
+ import { reloadForDeploymentMismatch } from "./lib/deployment-reload.js";
11
12
  import { HandledDeploymentMismatch, DeploymentMismatchError } from "./lib/errors.js";
12
13
  import { extractSegmentHints } from "./lib/extract-segment-hints.js";
13
14
  import { REBASK_SHELL_HEADER, REBASK_TAIL_HEADER, REBASK_TRAILER_HEADER, REBASK_TREE_HEADER, } from "./lib/ppr/headers.js";
@@ -540,14 +541,7 @@ class Router {
540
541
  const { routePrediction: expectedRoutePrediction } = routeTreeResponse;
541
542
  const missing = this.cache.findMissingSegmentLocations(routeTreeResponse);
542
543
  if (missing.length > 0) {
543
- try {
544
- await Promise.all(missing.map((segment) => this.prefetchSegment(segment, dedupe, expectedRoutePrediction, skipShell)));
545
- }
546
- catch (error) {
547
- if (error instanceof HandledDeploymentMismatch)
548
- return;
549
- throw error;
550
- }
544
+ await Promise.all(missing.map((segment) => this.prefetchSegment(segment, dedupe, expectedRoutePrediction, skipShell)));
551
545
  }
552
546
  if (isCurrent())
553
547
  this.applyRoutePrediction(routeTreeResponse);
@@ -738,12 +732,18 @@ class Router {
738
732
  const target = getUrl(url);
739
733
  learnedPredictions.clear();
740
734
  this.cache.markRouteDataStale(scope === "page");
741
- const routeTreeResponse = await this.prefetchRouteTree(target.href, false, dedupe);
735
+ const routeTreeResponse = await this.prefetchRouteTree(target.href, false, dedupe).catch((error) => {
736
+ if (error instanceof HandledDeploymentMismatch)
737
+ reloadForDeploymentMismatch(error.event);
738
+ throw error;
739
+ });
742
740
  if (!isCurrent())
743
741
  return routeTreeResponse;
744
742
  const pending = this.prefetchSegments(routeTreeResponse, dedupe, true).catch((error) => {
745
- if (error instanceof HandledDeploymentMismatch)
743
+ if (error instanceof HandledDeploymentMismatch) {
744
+ reloadForDeploymentMismatch(error.event);
746
745
  return;
746
+ }
747
747
  console.error("[rebask] refresh failed to prefetch segments:", error);
748
748
  });
749
749
  if (isCurrent() && isCurrentNavigation(navigationIntent)) {
@@ -860,6 +860,8 @@ class Router {
860
860
  }
861
861
  })
862
862
  .catch((error) => {
863
+ if (error instanceof HandledDeploymentMismatch)
864
+ return;
863
865
  console.error("[rebask] revalidate failed to prefetch active segments:", error);
864
866
  }));
865
867
  this.cache.restoreRouteTree(currentResponse);
@@ -879,6 +881,8 @@ class Router {
879
881
  !segmentLocationMatches(segmentLocation, currentSearchParams));
880
882
  }
881
883
  work.push(...inactive.map((segmentLocation) => this.prefetchSegment(segmentLocation, false).catch((error) => {
884
+ if (error instanceof HandledDeploymentMismatch)
885
+ return;
882
886
  console.error("[rebask] revalidate failed to prefetch segment:", error);
883
887
  })));
884
888
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebask/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Vite plugin and runtime for React Server Components",
5
5
  "homepage": "https://github.com/lfades/vext#readme",
6
6
  "license": "MIT",