@bleedingdev/modern-js-runtime 3.9.0-ultramodern.17 → 3.9.0-ultramodern.18

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 (71) hide show
  1. package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +2 -0
  2. package/dist/cjs/core/browser/hydrate.js +1 -7
  3. package/dist/cjs/core/browser/index.js +4 -5
  4. package/dist/cjs/core/context/index.js +8 -2
  5. package/dist/cjs/core/context/public.js +4 -4
  6. package/dist/cjs/core/context/runtime.js +3 -9
  7. package/dist/cjs/core/index.js +3 -3
  8. package/dist/cjs/core/plugin/index.js +2 -2
  9. package/dist/cjs/core/react/index.js +3 -3
  10. package/dist/cjs/core/react/wrapper.js +7 -8
  11. package/dist/cjs/core/server/requestHandler.js +6 -7
  12. package/dist/cjs/core/server/stream/createReadableStream.js +20 -9
  13. package/dist/cjs/core/server/stream/createReadableStream.worker.js +21 -10
  14. package/dist/cjs/core/server/string/index.js +6 -4
  15. package/dist/cjs/exports/head.js +2 -2
  16. package/dist/cjs/internal.js +2 -2
  17. package/dist/cjs/router/runtime/PrefetchLink.js +4 -4
  18. package/dist/cjs/router/runtime/plugin.js +9 -9
  19. package/dist/cjs/router/runtime/plugin.node.js +6 -6
  20. package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +2 -0
  21. package/dist/esm/core/browser/hydrate.mjs +1 -7
  22. package/dist/esm/core/browser/index.mjs +1 -2
  23. package/dist/esm/core/context/index.mjs +1 -1
  24. package/dist/esm/core/context/public.mjs +1 -1
  25. package/dist/esm/core/context/runtime.mjs +3 -9
  26. package/dist/esm/core/index.mjs +1 -1
  27. package/dist/esm/core/plugin/index.mjs +1 -1
  28. package/dist/esm/core/react/index.mjs +1 -1
  29. package/dist/esm/core/react/wrapper.mjs +1 -2
  30. package/dist/esm/core/server/requestHandler.mjs +1 -2
  31. package/dist/esm/core/server/stream/createReadableStream.mjs +16 -5
  32. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +19 -8
  33. package/dist/esm/core/server/string/index.mjs +3 -1
  34. package/dist/esm/exports/head.mjs +1 -1
  35. package/dist/esm/internal.mjs +1 -1
  36. package/dist/esm/router/runtime/PrefetchLink.mjs +1 -1
  37. package/dist/esm/router/runtime/plugin.mjs +1 -1
  38. package/dist/esm/router/runtime/plugin.node.mjs +1 -1
  39. package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +2 -0
  40. package/dist/esm-node/core/browser/hydrate.mjs +1 -7
  41. package/dist/esm-node/core/browser/index.mjs +1 -2
  42. package/dist/esm-node/core/context/index.mjs +1 -1
  43. package/dist/esm-node/core/context/public.mjs +1 -1
  44. package/dist/esm-node/core/context/runtime.mjs +3 -9
  45. package/dist/esm-node/core/index.mjs +1 -1
  46. package/dist/esm-node/core/plugin/index.mjs +1 -1
  47. package/dist/esm-node/core/react/index.mjs +1 -1
  48. package/dist/esm-node/core/react/wrapper.mjs +1 -2
  49. package/dist/esm-node/core/server/requestHandler.mjs +1 -2
  50. package/dist/esm-node/core/server/stream/createReadableStream.mjs +16 -5
  51. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +19 -8
  52. package/dist/esm-node/core/server/string/index.mjs +3 -1
  53. package/dist/esm-node/exports/head.mjs +1 -1
  54. package/dist/esm-node/internal.mjs +1 -1
  55. package/dist/esm-node/router/runtime/PrefetchLink.mjs +1 -1
  56. package/dist/esm-node/router/runtime/plugin.mjs +1 -1
  57. package/dist/esm-node/router/runtime/plugin.node.mjs +1 -1
  58. package/dist/types/core/context/index.d.ts +1 -1
  59. package/dist/types/core/context/public.d.ts +1 -1
  60. package/dist/types/core/index.d.ts +1 -1
  61. package/dist/types/core/react/wrapper.d.ts +1 -1
  62. package/dist/types/core/server/requestHandler.d.ts +1 -1
  63. package/dist/types/core/server/stream/shared.d.ts +6 -1
  64. package/dist/types/internal.d.ts +1 -1
  65. package/package.json +10 -10
  66. package/rslib.config.mts +3 -0
  67. package/rstest.config.mts +0 -4
  68. package/dist/cjs/rsc/server.worker.js +0 -62
  69. package/dist/esm/rsc/server.worker.mjs +0 -1
  70. package/dist/esm-node/rsc/server.worker.mjs +0 -2
  71. package/dist/types/rsc/server.worker.d.ts +0 -1
