rwsdk 1.0.0-alpha.1-test.20250911154541 → 1.0.0-alpha.11
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/lib/e2e/browser.d.mts +10 -0
- package/dist/lib/e2e/browser.mjs +124 -0
- package/dist/lib/e2e/dev.d.mts +8 -0
- package/dist/lib/e2e/dev.mjs +242 -0
- package/dist/lib/e2e/environment.d.mts +14 -0
- package/dist/lib/e2e/environment.mjs +266 -0
- package/dist/lib/e2e/index.d.mts +8 -0
- package/dist/lib/e2e/index.mjs +8 -0
- package/dist/lib/e2e/poll.d.mts +8 -0
- package/dist/lib/e2e/poll.mjs +31 -0
- package/dist/lib/e2e/release.d.mts +56 -0
- package/dist/lib/e2e/release.mjs +559 -0
- package/dist/lib/e2e/retry.d.mts +4 -0
- package/dist/lib/e2e/retry.mjs +16 -0
- package/dist/lib/e2e/setup.d.mts +2 -0
- package/dist/lib/e2e/setup.mjs +1 -0
- package/dist/lib/e2e/tarball.d.mts +14 -0
- package/dist/lib/e2e/tarball.mjs +99 -0
- package/dist/lib/e2e/testHarness.d.mts +126 -0
- package/dist/lib/e2e/testHarness.mjs +418 -0
- package/dist/lib/e2e/types.d.mts +32 -0
- package/dist/lib/getShortName.mjs +6 -1
- package/dist/lib/getShortName.test.d.mts +1 -0
- package/dist/lib/getShortName.test.mjs +25 -0
- package/dist/lib/hasPkgScript.d.mts +4 -1
- package/dist/lib/hasPkgScript.mjs +9 -6
- package/dist/lib/hasPkgScript.test.d.mts +1 -0
- package/dist/lib/hasPkgScript.test.mjs +33 -0
- package/dist/lib/jsonUtils.mjs +3 -0
- package/dist/lib/jsonUtils.test.d.mts +1 -0
- package/dist/lib/jsonUtils.test.mjs +90 -0
- package/dist/lib/normalizeModulePath.d.mts +5 -0
- package/dist/lib/normalizeModulePath.mjs +1 -1
- package/dist/lib/normalizeModulePath.test.d.mts +1 -0
- package/dist/lib/{normalizeModulePath.test.js → normalizeModulePath.test.mjs} +20 -1
- package/dist/lib/smokeTests/browser.mjs +3 -94
- package/dist/lib/smokeTests/development.mjs +2 -223
- package/dist/lib/smokeTests/environment.d.mts +4 -11
- package/dist/lib/smokeTests/environment.mjs +10 -158
- package/dist/lib/smokeTests/release.d.mts +2 -49
- package/dist/lib/smokeTests/release.mjs +3 -503
- package/dist/runtime/lib/injectHtmlAtMarker.d.ts +11 -0
- package/dist/runtime/lib/injectHtmlAtMarker.js +90 -0
- package/dist/runtime/lib/memoizeOnId.test.d.ts +1 -0
- package/dist/runtime/lib/memoizeOnId.test.js +49 -0
- package/dist/runtime/lib/realtime/protocol.test.d.ts +1 -0
- package/dist/runtime/lib/realtime/protocol.test.js +107 -0
- package/dist/runtime/lib/realtime/shared.test.d.ts +1 -0
- package/dist/runtime/lib/realtime/shared.test.js +18 -0
- package/dist/runtime/lib/realtime/validateUpgradeRequest.test.d.ts +1 -0
- package/dist/runtime/lib/realtime/validateUpgradeRequest.test.js +66 -0
- package/dist/runtime/lib/realtime/worker.d.ts +1 -1
- package/dist/runtime/lib/router.js +40 -22
- package/dist/runtime/lib/router.test.js +591 -2
- package/dist/runtime/lib/rwContext.d.ts +22 -0
- package/dist/runtime/lib/rwContext.js +1 -0
- package/dist/runtime/lib/turnstile/verifyTurnstileToken.d.ts +2 -1
- package/dist/runtime/lib/turnstile/verifyTurnstileToken.js +6 -6
- package/dist/runtime/lib/turnstile/verifyTurnstileToken.test.d.ts +1 -0
- package/dist/runtime/lib/turnstile/verifyTurnstileToken.test.js +49 -0
- package/dist/runtime/register/worker.d.ts +1 -1
- package/dist/runtime/register/worker.js +26 -21
- package/dist/runtime/render/assembleDocument.d.ts +6 -0
- package/dist/runtime/render/assembleDocument.js +22 -0
- package/dist/runtime/render/createThenableFromReadableStream.d.ts +1 -0
- package/dist/runtime/render/createThenableFromReadableStream.js +9 -0
- package/dist/runtime/render/normalizeActionResult.d.ts +1 -0
- package/dist/runtime/render/normalizeActionResult.js +43 -0
- package/dist/runtime/render/preloads.d.ts +2 -2
- package/dist/runtime/render/preloads.js +2 -3
- package/dist/runtime/render/{renderRscThenableToHtmlStream.d.ts → renderDocumentHtmlStream.d.ts} +3 -3
- package/dist/runtime/render/renderDocumentHtmlStream.js +39 -0
- package/dist/runtime/render/renderHtmlStream.d.ts +7 -0
- package/dist/runtime/render/renderHtmlStream.js +31 -0
- package/dist/runtime/render/renderToRscStream.d.ts +2 -3
- package/dist/runtime/render/renderToRscStream.js +2 -41
- package/dist/runtime/render/renderToStream.d.ts +2 -1
- package/dist/runtime/render/renderToStream.js +15 -8
- package/dist/runtime/render/stylesheets.d.ts +2 -2
- package/dist/runtime/render/stylesheets.js +2 -3
- package/dist/runtime/ssrBridge.d.ts +2 -1
- package/dist/runtime/ssrBridge.js +2 -1
- package/dist/runtime/worker.d.ts +1 -0
- package/dist/runtime/worker.js +11 -6
- package/dist/scripts/debug-sync.mjs +102 -133
- package/dist/vite/buildApp.d.mts +2 -1
- package/dist/vite/buildApp.mjs +9 -5
- package/dist/vite/checkIsUsingPrisma.d.mts +4 -0
- package/dist/vite/checkIsUsingPrisma.mjs +2 -2
- package/dist/vite/checkIsUsingPrisma.test.d.mts +1 -0
- package/dist/vite/checkIsUsingPrisma.test.mjs +30 -0
- package/dist/vite/configPlugin.mjs +35 -14
- package/dist/vite/createDirectiveLookupPlugin.d.mts +9 -0
- package/dist/vite/createDirectiveLookupPlugin.mjs +33 -29
- package/dist/vite/createDirectiveLookupPlugin.test.d.mts +1 -0
- package/dist/vite/createDirectiveLookupPlugin.test.mjs +40 -0
- package/dist/vite/directiveModulesDevPlugin.d.mts +4 -1
- package/dist/vite/directiveModulesDevPlugin.mjs +5 -4
- package/dist/vite/directiveModulesDevPlugin.test.d.mts +1 -0
- package/dist/vite/directiveModulesDevPlugin.test.mjs +59 -0
- package/dist/vite/directivesPlugin.d.mts +1 -0
- package/dist/vite/directivesPlugin.mjs +1 -1
- package/dist/vite/directivesPlugin.test.d.mts +1 -0
- package/dist/vite/directivesPlugin.test.mjs +24 -0
- package/dist/vite/ensureAliasArray.test.d.mts +1 -0
- package/dist/vite/ensureAliasArray.test.mjs +71 -0
- package/dist/vite/findSpecifiers.mjs +2 -1
- package/dist/vite/findSpecifiers.test.d.mts +1 -0
- package/dist/vite/findSpecifiers.test.mjs +202 -0
- package/dist/vite/findSsrSpecifiers.test.d.mts +1 -0
- package/dist/vite/findSsrSpecifiers.test.mjs +99 -0
- package/dist/vite/hasDirective.d.mts +6 -3
- package/dist/vite/hasDirective.mjs +43 -27
- package/dist/vite/hasDirective.test.d.mts +1 -0
- package/dist/vite/hasDirective.test.mjs +107 -0
- package/dist/vite/isJsFile.test.d.mts +1 -0
- package/dist/vite/isJsFile.test.mjs +38 -0
- package/dist/vite/{reactConditionsResolverPlugin.d.mts → knownDepsResolverPlugin.d.mts} +2 -2
- package/dist/vite/{reactConditionsResolverPlugin.mjs → knownDepsResolverPlugin.mjs} +28 -23
- package/dist/vite/linkerPlugin.d.mts +8 -0
- package/dist/vite/linkerPlugin.mjs +30 -22
- package/dist/vite/linkerPlugin.test.d.mts +1 -0
- package/dist/vite/linkerPlugin.test.mjs +41 -0
- package/dist/vite/miniflareHMRPlugin.d.mts +5 -0
- package/dist/vite/miniflareHMRPlugin.mjs +2 -2
- package/dist/vite/miniflareHMRPlugin.test.d.mts +1 -0
- package/dist/vite/miniflareHMRPlugin.test.mjs +42 -0
- package/dist/vite/redwoodPlugin.d.mts +9 -0
- package/dist/vite/redwoodPlugin.mjs +29 -5
- package/dist/vite/redwoodPlugin.test.d.mts +1 -0
- package/dist/vite/redwoodPlugin.test.mjs +34 -0
- package/dist/vite/resolveForcedPaths.d.mts +4 -0
- package/dist/vite/resolveForcedPaths.mjs +9 -0
- package/dist/vite/runDirectivesScan.d.mts +21 -1
- package/dist/vite/runDirectivesScan.mjs +67 -52
- package/dist/vite/runDirectivesScan.test.d.mts +1 -0
- package/dist/vite/runDirectivesScan.test.mjs +73 -0
- package/dist/vite/ssrBridgePlugin.mjs +8 -1
- package/dist/vite/transformClientComponents.mjs +6 -4
- package/dist/vite/transformClientComponents.test.mjs +116 -58
- package/dist/vite/transformServerFunctions.d.mts +1 -1
- package/dist/vite/transformServerFunctions.mjs +1 -1
- package/dist/vite/transformServerFunctions.test.mjs +3 -3
- package/package.json +12 -4
- package/dist/runtime/render/renderRscThenableToHtmlStream.js +0 -54
- package/dist/runtime/render/transformRscToHtmlStream.d.ts +0 -8
- package/dist/runtime/render/transformRscToHtmlStream.js +0 -19
- /package/dist/lib/{normalizeModulePath.test.d.ts → e2e/types.mjs} +0 -0
|
@@ -85,7 +85,7 @@ function hasDefaultExport(code, normalizedId) {
|
|
|
85
85
|
return false;
|
|
86
86
|
}
|
|
87
87
|
export const transformServerFunctions = (code, normalizedId, environment, serverFiles) => {
|
|
88
|
-
if (!hasDirective(code, "use server")) {
|
|
88
|
+
if (!serverFiles.has(normalizedId) && !hasDirective(code, "use server")) {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
91
|
process.env.VERBOSE &&
|
|
@@ -107,15 +107,15 @@ export * from './utils';
|
|
|
107
107
|
for (const [key, CODE] of Object.entries(TEST_CASES)) {
|
|
108
108
|
describe(key, () => {
|
|
109
109
|
it(`CLIENT`, () => {
|
|
110
|
-
const result = transformServerFunctions(CODE, "/test.tsx", "client");
|
|
110
|
+
const result = transformServerFunctions(CODE, "/test.tsx", "client", new Set());
|
|
111
111
|
expect(result?.code).toMatchSnapshot();
|
|
112
112
|
});
|
|
113
113
|
it(`WORKER`, () => {
|
|
114
|
-
const result = transformServerFunctions(CODE, "/test.tsx", "worker");
|
|
114
|
+
const result = transformServerFunctions(CODE, "/test.tsx", "worker", new Set());
|
|
115
115
|
expect(result?.code).toMatchSnapshot();
|
|
116
116
|
});
|
|
117
117
|
it(`SSR`, () => {
|
|
118
|
-
const result = transformServerFunctions(CODE, "/test.tsx", "ssr");
|
|
118
|
+
const result = transformServerFunctions(CODE, "/test.tsx", "ssr", new Set());
|
|
119
119
|
expect(result?.code).toMatchSnapshot();
|
|
120
120
|
});
|
|
121
121
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rwsdk",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.11",
|
|
4
4
|
"description": "Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -59,6 +59,14 @@
|
|
|
59
59
|
"types": "./dist/runtime/entries/auth.d.ts",
|
|
60
60
|
"default": "./dist/runtime/entries/auth.js"
|
|
61
61
|
},
|
|
62
|
+
"./e2e": {
|
|
63
|
+
"types": "./dist/lib/e2e/index.d.mts",
|
|
64
|
+
"default": "./dist/lib/e2e/index.mjs"
|
|
65
|
+
},
|
|
66
|
+
"./e2e/setup": {
|
|
67
|
+
"types": "./dist/lib/e2e/setup.d.mts",
|
|
68
|
+
"default": "./dist/lib/e2e/setup.mjs"
|
|
69
|
+
},
|
|
62
70
|
"./db": {
|
|
63
71
|
"types": "./dist/runtime/lib/db/index.d.ts",
|
|
64
72
|
"default": "./dist/runtime/lib/db/index.js"
|
|
@@ -159,9 +167,9 @@
|
|
|
159
167
|
},
|
|
160
168
|
"peerDependencies": {
|
|
161
169
|
"@cloudflare/vite-plugin": "^1.12.4",
|
|
162
|
-
"react": "19.2.0-canary-3fb190f7-20250908",
|
|
163
|
-
"react-dom": "19.2.0-canary-3fb190f7-20250908",
|
|
164
|
-
"react-server-dom-webpack": "19.2.0-canary-3fb190f7-20250908",
|
|
170
|
+
"react": ">=19.2.0-canary-3fb190f7-20250908 <20.0.0",
|
|
171
|
+
"react-dom": ">=19.2.0-canary-3fb190f7-20250908 <20.0.0",
|
|
172
|
+
"react-server-dom-webpack": ">=19.2.0-canary-3fb190f7-20250908 <20.0.0",
|
|
165
173
|
"vite": "^6.2.6 || 7.x",
|
|
166
174
|
"wrangler": "^4.35.0"
|
|
167
175
|
},
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { use } from "react";
|
|
3
|
-
import { renderToReadableStream } from "react-dom/server.edge";
|
|
4
|
-
import { Preloads } from "./preloads.js";
|
|
5
|
-
import { Stylesheets } from "./stylesheets.js";
|
|
6
|
-
export const renderRscThenableToHtmlStream = async ({ thenable, Document, requestInfo, shouldSSR, onError, }) => {
|
|
7
|
-
const Component = () => {
|
|
8
|
-
const RscApp = () => {
|
|
9
|
-
const node = use(thenable).node;
|
|
10
|
-
return (_jsxs(_Fragment, { children: [_jsx(Stylesheets, { requestInfo: requestInfo }), _jsx(Preloads, { requestInfo: requestInfo }), _jsx("div", { id: "hydrate-root", children: node })] }));
|
|
11
|
-
};
|
|
12
|
-
// todo(justinvdm, 18 Jun 2025): We can build on this later to allow users
|
|
13
|
-
// surface context. e.g:
|
|
14
|
-
// * we assign `user: requestInfo.clientCtx` here
|
|
15
|
-
// * user populates requestInfo.clientCtx on worker side
|
|
16
|
-
// * user can import a read only `import { clientCtx } from "rwsdk/client"`
|
|
17
|
-
// on client side
|
|
18
|
-
const clientContext = {
|
|
19
|
-
rw: {
|
|
20
|
-
ssr: shouldSSR,
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
return (_jsxs(Document, { ...requestInfo, children: [_jsx("script", { nonce: requestInfo.rw.nonce, dangerouslySetInnerHTML: {
|
|
24
|
-
__html: `globalThis.__RWSDK_CONTEXT = ${JSON.stringify(clientContext)}`,
|
|
25
|
-
} }), _jsx(RscApp, {})] }));
|
|
26
|
-
};
|
|
27
|
-
return await renderToReadableStream(_jsx(Component, {}), {
|
|
28
|
-
nonce: requestInfo.rw.nonce,
|
|
29
|
-
onError(error, { componentStack }) {
|
|
30
|
-
try {
|
|
31
|
-
if (!error) {
|
|
32
|
-
error = new Error(`A falsy value was thrown during rendering: ${String(error)}.`);
|
|
33
|
-
}
|
|
34
|
-
const message = error
|
|
35
|
-
? (error.stack ?? error.message ?? error)
|
|
36
|
-
: error;
|
|
37
|
-
const wrappedMessage = `${message}\n\nComponent stack:${componentStack}`;
|
|
38
|
-
if (error instanceof Error) {
|
|
39
|
-
const wrappedError = new Error(wrappedMessage);
|
|
40
|
-
wrappedError.stack = error.stack;
|
|
41
|
-
error = wrappedError;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
error = new Error(wrappedMessage);
|
|
45
|
-
error.stack = componentStack;
|
|
46
|
-
}
|
|
47
|
-
onError(error);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
onError(error);
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { DocumentProps } from "../lib/router";
|
|
2
|
-
import { RequestInfo } from "../requestInfo/types";
|
|
3
|
-
export declare const transformRscToHtmlStream: ({ stream, Document, requestInfo, onError, }: {
|
|
4
|
-
stream: ReadableStream;
|
|
5
|
-
Document: React.FC<DocumentProps>;
|
|
6
|
-
requestInfo: RequestInfo;
|
|
7
|
-
onError: (error: unknown) => void;
|
|
8
|
-
}) => Promise<import("react-dom/server.js").ReactDOMServerReadableStream>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { createModuleMap } from "./createModuleMap.js";
|
|
2
|
-
import ReactServerDom from "react-server-dom-webpack/client.edge";
|
|
3
|
-
import { renderRscThenableToHtmlStream } from "rwsdk/__ssr_bridge";
|
|
4
|
-
const { createFromReadableStream } = ReactServerDom;
|
|
5
|
-
export const transformRscToHtmlStream = ({ stream, Document, requestInfo, onError, }) => {
|
|
6
|
-
const thenable = createFromReadableStream(stream, {
|
|
7
|
-
serverConsumerManifest: {
|
|
8
|
-
moduleMap: createModuleMap(),
|
|
9
|
-
moduleLoading: null,
|
|
10
|
-
},
|
|
11
|
-
});
|
|
12
|
-
return renderRscThenableToHtmlStream({
|
|
13
|
-
thenable,
|
|
14
|
-
Document,
|
|
15
|
-
requestInfo,
|
|
16
|
-
shouldSSR: requestInfo.rw.ssr,
|
|
17
|
-
onError,
|
|
18
|
-
});
|
|
19
|
-
};
|
|
File without changes
|