rwsdk 1.0.0-alpha.6 → 1.0.0-alpha.8

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 (56) hide show
  1. package/dist/lib/e2e/browser.d.mts +10 -0
  2. package/dist/lib/e2e/browser.mjs +107 -0
  3. package/dist/lib/e2e/dev.d.mts +8 -0
  4. package/dist/lib/e2e/dev.mjs +232 -0
  5. package/dist/lib/e2e/environment.d.mts +14 -0
  6. package/dist/lib/e2e/environment.mjs +201 -0
  7. package/dist/lib/e2e/index.d.mts +7 -0
  8. package/dist/lib/e2e/index.mjs +7 -0
  9. package/dist/lib/e2e/release.d.mts +56 -0
  10. package/dist/lib/e2e/release.mjs +537 -0
  11. package/dist/lib/e2e/tarball.d.mts +14 -0
  12. package/dist/lib/e2e/tarball.mjs +189 -0
  13. package/dist/lib/e2e/testHarness.d.mts +98 -0
  14. package/dist/lib/e2e/testHarness.mjs +393 -0
  15. package/dist/lib/e2e/types.d.mts +31 -0
  16. package/dist/lib/e2e/types.mjs +1 -0
  17. package/dist/lib/smokeTests/browser.mjs +3 -94
  18. package/dist/lib/smokeTests/development.mjs +2 -223
  19. package/dist/lib/smokeTests/environment.d.mts +4 -11
  20. package/dist/lib/smokeTests/environment.mjs +10 -158
  21. package/dist/lib/smokeTests/release.d.mts +2 -49
  22. package/dist/lib/smokeTests/release.mjs +3 -503
  23. package/dist/runtime/lib/injectHtmlAtMarker.d.ts +11 -0
  24. package/dist/runtime/lib/injectHtmlAtMarker.js +90 -0
  25. package/dist/runtime/lib/realtime/worker.d.ts +1 -1
  26. package/dist/runtime/lib/router.js +8 -2
  27. package/dist/runtime/lib/router.test.js +85 -1
  28. package/dist/runtime/lib/rwContext.d.ts +22 -0
  29. package/dist/runtime/lib/rwContext.js +1 -0
  30. package/dist/runtime/render/assembleDocument.d.ts +6 -0
  31. package/dist/runtime/render/assembleDocument.js +22 -0
  32. package/dist/runtime/render/createThenableFromReadableStream.d.ts +1 -0
  33. package/dist/runtime/render/createThenableFromReadableStream.js +9 -0
  34. package/dist/runtime/render/normalizeActionResult.d.ts +1 -0
  35. package/dist/runtime/render/normalizeActionResult.js +43 -0
  36. package/dist/runtime/render/preloads.d.ts +2 -2
  37. package/dist/runtime/render/preloads.js +2 -3
  38. package/dist/runtime/render/{renderRscThenableToHtmlStream.d.ts → renderDocumentHtmlStream.d.ts} +3 -3
  39. package/dist/runtime/render/renderDocumentHtmlStream.js +39 -0
  40. package/dist/runtime/render/renderHtmlStream.d.ts +7 -0
  41. package/dist/runtime/render/renderHtmlStream.js +31 -0
  42. package/dist/runtime/render/renderToRscStream.d.ts +2 -3
  43. package/dist/runtime/render/renderToRscStream.js +2 -41
  44. package/dist/runtime/render/renderToStream.d.ts +2 -1
  45. package/dist/runtime/render/renderToStream.js +15 -8
  46. package/dist/runtime/render/stylesheets.d.ts +2 -2
  47. package/dist/runtime/render/stylesheets.js +2 -3
  48. package/dist/runtime/ssrBridge.d.ts +2 -1
  49. package/dist/runtime/ssrBridge.js +2 -1
  50. package/dist/runtime/worker.d.ts +1 -0
  51. package/dist/runtime/worker.js +11 -6
  52. package/dist/vite/configPlugin.mjs +2 -2
  53. package/package.json +8 -4
  54. package/dist/runtime/render/renderRscThenableToHtmlStream.js +0 -54
  55. package/dist/runtime/render/transformRscToHtmlStream.d.ts +0 -8
  56. package/dist/runtime/render/transformRscToHtmlStream.js +0 -19
@@ -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
- };