@@ -1,10 +1,10 @@
1
1
  import "node:module";
2
+ import { getGlobalEnableRsc, getGlobalInternalRuntimeContext } from "@modern-js/runtime/context";
2
3
  import { storage } from "@modern-js/runtime-utils/node";
3
4
  import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
4
5
  import { PassThrough, Readable, Transform, finished, pipeline } from "stream";
5
6
  import { ESCAPED_SHELL_STREAM_END_MARK } from "../../../common.mjs";
6
7
  import { RenderLevel } from "../../constants.mjs";
7
- import { getGlobalEnableRsc, getGlobalInternalRuntimeContext } from "../../context/index.mjs";
8
8
  import { getMonitors } from "../../context/monitors/index.mjs";
9
9
  import { wrapRuntimeComponentResolver } from "../../react/wrapper.mjs";
10
10
  import { createReplaceHelemt, getHelmetData } from "../helmet.mjs";
@@ -24,6 +24,7 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
24
24
  config,
25
25
  platform: 'node',
26
26
  mode: 'stream',
27
+ monitors: getMonitors(),
27
28
  isRsc,
28
29
  terminalMarker: ESCAPED_SHELL_STREAM_END_MARK
29
30
  }) || [];
@@ -122,7 +123,9 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
122
123
  });
123
124
  if (failed) return;
124
125
  const chunks = [];
126
+ let bufferedLength = 0;
125
127
  const marker = Buffer.from(ESCAPED_SHELL_STREAM_END_MARK);
128
+ let markerTail = Buffer.alloc(0);
126
129
  const pendingScripts = [];
127
130
  let shellChunkStatus = ShellChunkStatus.START;
128
131
  const emitShell = (destination, buffered, markerIndex)=>{
@@ -130,6 +133,7 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
130
133
  const completedShellBefore = createReplaceHelemt(getHelmetData(extenders))(shellBefore);
131
134
  shellChunkStatus = ShellChunkStatus.FINISH;
132
135
  chunks.length = 0;
136
+ bufferedLength = 0;
133
137
  destination.push(`${completedShellBefore}${beforeMark}${shellAfter}`);
134
138
  const afterMark = buffered.subarray(markerIndex + marker.length);
135
139
  if (afterMark.length > 0) destination.push(afterMark);
@@ -141,10 +145,17 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
141
145
  try {
142
146
  if (shellChunkStatus === ShellChunkStatus.FINISH) this.push(chunk);
143
147
  else {
144
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
145
- const buffered = Buffer.concat(chunks);
146
- const markerIndex = buffered.indexOf(marker);
147
- if (-1 !== markerIndex) emitShell(this, buffered, markerIndex);
148
+ const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
149
+ const window = Buffer.concat([
150
+ markerTail,
151
+ bytes
152
+ ]);
153
+ const windowIndex = window.indexOf(marker);
154
+ const windowStart = bufferedLength - markerTail.length;
155
+ chunks.push(bytes);
156
+ bufferedLength += bytes.length;
157
+ if (-1 === windowIndex) markerTail = window.subarray(Math.max(0, window.length - marker.length + 1));
158
+ else emitShell(this, Buffer.concat(chunks, bufferedLength), windowStart + windowIndex);
148
159
  }
149
160
  callback();
150
161
  } catch (error) {
@@ -1,10 +1,11 @@
1
1
  import "node:module";
2
2
  import { renderSSRStream } from "@modern-js/render/ssr";
3
+ import { getGlobalEnableRsc, getGlobalInternalRuntimeContext } from "@modern-js/runtime/context";
3
4
  import { storage } from "@modern-js/runtime-utils/node";
4
5
  import react from "react";
5
6
  import { ESCAPED_SHELL_STREAM_END_MARK } from "../../../common.mjs";
6
7
  import { RenderLevel } from "../../constants.mjs";
7
- import { getGlobalEnableRsc, getGlobalInternalRuntimeContext } from "../../context/index.mjs";
8
+ import { getMonitors } from "../../context/monitors/index.mjs";
8
9
  import { wrapRuntimeComponentResolver } from "../../react/wrapper.mjs";
9
10
  import { createReplaceHelemt, getHelmetData } from "../helmet.mjs";
10
11
  import { createSSRRenderLifecycle, createSSRStreamErrorReporter, observeSSRStream, orderSSRStreamTransforms } from "../shared.mjs";
@@ -22,6 +23,7 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
22
23
  config,
23
24
  platform: 'web',
24
25
  mode: 'stream',
26
+ monitors: getMonitors(),
25
27
  isRsc,
26
28
  terminalMarker: ESCAPED_SHELL_STREAM_END_MARK
27
29
  }) || [];
