@vitejs/plugin-rsc 0.5.27 → 0.5.29

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 (66) hide show
  1. package/README.md +44 -18
  2. package/dist/browser.d.ts +3 -3
  3. package/dist/{cjs-BspwazE6.js → cjs-Cxg_7upE.js} +3 -3
  4. package/dist/client-Bhch3O41.d.ts +19 -0
  5. package/dist/client-reference-CCekXxax.js +16 -0
  6. package/dist/client-reference-DT0MYgPn.d.ts +8 -0
  7. package/dist/core/browser.d.ts +1 -1
  8. package/dist/core/browser.js +2 -2
  9. package/dist/core/plugin.d.ts +0 -1
  10. package/dist/core/rsc.d.ts +2 -20
  11. package/dist/core/rsc.js +20 -4
  12. package/dist/core/ssr.d.ts +1 -2
  13. package/dist/core/ssr.js +2 -2
  14. package/dist/{encryption-utils-CRBgMeBq.js → encryption-utils-BNbYHtC4.js} +1 -1
  15. package/dist/{index-DViteJjw.d.ts → index-BjJe9jqG.d.ts} +35 -12
  16. package/dist/{index-BrXJaflA.d.ts → index-C5IY2S-e.d.ts} +16 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/{picocolors-CEw5D0BV.js → picocolors-nYPB6lHj.js} +4 -2
  20. package/dist/{plugin-Bm-Fb4g7.d.ts → plugin-CaLiN8ED.d.ts} +71 -64
  21. package/dist/{plugin-BK29Va7z.js → plugin-DPZnhMn5.js} +30 -15
  22. package/dist/plugin.d.ts +2 -2
  23. package/dist/plugin.js +1 -1
  24. package/dist/plugins/cjs.d.ts +0 -1
  25. package/dist/plugins/cjs.js +1 -1
  26. package/dist/react/browser.d.ts +2 -3
  27. package/dist/react/rsc/client.d.ts +2 -0
  28. package/dist/react/rsc/client.js +16 -0
  29. package/dist/react/rsc/server.d.ts +3 -0
  30. package/dist/react/rsc/server.js +20 -0
  31. package/dist/react/rsc/static.d.ts +6 -0
  32. package/dist/react/rsc/static.js +8 -0
  33. package/dist/react/rsc.d.ts +3 -24
  34. package/dist/react/rsc.js +3 -31
  35. package/dist/react/ssr.d.ts +4 -3
  36. package/dist/react/ssr.js +3 -1
  37. package/dist/rsc/client.d.ts +2 -0
  38. package/dist/rsc/client.js +3 -0
  39. package/dist/rsc/server.d.ts +12 -0
  40. package/dist/rsc/server.js +10 -0
  41. package/dist/rsc/static.d.ts +11 -0
  42. package/dist/rsc/static.js +9 -0
  43. package/dist/rsc-C3UdJLOW.d.ts +20 -0
  44. package/dist/rsc.d.ts +4 -16
  45. package/dist/rsc.js +4 -41
  46. package/dist/{scope-Bwt9GVLP.js → scope-Do08R7C2.js} +1 -1
  47. package/dist/server-ZBjqNTqU.d.ts +13 -0
  48. package/dist/shared-D42sHPD1.js +25 -0
  49. package/dist/{shared-BVLpj0Y8.js → shared-Y4B6DJ99.js} +2 -1
  50. package/dist/ssr.d.ts +12 -12
  51. package/dist/ssr.js +12 -7
  52. package/dist/transforms/index.d.ts +1 -1
  53. package/dist/transforms/index.js +39 -28
  54. package/dist/utils/encryption-runtime.js +5 -5
  55. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.development.js +2 -2
  56. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.development.js +29 -29
  57. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.production.js +26 -29
  58. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.development.js +31 -31
  59. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.production.js +30 -33
  60. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.development.js +101 -64
  61. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.production.js +99 -62
  62. package/dist/vendor/react-server-dom/package.json +5 -5
  63. package/package.json +11 -11
  64. /package/dist/{browser-C_qguV-a.d.ts → browser-DI_Wyg5Y.d.ts} +0 -0
  65. /package/dist/{dist-rz-Bnebz.js → dist-uqdtSkzK.js} +0 -0
  66. /package/dist/{shared-DeahDSXi.js → shared-B6H2TbnP.js} +0 -0
@@ -1,7 +1,6 @@
1
- import { f as TransformWrapExportFilter } from "./index-DViteJjw.js";
1
+ import { f as TransformWrapExportFilter } from "./index-BjJe9jqG.js";
2
2
  import MagicString from "magic-string";
3
3
  import { Plugin, ResolvedConfig, Rollup, ViteDevServer, parseAstAsync } from "vite";
4
-
5
4
  //#region src/plugins/import-environment.d.ts
