react-router 0.0.0-experimental-73e447577 → 0.0.0-experimental-4e44d47

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 (30) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/development/{chunk-WQE2SM7S.js → chunk-7B7CUJYE.js} +7 -4
  3. package/dist/{production/chunk-TA3WUUL6.js → development/chunk-MTLWRICG.js} +272 -158
  4. package/dist/development/{chunk-NKIXC2FA.mjs → chunk-PSQFTIPQ.mjs} +71 -66
  5. package/dist/development/{chunk-PF7FO4KS.mjs → chunk-XVVWTPHF.mjs} +122 -5
  6. package/dist/development/dom-export.js +3 -3
  7. package/dist/development/dom-export.mjs +3 -3
  8. package/dist/development/index-react-server-client.js +4 -4
  9. package/dist/development/index-react-server-client.mjs +2 -2
  10. package/dist/development/index-react-server.js +5 -2
  11. package/dist/development/index-react-server.mjs +5 -2
  12. package/dist/development/index.js +165 -160
  13. package/dist/development/index.mjs +3 -3
  14. package/dist/development/lib/types/internal.js +1 -1
  15. package/dist/development/lib/types/internal.mjs +1 -1
  16. package/dist/production/{chunk-YUNRQEIK.mjs → chunk-GSSVRQ6M.mjs} +122 -5
  17. package/dist/production/{chunk-TUGDEB6V.mjs → chunk-IZVJSKMU.mjs} +71 -66
  18. package/dist/production/{chunk-VRFRIIGI.js → chunk-OXRQQZPR.js} +7 -4
  19. package/dist/{development/chunk-SOMUQ5BV.js → production/chunk-UNIYMJFU.js} +272 -158
  20. package/dist/production/dom-export.js +3 -3
  21. package/dist/production/dom-export.mjs +3 -3
  22. package/dist/production/index-react-server-client.js +4 -4
  23. package/dist/production/index-react-server-client.mjs +2 -2
  24. package/dist/production/index-react-server.js +5 -2
  25. package/dist/production/index-react-server.mjs +5 -2
  26. package/dist/production/index.js +165 -160
  27. package/dist/production/index.mjs +3 -3
  28. package/dist/production/lib/types/internal.js +1 -1
  29. package/dist/production/lib/types/internal.mjs +1 -1
  30. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # `react-router`
2
2
 
3
+ ## 7.9.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Do not try to use `turbo-stream` to decode CDN errors that never reached the server ([#14385](https://github.com/remix-run/react-router/pull/14385))
8
+ - We used to do this but lost this check with the adoption of single fetch
9
+
10
+ - Fix Data Mode regression causing a 404 during initial load in when `middleware` exists without any `loader` functions ([#14393](https://github.com/remix-run/react-router/pull/14393))
11
+
12
+ ## 7.9.2
13
+
14
+ ### Patch Changes
15
+
16
+ - - Update client-side router to run client `middleware` on initial load even if no loaders exist ([#14348](https://github.com/remix-run/react-router/pull/14348))
17
+ - Update `createRoutesStub` to run route middleware
18
+ - You will need to set the `<RoutesStub future={{ v8_middleware: true }} />` flag to enable the proper `context` type
19
+
20
+ - Update Lazy Route Discovery manifest requests to use a singular comma-separated `paths` query param instead of repeated `p` query params ([#14321](https://github.com/remix-run/react-router/pull/14321))
21
+ - This is because Cloudflare has a hard limit of 100 URL search param key/value pairs when used as a key for caching purposes
22
+ - If more that 100 paths were included, the cache key would be incomplete and could produce false-positive cache hits
23
+
24
+ - \[UNSTABLE] Add `fetcher.unstable_reset()` API ([#14206](https://github.com/remix-run/react-router/pull/14206))
25
+
26
+ - Made useOutlet element reference have stable identity in-between route chages ([#13382](https://github.com/remix-run/react-router/pull/13382))
27
+
28
+ - feat: enable full transition support for the rsc router ([#14362](https://github.com/remix-run/react-router/pull/14362))
29
+
30
+ - In RSC Data Mode, handle SSR'd client errors and re-try in the browser ([#14342](https://github.com/remix-run/react-router/pull/14342))
31
+
32
+ - Support `middleware` prop on `<Route>` for usage with a data router via `createRoutesFromElements` ([#14357](https://github.com/remix-run/react-router/pull/14357))
33
+
34
+ - Handle encoded question mark and hash characters in ancestor splat routes ([#14249](https://github.com/remix-run/react-router/pull/14249))
35
+
36
+ - Fail gracefully on manifest version mismatch logic if `sessionStorage` access is blocked ([#14335](https://github.com/remix-run/react-router/pull/14335))
37
+
3
38
  ## 7.9.1
4
39
 
5
40
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
2
- * react-router v0.0.0-experimental-73e447577
2
+ * react-router v0.0.0-experimental-4e44d47
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -4429,7 +4429,10 @@ function getDataStrategyMatch(mapRouteProperties, manifest, request, pattern, ma
4429
4429
  return shouldRevalidateLoader(match, unstable_shouldRevalidateArgs);
4430
4430
  },
4431
4431
  resolve(handlerOverride) {
4432
- if (isUsingNewApi || shouldLoad || handlerOverride && !isMutationMethod(request.method) && (match.route.lazy || match.route.loader)) {
4432
+ let { lazy, loader, middleware } = match.route;
4433
+ let callHandler = isUsingNewApi || shouldLoad || handlerOverride && !isMutationMethod(request.method) && (lazy || loader);
4434
+ let isMiddlewareOnlyRoute = middleware && middleware.length > 0 && !loader && !lazy;
4435
+ if (callHandler && !isMiddlewareOnlyRoute) {
4433
4436
  return callLoaderOrAction({
4434
4437
  request,
4435
4438
  pattern,
@@ -6240,8 +6243,8 @@ async function fetchAndDecodeViaTurboStream(args, basename, targetRoutes) {
6240
6243
  }
6241
6244
  }
6242
6245
  let res = await fetch(url, await createRequestInit(request));
6243
- if (res.status === 404 && !res.headers.has("X-Remix-Response")) {
6244
- throw new ErrorResponseImpl(404, "Not Found", true);
6246
+ if (res.status >= 400 && !res.headers.has("X-Remix-Response")) {
6247
+ throw new ErrorResponseImpl(res.status, res.statusText, await res.text());
6245
6248
  }
6246
6249
  if (res.status === 204 && res.headers.has("X-Remix-Redirect")) {
6247
6250
  return {