@@ -81,7 +83,9 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
81
83
  const decoder = new TextDecoder();
82
84
  const encoder = new TextEncoder();
83
85
  const pendingScripts = [];
84
- let buffered = '';
86
+ const buffered = [];
87
+ let bufferedLength = 0;
88
+ let markerTail = '';
85
89
  let shellChunkStatus = ShellChunkStatus.START;
86
90
  let bodyController;
87
91
  const emit = (chunk, controller)=>{
@@ -89,14 +93,21 @@ const createReadableStreamFromElement = async (request, rootElement, options)=>{
89
93
  if (chunk.length > 0) controller.enqueue(encoder.encode(chunk));
90
94
  return;
91
95
  }
92
- buffered += chunk;
93
- const markerIndex = buffered.indexOf(ESCAPED_SHELL_STREAM_END_MARK);
94
- if (-1 === markerIndex) return;
95
- const beforeMark = lifecycle.completedBody(buffered.slice(0, markerIndex), 'shell');
96
- const afterMark = buffered.slice(markerIndex + ESCAPED_SHELL_STREAM_END_MARK.length);
96
+ const window = markerTail + chunk;
97
+ const windowIndex = window.indexOf(ESCAPED_SHELL_STREAM_END_MARK);
98
+ const markerIndex = bufferedLength - markerTail.length + windowIndex;
99
+ buffered.push(chunk);
100
+ bufferedLength += chunk.length;
101
+ if (-1 === windowIndex) {
102
+ markerTail = window.slice(Math.max(0, window.length - ESCAPED_SHELL_STREAM_END_MARK.length + 1));
103
+ return;
104
+ }
105
+ const shell = buffered.join('');
106
+ const beforeMark = lifecycle.completedBody(shell.slice(0, markerIndex), 'shell');
107
+ const afterMark = shell.slice(markerIndex + ESCAPED_SHELL_STREAM_END_MARK.length);
97
108
  const completedShellBefore = createReplaceHelemt(getHelmetData(extenders))(shellBefore);
98
109
  shellChunkStatus = ShellChunkStatus.FINISH;
99
- buffered = '';
110
+ buffered.length = 0;
100
111
  controller.enqueue(encoder.encode(`${completedShellBefore}${beforeMark}${shellAfter}`));
101
112
  if (afterMark.length > 0) controller.enqueue(encoder.encode(afterMark));
102
113
  for (const script of pendingScripts)controller.enqueue(encoder.encode(script));
@@ -1,9 +1,10 @@
1
1
  import "node:module";
2
+ import { getGlobalEnableRsc, getGlobalInternalRuntimeContext } from "@modern-js/runtime/context";
2
3
  import { time } from "@modern-js/runtime-utils/time";
3
4
  import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
4
5
  import server from "react-dom/server";
5
6
  import { RenderLevel } from "../../constants.mjs";
6
- import { getGlobalEnableRsc, getGlobalInternalRuntimeContext } from "../../context/index.mjs";
7
+ import { getMonitors } from "../../context/monitors/index.mjs";
7
8
  import { wrapRuntimeComponentResolver, wrapRuntimeContextProvider } from "../../react/wrapper.mjs";
8
9
  import { CHUNK_CSS_PLACEHOLDER, CHUNK_JS_PLACEHOLDER, HTML_PLACEHOLDER, SSR_DATA_PLACEHOLDER } from "../constants.mjs";
9
10
  import { createReplaceHelemt, getHelmetData } from "../helmet.mjs";
@@ -61,6 +62,7 @@ const renderString = async (request, serverRoot, options)=>{
61
62
  config,
62
63
  platform: 'node',
63
64
  mode: 'string',
65
+ monitors: getMonitors(),
64
66
  isRsc: true === getGlobalEnableRsc()
65
67
  }
66
68
  });
