@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
package/dist/rsc.d.ts CHANGED
@@ -1,18 +1,6 @@
1
- import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./core/rsc.js";
2
- import { i as ResolvedAssetDeps } from "./plugin-Bm-Fb4g7.js";
3
- import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference } from "./react/rsc.js";
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 { n as createFromReadableStream, r as encodeReply, t as createClientTemporaryReferenceSet } from "./client-Bhch3O41.js";
4
4
  import { decryptActionBoundArgs, encryptActionBoundArgs } from "./utils/encryption-runtime.js";
5
-
6
- //#region src/rsc.d.ts
7
- declare function renderToReadableStream<T>(data: T, options?: object, extraOptions?: {
8
- /**
9
- * @experimental
10
- */
11
- onClientReference?: (metadata: {
12
- id: string;
13
- name: string;
14
- deps: ResolvedAssetDeps;
15
- }) => void;
16
- }): ReadableStream<Uint8Array>;
17
- //#endregion
5
+ import { renderToReadableStream } from "./rsc/server.js";
18
6
  export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
package/dist/rsc.js CHANGED
@@ -1,44 +1,7 @@
1
- import { a as toReferenceValidationVirtual } from "./shared-DeahDSXi.js";
2
1
  import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./core/rsc.js";
3
- import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream as renderToReadableStream$1 } from "./react/rsc.js";
2
+ import { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, registerClientReference, registerServerReference } from "./react/rsc/server.js";
4
3
  import { decryptActionBoundArgs, encryptActionBoundArgs } from "./utils/encryption-runtime.js";
5
- import assetsManifest from "virtual:vite-rsc/assets-manifest";
6
- import serverReferences from "virtual:vite-rsc/server-references";
7
- //#region src/rsc.tsx
8
- initialize();
9
- function initialize() {
10
- setRequireModule({ load: async (id) => {
11
- if (!import.meta.env.__vite_rsc_build__) {
12
- await import(
13
- /* @vite-ignore */
14
- "/@id/__x00__" + toReferenceValidationVirtual({
15
- id,
16
- type: "server"
17
- })
18
- );
19
- return import(
20
- /* @vite-ignore */
21
- id
22
- );
23
- } else {
24
- const import_ = serverReferences[id];
25
- if (!import_) throw new Error(`server reference not found '${id}'`);
26
- return import_();
27
- }
28
- } });
29
- }
30
- function renderToReadableStream(data, options, extraOptions) {
31
- return renderToReadableStream$1(data, options, { onClientReference(metadata) {
32
- const deps = assetsManifest.clientReferenceDeps[metadata.id] ?? {
33
- js: [],
34
- css: []
35
- };
36
- extraOptions?.onClientReference?.({
37
- id: metadata.id,
38
- name: metadata.name,
39
- deps
40
- });
41
- } });
42
- }
43
- //#endregion
4
+ import { renderToReadableStream } from "./rsc/server.js";
5
+ import { createClientTemporaryReferenceSet, createFromReadableStream, encodeReply } from "./react/rsc/client.js";
6
+ import "./rsc/client.js";
44
7
  export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -1,4 +1,4 @@
1
- import { i as tinyassert } from "./dist-rz-Bnebz.js";
1
+ import { i as tinyassert } from "./dist-uqdtSkzK.js";
2
2
  import { walk } from "estree-walker";
3
3
  //#region src/transforms/utils.ts
