@modern-js/runtime 2.67.11 → 2.68.1

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 (97) hide show
  1. package/dist/cjs/cli/alias.js +1 -1
  2. package/dist/cjs/cli/code.js +6 -3
  3. package/dist/cjs/cli/index.js +4 -2
  4. package/dist/cjs/cli/ssr/index.js +1 -1
  5. package/dist/cjs/cli/template.js +72 -21
  6. package/dist/cjs/cli/template.server.js +62 -13
  7. package/dist/cjs/core/context/index.js +19 -2
  8. package/dist/cjs/core/context/serverPayload.server.js +40 -0
  9. package/dist/cjs/core/server/requestHandler.js +47 -11
  10. package/dist/cjs/router/cli/code/index.js +13 -6
  11. package/dist/cjs/router/cli/code/templates.js +44 -20
  12. package/dist/cjs/router/cli/handler.js +17 -2
  13. package/dist/cjs/router/cli/index.js +6 -5
  14. package/dist/cjs/router/index.js +0 -21
  15. package/dist/cjs/router/internal.js +30 -0
  16. package/dist/cjs/router/runtime/PrefetchLink.js +3 -4
  17. package/dist/cjs/router/runtime/constants.js +2 -2
  18. package/dist/cjs/router/runtime/index.js +1 -12
  19. package/dist/cjs/router/runtime/internal.js +36 -0
  20. package/dist/cjs/router/runtime/plugin.js +135 -76
  21. package/dist/cjs/router/runtime/plugin.node.js +73 -32
  22. package/dist/cjs/router/runtime/rsc-router.js +322 -0
  23. package/dist/cjs/router/runtime/utils.js +76 -1
  24. package/dist/cjs/rsc/client.js +11 -0
  25. package/dist/cjs/rsc/server.js +40 -0
  26. package/dist/esm/cli/alias.js +1 -1
  27. package/dist/esm/cli/code.js +6 -3
  28. package/dist/esm/cli/index.js +4 -2
  29. package/dist/esm/cli/ssr/index.js +1 -1
  30. package/dist/esm/cli/template.js +25 -6
  31. package/dist/esm/cli/template.server.js +3 -3
  32. package/dist/esm/core/context/index.js +14 -1
  33. package/dist/esm/core/context/serverPayload.server.js +15 -0
  34. package/dist/esm/core/server/requestHandler.js +102 -9
  35. package/dist/esm/router/cli/code/index.js +12 -6
  36. package/dist/esm/router/cli/code/templates.js +29 -13
  37. package/dist/esm/router/cli/handler.js +33 -6
  38. package/dist/esm/router/cli/index.js +6 -5
  39. package/dist/esm/router/index.js +0 -6
  40. package/dist/esm/router/internal.js +5 -0
  41. package/dist/esm/router/runtime/PrefetchLink.js +2 -2
  42. package/dist/esm/router/runtime/constants.js +2 -2
  43. package/dist/esm/router/runtime/index.js +1 -9
  44. package/dist/esm/router/runtime/internal.js +10 -0
  45. package/dist/esm/router/runtime/plugin.js +135 -85
  46. package/dist/esm/router/runtime/plugin.node.js +110 -40
  47. package/dist/esm/router/runtime/rsc-router.js +437 -0
  48. package/dist/esm/router/runtime/utils.js +95 -1
  49. package/dist/esm/rsc/client.js +6 -0
  50. package/dist/esm/rsc/server.js +86 -0
  51. package/dist/esm-node/cli/alias.js +1 -1
  52. package/dist/esm-node/cli/code.js +6 -3
  53. package/dist/esm-node/cli/index.js +4 -2
  54. package/dist/esm-node/cli/ssr/index.js +1 -1
  55. package/dist/esm-node/cli/template.js +72 -21
  56. package/dist/esm-node/cli/template.server.js +62 -13
  57. package/dist/esm-node/core/context/index.js +14 -1
  58. package/dist/esm-node/core/context/serverPayload.server.js +15 -0
  59. package/dist/esm-node/core/server/requestHandler.js +45 -9
  60. package/dist/esm-node/router/cli/code/index.js +12 -6
  61. package/dist/esm-node/router/cli/code/templates.js +44 -20
  62. package/dist/esm-node/router/cli/handler.js +17 -2
  63. package/dist/esm-node/router/cli/index.js +6 -5
  64. package/dist/esm-node/router/index.js +0 -6
  65. package/dist/esm-node/router/internal.js +5 -0
  66. package/dist/esm-node/router/runtime/PrefetchLink.js +2 -2
  67. package/dist/esm-node/router/runtime/constants.js +2 -2
  68. package/dist/esm-node/router/runtime/index.js +1 -9
  69. package/dist/esm-node/router/runtime/internal.js +10 -0
  70. package/dist/esm-node/router/runtime/plugin.js +127 -78
  71. package/dist/esm-node/router/runtime/plugin.node.js +75 -34
  72. package/dist/esm-node/router/runtime/rsc-router.js +284 -0
  73. package/dist/esm-node/router/runtime/utils.js +74 -1
  74. package/dist/esm-node/rsc/client.js +6 -0
  75. package/dist/esm-node/rsc/server.js +35 -0
  76. package/dist/types/cli/template.d.ts +4 -2
  77. package/dist/types/cli/template.server.d.ts +2 -1
  78. package/dist/types/common.d.ts +1 -1
  79. package/dist/types/config.d.ts +1 -1
  80. package/dist/types/core/context/index.d.ts +38 -3
  81. package/dist/types/core/context/serverPayload.server.d.ts +3 -0
  82. package/dist/types/core/server/requestHandler.d.ts +1 -1
  83. package/dist/types/index.d.ts +1 -1
  84. package/dist/types/router/cli/code/index.d.ts +1 -0
  85. package/dist/types/router/cli/code/templates.d.ts +4 -2
  86. package/dist/types/router/index.d.ts +0 -2
  87. package/dist/types/router/internal.d.ts +2 -0
  88. package/dist/types/router/runtime/PrefetchLink.d.ts +0 -1
  89. package/dist/types/router/runtime/constants.d.ts +3 -3
  90. package/dist/types/router/runtime/index.d.ts +1 -9
  91. package/dist/types/router/runtime/internal.d.ts +8 -0
  92. package/dist/types/router/runtime/rsc-router.d.ts +14 -0
  93. package/dist/types/router/runtime/utils.d.ts +26 -5
  94. package/dist/types/rsc/client.d.ts +1 -0
  95. package/dist/types/rsc/server.d.ts +1 -0
  96. package/package.json +22 -13
  97. package/static/modern-inline.js +1 -1