@@ -1,8 +1,8 @@
1
1
  import "node:module";
2
2
  "use client";
3
+ import { RuntimeComponentResolverContext } from "@modern-js/runtime/context";
3
4
  import react from "react";
4
5
  import { Helmet, HelmetData, HelmetProvider } from "react-helmet-async";
5
- import { RuntimeComponentResolverContext } from "../core/context/runtime.mjs";
6
6
  const head_Helmet = (props)=>{
7
7
  const resolveComponent = react.useContext(RuntimeComponentResolverContext);
8
8
  const Component = resolveComponent?.(Helmet, {
@@ -1,2 +1,2 @@
1
1
  import "node:module";
2
- export { InternalRuntimeContext } from "./core/context/runtime.mjs";
2
+ export { InternalRuntimeContext } from "@modern-js/runtime/context";
@@ -1,9 +1,9 @@
1
1
  import "node:module";
2
2
  "use client";
3
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ import { InternalRuntimeContext } from "@modern-js/runtime/context";
4
5
  import { Link as router_Link, NavLink, matchRoutes, useHref, useMatches, useResolvedPath } from "@modern-js/runtime-utils/router";
5
6
  import react, { useContext, useMemo } from "react";
6
- import { InternalRuntimeContext } from "../../core/context/index.mjs";
7
7
  import { __webpack_require__ } from "../../rslib-runtime~0.mjs";
8
8
  const getWebpackChunkLoader = ()=>__webpack_chunk_load__;
9
9
  const getWebpackPublicPath = ()=>{
@@ -1,10 +1,10 @@
1
1
  import "node:module";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalIsRscClient, getGlobalLayoutApp, getGlobalRoutes } from "@modern-js/runtime/context";
3
4
  import { merge } from "@modern-js/runtime-utils/merge";
4
5
  import { RouterProvider, createBrowserRouter, createHashRouter, createRoutesFromElements, useHref, useInRouterContext, useLocation, useMatches, useNavigate, useParams } from "@modern-js/runtime-utils/router";
5
6
  import { normalizePathname } from "@modern-js/runtime-utils/url";
6
7
  import * as __rspack_external_react from "react";
7
- import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalIsRscClient, getGlobalLayoutApp, getGlobalRoutes } from "../../core/context/index.mjs";
8
8
  import { routerProviderRegistryHooks } from "./hooks.mjs";
9
9
  import { Link } from "./PrefetchLink.mjs";
10
10
  import { createClientRouterFromPayload } from "./rsc-router.mjs";
@@ -1,12 +1,12 @@
1
1
  import "node:module";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalLayoutApp, getGlobalRoutes } from "@modern-js/runtime/context";
3
4
  import { merge } from "@modern-js/runtime-utils/merge";
4
5
  import { createRequestContext } from "@modern-js/runtime-utils/node";
5
6
  import { StaticRouterProvider, createRoutesFromElements, createStaticHandler, createStaticRouter, useInRouterContext, useLocation, useNavigate, useParams } from "@modern-js/runtime-utils/router";
6
7
  import { time } from "@modern-js/runtime-utils/time";
7
8
  import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
8
9
  import { useContext } from "react";
9
- import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalLayoutApp, getGlobalRoutes } from "../../core/context/index.mjs";
10
10
  import { setServerPayload } from "../../core/context/serverPayload/index.server.mjs";
11
11
  import DeferredDataScripts_node from "./DeferredDataScripts.node.mjs";
12
12
  import { routerProviderRegistryHooks } from "./hooks.mjs";
@@ -23,7 +23,7 @@ export { DefaultNotFound } from '../../router/runtime/DefaultNotFound.js';
23
23
  export { modifyRoutes, onAfterCreateRouter, onAfterHydrateRouter, onBeforeCreateRouter, onBeforeCreateRoutes, onBeforeHydrateRouter, type RouterExtendsHooks, type RouterLifecycleContext, routerProviderRegistryHooks, } from '../../router/runtime/hooks.js';
24
24
  export type { LinkPrefetchPolicy } from '../../router/runtime/PrefetchLink.js';
25
25
  export type { LoaderFunction, LoaderFunctionArgs, ModernRoute, } from '../../router/runtime/types.js';
