@cedarjs/router 7.0.0-rc.128 → 8.0.0-canary.3263

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/Route.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ReactElement } from 'react';
2
3
  import type { PageType } from './page.js';
3
4
  export type RenderMode = 'stream' | 'html';
@@ -26,7 +27,7 @@ export type InternalRouteProps = Partial<RouteProps & RedirectRouteProps & NotFo
26
27
  * it is actually never rendered. All the page loading logic happens in active-route-loader
27
28
  * and all the validation happens within utility functions called from the Router
28
29
  */
29
- export declare function Route(props: RouteProps): JSX.Element;
30
- export declare function Route(props: RedirectRouteProps): JSX.Element;
31
- export declare function Route(props: NotFoundRouteProps): JSX.Element;
30
+ export declare function Route(props: RouteProps): React.JSX.Element;
31
+ export declare function Route(props: RedirectRouteProps): React.JSX.Element;
32
+ export declare function Route(props: NotFoundRouteProps): React.JSX.Element;
32
33
  //# sourceMappingURL=Route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../src/Route.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;CAC7C;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CACrD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAAA;AACrD,wBAAgB,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAA;AAC7D,wBAAgB,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAA"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../src/Route.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;CAC7C;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CACrD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAA;AAC3D,wBAAgB,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAA;AACnE,wBAAgB,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAA"}