4
4
  function hasDirective(body, directive) {
@@ -0,0 +1,13 @@
1
+ import { d as RenderToReadableStreamOptions, o as DecodeReplyFunction, p as ServerTemporaryReferenceSet } from "./index-C5IY2S-e.js";
2
+ import { n as CreateClientManifestOptions } from "./rsc-C3UdJLOW.js";
3
+ import { ReactFormState } from "react-dom/client";
4
+ //#region src/react/rsc/server.d.ts
5
+ declare function renderToReadableStream<T>(data: T, options?: RenderToReadableStreamOptions, extraOptions?: CreateClientManifestOptions): ReadableStream<Uint8Array>;
6
+ declare function registerClientReference<T>(proxy: T, id: string, name: string): T;
7
+ declare const registerServerReference: <T>(ref: T, id: string, name: string) => T;
8
+ declare const decodeReply: DecodeReplyFunction;
9
+ declare function decodeAction(body: FormData): Promise<() => Promise<void>>;
10
+ declare function decodeFormState(actionResult: unknown, body: FormData): Promise<ReactFormState | undefined>;
11
+ declare const createTemporaryReferenceSet: () => ServerTemporaryReferenceSet;
12
+ //#endregion
13
+ export { registerClientReference as a, decodeReply as i, decodeAction as n, registerServerReference as o, decodeFormState as r, renderToReadableStream as s, createTemporaryReferenceSet as t };
@@ -0,0 +1,25 @@
1
+ import { a as toReferenceValidationVirtual } from "./shared-B6H2TbnP.js";
2
+ import { setRequireModule } from "./core/rsc.js";
3
+ import serverReferences from "virtual:vite-rsc/server-references";
4
+ //#region src/rsc/shared.ts
5
+ setRequireModule({ load: async (id) => {
6
+ if (!import.meta.env.__vite_rsc_build__) {
7
+ await import(
8
+ /* @vite-ignore */
9
+ "/@id/__x00__" + toReferenceValidationVirtual({
10
+ id,
11
+ type: "server"
12
+ })
13
+ );
14
+ return import(
15
+ /* @vite-ignore */
16
+ id
17
+ );
18
+ } else {
19
+ const import_ = serverReferences[id];
20
+ if (!import_) throw new Error(`server reference not found '${id}'`);
21
+ return import_();
22
+ }
23
+ } });
24
+ //#endregion
25
+ export {};
@@ -1,6 +1,7 @@
1
1
  //#region src/core/shared.ts
2
2
  const SERVER_REFERENCE_PREFIX = "$$server:";
3
3
  const SERVER_DECODE_CLIENT_PREFIX = "$$decode-client:";
4
+ const SERVER_REFERENCE_PRESERVE_PREFIX = "$$preserve:";
4
5
  function createReferenceCacheTag() {
5
6
  return "$$cache=" + Math.random().toString(36).slice(2);
6
7
  }
@@ -17,4 +18,4 @@ function setInternalRequire() {
17
18
  };
18
19
  }
19
20
  //#endregion
20
- export { setInternalRequire as a, removeReferenceCacheTag as i, SERVER_REFERENCE_PREFIX as n, createReferenceCacheTag as r, SERVER_DECODE_CLIENT_PREFIX as t };
21
+ export { removeReferenceCacheTag as a, createReferenceCacheTag as i, SERVER_REFERENCE_PREFIX as n, setInternalRequire as o, SERVER_REFERENCE_PRESERVE_PREFIX as r, SERVER_DECODE_CLIENT_PREFIX as t };
package/dist/ssr.d.ts CHANGED
@@ -1,22 +1,22 @@
1
+ import { s as EncodeFormActionCallback } from "./index-C5IY2S-e.js";
1
2
  import { createServerConsumerManifest, setRequireModule } from "./core/ssr.js";
2
- import { i as ResolvedAssetDeps } from "./plugin-Bm-Fb4g7.js";
3
- import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./react/ssr.js";
4
-
3
+ import { i as ResolvedAssetDeps } from "./plugin-CaLiN8ED.js";
4
+ import { callServer, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL } from "./react/ssr.js";
5
5
  //#region src/ssr.d.ts
6
6
  /**
7
- * Callback type for client reference dependency notifications.
8
- * Called during SSR when a client component's dependencies are loaded.
9
- * @experimental
10
- */
7
+ * Callback type for client reference dependency notifications.
8
+ * Called during SSR when a client component's dependencies are loaded.
9
+ * @experimental
10
+ */
11
11
  type OnClientReference = (reference: {
12
12
  id: string;
13
13
  deps: ResolvedAssetDeps;
14
14
  }) => void;
15
15
  /**
16
- * Register a callback to be notified when client reference dependencies are loaded.
17
- * Called during SSR when a client component is accessed.
18
- * @experimental
19
- */
16
+ * Register a callback to be notified when client reference dependencies are loaded.
17
+ * Called during SSR when a client component is accessed.
18
+ * @experimental
19
+ */
20
20
  declare function setOnClientReference(callback: OnClientReference | undefined): void;
21
21
  //#endregion
22
- export { OnClientReference, callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setOnClientReference, setRequireModule };
22
+ export { type EncodeFormActionCallback, OnClientReference, callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setOnClientReference, setRequireModule };
package/dist/ssr.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as toReferenceValidationVirtual, i as toCssVirtual } from "./shared-DeahDSXi.js";
1
+ import { a as toReferenceValidationVirtual, i as toCssVirtual } from "./shared-B6H2TbnP.js";
2
2
  import { createServerConsumerManifest, setRequireModule } from "./core/ssr.js";