26
- export { getInitialContext, InternalRuntimeContext, RuntimeComponentResolverContext, RuntimeContext, type TInternalRuntimeContext, type TRuntimeContext, } from './runtime.js';
26
+ export { getInitialContext, InternalRuntimeContext, ReactRuntimeContext, type RequestContext, RuntimeComponentResolverContext, RuntimeContext, type TInternalRuntimeContext, type TRuntimeContext, useRuntimeContext, } from './runtime.js';
27
27
  export type { PayloadRoute, ServerPayload } from './serverPayload/index.js';
28
28
  interface GlobalContext {
29
29
  entryName?: string;
@@ -1 +1 @@
1
- export { ReactRuntimeContext, type RequestContext, RuntimeContext, type TRuntimeContext, useRuntimeContext, } from './runtime.js';
1
+ export { ReactRuntimeContext, type RequestContext, RuntimeContext, type TRuntimeContext, useRuntimeContext, } from './index.js';
@@ -1,5 +1,5 @@
1
+ export { RuntimeContext, useRuntimeContext, } from './context/index.js';
1
2
  export { defineRuntimeConfig } from './config.js';
2
3
  export type { TRuntimeContext } from './context/runtime.js';
3
- export { RuntimeContext, useRuntimeContext, } from './context/runtime.js';
4
4
  export type { RuntimePlugin } from './plugin/index.js';
5
5
  export type { SSRContainer, SSRData } from './types.js';
@@ -1,6 +1,6 @@
1
1
  import type { ResolveComponentFn } from '@modern-js/plugin/runtime';
2
- import type React from 'react';
3
2
  import { type TRuntimeContext } from '../context/index.js';
3
+ import type React from 'react';
4
4
  export declare function wrapRuntimeComponentResolver(root: React.ReactNode, hooks?: {
5
5
  resolveComponent?: {
6
6
  call: ResolveComponentFn;
@@ -1,6 +1,6 @@
1
+ import { type TInternalRuntimeContext } from '../context/index.js';
1
2
  import type { RequestHandler, RequestHandlerOptions } from '@modern-js/server-core';
2
3
  import React from 'react';
3
- import { type TInternalRuntimeContext } from '../context/index.js';
4
4
  export type { RequestHandlerConfig as HandleRequestConfig } from '@modern-js/server-core';
5
5
  export type HandleRequestOptions = Exclude<RequestHandlerOptions, 'staticGenerate'> & {
6
6
  runtimeContext: TInternalRuntimeContext;
@@ -38,7 +38,12 @@ export declare enum ShellChunkStatus {
38
38
  * boundary after the shell once the flushed bytes exceed `progressiveChunkSize`,
39
39
  * which drops the head of every large route and keeps its content hidden until
40
40
  * the inline `$RC` script runs. Completed boundaries therefore stay inline in
41
- * the shell; pending boundaries still stream when they resolve.
41
+ * the shell; pending boundaries still stream when they resolve. Buffering
42
+ * paths (`onAllReady`) thereby seal the head after all content.
43
+ *
44
+ * Measured on a ~1 MB route completed at shell time (React 19.3, Node): the
45
+ * default chunk size reaches the shell end mark in 0.7 ms, this one in 1.2 ms,
46
+ * so the head fix costs no measurable time to first byte.
42
47
  */
43
48
  export declare const SHELL_PROGRESSIVE_CHUNK_SIZE: number;
44
49
  export declare function resolveStreamingMode(request: Request, forceStreamToString: boolean): {
@@ -1 +1 @@
1
- export { InternalRuntimeContext, type TInternalRuntimeContext, } from './core/context/runtime.js';
1
+ export { InternalRuntimeContext, type TInternalRuntimeContext, } from './core/context/index.js';
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.9.0-ultramodern.17",
20
+ "version": "3.9.0-ultramodern.18",
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
@@ -217,14 +217,14 @@
217
217
  "dependencies": {
218
218
  "@loadable/component": "5.16.7",
219
219
  "@loadable/server": "5.16.7",
220
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.9.0-ultramodern.17",
221
- "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.9.0-ultramodern.17",
222
- "@modern-js/render": "npm:@bleedingdev/modern-js-render@3.9.0-ultramodern.17",
223
- "@modern-js/runtime-extensions": "npm:@bleedingdev/modern-js-runtime-extensions@3.9.0-ultramodern.17",
224
- "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.9.0-ultramodern.17",
225
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.0-ultramodern.17",
226
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.9.0-ultramodern.17",
227
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.0-ultramodern.17",
220
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.9.0-ultramodern.18",
221
+ "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.9.0-ultramodern.18",
222
+ "@modern-js/render": "npm:@bleedingdev/modern-js-render@3.9.0-ultramodern.18",
223
+ "@modern-js/runtime-extensions": "npm:@bleedingdev/modern-js-runtime-extensions@3.9.0-ultramodern.18",
224
+ "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.9.0-ultramodern.18",
225
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.0-ultramodern.18",
226
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.9.0-ultramodern.18",
227
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.0-ultramodern.18",
228
228
  "@swc/core": "1.16.2",
229
229
  "@swc/helpers": "^0.5.23",
230
230
  "@swc/plugin-loadable-components": "^13.0.0",
@@ -245,7 +245,7 @@
245
245
  "react-dom": "^19.2.8"
246
246
  },
247
247
  "devDependencies": {
248
- "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.9.0-ultramodern.17",
248
+ "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.9.0-ultramodern.18",
249
249
  "@remix-run/web-fetch": "^4.4.2",
250
250
  "@rsbuild/core": "2.2.9",
251
251
  "@rslib/core": "1.0.2",
package/rslib.config.mts CHANGED
@@ -10,6 +10,9 @@ export default defineConfig({
10
10
  },
11
11
  output: {
12
12
  externals: [
13
+ // Keep the package self-reference in the output: Module Federation
14
+ // shares the runtime contexts by that request.
15
+ '@modern-js/runtime/context',
13
16
  {
14
17
  '@modern-js/runtime-utils/node$':
15
18
  'commonjs @modern-js/runtime-utils/node',
package/rstest.config.mts CHANGED
@@ -72,10 +72,6 @@ export default {
72
72
  __dirname,
73
73
  'tests/fixtures/rsc-server.ts',
74
74
  ),
75
- '@modern-js/render/rsc-worker': path.join(
76
- __dirname,
77
- 'tests/fixtures/rsc-server.ts',
78
- ),
79
75
  },
80
76
  },
81
77
  }),
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __webpack_modules__ = {
3
- "@modern-js/render/rsc-worker" (module) {
4
- module.exports = require("@modern-js/render/rsc-worker");
5
- }
6
- };
7
- var __webpack_module_cache__ = {};
8
- function __webpack_require__(moduleId) {
9
- var cachedModule = __webpack_module_cache__[moduleId];
10
- if (void 0 !== cachedModule) return cachedModule.exports;
11
- var module = __webpack_module_cache__[moduleId] = {
12
- exports: {}
13
- };
14
- __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
15
- return module.exports;
16
- }
17
- (()=>{
18
- __webpack_require__.n = (module)=>{
19
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
20
- __webpack_require__.d(getter, {
21
- a: getter
22
- });
23
- return getter;
24
- };
25
- })();
26
- (()=>{
27
- __webpack_require__.d = (exports1, getters, values)=>{
28
- var define = (defs, kind)=>{
29
- for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
30
- enumerable: true,
31
- [kind]: defs[key]
32
- });
33
- };
34
- define(getters, "get");
35
- define(values, "value");
36
- };
37
- })();
38
- (()=>{
39
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
40
- })();
41
- (()=>{
42
- __webpack_require__.r = (exports1)=>{
43
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
44
- value: 'Module'
45
- });
46
- Object.defineProperty(exports1, '__esModule', {
47
- value: true
48
- });
49
- };
50
- })();
51
- var __webpack_exports__ = {};
52
- (()=>{
53
- __webpack_require__.r(__webpack_exports__);
54
- var _modern_js_render_rsc_worker__rspack_import_0 = __webpack_require__("@modern-js/render/rsc-worker");
55
- var __rspack_reexport = {};
56
- for(const __rspack_import_key in _modern_js_render_rsc_worker__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_modern_js_render_rsc_worker__rspack_import_0[__rspack_import_key];
57
- __webpack_require__.d(__webpack_exports__, __rspack_reexport);
58
- })();
59
- for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
60
- Object.defineProperty(exports, '__esModule', {
61
- value: true
62
- });
@@ -1 +0,0 @@
1
- export * from "@modern-js/render/rsc-worker";
@@ -1,2 +0,0 @@
1
- import "node:module";
2
- export * from "@modern-js/render/rsc-worker";
@@ -1 +0,0 @@
1
- export * from '@modern-js/render/rsc-worker';