@tanstack/react-start-rsc 0.1.48 → 0.1.50

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.
@@ -102,7 +102,7 @@ var adapter = createSerializationAdapter({
102
102
  ...cssHrefs?.size ? { cssHrefs: Array.from(cssHrefs) } : {},
103
103
  jsPreloads: Array.from(jsPreloads)
104
104
  } : {};
105
- const slotUsagesStream = kind === "composite" && process.env.NODE_ENV === "development" && RSC_SLOT_USAGES_STREAM in component ? component[RSC_SLOT_USAGES_STREAM] : void 0;
105
+ const slotUsagesStream = process.env.NODE_ENV === "development" && kind === "composite" && RSC_SLOT_USAGES_STREAM in component ? component[RSC_SLOT_USAGES_STREAM] : void 0;
106
106
  return {
107
107
  kind,
108
108
  stream: new RawStream(stream, { hint: "text" }),
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.server.js","names":[],"sources":["../../src/serialization.server.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks'\nimport { createSerializationAdapter } from '@tanstack/react-router'\nimport { RawStream } from '@tanstack/router-core'\nimport { getStartContext } from '@tanstack/start-storage-context'\nimport {\n setOnClientReference,\n createFromReadableStream as ssrDecode,\n} from 'virtual:tanstack-rsc-ssr-decode'\nimport {\n RENDERABLE_RSC,\n RSC_SLOT_USAGES_STREAM,\n SERVER_COMPONENT_CSS_HREFS,\n SERVER_COMPONENT_JS_PRELOADS,\n SERVER_COMPONENT_STREAM,\n isServerComponent,\n} from './ServerComponentTypes'\nimport { createRscProxy } from './createRscProxy'\nimport { awaitLazyElements } from './awaitLazyElements'\nimport { unwrapRscCssEnvelope } from './rscCssEnvelope'\nimport type {\n AnyCompositeComponent,\n ServerComponentStream,\n} from './ServerComponentTypes'\nimport type { RscDecodeResult, RscSsrHandler } from './rscSsrHandler'\n\n// ===== SSR Handler Registration =====\n// This handler is registered on globalThis for the RSC environment to access.\n// The RSC env calls these functions during loader execution to pre-decode streams\n// and create renderable proxies.\n//\n// This MUST happen in a module without 'use client' directive.\n// Modules with 'use client' may be transformed to client references in the\n// SSR environment when RSC is enabled, preventing the side effect from running.\n\n// AsyncLocalStorage for decode-scoped proxy asset collectors.\n// Client-reference deps stay on the decoded RSC proxy so unused streams don't\n// emit global request assets. CSS marker links are collected for all adapters\n// because the decoded envelope is unwrapped before SSR render.\nconst proxyCssCollectorStorage = new AsyncLocalStorage<Set<string>>()\nconst proxyJsCollectorStorage = new AsyncLocalStorage<Set<string>>()\n\nsetOnClientReference(\n ({\n deps,\n runtime,\n }: {\n deps: { js: Array<string>; css: Array<string> }\n runtime?: 'rsbuild'\n }) => {\n const cssCollector = proxyCssCollectorStorage.getStore()\n if (cssCollector) {\n for (const href of deps.css) {\n cssCollector.add(href)\n }\n }\n\n const jsCollector = proxyJsCollectorStorage.getStore()\n if (jsCollector) {\n for (const href of deps.js) {\n jsCollector.add(href)\n }\n }\n\n if (runtime === 'rsbuild' || cssCollector || jsCollector) {\n return\n }\n\n const ctx = getStartContext({ throwIfNotFound: false })\n\n // Non-Rsbuild adapters emit decoded client-reference assets through the\n // request manifest.\n if (!ctx || (!deps.js.length && !deps.css.length)) {\n return\n }\n\n if (!ctx.requestAssets) ctx.requestAssets = {}\n const seenHrefs = new Set<string>()\n for (const preload of ctx.requestAssets.preloads ?? []) {\n seenHrefs.add(typeof preload === 'string' ? preload : preload.href)\n }\n for (const stylesheet of ctx.requestAssets.css ?? []) {\n seenHrefs.add(\n typeof stylesheet === 'string' ? stylesheet : stylesheet.href,\n )\n }\n\n let nextPreloads: typeof ctx.requestAssets.preloads | undefined\n for (const href of deps.js) {\n if (seenHrefs.has(href)) continue\n seenHrefs.add(href)\n if (!nextPreloads) {\n nextPreloads = ctx.requestAssets.preloads\n ? ctx.requestAssets.preloads.slice()\n : []\n }\n nextPreloads.push(href)\n }\n if (nextPreloads) {\n ctx.requestAssets.preloads = nextPreloads\n }\n\n let nextCss: typeof ctx.requestAssets.css | undefined\n for (const href of deps.css) {\n if (seenHrefs.has(href)) continue\n seenHrefs.add(href)\n if (!nextCss) {\n nextCss = ctx.requestAssets.css ? ctx.requestAssets.css.slice() : []\n }\n nextCss.push(href)\n }\n if (nextCss) {\n ctx.requestAssets.css = nextCss\n }\n },\n)\n\nconst ssrHandler: RscSsrHandler = {\n async decode(stream: ServerComponentStream): Promise<RscDecodeResult> {\n const readableStream = stream.createReplayStream()\n\n // Create a collector for this decode operation.\n // Run the decode in an AsyncLocalStorage context so the onClientReference\n // callback can write to this specific collector even with parallel decodes.\n const proxyCssCollector = new Set<string>()\n const proxyJsCollector = new Set<string>()\n\n return proxyCssCollectorStorage.run(proxyCssCollector, async () => {\n return proxyJsCollectorStorage.run(proxyJsCollector, async () => {\n const decodedTree = await ssrDecode(readableStream)\n await awaitLazyElements(decodedTree, (href) => {\n proxyCssCollector.add(href)\n })\n\n return {\n tree: unwrapRscCssEnvelope(decodedTree),\n cssHrefs: proxyCssCollector.size > 0 ? proxyCssCollector : undefined,\n jsPreloads: proxyJsCollector.size > 0 ? proxyJsCollector : undefined,\n }\n })\n })\n },\n\n createRenderableProxy(stream, decoded): any {\n return createRscProxy(() => decoded.tree, {\n stream,\n cssHrefs: decoded.cssHrefs,\n jsPreloads: decoded.jsPreloads,\n renderable: true,\n })\n },\n\n createCompositeProxy(\n stream,\n decoded,\n slotUsagesStream,\n ): AnyCompositeComponent {\n const proxy = createRscProxy(() => decoded.tree, {\n stream,\n cssHrefs: decoded.cssHrefs,\n jsPreloads: decoded.jsPreloads,\n renderable: false,\n slotUsagesStream,\n })\n return proxy\n },\n}\n\n// Register SSR handler on globalThis for RSC environment to access.\nglobalThis.__RSC_SSR__ = ssrHandler\n\n// ===== End SSR Handler Registration =====\n\n/**\n * Helper to check if a value is a renderable RSC (from renderServerComponent).\n * The value can be either an object (proxy target) or a function (stub for server functions).\n */\nfunction isRenderableRsc(value: unknown): boolean {\n if (value === null || value === undefined) return false\n if (typeof value !== 'object' && typeof value !== 'function') return false\n return RENDERABLE_RSC in value && (value as any)[RENDERABLE_RSC] === true\n}\n\n/**\n * Server-side serialization adapter for RSC (renderable + composite).\n */\nconst adapter = createSerializationAdapter({\n key: '$RSC',\n test: (value: unknown): value is AnyCompositeComponent => {\n return isServerComponent(value)\n },\n toSerializable: (component: AnyCompositeComponent) => {\n const stream = component[SERVER_COMPONENT_STREAM]!.createReplayStream()\n\n const kind = isRenderableRsc(component) ? 'renderable' : 'composite'\n const jsPreloads = component[SERVER_COMPONENT_JS_PRELOADS]\n const cssHrefs = component[SERVER_COMPONENT_CSS_HREFS]\n // `cssHrefs` can also come from loadCss() marker links. Client-reference\n // collection fills `jsPreloads`, so that gates per-stream serialization.\n const serializedAssetDeps = jsPreloads?.size\n ? {\n ...(cssHrefs?.size ? { cssHrefs: Array.from(cssHrefs) } : {}),\n jsPreloads: Array.from(jsPreloads),\n }\n : {}\n\n const slotUsagesStream =\n kind === 'composite' &&\n process.env.NODE_ENV === 'development' &&\n RSC_SLOT_USAGES_STREAM in component\n ? ((component as any)[RSC_SLOT_USAGES_STREAM] as unknown as\n | ReadableStream<any>\n | undefined)\n : undefined\n\n return {\n kind,\n stream: new RawStream(stream, { hint: 'text' }),\n slotUsagesStream,\n ...serializedAssetDeps,\n }\n },\n fromSerializable: (): never => {\n throw new Error('Server should never deserialize RSC data')\n },\n})\n\n/**\n * Factory function for server-side RSC serialization adapter.\n */\nexport const rscSerializationAdapter = () => [adapter]\n"],"mappings":"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"}
1
+ {"version":3,"file":"serialization.server.js","names":[],"sources":["../../src/serialization.server.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks'\nimport { createSerializationAdapter } from '@tanstack/react-router'\nimport { RawStream } from '@tanstack/router-core'\nimport { getStartContext } from '@tanstack/start-storage-context'\nimport {\n setOnClientReference,\n createFromReadableStream as ssrDecode,\n} from 'virtual:tanstack-rsc-ssr-decode'\nimport {\n RENDERABLE_RSC,\n RSC_SLOT_USAGES_STREAM,\n SERVER_COMPONENT_CSS_HREFS,\n SERVER_COMPONENT_JS_PRELOADS,\n SERVER_COMPONENT_STREAM,\n isServerComponent,\n} from './ServerComponentTypes'\nimport { createRscProxy } from './createRscProxy'\nimport { awaitLazyElements } from './awaitLazyElements'\nimport { unwrapRscCssEnvelope } from './rscCssEnvelope'\nimport type {\n AnyCompositeComponent,\n ServerComponentStream,\n} from './ServerComponentTypes'\nimport type { RscDecodeResult, RscSsrHandler } from './rscSsrHandler'\n\n// ===== SSR Handler Registration =====\n// This handler is registered on globalThis for the RSC environment to access.\n// The RSC env calls these functions during loader execution to pre-decode streams\n// and create renderable proxies.\n//\n// This MUST happen in a module without 'use client' directive.\n// Modules with 'use client' may be transformed to client references in the\n// SSR environment when RSC is enabled, preventing the side effect from running.\n\n// AsyncLocalStorage for decode-scoped proxy asset collectors.\n// Client-reference deps stay on the decoded RSC proxy so unused streams don't\n// emit global request assets. CSS marker links are collected for all adapters\n// because the decoded envelope is unwrapped before SSR render.\nconst proxyCssCollectorStorage = new AsyncLocalStorage<Set<string>>()\nconst proxyJsCollectorStorage = new AsyncLocalStorage<Set<string>>()\n\nsetOnClientReference(\n ({\n deps,\n runtime,\n }: {\n deps: { js: Array<string>; css: Array<string> }\n runtime?: 'rsbuild'\n }) => {\n const cssCollector = proxyCssCollectorStorage.getStore()\n if (cssCollector) {\n for (const href of deps.css) {\n cssCollector.add(href)\n }\n }\n\n const jsCollector = proxyJsCollectorStorage.getStore()\n if (jsCollector) {\n for (const href of deps.js) {\n jsCollector.add(href)\n }\n }\n\n if (runtime === 'rsbuild' || cssCollector || jsCollector) {\n return\n }\n\n const ctx = getStartContext({ throwIfNotFound: false })\n\n // Non-Rsbuild adapters emit decoded client-reference assets through the\n // request manifest.\n if (!ctx || (!deps.js.length && !deps.css.length)) {\n return\n }\n\n if (!ctx.requestAssets) ctx.requestAssets = {}\n const seenHrefs = new Set<string>()\n for (const preload of ctx.requestAssets.preloads ?? []) {\n seenHrefs.add(typeof preload === 'string' ? preload : preload.href)\n }\n for (const stylesheet of ctx.requestAssets.css ?? []) {\n seenHrefs.add(\n typeof stylesheet === 'string' ? stylesheet : stylesheet.href,\n )\n }\n\n let nextPreloads: typeof ctx.requestAssets.preloads | undefined\n for (const href of deps.js) {\n if (seenHrefs.has(href)) continue\n seenHrefs.add(href)\n if (!nextPreloads) {\n nextPreloads = ctx.requestAssets.preloads\n ? ctx.requestAssets.preloads.slice()\n : []\n }\n nextPreloads.push(href)\n }\n if (nextPreloads) {\n ctx.requestAssets.preloads = nextPreloads\n }\n\n let nextCss: typeof ctx.requestAssets.css | undefined\n for (const href of deps.css) {\n if (seenHrefs.has(href)) continue\n seenHrefs.add(href)\n if (!nextCss) {\n nextCss = ctx.requestAssets.css ? ctx.requestAssets.css.slice() : []\n }\n nextCss.push(href)\n }\n if (nextCss) {\n ctx.requestAssets.css = nextCss\n }\n },\n)\n\nconst ssrHandler: RscSsrHandler = {\n async decode(stream: ServerComponentStream): Promise<RscDecodeResult> {\n const readableStream = stream.createReplayStream()\n\n // Create a collector for this decode operation.\n // Run the decode in an AsyncLocalStorage context so the onClientReference\n // callback can write to this specific collector even with parallel decodes.\n const proxyCssCollector = new Set<string>()\n const proxyJsCollector = new Set<string>()\n\n return proxyCssCollectorStorage.run(proxyCssCollector, async () => {\n return proxyJsCollectorStorage.run(proxyJsCollector, async () => {\n const decodedTree = await ssrDecode(readableStream)\n await awaitLazyElements(decodedTree, (href) => {\n proxyCssCollector.add(href)\n })\n\n return {\n tree: unwrapRscCssEnvelope(decodedTree),\n cssHrefs: proxyCssCollector.size > 0 ? proxyCssCollector : undefined,\n jsPreloads: proxyJsCollector.size > 0 ? proxyJsCollector : undefined,\n }\n })\n })\n },\n\n createRenderableProxy(stream, decoded): any {\n return createRscProxy(() => decoded.tree, {\n stream,\n cssHrefs: decoded.cssHrefs,\n jsPreloads: decoded.jsPreloads,\n renderable: true,\n })\n },\n\n createCompositeProxy(\n stream,\n decoded,\n slotUsagesStream,\n ): AnyCompositeComponent {\n const proxy = createRscProxy(() => decoded.tree, {\n stream,\n cssHrefs: decoded.cssHrefs,\n jsPreloads: decoded.jsPreloads,\n renderable: false,\n slotUsagesStream,\n })\n return proxy\n },\n}\n\n// Register SSR handler on globalThis for RSC environment to access.\nglobalThis.__RSC_SSR__ = ssrHandler\n\n// ===== End SSR Handler Registration =====\n\n/**\n * Helper to check if a value is a renderable RSC (from renderServerComponent).\n * The value can be either an object (proxy target) or a function (stub for server functions).\n */\nfunction isRenderableRsc(value: unknown): boolean {\n if (value === null || value === undefined) return false\n if (typeof value !== 'object' && typeof value !== 'function') return false\n return RENDERABLE_RSC in value && (value as any)[RENDERABLE_RSC] === true\n}\n\n/**\n * Server-side serialization adapter for RSC (renderable + composite).\n */\nconst adapter = createSerializationAdapter({\n key: '$RSC',\n test: (value: unknown): value is AnyCompositeComponent => {\n return isServerComponent(value)\n },\n toSerializable: (component: AnyCompositeComponent) => {\n const stream = component[SERVER_COMPONENT_STREAM]!.createReplayStream()\n\n const kind = isRenderableRsc(component) ? 'renderable' : 'composite'\n const jsPreloads = component[SERVER_COMPONENT_JS_PRELOADS]\n const cssHrefs = component[SERVER_COMPONENT_CSS_HREFS]\n // `cssHrefs` can also come from loadCss() marker links. Client-reference\n // collection fills `jsPreloads`, so that gates per-stream serialization.\n const serializedAssetDeps = jsPreloads?.size\n ? {\n ...(cssHrefs?.size ? { cssHrefs: Array.from(cssHrefs) } : {}),\n jsPreloads: Array.from(jsPreloads),\n }\n : {}\n\n const slotUsagesStream =\n process.env.NODE_ENV === 'development' &&\n kind === 'composite' &&\n RSC_SLOT_USAGES_STREAM in component\n ? ((component as any)[RSC_SLOT_USAGES_STREAM] as unknown as\n | ReadableStream<any>\n | undefined)\n : undefined\n\n return {\n kind,\n stream: new RawStream(stream, { hint: 'text' }),\n slotUsagesStream,\n ...serializedAssetDeps,\n }\n },\n fromSerializable: (): never => {\n throw new Error('Server should never deserialize RSC data')\n },\n})\n\n/**\n * Factory function for server-side RSC serialization adapter.\n */\nexport const rscSerializationAdapter = () => [adapter]\n"],"mappings":";;;;;;;;;;AAsCA,IAAM,2BAA2B,IAAI,kBAA+B;AACpE,IAAM,0BAA0B,IAAI,kBAA+B;AAEnE,sBACG,EACC,MACA,cAII;CACJ,MAAM,eAAe,yBAAyB,SAAS;CACvD,IAAI,cACF,KAAK,MAAM,QAAQ,KAAK,KACtB,aAAa,IAAI,IAAI;CAIzB,MAAM,cAAc,wBAAwB,SAAS;CACrD,IAAI,aACF,KAAK,MAAM,QAAQ,KAAK,IACtB,YAAY,IAAI,IAAI;CAIxB,IAAI,YAAY,aAAa,gBAAgB,aAC3C;CAGF,MAAM,MAAM,gBAAgB,EAAE,iBAAiB,MAAM,CAAC;CAItD,IAAI,CAAC,OAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,QACxC;CAGF,IAAI,CAAC,IAAI,eAAe,IAAI,gBAAgB,CAAC;CAC7C,MAAM,4BAAY,IAAI,IAAY;CAClC,KAAK,MAAM,WAAW,IAAI,cAAc,YAAY,CAAC,GACnD,UAAU,IAAI,OAAO,YAAY,WAAW,UAAU,QAAQ,IAAI;CAEpE,KAAK,MAAM,cAAc,IAAI,cAAc,OAAO,CAAC,GACjD,UAAU,IACR,OAAO,eAAe,WAAW,aAAa,WAAW,IAC3D;CAGF,IAAI;CACJ,KAAK,MAAM,QAAQ,KAAK,IAAI;EAC1B,IAAI,UAAU,IAAI,IAAI,GAAG;EACzB,UAAU,IAAI,IAAI;EAClB,IAAI,CAAC,cACH,eAAe,IAAI,cAAc,WAC7B,IAAI,cAAc,SAAS,MAAM,IACjC,CAAC;EAEP,aAAa,KAAK,IAAI;CACxB;CACA,IAAI,cACF,IAAI,cAAc,WAAW;CAG/B,IAAI;CACJ,KAAK,MAAM,QAAQ,KAAK,KAAK;EAC3B,IAAI,UAAU,IAAI,IAAI,GAAG;EACzB,UAAU,IAAI,IAAI;EAClB,IAAI,CAAC,SACH,UAAU,IAAI,cAAc,MAAM,IAAI,cAAc,IAAI,MAAM,IAAI,CAAC;EAErE,QAAQ,KAAK,IAAI;CACnB;CACA,IAAI,SACF,IAAI,cAAc,MAAM;AAE5B,CACF;AAsDA,WAAW,cAAc;CAnDvB,MAAM,OAAO,QAAyD;EACpE,MAAM,iBAAiB,OAAO,mBAAmB;EAKjD,MAAM,oCAAoB,IAAI,IAAY;EAC1C,MAAM,mCAAmB,IAAI,IAAY;EAEzC,OAAO,yBAAyB,IAAI,mBAAmB,YAAY;GACjE,OAAO,wBAAwB,IAAI,kBAAkB,YAAY;IAC/D,MAAM,cAAc,MAAM,yBAAU,cAAc;IAClD,MAAM,kBAAkB,cAAc,SAAS;KAC7C,kBAAkB,IAAI,IAAI;IAC5B,CAAC;IAED,OAAO;KACL,MAAM,qBAAqB,WAAW;KACtC,UAAU,kBAAkB,OAAO,IAAI,oBAAoB,KAAA;KAC3D,YAAY,iBAAiB,OAAO,IAAI,mBAAmB,KAAA;IAC7D;GACF,CAAC;EACH,CAAC;CACH;CAEA,sBAAsB,QAAQ,SAAc;EAC1C,OAAO,qBAAqB,QAAQ,MAAM;GACxC;GACA,UAAU,QAAQ;GAClB,YAAY,QAAQ;GACpB,YAAY;EACd,CAAC;CACH;CAEA,qBACE,QACA,SACA,kBACuB;EAQvB,OAPc,qBAAqB,QAAQ,MAAM;GAC/C;GACA,UAAU,QAAQ;GAClB,YAAY,QAAQ;GACpB,YAAY;GACZ;EACF,CACO;CACT;AAIuB;;;;;AAQzB,SAAS,gBAAgB,OAAyB;CAChD,IAAI,UAAU,QAAQ,UAAU,KAAA,GAAW,OAAO;CAClD,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO;CACrE,OAAO,kBAAkB,SAAU,MAAc,oBAAoB;AACvE;;;;AAKA,IAAM,UAAU,2BAA2B;CACzC,KAAK;CACL,OAAO,UAAmD;EACxD,OAAO,kBAAkB,KAAK;CAChC;CACA,iBAAiB,cAAqC;EACpD,MAAM,SAAS,UAAU,yBAA0B,mBAAmB;EAEtE,MAAM,OAAO,gBAAgB,SAAS,IAAI,eAAe;EACzD,MAAM,aAAa,UAAU;EAC7B,MAAM,WAAW,UAAU;EAG3B,MAAM,sBAAsB,YAAY,OACpC;GACE,GAAI,UAAU,OAAO,EAAE,UAAU,MAAM,KAAK,QAAQ,EAAE,IAAI,CAAC;GAC3D,YAAY,MAAM,KAAK,UAAU;EACnC,IACA,CAAC;EAEL,MAAM,mBAAA,QAAA,IAAA,aACqB,iBACzB,SAAS,eACT,0BAA0B,YACpB,UAAkB,0BAGpB,KAAA;EAEN,OAAO;GACL;GACA,QAAQ,IAAI,UAAU,QAAQ,EAAE,MAAM,OAAO,CAAC;GAC9C;GACA,GAAG;EACL;CACF;CACA,wBAA+B;EAC7B,MAAM,IAAI,MAAM,0CAA0C;CAC5D;AACF,CAAC;;;;AAKD,IAAa,gCAAgC,CAAC,OAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-start-rsc",
3
- "version": "0.1.48",
3
+ "version": "0.1.50",
4
4
  "description": "React Server Components support for TanStack Start",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -82,13 +82,13 @@
82
82
  },
83
83
  "dependencies": {
84
84
  "pathe": "^2.0.3",
85
- "@tanstack/react-router": "1.170.32",
86
- "@tanstack/router-core": "1.171.27",
87
- "@tanstack/router-utils": "1.162.2",
88
- "@tanstack/start-client-core": "1.170.27",
85
+ "@tanstack/react-router": "1.170.34",
86
+ "@tanstack/router-core": "1.171.29",
87
+ "@tanstack/router-utils": "1.162.3",
88
+ "@tanstack/start-client-core": "1.170.29",
89
89
  "@tanstack/start-fn-stubs": "1.162.0",
90
- "@tanstack/start-storage-context": "1.167.29",
91
- "@tanstack/start-plugin-core": "1.171.39"
90
+ "@tanstack/start-plugin-core": "1.171.41",
91
+ "@tanstack/start-storage-context": "1.167.31"
92
92
  },
93
93
  "devDependencies": {
94
94
  "@rspack/core": "2.0.0",
@@ -204,8 +204,8 @@ const adapter = createSerializationAdapter({
204
204
  : {}
205
205
 
206
206
  const slotUsagesStream =
207
- kind === 'composite' &&
208
207
  process.env.NODE_ENV === 'development' &&
208
+ kind === 'composite' &&
209
209
  RSC_SLOT_USAGES_STREAM in component
210
210
  ? ((component as any)[RSC_SLOT_USAGES_STREAM] as unknown as
211
211
  | ReadableStream<any>