6
5
  type EnvironmentImportMeta = {
7
6
  resolvedId: string;
@@ -20,23 +19,23 @@ type ClientReferenceMeta = {
20
19
  serverChunk?: string;
21
20
  groupChunkId?: string;
22
21
  };
23
- type ServerRerferenceMeta = {
22
+ type ServerReferenceMeta = {
24
23
  importId: string;
25
24
  referenceKey: string;
26
25
  exportNames: string[];
27
26
  };
28
27
  /**
29
- * @experimental
30
- */
28
+ * @experimental
29
+ */
31
30
  declare class RscPluginManager {
32
- server!: ViteDevServer;
33
- config!: ResolvedConfig;
31
+ server: ViteDevServer;
32
+ config: ResolvedConfig;
34
33
  bundles: Record<string, Rollup.OutputBundle>;
35
34
  buildAssetsManifest: AssetsManifest | undefined;
36
35
  isScanBuild: boolean;
37
36
  clientReferenceMetaMap: Record<string, ClientReferenceMeta>;
38
37
  clientReferenceGroups: Record<string, ClientReferenceMeta[]>;
39
- serverReferenceMetaMap: Record<string, ServerRerferenceMeta>;
38
+ serverReferenceMetaMap: Record<string, ServerReferenceMeta>;
40
39
  serverResourcesMetaMap: Record<string, {
41
40
  key: string;
42
41
  }>;
@@ -48,94 +47,100 @@ declare class RscPluginManager {
48
47
  }
49
48
  type RscPluginOptions = {
50
49
  /**
51
- * shorthand for configuring `environments.(name).build.rollupOptions.input.index`
52
- */
53
- entries?: Partial<Record<"client" | "ssr" | "rsc", string>>; /** @default { enviornmentName: "rsc", entryName: "index" } */
50
+ * shorthand for configuring `environments.(name).build.rollupOptions.input.index`
51
+ */
52
+ entries?: Partial<Record<"client" | "ssr" | "rsc", string>>;
53
+ /** @default { enviornmentName: "rsc", entryName: "index" } */
54
54
  serverHandler?: {
55
55
  environmentName: string;
56
56
  entryName: string;
57
- } | false; /** @default false */
57
+ } | false;
58
+ /** @default false */
58
59
  loadModuleDevProxy?: boolean;
59
60
  rscCssTransform?: false | {
60
61
  filter?: (id: string) => boolean;
61
62
  };
62
63
  /**
63
- * @deprecated This option is a no-op and will be removed in a future major.
64
- */
64
+ * @deprecated This option is a no-op and will be removed in a future major.
65
+ */
65
66
  copyServerAssetsToClient?: (fileName: string) => boolean;
66
67
  /**
67
- * This option allows disabling action closure encryption for debugging purpose.
68
- * @default true
69
- */
68
+ * This option allows disabling action closure encryption for debugging purpose.
69
+ * @default true
70
+ */
70
71
  enableActionEncryption?: boolean;
71
72
  /**
72
- * By default, the plugin uses a build-time generated encryption key for
73
- * "use server" closure argument binding.
74
- * This can be overwritten by configuring `defineEncryptionKey` option,
75
- * for example, to obtain a key through environment variable during runtime.
76
- * cf. https://nextjs.org/docs/app/guides/data-security#overwriting-encryption-keys-advanced
77
- */
78
- defineEncryptionKey?: string; /** Escape hatch for Waku's `allowServer` */
73
+ * By default, the plugin uses a build-time generated encryption key for
74
+ * "use server" closure argument binding.
75
+ * This can be overwritten by configuring `defineEncryptionKey` option,
76
+ * for example, to obtain a key through environment variable during runtime.
77
+ * cf. https://nextjs.org/docs/app/guides/data-security#overwriting-encryption-keys-advanced
78
+ */
79
+ defineEncryptionKey?: string;
80
+ /** Escape hatch for Waku's `allowServer` */
79
81
  keepUseCientProxy?: boolean;
80
82
  /**
81
- * Enable build-time validation of 'client-only' and 'server-only' imports
82
- * @default true
83
- */
83
+ * Enable build-time validation of 'client-only' and 'server-only' imports
84
+ * @default true
85
+ */
84
86
  validateImports?: boolean;
85
87
  /**
86
- * use `Plugin.buildApp` hook (introduced on Vite 7) instead of `builder.buildApp` configuration
87
- * for better composability with other plugins.
88
- * @default true since Vite 7
89
- */
88
+ * use `Plugin.buildApp` hook (introduced on Vite 7) instead of `builder.buildApp` configuration
89
+ * for better composability with other plugins.
90
+ * @default true since Vite 7
91
+ */
90
92
  useBuildAppHook?: boolean;
91
93
  /**
92
- * Skip the default buildApp orchestration for downstream frameworks
93
- * to implement custom build pipelines using `getPluginApi()`.
94
- * @experimental
95
- * @default false
96
- */
94
+ * Skip the default buildApp orchestration for downstream frameworks
95
+ * to implement custom build pipelines using `getPluginApi()`.
96
+ * @experimental
97
+ * @default false
98
+ */
97
99
  customBuildApp?: boolean;
98
100
  /**
99
- * Custom environment configuration
100
- * @experimental
101
- * @default { browser: 'client', ssr: 'ssr', rsc: 'rsc' }
102
- */
101
+ * Custom environment configuration
102
+ * @experimental
103
+ * @default { browser: 'client', ssr: 'ssr', rsc: 'rsc' }
104
+ */
103
105
  environment?: {
104
106
  browser?: string;
105
107
  ssr?: string;
106
108
  rsc?: string;
107
109
  };
108
110
  /**
109
- * Custom chunking strategy for client reference modules.
110
- *
111
- * This function allows you to group multiple client components into
112
- * custom chunks instead of having each module in its own chunk.
113
- * By default, client chunks are grouped by `meta.serverChunk`.
114
- */
111
+ * Custom chunking strategy for client reference modules.
112
+ *
113
+ * This function allows you to group multiple client components into
114
+ * custom chunks instead of having each module in its own chunk.
115
+ * By default, client chunks are grouped by `meta.serverChunk`.
116
+ */
115
117
  clientChunks?: (meta: {
116
- /** client reference module id */id: string; /** normalized client reference module id */
117
- normalizedId: string; /** server chunk which includes a corresponding client reference proxy module */
118
+ /** client reference module id */
119
+ id: string;
120
+ /** normalized client reference module id */
121
+ normalizedId: string;
122
+ /** server chunk which includes a corresponding client reference proxy module */
118
123
  serverChunk: string;
119
124
  }) => string | undefined;
120
125
  /**
121
- * Controls whether CSS links use React's `precedence` attribute.
122
- * @experimental
123
- * @default true
124
- */
126
+ * Controls whether CSS links use React's `precedence` attribute.
127
+ * @experimental
128
+ * @default true
129
+ */
125
130
  cssLinkPrecedence?: boolean;
126
131
  /**
127
- * Opt out of the default "index" client entry convention.
128
- * When enabled, the plugin will not:
129
- * - Require an entry chunk named "index"
130
- * - Automatically include client entry deps in each client reference's dependencies
131
- *
132
- * Note: `import.meta.viteRsc.loadBootstrapScriptContent` cannot be used with this option.
133
- *
134
- * Use this when you manually handle client entry setup and preloading.
135
- *
136
- * @experimental
137
- * @default false
138
- */
132
+ * Opt out of the default "index" client entry convention.
133
+ * When enabled, the plugin will not:
134
+ * - Require an entry chunk named "index"
135
+ * - Automatically include client entry deps in each client reference's dependencies
136
+ *
137
+ * Note: `import.meta.viteRsc.loadBootstrapScriptContent` cannot be used with this option.
138
+ *
139
+ * Use this when you manually handle client entry setup and preloading.
140
+ *
141
+ * @experimental
142
+ * @default false
143
+ */
139
144
  customClientEntry?: boolean;
140
145
  };
141
146
  type PluginApi = {
@@ -155,6 +160,7 @@ declare class RuntimeAsset {
155
160
  }
156
161
  type AssetsManifest = {
157
162
  bootstrapScriptContent: string | RuntimeAsset;
163
+ clientEntryDeps?: AssetDeps;
158
164
  clientReferenceDeps: Record<string, AssetDeps>;
159
165
  serverResources?: Record<string, Pick<AssetDeps, "css">>;
160
166
  cssLinkPrecedence?: boolean;
@@ -165,6 +171,7 @@ type AssetDeps = {
165
171
  };
166
172
  type ResolvedAssetsManifest = {
167
173
  bootstrapScriptContent: string;
174
+ clientEntryDeps?: ResolvedAssetDeps;
168
175
  clientReferenceDeps: Record<string, ResolvedAssetDeps>;
169
176
  serverResources?: Record<string, Pick<ResolvedAssetDeps, "css">>;
170
177
  cssLinkPrecedence?: boolean;
@@ -1,10 +1,10 @@
1
- import { t as createDebug } from "./dist-rz-Bnebz.js";
1
+ import { t as createDebug } from "./dist-uqdtSkzK.js";
2
2
  import vitePluginRscCore from "./core/plugin.js";
3
- import { i as hasDirective } from "./scope-Bwt9GVLP.js";
4
- import { t as cjsModuleRunnerPlugin } from "./cjs-BspwazE6.js";
5
- import { i as toCssVirtual, n as parseIdQuery, r as parseReferenceValidationVirtual, t as parseCssVirtual } from "./shared-DeahDSXi.js";
3
+ import { i as hasDirective } from "./scope-Do08R7C2.js";
4
+ import { t as cjsModuleRunnerPlugin } from "./cjs-Cxg_7upE.js";
5
+ import { i as toCssVirtual, n as parseIdQuery, r as parseReferenceValidationVirtual, t as parseCssVirtual } from "./shared-B6H2TbnP.js";
6
6
  import { findDirectives, transformDirectiveProxyExport, transformExpandExportAll, transformServerActionServer, transformWrapExport } from "./transforms/index.js";
7
- import { o as generateEncryptionKey, s as toBase64 } from "./encryption-utils-CRBgMeBq.js";
7
+ import { o as generateEncryptionKey, s as toBase64 } from "./encryption-utils-BNbYHtC4.js";
8
8
  import { createRpcServer } from "./utils/rpc.js";
9
9
  import { createRequire } from "node:module";
10
10
  import assert from "node:assert";
@@ -605,15 +605,24 @@ function vitePluginRscMinimal(rscPluginOptions = {}, manager = new RscPluginMana
605
605
  apply: "serve",
606
606
  load: {
607
607
  filter: { id: prefixRegex("\0virtual:vite-rsc/reference-validation?") },
608
- handler(id, _options) {
608
+ async handler(id, _options) {
609
609
  if (id.startsWith("\0virtual:vite-rsc/reference-validation?")) {
610
610
  const parsed = parseReferenceValidationVirtual(id);
611
611
  assert(parsed);
612
+ assert(this.environment.mode === "dev");
612
613
  if (parsed.type === "client") {
613
614
  if (Object.values(manager.clientReferenceMetaMap).find((meta) => meta.referenceKey === parsed.id)) return `export {}`;
614
615
  }
615
616
  if (parsed.type === "server") {
616
- if (Object.values(manager.serverReferenceMetaMap).find((meta) => meta.referenceKey === parsed.id)) return `export {}`;
617
+ let meta = Object.values(manager.serverReferenceMetaMap).find((meta) => meta.referenceKey === parsed.id);
618
+ if (!meta) {
619
+ try {
620
+ const id = (await this.resolve(parsed.id))?.id ?? parsed.id;
621
+ if (isFileLoadingAllowed(manager.config, slash(cleanUrl(id)))) await this.environment.transformRequest(parsed.id);
622
+ } catch {}
623
+ meta = Object.values(manager.serverReferenceMetaMap).find((meta) => meta.referenceKey === parsed.id);
624
+ }
625
+ if (meta) return `export {}`;
617
626
  }
618
627
  this.error(`[vite-rsc] invalid ${parsed.type} reference '${parsed.id}'`);
619
628
  }
@@ -627,7 +636,7 @@ function vitePluginRscMinimal(rscPluginOptions = {}, manager = new RscPluginMana
627
636
  function vitePluginRsc(rscPluginOptions = {}) {
628
637
  const manager = new RscPluginManager();
629
638
  const buildApp = async (builder) => {
630
- const colors = await import("./picocolors-CEw5D0BV.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
639
+ const colors = await import("./picocolors-nYPB6lHj.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
631
640
  const logStep = (msg) => {
632
641
  builder.config.logger.info(colors.blue(msg));
633
642
  };
@@ -748,6 +757,7 @@ function vitePluginRsc(rscPluginOptions = {}) {
748
757
  "react/jsx-runtime",
749
758
  "react/jsx-dev-runtime",
750
759
  `${reactServerDomPackageName}/server.edge`,
760
+ `${reactServerDomPackageName}/static.edge`,
751
761
  `${reactServerDomPackageName}/client.edge`
752
762
  ],
753
763
  exclude: [PKG_NAME, ...optimizeDepsExclude]
@@ -1096,6 +1106,7 @@ export function createRpcClient(params) {
1096
1106
  }, manager);
1097
1107
  const assetDeps = collectAssetDeps(bundle);
1098
1108
  let bootstrapScriptContent = "";
1109
+ let clientEntryDeps;
1099
1110
  const clientReferenceDeps = {};
1100
1111
  for (const meta of Object.values(manager.clientReferenceMetaMap)) {
1101
1112
  const deps = assetDeps[meta.groupChunkId]?.deps ?? {
@@ -1107,14 +1118,15 @@ export function createRpcClient(params) {
1107
1118
  if (!rscPluginOptions.customClientEntry) {
1108
1119
  const entry = Object.values(assetDeps).find((v) => v.chunk.name === "index" && v.chunk.isEntry);
1109
1120
  if (!entry) throw new Error(`[vite-rsc] Client build must have an entry chunk named "index". Use 'customClientEntry' option to disable this requirement.`);
1110
- const entryDeps = assetsURLOfDeps(entry.deps, manager);
1111
- for (const [key, deps] of Object.entries(clientReferenceDeps)) clientReferenceDeps[key] = mergeAssetDeps(deps, entryDeps);
1121
+ clientEntryDeps = assetsURLOfDeps(entry.deps, manager);
1122
+ for (const [key, deps] of Object.entries(clientReferenceDeps)) clientReferenceDeps[key] = mergeAssetDeps(deps, clientEntryDeps);
1112
1123
  const entryUrl = assetsURL(entry.chunk.fileName, manager);
1113
1124
  if (typeof entryUrl === "string") bootstrapScriptContent = `import(${JSON.stringify(entryUrl)})`;
1114
1125
  else bootstrapScriptContent = new RuntimeAsset(`"import(" + JSON.stringify(${entryUrl.runtime}) + ")"`);
1115
1126
  }
1116
1127
  manager.buildAssetsManifest = {
1117
1128
  bootstrapScriptContent,
1129
+ clientEntryDeps,
1118
1130
  clientReferenceDeps,
1119
1131
  serverResources,
1120
1132
  cssLinkPrecedence: rscPluginOptions.cssLinkPrecedence
@@ -1316,7 +1328,7 @@ function vitePluginUseClient(useClientPluginOptions, manager) {
1316
1328
  exportNames,
1317
1329
  renderedExports: []
1318
1330
  };
1319
- const importSource = resolvePackage(`${PKG_NAME}/react/rsc`);
1331
+ const importSource = resolvePackage(`${PKG_NAME}/react/rsc/server`);
1320
1332
  output.prepend(`import * as $$ReactServer from "${importSource}";\n`);
1321
1333
  return {
1322
1334
  code: output.toString(),
@@ -1423,6 +1435,8 @@ function vitePluginUseClient(useClientPluginOptions, manager) {
1423
1435
  if (this.environment.name === serverEnvironmentName && bareImportRE.test(source) && !(source === "client-only" || source === "server-only")) {
1424
1436
  const resolved = await this.resolve(source, importer, options);
1425
1437
  if (resolved && resolved.id.includes("/node_modules/")) {
1438
+ const resolvedAtRoot = await this.resolve(source, void 0, options);
1439
+ if (!resolvedAtRoot || resolvedAtRoot.id !== resolved.id) return;
1426
1440
  packageSources.set(resolved.id, source);
1427
1441
  return resolved;
1428
1442
  }
@@ -1608,7 +1622,7 @@ function vitePluginUseServer(useServerPluginOptions, manager) {
1608
1622
  referenceKey: getNormalizedId(),
1609
1623
  exportNames: "names" in result ? result.names : result.exportNames
1610
1624
  };
1611
- const importSource = resolvePackage(`${PKG_NAME}/react/rsc`);
1625
+ const importSource = resolvePackage(`${PKG_NAME}/react/rsc/server`);
1612
1626
  output.prepend(`import * as $$ReactServer from "${importSource}";\n`);
1613
1627
  if (enableEncryption) {
1614
1628
  const importSource = resolvePackage(`${PKG_NAME}/utils/encryption-runtime`);
@@ -1637,7 +1651,8 @@ function vitePluginUseServer(useServerPluginOptions, manager) {
1637
1651
  referenceKey: getNormalizedId(),
1638
1652
  exportNames: result.exportNames
1639
1653
  };
1640
- const importSource = resolvePackage(`${PKG_NAME}/react/${this.environment.name === browserEnvironmentName ? "browser" : "ssr"}`);
1654
+ const name = this.environment.name === browserEnvironmentName ? "browser" : "ssr";
1655
+ const importSource = resolvePackage(`${PKG_NAME}/react/${name}`);
1641
1656
  output.prepend(`import * as $$ReactClient from "${importSource}";\n`);
1642
1657
  return {
1643
1658
  code: output.toString(),
@@ -1718,8 +1733,8 @@ function assetsURLOfDeps(deps, manager) {
1718
1733
  }
1719
1734
  function mergeAssetDeps(a, b) {
1720
1735
  return {
1721
- js: [...new Set([...a.js, ...b.js])],
1722
- css: [...new Set([...a.css, ...b.css])]
1736
+ js: [.../* @__PURE__ */ new Set([...a.js, ...b.js])],
1737
+ css: [.../* @__PURE__ */ new Set([...a.css, ...b.css])]
1723
1738
  };
1724
1739
  }
1725
1740
  function collectAssetDeps(bundle) {
package/dist/plugin.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as ResolvedAssetsManifest, c as getPluginApi, d as vitePluginRscMinimal, i as ResolvedAssetDeps, l as transformRscCssExport, n as AssetsManifest, o as RscPluginManager, r as PluginApi, s as RscPluginOptions, t as AssetDeps, u as vitePluginRsc } from "./plugin-Bm-Fb4g7.js";
2
- export { AssetDeps, AssetsManifest, PluginApi, ResolvedAssetDeps, ResolvedAssetsManifest, RscPluginManager, RscPluginOptions, vitePluginRsc as default, getPluginApi, transformRscCssExport, vitePluginRscMinimal };
1
+ import { a as ResolvedAssetsManifest, c as getPluginApi, d as vitePluginRscMinimal, i as ResolvedAssetDeps, l as transformRscCssExport, n as AssetsManifest, o as RscPluginManager, r as PluginApi, s as RscPluginOptions, t as AssetDeps, u as vitePluginRsc } from "./plugin-CaLiN8ED.js";
2
+ export { AssetDeps, AssetsManifest, PluginApi, ResolvedAssetDeps, ResolvedAssetsManifest, type RscPluginManager, RscPluginOptions, vitePluginRsc as default, getPluginApi, transformRscCssExport, vitePluginRscMinimal };
package/dist/plugin.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as vitePluginRscMinimal, n as transformRscCssExport, r as vitePluginRsc, t as getPluginApi } from "./plugin-BK29Va7z.js";
1
+ import { i as vitePluginRscMinimal, n as transformRscCssExport, r as vitePluginRsc, t as getPluginApi } from "./plugin-DPZnhMn5.js";
2
2
  export { vitePluginRsc as default, getPluginApi, transformRscCssExport, vitePluginRscMinimal };
@@ -1,5 +1,4 @@
1
1
  import { Plugin } from "vite";
2
-
3
2
  //#region src/plugins/cjs.d.ts
4
3
  declare function cjsModuleRunnerPlugin(): Plugin[];
5
4
  //#endregion
@@ -1,2 +1,2 @@
1
- import { t as cjsModuleRunnerPlugin } from "../cjs-BspwazE6.js";
1
+ import { t as cjsModuleRunnerPlugin } from "../cjs-Cxg_7upE.js";
2
2
  export { cjsModuleRunnerPlugin };
@@ -1,6 +1,5 @@
1
- import { i as CreateFromReadableStreamBrowserOptions, n as CallServerCallback, r as ClientTemporaryReferenceSet, s as EncodeReplyFunction } from "../index-BrXJaflA.js";
2
- import { t as setRequireModule } from "../browser-C_qguV-a.js";
3
-
1
+ import { c as EncodeReplyFunction, i as CreateFromReadableStreamBrowserOptions, n as CallServerCallback, r as ClientTemporaryReferenceSet } from "../index-C5IY2S-e.js";
2
+ import { t as setRequireModule } from "../browser-DI_Wyg5Y.js";
4
3
  //#region src/react/browser.d.ts
5
4
  declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: CreateFromReadableStreamBrowserOptions): Promise<T>;
6
5
  declare function createFromFetch<T>(promiseForResponse: Promise<Response>, options?: CreateFromReadableStreamBrowserOptions): Promise<T>;
@@ -0,0 +1,2 @@
1
+ import { n as createFromReadableStream, r as encodeReply, t as createClientTemporaryReferenceSet } from "../../client-Bhch3O41.js";
2
+ export { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply };
@@ -0,0 +1,16 @@
1
+ import { createServerDecodeClientManifest, createServerManifest } from "../../core/rsc.js";
2
+ import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
3
+ //#region src/react/rsc/client.ts
4
+ function createFromReadableStream(stream, options = {}, extraOptions) {
5
+ return ReactClient.createFromReadableStream(stream, {
6
+ serverConsumerManifest: {
7
+ serverModuleMap: createServerManifest({ preserveServerReferences: extraOptions?.preserveServerReferences }),
8
+ moduleMap: createServerDecodeClientManifest()
9
+ },
10
+ ...options
11
+ });
12
+ }
13
+ const encodeReply = ReactClient.encodeReply;
14
+ const createClientTemporaryReferenceSet = ReactClient.createTemporaryReferenceSet;
15
+ //#endregion
16
+ export { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply };
@@ -0,0 +1,3 @@
1
+ import { o as loadServerAction, s as setRequireModule } from "../../rsc-C3UdJLOW.js";
2
+ import { a as registerClientReference, i as decodeReply, n as decodeAction, o as registerServerReference, r as decodeFormState, s as renderToReadableStream, t as createTemporaryReferenceSet } from "../../server-ZBjqNTqU.js";
3
+ export { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -0,0 +1,20 @@
1
+ import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../../core/rsc.js";
2
+ import * as ReactServer from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
3
+ //#region src/react/rsc/server.ts
4
+ function renderToReadableStream(data, options, extraOptions) {
5
+ return ReactServer.renderToReadableStream(data, createClientManifest({ onClientReference: extraOptions?.onClientReference }), options);
6
+ }
7
+ function registerClientReference(proxy, id, name) {
8
+ return ReactServer.registerClientReference(proxy, id, name);
9
+ }
10
+ const registerServerReference = ReactServer.registerServerReference;
11
+ const decodeReply = (body, options) => ReactServer.decodeReply(body, createServerManifest(), options);
12
+ function decodeAction(body) {
13
+ return ReactServer.decodeAction(body, createServerManifest());
14
+ }
15
+ function decodeFormState(actionResult, body) {
16
+ return ReactServer.decodeFormState(actionResult, body, createServerManifest());
17
+ }
18
+ const createTemporaryReferenceSet = ReactServer.createTemporaryReferenceSet;
19
+ //#endregion
20
+ export { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -0,0 +1,6 @@
1
+ import { d as RenderToReadableStreamOptions, u as PrerenderResult } from "../../index-C5IY2S-e.js";
2
+ import { n as CreateClientManifestOptions } from "../../rsc-C3UdJLOW.js";
3
+ //#region src/react/rsc/static.d.ts
4
+ declare function prerender<T>(data: T, options?: RenderToReadableStreamOptions, extraOptions?: CreateClientManifestOptions): Promise<PrerenderResult>;
5
+ //#endregion
6
+ export { prerender };
@@ -0,0 +1,8 @@
1
+ import { createClientManifest } from "../../core/rsc.js";
2
+ import * as ReactStatic from "@vitejs/plugin-rsc/vendor/react-server-dom/static.edge";
3
+ //#region src/react/rsc/static.ts
4
+ function prerender(data, options, extraOptions) {
5
+ return ReactStatic.prerender(data, createClientManifest({ onClientReference: extraOptions?.onClientReference }), options);
6
+ }
7
+ //#endregion
8
+ export { prerender };
@@ -1,25 +1,4 @@
1
- import { a as CreateFromReadableStreamEdgeOptions, d as ServerTemporaryReferenceSet, l as RenderToReadableStreamOptions, o as DecodeReplyFunction, r as ClientTemporaryReferenceSet, s as EncodeReplyFunction } from "../index-BrXJaflA.js";
2
- import { loadServerAction, setRequireModule } from "../core/rsc.js";
3
- import { ReactFormState } from "react-dom/client";
4
-
5
- //#region src/react/rsc.d.ts
6
- declare function renderToReadableStream<T>(data: T, options?: RenderToReadableStreamOptions, extraOptions?: {
7
- /**
8
- * @internal
9
- */
10
- onClientReference?: (metadata: {
11
- id: string;
12
- name: string;
13
- }) => void;
14
- }): ReadableStream<Uint8Array>;
15
- declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: CreateFromReadableStreamEdgeOptions): Promise<T>;
16
- declare function registerClientReference<T>(proxy: T, id: string, name: string): T;
17
- declare const registerServerReference: <T>(ref: T, id: string, name: string) => T;
18
- declare const decodeReply: DecodeReplyFunction;
19
- declare function decodeAction(body: FormData): Promise<() => Promise<void>>;
20
- declare function decodeFormState(actionResult: unknown, body: FormData): Promise<ReactFormState | undefined>;
21
- declare const createTemporaryReferenceSet: () => ServerTemporaryReferenceSet;
22
- declare const encodeReply: EncodeReplyFunction;
23
- declare const createClientTemporaryReferenceSet: () => ClientTemporaryReferenceSet;
24
- //#endregion
1
+ import { o as loadServerAction, s as setRequireModule } from "../rsc-C3UdJLOW.js";
2
+ import { a as registerClientReference, i as decodeReply, n as decodeAction, o as registerServerReference, r as decodeFormState, s as renderToReadableStream, t as createTemporaryReferenceSet } from "../server-ZBjqNTqU.js";
3
+ import { n as createFromReadableStream, r as encodeReply, t as createClientTemporaryReferenceSet } from "../client-Bhch3O41.js";
25
4
  export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
package/dist/react/rsc.js CHANGED
@@ -1,32 +1,4 @@
1
- import { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../core/rsc.js";
2
- import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
3
- import * as ReactServer from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
4
- //#region src/react/rsc.ts
5
- function renderToReadableStream(data, options, extraOptions) {
6
- return ReactServer.renderToReadableStream(data, createClientManifest({ onClientReference: extraOptions?.onClientReference }), options);
7
- }
8
- function createFromReadableStream(stream, options = {}) {
9
- return ReactClient.createFromReadableStream(stream, {
10
- serverConsumerManifest: {
11
- serverModuleMap: createServerManifest(),
12
- moduleMap: createServerDecodeClientManifest()
13
- },
14
- ...options
15
- });
16
- }
17
- function registerClientReference(proxy, id, name) {
18
- return ReactServer.registerClientReference(proxy, id, name);
19
- }
20
- const registerServerReference = ReactServer.registerServerReference;
21
- const decodeReply = (body, options) => ReactServer.decodeReply(body, createServerManifest(), options);
22
- function decodeAction(body) {
23
- return ReactServer.decodeAction(body, createServerManifest());
24
- }
25
- function decodeFormState(actionResult, body) {
26
- return ReactServer.decodeFormState(actionResult, body, createServerManifest());
27
- }
28
- const createTemporaryReferenceSet = ReactServer.createTemporaryReferenceSet;
29
- const encodeReply = ReactClient.encodeReply;
30
- const createClientTemporaryReferenceSet = ReactClient.createTemporaryReferenceSet;
31
- //#endregion
1
+ import { loadServerAction, setRequireModule } from "../core/rsc.js";
2
+ import { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "./rsc/server.js";
3
+ import { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply } from "./rsc/client.js";
32
4
  export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -1,10 +1,11 @@
1
- import { a as CreateFromReadableStreamEdgeOptions } from "../index-BrXJaflA.js";
1
+ import { a as CreateFromReadableStreamEdgeOptions, c as EncodeReplyFunction, r as ClientTemporaryReferenceSet, s as EncodeFormActionCallback } from "../index-C5IY2S-e.js";
2
2
  import { setRequireModule } from "../core/ssr.js";
3
-
4
3
  //#region src/react/ssr.d.ts
5
4
  declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: CreateFromReadableStreamEdgeOptions): Promise<T>;
6
5
  declare function createServerReference(id: string): unknown;
6
+ declare const encodeReply: EncodeReplyFunction;
7
+ declare const createTemporaryReferenceSet: () => ClientTemporaryReferenceSet;
7
8
  declare const callServer: null;
8
9
  declare const findSourceMapURL: null;
9
10
  //#endregion
10
- export { callServer, createFromReadableStream, createServerReference, findSourceMapURL, setRequireModule };
11
+ export { type EncodeFormActionCallback, callServer, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule };
package/dist/react/ssr.js CHANGED
@@ -10,7 +10,9 @@ function createFromReadableStream(stream, options = {}) {
10
10
  function createServerReference(id) {
11
11
  return ReactClient.createServerReference(id);
12
12
  }
13
+ const encodeReply = ReactClient.encodeReply;
14
+ const createTemporaryReferenceSet = ReactClient.createTemporaryReferenceSet;
13
15
  const callServer = null;
14
16
  const findSourceMapURL = null;
15
17
  //#endregion
16
- export { callServer, createFromReadableStream, createServerReference, findSourceMapURL, setRequireModule };
18
+ export { callServer, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule };
@@ -0,0 +1,2 @@
1
+ import { n as createFromReadableStream, r as encodeReply, t as createClientTemporaryReferenceSet } from "../client-Bhch3O41.js";
2
+ export { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply };
@@ -0,0 +1,3 @@
1
+ import "../shared-D42sHPD1.js";
2
+ import { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply } from "../react/rsc/client.js";
3
+ export { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply };
@@ -0,0 +1,12 @@
1
+ import { a as createServerManifest, o as loadServerAction, r as createClientManifest, s as setRequireModule } from "../rsc-C3UdJLOW.js";
2
+ import { a as registerClientReference, i as decodeReply, n as decodeAction, o as registerServerReference, r as decodeFormState, t as createTemporaryReferenceSet } from "../server-ZBjqNTqU.js";
3
+ import { t as OnClientReference } from "../client-reference-DT0MYgPn.js";
4
+ //#region src/rsc/server.d.ts
5
+ declare function renderToReadableStream<T>(data: T, options?: object, extraOptions?: {
6
+ /**
7
+ * @experimental
8
+ */
9
+ onClientReference?: OnClientReference;
10
+ }): ReadableStream<Uint8Array>;
11
+ //#endregion
12
+ export { createClientManifest, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -0,0 +1,10 @@
1
+ import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../core/rsc.js";
2
+ import { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, registerClientReference, registerServerReference, renderToReadableStream as renderToReadableStream$1 } from "../react/rsc/server.js";
3
+ import { t as createOnClientReference } from "../client-reference-CCekXxax.js";
4
+ import "../shared-D42sHPD1.js";
5
+ //#region src/rsc/server.tsx
6
+ function renderToReadableStream(data, options, extraOptions) {
7
+ return renderToReadableStream$1(data, options, { onClientReference: extraOptions?.onClientReference ? createOnClientReference(extraOptions.onClientReference) : void 0 });
8
+ }
9
+ //#endregion
10
+ export { createClientManifest, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -0,0 +1,11 @@
1
+ import { d as RenderToReadableStreamOptions, u as PrerenderResult } from "../index-C5IY2S-e.js";
2
+ import { t as OnClientReference } from "../client-reference-DT0MYgPn.js";
3
+ //#region src/rsc/static.d.ts
4
+ declare function prerender<T>(data: T, options?: RenderToReadableStreamOptions, extraOptions?: {
5
+ /**
6
+ * @experimental
7
+ */
8
+ onClientReference?: OnClientReference;
9
+ }): Promise<PrerenderResult>;
10
+ //#endregion
11
+ export { prerender };
@@ -0,0 +1,9 @@
1
+ import { t as createOnClientReference } from "../client-reference-CCekXxax.js";
2
+ import "../shared-D42sHPD1.js";
3
+ import { prerender as prerender$1 } from "../react/rsc/static.js";
4
+ //#region src/rsc/static.tsx
5
+ function prerender(data, options, extraOptions) {
6
+ return prerender$1(data, options, { onClientReference: extraOptions?.onClientReference ? createOnClientReference(extraOptions.onClientReference) : void 0 });
7
+ }
8
+ //#endregion
9
+ export { prerender };
@@ -0,0 +1,20 @@
1
+ import { l as ModuleMap, t as BundlerConfig } from "./index-C5IY2S-e.js";
2
+ //#region src/core/rsc.d.ts
3
+ declare function setRequireModule(options: {
4
+ load: (id: string) => unknown;
5
+ }): void;
6
+ declare function loadServerAction(id: string): Promise<Function>;
7
+ declare function createServerManifest(options?: {
8
+ preserveServerReferences?: boolean;
9
+ }): BundlerConfig;
10
+ declare function createServerDecodeClientManifest(): ModuleMap;
11
+ declare function createClientManifest(options?: CreateClientManifestOptions): BundlerConfig;
12
+ interface ClientReferenceMetadata {
13
+ id: string;
14
+ name: string;
15
+ }
16
+ interface CreateClientManifestOptions {
17
+ onClientReference?: (metadata: ClientReferenceMetadata) => void;
18
+ }
19
+ //#endregion
20
+ export { createServerManifest as a, createServerDecodeClientManifest as i, CreateClientManifestOptions as n, loadServerAction as o, createClientManifest as r, setRequireModule as s, ClientReferenceMetadata as t };