@vitejs/plugin-rsc 0.4.23 → 0.4.24

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 (53) hide show
  1. package/dist/{browser-DUDACP5e.d.ts → browser-mbRygLxB.d.ts} +1 -1
  2. package/dist/browser.d.ts +3 -3
  3. package/dist/core/browser.d.ts +1 -1
  4. package/dist/core/rsc.d.ts +2 -2
  5. package/dist/core/rsc.js +1 -1
  6. package/dist/core/ssr.d.ts +2 -2
  7. package/dist/core/ssr.js +1 -1
  8. package/dist/{encryption-runtime-z7X8aRLB.js → encryption-runtime-CJUalqt3.js} +1 -1
  9. package/dist/extra/browser.d.ts +1 -1
  10. package/dist/extra/browser.js +1 -1
  11. package/dist/extra/rsc.d.ts +1 -1
  12. package/dist/extra/rsc.js +4 -4
  13. package/dist/extra/ssr.js +5 -5
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +2 -3
  16. package/dist/{plugin-CrIhPWor.d.ts → plugin-YtSjJn3Y.d.ts} +16 -0
  17. package/dist/{plugin-Ddfc3b6D.js → plugin-r-u6Aj3n.js} +166 -40
  18. package/dist/plugin.d.ts +1 -1
  19. package/dist/plugin.js +2 -3
  20. package/dist/react/browser.d.ts +3 -3
  21. package/dist/react/rsc.d.ts +3 -3
  22. package/dist/react/rsc.js +2 -2
  23. package/dist/react/ssr.d.ts +3 -3
  24. package/dist/react/ssr.js +2 -2
  25. package/dist/{rsc-0ugrKC93.js → rsc-BwEwbLG4.js} +1 -1
  26. package/dist/{rsc-BeJKxeMX.d.ts → rsc-CxDPDiLz.d.ts} +1 -1
  27. package/dist/{rsc-K03z8Dh0.js → rsc-VjVw_i-M.js} +1 -1
  28. package/dist/rsc-html-stream/browser.js +1 -1
  29. package/dist/rsc-html-stream/ssr.js +1 -1
  30. package/dist/rsc.d.ts +4 -4
  31. package/dist/rsc.js +4 -4
  32. package/dist/{ssr-D154nyka.js → ssr-BEKKb_cw.js} +1 -1
  33. package/dist/{ssr-Bv84RACl.d.ts → ssr-BoNKka-5.d.ts} +1 -1
  34. package/dist/{ssr-BnEu3hbo.js → ssr-CWjOQSe3.js} +2 -2
  35. package/dist/ssr.d.ts +3 -3
  36. package/dist/ssr.js +4 -4
  37. package/dist/utils/encryption-runtime.d.ts +1 -1
  38. package/dist/utils/encryption-runtime.js +3 -3
  39. package/package.json +6 -6
  40. package/dist/vite-utils-Vzd7cqfv.js +0 -79
  41. package/dist/vite-utils.d.ts +0 -23
  42. package/dist/vite-utils.js +0 -3
  43. /package/dist/{browser-CyGTajab.d.ts → browser-CuwQIlVY.d.ts} +0 -0
  44. /package/dist/{client-BPIq1kGs.js → client-C1J4FCf5.js} +0 -0
  45. /package/dist/{encryption-runtime-BmDC7d-3.d.ts → encryption-runtime-SgJRa9yj.d.ts} +0 -0
  46. /package/dist/{index-CrcbP1rd.d.ts → index-QWzVHuya.d.ts} +0 -0
  47. /package/dist/{rsc-C54XEgZY.js → rsc-BfBPoIV8.js} +0 -0
  48. /package/dist/{rsc-A9Zr9bEE.d.ts → rsc-CFtzqEG8.d.ts} +0 -0
  49. /package/dist/{rsc-D-lnfNSa.d.ts → rsc-Cv3XEZqB.d.ts} +0 -0
  50. /package/dist/{server-DoWzqBNF.js → server-D0-DavPP.js} +0 -0
  51. /package/dist/{shared-Cwk6fxfN.js → shared-BWHxNw3Q.js} +0 -0
  52. /package/dist/{ssr-v4qYqcXu.js → ssr--rFiBtws.js} +0 -0
  53. /package/dist/{ssr-EOoYUXrM.d.ts → ssr-D6GTzOzx.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { CallServerCallback } from "./index-CrcbP1rd.js";
1
+ import { CallServerCallback } from "./index-QWzVHuya.js";
2
2
 
3
3
  //#region src/react/browser.d.ts
4
4
  declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: object): Promise<T>;
package/dist/browser.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CallServerCallback } from "./index-CrcbP1rd.js";
2
- import { setRequireModule } from "./browser-CyGTajab.js";
3
- import { callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setServerCallback } from "./browser-DUDACP5e.js";
1
+ import { CallServerCallback } from "./index-QWzVHuya.js";
2
+ import { setRequireModule } from "./browser-CuwQIlVY.js";
3
+ import { callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setServerCallback } from "./browser-mbRygLxB.js";
4
4
  export { CallServerCallback, callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule, setServerCallback };
@@ -1,2 +1,2 @@
1
- import { setRequireModule } from "../browser-CyGTajab.js";
1
+ import { setRequireModule } from "../browser-CuwQIlVY.js";
2
2
  export { setRequireModule };