@@ -1,16 +1,8 @@
1
1
  import { useRouteLoaderData as useRouteData } from '@modern-js/runtime-utils/router';
2
- import { routerPlugin } from './plugin';
3
- import type { RouterConfig, SingleRouteConfig } from './types';
4
2
  export * from '@modern-js/runtime-utils/router';
5
- export type { SingleRouteConfig, RouterConfig };
6
- export { renderRoutes } from './utils';
7
- export { routerPlugin };
8
- export default routerPlugin;
9
- export { modifyRoutes } from './plugin';
10
- export type { RouterExtendsHooks } from './hooks';
11
- export * from './withRouter';
12
3
  export { Link, NavLink } from './PrefetchLink';
13
4
  export type { LinkProps, NavLinkProps } from './PrefetchLink';
14
5
  export declare const useRouteLoaderData: typeof useRouteData;
15
6
  export { createShouldRevalidate, handleRouteModule, handleRouteModuleError, } from './routeModule';
7
+ export * from './withRouter';
16
8
  export type { LoaderFunction, LoaderFunctionArgs } from './types';
@@ -0,0 +1,8 @@
1
+ import { routerPlugin } from './plugin';
2
+ import type { RouterConfig, SingleRouteConfig } from './types';
3
+ export { routerPlugin };
4
+ export default routerPlugin;
5
+ export type { SingleRouteConfig, RouterConfig };
6
+ export type { RouterExtendsHooks } from './hooks';
7
+ export { renderRoutes } from './utils';
8
+ export { modifyRoutes } from './plugin';
@@ -0,0 +1,14 @@
1
+ import { type StaticHandlerContext } from '@modern-js/runtime-utils/node/router';
2
+ import { type RouteObject } from '@modern-js/runtime-utils/router';
3
+ import React from 'react';
4
+ import type { ServerPayload } from '../../core/context';
5
+ export declare const createServerPayload: (routerContext: StaticHandlerContext, routes: RouteObject[]) => ServerPayload;
6
+ export declare const handleRSCRedirect: (headers: Headers, basename: string, status: number) => Response;
7
+ export declare const prepareRSCRoutes: (routes: RouteObject[]) => Promise<void>;
8
+ export declare const createClientRouterFromPayload: (payload: ServerPayload, originalRoutes: RouteObject[], basename?: string) => import("@modern-js/runtime-utils/remix-router").Router;
9
+ interface RSCStaticRouterProps {
10
+ basename?: string;
11
+ useJsonScript?: boolean;
12
+ }
13
+ export declare const RSCStaticRouter: React.FC<RSCStaticRouterProps>;
14
+ export {};
@@ -1,18 +1,38 @@
1
1
  import { type Router, type StaticHandlerContext } from '@modern-js/runtime-utils/remix-router';