3
- import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./react/ssr.js";
3
+ import { callServer, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL } from "./react/ssr.js";
4
4
  import * as clientReferences from "virtual:vite-rsc/client-references";
5
5
  import * as ReactDOM from "react-dom";
6
6
  import assetsManifest from "virtual:vite-rsc/assets-manifest";
@@ -67,14 +67,19 @@ function wrapResourceProxy(mod, id, deps) {
67
67
  } });
68
68
  }
69
69
  function preloadDeps(deps) {
70
- for (const href of deps.js) ReactDOM.preloadModule(href, {
71
- as: "script",
72
- crossOrigin: ""
73
- });
70
+ const clientEntryJsSet = new Set(assetsManifest.clientEntryDeps?.js ?? []);
71
+ for (const href of deps.js) {
72
+ const options = {
73
+ as: "script",
74
+ crossOrigin: ""
75
+ };
76
+ if (!clientEntryJsSet.has(href)) options.fetchPriority = "low";
77
+ ReactDOM.preloadModule(href, options);
78
+ }
74
79
  for (const href of deps.css) ReactDOM.preinit(href, {
75
80
  as: "style",
76
81
  precedence: assetsManifest.cssLinkPrecedence !== false ? "vite-rsc/client-reference" : void 0
77
82
  });
78
83
  }
79
84
  //#endregion
80
- export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setOnClientReference, setRequireModule };
85
+ export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setOnClientReference, setRequireModule };
@@ -1,2 +1,2 @@
1
- import { a as extractIdentifiers, c as validateNonAsyncFunction, d as transformProxyExport, f as TransformWrapExportFilter, g as transformHoistInlineDirective, h as findDirectives, i as transformServerActionServer, l as TransformProxyExportOptions, m as transformWrapExport, n as TransformExpandExportAllOptions, o as extractNames, p as TransformWrapExportOptions, r as transformExpandExportAll, s as hasDirective, t as TransformExpandExportAllContext, u as transformDirectiveProxyExport } from "../index-DViteJjw.js";
1
+ import { a as extractIdentifiers, c as validateNonAsyncFunction, d as transformProxyExport, f as TransformWrapExportFilter, g as transformHoistInlineDirective, h as findDirectives, i as transformServerActionServer, l as TransformProxyExportOptions, m as transformWrapExport, n as TransformExpandExportAllOptions, o as extractNames, p as TransformWrapExportOptions, r as transformExpandExportAll, s as hasDirective, t as TransformExpandExportAllContext, u as transformDirectiveProxyExport } from "../index-BjJe9jqG.js";
2
2
  export { TransformExpandExportAllContext, TransformExpandExportAllOptions, TransformProxyExportOptions, TransformWrapExportFilter, TransformWrapExportOptions, extractIdentifiers, extractNames, findDirectives, hasDirective, transformDirectiveProxyExport, transformExpandExportAll, transformHoistInlineDirective, transformProxyExport, transformServerActionServer, transformWrapExport, validateNonAsyncFunction };
@@ -1,5 +1,5 @@
1
- import { i as tinyassert } from "../dist-rz-Bnebz.js";
2
- import { a as validateNonAsyncFunction, i as hasDirective, n as extractIdentifiers, r as extractNames, t as buildScopeTree } from "../scope-Bwt9GVLP.js";
1
+ import { i as tinyassert } from "../dist-uqdtSkzK.js";
2
+ import { a as validateNonAsyncFunction, i as hasDirective, n as extractIdentifiers, r as extractNames, t as buildScopeTree } from "../scope-Do08R7C2.js";
3
3
  import MagicString from "magic-string";
4
4
  import { walk } from "estree-walker";
5
5
  //#region src/transforms/hoist.ts