@@ -1,3 +1,3 @@
1
- import "../index-CrcbP1rd.js";
2
- import { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../rsc-BeJKxeMX.js";
1
+ import "../index-QWzVHuya.js";
2
+ import { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../rsc-CxDPDiLz.js";
3
3
  export { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule };
package/dist/core/rsc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
- import { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../rsc-C54XEgZY.js";
3
+ import { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../rsc-BfBPoIV8.js";
4
4
 
5
5
  export { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule };
@@ -1,3 +1,3 @@
1
- import "../index-CrcbP1rd.js";
2
- import { createServerConsumerManifest, setRequireModule } from "../ssr-Bv84RACl.js";
1
+ import "../index-QWzVHuya.js";
2
+ import { createServerConsumerManifest, setRequireModule } from "../ssr-BoNKka-5.js";
3
3
  export { createServerConsumerManifest, setRequireModule };
package/dist/core/ssr.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
- import { createServerConsumerManifest, setRequireModule } from "../ssr-v4qYqcXu.js";
3
+ import { createServerConsumerManifest, setRequireModule } from "../ssr--rFiBtws.js";
4
4
 
5
5
  export { createServerConsumerManifest, setRequireModule };
@@ -1,6 +1,6 @@
1
1
  import { once } from "./dist-DiJnRA1C.js";
2
2
  import { arrayToStream, concatArrayStream, decryptBuffer, encryptBuffer, fromBase64 } from "./encryption-utils-BDwwcMVT.js";
3
- import { createFromReadableStream, renderToReadableStream } from "./rsc-K03z8Dh0.js";
3
+ import { createFromReadableStream, renderToReadableStream } from "./rsc-VjVw_i-M.js";
4
4
  import encryptionKeySource from "virtual:vite-rsc/encryption-key";
5
5
 
6
6
  //#region src/utils/encryption-runtime.ts
@@ -1,4 +1,4 @@
1
- import { RscPayload } from "../rsc-D-lnfNSa.js";
1
+ import { RscPayload } from "../rsc-Cv3XEZqB.js";
2
2
 
3
3
  //#region src/extra/browser.d.ts
4
4
 
@@ -3,7 +3,7 @@ import "../shared-CEyKoKAb.js";
3
3
  import "../browser-BhJd-Orx.js";
4
4
  import { createFromFetch, createFromReadableStream, createTemporaryReferenceSet, encodeReply, setServerCallback } from "../browser-D8OPzpF5.js";
5
5
  import "../browser-QU10IP0-.js";
6
- import { rscStream } from "../client-BPIq1kGs.js";
6
+ import { rscStream } from "../client-C1J4FCf5.js";
7
7
  import React from "react";
8
8
  import ReactDomClient from "react-dom/client";
9
9
  import { jsx } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { RscPayload, renderRequest } from "../rsc-D-lnfNSa.js";
1
+ import { RscPayload, renderRequest } from "../rsc-Cv3XEZqB.js";
2
2
  export { RscPayload, renderRequest };
package/dist/extra/rsc.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
3
  import "../encryption-utils-BDwwcMVT.js";
4
- import { loadServerAction } from "../rsc-C54XEgZY.js";
5
- import { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, renderToReadableStream } from "../rsc-K03z8Dh0.js";
6
- import "../encryption-runtime-z7X8aRLB.js";
7
- import "../rsc-0ugrKC93.js";
4
+ import { loadServerAction } from "../rsc-BfBPoIV8.js";
5
+ import { createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, renderToReadableStream } from "../rsc-VjVw_i-M.js";
6
+ import "../encryption-runtime-CJUalqt3.js";
7
+ import "../rsc-BwEwbLG4.js";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
 
10
10
  //#region src/extra/rsc.tsx
package/dist/extra/ssr.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
- import "../shared-Cwk6fxfN.js";
4
- import "../ssr-v4qYqcXu.js";
5
- import { createFromReadableStream } from "../ssr-D154nyka.js";
6
- import "../ssr-BnEu3hbo.js";
7
- import { injectRSCPayload } from "../server-DoWzqBNF.js";
3
+ import "../shared-BWHxNw3Q.js";
4
+ import "../ssr--rFiBtws.js";
5
+ import { createFromReadableStream } from "../ssr-BEKKb_cw.js";
6
+ import "../ssr-CWjOQSe3.js";
7
+ import { injectRSCPayload } from "../server-D0-DavPP.js";
8
8
  import React from "react";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  import ReactDomServer from "react-dom/server.edge";
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { RscPluginOptions, vitePluginRsc } from "./plugin-CrIhPWor.js";
1
+ import { RscPluginOptions, vitePluginRsc } from "./plugin-YtSjJn3Y.js";
2
2
  import MagicString from "magic-string";
3
3
  import { Program } from "estree";
4
4
 
package/dist/index.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import "./dist-DiJnRA1C.js";
2
2
  import "./plugin-CZbI4rhS.js";
3
- import { transformHoistInlineDirective, vitePluginRsc } from "./plugin-Ddfc3b6D.js";
3
+ import { transformHoistInlineDirective, vitePluginRsc } from "./plugin-r-u6Aj3n.js";
4
4
  import "./encryption-utils-BDwwcMVT.js";
5
5
  import "./rpc-tGuLT8PD.js";
6
- import "./vite-utils-Vzd7cqfv.js";
7
- import "./shared-Cwk6fxfN.js";
6
+ import "./shared-BWHxNw3Q.js";
8
7
 
9
8
  export { vitePluginRsc as default, transformHoistInlineDirective };
@@ -17,6 +17,8 @@ type ClientReferenceMeta = {
17
17
  packageSource?: string;
18
18
  exportNames: string[];
19
19
  renderedExports: string[];
20
+ serverChunk?: string;
21
+ groupChunkId?: string;
20
22
  };
21
23
  type ServerRerferenceMeta = {
22
24
  importId: string;
@@ -30,11 +32,13 @@ declare class RscPluginManager {
30
32
  buildAssetsManifest: AssetsManifest | undefined;
31
33
  isScanBuild: boolean;
32
34
  clientReferenceMetaMap: Record<string, ClientReferenceMeta>;
35
+ clientReferenceGroups: Record<string, ClientReferenceMeta[]>;
33
36
  serverReferenceMetaMap: Record<string, ServerRerferenceMeta>;
34
37
  serverResourcesMetaMap: Record<string, {
35
38
  key: string;
36
39
  }>;
37
40
  stabilize(): void;
41
+ toRelativeId(id: string): string;
38
42
  }
39
43
  type RscPluginOptions = {
40
44
  /**
@@ -97,6 +101,18 @@ type RscPluginOptions = {
97
101
  ssr?: string;
98
102
  rsc?: string;
99
103
  };
104
+ /**
105
+ * Custom chunking strategy for client reference modules.
106
+ *
107
+ * This function allows you to group multiple client components into
108
+ * custom chunks instead of having each module in its own chunk.
109
+ */
110
+ clientChunks?: (meta: {
111
+ /** client reference module id */
112
+ id: string;
113
+ /** server chunk which includes a corresponding client reference proxy module */
114
+ serverChunk: string;
115
+ }) => string | undefined;
100
116
  };
101
117
  /** @experimental */
102
118
  declare function vitePluginRscMinimal(rscPluginOptions?: RscPluginOptions, manager?: RscPluginManager): Plugin[];
@@ -2,8 +2,7 @@ import { createDebug, tinyassert } from "./dist-DiJnRA1C.js";
2
2
  import { vitePluginRscCore } from "./plugin-CZbI4rhS.js";
3
3
  import { generateEncryptionKey, toBase64 } from "./encryption-utils-BDwwcMVT.js";
4
4
  import { createRpcServer } from "./rpc-tGuLT8PD.js";
5
- import { cleanUrl, normalizeViteImportAnalysisUrl, prepareError } from "./vite-utils-Vzd7cqfv.js";
6
- import { parseCssVirtual, parseIdQuery, toCssVirtual } from "./shared-Cwk6fxfN.js";
5
+ import { parseCssVirtual, parseIdQuery, toCssVirtual } from "./shared-BWHxNw3Q.js";
7
6
  import { createRequire } from "node:module";
8
7
  import assert from "node:assert";
9
8
  import fs from "node:fs";
@@ -17,6 +16,7 @@ import { defaultServerConditions, isCSSRequest, normalizePath, parseAstAsync } f
17
16
  import { crawlFrameworkPkgs, findClosestPkgJsonPath } from "vitefu";
18
17
  import { walk } from "estree-walker";
19
18
  import { analyze, extract_names } from "periscopic";
19
+ import { stripVTControlCharacters } from "node:util";
20
20
  import { createHash } from "node:crypto";
21
21
 
22
22
  //#region src/transforms/hoist.ts
@@ -306,6 +306,78 @@ function transformServerActionServer(input, ast, options) {
306
306
  });
307
307
  }
308
308
 
309
+ //#endregion
310
+ //#region src/plugins/vite-utils.ts
311
+ const VALID_ID_PREFIX = `/@id/`;
312
+ const NULL_BYTE_PLACEHOLDER = `__x00__`;
313
+ const FS_PREFIX = `/@fs/`;
314
+ function wrapId(id) {
315
+ return id.startsWith(VALID_ID_PREFIX) ? id : VALID_ID_PREFIX + id.replace("\0", NULL_BYTE_PLACEHOLDER);
316
+ }
317
+ function withTrailingSlash(path$1) {
318
+ if (path$1[path$1.length - 1] !== "/") return `${path$1}/`;
319
+ return path$1;
320
+ }
321
+ const postfixRE = /[?#].*$/;
322
+ function cleanUrl(url) {
323
+ return url.replace(postfixRE, "");
324
+ }
325
+ function splitFileAndPostfix(path$1) {
326
+ const file = cleanUrl(path$1);
327
+ return {
328
+ file,
329
+ postfix: path$1.slice(file.length)
330
+ };
331
+ }
332
+ const windowsSlashRE = /\\/g;
333
+ function slash(p) {
334
+ return p.replace(windowsSlashRE, "/");
335
+ }
336
+ const isWindows = typeof process !== "undefined" && process.platform === "win32";
337
+ function injectQuery(url, queryToInject) {
338
+ const { file, postfix } = splitFileAndPostfix(url);
339
+ const normalizedFile = isWindows ? slash(file) : file;
340
+ return `${normalizedFile}?${queryToInject}${postfix[0] === "?" ? `&${postfix.slice(1)}` : postfix}`;
341
+ }
342
+ function normalizeResolvedIdToUrl(environment, url, resolved) {
343
+ const root = environment.config.root;
344
+ const depsOptimizer = environment.depsOptimizer;
345
+ if (resolved.id.startsWith(withTrailingSlash(root))) url = resolved.id.slice(root.length);
346
+ else if (depsOptimizer?.isOptimizedDepFile(resolved.id) || resolved.id !== "/@react-refresh" && path.isAbsolute(resolved.id) && fs.existsSync(cleanUrl(resolved.id))) url = path.posix.join(FS_PREFIX, resolved.id);
347
+ else url = resolved.id;
348
+ if (url[0] !== "." && url[0] !== "/") url = wrapId(resolved.id);
349
+ return url;
350
+ }
351
+ function normalizeViteImportAnalysisUrl(environment, id) {
352
+ let url = normalizeResolvedIdToUrl(environment, id, { id });
353
+ if (environment.config.consumer === "client") {
354
+ const mod = environment.moduleGraph.getModuleById(id);
355
+ if (mod && mod.lastHMRTimestamp > 0) url = injectQuery(url, `t=${mod.lastHMRTimestamp}`);
356
+ }
357
+ return url;
358
+ }
359
+ function prepareError(err) {
360
+ return {
361
+ message: stripVTControlCharacters(err.message),
362
+ stack: stripVTControlCharacters(cleanStack(err.stack || "")),
363
+ id: err.id,
364
+ frame: stripVTControlCharacters(err.frame || ""),
365
+ plugin: err.plugin,
366
+ pluginCode: err.pluginCode?.toString(),
367
+ loc: err.loc
368
+ };
369
+ }
370
+ function cleanStack(stack) {
371
+ return stack.split(/\n/).filter((l) => /^\s*at/.test(l)).join("\n");
372
+ }
373
+ function evalValue(rawValue) {
374
+ const fn = new Function(`
375
+ var console, exports, global, module, process, require
376
+ return (\n${rawValue}\n)
377
+ `);
378
+ return fn();
379
+ }
380
+
309
381
  //#endregion
310
382
  //#region src/transforms/cjs.ts
311
383
  function transformCjsToEsm(code, ast) {
@@ -402,13 +474,6 @@ function extractPackageKey(id) {
402
474
 
403
475
  //#endregion
404
476
  //#region src/plugins/utils.ts
405
- function evalValue(rawValue) {
406
- const fn = new Function(`
407
- var console, exports, global, module, process, require
408
- return (\n${rawValue}\n)
409
- `);
410
- return fn();
411
- }
412
477
  function sortObject(o) {
413
478
  return Object.fromEntries(Object.entries(o).sort(([a], [b]) => a.localeCompare(b)));
414
479
  }
@@ -582,12 +647,16 @@ var RscPluginManager = class {
582
647
  buildAssetsManifest;
583
648
  isScanBuild = false;
584
649
  clientReferenceMetaMap = {};
650
+ clientReferenceGroups = {};
585
651
  serverReferenceMetaMap = {};
586
652
  serverResourcesMetaMap = {};
587
653
  stabilize() {
588
654
  this.clientReferenceMetaMap = sortObject(this.clientReferenceMetaMap);
589
655
  this.serverResourcesMetaMap = sortObject(this.serverResourcesMetaMap);
590
656
  }
657
+ toRelativeId(id) {
658
+ return normalizePath(path.relative(this.config.root, id));
659
+ }
591
660
  };
592
661
  /** @experimental */
593
662
  function vitePluginRscMinimal(rscPluginOptions = {}, manager = new RscPluginManager()) {
@@ -797,7 +866,7 @@ function vitePluginRsc(rscPluginOptions = {}) {
797
866
  },
798
867
  async hotUpdate(ctx) {
799
868
  if (isCSSRequest(ctx.file)) {
800
- if (this.environment.name === "client") return ctx.modules.filter((m) => !m.id?.includes("?direct"));
869
+ if (this.environment.name === "client") return ctx.modules.filter((m) => !(m.id?.includes("?direct") && !m.isSelfAccepting));
801
870
  }
802
871
  const ids = ctx.modules.map((mod) => mod.id).filter((v) => v !== null);
803
872
  if (ids.length === 0) return;
@@ -991,8 +1060,8 @@ function vitePluginRsc(rscPluginOptions = {}) {
991
1060
  assert(entry);
992
1061
  const entryUrl = assetsURL(entry.chunk.fileName, manager);
993
1062
  const clientReferenceDeps = {};
994
- for (const [id, meta] of Object.entries(manager.clientReferenceMetaMap)) {
995
- const deps = assetDeps[id]?.deps ?? {
1063
+ for (const meta of Object.values(manager.clientReferenceMetaMap)) {
1064
+ const deps = assetDeps[meta.groupChunkId]?.deps ?? {
996
1065
  js: [],
997
1066
  css: []
998
1067
  };
@@ -1162,7 +1231,7 @@ function vitePluginUseClient(useClientPluginOptions, manager) {
1162
1231
  referenceKey = importId;
1163
1232
  } else {
1164
1233
  importId = id;
1165
- referenceKey = hashString(normalizePath(path.relative(manager.config.root, id)));
1234
+ referenceKey = hashString(manager.toRelativeId(id));
1166
1235
  }
1167
1236
  const transformDirectiveProxyExport_ = withRollupError(this, transformDirectiveProxyExport);
1168
1237
  const result = transformDirectiveProxyExport_(ast, {
@@ -1192,29 +1261,72 @@ function vitePluginUseClient(useClientPluginOptions, manager) {
1192
1261
  };
1193
1262
  }
1194
1263
  },
1195
- createVirtualPlugin("vite-rsc/client-references", function() {
1196
- if (this.environment.mode === "dev") return {
1197
- code: `export default {}`,
1198
- map: null
1199
- };
1200
- let code = "";
1201
- for (const meta of Object.values(manager.clientReferenceMetaMap)) {
1202
- const key = JSON.stringify(meta.referenceKey);
1203
- const id = JSON.stringify(meta.importId);
1204
- const exports = meta.renderedExports.map((name) => name === "default" ? "default: _default" : name).sort();
1205
- code += `
1206
- ${key}: async () => {
1207
- const {${exports}} = await import(${id});
1208
- return {${exports}};
1209
- },
1210
- `;
1264
+ {
1265
+ name: "rsc:use-client/build-references",
1266
+ resolveId(source) {
1267
+ if (source.startsWith("virtual:vite-rsc/client-references")) return "\0" + source;
1268
+ },
1269
+ load(id) {
1270
+ if (id === "\0virtual:vite-rsc/client-references") {
1271
+ if (this.environment.mode === "dev") return {
1272
+ code: `export default {}`,
1273
+ map: null
1274
+ };
1275
+ if (manager.isScanBuild) {
1276
+ let code$1 = ``;
1277
+ for (const meta of Object.values(manager.clientReferenceMetaMap)) code$1 += `import ${JSON.stringify(meta.importId)};\n`;
1278
+ return {
1279
+ code: code$1,
1280
+ map: null
1281
+ };
1282
+ }
1283
+ let code = "";
1284
+ manager.clientReferenceGroups = {};
1285
+ for (const meta of Object.values(manager.clientReferenceMetaMap)) {
1286
+ let name = useClientPluginOptions.clientChunks?.({
1287
+ id: meta.importId,
1288
+ serverChunk: meta.serverChunk
1289
+ }) ?? manager.toRelativeId(meta.importId);
1290
+ name = cleanUrl(name.replaceAll("..", "__"));
1291
+ const group = manager.clientReferenceGroups[name] ??= [];
1292
+ group.push(meta);
1293
+ meta.groupChunkId = `\0virtual:vite-rsc/client-references/group/${name}`;
1294
+ }
1295
+ debug$1("client-reference-groups", manager.clientReferenceGroups);
1296
+ for (const [name, metas] of Object.entries(manager.clientReferenceGroups)) {
1297
+ const groupVirtual = `virtual:vite-rsc/client-references/group/${name}`;
1298
+ for (const meta of metas) code += `\
1299
+ ${JSON.stringify(meta.referenceKey)}: async () => {
1300
+ const m = await import(${JSON.stringify(groupVirtual)});
1301
+ return m.export_${meta.referenceKey};
1302
+ },
1303
+ `;
1304
+ }
1305
+ code = `export default {${code}};\n`;
1306
+ return {
1307
+ code,
1308
+ map: null
1309
+ };
1310
+ }
1311
+ if (id.startsWith("\0virtual:vite-rsc/client-references/group/")) {
1312
+ const name = id.slice(42);
1313
+ const metas = manager.clientReferenceGroups[name];
1314
+ assert(metas, `unknown client reference group: ${name}`);
1315
+ let code = ``;
1316
+ for (const meta of metas) {
1317
+ const exports = meta.renderedExports.map((name$1) => `${name$1}: import_${meta.referenceKey}.${name$1},\n`).sort().join("");
1318
+ code += `
1319
+ import * as import_${meta.referenceKey} from ${JSON.stringify(meta.importId)};
1320
+ export const export_${meta.referenceKey} = {${exports}};
1321
+ `;
1322
+ }
1323
+ return {
1324
+ code,
1325
+ map: null
1326
+ };
1327
+ }
1211
1328
  }
1212
- code = `export default {${code}};\n`;
1213
- return {
1214
- code,
1215
- map: null
1216
- };
1217
- }),
1329
+ },
1218
1330
  {
1219
1331
  name: "rsc:virtual-client-in-server-package",
1220
1332
  async load(id) {
@@ -1255,9 +1367,23 @@ function vitePluginUseClient(useClientPluginOptions, manager) {
1255
1367
  },
1256
1368
  generateBundle(_options, bundle) {
1257
1369
  if (this.environment.name !== serverEnvironmentName) return;
1258
- for (const chunk of Object.values(bundle)) if (chunk.type === "chunk") for (const [id, mod] of Object.entries(chunk.modules)) {
1259
- const meta = manager.clientReferenceMetaMap[id];
1260
- if (meta) meta.renderedExports = mod.renderedExports;
1370
+ for (const chunk of Object.values(bundle)) if (chunk.type === "chunk") {
1371
+ const metas = [];
1372
+ for (const id of chunk.moduleIds) {
1373
+ const meta = manager.clientReferenceMetaMap[id];
1374
+ if (meta) metas.push([id, meta]);
1375
+ }
1376
+ if (metas.length > 0) {
1377
+ let serverChunk;
1378
+ if (chunk.facadeModuleId) serverChunk = "facade:" + manager.toRelativeId(chunk.facadeModuleId);
1379
+ else serverChunk = "shared:" + manager.toRelativeId(metas.map(([id]) => id).sort()[0]);
1380
+ for (const [id, meta] of metas) {
1381
+ const mod = chunk.modules[id];
1382
+ assert(mod);
1383
+ meta.renderedExports = mod.renderedExports;
1384
+ meta.serverChunk = serverChunk;
1385
+ }
1386
+ }
1261
1387
  }
1262
1388
  }
1263
1389
  },
@@ -1368,7 +1494,7 @@ function vitePluginUseServer(useServerPluginOptions, manager) {
1368
1494
  debug$1(`internal server reference created through a package imported in ${this.environment.name} environment: ${id}`);
1369
1495
  id = cleanUrl(id);
1370
1496
  }
1371
- if (manager.config.command === "build") normalizedId_ = hashString(path.relative(manager.config.root, id));
1497
+ if (manager.config.command === "build") normalizedId_ = hashString(manager.toRelativeId(id));
1372
1498
  else normalizedId_ = normalizeViteImportAnalysisUrl(manager.server.environments[serverEnvironmentName], id);
1373
1499
  }
1374
1500
  return normalizedId_;
@@ -1689,7 +1815,7 @@ function vitePluginRscCss(rscCssOptions = {}, manager) {
1689
1815
  }, manager);
1690
1816
  return generateResourcesCode(serializeValueWithRuntime(deps), manager);
1691
1817
  } else {
1692
- const key = normalizePath(path.relative(manager.config.root, importer));
1818
+ const key = manager.toRelativeId(importer);
1693
1819
  manager.serverResourcesMetaMap[importer] = { key };
1694
1820
  return `
1695
1821
  import __vite_rsc_assets_manifest__ from "virtual:vite-rsc/assets-manifest";
package/dist/plugin.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { AssetDeps, AssetsManifest, ResolvedAssetDeps, ResolvedAssetsManifest, RscPluginOptions, transformRscCssExport, vitePluginRsc, vitePluginRscMinimal } from "./plugin-CrIhPWor.js";
1
+ import { AssetDeps, AssetsManifest, ResolvedAssetDeps, ResolvedAssetsManifest, RscPluginOptions, transformRscCssExport, vitePluginRsc, vitePluginRscMinimal } from "./plugin-YtSjJn3Y.js";
2
2
  export { AssetDeps, AssetsManifest, ResolvedAssetDeps, ResolvedAssetsManifest, RscPluginOptions, vitePluginRsc as default, transformRscCssExport, vitePluginRscMinimal };
package/dist/plugin.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import "./dist-DiJnRA1C.js";
2
2
  import "./plugin-CZbI4rhS.js";
3
- import { transformRscCssExport, vitePluginRsc, vitePluginRscMinimal } from "./plugin-Ddfc3b6D.js";
3
+ import { transformRscCssExport, vitePluginRsc, vitePluginRscMinimal } from "./plugin-r-u6Aj3n.js";
4
4
  import "./encryption-utils-BDwwcMVT.js";
5
5
  import "./rpc-tGuLT8PD.js";
6
- import "./vite-utils-Vzd7cqfv.js";
7
- import "./shared-Cwk6fxfN.js";
6
+ import "./shared-BWHxNw3Q.js";
8
7
 
9
8
  export { vitePluginRsc as default, transformRscCssExport, vitePluginRscMinimal };
@@ -1,4 +1,4 @@
1
- import { CallServerCallback } from "../index-CrcbP1rd.js";
2
- import { setRequireModule } from "../browser-CyGTajab.js";
3
- import { callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setServerCallback } from "../browser-DUDACP5e.js";
1
+ import { CallServerCallback } from "../index-QWzVHuya.js";
2
+ import { setRequireModule } from "../browser-CuwQIlVY.js";
3
+ import { callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setServerCallback } from "../browser-mbRygLxB.js";
4
4
  export { CallServerCallback, callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule, setServerCallback };
@@ -1,4 +1,4 @@
1
- import "../index-CrcbP1rd.js";
2
- import { loadServerAction, setRequireModule } from "../rsc-BeJKxeMX.js";
3
- import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "../rsc-A9Zr9bEE.js";
1
+ import "../index-QWzVHuya.js";
2
+ import { loadServerAction, setRequireModule } from "../rsc-CxDPDiLz.js";
3
+ import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "../rsc-CFtzqEG8.js";
4
4
  export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
package/dist/react/rsc.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
- import { loadServerAction, setRequireModule } from "../rsc-C54XEgZY.js";
4
- import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "../rsc-K03z8Dh0.js";
3
+ import { loadServerAction, setRequireModule } from "../rsc-BfBPoIV8.js";
4
+ import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "../rsc-VjVw_i-M.js";
5
5
 
6
6
  export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -1,4 +1,4 @@
1
- import "../index-CrcbP1rd.js";
2
- import { setRequireModule } from "../ssr-Bv84RACl.js";
3
- import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "../ssr-EOoYUXrM.js";
1
+ import "../index-QWzVHuya.js";
2
+ import { setRequireModule } from "../ssr-BoNKka-5.js";
3
+ import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "../ssr-D6GTzOzx.js";
4
4
  export { callServer, createFromReadableStream, createServerReference, findSourceMapURL, setRequireModule };
package/dist/react/ssr.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
- import { setRequireModule } from "../ssr-v4qYqcXu.js";
4
- import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "../ssr-D154nyka.js";
3
+ import { setRequireModule } from "../ssr--rFiBtws.js";
4
+ import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "../ssr-BEKKb_cw.js";
5
5
 
6
6
  export { callServer, createFromReadableStream, createServerReference, findSourceMapURL, setRequireModule };
@@ -1,4 +1,4 @@
1
- import { setRequireModule } from "./rsc-C54XEgZY.js";
1
+ import { setRequireModule } from "./rsc-BfBPoIV8.js";
2
2
  import serverReferences from "virtual:vite-rsc/server-references";
3
3
 
4
4
  //#region src/rsc.tsx
@@ -1,4 +1,4 @@
1
- import { BundlerConfig, ModuleMap } from "./index-CrcbP1rd.js";
1
+ import { BundlerConfig, ModuleMap } from "./index-QWzVHuya.js";
2
2
 
3
3
  //#region src/core/rsc.d.ts
4
4
  declare function setRequireModule(options: {
@@ -1,4 +1,4 @@
1
- import { createClientManifest, createServerDecodeClientManifest, createServerManifest } from "./rsc-C54XEgZY.js";
1
+ import { createClientManifest, createServerDecodeClientManifest, createServerManifest } from "./rsc-BfBPoIV8.js";
2
2
  import * as ReactServer from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
3
3
  import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
4
4
 
@@ -1,4 +1,4 @@
1
- import { rscStream } from "../client-BPIq1kGs.js";
1
+ import { rscStream } from "../client-C1J4FCf5.js";
2
2
 
3
3
  //#region src/rsc-html-stream/browser.ts
4
4
  /** @deprecated use `rsc-html-stream/client` instead */
@@ -1,4 +1,4 @@
1
- import { injectRSCPayload } from "../server-DoWzqBNF.js";
1
+ import { injectRSCPayload } from "../server-D0-DavPP.js";
2
2
 
3
3
  //#region src/rsc-html-stream/ssr.ts
4
4
  /** @deprecated use `rsc-html-stream/server` instead */
package/dist/rsc.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import "./index-CrcbP1rd.js";
2
- import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./rsc-BeJKxeMX.js";
3
- import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "./rsc-A9Zr9bEE.js";
4
- import { decryptActionBoundArgs, encryptActionBoundArgs } from "./encryption-runtime-BmDC7d-3.js";
1
+ import "./index-QWzVHuya.js";
2
+ import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./rsc-CxDPDiLz.js";
3
+ import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "./rsc-CFtzqEG8.js";
4
+ import { decryptActionBoundArgs, encryptActionBoundArgs } from "./encryption-runtime-SgJRa9yj.js";
5
5
  export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
package/dist/rsc.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import "./dist-DiJnRA1C.js";
2
2
  import "./shared-CEyKoKAb.js";
3
3
  import "./encryption-utils-BDwwcMVT.js";
4
- import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./rsc-C54XEgZY.js";
5
- import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "./rsc-K03z8Dh0.js";
6
- import { decryptActionBoundArgs, encryptActionBoundArgs } from "./encryption-runtime-z7X8aRLB.js";
7
- import "./rsc-0ugrKC93.js";
4
+ import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./rsc-BfBPoIV8.js";
5
+ import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream } from "./rsc-VjVw_i-M.js";
6
+ import { decryptActionBoundArgs, encryptActionBoundArgs } from "./encryption-runtime-CJUalqt3.js";
7
+ import "./rsc-BwEwbLG4.js";
8
8
 
9
9
  export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
@@ -1,4 +1,4 @@
1
- import { createServerConsumerManifest } from "./ssr-v4qYqcXu.js";
1
+ import { createServerConsumerManifest } from "./ssr--rFiBtws.js";
2
2
  import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
3
3
 
4
4
  //#region src/react/ssr.ts
@@ -1,4 +1,4 @@
1
- import { ServerConsumerManifest } from "./index-CrcbP1rd.js";
1
+ import { ServerConsumerManifest } from "./index-QWzVHuya.js";
2
2
 
3
3
  //#region src/core/ssr.d.ts
4
4
  declare function setRequireModule(options: {
@@ -1,5 +1,5 @@
1
- import { toCssVirtual } from "./shared-Cwk6fxfN.js";
2
- import { setRequireModule } from "./ssr-v4qYqcXu.js";
1
+ import { toCssVirtual } from "./shared-BWHxNw3Q.js";
2
+ import { setRequireModule } from "./ssr--rFiBtws.js";
3
3
  import * as clientReferences from "virtual:vite-rsc/client-references";
4
4
  import assetsManifest from "virtual:vite-rsc/assets-manifest";
5
5
  import * as ReactDOM from "react-dom";
package/dist/ssr.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import "./index-CrcbP1rd.js";
2
- import { createServerConsumerManifest, setRequireModule } from "./ssr-Bv84RACl.js";
3
- import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./ssr-EOoYUXrM.js";
1
+ import "./index-QWzVHuya.js";
2
+ import { createServerConsumerManifest, setRequireModule } from "./ssr-BoNKka-5.js";
3
+ import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./ssr-D6GTzOzx.js";
4
4
  export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setRequireModule };
package/dist/ssr.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import "./dist-DiJnRA1C.js";
2
2
  import "./shared-CEyKoKAb.js";
3
- import "./shared-Cwk6fxfN.js";
4
- import { createServerConsumerManifest, setRequireModule } from "./ssr-v4qYqcXu.js";
5
- import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./ssr-D154nyka.js";
6
- import "./ssr-BnEu3hbo.js";
3
+ import "./shared-BWHxNw3Q.js";
4
+ import { createServerConsumerManifest, setRequireModule } from "./ssr--rFiBtws.js";
5
+ import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./ssr-BEKKb_cw.js";
6
+ import "./ssr-CWjOQSe3.js";
7
7
 
8
8
  export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setRequireModule };
@@ -1,2 +1,2 @@
1
- import { decryptActionBoundArgs, encryptActionBoundArgs } from "../encryption-runtime-BmDC7d-3.js";
1
+ import { decryptActionBoundArgs, encryptActionBoundArgs } from "../encryption-runtime-SgJRa9yj.js";
2
2
  export { decryptActionBoundArgs, encryptActionBoundArgs };
@@ -1,8 +1,8 @@
1
1
  import "../dist-DiJnRA1C.js";
2
2
  import "../shared-CEyKoKAb.js";
3
3
  import "../encryption-utils-BDwwcMVT.js";
4
- import "../rsc-C54XEgZY.js";
5
- import "../rsc-K03z8Dh0.js";
6
- import { decryptActionBoundArgs, encryptActionBoundArgs } from "../encryption-runtime-z7X8aRLB.js";
4
+ import "../rsc-BfBPoIV8.js";
5
+ import "../rsc-VjVw_i-M.js";
6
+ import { decryptActionBoundArgs, encryptActionBoundArgs } from "../encryption-runtime-CJUalqt3.js";
7
7
 
8
8
  export { decryptActionBoundArgs, encryptActionBoundArgs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitejs/plugin-rsc",
3
- "version": "0.4.23",
3
+ "version": "0.4.24",
4
4
  "description": "React Server Components (RSC) support for Vite.",
5
5
  "keywords": [
6
6
  "vite",
@@ -41,18 +41,18 @@
41
41
  "@remix-run/node-fetch-server": "^0.8.0",
42
42
  "es-module-lexer": "^1.7.0",
43
43
  "estree-walker": "^3.0.3",
44
- "magic-string": "^0.30.17",
44
+ "magic-string": "^0.30.18",
45
45
  "periscopic": "^4.0.2",
46
46
  "turbo-stream": "^3.1.0",
47
47
  "vitefu": "^1.1.1"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@hiogawa/utils": "^1.7.0",
51
- "@playwright/test": "^1.54.2",
51
+ "@playwright/test": "^1.55.0",
52
52
  "@tsconfig/strictest": "^2.0.5",
53
53
  "@types/estree": "^1.0.8",
54
- "@types/node": "^22.17.2",
55
- "@types/react": "^19.1.10",
54
+ "@types/node": "^22.18.0",
55
+ "@types/react": "^19.1.11",
56
56
  "@types/react-dom": "^19.1.7",
57
57
  "@vitejs/plugin-react": "workspace:*",
58
58
  "react": "^19.1.1",
@@ -60,7 +60,7 @@
60
60
  "react-server-dom-webpack": "^19.1.1",
61
61
  "rsc-html-stream": "^0.0.7",
62
62
  "tinyexec": "^1.0.1",
63
- "tsdown": "^0.14.1"
63
+ "tsdown": "^0.14.2"
64
64
  },
65
65
  "peerDependencies": {
66
66
  "react": "*",
@@ -1,79 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { stripVTControlCharacters } from "node:util";
4
-
5
- //#region src/vite-utils.ts
6
- const VALID_ID_PREFIX = `/@id/`;
7
- const NULL_BYTE_PLACEHOLDER = `__x00__`;
8
- const FS_PREFIX = `/@fs/`;
9
- function wrapId(id) {
10
- return id.startsWith(VALID_ID_PREFIX) ? id : VALID_ID_PREFIX + id.replace("\0", NULL_BYTE_PLACEHOLDER);
11
- }
12
- function unwrapId(id) {
13
- return id.startsWith(VALID_ID_PREFIX) ? id.slice(VALID_ID_PREFIX.length).replace(NULL_BYTE_PLACEHOLDER, "\0") : id;
14
- }
15
- function withTrailingSlash(path$1) {
16
- if (path$1[path$1.length - 1] !== "/") return `${path$1}/`;
17
- return path$1;
18
- }
19
- const postfixRE = /[?#].*$/;
20
- function cleanUrl(url) {
21
- return url.replace(postfixRE, "");
22
- }
23
- function splitFileAndPostfix(path$1) {
24
- const file = cleanUrl(path$1);
25
- return {
26
- file,
27
- postfix: path$1.slice(file.length)
28
- };
29
- }
30
- const windowsSlashRE = /\\/g;
31
- function slash(p) {
32
- return p.replace(windowsSlashRE, "/");
33
- }
34
- const isWindows = typeof process !== "undefined" && process.platform === "win32";
35
- function injectQuery(url, queryToInject) {
36
- const { file, postfix } = splitFileAndPostfix(url);
37
- const normalizedFile = isWindows ? slash(file) : file;
38
- return `${normalizedFile}?${queryToInject}${postfix[0] === "?" ? `&${postfix.slice(1)}` : postfix}`;
39
- }
40
- function joinUrlSegments(a, b) {
41
- if (!a || !b) return a || b || "";
42
- if (a.endsWith("/")) a = a.substring(0, a.length - 1);
43
- if (b[0] !== "/") b = "/" + b;
44
- return a + b;
45
- }
46
- function normalizeResolvedIdToUrl(environment, url, resolved) {
47
- const root = environment.config.root;
48
- const depsOptimizer = environment.depsOptimizer;
49
- if (resolved.id.startsWith(withTrailingSlash(root))) url = resolved.id.slice(root.length);
50
- else if (depsOptimizer?.isOptimizedDepFile(resolved.id) || resolved.id !== "/@react-refresh" && path.isAbsolute(resolved.id) && fs.existsSync(cleanUrl(resolved.id))) url = path.posix.join(FS_PREFIX, resolved.id);
51
- else url = resolved.id;
52
- if (url[0] !== "." && url[0] !== "/") url = wrapId(resolved.id);
53
- return url;
54
- }
55
- function normalizeViteImportAnalysisUrl(environment, id) {
56
- let url = normalizeResolvedIdToUrl(environment, id, { id });
57
- if (environment.config.consumer === "client") {
58
- const mod = environment.moduleGraph.getModuleById(id);
59
- if (mod && mod.lastHMRTimestamp > 0) url = injectQuery(url, `t=${mod.lastHMRTimestamp}`);
60
- }
61
- return url;
62
- }
63
- function prepareError(err) {
64
- return {
65
- message: stripVTControlCharacters(err.message),
66
- stack: stripVTControlCharacters(cleanStack(err.stack || "")),
67
- id: err.id,
68
- frame: stripVTControlCharacters(err.frame || ""),
69
- plugin: err.plugin,
70
- pluginCode: err.pluginCode?.toString(),
71
- loc: err.loc
72
- };
73
- }
74
- function cleanStack(stack) {
75
- return stack.split(/\n/).filter((l) => /^\s*at/.test(l)).join("\n");
76
- }
77
-
78
- //#endregion
79
- export { FS_PREFIX, NULL_BYTE_PLACEHOLDER, VALID_ID_PREFIX, cleanUrl, injectQuery, joinUrlSegments, normalizeResolvedIdToUrl, normalizeViteImportAnalysisUrl, prepareError, slash, splitFileAndPostfix, unwrapId, withTrailingSlash, wrapId };
@@ -1,23 +0,0 @@
1
- import { DevEnvironment, ErrorPayload, Rollup } from "vite";
2
-
3
- //#region src/vite-utils.d.ts
4
- declare const VALID_ID_PREFIX = "/@id/";
5
- declare const NULL_BYTE_PLACEHOLDER = "__x00__";
6
- declare const FS_PREFIX = "/@fs/";
7
- declare function wrapId(id: string): string;
8
- declare function unwrapId(id: string): string;
9
- declare function withTrailingSlash(path: string): string;
10
- declare function cleanUrl(url: string): string;
11
- declare function splitFileAndPostfix(path: string): {
12
- file: string;
13
- postfix: string;
14
- };
15
- declare function slash(p: string): string;
16
- declare function injectQuery(url: string, queryToInject: string): string;
17
- declare function joinUrlSegments(a: string, b: string): string;
18
- declare function normalizeResolvedIdToUrl(environment: DevEnvironment, url: string, resolved: Rollup.PartialResolvedId): string;
19
- declare function normalizeViteImportAnalysisUrl(environment: DevEnvironment, id: string): string;
20
- type RollupError = Rollup.RollupError;
21
- declare function prepareError(err: Error | RollupError): ErrorPayload["err"];
22
- //#endregion
23
- export { FS_PREFIX, NULL_BYTE_PLACEHOLDER, VALID_ID_PREFIX, cleanUrl, injectQuery, joinUrlSegments, normalizeResolvedIdToUrl, normalizeViteImportAnalysisUrl, prepareError, slash, splitFileAndPostfix, unwrapId, withTrailingSlash, wrapId };
@@ -1,3 +0,0 @@
1
- import { FS_PREFIX, NULL_BYTE_PLACEHOLDER, VALID_ID_PREFIX, cleanUrl, injectQuery, joinUrlSegments, normalizeResolvedIdToUrl, normalizeViteImportAnalysisUrl, prepareError, slash, splitFileAndPostfix, unwrapId, withTrailingSlash, wrapId } from "./vite-utils-Vzd7cqfv.js";
2
-
3
- export { FS_PREFIX, NULL_BYTE_PLACEHOLDER, VALID_ID_PREFIX, cleanUrl, injectQuery, joinUrlSegments, normalizeResolvedIdToUrl, normalizeViteImportAnalysisUrl, prepareError, slash, splitFileAndPostfix, unwrapId, withTrailingSlash, wrapId };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes