@bleedingdev/modern-js-runtime 3.5.0-ultramodern.102 → 3.5.0-ultramodern.103
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.
- package/dist/cjs/cli/ssr/index.js +1 -0
- package/dist/cjs/core/browser/hydrate.js +31 -27
- package/dist/cjs/core/react/wrapper.js +23 -28
- package/dist/cjs/core/server/requestResponse.js +5 -5
- package/dist/cjs/core/server/scriptOrder.js +1 -1
- package/dist/cjs/core/server/stream/beforeTemplate.worker.js +1 -10
- package/dist/cjs/core/server/utils.js +3 -3
- package/dist/cjs/module-federation/distributed-ssr.js +13 -12
- package/dist/cjs/module-federation/last-known-good.js +1 -1
- package/dist/cjs/module-federation/manifest-recovery-runtime-plugin.js +27 -38
- package/dist/cjs/router/cli/code/index.js +13 -7
- package/dist/cjs/router/cli/code/templates.js +33 -24
- package/dist/cjs/router/cli/handler.js +2 -0
- package/dist/cjs/router/runtime/plugin.js +11 -6
- package/dist/cjs/router/runtime/plugin.node.js +11 -3
- package/dist/cjs/router/runtime/provider.js +2 -2
- package/dist/cjs/router/runtime/redirect.js +51 -0
- package/dist/cjs/router/runtime/routerHelper.js +4 -0
- package/dist/cjs/router/runtime/rsc-router.js +2 -13
- package/dist/cjs/router/runtime/utils.js +3 -2
- package/dist/esm/cli/ssr/index.mjs +1 -0
- package/dist/esm/core/browser/hydrate.mjs +30 -22
- package/dist/esm/core/react/wrapper.mjs +23 -28
- package/dist/esm/core/server/requestResponse.mjs +4 -4
- package/dist/esm/core/server/scriptOrder.mjs +1 -1
- package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +1 -10
- package/dist/esm/core/server/utils.mjs +1 -1
- package/dist/esm/module-federation/distributed-ssr.mjs +13 -12
- package/dist/esm/module-federation/last-known-good.mjs +1 -1
- package/dist/esm/module-federation/manifest-recovery-runtime-plugin.mjs +22 -33
- package/dist/esm/router/cli/code/index.mjs +13 -7
- package/dist/esm/router/cli/code/templates.mjs +33 -24
- package/dist/esm/router/cli/handler.mjs +2 -0
- package/dist/esm/router/runtime/plugin.mjs +13 -8
- package/dist/esm/router/runtime/plugin.node.mjs +12 -4
- package/dist/esm/router/runtime/provider.mjs +2 -2
- package/dist/esm/router/runtime/redirect.mjs +13 -0
- package/dist/esm/router/runtime/routerHelper.mjs +2 -1
- package/dist/esm/router/runtime/rsc-router.mjs +2 -13
- package/dist/esm/router/runtime/utils.mjs +2 -1
- package/dist/esm-node/cli/ssr/index.mjs +1 -0
- package/dist/esm-node/core/browser/hydrate.mjs +30 -22
- package/dist/esm-node/core/react/wrapper.mjs +23 -28
- package/dist/esm-node/core/server/requestResponse.mjs +4 -4
- package/dist/esm-node/core/server/scriptOrder.mjs +1 -1
- package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +1 -10
- package/dist/esm-node/core/server/utils.mjs +1 -1
- package/dist/esm-node/module-federation/distributed-ssr.mjs +13 -12
- package/dist/esm-node/module-federation/last-known-good.mjs +1 -1
- package/dist/esm-node/module-federation/manifest-recovery-runtime-plugin.mjs +22 -33
- package/dist/esm-node/router/cli/code/index.mjs +13 -7
- package/dist/esm-node/router/cli/code/templates.mjs +33 -24
- package/dist/esm-node/router/cli/handler.mjs +2 -0
- package/dist/esm-node/router/runtime/plugin.mjs +13 -8
- package/dist/esm-node/router/runtime/plugin.node.mjs +12 -4
- package/dist/esm-node/router/runtime/provider.mjs +2 -2
- package/dist/esm-node/router/runtime/redirect.mjs +14 -0
- package/dist/esm-node/router/runtime/routerHelper.mjs +2 -1
- package/dist/esm-node/router/runtime/rsc-router.mjs +2 -13
- package/dist/esm-node/router/runtime/utils.mjs +2 -1
- package/dist/types/core/browser/hydrate.d.ts +0 -1
- package/dist/types/core/server/utils.d.ts +1 -1
- package/dist/types/module-federation/distributed-ssr.d.ts +3 -3
- package/dist/types/module-federation/manifest-recovery-runtime-plugin.d.ts +1 -1
- package/dist/types/router/cli/code/index.d.ts +2 -0
- package/dist/types/router/cli/code/templates.d.ts +5 -2
- package/dist/types/router/cli/handler.d.ts +2 -0
- package/dist/types/router/runtime/redirect.d.ts +1 -0
- package/dist/types/router/runtime/routerHelper.d.ts +7 -0
- package/dist/types/router/runtime/rsc-router.d.ts +1 -2
- package/package.json +14 -14
- package/rstest.config.mts +2 -0
|
@@ -23,11 +23,11 @@ export type DistributedSsrFragmentContext = {
|
|
|
23
23
|
required: true;
|
|
24
24
|
resolve?: (remote: string, expose: string, props: Record<string, unknown>) => DistributedSsrFragmentResult | PromiseLike<DistributedSsrFragmentResult>;
|
|
25
25
|
};
|
|
26
|
-
export type DistributedSsrBoundaryProps = {
|
|
26
|
+
export type DistributedSsrBoundaryProps<Props extends object = Record<string, unknown>> = {
|
|
27
27
|
children: ReactNode;
|
|
28
28
|
expose: string;
|
|
29
29
|
fallback: ReactNode;
|
|
30
|
-
fragmentProps?:
|
|
30
|
+
fragmentProps?: Props;
|
|
31
31
|
remote: string;
|
|
32
32
|
};
|
|
33
33
|
export type CreateDistributedSsrComponentOptions<Props extends object> = {
|
|
@@ -49,7 +49,7 @@ export declare function useDistributedSsrFragmentProps<Props extends object>({ b
|
|
|
49
49
|
* Node SSR has no distributed-fragment context and therefore renders the
|
|
50
50
|
* child normally, preserving Module Federation's in-process SSR path.
|
|
51
51
|
*/
|
|
52
|
-
export declare function DistributedSsrBoundary({ children, expose, fallback, fragmentProps, remote, }: DistributedSsrBoundaryProps): import("react").JSX.Element;
|
|
52
|
+
export declare function DistributedSsrBoundary<Props extends object = Record<string, unknown>>({ children, expose, fallback, fragmentProps, remote, }: DistributedSsrBoundaryProps<Props>): import("react").JSX.Element;
|
|
53
53
|
/**
|
|
54
54
|
* Defers creation of the native Module Federation component until React
|
|
55
55
|
* actually renders that child. A workerd request with a verified distributed
|
|
@@ -20,6 +20,6 @@ export type ModuleFederationManifestRecoveryPluginOptions = {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const createModuleFederationManifestRecoveryPlugin: (options?: ModuleFederationManifestRecoveryPluginOptions) => {
|
|
22
22
|
name: string;
|
|
23
|
-
errorLoadRemote(args: ErrorLoadRemoteArgs): Promise<
|
|
23
|
+
errorLoadRemote(args: ErrorLoadRemoteArgs): Promise<unknown>;
|
|
24
24
|
};
|
|
25
25
|
export default createModuleFederationManifestRecoveryPlugin;
|
|
@@ -7,6 +7,8 @@ import type { Entrypoint, NestedRouteForCli, PageRoute } from '@modern-js/types'
|
|
|
7
7
|
export declare function generateRoutesForEntry(entrypoint: Entrypoint, appContext: AppToolsContext): Promise<NestedRouteForCli[]>;
|
|
8
8
|
export declare const generateCode: (appContext: AppToolsContext, config: AppNormalizedConfig, entrypoints: Entrypoint[], api: CLIPluginAPI<AppTools>, options?: {
|
|
9
9
|
hydrateRscClientRoutes?: boolean;
|
|
10
|
+
includeRouteServerLoadersInSsrEntry?: boolean;
|
|
11
|
+
isolateRouteDataInRscLayer?: boolean;
|
|
10
12
|
serverRoutesFileName?: string;
|
|
11
13
|
}) => Promise<Record<string, (NestedRouteForCli | PageRoute)[]>>;
|
|
12
14
|
export declare function generatorRegisterCode(internalDirectory: string, entryName: string, code: string): void;
|
|
@@ -3,7 +3,7 @@ import type { Entrypoint, NestedRouteForCli, PageRoute, RouteLegacy, SSRMode } f
|
|
|
3
3
|
export declare const routesForServer: ({ routesForServerLoaderMatches, }: {
|
|
4
4
|
routesForServerLoaderMatches: (NestedRouteForCli | PageRoute)[];
|
|
5
5
|
}) => string;
|
|
6
|
-
export declare const fileSystemRoutes: ({ metaName, routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks, isRscClientBundle, hydrateRscClientRoutes, srcDirectory, internalSrcAlias, }: {
|
|
6
|
+
export declare const fileSystemRoutes: ({ metaName, routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks, isRscClientBundle, hydrateRscClientRoutes, isolateRouteDataInRscLayer, srcDirectory, internalSrcAlias, }: {
|
|
7
7
|
metaName: string;
|
|
8
8
|
routes: RouteLegacy[] | (NestedRouteForCli | PageRoute)[];
|
|
9
9
|
ssrMode?: SSRMode;
|
|
@@ -13,10 +13,13 @@ export declare const fileSystemRoutes: ({ metaName, routes, ssrMode, nestedRoute
|
|
|
13
13
|
splitRouteChunks?: boolean;
|
|
14
14
|
isRscClientBundle?: boolean;
|
|
15
15
|
hydrateRscClientRoutes?: boolean;
|
|
16
|
+
isolateRouteDataInRscLayer?: boolean;
|
|
16
17
|
srcDirectory?: string;
|
|
17
18
|
internalSrcAlias?: string;
|
|
18
19
|
}) => Promise<string>;
|
|
19
|
-
export declare function ssrLoaderCombinedModule(entrypoints: Entrypoint[], entrypoint: Entrypoint, config: AppNormalizedConfig, appContext: AppToolsContext
|
|
20
|
+
export declare function ssrLoaderCombinedModule(entrypoints: Entrypoint[], entrypoint: Entrypoint, config: AppNormalizedConfig, appContext: AppToolsContext, options?: {
|
|
21
|
+
includeRouteServerLoaders?: boolean;
|
|
22
|
+
}): string | null;
|
|
20
23
|
export declare const runtimeGlobalContext: ({ entryName, metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp, rscType, routesImportPath, basename, }: {
|
|
21
24
|
entryName: string;
|
|
22
25
|
metaName: string;
|
|
@@ -11,6 +11,8 @@ type RegenerateRoutesFn = (params: {
|
|
|
11
11
|
type HandleGeneratorEntryCodeOptions = {
|
|
12
12
|
entrypointsKey?: string;
|
|
13
13
|
hydrateRscClientRoutes?: boolean;
|
|
14
|
+
includeRouteServerLoadersInSsrEntry?: boolean;
|
|
15
|
+
isolateRouteDataInRscLayer?: boolean;
|
|
14
16
|
serverRoutesFileName?: string;
|
|
15
17
|
};
|
|
16
18
|
type HandleFileChangeOptions = {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const handleRSCRedirect: (headers: Headers, basename: string, status: number) => Response;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { ShouldRevalidateFunction } from '@modern-js/runtime-utils/router';
|
|
2
2
|
import type { ElementType } from 'react';
|
|
3
|
+
export type ModernRouteErrorResponse = {
|
|
4
|
+
status: number;
|
|
5
|
+
statusText: string;
|
|
6
|
+
internal: boolean;
|
|
7
|
+
data: unknown;
|
|
8
|
+
};
|
|
9
|
+
export declare const isRouteErrorResponse: (error: unknown) => error is ModernRouteErrorResponse;
|
|
3
10
|
export declare const createShouldRevalidate: (routeId: string) => ShouldRevalidateFunction;
|
|
4
11
|
export declare const resolveRouteComponent: (routeModule: unknown) => ElementType<Record<string, unknown>>;
|
|
5
12
|
export declare const handleRouteModule: (routeModule: unknown, routeId: string) => unknown;
|
|
@@ -2,6 +2,7 @@ import { type RouteObject, type StaticHandlerContext } from '@modern-js/runtime-
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { ServerPayload } from '../../core/context';
|
|
4
4
|
import type { RouteManifest } from './types';
|
|
5
|
+
export { handleRSCRedirect } from './redirect';
|
|
5
6
|
declare global {
|
|
6
7
|
interface Window {
|
|
7
8
|
_MODERNJS_ROUTE_MANIFEST?: RouteManifest;
|
|
@@ -9,7 +10,6 @@ declare global {
|
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
export declare const createServerPayload: (routerContext: StaticHandlerContext, routes: RouteObject[]) => ServerPayload;
|
|
12
|
-
export declare const handleRSCRedirect: (headers: Headers, basename: string, status: number) => Response;
|
|
13
13
|
export declare const prepareRSCRoutes: (routes: RouteObject[]) => Promise<void>;
|
|
14
14
|
export declare const createClientRouterFromPayload: (payload: ServerPayload, originalRoutes: RouteObject[], basename?: string) => import("react-router").DataRouter;
|
|
15
15
|
interface RSCStaticRouterProps {
|
|
@@ -17,4 +17,3 @@ interface RSCStaticRouterProps {
|
|
|
17
17
|
useJsonScript?: boolean;
|
|
18
18
|
}
|
|
19
19
|
export declare const RSCStaticRouter: React.FC<RSCStaticRouterProps>;
|
|
20
|
-
export {};
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"modern",
|
|
18
18
|
"modern.js"
|
|
19
19
|
],
|
|
20
|
-
"version": "3.5.0-ultramodern.
|
|
20
|
+
"version": "3.5.0-ultramodern.103",
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=20"
|
|
23
23
|
},
|
|
@@ -246,12 +246,12 @@
|
|
|
246
246
|
"dependencies": {
|
|
247
247
|
"@loadable/component": "5.16.7",
|
|
248
248
|
"@loadable/server": "5.16.7",
|
|
249
|
-
"@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.
|
|
250
|
-
"@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.
|
|
251
|
-
"@modern-js/render": "npm:@bleedingdev/modern-js-render@3.5.0-ultramodern.
|
|
252
|
-
"@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.5.0-ultramodern.
|
|
253
|
-
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.
|
|
254
|
-
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.
|
|
249
|
+
"@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.103",
|
|
250
|
+
"@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.103",
|
|
251
|
+
"@modern-js/render": "npm:@bleedingdev/modern-js-render@3.5.0-ultramodern.103",
|
|
252
|
+
"@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.5.0-ultramodern.103",
|
|
253
|
+
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.103",
|
|
254
|
+
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.103",
|
|
255
255
|
"@swc/core": "1.15.43",
|
|
256
256
|
"@swc/helpers": "^0.5.23",
|
|
257
257
|
"@swc/plugin-loadable-components": "^11.15.0",
|
|
@@ -265,14 +265,14 @@
|
|
|
265
265
|
"isbot": "5.2.0",
|
|
266
266
|
"react-helmet": "^6.1.0",
|
|
267
267
|
"react-helmet-async": "3.0.0",
|
|
268
|
-
"react-is": "^19.2.
|
|
268
|
+
"react-is": "^19.2.8"
|
|
269
269
|
},
|
|
270
270
|
"peerDependencies": {
|
|
271
|
-
"react": "^19.2.
|
|
272
|
-
"react-dom": "^19.2.
|
|
271
|
+
"react": "^19.2.8",
|
|
272
|
+
"react-dom": "^19.2.8"
|
|
273
273
|
},
|
|
274
274
|
"devDependencies": {
|
|
275
|
-
"@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.5.0-ultramodern.
|
|
275
|
+
"@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.5.0-ultramodern.103",
|
|
276
276
|
"@remix-run/web-fetch": "^4.4.2",
|
|
277
277
|
"@rsbuild/core": "2.1.5",
|
|
278
278
|
"@rslib/core": "0.23.2",
|
|
@@ -282,10 +282,10 @@
|
|
|
282
282
|
"@types/cookie": "0.6.0",
|
|
283
283
|
"@types/invariant": "^2.2.37",
|
|
284
284
|
"@types/loadable__server": "5.12.11",
|
|
285
|
-
"@types/node": "^26.
|
|
285
|
+
"@types/node": "^26.2.0",
|
|
286
286
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
287
|
-
"react": "^19.2.
|
|
288
|
-
"react-dom": "^19.2.
|
|
287
|
+
"react": "^19.2.8",
|
|
288
|
+
"react-dom": "^19.2.8",
|
|
289
289
|
"ts-node": "^10.9.2",
|
|
290
290
|
"typescript": "^7.0.2"
|
|
291
291
|
},
|
package/rstest.config.mts
CHANGED
|
@@ -24,6 +24,7 @@ export default {
|
|
|
24
24
|
testEnvironment: 'node',
|
|
25
25
|
exclude: [
|
|
26
26
|
'tests/boundary-debugger/client.test.tsx',
|
|
27
|
+
'tests/router/plugin.client.test.tsx',
|
|
27
28
|
'tests/router/prefetch.test.tsx',
|
|
28
29
|
],
|
|
29
30
|
extends: commonConfig,
|
|
@@ -51,6 +52,7 @@ export default {
|
|
|
51
52
|
testEnvironment: 'happy-dom',
|
|
52
53
|
include: [
|
|
53
54
|
'tests/boundary-debugger/client.test.tsx',
|
|
55
|
+
'tests/router/plugin.client.test.tsx',
|
|
54
56
|
'tests/router/prefetch.test.tsx',
|
|
55
57
|
],
|
|
56
58
|
extends: commonConfig,
|