package/dist/Set.d.ts CHANGED
@@ -59,7 +59,7 @@ export declare function Private<WrapperProps>(props: PrivateSetProps<WrapperProp
59
59
  * like `RequireAuth` or `ProtectedRoute`? This is the Cedar equivalent.
60
60
  */
61
61
  export declare function PrivateSet<WrapperProps>(props: PrivateSetProps<WrapperProps>): React.JSX.Element;
62
- export declare const isSetNode: (node: ReactNode) => node is ReactElement<SetProps<any>>;
62
+ export declare const isSetNode: (node: ReactNode) => node is ReactElement<SetProps<Record<string, unknown>>>;
63
63
  export declare const isPrivateSetNode: (node: ReactNode) => node is ReactElement<PrivateSetProps<unknown>>;
64
64
  export declare const isPrivateNode: (node: ReactNode) => node is ReactElement<SetProps<any>>;
65
65
  export {};
package/dist/Set.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../src/Set.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI,CACjC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;IAC1C,QAAQ,EAAE,SAAS,CAAA;CACpB,KACE,YAAY,GAAG,IAAI,CAAA;AAExB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;IACnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;IAC5C,gBAAgB,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;CAC7C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,qBAI9D;AAED,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC,GAAG;IACjD,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAEH,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,qBAIzE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,qBAI5E;AAED,eAAO,MAAM,SAAS,GACpB,MAAM,SAAS,KACd,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAOpC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,MAAM,SAAS,KACd,IAAI,IAAI,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAE/C,CAAA;AAGD,eAAO,MAAM,aAAa,GACxB,MAAM,SAAS,KACd,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAEpC,CAAA"}
1
+ {"version":3,"file":"Set.d.ts","sourceRoot":"","sources":["../src/Set.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI,CACjC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;IAC1C,QAAQ,EAAE,SAAS,CAAA;CACpB,KACE,YAAY,GAAG,IAAI,CAAA;AAExB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;IACnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;IAC5C,gBAAgB,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;CAC7C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,qBAI9D;AAED,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC,GAAG;IACjD,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAEH,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,qBAIzE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,qBAI5E;AAED,eAAO,MAAM,SAAS,GACpB,MAAM,SAAS,KACd,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOxD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,MAAM,SAAS,KACd,IAAI,IAAI,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAE/C,CAAA;AAGD,eAAO,MAAM,aAAa,GACxB,MAAM,SAAS,KACd,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAEpC,CAAA"}
package/dist/Set.js CHANGED
@@ -10,7 +10,7 @@ function PrivateSet(props) {
10
10
  }
11
11
  const isSetNode = (node) => {
12
12
  return React.isValidElement(node) && (node.type === Set || node.type === PrivateSet || node.type === Private) && // Don't even bother including Sets without children. They're useless.
13
- node.props.children;
13
+ !!node.props.children;
14
14
  };
15
15
  const isPrivateSetNode = (node) => {
16
16
  return React.isValidElement(node) && node.type === PrivateSet;
package/dist/page.d.ts CHANGED
@@ -24,5 +24,5 @@ export declare function isSpec(specOrPage: Spec | React.ComponentType): specOrPa
24
24
  * imported version into a spec.
25
25
  */
26
26
  export declare function normalizePage(specOrPage: Spec | React.ComponentType<unknown>): Spec;
27
- export type PageType = Spec | React.ComponentType<any> | ((props: any) => JSX.Element);
27
+ export type PageType = Spec | React.ComponentType<any> | ((props: any) => React.JSX.Element);
28
28
  //# sourceMappingURL=page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IAC7E,aAAa,EACT,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GACvD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;CACjC;AAED,wBAAgB,MAAM,CACpB,UAAU,EAAE,IAAI,GAAG,KAAK,CAAC,aAAa,GACrC,UAAU,IAAI,IAAI,CAEpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAC9C,IAAI,CAaN;AAED,MAAM,MAAM,QAAQ,GAClB,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IAC7E,aAAa,EACT,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GACvD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;CACjC;AAED,wBAAgB,MAAM,CACpB,UAAU,EAAE,IAAI,GAAG,KAAK,CAAC,aAAa,GACrC,UAAU,IAAI,IAAI,CAEpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAC9C,IAAI,CAaN;AAED,MAAM,MAAM,QAAQ,GAClB,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-util.d.ts","sourceRoot":"","sources":["../src/react-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAU3D"}
1
+ {"version":3,"file":"react-util.d.ts","sourceRoot":"","sources":["../src/react-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAa3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"RscCache.d.ts","sourceRoot":"","sources":["../../src/rsc/RscCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,iBAAiB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAAI;IAEvB,OAAO,CAAC,SAAS,CAAQ;;IAgDzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;IAMhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;IA2B1C,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,qBAAqB;CAW9B"}
1
+ {"version":3,"file":"RscCache.d.ts","sourceRoot":"","sources":["../../src/rsc/RscCache.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,QAAQ;IACvB,iBAAiB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAAI;IAEvB,OAAO,CAAC,SAAS,CAAQ;;IAgDzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;IAMhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;IA2B1C,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,qBAAqB;CAW9B"}
@@ -1,3 +1,13 @@
1
+ class DummyWS {
2
+ readyState = WebSocket?.OPEN;
3
+ addEventListener() {
4
+ }
5
+ send() {
6
+ }
7
+ }
8
+ if (typeof globalThis.WebSocket === "undefined") {
9
+ globalThis.WebSocket = DummyWS;
10
+ }
1
11
  class RscCache {
2
12
  cache = /* @__PURE__ */ new Map();
3
13
  socket;
@@ -66,7 +76,7 @@ class RscCache {
66
76
  } else if (this.sendRetries >= 10) {
67
77
  console.error("Exhausted retries to send message to WebSocket server.");
68
78
  } else {
69
- console.error("WebSocket connection is closed.");
79
+ console.error("RscCache: WebSocket connection is closed.");
70
80
  }
71
81
  }
72
82
  sendUpdateToWebSocket() {
@@ -2,6 +2,6 @@ interface Props {
2
2
  pathname: string;
3
3
  search: string;
4
4
  }
5
- export declare const RscRoutes: ({ pathname, search }: Props) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
5
+ export declare const RscRoutes: ({ pathname, search }: Props) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
6
6
  export {};
7
7
  //# sourceMappingURL=RscRoutes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RscRoutes.d.ts","sourceRoot":"","sources":["../../src/rsc/RscRoutes.tsx"],"names":[],"mappings":"AAiIA,UAAU,KAAK;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,SAAS,GAAI,sBAAsB,KAAK,2FAkCpD,CAAA"}
1
+ {"version":3,"file":"RscRoutes.d.ts","sourceRoot":"","sources":["../../src/rsc/RscRoutes.tsx"],"names":[],"mappings":"AAiIA,UAAU,KAAK;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,SAAS,GAAI,sBAAsB,KAAK,+FAkCpD,CAAA"}
@@ -1,2 +1,9 @@
1
+ /**
2
+ * Render the RW App's Routes.{tsx,jsx} component.
3
+ * In production, this function will read the Routes component from the App's
4
+ * dist directory.
5
+ * During dev, this function will use Vite to load the Routes component from
6
+ * the App's src directory.
7
+ */
1
8
  export declare function renderRoutesSsr(pathname: string): Promise<any>;
2
9
  //# sourceMappingURL=clientSsr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientSsr.d.ts","sourceRoot":"","sources":["../../src/rsc/clientSsr.ts"],"names":[],"mappings":"AAuEA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,gBA2DrD"}
1
+ {"version":3,"file":"clientSsr.d.ts","sourceRoot":"","sources":["../../src/rsc/clientSsr.ts"],"names":[],"mappings":"AA2FA;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,gBA0GrD"}
@@ -1,14 +1,29 @@
1
1
  import path from "node:path";
2
+ import { pathToFileURL } from "node:url";
2
3
  import { getPaths } from "@cedarjs/project-config";
3
4
  import { moduleMap } from "./ssrModuleMap.js";
4
- import { importRsdwClient, importRsdwServer, importReact } from "./utils.js";
5
+ import { importRsdwClient, importReact, importRsdwServer } from "./utils.js";
5
6
  import { makeFilePath } from "./utils.js";
6
7
  async function getEntries() {
8
+ if (globalThis.__cedarjs__vite_ssr_runtime) {
9
+ return {
10
+ serverEntries: {
11
+ __cedarjs__Routes: "../../src/Routes.tsx"
12
+ },
13
+ ssrEntries: {}
14
+ };
15
+ }
7
16
  const entriesPath = getPaths().web.distRscEntries;
8
17
  const entries = await import(makeFilePath(entriesPath));
9
18
  return entries;
10
19
  }
11
20
  async function getRoutesComponent() {
21
+ if (globalThis.__cedarjs__vite_rsc_runtime) {
22
+ const routesMod = await globalThis.__cedarjs__vite_rsc_runtime.import(
23
+ getPaths().web.routes
24
+ );
25
+ return routesMod.default;
26
+ }
12
27
  const { serverEntries } = await getEntries();
13
28
  const entryPath = path.join(
14
29
  getPaths().web.distRsc,
@@ -58,19 +73,52 @@ async function renderRoutesSsr(pathname) {
58
73
  get(_target, encodedId) {
59
74
  console.log("Proxy get encodedId", encodedId);
60
75
  const [filePath, name] = encodedId.split("#");
61
- const id = resolveClientEntryForProd(filePath, clientEntries);
76
+ const id = globalThis.__cedarjs__vite_ssr_runtime ? filePath : resolveClientEntryForProd(filePath, clientEntries);
62
77
  console.log("clientSsr.ts::Proxy id", id);
63
78
  return { id, chunks: [id], name, async: true };
64
79
  }
65
80
  }
66
81
  );
82
+ const serverModuleMap = new Proxy(
83
+ {},
84
+ {
85
+ get(_target, encodedId) {
86
+ console.log("serverModuleMap Proxy get encodedId", encodedId);
87
+ const [filePath, name] = encodedId.split("#");
88
+ const id = pathToFileURL(filePath).href;
89
+ console.log("serverModuleMap::Proxy id", id);
90
+ return { id, chunks: [id], name, async: true };
91
+ }
92
+ }
93
+ );
67
94
  const { createElement } = await importReact();
68
95
  const { renderToReadableStream } = await importRsdwServer();
69
96
  console.log("clientSsr.ts right before renderToReadableStream");
70
- const stream = renderToReadableStream(createElement(Routes), bundlerConfig);
97
+ const originalStream = renderToReadableStream(
98
+ createElement(Routes),
99
+ bundlerConfig
100
+ );
101
+ const [streamForLogging, streamForRendering] = originalStream.tee();
102
+ (async () => {
103
+ const reader = streamForLogging.getReader();
104
+ const decoder = new TextDecoder();
105
+ let logContent = "";
106
+ while (true) {
107
+ const { done, value } = await reader.read();
108
+ if (done) {
109
+ break;
110
+ }
111
+ logContent += decoder.decode(value, { stream: true });
112
+ }
113
+ console.log("Stream content:", logContent);
114
+ })();
71
115
  const { createFromReadableStream } = await importRsdwClient();
72
- const data = createFromReadableStream(stream, {
73
- ssrManifest: { moduleMap, moduleLoading: null }
116
+ const data = createFromReadableStream(streamForRendering, {
117
+ serverConsumerManifest: {
118
+ moduleMap,
119
+ serverModuleMap,
120
+ moduleLoading: null
121
+ }
74
122
  });
75
123
  rscCache.set(pathname, data);
76
124
  return data;
@@ -6,15 +6,15 @@ export declare function makeFilePath(path: string): string;
6
6
  /**
7
7
  * See vite/streamHelpers.ts.
8
8
  *
9
- * This function ensures we load the same version of rsdw_client to prevent
9
+ * This function ensures we load the bundled version of React to prevent
10
10
  * multiple instances of React
11
11
  */
12
12
  export declare function importReact(): Promise<any>;
13
13
  /**
14
14
  * See vite/streamHelpers.ts.
15
15
  *
16
- * This function ensures we load the same version of rsdw_client to prevent
17
- * multiple instances of React
16
+ * This function ensures we load the same version of rsdw_client everywhere to
17
+ * prevent multiple instances of React
18
18
  */
19
19
  export declare function importRsdwClient(): Promise<RSDWClientType>;
20
20
  export declare function importRsdwServer(): Promise<RSDWServerType>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rsc/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvF,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAIvF,KAAK,cAAc,GAAG,OAAO,gBAAgB,CAAA;AAC7C,KAAK,cAAc,GAAG,OAAO,gBAAgB,CAAA;AAE7C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,iBAKhC;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAOhE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAWhE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rsc/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvF,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAIvF,KAAK,cAAc,GAAG,OAAO,gBAAgB,CAAA;AAC7C,KAAK,cAAc,GAAG,OAAO,gBAAgB,CAAA;AAE7C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,iBAUhC;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAYhE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAmBhE"}
package/dist/rsc/utils.js CHANGED
@@ -5,11 +5,19 @@ function makeFilePath(path2) {
5
5
  return pathToFileURL(path2).href;
6
6
  }
7
7
  async function importReact() {
8
+ if (globalThis.__cedarjs__vite_ssr_runtime) {
9
+ const reactMod = await import("react");
10
+ return reactMod.default;
11
+ }
8
12
  const distSsr = getPaths().web.distSsr;
9
13
  const reactPath = makeFilePath(path.join(distSsr, "__cedarjs__react.mjs"));
10
14
  return (await import(reactPath)).default;
11
15
  }
12
16
  async function importRsdwClient() {
17
+ if (globalThis.__cedarjs__vite_ssr_runtime) {
18
+ const rsdwcMod = await import("react-server-dom-webpack/client.edge");
19
+ return rsdwcMod.default;
20
+ }
13
21
  const distSsr = getPaths().web.distSsr;
14
22
  const rsdwClientPath = makeFilePath(
15
23
  path.join(distSsr, "__cedarjs__rsdw-client.mjs")
@@ -17,11 +25,18 @@ async function importRsdwClient() {
17
25
  return (await import(rsdwClientPath)).default;
18
26
  }
19
27
  async function importRsdwServer() {
20
- const dynamicImport = "";
21
- return import(
22
- /* @vite-ignore */
23
- dynamicImport + "react-server-dom-webpack/server.edge"
24
- );
28
+ if (globalThis.__cedarjs__vite_rsc_runtime) {
29
+ const rsdwServerMod = await globalThis.__cedarjs__vite_rsc_runtime.import(
30
+ "react-server-dom-webpack/server.edge"
31
+ );
32
+ return rsdwServerMod.default;
33
+ } else {
34
+ const dynamicImport = "";
35
+ return import(
36
+ /* @vite-ignore */
37
+ dynamicImport + "react-server-dom-webpack/server.edge"
38
+ );
39
+ }
25
40
  }
26
41
  export {
27
42
  importReact,
package/dist/skipNav.d.ts CHANGED
@@ -5,10 +5,10 @@ type ForwardRefExoticComponent<E, OwnProps> = React.ForwardRefExoticComponent<Me
5
5
  }>>;
6
6
  interface ForwardRefComponent<IntrinsicElementString, OwnProps = object> extends ForwardRefExoticComponent<IntrinsicElementString, OwnProps> {
7
7
  <As = IntrinsicElementString>(props: As extends '' ? {
8
- as: keyof JSX.IntrinsicElements;
8
+ as: keyof React.JSX.IntrinsicElements;
9
9
  } : As extends React.ComponentType<infer P> ? Merge<P, OwnProps & {
10
10
  as: As;
11
- }> : As extends keyof JSX.IntrinsicElements ? Merge<JSX.IntrinsicElements[As], OwnProps & {
11
+ }> : As extends keyof React.JSX.IntrinsicElements ? Merge<React.JSX.IntrinsicElements[As], OwnProps & {
12
12
  as: As;
13
13
  }> : never): React.ReactElement | null;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skipNav.d.ts","sourceRoot":"","sources":["../src/skipNav.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,KAAK,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AAE9D,KAAK,yBAAyB,CAAC,CAAC,EAAE,QAAQ,IAAI,KAAK,CAAC,yBAAyB,CAC3E,KAAK,CACH,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,EACpE,QAAQ,GAAG;IAAE,EAAE,CAAC,EAAE,CAAC,CAAA;CAAE,CACtB,CACF,CAAA;AAED,UAAU,mBAAmB,CAC3B,sBAAsB,EACtB,QAAQ,GAAG,MAAM,CAKjB,SAAQ,yBAAyB,CAAC,sBAAsB,EAAE,QAAQ,CAAC;IASnE,CAAC,EAAE,GAAG,sBAAsB,EAC1B,KAAK,EAAE,EAAE,SAAS,EAAE,GAChB;QAAE,EAAE,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAA;KAAE,GACnC,EAAE,SAAS,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GACrC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG;QAAE,EAAE,EAAE,EAAE,CAAA;KAAE,CAAC,GAC/B,EAAE,SAAS,MAAM,GAAG,CAAC,iBAAiB,GACpC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG;QAAE,EAAE,EAAE,EAAE,CAAA;KAAE,CAAC,GACvD,KAAK,GACZ,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;CAC7B;AAWD;;;;;;GAMG;AACH,QAAA,MAAM,WAAW,EAiBX,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;AAEhD;;GAEG;AACH,UAAU,gBAAgB;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,QAAA,MAAM,cAAc,EAad,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;AAErD;;GAEG;AACH,UAAU,mBAAmB;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAOD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"skipNav.d.ts","sourceRoot":"","sources":["../src/skipNav.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,KAAK,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AAE9D,KAAK,yBAAyB,CAAC,CAAC,EAAE,QAAQ,IAAI,KAAK,CAAC,yBAAyB,CAC3E,KAAK,CACH,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,EACpE,QAAQ,GAAG;IAAE,EAAE,CAAC,EAAE,CAAC,CAAA;CAAE,CACtB,CACF,CAAA;AAED,UAAU,mBAAmB,CAC3B,sBAAsB,EACtB,QAAQ,GAAG,MAAM,CAKjB,SAAQ,yBAAyB,CAAC,sBAAsB,EAAE,QAAQ,CAAC;IASnE,CAAC,EAAE,GAAG,sBAAsB,EAC1B,KAAK,EAAE,EAAE,SAAS,EAAE,GAChB;QAAE,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAA;KAAE,GACzC,EAAE,SAAS,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GACrC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG;QAAE,EAAE,EAAE,EAAE,CAAA;KAAE,CAAC,GAC/B,EAAE,SAAS,MAAM,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG;QAAE,EAAE,EAAE,EAAE,CAAA;KAAE,CAAC,GAC7D,KAAK,GACZ,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;CAC7B;AAWD;;;;;;GAMG;AACH,QAAA,MAAM,WAAW,EAiBX,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;AAEhD;;GAEG;AACH,UAAU,gBAAgB;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,QAAA,MAAM,cAAc,EAad,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;AAErD;;GAEG;AACH,UAAU,mBAAmB;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAOD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/router",
3
- "version": "7.0.0-rc.128",
3
+ "version": "8.0.0-canary.3263",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/cedarjs/cedar.git",
@@ -52,31 +52,31 @@
52
52
  "test:watch": "vitest watch"
53
53
  },
54
54
  "dependencies": {
55
- "@cedarjs/project-config": "7.0.0-rc.128",
56
- "@cedarjs/server-store": "7.0.0-rc.128",
57
- "react-server-dom-webpack": "19.2.8",
55
+ "@cedarjs/project-config": "8.0.0-canary.3263",
56
+ "@cedarjs/server-store": "8.0.0-canary.3263",
57
+ "react-server-dom-webpack": "19.3.0",
58
58
  "ts-toolbelt": "9.6.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@arethetypeswrong/cli": "0.18.5",
62
- "@cedarjs/auth": "7.0.0-rc.128",
63
- "@cedarjs/framework-tools": "7.0.0-rc.128",
62
+ "@cedarjs/auth": "8.0.0-canary.3263",
63
+ "@cedarjs/framework-tools": "8.0.0-canary.3263",
64
64
  "@testing-library/jest-dom": "6.9.1",
65
- "@types/react": "^18.2.55",
66
- "@types/react-dom": "^18.2.19",
65
+ "@types/react": "^19.2.0",
66
+ "@types/react-dom": "^19.2.0",
67
67
  "concurrently": "9.2.4",
68
68
  "publint": "0.3.24",
69
- "react": "18.3.1",
70
- "react-dom": "18.3.1",
69
+ "react": "19.3.0",
70
+ "react-dom": "19.3.0",
71
71
  "tstyche": "5.0.2",
72
72
  "typescript": "5.9.3",
73
73
  "vite": "7.3.6",
74
74
  "vitest": "4.1.11"
75
75
  },
76
76
  "peerDependencies": {
77
- "@cedarjs/auth": "7.0.0-rc.128",
78
- "react": "18.3.1",
79
- "react-dom": "18.3.1"
77
+ "@cedarjs/auth": "8.0.0-canary.3263",
78
+ "react": "19.3.0",
79
+ "react-dom": "19.3.0"
80
80
  },
81
81
  "engines": {
82
82
  "node": ">=24"