vite-plugin-react-server 1.4.0 → 1.4.2

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 (84) hide show
  1. package/README.md +4 -4
  2. package/dist/package.json +1 -1
  3. package/dist/plugin/dev-server/configureReactServer.client.js +1 -1
  4. package/dist/plugin/dev-server/configureReactServer.server.d.ts.map +1 -1
  5. package/dist/plugin/dev-server/configureReactServer.server.js +5 -8
  6. package/dist/plugin/dev-server/plugin.client.d.ts.map +1 -1
  7. package/dist/plugin/dev-server/plugin.client.js +7 -14
  8. package/dist/plugin/dev-server/plugin.server.d.ts.map +1 -1
  9. package/dist/plugin/dev-server/plugin.server.js +2 -36
  10. package/dist/plugin/error/index.d.ts +1 -2
  11. package/dist/plugin/error/index.d.ts.map +1 -1
  12. package/dist/plugin/error/index.js +2 -3
  13. package/dist/plugin/error/panicThresholdHandler.js +14 -3
  14. package/dist/plugin/error/setupGlobalErrorHandler.d.ts.map +1 -1
  15. package/dist/plugin/error/setupGlobalErrorHandler.js +23 -16
  16. package/dist/plugin/helpers/createRscRenderHelpers.d.ts +0 -5
  17. package/dist/plugin/helpers/createRscRenderHelpers.d.ts.map +1 -1
  18. package/dist/plugin/helpers/createRscRenderHelpers.js +0 -22
  19. package/dist/plugin/helpers/headlessStreamState.d.ts +0 -38
  20. package/dist/plugin/helpers/headlessStreamState.d.ts.map +1 -1
  21. package/dist/plugin/helpers/headlessStreamState.js +0 -48
  22. package/dist/plugin/helpers/index.d.ts +0 -3
  23. package/dist/plugin/helpers/index.d.ts.map +1 -1
  24. package/dist/plugin/helpers/index.js +1 -4
  25. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  26. package/dist/plugin/helpers/requestInfo.js +5 -4
  27. package/dist/plugin/helpers/requestToRoute.d.ts.map +1 -1
  28. package/dist/plugin/helpers/requestToRoute.js +2 -2
  29. package/dist/plugin/helpers/workerCleanup.d.ts +1 -12
  30. package/dist/plugin/helpers/workerCleanup.d.ts.map +1 -1
  31. package/dist/plugin/helpers/workerCleanup.js +1 -1
  32. package/dist/plugin/loader/directives/index.d.ts +0 -1
  33. package/dist/plugin/loader/directives/index.d.ts.map +1 -1
  34. package/dist/plugin/loader/directives/index.js +1 -2
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +1 -1
  37. package/plugin/dev-server/configureReactServer.client.ts +1 -1
  38. package/plugin/dev-server/configureReactServer.server.ts +7 -10
  39. package/plugin/dev-server/plugin.client.ts +14 -20
  40. package/plugin/dev-server/plugin.server.ts +2 -49
  41. package/plugin/error/index.ts +1 -2
  42. package/plugin/error/setupGlobalErrorHandler.ts +24 -25
  43. package/plugin/helpers/createRscRenderHelpers.ts +0 -29
  44. package/plugin/helpers/headlessStreamState.ts +0 -69
  45. package/plugin/helpers/index.ts +0 -3
  46. package/plugin/helpers/requestInfo.ts +6 -4
  47. package/plugin/helpers/requestToRoute.ts +3 -2
  48. package/plugin/helpers/workerCleanup.ts +1 -38
  49. package/plugin/loader/directives/index.ts +0 -1
  50. package/plugin/transformer/README.md +1 -1
  51. package/plugin/worker/html/README.md +1 -1
  52. package/plugin/worker/rsc/README.md +1 -1
  53. package/dist/plugin/error/assertPanic.d.ts +0 -2
  54. package/dist/plugin/error/assertPanic.d.ts.map +0 -1
  55. package/dist/plugin/error/assertPanic.js +0 -15
  56. package/dist/plugin/error/directiveError.d.ts +0 -13
  57. package/dist/plugin/error/directiveError.d.ts.map +0 -1
  58. package/dist/plugin/error/directiveError.js +0 -21
  59. package/dist/plugin/error/enhanceError.d.ts +0 -14
  60. package/dist/plugin/error/enhanceError.d.ts.map +0 -1
  61. package/dist/plugin/error/enhanceError.js +0 -24
  62. package/dist/plugin/helpers/createSafePageComponent.d.ts +0 -36
  63. package/dist/plugin/helpers/createSafePageComponent.d.ts.map +0 -1
  64. package/dist/plugin/helpers/createSafePageComponent.js +0 -50
  65. package/dist/plugin/helpers/moduleResolver.d.ts +0 -25
  66. package/dist/plugin/helpers/moduleResolver.d.ts.map +0 -1
  67. package/dist/plugin/helpers/moduleResolver.js +0 -64
  68. package/dist/plugin/helpers/stashReturnValue.d.ts +0 -3
  69. package/dist/plugin/helpers/stashReturnValue.d.ts.map +0 -1
  70. package/dist/plugin/helpers/stashReturnValue.js +0 -23
  71. package/dist/plugin/helpers/workerManager.d.ts +0 -5
  72. package/dist/plugin/helpers/workerManager.d.ts.map +0 -1
  73. package/dist/plugin/helpers/workerManager.js +0 -18
  74. package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +0 -6
  75. package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +0 -1
  76. package/dist/plugin/loader/directives/collectExportsFromModule.js +0 -24
  77. package/plugin/error/assertPanic.ts +0 -9
  78. package/plugin/error/directiveError.ts +0 -29
  79. package/plugin/error/enhanceError.ts +0 -41
  80. package/plugin/helpers/createSafePageComponent.ts +0 -64
  81. package/plugin/helpers/moduleResolver.ts +0 -91
  82. package/plugin/helpers/stashReturnValue.ts +0 -19
  83. package/plugin/helpers/workerManager.ts +0 -16
  84. package/plugin/loader/directives/collectExportsFromModule.ts +0 -25