2
+ import { type RouteObject } from '@modern-js/runtime-utils/router';
2
3
  import type { NestedRoute, PageRoute, SSRMode } from '@modern-js/types';
3
- import type React from 'react';
4
+ import React from 'react';
4
5
  import type { RouterConfig } from './types';
5
6
  export declare function getRouteComponents(routes: (NestedRoute | PageRoute)[], { globalApp, ssrMode, props, }: {
6
- globalApp?: React.ComponentType<any>;
7
+ globalApp?: React.ComponentType<GlobalAppProps>;
7
8
  ssrMode?: SSRMode;
8
- props?: Record<string, any>;
9
+ props?: Record<string, unknown>;
9
10
  }): React.ReactElement<any, string | React.JSXElementConstructor<any>>[];
11
+ interface GlobalAppProps {
12
+ Component: React.ComponentType;
13
+ [key: string]: unknown;
14
+ }
15
+ export declare function getRouteObjects(routes: (NestedRoute | PageRoute)[], { globalApp, ssrMode, props, }: {
16
+ globalApp?: React.ComponentType<GlobalAppProps>;
17
+ ssrMode?: SSRMode;
18
+ props?: Record<string, unknown>;
19
+ }): RouteObject[];
20
+ export declare function createRouteObjectsFromConfig({ routesConfig, props, ssrMode, }: {
21
+ routesConfig: RouterConfig['routesConfig'];
22
+ props?: Record<string, unknown>;
23
+ ssrMode?: SSRMode;
24
+ }): RouteObject[] | null;
10
25
  export declare function renderRoutes({ routesConfig, props, ssrMode, }: {
11
26
  routesConfig: RouterConfig['routesConfig'];
12
- props?: Record<string, any>;
27
+ props?: Record<string, unknown>;
13
28
  ssrMode?: SSRMode;
14
29
  }): React.ReactElement<any, string | React.JSXElementConstructor<any>>[] | null;
15
- export declare function getLocation(serverContext: any): string;
30
+ export declare function getLocation(serverContext: {
31
+ request?: {
32
+ pathname?: string;
33
+ url?: string;
34
+ };
35
+ } | undefined): string;
16
36
  export declare const urlJoin: (...parts: string[]) => string;
17
37
  export declare function standardSlash(str: string): string;
18
38
  /**
@@ -25,3 +45,4 @@ export declare function serializeErrors(errors: StaticHandlerContext['errors']):
25
45
  * license at https://github.com/remix-run/remix/blob/main/LICENSE.md
26
46
  */
27
47
  export declare function deserializeErrors(errors: Router['state']['errors']): Router['state']['errors'];
48
+ export {};
@@ -1 +1,2 @@
1
1
  export * from '@modern-js/render/client';
2
+ export declare const isRedirectResponse: (res: Response) => boolean;
@@ -1 +1,2 @@
1
1
  export * from '@modern-js/render/rsc';
2
+ export declare function processRSCStream(rscStream: ReadableStream, controller: ReadableStreamDefaultController<Uint8Array>, encoder: TextEncoder): Promise<void>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.67.11",
18
+ "version": "2.68.1",
19
19
  "engines": {
20
20
  "node": ">=14.17.6"
21
21
  },
@@ -106,6 +106,11 @@
106
106
  "jsnext:source": "./src/router/runtime/server.ts",
107
107
  "default": "./dist/esm/router/runtime/server.js"
108
108
  },
109
+ "./router/internal": {
110
+ "types": "./dist/types/router/internal.d.ts",
111
+ "jsnext:source": "./src/router/internal.ts",
112
+ "default": "./dist/esm/router/internal.js"
113
+ },
109
114
  "./loadable-bundler-plugin": {
110
115
  "types": "./dist/types/cli/ssr/loadable-bundler-plugin.d.ts",
111
116
  "jsnext:source": "./src/cli/ssr/loadable-bundler-plugin.ts",
@@ -178,6 +183,9 @@
178
183
  "router/server": [
179
184
  "./dist/types/router/runtime/server.d.ts"
180
185
  ],
186
+ "router/internal": [
187
+ "./dist/types/router/internal.d.ts"
188
+ ],
181
189
  "loadable-bundler-plugin": [
182
190
  "./dist/types/cli/ssr/loadable-bundler-plugin.d.ts"
183
191
  ],
@@ -204,20 +212,20 @@
204
212
  "@types/styled-components": "^5.1.14",
205
213
  "cookie": "0.7.2",
206
214
  "es-module-lexer": "^1.1.0",
207
- "esbuild": "0.17.19",
215
+ "esbuild": "0.25.5",
208
216
  "invariant": "^2.2.4",
209
217
  "isbot": "3.7.1",
210
218
  "react-helmet": "^6.1.0",
211
219
  "react-is": "^18",
212
- "react-side-effect": "^2.1.1",
220
+ "react-side-effect": "^2.1.2",
213
221
  "styled-components": "^5.3.1",
214
- "@modern-js/plugin": "2.67.11",
215
- "@modern-js/plugin-data-loader": "2.67.11",
216
- "@modern-js/plugin-v2": "2.67.11",
217
- "@modern-js/render": "2.67.11",
218
- "@modern-js/runtime-utils": "2.67.11",
219
- "@modern-js/types": "2.67.11",
220
- "@modern-js/utils": "2.67.11"
222
+ "@modern-js/plugin": "2.68.1",
223
+ "@modern-js/plugin-data-loader": "2.68.1",
224
+ "@modern-js/plugin-v2": "2.68.1",
225
+ "@modern-js/render": "2.68.1",
226
+ "@modern-js/runtime-utils": "2.68.1",
227
+ "@modern-js/utils": "2.68.1",
228
+ "@modern-js/types": "2.68.1"
221
229
  },
