@vitejs/plugin-rsc 0.5.15 → 0.5.16
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/README.md +24 -0
- package/dist/core/rsc.d.ts +9 -1
- package/dist/core/rsc.js +1 -1
- package/dist/react/rsc.d.ts +9 -1
- package/dist/react/rsc.js +3 -3
- package/dist/{rsc-DRNoX2Q6.js → rsc-BCFg12vs.js} +5 -1
- package/dist/rsc.d.ts +16 -1
- package/dist/rsc.js +16 -2
- package/dist/utils/encryption-runtime.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -453,6 +453,30 @@ This module re-exports RSC runtime API provided by `react-server-dom/server.edge
|
|
|
453
453
|
- `decodeAction/decodeReply/decodeFormState/loadServerAction/createTemporaryReferenceSet`
|
|
454
454
|
- `encodeReply/createClientTemporaryReferenceSet`
|
|
455
455
|
|
|
456
|
+
#### Vite-specific extension: `renderToReadableStream` (experimental)
|
|
457
|
+
|
|
458
|
+
> [!NOTE]
|
|
459
|
+
> This is a Vite-specific extension to the standard React RSC API. The official `react-server-dom` does not provide this callback mechanism.
|
|
460
|
+
|
|
461
|
+
`renderToReadableStream` API is extended with an optional third parameter with `onClientReference` callback.
|
|
462
|
+
This is invoked whenever a client reference is used in RSC stream rendering.
|
|
463
|
+
|
|
464
|
+
```ts
|
|
465
|
+
function renderToReadableStream<T>(
|
|
466
|
+
data: T,
|
|
467
|
+
// standard options (e.g. temporaryReferences, onError, etc.)
|
|
468
|
+
options?: object,
|
|
469
|
+
// vite-specific options
|
|
470
|
+
extraOptions?: {
|
|
471
|
+
onClientReference?: (metadata: {
|
|
472
|
+
id: string
|
|
473
|
+
name: string
|
|
474
|
+
deps: { js: string[]; css: string[] }
|
|
475
|
+
}) => void
|
|
476
|
+
},
|
|
477
|
+
): ReadableStream<Uint8Array>
|
|
478
|
+
```
|
|
479
|
+
|
|
456
480
|
### `@vitejs/plugin-rsc/ssr`
|
|
457
481
|
|
|
458
482
|
This module re-exports RSC runtime API provided by `react-server-dom/client.edge`
|
package/dist/core/rsc.d.ts
CHANGED
|
@@ -7,6 +7,14 @@ declare function setRequireModule(options: {
|
|
|
7
7
|
declare function loadServerAction(id: string): Promise<Function>;
|
|
8
8
|
declare function createServerManifest(): BundlerConfig;
|
|
9
9
|
declare function createServerDecodeClientManifest(): ModuleMap;
|
|
10
|
-
declare function createClientManifest(
|
|
10
|
+
declare function createClientManifest(options?: {
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
onClientReference?: (metadata: {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
}) => void;
|
|
18
|
+
}): BundlerConfig;
|
|
11
19
|
//#endregion
|
|
12
20
|
export { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule };
|
package/dist/core/rsc.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as setRequireModule, i as loadServerAction, n as createServerDecodeClientManifest, r as createServerManifest, t as createClientManifest } from "../rsc-
|
|
1
|
+
import { a as setRequireModule, i as loadServerAction, n as createServerDecodeClientManifest, r as createServerManifest, t as createClientManifest } from "../rsc-BCFg12vs.js";
|
|
2
2
|
|
|
3
3
|
export { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule };
|
package/dist/react/rsc.d.ts
CHANGED
|
@@ -2,7 +2,15 @@ import { loadServerAction, setRequireModule } from "../core/rsc.js";
|
|
|
2
2
|
import { ReactFormState } from "react-dom/client";
|
|
3
3
|
|
|
4
4
|
//#region src/react/rsc.d.ts
|
|
5
|
-
declare function renderToReadableStream<T>(data: T, options?: object
|
|
5
|
+
declare function renderToReadableStream<T>(data: T, options?: object, extraOptions?: {
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
onClientReference?: (metadata: {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
}) => void;
|
|
13
|
+
}): ReadableStream<Uint8Array>;
|
|
6
14
|
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: object): Promise<T>;
|
|
7
15
|
declare function registerClientReference<T>(proxy: T, id: string, name: string): T;
|
|
8
16
|
declare const registerServerReference: <T>(ref: T, id: string, name: string) => T;
|
package/dist/react/rsc.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as setRequireModule, i as loadServerAction, n as createServerDecodeClientManifest, r as createServerManifest, t as createClientManifest } from "../rsc-
|
|
1
|
+
import { a as setRequireModule, i as loadServerAction, n as createServerDecodeClientManifest, r as createServerManifest, t as createClientManifest } from "../rsc-BCFg12vs.js";
|
|
2
2
|
import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
|
|
3
3
|
import * as ReactServer from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
|
|
4
4
|
|
|
5
5
|
//#region src/react/rsc.ts
|
|
6
|
-
function renderToReadableStream(data, options) {
|
|
7
|
-
return ReactServer.renderToReadableStream(data, createClientManifest(), options);
|
|
6
|
+
function renderToReadableStream(data, options, extraOptions) {
|
|
7
|
+
return ReactServer.renderToReadableStream(data, createClientManifest({ onClientReference: extraOptions?.onClientReference }), options);
|
|
8
8
|
}
|
|
9
9
|
function createFromReadableStream(stream, options = {}) {
|
|
10
10
|
return ReactClient.createFromReadableStream(stream, {
|
|
@@ -62,13 +62,17 @@ function createServerDecodeClientManifest() {
|
|
|
62
62
|
} });
|
|
63
63
|
} });
|
|
64
64
|
}
|
|
65
|
-
function createClientManifest() {
|
|
65
|
+
function createClientManifest(options) {
|
|
66
66
|
const cacheTag = import.meta.env.DEV ? createReferenceCacheTag() : "";
|
|
67
67
|
return new Proxy({}, { get(_target, $$id, _receiver) {
|
|
68
68
|
tinyassert(typeof $$id === "string");
|
|
69
69
|
let [id, name] = $$id.split("#");
|
|
70
70
|
tinyassert(id);
|
|
71
71
|
tinyassert(name);
|
|
72
|
+
options?.onClientReference?.({
|
|
73
|
+
id,
|
|
74
|
+
name
|
|
75
|
+
});
|
|
72
76
|
return {
|
|
73
77
|
id: id + cacheTag,
|
|
74
78
|
name,
|
package/dist/rsc.d.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./core/rsc.js";
|
|
2
|
-
import {
|
|
2
|
+
import { i as ResolvedAssetDeps } from "./plugin-V6VFxi_0.js";
|
|
3
|
+
import "./index-DJ0AhQ9B.js";
|
|
4
|
+
import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference } from "./react/rsc.js";
|
|
3
5
|
import { decryptActionBoundArgs, encryptActionBoundArgs } from "./utils/encryption-runtime.js";
|
|
6
|
+
|
|
7
|
+
//#region src/rsc.d.ts
|
|
8
|
+
declare function renderToReadableStream<T>(data: T, options?: object, extraOptions?: {
|
|
9
|
+
/**
|
|
10
|
+
* @experimental
|
|
11
|
+
*/
|
|
12
|
+
onClientReference?: (metadata: {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
deps: ResolvedAssetDeps;
|
|
16
|
+
}) => void;
|
|
17
|
+
}): ReadableStream<Uint8Array>;
|
|
18
|
+
//#endregion
|
|
4
19
|
export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
package/dist/rsc.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { a as toReferenceValidationVirtual } from "./shared-Chot7h9j.js";
|
|
2
|
-
import { a as setRequireModule, i as loadServerAction, r as createServerManifest, t as createClientManifest } from "./rsc-
|
|
3
|
-
import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "./react/rsc.js";
|
|
2
|
+
import { a as setRequireModule, i as loadServerAction, r as createServerManifest, t as createClientManifest } from "./rsc-BCFg12vs.js";
|
|
3
|
+
import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream as renderToReadableStream$1 } from "./react/rsc.js";
|
|
4
4
|
import { decryptActionBoundArgs, encryptActionBoundArgs } from "./utils/encryption-runtime.js";
|
|
5
|
+
import assetsManifest from "virtual:vite-rsc/assets-manifest";
|
|
5
6
|
import serverReferences from "virtual:vite-rsc/server-references";
|
|
6
7
|
|
|
7
8
|
//#region src/rsc.tsx
|
|
@@ -27,6 +28,19 @@ function initialize() {
|
|
|
27
28
|
}
|
|
28
29
|
} });
|
|
29
30
|
}
|
|
31
|
+
function renderToReadableStream(data, options, extraOptions) {
|
|
32
|
+
return renderToReadableStream$1(data, options, { onClientReference(metadata) {
|
|
33
|
+
const deps = assetsManifest.clientReferenceDeps[metadata.id] ?? {
|
|
34
|
+
js: [],
|
|
35
|
+
css: []
|
|
36
|
+
};
|
|
37
|
+
extraOptions?.onClientReference?.({
|
|
38
|
+
id: metadata.id,
|
|
39
|
+
name: metadata.name,
|
|
40
|
+
deps
|
|
41
|
+
});
|
|
42
|
+
} });
|
|
43
|
+
}
|
|
30
44
|
|
|
31
45
|
//#endregion
|
|
32
46
|
export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as once } from "../dist-DZUJDIM2.js";
|
|
2
2
|
import { a as fromBase64, i as encryptBuffer, n as concatArrayStream, r as decryptBuffer, t as arrayToStream } from "../encryption-utils-BPYvebX4.js";
|
|
3
|
-
import "../rsc-
|
|
3
|
+
import "../rsc-BCFg12vs.js";
|
|
4
4
|
import { createFromReadableStream, renderToReadableStream } from "../react/rsc.js";
|
|
5
5
|
import encryptionKeySource from "virtual:vite-rsc/encryption-key";
|
|
6
6
|
|