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.
Files changed (148) hide show
  1. package/dist/lib/e2e/browser.d.mts +10 -0
  2. package/dist/lib/e2e/browser.mjs +124 -0
  3. package/dist/lib/e2e/dev.d.mts +8 -0
  4. package/dist/lib/e2e/dev.mjs +242 -0
  5. package/dist/lib/e2e/environment.d.mts +14 -0
  6. package/dist/lib/e2e/environment.mjs +266 -0
  7. package/dist/lib/e2e/index.d.mts +8 -0
  8. package/dist/lib/e2e/index.mjs +8 -0
  9. package/dist/lib/e2e/poll.d.mts +8 -0
  10. package/dist/lib/e2e/poll.mjs +31 -0
  11. package/dist/lib/e2e/release.d.mts +56 -0
  12. package/dist/lib/e2e/release.mjs +559 -0
  13. package/dist/lib/e2e/retry.d.mts +4 -0
  14. package/dist/lib/e2e/retry.mjs +16 -0
  15. package/dist/lib/e2e/setup.d.mts +2 -0
  16. package/dist/lib/e2e/setup.mjs +1 -0
  17. package/dist/lib/e2e/tarball.d.mts +14 -0
  18. package/dist/lib/e2e/tarball.mjs +99 -0
  19. package/dist/lib/e2e/testHarness.d.mts +126 -0
  20. package/dist/lib/e2e/testHarness.mjs +418 -0
  21. package/dist/lib/e2e/types.d.mts +32 -0
  22. package/dist/lib/getShortName.mjs +6 -1
  23. package/dist/lib/getShortName.test.d.mts +1 -0
  24. package/dist/lib/getShortName.test.mjs +25 -0
  25. package/dist/lib/hasPkgScript.d.mts +4 -1
  26. package/dist/lib/hasPkgScript.mjs +9 -6
  27. package/dist/lib/hasPkgScript.test.d.mts +1 -0
  28. package/dist/lib/hasPkgScript.test.mjs +33 -0
  29. package/dist/lib/jsonUtils.mjs +3 -0
  30. package/dist/lib/jsonUtils.test.d.mts +1 -0
  31. package/dist/lib/jsonUtils.test.mjs +90 -0
  32. package/dist/lib/normalizeModulePath.d.mts +5 -0
  33. package/dist/lib/normalizeModulePath.mjs +1 -1
  34. package/dist/lib/normalizeModulePath.test.d.mts +1 -0
  35. package/dist/lib/{normalizeModulePath.test.js → normalizeModulePath.test.mjs} +20 -1
  36. package/dist/lib/smokeTests/browser.mjs +3 -94
  37. package/dist/lib/smokeTests/development.mjs +2 -223
  38. package/dist/lib/smokeTests/environment.d.mts +4 -11
  39. package/dist/lib/smokeTests/environment.mjs +10 -158
  40. package/dist/lib/smokeTests/release.d.mts +2 -49
  41. package/dist/lib/smokeTests/release.mjs +3 -503
  42. package/dist/runtime/lib/injectHtmlAtMarker.d.ts +11 -0
  43. package/dist/runtime/lib/injectHtmlAtMarker.js +90 -0
  44. package/dist/runtime/lib/memoizeOnId.test.d.ts +1 -0
  45. package/dist/runtime/lib/memoizeOnId.test.js +49 -0
  46. package/dist/runtime/lib/realtime/protocol.test.d.ts +1 -0
  47. package/dist/runtime/lib/realtime/protocol.test.js +107 -0
  48. package/dist/runtime/lib/realtime/shared.test.d.ts +1 -0
  49. package/dist/runtime/lib/realtime/shared.test.js +18 -0
  50. package/dist/runtime/lib/realtime/validateUpgradeRequest.test.d.ts +1 -0
  51. package/dist/runtime/lib/realtime/validateUpgradeRequest.test.js +66 -0
  52. package/dist/runtime/lib/realtime/worker.d.ts +1 -1
  53. package/dist/runtime/lib/router.js +40 -22
  54. package/dist/runtime/lib/router.test.js +591 -2
  55. package/dist/runtime/lib/rwContext.d.ts +22 -0
  56. package/dist/runtime/lib/rwContext.js +1 -0
  57. package/dist/runtime/lib/turnstile/verifyTurnstileToken.d.ts +2 -1
  58. package/dist/runtime/lib/turnstile/verifyTurnstileToken.js +6 -6
  59. package/dist/runtime/lib/turnstile/verifyTurnstileToken.test.d.ts +1 -0
  60. package/dist/runtime/lib/turnstile/verifyTurnstileToken.test.js +49 -0
  61. package/dist/runtime/register/worker.d.ts +1 -1
  62. package/dist/runtime/register/worker.js +26 -21
  63. package/dist/runtime/render/assembleDocument.d.ts +6 -0
  64. package/dist/runtime/render/assembleDocument.js +22 -0
  65. package/dist/runtime/render/createThenableFromReadableStream.d.ts +1 -0
  66. package/dist/runtime/render/createThenableFromReadableStream.js +9 -0
  67. package/dist/runtime/render/normalizeActionResult.d.ts +1 -0
  68. package/dist/runtime/render/normalizeActionResult.js +43 -0
  69. package/dist/runtime/render/preloads.d.ts +2 -2
  70. package/dist/runtime/render/preloads.js +2 -3
  71. package/dist/runtime/render/{renderRscThenableToHtmlStream.d.ts → renderDocumentHtmlStream.d.ts} +3 -3
  72. package/dist/runtime/render/renderDocumentHtmlStream.js +39 -0
  73. package/dist/runtime/render/renderHtmlStream.d.ts +7 -0
  74. package/dist/runtime/render/renderHtmlStream.js +31 -0
  75. package/dist/runtime/render/renderToRscStream.d.ts +2 -3
  76. package/dist/runtime/render/renderToRscStream.js +2 -41
  77. package/dist/runtime/render/renderToStream.d.ts +2 -1
  78. package/dist/runtime/render/renderToStream.js +15 -8
  79. package/dist/runtime/render/stylesheets.d.ts +2 -2
  80. package/dist/runtime/render/stylesheets.js +2 -3
  81. package/dist/runtime/ssrBridge.d.ts +2 -1
  82. package/dist/runtime/ssrBridge.js +2 -1
  83. package/dist/runtime/worker.d.ts +1 -0
  84. package/dist/runtime/worker.js +11 -6
  85. package/dist/scripts/debug-sync.mjs +102 -133
  86. package/dist/vite/buildApp.d.mts +2 -1
  87. package/dist/vite/buildApp.mjs +9 -5
  88. package/dist/vite/checkIsUsingPrisma.d.mts +4 -0
  89. package/dist/vite/checkIsUsingPrisma.mjs +2 -2
  90. package/dist/vite/checkIsUsingPrisma.test.d.mts +1 -0
  91. package/dist/vite/checkIsUsingPrisma.test.mjs +30 -0
  92. package/dist/vite/configPlugin.mjs +35 -14
  93. package/dist/vite/createDirectiveLookupPlugin.d.mts +9 -0
  94. package/dist/vite/createDirectiveLookupPlugin.mjs +33 -29
  95. package/dist/vite/createDirectiveLookupPlugin.test.d.mts +1 -0
  96. package/dist/vite/createDirectiveLookupPlugin.test.mjs +40 -0
  97. package/dist/vite/directiveModulesDevPlugin.d.mts +4 -1
  98. package/dist/vite/directiveModulesDevPlugin.mjs +5 -4
  99. package/dist/vite/directiveModulesDevPlugin.test.d.mts +1 -0
  100. package/dist/vite/directiveModulesDevPlugin.test.mjs +59 -0
  101. package/dist/vite/directivesPlugin.d.mts +1 -0
  102. package/dist/vite/directivesPlugin.mjs +1 -1
  103. package/dist/vite/directivesPlugin.test.d.mts +1 -0
  104. package/dist/vite/directivesPlugin.test.mjs +24 -0
  105. package/dist/vite/ensureAliasArray.test.d.mts +1 -0
  106. package/dist/vite/ensureAliasArray.test.mjs +71 -0
  107. package/dist/vite/findSpecifiers.mjs +2 -1
  108. package/dist/vite/findSpecifiers.test.d.mts +1 -0
  109. package/dist/vite/findSpecifiers.test.mjs +202 -0
  110. package/dist/vite/findSsrSpecifiers.test.d.mts +1 -0
  111. package/dist/vite/findSsrSpecifiers.test.mjs +99 -0
  112. package/dist/vite/hasDirective.d.mts +6 -3
  113. package/dist/vite/hasDirective.mjs +43 -27
  114. package/dist/vite/hasDirective.test.d.mts +1 -0
  115. package/dist/vite/hasDirective.test.mjs +107 -0
  116. package/dist/vite/isJsFile.test.d.mts +1 -0
  117. package/dist/vite/isJsFile.test.mjs +38 -0
  118. package/dist/vite/{reactConditionsResolverPlugin.d.mts → knownDepsResolverPlugin.d.mts} +2 -2
  119. package/dist/vite/{reactConditionsResolverPlugin.mjs → knownDepsResolverPlugin.mjs} +28 -23
  120. package/dist/vite/linkerPlugin.d.mts +8 -0
  121. package/dist/vite/linkerPlugin.mjs +30 -22
  122. package/dist/vite/linkerPlugin.test.d.mts +1 -0
  123. package/dist/vite/linkerPlugin.test.mjs +41 -0
  124. package/dist/vite/miniflareHMRPlugin.d.mts +5 -0
  125. package/dist/vite/miniflareHMRPlugin.mjs +2 -2
  126. package/dist/vite/miniflareHMRPlugin.test.d.mts +1 -0
  127. package/dist/vite/miniflareHMRPlugin.test.mjs +42 -0
  128. package/dist/vite/redwoodPlugin.d.mts +9 -0
  129. package/dist/vite/redwoodPlugin.mjs +29 -5
  130. package/dist/vite/redwoodPlugin.test.d.mts +1 -0
  131. package/dist/vite/redwoodPlugin.test.mjs +34 -0
  132. package/dist/vite/resolveForcedPaths.d.mts +4 -0
  133. package/dist/vite/resolveForcedPaths.mjs +9 -0
  134. package/dist/vite/runDirectivesScan.d.mts +21 -1
  135. package/dist/vite/runDirectivesScan.mjs +67 -52
  136. package/dist/vite/runDirectivesScan.test.d.mts +1 -0
  137. package/dist/vite/runDirectivesScan.test.mjs +73 -0
  138. package/dist/vite/ssrBridgePlugin.mjs +8 -1
  139. package/dist/vite/transformClientComponents.mjs +6 -4
  140. package/dist/vite/transformClientComponents.test.mjs +116 -58
  141. package/dist/vite/transformServerFunctions.d.mts +1 -1
  142. package/dist/vite/transformServerFunctions.mjs +1 -1
  143. package/dist/vite/transformServerFunctions.test.mjs +3 -3
  144. package/package.json +12 -4
  145. package/dist/runtime/render/renderRscThenableToHtmlStream.js +0 -54
  146. package/dist/runtime/render/transformRscToHtmlStream.d.ts +0 -8
  147. package/dist/runtime/render/transformRscToHtmlStream.js +0 -19
  148. /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.1-test.20250911154541",
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
- };