222
230
  "peerDependencies": {
223
231
  "react": ">=17",
@@ -225,7 +233,7 @@
225
233
  },
226
234
  "devDependencies": {
227
235
  "@remix-run/web-fetch": "^4.1.3",
228
- "@rsbuild/core": "1.3.22",
236
+ "@rsbuild/core": "1.4.4",
229
237
  "@testing-library/react": "^13.4.0",
230
238
  "@types/cookie": "0.6.0",
231
239
  "@types/invariant": "^2.2.30",
@@ -241,9 +249,10 @@
241
249
  "ts-node": "^10.9.1",
242
250
  "typescript": "^5",
243
251
  "webpack": "^5.99.8",
244
- "@modern-js/app-tools": "2.67.11",
252
+ "@modern-js/app-tools": "2.68.1",
245
253
  "@scripts/build": "2.66.0",
246
- "@scripts/jest-config": "2.66.0"
254
+ "@scripts/jest-config": "2.66.0",
255
+ "@modern-js/core": "2.68.1"
247
256
  },
248
257
  "sideEffects": false,
249
258
  "publishConfig": {
@@ -1 +1 @@
1
- function runWindowFn(){window[document.currentScript.getAttribute("data-fn-name")](...JSON.parse(document.currentScript.getAttribute("data-fn-args")))}function runRouterDataFn(){_ROUTER_DATA[document.currentScript.getAttribute("data-fn-name")](...JSON.parse(document.currentScript.getAttribute("data-fn-args")))}function initRouterData(e){var r=document.getElementById(e);if(r)try{_ROUTER_DATA=JSON.parse(r.textContent)}catch(r){console.error("parse ".concat(e," error"),t),_ROUTER_DATA={}}};initRouterData('__MODERN_ROUTER_DATA__');_ROUTER_DATA.s = function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};_ROUTER_DATA.r = function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};_ROUTER_DATA.p = function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};function mergeLoaderData(e,n){const r=n.reduce((function(e,{key:n,routerDataFnName:r,routerDataFnArgs:a}){const t=a.map((e=>{if("undefined"!==e&&null!==e)return JSON.parse(e)}));return console.info("args",t),{...e,[n]:_ROUTER_DATA[r](...t)}}),{});Object.assign(_ROUTER_DATA.loaderData[e],r)}
1
+ function runWindowFn(){window[document.currentScript.getAttribute("data-fn-name")].apply(window,JSON.parse(document.currentScript.getAttribute("data-fn-args")))}function runRouterDataFn(){_ROUTER_DATA[document.currentScript.getAttribute("data-fn-name")].apply(_ROUTER_DATA,JSON.parse(document.currentScript.getAttribute("data-fn-args")))}function initRouterData(e){var r=document.getElementById(e);if(r)try{_ROUTER_DATA=JSON.parse(r.textContent)}catch(r){console.error("parse ".concat(e," error"),t),_ROUTER_DATA={}}};initRouterData('__MODERN_ROUTER_DATA__');_ROUTER_DATA.s = function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};_ROUTER_DATA.r = function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};_ROUTER_DATA.p = function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};function mergeLoaderData(e,n){var r=n.reduce((function(e,{key:n,routerDataFnName:r,routerDataFnArgs:a}){var t=a.map((e=>{if("undefined"!==e&&null!==e)return JSON.parse(e)}));return console.info("args",t),{...e,[n]:_ROUTER_DATA[r](...t)}}),{});Object.assign(_ROUTER_DATA.loaderData[e],r)}