@vitejs/plugin-rsc 0.5.21 → 0.5.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-CUMAmYC3.d.ts +6 -0
- package/dist/browser.d.ts +2 -2
- package/dist/browser.js +1 -3
- package/dist/{chunk-f2BShn47.js → chunk-BYIdrdsR.js} +8 -14
- package/dist/cjs-BdahOUyh.js +115 -0
- package/dist/core/browser.d.ts +1 -5
- package/dist/core/browser.js +3 -5
- package/dist/core/plugin.js +1 -2
- package/dist/core/rsc.d.ts +1 -1
- package/dist/core/rsc.js +4 -6
- package/dist/core/ssr.d.ts +1 -1
- package/dist/core/ssr.js +3 -5
- package/dist/{dist-yW9-EeG1.js → dist-rz-Bnebz.js} +1 -2
- package/dist/{encryption-utils-Bk5eKdu6.js → encryption-utils-BblioYEx.js} +1 -2
- package/dist/{server-action-B2zS9t-J.d.ts → index-2GoUFmVR.d.ts} +34 -1
- package/dist/index-D2a5dlVU.d.ts +70 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.js +2 -6
- package/dist/{picocolors-B0A1T24z.js → picocolors-B6RAUUd2.js} +2 -5
- package/dist/plugin-DGxRH4Nv.d.ts +185 -0
- package/dist/plugin-DMfc_Eqq.js +1944 -0
- package/dist/plugin.d.ts +2 -179
- package/dist/plugin.js +2 -1468
- package/dist/plugins/cjs.js +2 -64
- package/dist/react/browser.d.ts +6 -6
- package/dist/react/browser.js +1 -3
- package/dist/react/rsc.d.ts +7 -6
- package/dist/react/rsc.js +2 -6
- package/dist/react/ssr.d.ts +2 -1
- package/dist/react/ssr.js +1 -3
- package/dist/rsc.d.ts +1 -3
- package/dist/rsc.js +2 -4
- package/dist/scope-DKCDtt0O.js +211 -0
- package/dist/{shared-Dhw3vs8e.js → shared-BViDMJTQ.js} +2 -3
- package/dist/{shared-d80_k_tn.js → shared-DeahDSXi.js} +1 -2
- package/dist/ssr.d.ts +1 -3
- package/dist/ssr.js +2 -4
- package/dist/transforms/index.d.ts +2 -2
- package/dist/transforms/index.js +367 -3
- package/dist/utils/encryption-runtime.js +3 -5
- package/dist/utils/rpc.js +1 -3
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.development.js +2 -2
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.development.js +3 -6
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.production.js +3 -6
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.development.js +3 -6
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.production.js +3 -6
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.development.js +3 -6
- package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.production.js +3 -6
- package/dist/vendor/react-server-dom/package.json +3 -3
- package/package.json +12 -13
- package/dist/cjs-v2jRTNln.js +0 -59
- package/dist/import-environment-B994HXEc.d.ts +0 -11
- package/dist/index-BIbdRBfk.d.ts +0 -26
- package/dist/server-action-JkEy-6yW.js +0 -344
- package/dist/validate-import-DJumtHRw.js +0 -498
package/dist/plugins/cjs.js
CHANGED
|
@@ -1,64 +1,2 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
|
|
3
|
-
import { n as parseIdQuery } from "../shared-d80_k_tn.js";
|
|
4
|
-
import fs from "node:fs";
|
|
5
|
-
import path from "node:path";
|
|
6
|
-
import * as esModuleLexer from "es-module-lexer";
|
|
7
|
-
import { parseAstAsync } from "vite";
|
|
8
|
-
import { findClosestPkgJsonPath } from "vitefu";
|
|
9
|
-
|
|
10
|
-
//#region src/plugins/cjs.ts
|
|
11
|
-
const debug = createDebug("vite-rsc:cjs");
|
|
12
|
-
function cjsModuleRunnerPlugin() {
|
|
13
|
-
const warnedPackages = /* @__PURE__ */ new Set();
|
|
14
|
-
return [{
|
|
15
|
-
name: "cjs-module-runner-transform",
|
|
16
|
-
apply: "serve",
|
|
17
|
-
applyToEnvironment: (env) => env.config.dev.moduleRunnerTransform,
|
|
18
|
-
transform: {
|
|
19
|
-
filter: {
|
|
20
|
-
id: /\/node_modules\//,
|
|
21
|
-
code: /\b(require|exports)\b/
|
|
22
|
-
},
|
|
23
|
-
async handler(code, id) {
|
|
24
|
-
if (id.includes("/node_modules/") && !id.startsWith(this.environment.config.cacheDir) && /\b(require|exports)\b/.test(code)) {
|
|
25
|
-
id = parseIdQuery(id).filename;
|
|
26
|
-
if (!/\.[cm]?js$/.test(id)) return;
|
|
27
|
-
if (id.endsWith(".mjs")) return;
|
|
28
|
-
if (id.endsWith(".js")) {
|
|
29
|
-
const pkgJsonPath = await findClosestPkgJsonPath(path.dirname(id));
|
|
30
|
-
if (pkgJsonPath) {
|
|
31
|
-
if (JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8")).type === "module") return;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const [, , , hasModuleSyntax] = esModuleLexer.parse(code);
|
|
35
|
-
if (hasModuleSyntax) return;
|
|
36
|
-
const packageKey = extractPackageKey(id);
|
|
37
|
-
if (!warnedPackages.has(packageKey)) {
|
|
38
|
-
debug(`non-optimized CJS dependency in '${this.environment.name}' environment: ${id}`);
|
|
39
|
-
warnedPackages.add(packageKey);
|
|
40
|
-
}
|
|
41
|
-
const output = transformCjsToEsm(code, await parseAstAsync(code), { id }).output;
|
|
42
|
-
return {
|
|
43
|
-
code: output.toString(),
|
|
44
|
-
map: output.generateMap({ hires: "boundary" })
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}];
|
|
50
|
-
}
|
|
51
|
-
function extractPackageKey(id) {
|
|
52
|
-
const yarnMatch = id.match(/\/.yarn\/cache\/([^/]+)/);
|
|
53
|
-
if (yarnMatch) return yarnMatch[1];
|
|
54
|
-
if (id.includes("/node_modules")) {
|
|
55
|
-
id = id.split("/node_modules/").at(-1);
|
|
56
|
-
let [x, y] = id.split("/");
|
|
57
|
-
if (x.startsWith("@")) return `${x}/${y}`;
|
|
58
|
-
return x;
|
|
59
|
-
}
|
|
60
|
-
return id;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
//#endregion
|
|
64
|
-
export { cjsModuleRunnerPlugin };
|
|
1
|
+
import { t as cjsModuleRunnerPlugin } from "../cjs-BdahOUyh.js";
|
|
2
|
+
export { cjsModuleRunnerPlugin };
|
package/dist/react/browser.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { n as CallServerCallback } from "../index-
|
|
2
|
-
import { setRequireModule } from "../
|
|
1
|
+
import { i as CreateFromReadableStreamBrowserOptions, n as CallServerCallback, r as ClientTemporaryReferenceSet, s as EncodeReplyFunction } from "../index-D2a5dlVU.js";
|
|
2
|
+
import { t as setRequireModule } from "../browser-CUMAmYC3.js";
|
|
3
3
|
|
|
4
4
|
//#region src/react/browser.d.ts
|
|
5
|
-
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?:
|
|
6
|
-
declare function createFromFetch<T>(promiseForResponse: Promise<Response>, options?:
|
|
7
|
-
declare const encodeReply:
|
|
5
|
+
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: CreateFromReadableStreamBrowserOptions): Promise<T>;
|
|
6
|
+
declare function createFromFetch<T>(promiseForResponse: Promise<Response>, options?: CreateFromReadableStreamBrowserOptions): Promise<T>;
|
|
7
|
+
declare const encodeReply: EncodeReplyFunction;
|
|
8
8
|
declare const createServerReference: (...args: any[]) => unknown;
|
|
9
9
|
declare function callServer(...args: any[]): any;
|
|
10
10
|
declare function setServerCallback(fn: CallServerCallback): void;
|
|
11
|
-
declare const createTemporaryReferenceSet: () =>
|
|
11
|
+
declare const createTemporaryReferenceSet: () => ClientTemporaryReferenceSet;
|
|
12
12
|
declare function findSourceMapURL(filename: string, environmentName: string): string | null;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { type CallServerCallback, callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule, setServerCallback };
|
package/dist/react/browser.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { setRequireModule } from "../core/browser.js";
|
|
2
2
|
import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.browser";
|
|
3
|
-
|
|
4
3
|
//#region src/react/browser.ts
|
|
5
4
|
function createFromReadableStream(stream, options = {}) {
|
|
6
5
|
return ReactClient.createFromReadableStream(stream, {
|
|
@@ -35,6 +34,5 @@ function findSourceMapURL(filename, environmentName) {
|
|
|
35
34
|
url.searchParams.set("environmentName", environmentName);
|
|
36
35
|
return url.toString();
|
|
37
36
|
}
|
|
38
|
-
|
|
39
37
|
//#endregion
|
|
40
|
-
export { callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule, setServerCallback };
|
|
38
|
+
export { callServer, createFromFetch, createFromReadableStream, createServerReference, createTemporaryReferenceSet, encodeReply, findSourceMapURL, setRequireModule, setServerCallback };
|
package/dist/react/rsc.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { a as CreateFromReadableStreamEdgeOptions, d as ServerTemporaryReferenceSet, l as RenderToReadableStreamOptions, o as DecodeReplyFunction, r as ClientTemporaryReferenceSet, s as EncodeReplyFunction } from "../index-D2a5dlVU.js";
|
|
1
2
|
import { loadServerAction, setRequireModule } from "../core/rsc.js";
|
|
2
3
|
import { ReactFormState } from "react-dom/client";
|
|
3
4
|
|
|
4
5
|
//#region src/react/rsc.d.ts
|
|
5
|
-
declare function renderToReadableStream<T>(data: T, options?:
|
|
6
|
+
declare function renderToReadableStream<T>(data: T, options?: RenderToReadableStreamOptions, extraOptions?: {
|
|
6
7
|
/**
|
|
7
8
|
* @internal
|
|
8
9
|
*/
|
|
@@ -11,14 +12,14 @@ declare function renderToReadableStream<T>(data: T, options?: object, extraOptio
|
|
|
11
12
|
name: string;
|
|
12
13
|
}) => void;
|
|
13
14
|
}): ReadableStream<Uint8Array>;
|
|
14
|
-
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?:
|
|
15
|
+
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: CreateFromReadableStreamEdgeOptions): Promise<T>;
|
|
15
16
|
declare function registerClientReference<T>(proxy: T, id: string, name: string): T;
|
|
16
17
|
declare const registerServerReference: <T>(ref: T, id: string, name: string) => T;
|
|
17
|
-
declare
|
|
18
|
+
declare const decodeReply: DecodeReplyFunction;
|
|
18
19
|
declare function decodeAction(body: FormData): Promise<() => Promise<void>>;
|
|
19
20
|
declare function decodeFormState(actionResult: unknown, body: FormData): Promise<ReactFormState | undefined>;
|
|
20
|
-
declare const createTemporaryReferenceSet: () =>
|
|
21
|
-
declare const encodeReply:
|
|
22
|
-
declare const createClientTemporaryReferenceSet: () =>
|
|
21
|
+
declare const createTemporaryReferenceSet: () => ServerTemporaryReferenceSet;
|
|
22
|
+
declare const encodeReply: EncodeReplyFunction;
|
|
23
|
+
declare const createClientTemporaryReferenceSet: () => ClientTemporaryReferenceSet;
|
|
23
24
|
//#endregion
|
|
24
25
|
export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
package/dist/react/rsc.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createClientManifest, createServerDecodeClientManifest, createServerManifest, loadServerAction, setRequireModule } from "../core/rsc.js";
|
|
2
2
|
import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
|
|
3
3
|
import * as ReactServer from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
|
|
4
|
-
|
|
5
4
|
//#region src/react/rsc.ts
|
|
6
5
|
function renderToReadableStream(data, options, extraOptions) {
|
|
7
6
|
return ReactServer.renderToReadableStream(data, createClientManifest({ onClientReference: extraOptions?.onClientReference }), options);
|
|
@@ -19,9 +18,7 @@ function registerClientReference(proxy, id, name) {
|
|
|
19
18
|
return ReactServer.registerClientReference(proxy, id, name);
|
|
20
19
|
}
|
|
21
20
|
const registerServerReference = ReactServer.registerServerReference;
|
|
22
|
-
|
|
23
|
-
return ReactServer.decodeReply(body, createServerManifest(), options);
|
|
24
|
-
}
|
|
21
|
+
const decodeReply = (body, options) => ReactServer.decodeReply(body, createServerManifest(), options);
|
|
25
22
|
function decodeAction(body) {
|
|
26
23
|
return ReactServer.decodeAction(body, createServerManifest());
|
|
27
24
|
}
|
|
@@ -31,6 +28,5 @@ function decodeFormState(actionResult, body) {
|
|
|
31
28
|
const createTemporaryReferenceSet = ReactServer.createTemporaryReferenceSet;
|
|
32
29
|
const encodeReply = ReactClient.encodeReply;
|
|
33
30
|
const createClientTemporaryReferenceSet = ReactClient.createTemporaryReferenceSet;
|
|
34
|
-
|
|
35
31
|
//#endregion
|
|
36
|
-
export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
|
32
|
+
export { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
package/dist/react/ssr.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { a as CreateFromReadableStreamEdgeOptions } from "../index-D2a5dlVU.js";
|
|
1
2
|
import { setRequireModule } from "../core/ssr.js";
|
|
2
3
|
|
|
3
4
|
//#region src/react/ssr.d.ts
|
|
4
|
-
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?:
|
|
5
|
+
declare function createFromReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: CreateFromReadableStreamEdgeOptions): Promise<T>;
|
|
5
6
|
declare function createServerReference(id: string): unknown;
|
|
6
7
|
declare const callServer: null;
|
|
7
8
|
declare const findSourceMapURL: null;
|
package/dist/react/ssr.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createServerConsumerManifest, setRequireModule } from "../core/ssr.js";
|
|
2
2
|
import * as ReactClient from "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge";
|
|
3
|
-
|
|
4
3
|
//#region src/react/ssr.ts
|
|
5
4
|
function createFromReadableStream(stream, options = {}) {
|
|
6
5
|
return ReactClient.createFromReadableStream(stream, {
|
|
@@ -13,6 +12,5 @@ function createServerReference(id) {
|
|
|
13
12
|
}
|
|
14
13
|
const callServer = null;
|
|
15
14
|
const findSourceMapURL = null;
|
|
16
|
-
|
|
17
15
|
//#endregion
|
|
18
|
-
export { callServer, createFromReadableStream, createServerReference, findSourceMapURL, setRequireModule };
|
|
16
|
+
export { callServer, createFromReadableStream, createServerReference, findSourceMapURL, setRequireModule };
|
package/dist/rsc.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./core/rsc.js";
|
|
2
|
-
import "./
|
|
3
|
-
import "./server-action-B2zS9t-J.js";
|
|
4
|
-
import { ResolvedAssetDeps } from "./plugin.js";
|
|
2
|
+
import { i as ResolvedAssetDeps } from "./plugin-DGxRH4Nv.js";
|
|
5
3
|
import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference } from "./react/rsc.js";
|
|
6
4
|
import { decryptActionBoundArgs, encryptActionBoundArgs } from "./utils/encryption-runtime.js";
|
|
7
5
|
|
package/dist/rsc.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { a as toReferenceValidationVirtual } from "./shared-
|
|
1
|
+
import { a as toReferenceValidationVirtual } from "./shared-DeahDSXi.js";
|
|
2
2
|
import { createClientManifest, createServerManifest, loadServerAction, setRequireModule } from "./core/rsc.js";
|
|
3
3
|
import { createClientTemporaryReferenceSet, createFromReadableStream, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, encodeReply, registerClientReference, registerServerReference, renderToReadableStream as renderToReadableStream$1 } from "./react/rsc.js";
|
|
4
4
|
import { decryptActionBoundArgs, encryptActionBoundArgs } from "./utils/encryption-runtime.js";
|
|
5
5
|
import assetsManifest from "virtual:vite-rsc/assets-manifest";
|
|
6
6
|
import serverReferences from "virtual:vite-rsc/server-references";
|
|
7
|
-
|
|
8
7
|
//#region src/rsc.tsx
|
|
9
8
|
initialize();
|
|
10
9
|
function initialize() {
|
|
@@ -41,6 +40,5 @@ function renderToReadableStream(data, options, extraOptions) {
|
|
|
41
40
|
});
|
|
42
41
|
} });
|
|
43
42
|
}
|
|
44
|
-
|
|
45
43
|
//#endregion
|
|
46
|
-
export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
|
44
|
+
export { createClientManifest, createClientTemporaryReferenceSet, createFromReadableStream, createServerManifest, createTemporaryReferenceSet, decodeAction, decodeFormState, decodeReply, decryptActionBoundArgs, encodeReply, encryptActionBoundArgs, loadServerAction, registerClientReference, registerServerReference, renderToReadableStream, setRequireModule };
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { i as tinyassert } from "./dist-rz-Bnebz.js";
|
|
2
|
+
import { walk } from "estree-walker";
|
|
3
|
+
//#region src/transforms/utils.ts
|
|
4
|
+
function hasDirective(body, directive) {
|
|
5
|
+
return !!body.find((stmt) => stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && stmt.expression.value === directive);
|
|
6
|
+
}
|
|
7
|
+
function getExportNames(ast, options) {
|
|
8
|
+
const exportNames = [];
|
|
9
|
+
for (const node of ast.body) {
|
|
10
|
+
if (node.type === "ExportNamedDeclaration") if (node.declaration) if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration")
|
|
11
|
+
/**
|
|
12
|
+
* export function foo() {}
|
|
13
|
+
*/
|
|
14
|
+
exportNames.push(node.declaration.id.name);
|
|
15
|
+
else if (node.declaration.type === "VariableDeclaration")
|
|
16
|
+
/**
|
|
17
|
+
* export const foo = 1, bar = 2
|
|
18
|
+
*/
|
|
19
|
+
for (const decl of node.declaration.declarations) exportNames.push(...extractNames(decl.id));
|
|
20
|
+
else node.declaration;
|
|
21
|
+
else
|
|
22
|
+
/**
|
|
23
|
+
* export { foo, bar as car } from './foo'
|
|
24
|
+
* export { foo, bar as car }
|
|
25
|
+
*/
|
|
26
|
+
for (const spec of node.specifiers) {
|
|
27
|
+
tinyassert(spec.exported.type === "Identifier");
|
|
28
|
+
exportNames.push(spec.exported.name);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* export * from './foo'
|
|
32
|
+
*/
|
|
33
|
+
if (!options.ignoreExportAllDeclaration && node.type === "ExportAllDeclaration") throw new Error("unsupported ExportAllDeclaration");
|
|
34
|
+
/**
|
|
35
|
+
* export default function foo() {}
|
|
36
|
+
* export default class Foo {}
|
|
37
|
+
* export default () => {}
|
|
38
|
+
*/
|
|
39
|
+
if (node.type === "ExportDefaultDeclaration") exportNames.push("default");
|
|
40
|
+
}
|
|
41
|
+
return { exportNames };
|
|
42
|
+
}
|
|
43
|
+
function extractNames(param) {
|
|
44
|
+
return extractIdentifiers(param).map((n) => n.name);
|
|
45
|
+
}
|
|
46
|
+
function extractIdentifiers(param, nodes = []) {
|
|
47
|
+
switch (param.type) {
|
|
48
|
+
case "Identifier":
|
|
49
|
+
nodes.push(param);
|
|
50
|
+
break;
|
|
51
|
+
case "MemberExpression": {
|
|
52
|
+
let obj = param;
|
|
53
|
+
while (obj.type === "MemberExpression") obj = obj.object;
|
|
54
|
+
nodes.push(obj);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case "ObjectPattern":
|
|
58
|
+
for (const prop of param.properties) extractIdentifiers(prop.type === "RestElement" ? prop : prop.value, nodes);
|
|
59
|
+
break;
|
|
60
|
+
case "ArrayPattern":
|
|
61
|
+
for (const el of param.elements) if (el) extractIdentifiers(el, nodes);
|
|
62
|
+
break;
|
|
63
|
+
case "RestElement":
|
|
64
|
+
extractIdentifiers(param.argument, nodes);
|
|
65
|
+
break;
|
|
66
|
+
case "AssignmentPattern":
|
|
67
|
+
extractIdentifiers(param.left, nodes);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
return nodes;
|
|
71
|
+
}
|
|
72
|
+
function validateNonAsyncFunction(opts, node) {
|
|
73
|
+
if (!opts.rejectNonAsyncFunction) return;
|
|
74
|
+
if (node.type === "ClassDeclaration" || node.type === "ClassExpression" || (node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") && !node.async) throw Object.assign(/* @__PURE__ */ new Error(`unsupported non async function`), { pos: node.start });
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
//#region src/transforms/scope.ts
|
|
78
|
+
var Scope = class {
|
|
79
|
+
declarations = /* @__PURE__ */ new Set();
|
|
80
|
+
constructor(parent, isFunction) {
|
|
81
|
+
this.parent = parent;
|
|
82
|
+
this.isFunction = isFunction;
|
|
83
|
+
}
|
|
84
|
+
getNearestFunctionScope() {
|
|
85
|
+
return this.isFunction ? this : this.parent.getNearestFunctionScope();
|
|
86
|
+
}
|
|
87
|
+
getAncestorScopes() {
|
|
88
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
89
|
+
let curr = this.parent;
|
|
90
|
+
while (curr) {
|
|
91
|
+
ancestors.add(curr);
|
|
92
|
+
curr = curr.parent;
|
|
93
|
+
}
|
|
94
|
+
return ancestors;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
function buildScopeTree(ast) {
|
|
98
|
+
const moduleScope = new Scope(void 0, true);
|
|
99
|
+
const nodeScope = /* @__PURE__ */ new Map();
|
|
100
|
+
let current = moduleScope;
|
|
101
|
+
nodeScope.set(ast, moduleScope);
|
|
102
|
+
const rawReferences = [];
|
|
103
|
+
const ancestors = [];
|
|
104
|
+
const referenceToNode = /* @__PURE__ */ new Map();
|
|
105
|
+
walk(ast, {
|
|
106
|
+
enter(node) {
|
|
107
|
+
ancestors.push(node);
|
|
108
|
+
if (node.type === "ImportDeclaration") for (const spec of node.specifiers) current.declarations.add(spec.local.name);
|
|
109
|
+
else if (isFunctionNode(node)) {
|
|
110
|
+
if (node.type === "FunctionDeclaration" && node.id) current.declarations.add(node.id.name);
|
|
111
|
+
const scope = new Scope(current, true);
|
|
112
|
+
nodeScope.set(node, scope);
|
|
113
|
+
current = scope;
|
|
114
|
+
for (const param of node.params) for (const name of extractNames(param)) scope.declarations.add(name);
|
|
115
|
+
if (node.type === "FunctionExpression" && node.id) scope.declarations.add(node.id.name);
|
|
116
|
+
} else if (node.type === "ClassDeclaration" && node.id) current.declarations.add(node.id.name);
|
|
117
|
+
else if (node.type === "ClassExpression" && node.id) {
|
|
118
|
+
const scope = new Scope(current, false);
|
|
119
|
+
scope.declarations.add(node.id.name);
|
|
120
|
+
nodeScope.set(node, scope);
|
|
121
|
+
current = scope;
|
|
122
|
+
} else if (node.type === "ForStatement" || node.type === "ForInStatement" || node.type === "ForOfStatement" || node.type === "SwitchStatement" || node.type === "BlockStatement") {
|
|
123
|
+
const scope = new Scope(current, false);
|
|
124
|
+
nodeScope.set(node, scope);
|
|
125
|
+
current = scope;
|
|
126
|
+
} else if (node.type === "CatchClause") {
|
|
127
|
+
const scope = new Scope(current, false);
|
|
128
|
+
nodeScope.set(node, scope);
|
|
129
|
+
current = scope;
|
|
130
|
+
if (node.param) for (const name of extractNames(node.param)) scope.declarations.add(name);
|
|
131
|
+
} else if (node.type === "VariableDeclaration") {
|
|
132
|
+
const target = node.kind === "var" ? current.getNearestFunctionScope() : current;
|
|
133
|
+
for (const decl of node.declarations) for (const name of extractNames(decl.id)) target.declarations.add(name);
|
|
134
|
+
}
|
|
135
|
+
if (node.type === "Identifier" && isReferenceIdentifier(node, ancestors.slice(0, -1).reverse())) {
|
|
136
|
+
const bindableNode = getOutermostBindableReference(node, ancestors.slice(0, -1).reverse());
|
|
137
|
+
referenceToNode.set(node, bindableNode);
|
|
138
|
+
rawReferences.push({
|
|
139
|
+
id: node,
|
|
140
|
+
visitScope: current
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
leave(node) {
|
|
145
|
+
ancestors.pop();
|
|
146
|
+
const scope = nodeScope.get(node);
|
|
147
|
+
if (scope?.parent) current = scope.parent;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
const scopeToReferences = new Map([...nodeScope.values()].map((scope) => [scope, []]));
|
|
151
|
+
const referenceToDeclaredScope = /* @__PURE__ */ new Map();
|
|
152
|
+
for (const { id, visitScope } of rawReferences) {
|
|
153
|
+
let declScope = visitScope;
|
|
154
|
+
while (declScope && !declScope.declarations.has(id.name)) declScope = declScope.parent;
|
|
155
|
+
if (declScope) referenceToDeclaredScope.set(id, declScope);
|
|
156
|
+
let scope = visitScope;
|
|
157
|
+
while (scope) {
|
|
158
|
+
scopeToReferences.get(scope).push(id);
|
|
159
|
+
scope = scope.parent;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
referenceToDeclaredScope,
|
|
164
|
+
scopeToReferences,
|
|
165
|
+
nodeScope,
|
|
166
|
+
moduleScope,
|
|
167
|
+
referenceToNode
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function isFunctionNode(node) {
|
|
171
|
+
return node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression";
|
|
172
|
+
}
|
|
173
|
+
function isReferenceIdentifier(node, parentStack) {
|
|
174
|
+
const parent = parentStack[0];
|
|
175
|
+
if (!parent) return true;
|
|
176
|
+
if (parent.type === "CatchClause" || (parent.type === "VariableDeclarator" || parent.type === "ClassDeclaration" || parent.type === "ClassExpression") && parent.id === node) return false;
|
|
177
|
+
if (isFunctionNode(parent)) {
|
|
178
|
+
if ("id" in parent && parent.id === node) return false;
|
|
179
|
+
if (parent.params.includes(node)) return false;
|
|
180
|
+
}
|
|
181
|
+
if ((parent.type === "MethodDefinition" || parent.type === "PropertyDefinition" || parent.type === "Property") && parent.key === node && !parent.computed) return false;
|
|
182
|
+
if (parent.type === "MemberExpression" && parent.property === node && !parent.computed) return false;
|
|
183
|
+
if (parent.type === "MetaProperty") return false;
|
|
184
|
+
if (parent.type === "Property" && parent.value === node && parentStack[1]?.type === "ObjectPattern") return isInDestructuringAssignment(parentStack);
|
|
185
|
+
if (parent.type === "ArrayPattern") return isInDestructuringAssignment(parentStack);
|
|
186
|
+
if (parent.type === "RestElement" && parent.argument === node) return isInDestructuringAssignment(parentStack);
|
|
187
|
+
if (parent.type === "AssignmentPattern" && parent.left === node) return isInDestructuringAssignment(parentStack);
|
|
188
|
+
if (parent.type === "ImportSpecifier" || parent.type === "ImportDefaultSpecifier" || parent.type === "ImportNamespaceSpecifier") return false;
|
|
189
|
+
if (parent.type === "ExportSpecifier") return parent.local === node;
|
|
190
|
+
if (parent.type === "LabeledStatement" || parent.type === "BreakStatement" || parent.type === "ContinueStatement") return false;
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
function isInDestructuringAssignment(parentStack) {
|
|
194
|
+
return parentStack.some((node) => node.type === "AssignmentExpression");
|
|
195
|
+
}
|
|
196
|
+
function getOutermostBindableReference(id, parentStack) {
|
|
197
|
+
let current = id;
|
|
198
|
+
for (const parent of parentStack) if (parent.type === "MemberExpression" && parent.object === current) {
|
|
199
|
+
if (parent.computed || parent.optional) break;
|
|
200
|
+
current = parent;
|
|
201
|
+
} else {
|
|
202
|
+
if (parent.type === "CallExpression" && parent.callee === current && current.type === "MemberExpression") {
|
|
203
|
+
tinyassert(current.object.type === "Identifier" || current.object.type === "MemberExpression");
|
|
204
|
+
current = current.object;
|
|
205
|
+
}
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
return current;
|
|
209
|
+
}
|
|
210
|
+
//#endregion
|
|
211
|
+
export { hasDirective as a, getExportNames as i, extractIdentifiers as n, validateNonAsyncFunction as o, extractNames as r, buildScopeTree as t };
|
|
@@ -9,13 +9,12 @@ function removeReferenceCacheTag(id) {
|
|
|
9
9
|
}
|
|
10
10
|
function setInternalRequire() {
|
|
11
11
|
globalThis.__vite_rsc_require__ = (id) => {
|
|
12
|
-
if (id.startsWith(
|
|
12
|
+
if (id.startsWith("$$server:")) {
|
|
13
13
|
id = id.slice(9);
|
|
14
14
|
return globalThis.__vite_rsc_server_require__(id);
|
|
15
15
|
}
|
|
16
16
|
return globalThis.__vite_rsc_client_require__(id);
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
|
|
20
19
|
//#endregion
|
|
21
|
-
export { setInternalRequire as a, removeReferenceCacheTag as i, SERVER_REFERENCE_PREFIX as n, createReferenceCacheTag as r, SERVER_DECODE_CLIENT_PREFIX as t };
|
|
20
|
+
export { setInternalRequire as a, removeReferenceCacheTag as i, SERVER_REFERENCE_PREFIX as n, createReferenceCacheTag as r, SERVER_DECODE_CLIENT_PREFIX as t };
|
|
@@ -22,6 +22,5 @@ function toReferenceValidationVirtual({ id, type }) {
|
|
|
22
22
|
function parseReferenceValidationVirtual(id) {
|
|
23
23
|
if (id.startsWith("\0virtual:vite-rsc/reference-validation?")) return parseIdQuery(id).query;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
25
|
//#endregion
|
|
27
|
-
export { toReferenceValidationVirtual as a, toCssVirtual as i, parseIdQuery as n, parseReferenceValidationVirtual as r, parseCssVirtual as t };
|
|
26
|
+
export { toReferenceValidationVirtual as a, toCssVirtual as i, parseIdQuery as n, parseReferenceValidationVirtual as r, parseCssVirtual as t };
|
package/dist/ssr.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { createServerConsumerManifest, setRequireModule } from "./core/ssr.js";
|
|
2
|
-
import "./
|
|
3
|
-
import "./server-action-B2zS9t-J.js";
|
|
4
|
-
import { ResolvedAssetDeps } from "./plugin.js";
|
|
2
|
+
import { i as ResolvedAssetDeps } from "./plugin-DGxRH4Nv.js";
|
|
5
3
|
import { callServer, createFromReadableStream, createServerReference, findSourceMapURL } from "./react/ssr.js";
|
|
6
4
|
|
|
7
5
|
//#region src/ssr.d.ts
|
package/dist/ssr.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { a as toReferenceValidationVirtual, i as toCssVirtual } from "./shared-
|
|
1
|
+
import { a as toReferenceValidationVirtual, i as toCssVirtual } from "./shared-DeahDSXi.js";
|
|
2
2
|
import { createServerConsumerManifest, setRequireModule } from "./core/ssr.js";
|
|
3
3
|
import { callServer, createFromReadableStream, createServerReference, 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";
|
|
7
|
-
|
|
8
7
|
//#region src/ssr.tsx
|
|
9
8
|
let onClientReference;
|
|
10
9
|
/**
|
|
@@ -77,6 +76,5 @@ function preloadDeps(deps) {
|
|
|
77
76
|
precedence: assetsManifest.cssLinkPrecedence !== false ? "vite-rsc/client-reference" : void 0
|
|
78
77
|
});
|
|
79
78
|
}
|
|
80
|
-
|
|
81
79
|
//#endregion
|
|
82
|
-
export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setOnClientReference, setRequireModule };
|
|
80
|
+
export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setOnClientReference, setRequireModule };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { TransformProxyExportOptions, TransformWrapExportFilter, TransformWrapExportOptions, findDirectives, getExportNames, hasDirective, transformDirectiveProxyExport, transformHoistInlineDirective, transformProxyExport, transformServerActionServer, transformWrapExport };
|
|
1
|
+
import { a as hasDirective, c as transformDirectiveProxyExport, d as TransformWrapExportOptions, f as transformWrapExport, i as getExportNames, l as transformProxyExport, m as transformHoistInlineDirective, n as extractIdentifiers, o as validateNonAsyncFunction, p as findDirectives, r as extractNames, s as TransformProxyExportOptions, t as transformServerActionServer, u as TransformWrapExportFilter } from "../index-2GoUFmVR.js";
|
|
2
|
+
export { TransformProxyExportOptions, TransformWrapExportFilter, TransformWrapExportOptions, extractIdentifiers, extractNames, findDirectives, getExportNames, hasDirective, transformDirectiveProxyExport, transformHoistInlineDirective, transformProxyExport, transformServerActionServer, transformWrapExport, validateNonAsyncFunction };
|