@@ -1,24 +0,0 @@
1
- /**
2
- * vite-plugin-react-server
3
- * Copyright (c) Nico Brinkkemper
4
- * MIT License
5
- */
6
- function enhanceError(originalError, captureStackTraceFunction, context = captureStackTraceFunction.name) {
7
- const baseMessage = typeof originalError === "string" ? originalError : originalError.message;
8
- const contextualError = createContextualError(baseMessage, context, captureStackTraceFunction || enhanceError);
9
- contextualError.cause = originalError;
10
- return contextualError;
11
- }
12
- function createContextualError(message, context = "", captureStackTraceFunction) {
13
- const contextualMessage = context && context !== "" ? `[${context}:error] ${message}` : message;
14
- const error = new Error(contextualMessage);
15
- error.name = "ContextualError";
16
- Error.captureStackTrace(
17
- error,
18
- captureStackTraceFunction || createContextualError
19
- );
20
- return error;
21
- }
22
-
23
- export { createContextualError, enhanceError };
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5oYW5jZUVycm9yLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vZXJyb3IvZW5oYW5jZUVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIG5ldyBlcnJvciB3aXRoIGNvbnRleHQgZnJvbSBhbnkgaW5wdXQuXG4gKiBBbHdheXMgY3JlYXRlcyBhIGZyZXNoIHN0YWNrIHRyYWNlIGFuZCBzZXRzIHRoZSBvcmlnaW5hbCBhcyB0aGUgY2F1c2UuXG4gKiBUaGlzIGlzIHRoZSBwcmVmZXJyZWQgd2F5IHRvIHdyYXAgZXJyb3JzIHdpdGggY29udGV4dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuaGFuY2VFcnJvcihcbiAgb3JpZ2luYWxFcnJvcjogRXJyb3IgfCBzdHJpbmcgfCB7bWVzc2FnZTogc3RyaW5nfSxcbiAgY2FwdHVyZVN0YWNrVHJhY2VGdW5jdGlvbjogRnVuY3Rpb24sXG4gIGNvbnRleHQ6IHN0cmluZyA9IGNhcHR1cmVTdGFja1RyYWNlRnVuY3Rpb24ubmFtZSxcbik6IEVycm9yIHtcbiAgY29uc3QgYmFzZU1lc3NhZ2UgPSB0eXBlb2Ygb3JpZ2luYWxFcnJvciA9PT0gJ3N0cmluZycgPyBvcmlnaW5hbEVycm9yIDogb3JpZ2luYWxFcnJvci5tZXNzYWdlO1xuICBcbiAgY29uc3QgY29udGV4dHVhbEVycm9yID0gY3JlYXRlQ29udGV4dHVhbEVycm9yKGJhc2VNZXNzYWdlLCBjb250ZXh0LCBjYXB0dXJlU3RhY2tUcmFjZUZ1bmN0aW9uIHx8IGVuaGFuY2VFcnJvcik7XG4gIFxuICAvLyBTZXQgdGhlIG9yaWdpbmFsIGFzIHRoZSBjYXVzZSBmb3IgdHJhY2VhYmlsaXR5XG4gIGNvbnRleHR1YWxFcnJvci5jYXVzZSA9IG9yaWdpbmFsRXJyb3I7XG4gIFxuICByZXR1cm4gY29udGV4dHVhbEVycm9yO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgZXJyb3Igd2l0aCBjb250ZXh0IGFuZCBjYXB0dXJlZCBzdGFjayB0cmFjZVxuICogVXNlZnVsIGZvciBjcmVhdGluZyBjb250ZXh0dWFsIGVycm9ycyBhdCBzcGVjaWZpYyBwb2ludHMgaW4gdGhlIGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHR1YWxFcnJvcihcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBjb250ZXh0OiBzdHJpbmcgPSAnJyxcbiAgY2FwdHVyZVN0YWNrVHJhY2VGdW5jdGlvbj86IEZ1bmN0aW9uXG4pOiBFcnJvciB7XG4gIGNvbnN0IGNvbnRleHR1YWxNZXNzYWdlID0gY29udGV4dCAmJiBjb250ZXh0ICE9PSAnJyA/IGBbJHtjb250ZXh0fTplcnJvcl0gJHttZXNzYWdlfWAgOiBtZXNzYWdlO1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihjb250ZXh0dWFsTWVzc2FnZSk7XG4gIGVycm9yLm5hbWUgPSBcIkNvbnRleHR1YWxFcnJvclwiO1xuXG4gIC8vIENhcHR1cmUgc3RhY2sgdHJhY2UgZXhjbHVkaW5nIHRoaXMgZnVuY3Rpb24gKG9yIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb24pXG4gIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKFxuICAgIGVycm9yLFxuICAgIGNhcHR1cmVTdGFja1RyYWNlRnVuY3Rpb24gfHwgY3JlYXRlQ29udGV4dHVhbEVycm9yXG4gICk7XG5cbiAgcmV0dXJuIGVycm9yO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS08sU0FBUyxZQUNkLENBQUEsYUFBQSxFQUNBLHlCQUNBLEVBQUEsT0FBQSxHQUFrQiwwQkFBMEIsSUFDckMsRUFBQTtBQUNQLEVBQUEsTUFBTSxXQUFjLEdBQUEsT0FBTyxhQUFrQixLQUFBLFFBQUEsR0FBVyxnQkFBZ0IsYUFBYyxDQUFBLE9BQUE7QUFFdEYsRUFBQSxNQUFNLGVBQWtCLEdBQUEscUJBQUEsQ0FBc0IsV0FBYSxFQUFBLE9BQUEsRUFBUyw2QkFBNkIsWUFBWSxDQUFBO0FBRzdHLEVBQUEsZUFBQSxDQUFnQixLQUFRLEdBQUEsYUFBQTtBQUV4QixFQUFPLE9BQUEsZUFBQTtBQUNUO0FBTU8sU0FBUyxxQkFDZCxDQUFBLE9BQUEsRUFDQSxPQUFrQixHQUFBLEVBQUEsRUFDbEIseUJBQ08sRUFBQTtBQUNQLEVBQU0sTUFBQSxpQkFBQSxHQUFvQixXQUFXLE9BQVksS0FBQSxFQUFBLEdBQUssSUFBSSxPQUFPLENBQUEsUUFBQSxFQUFXLE9BQU8sQ0FBSyxDQUFBLEdBQUEsT0FBQTtBQUN4RixFQUFNLE1BQUEsS0FBQSxHQUFRLElBQUksS0FBQSxDQUFNLGlCQUFpQixDQUFBO0FBQ3pDLEVBQUEsS0FBQSxDQUFNLElBQU8sR0FBQSxpQkFBQTtBQUdiLEVBQU0sS0FBQSxDQUFBLGlCQUFBO0FBQUEsSUFDSixLQUFBO0FBQUEsSUFDQSx5QkFBNkIsSUFBQTtBQUFBLEdBQy9CO0FBRUEsRUFBTyxPQUFBLEtBQUE7QUFDVDs7OzsifQ==
@@ -1,36 +0,0 @@
1
- /**
2
- * Creates a safe Page component that doesn't throw errors.
3
- * Used when headless streams have errors to prevent errors from reaching the HTML worker.
4
- *
5
- * @param errorMessage - Optional error message to display
6
- * @returns A safe React component that renders a div with error content
7
- */
8
- export declare function createSafePageComponent(errorMessage?: string): () => import("react").DetailedReactHTMLElement<{
9
- id: string;
10
- }, HTMLElement>;
11
- /**
12
- * Creates a fallback Page component using React.Fragment.
13
- * Used by RSC worker for consistent fallback behavior.
14
- *
15
- * @returns React.Fragment as a safe fallback
16
- */
17
- export declare function createFallbackPageComponent(): import("react").ExoticComponent<import("react").FragmentProps>;
18
- /**
19
- * Determines if a Page component should be replaced with a safe fallback.
20
- *
21
- * @param hasHeadlessError - Whether the headless stream had errors
22
- * @param isHeadless - Whether this is a headless stream
23
- * @returns true if a safe fallback should be used
24
- */
25
- export declare function shouldUseSafePageComponent(hasHeadlessError: boolean, isHeadless: boolean): boolean;
26
- /**
27
- * Creates the appropriate Page component based on error state.
28
- *
29
- * @param originalPageComponent - The original Page component
30
- * @param hasHeadlessError - Whether the headless stream had errors
31
- * @param isHeadless - Whether this is a headless stream
32
- * @param useReactFragment - Whether to use React.Fragment (RSC worker style) or div (server style)
33
- * @returns The appropriate Page component to use
34
- */
35
- export declare function createPageComponentWithErrorHandling(originalPageComponent: any, hasHeadlessError: boolean, isHeadless: boolean, useReactFragment?: boolean): any;
36
- //# sourceMappingURL=createSafePageComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSafePageComponent.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createSafePageComponent.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,GAAE,MAA0C;;gBAE/F;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,mEAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,OAAO,GAClB,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,qBAAqB,EAAE,GAAG,EAC1B,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,OAAO,EACnB,gBAAgB,GAAE,OAAe,OAOlC"}
@@ -1,50 +0,0 @@
1
- import { React } from "../vendor/vendor.server.js";
2
- /**
3
- * Creates a safe Page component that doesn't throw errors.
4
- * Used when headless streams have errors to prevent errors from reaching the HTML worker.
5
- *
6
- * @param errorMessage - Optional error message to display
7
- * @returns A safe React component that renders a div with error content
8
- */
9
- export function createSafePageComponent(errorMessage = "Error occurred during rendering") {
10
- return () => React.createElement("div", { id: "root" }, errorMessage);
11
- }
12
- /**
13
- * Creates a fallback Page component using React.Fragment.
14
- * Used by RSC worker for consistent fallback behavior.
15
- *
16
- * @returns React.Fragment as a safe fallback
17
- */
18
- export function createFallbackPageComponent() {
19
- return React.Fragment;
20
- }
21
- /**
22
- * Determines if a Page component should be replaced with a safe fallback.
23
- *
24
- * @param hasHeadlessError - Whether the headless stream had errors
25
- * @param isHeadless - Whether this is a headless stream
26
- * @returns true if a safe fallback should be used
27
- */
28
- export function shouldUseSafePageComponent(hasHeadlessError, isHeadless) {
29
- // For headless streams, never use fallback (let them error naturally)
30
- if (isHeadless) {
31
- return false;
32
- }
33
- // For full streams, use fallback if headless stream had errors
34
- return hasHeadlessError;
35
- }
36
- /**
37
- * Creates the appropriate Page component based on error state.
38
- *
39
- * @param originalPageComponent - The original Page component
40
- * @param hasHeadlessError - Whether the headless stream had errors
41
- * @param isHeadless - Whether this is a headless stream
42
- * @param useReactFragment - Whether to use React.Fragment (RSC worker style) or div (server style)
43
- * @returns The appropriate Page component to use
44
- */
45
- export function createPageComponentWithErrorHandling(originalPageComponent, hasHeadlessError, isHeadless, useReactFragment = false) {
46
- if (shouldUseSafePageComponent(hasHeadlessError, isHeadless)) {
47
- return useReactFragment ? createFallbackPageComponent() : createSafePageComponent();
48
- }
49
- return originalPageComponent;
50
- }
@@ -1,25 +0,0 @@
1
- import type { ResolveHookContext } from "node:module";
2
- type ResolveFunction = (specifier: string, context: ResolveHookContext, nextResolve?: ResolveFunction) => Promise<{
3
- url: string;
4
- shortCircuit: boolean;
5
- }>;
6
- type GetSourceHookContext = {
7
- format: string;
8
- url: string;
9
- };
10
- type GetSourceFunction = (url: string, context: GetSourceHookContext, defaultGetSource: GetSourceFunction) => Promise<{
11
- source: string | ArrayBuffer | SharedArrayBuffer | Uint8Array;
12
- }>;
13
- export declare function setStashedResolve(resolve: ResolveFunction): void;
14
- export declare function setStashedGetSource(getSource: GetSourceFunction): void;
15
- export declare function resolve(specifier: string, context: ResolveHookContext, defaultResolve: ResolveFunction): Promise<{
16
- url: string;
17
- shortCircuit: boolean;
18
- }>;
19
- export declare function getSource(url: string, context: GetSourceHookContext, defaultGetSource: GetSourceFunction): Promise<{
20
- source: string | ArrayBuffer | SharedArrayBuffer | Uint8Array;
21
- }>;
22
- export declare function resolveClientImport(specifier: string, parentURL: string): Promise<string>;
23
- export declare function loadClientSource(url: string): Promise<string | ArrayBuffer | SharedArrayBuffer | Uint8Array<ArrayBufferLike>>;
24
- export {};
25
- //# sourceMappingURL=moduleResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"moduleResolver.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/moduleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,KAAK,eAAe,GAAG,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,CAAC,EAAE,eAAe,KAC1B,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAErD,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,iBAAiB,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,EAAE,iBAAiB,KAChC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,iBAAiB,GAAG,UAAU,CAAA;CAAE,CAAC,CAAC;AAKhF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,QAEzD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,QAE/D;AAED,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe;SAxBzF,MAAM;kBAAgB,OAAO;GAqChD;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB;YA5BxF,MAAM,GAAG,WAAW,GAAG,iBAAiB,GAAG,UAAU;GAgC3E;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAoB7E;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,mFAiBjD"}
@@ -1,64 +0,0 @@
1
- /**
2
- * vite-plugin-react-server
3
- * Copyright (c) Nico Brinkkemper
4
- * MIT License
5
- */
6
- let stashedResolve = null;
7
- let stashedGetSource = null;
8
- function setStashedResolve(resolve2) {
9
- stashedResolve = resolve2;
10
- }
11
- function setStashedGetSource(getSource2) {
12
- stashedGetSource = getSource2;
13
- }
14
- async function resolve(specifier, context, defaultResolve) {
15
- stashedResolve = defaultResolve;
16
- if (!context.conditions.includes("react-server")) {
17
- context = {
18
- ...context,
19
- conditions: [...context.conditions, "react-server"]
20
- };
21
- }
22
- return await defaultResolve(specifier, context, defaultResolve);
23
- }
24
- async function getSource(url, context, defaultGetSource) {
25
- stashedGetSource = defaultGetSource;
26
- return defaultGetSource(url, context, defaultGetSource);
27
- }
28
- async function resolveClientImport(specifier, parentURL) {
29
- const conditions = ["node", "import"];
30
- if (stashedResolve === null) {
31
- throw new Error(
32
- "Expected resolve to have been called before transformSource"
33
- );
34
- }
35
- const result = await stashedResolve(
36
- specifier,
37
- {
38
- conditions,
39
- parentURL,
40
- importAttributes: {}
41
- },
42
- stashedResolve
43
- );
44
- return result.url;
45
- }
46
- async function loadClientSource(url) {
47
- if (stashedGetSource === null) {
48
- throw new Error(
49
- "Expected getSource to have been called before loadClientSource"
50
- );
51
- }
52
- const result = await stashedGetSource(
53
- url,
54
- {
55
- format: "module",
56
- url
57
- },
58
- stashedGetSource
59
- );
60
- return result.source;
61
- }
62
-
63
- export { getSource, loadClientSource, resolve, resolveClientImport, setStashedGetSource, setStashedResolve };
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlUmVzb2x2ZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9oZWxwZXJzL21vZHVsZVJlc29sdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb2x2ZUhvb2tDb250ZXh0IH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5cbnR5cGUgUmVzb2x2ZUZ1bmN0aW9uID0gKFxuICBzcGVjaWZpZXI6IHN0cmluZyxcbiAgY29udGV4dDogUmVzb2x2ZUhvb2tDb250ZXh0LFxuICBuZXh0UmVzb2x2ZT86IFJlc29sdmVGdW5jdGlvblxuKSA9PiBQcm9taXNlPHsgdXJsOiBzdHJpbmc7IHNob3J0Q2lyY3VpdDogYm9vbGVhbiB9PjtcblxudHlwZSBHZXRTb3VyY2VIb29rQ29udGV4dCA9IHtcbiAgZm9ybWF0OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xufTtcblxudHlwZSBHZXRTb3VyY2VGdW5jdGlvbiA9IChcbiAgdXJsOiBzdHJpbmcsXG4gIGNvbnRleHQ6IEdldFNvdXJjZUhvb2tDb250ZXh0LFxuICBkZWZhdWx0R2V0U291cmNlOiBHZXRTb3VyY2VGdW5jdGlvblxuKSA9PiBQcm9taXNlPHsgc291cmNlOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IFNoYXJlZEFycmF5QnVmZmVyIHwgVWludDhBcnJheSB9PjtcblxubGV0IHN0YXNoZWRSZXNvbHZlOiBSZXNvbHZlRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcbmxldCBzdGFzaGVkR2V0U291cmNlOiBHZXRTb3VyY2VGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0U3Rhc2hlZFJlc29sdmUocmVzb2x2ZTogUmVzb2x2ZUZ1bmN0aW9uKSB7XG4gIHN0YXNoZWRSZXNvbHZlID0gcmVzb2x2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFN0YXNoZWRHZXRTb3VyY2UoZ2V0U291cmNlOiBHZXRTb3VyY2VGdW5jdGlvbikge1xuICBzdGFzaGVkR2V0U291cmNlID0gZ2V0U291cmNlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShzcGVjaWZpZXI6IHN0cmluZywgY29udGV4dDogUmVzb2x2ZUhvb2tDb250ZXh0LCBkZWZhdWx0UmVzb2x2ZTogUmVzb2x2ZUZ1bmN0aW9uKSB7XG4gIC8vIFdlIHN0YXNoIHRoaXMgaW4gY2FzZSB3ZSBlbmQgdXAgbmVlZGluZyB0byByZXNvbHZlIGV4cG9ydCAqIHN0YXRlbWVudHMgbGF0ZXIuXG4gIHN0YXNoZWRSZXNvbHZlID0gZGVmYXVsdFJlc29sdmU7XG4gIFxuICAvLyBBZGQgcmVhY3Qtc2VydmVyIGNvbmRpdGlvbiBpZiBub3QgcHJlc2VudFxuICBpZiAoIWNvbnRleHQuY29uZGl0aW9ucy5pbmNsdWRlcygncmVhY3Qtc2VydmVyJykpIHtcbiAgICBjb250ZXh0ID0ge1xuICAgICAgLi4uY29udGV4dCxcbiAgICAgIGNvbmRpdGlvbnM6IFsuLi5jb250ZXh0LmNvbmRpdGlvbnMsICdyZWFjdC1zZXJ2ZXInXVxuICAgIH07XG4gIH1cbiAgXG4gIHJldHVybiBhd2FpdCBkZWZhdWx0UmVzb2x2ZShzcGVjaWZpZXIsIGNvbnRleHQsIGRlZmF1bHRSZXNvbHZlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNvdXJjZSh1cmw6IHN0cmluZywgY29udGV4dDogR2V0U291cmNlSG9va0NvbnRleHQsIGRlZmF1bHRHZXRTb3VyY2U6IEdldFNvdXJjZUZ1bmN0aW9uKSB7XG4gIC8vIFdlIHN0YXNoIHRoaXMgaW4gY2FzZSB3ZSBlbmQgdXAgbmVlZGluZyB0byByZXNvbHZlIGV4cG9ydCAqIHN0YXRlbWVudHMgbGF0ZXIuXG4gIHN0YXNoZWRHZXRTb3VyY2UgPSBkZWZhdWx0R2V0U291cmNlO1xuICByZXR1cm4gZGVmYXVsdEdldFNvdXJjZSh1cmwsIGNvbnRleHQsIGRlZmF1bHRHZXRTb3VyY2UpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNsaWVudEltcG9ydChzcGVjaWZpZXI6IHN0cmluZywgcGFyZW50VVJMOiBzdHJpbmcpIHtcbiAgY29uc3QgY29uZGl0aW9ucyA9IFtcIm5vZGVcIiwgXCJpbXBvcnRcIl07XG5cbiAgaWYgKHN0YXNoZWRSZXNvbHZlID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJFeHBlY3RlZCByZXNvbHZlIHRvIGhhdmUgYmVlbiBjYWxsZWQgYmVmb3JlIHRyYW5zZm9ybVNvdXJjZVwiXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0YXNoZWRSZXNvbHZlKFxuICAgIHNwZWNpZmllcixcbiAgICB7XG4gICAgICBjb25kaXRpb25zLFxuICAgICAgcGFyZW50VVJMLFxuICAgICAgaW1wb3J0QXR0cmlidXRlczoge31cbiAgICB9LFxuICAgIHN0YXNoZWRSZXNvbHZlXG4gICk7XG5cbiAgcmV0dXJuIHJlc3VsdC51cmw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQ2xpZW50U291cmNlKHVybDogc3RyaW5nKSB7XG4gIGlmIChzdGFzaGVkR2V0U291cmNlID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJFeHBlY3RlZCBnZXRTb3VyY2UgdG8gaGF2ZSBiZWVuIGNhbGxlZCBiZWZvcmUgbG9hZENsaWVudFNvdXJjZVwiXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0YXNoZWRHZXRTb3VyY2UoXG4gICAgdXJsLFxuICAgIHtcbiAgICAgIGZvcm1hdDogXCJtb2R1bGVcIixcbiAgICAgIHVybFxuICAgIH0sXG4gICAgc3Rhc2hlZEdldFNvdXJjZVxuICApO1xuXG4gIHJldHVybiByZXN1bHQuc291cmNlO1xufSAiXSwibmFtZXMiOlsicmVzb2x2ZSIsImdldFNvdXJjZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFtQkEsSUFBSSxjQUF5QyxHQUFBLElBQUE7QUFDN0MsSUFBSSxnQkFBNkMsR0FBQSxJQUFBO0FBRTFDLFNBQVMsa0JBQWtCQSxRQUEwQixFQUFBO0FBQzFELEVBQWlCQSxjQUFBQSxHQUFBQSxRQUFBQTtBQUNuQjtBQUVPLFNBQVMsb0JBQW9CQyxVQUE4QixFQUFBO0FBQ2hFLEVBQW1CQSxnQkFBQUEsR0FBQUEsVUFBQUE7QUFDckI7QUFFQSxlQUFzQixPQUFBLENBQVEsU0FBbUIsRUFBQSxPQUFBLEVBQTZCLGNBQWlDLEVBQUE7QUFFN0csRUFBaUIsY0FBQSxHQUFBLGNBQUE7QUFHakIsRUFBQSxJQUFJLENBQUMsT0FBQSxDQUFRLFVBQVcsQ0FBQSxRQUFBLENBQVMsY0FBYyxDQUFHLEVBQUE7QUFDaEQsSUFBVSxPQUFBLEdBQUE7QUFBQSxNQUNSLEdBQUcsT0FBQTtBQUFBLE1BQ0gsVUFBWSxFQUFBLENBQUMsR0FBRyxPQUFBLENBQVEsWUFBWSxjQUFjO0FBQUEsS0FDcEQ7QUFBQTtBQUdGLEVBQUEsT0FBTyxNQUFNLGNBQUEsQ0FBZSxTQUFXLEVBQUEsT0FBQSxFQUFTLGNBQWMsQ0FBQTtBQUNoRTtBQUVBLGVBQXNCLFNBQUEsQ0FBVSxHQUFhLEVBQUEsT0FBQSxFQUErQixnQkFBcUMsRUFBQTtBQUUvRyxFQUFtQixnQkFBQSxHQUFBLGdCQUFBO0FBQ25CLEVBQU8sT0FBQSxnQkFBQSxDQUFpQixHQUFLLEVBQUEsT0FBQSxFQUFTLGdCQUFnQixDQUFBO0FBQ3hEO0FBRUEsZUFBc0IsbUJBQUEsQ0FBb0IsV0FBbUIsU0FBbUIsRUFBQTtBQUM5RSxFQUFNLE1BQUEsVUFBQSxHQUFhLENBQUMsTUFBQSxFQUFRLFFBQVEsQ0FBQTtBQUVwQyxFQUFBLElBQUksbUJBQW1CLElBQU0sRUFBQTtBQUMzQixJQUFBLE1BQU0sSUFBSSxLQUFBO0FBQUEsTUFDUjtBQUFBLEtBQ0Y7QUFBQTtBQUdGLEVBQUEsTUFBTSxTQUFTLE1BQU0sY0FBQTtBQUFBLElBQ25CLFNBQUE7QUFBQSxJQUNBO0FBQUEsTUFDRSxVQUFBO0FBQUEsTUFDQSxTQUFBO0FBQUEsTUFDQSxrQkFBa0I7QUFBQyxLQUNyQjtBQUFBLElBQ0E7QUFBQSxHQUNGO0FBRUEsRUFBQSxPQUFPLE1BQU8sQ0FBQSxHQUFBO0FBQ2hCO0FBRUEsZUFBc0IsaUJBQWlCLEdBQWEsRUFBQTtBQUNsRCxFQUFBLElBQUkscUJBQXFCLElBQU0sRUFBQTtBQUM3QixJQUFBLE1BQU0sSUFBSSxLQUFBO0FBQUEsTUFDUjtBQUFBLEtBQ0Y7QUFBQTtBQUdGLEVBQUEsTUFBTSxTQUFTLE1BQU0sZ0JBQUE7QUFBQSxJQUNuQixHQUFBO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBUSxFQUFBLFFBQUE7QUFBQSxNQUNSO0FBQUEsS0FDRjtBQUFBLElBQ0E7QUFBQSxHQUNGO0FBRUEsRUFBQSxPQUFPLE1BQU8sQ0FBQSxNQUFBO0FBQ2hCOzs7OyJ9
@@ -1,3 +0,0 @@
1
- export declare const clearStashedReturnValues: () => void;
2
- export declare const stashReturnValue: <FN extends (...args: unknown[]) => never>(fn: FN) => FN;
3
- //# sourceMappingURL=stashReturnValue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stashReturnValue.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/stashReturnValue.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,YAEpC,CAAC;AACF,eAAO,MAAM,gBAAgB,GAAI,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,EACvE,IAAI,EAAE,KACL,EAYF,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * vite-plugin-react-server
3
- * Copyright (c) Nico Brinkkemper
4
- * MIT License
5
- */
6
- const stashedReturnValue = /* @__PURE__ */ new Map();
7
- const clearStashedReturnValues = () => {
8
- stashedReturnValue.clear();
9
- };
10
- const stashReturnValue = (fn) => {
11
- return (...args) => {
12
- const id = args.map((arg) => !arg ? "" : typeof arg === "string" || typeof arg === "number" || typeof arg === "boolean" ? arg : typeof arg === "object" && "id" in arg ? arg.id : "").join("_");
13
- if (stashedReturnValue.has(id)) {
14
- return stashedReturnValue.get(id);
15
- }
16
- const result = fn(...args);
17
- stashedReturnValue.set(id, result);
18
- return result;
19
- };
20
- };
21
-
22
- export { clearStashedReturnValues, stashReturnValue };
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhc2hSZXR1cm5WYWx1ZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2hlbHBlcnMvc3Rhc2hSZXR1cm5WYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzdGFzaGVkUmV0dXJuVmFsdWUgPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcbmV4cG9ydCBjb25zdCBjbGVhclN0YXNoZWRSZXR1cm5WYWx1ZXMgPSAoKSA9PiB7XG4gIHN0YXNoZWRSZXR1cm5WYWx1ZS5jbGVhcigpO1xufTtcbmV4cG9ydCBjb25zdCBzdGFzaFJldHVyblZhbHVlID0gPEZOIGV4dGVuZHMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gbmV2ZXI+KFxuICBmbjogRk5cbik6IEZOID0+IHtcbiAgcmV0dXJuICgoLi4uYXJnczogUGFyYW1ldGVyczxGTj4pOiBSZXR1cm5UeXBlPEZOPiA9PiB7XG4gICAgY29uc3QgaWQgPSBhcmdzXG4gICAgICAubWFwKChhcmcpID0+IWFyZyA/ICcnIDogdHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgYXJnID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiBhcmcgPT09IFwiYm9vbGVhblwiID8gYXJnIDogdHlwZW9mIGFyZyA9PT0gXCJvYmplY3RcIiAmJiAnaWQnIGluIGFyZyA/IGFyZy5pZCA6ICcnKVxuICAgICAgLmpvaW4oXCJfXCIpO1xuICAgIGlmIChzdGFzaGVkUmV0dXJuVmFsdWUuaGFzKGlkKSkge1xuICAgICAgcmV0dXJuIHN0YXNoZWRSZXR1cm5WYWx1ZS5nZXQoaWQpIGFzIFJldHVyblR5cGU8Rk4+O1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBmbiguLi5hcmdzKTtcbiAgICBzdGFzaGVkUmV0dXJuVmFsdWUuc2V0KGlkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQgYXMgbmV2ZXI7XG4gIH0pIGFzIEZOO1xufTsiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLGtCQUFBLHVCQUF5QixHQUFxQixFQUFBO0FBQzdDLE1BQU0sMkJBQTJCLE1BQU07QUFDNUMsRUFBQSxrQkFBQSxDQUFtQixLQUFNLEVBQUE7QUFDM0I7QUFDYSxNQUFBLGdCQUFBLEdBQW1CLENBQzlCLEVBQ08sS0FBQTtBQUNQLEVBQUEsT0FBUSxJQUFJLElBQXlDLEtBQUE7QUFDbkQsSUFBQSxNQUFNLEVBQUssR0FBQSxJQUFBLENBQ1IsR0FBSSxDQUFBLENBQUMsR0FBTyxLQUFBLENBQUMsR0FBTSxHQUFBLEVBQUEsR0FBSyxPQUFPLEdBQUEsS0FBUSxRQUFZLElBQUEsT0FBTyxHQUFRLEtBQUEsUUFBQSxJQUFZLE9BQU8sR0FBQSxLQUFRLFNBQVksR0FBQSxHQUFBLEdBQU0sT0FBTyxHQUFBLEtBQVEsUUFBWSxJQUFBLElBQUEsSUFBUSxHQUFNLEdBQUEsR0FBQSxDQUFJLEVBQUssR0FBQSxFQUFFLENBQ25LLENBQUEsSUFBQSxDQUFLLEdBQUcsQ0FBQTtBQUNYLElBQUksSUFBQSxrQkFBQSxDQUFtQixHQUFJLENBQUEsRUFBRSxDQUFHLEVBQUE7QUFDOUIsTUFBTyxPQUFBLGtCQUFBLENBQW1CLElBQUksRUFBRSxDQUFBO0FBQUE7QUFFbEMsSUFBTSxNQUFBLE1BQUEsR0FBUyxFQUFHLENBQUEsR0FBRyxJQUFJLENBQUE7QUFDekIsSUFBbUIsa0JBQUEsQ0FBQSxHQUFBLENBQUksSUFBSSxNQUFNLENBQUE7QUFDakMsSUFBTyxPQUFBLE1BQUE7QUFBQSxHQUNUO0FBQ0Y7Ozs7In0=
@@ -1,5 +0,0 @@
1
- import type { Worker } from "node:worker_threads";
2
- export declare const setWorker: (w: Worker | null) => void;
3
- export declare const getWorker: () => Worker | null;
4
- export declare const clearWorker: () => void;
5
- //# sourceMappingURL=workerManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/workerManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,GAAG,IAAI,SAEzC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,MAAM,GAAG,IAErC,CAAC;AAEF,eAAO,MAAM,WAAW,YAEvB,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * vite-plugin-react-server
3
- * Copyright (c) Nico Brinkkemper
4
- * MIT License
5
- */
6
- let worker = null;
7
- const setWorker = (w) => {
8
- worker = w;
9
- };
10
- const getWorker = () => {
11
- return worker;
12
- };
13
- const clearWorker = () => {
14
- worker = null;
15
- };
16
-
17
- export { clearWorker, getWorker, setWorker };
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyTWFuYWdlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2hlbHBlcnMvd29ya2VyTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtlciB9IGZyb20gXCJub2RlOndvcmtlcl90aHJlYWRzXCI7XG5cbi8vIFNpbXBsZSBtb2R1bGUtbGV2ZWwgd29ya2VyIHJlZmVyZW5jZSBmb3IgZGV2IHNlcnZlciBjb250ZXh0XG5sZXQgd29ya2VyOiBXb3JrZXIgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGNvbnN0IHNldFdvcmtlciA9ICh3OiBXb3JrZXIgfCBudWxsKSA9PiB7XG4gIHdvcmtlciA9IHc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0V29ya2VyID0gKCk6IFdvcmtlciB8IG51bGwgPT4ge1xuICByZXR1cm4gd29ya2VyO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyV29ya2VyID0gKCkgPT4ge1xuICB3b3JrZXIgPSBudWxsO1xufTsgIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsSUFBSSxNQUF3QixHQUFBLElBQUE7QUFFZixNQUFBLFNBQUEsR0FBWSxDQUFDLENBQXFCLEtBQUE7QUFDN0MsRUFBUyxNQUFBLEdBQUEsQ0FBQTtBQUNYO0FBRU8sTUFBTSxZQUFZLE1BQXFCO0FBQzVDLEVBQU8sT0FBQSxNQUFBO0FBQ1Q7QUFFTyxNQUFNLGNBQWMsTUFBTTtBQUMvQixFQUFTLE1BQUEsR0FBQSxJQUFBO0FBQ1g7Ozs7In0=
@@ -1,6 +0,0 @@
1
- import type { ExportInfo } from "./types.js";
2
- /**
3
- * Recursively collects exports from a module that uses export *
4
- */
5
- export declare function collectExportsFromModule(moduleId: string): Promise<ExportInfo[]>;
6
- //# sourceMappingURL=collectExportsFromModule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectExportsFromModule.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/collectExportsFromModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAgBpF"}
@@ -1,24 +0,0 @@
1
- /**
2
- * vite-plugin-react-server
3
- * Copyright (c) Nico Brinkkemper
4
- * MIT License
5
- */
6
- import { parse } from '../parse.js';
7
- import { getExports } from './getExports.js';
8
- import { loadClientSource } from '../../helpers/moduleResolver.js';
9
-
10
- async function collectExportsFromModule(moduleId) {
11
- const source = await loadClientSource(moduleId);
12
- if (typeof source !== "string") {
13
- throw new Error("Expected source to be a string");
14
- }
15
- const { ast } = await parse(source);
16
- const exports = await getExports(ast);
17
- return Array.from(exports.exports.values()).map((exp) => ({
18
- ...exp,
19
- originalModuleId: exp.originalModuleId || moduleId
20
- }));
21
- }
22
-
23
- export { collectExportsFromModule };
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdEV4cG9ydHNGcm9tTW9kdWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wbHVnaW4vbG9hZGVyL2RpcmVjdGl2ZXMvY29sbGVjdEV4cG9ydHNGcm9tTW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcIi4uL3BhcnNlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEV4cG9ydEluZm8gfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgZ2V0RXhwb3J0cyB9IGZyb20gXCIuL2dldEV4cG9ydHMuanNcIjtcbmltcG9ydCB7IGxvYWRDbGllbnRTb3VyY2UgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9tb2R1bGVSZXNvbHZlci5qc1wiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGNvbGxlY3RzIGV4cG9ydHMgZnJvbSBhIG1vZHVsZSB0aGF0IHVzZXMgZXhwb3J0ICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RFeHBvcnRzRnJvbU1vZHVsZShtb2R1bGVJZDogc3RyaW5nKTogUHJvbWlzZTxFeHBvcnRJbmZvW10+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCBsb2FkQ2xpZW50U291cmNlKG1vZHVsZUlkKTtcbiAgXG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHNvdXJjZSB0byBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgXG4gICAgLy8gVXNlIG91ciBleGlzdGluZyBwYXJzZSBmdW5jdGlvblxuICAgIGNvbnN0IHsgYXN0IH0gPSBhd2FpdCBwYXJzZShzb3VyY2UpO1xuICAgIGNvbnN0IGV4cG9ydHMgPSBhd2FpdCBnZXRFeHBvcnRzKGFzdCk7XG4gICAgXG4gICAgLy8gU2V0IG9yaWdpbmFsTW9kdWxlSWQgZm9yIGxvY2FsIGV4cG9ydHMsIHByZXNlcnZlIGl0IGZvciByZS1leHBvcnRzXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZXhwb3J0cy5leHBvcnRzLnZhbHVlcygpKS5tYXAoZXhwID0+ICh7XG4gICAgICAuLi5leHAsXG4gICAgICBvcmlnaW5hbE1vZHVsZUlkOiBleHAub3JpZ2luYWxNb2R1bGVJZCB8fCBtb2R1bGVJZFxuICAgIH0pKTtcbiAgfSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxlQUFzQix5QkFBeUIsUUFBeUMsRUFBQTtBQUNwRixFQUFNLE1BQUEsTUFBQSxHQUFTLE1BQU0sZ0JBQUEsQ0FBaUIsUUFBUSxDQUFBO0FBRTlDLEVBQUksSUFBQSxPQUFPLFdBQVcsUUFBVSxFQUFBO0FBQzlCLElBQU0sTUFBQSxJQUFJLE1BQU0sZ0NBQWdDLENBQUE7QUFBQTtBQUlsRCxFQUFBLE1BQU0sRUFBRSxHQUFBLEVBQVEsR0FBQSxNQUFNLE1BQU0sTUFBTSxDQUFBO0FBQ2xDLEVBQU0sTUFBQSxPQUFBLEdBQVUsTUFBTSxVQUFBLENBQVcsR0FBRyxDQUFBO0FBR3BDLEVBQU8sT0FBQSxLQUFBLENBQU0sS0FBSyxPQUFRLENBQUEsT0FBQSxDQUFRLFFBQVEsQ0FBQSxDQUFFLElBQUksQ0FBUSxHQUFBLE1BQUE7QUFBQSxJQUN0RCxHQUFHLEdBQUE7QUFBQSxJQUNILGdCQUFBLEVBQWtCLElBQUksZ0JBQW9CLElBQUE7QUFBQSxHQUMxQyxDQUFBLENBQUE7QUFDSjs7OzsifQ==
@@ -1,9 +0,0 @@
1
- import { isPanic } from "./shouldPanic.js";
2
-
3
- export function assertPanic<T>(
4
- error: T
5
- ): asserts error is NonNullable<T> {
6
- if (isPanic(error)) {
7
- throw error;
8
- }
9
- }
@@ -1,29 +0,0 @@
1
- import type { DirectiveMatch } from "../loader/directives/types.js";
2
-
3
- // Error types for better maintainability
4
- export const DIRECTIVE_ERRORS = {
5
- FILE_LEVEL: {
6
- NOT_AT_TOP:
7
- "'use {directive}' directive must be at the top of the file, before any other statements.",
8
- MIXED_DIRECTIVES:
9
- "Cannot use both 'use client' and 'use server' directives in the same file",
10
- },
11
- FUNCTION_LEVEL: {
12
- CLIENT_NOT_ALLOWED:
13
- "Directive 'use client' is not allowed at function level. Only 'use server' is allowed at the start of async functions.",
14
- SERVER_NOT_ASYNC:
15
- "'use server' directive is only allowed at the start of async functions",
16
- },
17
- } as const;
18
-
19
- // Helper to check if a warning is about file-level issues
20
- export function isFileLevelWarning(warning: DirectiveMatch): boolean {
21
- if (!warning.message) return false;
22
- return (
23
- warning.message ===
24
- DIRECTIVE_ERRORS.FILE_LEVEL.NOT_AT_TOP.replace("{directive}", "client") ||
25
- warning.message ===
26
- DIRECTIVE_ERRORS.FILE_LEVEL.NOT_AT_TOP.replace("{directive}", "server") ||
27
- warning.message === DIRECTIVE_ERRORS.FILE_LEVEL.MIXED_DIRECTIVES
28
- );
29
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * Creates a new error with context from any input.
3
- * Always creates a fresh stack trace and sets the original as the cause.
4
- * This is the preferred way to wrap errors with context.
5
- */
6
- export function enhanceError(
7
- originalError: Error | string | {message: string},
8
- captureStackTraceFunction: Function,
9
- context: string = captureStackTraceFunction.name,
10
- ): Error {
11
- const baseMessage = typeof originalError === 'string' ? originalError : originalError.message;
12
-
13
- const contextualError = createContextualError(baseMessage, context, captureStackTraceFunction || enhanceError);
14
-
15
- // Set the original as the cause for traceability
16
- contextualError.cause = originalError;
17
-
18
- return contextualError;
19
- }
20
-
21
- /**
22
- * Creates a new error with context and captured stack trace
23
- * Useful for creating contextual errors at specific points in the code
24
- */
25
- export function createContextualError(
26
- message: string,
27
- context: string = '',
28
- captureStackTraceFunction?: Function
29
- ): Error {
30
- const contextualMessage = context && context !== '' ? `[${context}:error] ${message}` : message;
31
- const error = new Error(contextualMessage);
32
- error.name = "ContextualError";
33
-
34
- // Capture stack trace excluding this function (or the specified function)
35
- Error.captureStackTrace(
36
- error,
37
- captureStackTraceFunction || createContextualError
38
- );
39
-
40
- return error;
41
- }
@@ -1,64 +0,0 @@
1
- import { React } from "../vendor/vendor.server.js";
2
-
3
- /**
4
- * Creates a safe Page component that doesn't throw errors.
5
- * Used when headless streams have errors to prevent errors from reaching the HTML worker.
6
- *
7
- * @param errorMessage - Optional error message to display
8
- * @returns A safe React component that renders a div with error content
9
- */
10
- export function createSafePageComponent(errorMessage: string = "Error occurred during rendering") {
11
- return () => React.createElement("div", { id: "root" }, errorMessage);
12
- }
13
-
14
- /**
15
- * Creates a fallback Page component using React.Fragment.
16
- * Used by RSC worker for consistent fallback behavior.
17
- *
18
- * @returns React.Fragment as a safe fallback
19
- */
20
- export function createFallbackPageComponent() {
21
- return React.Fragment;
22
- }
23
-
24
- /**
25
- * Determines if a Page component should be replaced with a safe fallback.
26
- *
27
- * @param hasHeadlessError - Whether the headless stream had errors
28
- * @param isHeadless - Whether this is a headless stream
29
- * @returns true if a safe fallback should be used
30
- */
31
- export function shouldUseSafePageComponent(
32
- hasHeadlessError: boolean,
33
- isHeadless: boolean
34
- ): boolean {
35
- // For headless streams, never use fallback (let them error naturally)
36
- if (isHeadless) {
37
- return false;
38
- }
39
-
40
- // For full streams, use fallback if headless stream had errors
41
- return hasHeadlessError;
42
- }
43
-
44
- /**
45
- * Creates the appropriate Page component based on error state.
46
- *
47
- * @param originalPageComponent - The original Page component
48
- * @param hasHeadlessError - Whether the headless stream had errors
49
- * @param isHeadless - Whether this is a headless stream
50
- * @param useReactFragment - Whether to use React.Fragment (RSC worker style) or div (server style)
51
- * @returns The appropriate Page component to use
52
- */
53
- export function createPageComponentWithErrorHandling(
54
- originalPageComponent: any,
55
- hasHeadlessError: boolean,
56
- isHeadless: boolean,
57
- useReactFragment: boolean = false
58
- ) {
59
- if (shouldUseSafePageComponent(hasHeadlessError, isHeadless)) {
60
- return useReactFragment ? createFallbackPageComponent() : createSafePageComponent();
61
- }
62
-
63
- return originalPageComponent;
64
- }
@@ -1,91 +0,0 @@
1
- import type { ResolveHookContext } from "node:module";
2
-
3
- type ResolveFunction = (
4
- specifier: string,
5
- context: ResolveHookContext,
6
- nextResolve?: ResolveFunction
7
- ) => Promise<{ url: string; shortCircuit: boolean }>;
8
-
9
- type GetSourceHookContext = {
10
- format: string;
11
- url: string;
12
- };
13
-
14
- type GetSourceFunction = (
15
- url: string,
16
- context: GetSourceHookContext,
17
- defaultGetSource: GetSourceFunction
18
- ) => Promise<{ source: string | ArrayBuffer | SharedArrayBuffer | Uint8Array }>;
19
-
20
- let stashedResolve: ResolveFunction | null = null;
21
- let stashedGetSource: GetSourceFunction | null = null;
22
-
23
- export function setStashedResolve(resolve: ResolveFunction) {
24
- stashedResolve = resolve;
25
- }
26
-
27
- export function setStashedGetSource(getSource: GetSourceFunction) {
28
- stashedGetSource = getSource;
29
- }
30
-
31
- export async function resolve(specifier: string, context: ResolveHookContext, defaultResolve: ResolveFunction) {
32
- // We stash this in case we end up needing to resolve export * statements later.
33
- stashedResolve = defaultResolve;
34
-
35
- // Add react-server condition if not present
36
- if (!context.conditions.includes('react-server')) {
37
- context = {
38
- ...context,
39
- conditions: [...context.conditions, 'react-server']
40
- };
41
- }
42
-
43
- return await defaultResolve(specifier, context, defaultResolve);
44
- }
45
-
46
- export async function getSource(url: string, context: GetSourceHookContext, defaultGetSource: GetSourceFunction) {
47
- // We stash this in case we end up needing to resolve export * statements later.
48
- stashedGetSource = defaultGetSource;
49
- return defaultGetSource(url, context, defaultGetSource);
50
- }
51
-
52
- export async function resolveClientImport(specifier: string, parentURL: string) {
53
- const conditions = ["node", "import"];
54
-
55
- if (stashedResolve === null) {
56
- throw new Error(
57
- "Expected resolve to have been called before transformSource"
58
- );
59
- }
60
-
61
- const result = await stashedResolve(
62
- specifier,
63
- {
64
- conditions,
65
- parentURL,
66
- importAttributes: {}
67
- },
68
- stashedResolve
69
- );
70
-
71
- return result.url;
72
- }
73
-
74
- export async function loadClientSource(url: string) {
75
- if (stashedGetSource === null) {
76
- throw new Error(
77
- "Expected getSource to have been called before loadClientSource"
78
- );
79
- }
80
-
81
- const result = await stashedGetSource(
82
- url,
83
- {
84
- format: "module",
85
- url
86
- },
87
- stashedGetSource
88
- );
89
-
90
- return result.source;
91
- }
@@ -1,19 +0,0 @@
1
- const stashedReturnValue = new Map<string, unknown>();
2
- export const clearStashedReturnValues = () => {
3
- stashedReturnValue.clear();
4
- };
5
- export const stashReturnValue = <FN extends (...args: unknown[]) => never>(
6
- fn: FN
7
- ): FN => {
8
- return ((...args: Parameters<FN>): ReturnType<FN> => {
9
- const id = args
10
- .map((arg) =>!arg ? '' : typeof arg === "string" || typeof arg === "number" || typeof arg === "boolean" ? arg : typeof arg === "object" && 'id' in arg ? arg.id : '')
11
- .join("_");
12
- if (stashedReturnValue.has(id)) {
13
- return stashedReturnValue.get(id) as ReturnType<FN>;
14
- }
15
- const result = fn(...args);
16
- stashedReturnValue.set(id, result);
17
- return result as never;
18
- }) as FN;
19
- };
@@ -1,16 +0,0 @@
1
- import type { Worker } from "node:worker_threads";
2
-
3
- // Simple module-level worker reference for dev server context
4
- let worker: Worker | null = null;
5
-
6
- export const setWorker = (w: Worker | null) => {
7
- worker = w;
8
- };
9
-
10
- export const getWorker = (): Worker | null => {
11
- return worker;
12
- };
13
-
14
- export const clearWorker = () => {
15
- worker = null;
16
- };
@@ -1,25 +0,0 @@
1
- import { parse } from "../parse.js";
2
- import type { ExportInfo } from "./types.js";
3
- import { getExports } from "./getExports.js";
4
- import { loadClientSource } from "../../helpers/moduleResolver.js";
5
-
6
- /**
7
- * Recursively collects exports from a module that uses export *
8
- */
9
- export async function collectExportsFromModule(moduleId: string): Promise<ExportInfo[]> {
10
- const source = await loadClientSource(moduleId);
11
-
12
- if (typeof source !== 'string') {
13
- throw new Error('Expected source to be a string');
14
- }
15
-
16
- // Use our existing parse function
17
- const { ast } = await parse(source);
18
- const exports = await getExports(ast);
19
-
20
- // Set originalModuleId for local exports, preserve it for re-exports
21
- return Array.from(exports.exports.values()).map(exp => ({
22
- ...exp,
23
- originalModuleId: exp.originalModuleId || moduleId
24
- }));
25
- }