@@ -163,17 +163,21 @@ function transformWrapExport(input, ast, options) {
163
163
  const toAppend = [];
164
164
  const filter = options.filter ?? (() => true);
165
165
  function wrapSimple(start, end, exports) {
166
- exportNames.push(...exports.map((e) => e.name));
167
- const newCode = exports.map((e) => [filter(e.name, e.meta) && `${e.name} = /* #__PURE__ */ ${options.runtime(e.name, e.name, e.meta)};\n`, `export { ${e.name} };\n`]).flat().filter(Boolean).join("");
166
+ const filteredExports = exports.map((item) => ({
167
+ ...item,
168
+ shouldWrap: filter(item.name, item.meta)
169
+ }));
170
+ exportNames.push(...filteredExports.filter((item) => item.shouldWrap).map((item) => item.name));
171
+ const newCode = filteredExports.map((e) => [e.shouldWrap && `${e.name} = /* #__PURE__ */ ${options.runtime(e.name, e.name, e.meta)};\n`, `export { ${e.name} };\n`]).flat().filter(Boolean).join("");
168
172
  output.update(start, end, newCode);
169
173
  output.move(start, end, input.length);
170
174
  }
171
175
  function wrapExport(name, exportName, meta = {}) {
172
- exportNames.push(exportName);
173
176
  if (!filter(exportName, meta)) {
174
177
  toAppend.push(`export { ${name} as ${exportName} }`);
175
178
  return;
176
179
  }
180
+ exportNames.push(exportName);
177
181
  toAppend.push(`const $$wrap_${name} = /* #__PURE__ */ ${options.runtime(name, exportName, meta)}`, `export { $$wrap_${name} as ${exportName} }`);
178
182
  }
179
183
  for (const node of ast.body) {
@@ -181,34 +185,35 @@ function transformWrapExport(input, ast, options) {
181
185
  /**
182
186
  * export function foo() {}
183
187
  */
184
- validateNonAsyncFunction(options, node.declaration);
185
188
  const name = node.declaration.id.name;
189
+ const meta = {
190
+ isFunction: getIsFunction(node.declaration),
191
+ declName: name
192
+ };
193
+ if (filter(name, meta)) validateNonAsyncFunction(options, node.declaration);
186
194
  wrapSimple(node.start, node.declaration.start, [{
187
195
  name,
188
- meta: {
189
- isFunction: true,
190
- declName: name
191
- }
196
+ meta
192
197
  }]);
193
198
  } else if (node.declaration.type === "VariableDeclaration") {
194
199
  /**
195
200
  * export const foo = 1, bar = 2
196
201
  */
197
- for (const decl of node.declaration.declarations) if (decl.init) validateNonAsyncFunction(options, decl.init);
198
202
  if (node.declaration.kind === "const") output.update(node.declaration.start, node.declaration.start + 5, "let");
199
- const names = node.declaration.declarations.flatMap((decl) => extractNames(decl.id));
200
- let isFunction = false;
201
- if (node.declaration.declarations.length === 1) {
202
- const decl = node.declaration.declarations[0];
203
- isFunction = decl.id.type === "Identifier" && (decl.init?.type === "ArrowFunctionExpression" || decl.init?.type === "FunctionExpression");
203
+ const exports = [];
204
+ for (const decl of node.declaration.declarations) {
205
+ const isFunction = decl.id.type === "Identifier" && decl.init ? getIsFunction(decl.init) : void 0;
206
+ const declarationExports = extractNames(decl.id).map((name) => ({
207
+ name,
208
+ meta: {
209
+ isFunction,
210
+ declName: name
211
+ }
212
+ }));
213
+ exports.push(...declarationExports);
214
+ if (decl.init && declarationExports.some(({ name, meta }) => filter(name, meta))) validateNonAsyncFunction(options, decl.init);
204
215
  }
205
- wrapSimple(node.start, node.declaration.start, names.map((name) => ({
206
- name,
207
- meta: {
208
- isFunction,
209
- declName: name
210
- }
211
- })));
216
+ wrapSimple(node.start, node.declaration.start, exports);
212
217
  } else node.declaration;
213
218
  else if (node.source) {
214
219
  /**
@@ -246,26 +251,28 @@ function transformWrapExport(input, ast, options) {
246
251
  * export default () => {}
247
252
  */
248
253
  if (node.type === "ExportDefaultDeclaration") {
249
- validateNonAsyncFunction(options, node.declaration);
250
254
  let localName;
251
- let isFunction = false;
255
+ let isFunction;
252
256
  let declName;
253
257
  let defaultExportIdentifierName;
254
258
  if ((node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") && node.declaration.id) {
255
259
  localName = node.declaration.id.name;
256
260
  output.remove(node.start, node.declaration.start);
257
- isFunction = node.declaration.type === "FunctionDeclaration";
261
+ isFunction = getIsFunction(node.declaration);
258
262
  declName = node.declaration.id.name;
259
263
  } else {
260
264
  localName = "$$default";
261
265
  output.update(node.start, node.declaration.start, "const $$default = ");
262
266
  if (node.declaration.type === "Identifier") defaultExportIdentifierName = node.declaration.name;
267
+ else isFunction = getIsFunction(node.declaration);
263
268
  }
264
- wrapExport(localName, "default", {
269
+ const defaultMeta = {
265
270
  isFunction,
266
271
  declName,
267
272
  defaultExportIdentifierName
268
- });
273
+ };
274
+ if (filter("default", defaultMeta)) validateNonAsyncFunction(options, node.declaration);
275
+ wrapExport(localName, "default", defaultMeta);
269
276
  }
270
277
  }
271
278
  if (toAppend.length > 0) output.append([
@@ -278,6 +285,10 @@ function transformWrapExport(input, ast, options) {
278
285
  output
279
286
  };
280
287
  }
288
+ function getIsFunction(node) {
289
+ if (node.type === "FunctionDeclaration" || node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression") return true;
290
+ if (node.type === "ClassDeclaration" || node.type === "Literal" || node.type === "ObjectExpression" || node.type === "ArrayExpression" || node.type === "ClassExpression") return false;
291
+ }
281
292
  //#endregion
282
293
  //#region src/transforms/proxy-export.ts
283
294
  function transformDirectiveProxyExport(ast, options) {
@@ -1,16 +1,16 @@
1
- import { r as once } from "../dist-rz-Bnebz.js";
2
- import { a as fromBase64, i as encryptBuffer, n as concatArrayStream, r as decryptBuffer, t as arrayToStream } from "../encryption-utils-CRBgMeBq.js";
3
- import { createFromReadableStream, renderToReadableStream } from "../react/rsc.js";
1
+ import { r as once } from "../dist-uqdtSkzK.js";
2
+ import { a as fromBase64, i as encryptBuffer, n as concatArrayStream, r as decryptBuffer, t as arrayToStream } from "../encryption-utils-BNbYHtC4.js";
3
+ import { renderToReadableStream } from "../react/rsc/server.js";
4
4
  import encryptionKeySource from "virtual:vite-rsc/encryption-key";
5
5
  //#region src/utils/encryption-runtime.ts
6
6
  async function encryptActionBoundArgs(originalValue) {
7
7
  return encryptBuffer(await concatArrayStream(renderToReadableStream(originalValue)), await getEncryptionKey());
8
8
  }
9
9
  async function decryptActionBoundArgs(encrypted) {
10
- const serializedBuffer = await decryptBuffer(await encrypted, await getEncryptionKey());
10
+ const [{ createFromReadableStream }, serializedBuffer] = await Promise.all([import("../react/rsc/client.js"), decryptBuffer(await encrypted, await getEncryptionKey())]);
11
11
  return createFromReadableStream(arrayToStream(new Uint8Array(serializedBuffer)));
12
12
  }
13
- const getEncryptionKey = /* @__PURE__ */ once(async () => {
13
+ const getEncryptionKey = /* #__PURE__ */ once(async () => {
14
14
  const resolved = await encryptionKeySource();
15
15
  return await crypto.subtle.importKey("raw", fromBase64(resolved), { name: "AES-GCM" }, true, ["encrypt", "decrypt"]);
16
16
  });
@@ -4901,10 +4901,10 @@
4901
4901
  return hook.checkDCE ? !0 : !1;
4902
4902
  })({
4903
4903
  bundleType: 1,
4904
- version: "19.2.6",
4904
+ version: "19.2.8",
4905
4905
  rendererPackageName: "react-server-dom-webpack",
4906
4906
  currentDispatcherRef: ReactSharedInternals,
4907
- reconcilerVersion: "19.2.6",
4907
+ reconcilerVersion: "19.2.8",
4908
4908
  getCurrentComponentInfo: function () {
4909
4909
  return currentOwnerInDEV;
4910
4910
  }
@@ -1395,7 +1395,7 @@
1395
1395
  erroredTask(request, streamTask, reason),
1396
1396
  enqueueFlush(request),
1397
1397
  "function" === typeof iterator.throw &&
1398
- iterator.throw(reason).then(error, error));
1398
+ iterator.throw(reason).then(noop, noop));
1399
1399
  }
1400
1400
  function abortIterable() {
1401
1401
  if (0 === streamTask.status) {
@@ -1409,7 +1409,7 @@
1409
1409
  : (erroredTask(request, streamTask, signal.reason),
1410
1410
  enqueueFlush(request));
1411
1411
  "function" === typeof iterator.throw &&
1412
- iterator.throw(reason).then(error, error);
1412
+ iterator.throw(reason).then(noop, noop);
1413
1413
  }
1414
1414
  }
1415
1415
  var isIterator = iterable === iterator,
@@ -5597,44 +5597,44 @@
5597
5597
  };
5598
5598
  exports.decodeAction = function (body, serverManifest) {
5599
5599
  var formData = new FormData(),
5600
- action = null,
5601
- seenActions = new Set();
5600
+ maybeActionKey = null;
5602
5601
  body.forEach(function (value, key) {
5603
5602
  key.startsWith("$ACTION_")
5604
5603
  ? key.startsWith("$ACTION_REF_")
5605
- ? seenActions.has(key) ||
5606
- (seenActions.add(key),
5607
- (value = "$ACTION_" + key.slice(12) + ":"),
5608
- (value = decodeBoundActionMetaData(body, serverManifest, value)),
5609
- (action = loadServerReference(serverManifest, value)))
5610
- : key.startsWith("$ACTION_ID_") &&
5611
- !seenActions.has(key) &&
5612
- (seenActions.add(key),
5613
- (value = key.slice(11)),
5614
- (action = loadServerReference(serverManifest, {
5615
- id: value,
5616
- bound: null
5617
- })))
5604
+ ? (maybeActionKey = key)
5605
+ : key.startsWith("$ACTION_ID_") && (maybeActionKey = key)
5618
5606
  : formData.append(key, value);
5619
5607
  });
5620
- return null === action
5621
- ? null
5622
- : action.then(function (fn) {
5623
- return fn.bind(null, formData);
5624
- });
5608
+ if (null === maybeActionKey) return null;
5609
+ var actionKey = maybeActionKey,
5610
+ action = null;
5611
+ if (actionKey.startsWith("$ACTION_REF_"))
5612
+ (actionKey = "$ACTION_" + actionKey.slice(12) + ":"),
5613
+ (body = decodeBoundActionMetaData(body, serverManifest, actionKey)),
5614
+ (action = loadServerReference(serverManifest, body));
5615
+ else if (actionKey.startsWith("$ACTION_ID_"))
5616
+ (body = actionKey.slice(11)),
5617
+ (action = loadServerReference(serverManifest, {
5618
+ id: body,
5619
+ bound: null
5620
+ }));
5621
+ else throw Error("Cannot handle action key. This is a bug in React.");
5622
+ return action.then(function (fn) {
5623
+ return fn.bind(null, formData);
5624
+ });
5625
5625
  };
5626
5626
  exports.decodeFormState = function (actionResult, body, serverManifest) {
5627
5627
  var keyPath = body.get("$ACTION_KEY");
5628
5628
  if ("string" !== typeof keyPath) return Promise.resolve(null);
5629
- var metaData = null;
5629
+ var actionKey = null;
5630
5630
  body.forEach(function (value, key) {
5631
- key.startsWith("$ACTION_REF_") &&
5632
- ((value = "$ACTION_" + key.slice(12) + ":"),
5633
- (metaData = decodeBoundActionMetaData(body, serverManifest, value)));
5631
+ key.startsWith("$ACTION_REF_") && (actionKey = key);
5634
5632
  });
5635
- if (null === metaData) return Promise.resolve(null);
5636
- var referenceId = metaData.id;
5637
- return Promise.resolve(metaData.bound).then(function (bound) {
5633
+ if (null === actionKey) return Promise.resolve(null);
5634
+ var formFieldPrefix = "$ACTION_" + actionKey.slice(12) + ":";
5635
+ body = decodeBoundActionMetaData(body, serverManifest, formFieldPrefix);
5636
+ var referenceId = body.id;
5637
+ return Promise.resolve(body.bound).then(function (bound) {
5638
5638
  return null === bound
5639
5639
  ? null
5640
5640
  : [actionResult, keyPath, referenceId, bound.length - 1];
@@ -1052,7 +1052,7 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
1052
1052
  erroredTask(request, streamTask, reason),
1053
1053
  enqueueFlush(request),
1054
1054
  "function" === typeof iterator.throw &&
1055
- iterator.throw(reason).then(error, error));
1055
+ iterator.throw(reason).then(noop, noop));
1056
1056
  }
1057
1057
  function abortIterable() {
1058
1058
  if (0 === streamTask.status) {
@@ -1066,7 +1066,7 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
1066
1066
  : (erroredTask(request, streamTask, signal.reason),
1067
1067
  enqueueFlush(request));
1068
1068
  "function" === typeof iterator.throw &&
1069
- iterator.throw(reason).then(error, error);
1069
+ iterator.throw(reason).then(noop, noop);
1070
1070
  }
1071
1071
  }
1072
1072
  iterable = iterable === iterator;
@@ -3396,44 +3396,41 @@ exports.createTemporaryReferenceSet = function () {
3396
3396
  };
3397
3397
  exports.decodeAction = function (body, serverManifest) {
3398
3398
  var formData = new FormData(),
3399
- action = null,
3400
- seenActions = new Set();
3399
+ maybeActionKey = null;
3401
3400
  body.forEach(function (value, key) {
3402
3401
  key.startsWith("$ACTION_")
3403
3402
  ? key.startsWith("$ACTION_REF_")
3404
- ? seenActions.has(key) ||
3405
- (seenActions.add(key),
3406
- (value = "$ACTION_" + key.slice(12) + ":"),
3407
- (value = decodeBoundActionMetaData(body, serverManifest, value)),
3408
- (action = loadServerReference(serverManifest, value)))
3409
- : key.startsWith("$ACTION_ID_") &&
3410
- !seenActions.has(key) &&
3411
- (seenActions.add(key),
3412
- (value = key.slice(11)),
3413
- (action = loadServerReference(serverManifest, {
3414
- id: value,
3415
- bound: null
3416
- })))
3403
+ ? (maybeActionKey = key)
3404
+ : key.startsWith("$ACTION_ID_") && (maybeActionKey = key)
3417
3405
  : formData.append(key, value);
3418
3406
  });
3419
- return null === action
3420
- ? null
3421
- : action.then(function (fn) {
3422
- return fn.bind(null, formData);
3423
- });
3407
+ if (null === maybeActionKey) return null;
3408
+ var actionKey = maybeActionKey,
3409
+ action = null;
3410
+ if (actionKey.startsWith("$ACTION_REF_"))
3411
+ (actionKey = "$ACTION_" + actionKey.slice(12) + ":"),
3412
+ (body = decodeBoundActionMetaData(body, serverManifest, actionKey)),
3413
+ (action = loadServerReference(serverManifest, body));
3414
+ else if (actionKey.startsWith("$ACTION_ID_"))
3415
+ (body = actionKey.slice(11)),
3416
+ (action = loadServerReference(serverManifest, { id: body, bound: null }));
3417
+ else throw Error("Cannot handle action key. This is a bug in React.");
3418
+ return action.then(function (fn) {
3419
+ return fn.bind(null, formData);
3420
+ });
3424
3421
  };
3425
3422
  exports.decodeFormState = function (actionResult, body, serverManifest) {
3426
3423
  var keyPath = body.get("$ACTION_KEY");
3427
3424
  if ("string" !== typeof keyPath) return Promise.resolve(null);
3428
- var metaData = null;
3425
+ var actionKey = null;
3429
3426
  body.forEach(function (value, key) {
3430
- key.startsWith("$ACTION_REF_") &&
3431
- ((value = "$ACTION_" + key.slice(12) + ":"),
3432
- (metaData = decodeBoundActionMetaData(body, serverManifest, value)));
3427
+ key.startsWith("$ACTION_REF_") && (actionKey = key);
3433
3428
  });
3434
- if (null === metaData) return Promise.resolve(null);
3435
- var referenceId = metaData.id;
3436
- return Promise.resolve(metaData.bound).then(function (bound) {
3429
+ if (null === actionKey) return Promise.resolve(null);
3430
+ var formFieldPrefix = "$ACTION_" + actionKey.slice(12) + ":";
3431
+ body = decodeBoundActionMetaData(body, serverManifest, formFieldPrefix);
3432
+ var referenceId = body.id;
3433
+ return Promise.resolve(body.bound).then(function (bound) {
3437
3434
  return null === bound
3438
3435
  ? null
3439
3436
  : [actionResult, keyPath, referenceId, bound.length - 1];