@cedarjs/web 0.0.4
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/LICENSE +21 -0
- package/README.md +33 -0
- package/apollo/index.js +2 -0
- package/apollo/package.json +4 -0
- package/dist/apollo/fragmentRegistry.d.ts +43 -0
- package/dist/apollo/fragmentRegistry.d.ts.map +1 -0
- package/dist/apollo/fragmentRegistry.js +39 -0
- package/dist/apollo/index.d.ts +77 -0
- package/dist/apollo/index.d.ts.map +1 -0
- package/dist/apollo/index.js +198 -0
- package/dist/apollo/links.d.ts +27 -0
- package/dist/apollo/links.d.ts.map +1 -0
- package/dist/apollo/links.js +94 -0
- package/dist/apollo/sseLink.d.ts +29 -0
- package/dist/apollo/sseLink.d.ts.map +1 -0
- package/dist/apollo/sseLink.js +94 -0
- package/dist/apollo/suspense.d.ts +59 -0
- package/dist/apollo/suspense.d.ts.map +1 -0
- package/dist/apollo/suspense.js +113 -0
- package/dist/apollo/typeOverride.d.ts +21 -0
- package/dist/apollo/typeOverride.d.ts.map +1 -0
- package/dist/apollo/typeOverride.js +0 -0
- package/dist/apollo/useCache.d.ts +22 -0
- package/dist/apollo/useCache.d.ts.map +1 -0
- package/dist/apollo/useCache.js +25 -0
- package/dist/bins/cross-env.d.ts +3 -0
- package/dist/bins/cross-env.d.ts.map +1 -0
- package/dist/bins/msw.d.ts +3 -0
- package/dist/bins/msw.d.ts.map +1 -0
- package/dist/bins/redwood.d.ts +9 -0
- package/dist/bins/redwood.d.ts.map +1 -0
- package/dist/bins/rwfw.d.ts +3 -0
- package/dist/bins/rwfw.d.ts.map +1 -0
- package/dist/bins/storybook.d.ts +3 -0
- package/dist/bins/storybook.d.ts.map +1 -0
- package/dist/bins/tsc.d.ts +3 -0
- package/dist/bins/tsc.d.ts.map +1 -0
- package/dist/bundled/apollo-upload-client.d.ts +3 -0
- package/dist/bundled/apollo-upload-client.d.ts.map +1 -0
- package/dist/bundled/apollo-upload-client.js +4 -0
- package/dist/cjs/apollo/fragmentRegistry.d.ts +43 -0
- package/dist/cjs/apollo/fragmentRegistry.d.ts.map +1 -0
- package/dist/cjs/apollo/fragmentRegistry.js +75 -0
- package/dist/cjs/apollo/index.d.ts +77 -0
- package/dist/cjs/apollo/index.d.ts.map +1 -0
- package/dist/cjs/apollo/index.js +216 -0
- package/dist/cjs/apollo/links.d.ts +27 -0
- package/dist/cjs/apollo/links.d.ts.map +1 -0
- package/dist/cjs/apollo/links.js +122 -0
- package/dist/cjs/apollo/sseLink.d.ts +29 -0
- package/dist/cjs/apollo/sseLink.d.ts.map +1 -0
- package/dist/cjs/apollo/sseLink.js +120 -0
- package/dist/cjs/apollo/suspense.d.ts +59 -0
- package/dist/cjs/apollo/suspense.d.ts.map +1 -0
- package/dist/cjs/apollo/suspense.js +127 -0
- package/dist/cjs/apollo/typeOverride.d.ts +21 -0
- package/dist/cjs/apollo/typeOverride.d.ts.map +1 -0
- package/dist/cjs/apollo/typeOverride.js +16 -0
- package/dist/cjs/apollo/useCache.d.ts +22 -0
- package/dist/cjs/apollo/useCache.d.ts.map +1 -0
- package/dist/cjs/apollo/useCache.js +49 -0
- package/dist/cjs/bins/cross-env.d.ts +3 -0
- package/dist/cjs/bins/cross-env.d.ts.map +1 -0
- package/dist/cjs/bins/cross-env.js +30 -0
- package/dist/cjs/bins/msw.d.ts +3 -0
- package/dist/cjs/bins/msw.d.ts.map +1 -0
- package/dist/cjs/bins/msw.js +28 -0
- package/dist/cjs/bins/redwood.d.ts +9 -0
- package/dist/cjs/bins/redwood.d.ts.map +1 -0
- package/dist/cjs/bins/redwood.js +36 -0
- package/dist/cjs/bins/rwfw.d.ts +3 -0
- package/dist/cjs/bins/rwfw.d.ts.map +1 -0
- package/dist/cjs/bins/rwfw.js +36 -0
- package/dist/cjs/bins/storybook.d.ts +3 -0
- package/dist/cjs/bins/storybook.d.ts.map +1 -0
- package/dist/cjs/bins/storybook.js +49 -0
- package/dist/cjs/bins/tsc.d.ts +3 -0
- package/dist/cjs/bins/tsc.d.ts.map +1 -0
- package/dist/cjs/bins/tsc.js +30 -0
- package/dist/cjs/bundled/apollo-upload-client.d.ts +3 -0
- package/dist/cjs/bundled/apollo-upload-client.d.ts.map +1 -0
- package/dist/cjs/bundled/apollo-upload-client.js +2474 -0
- package/dist/cjs/components/DevFatalErrorPage.d.ts +21 -0
- package/dist/cjs/components/DevFatalErrorPage.d.ts.map +1 -0
- package/dist/cjs/components/DevFatalErrorPage.js +436 -0
- package/dist/cjs/components/FatalErrorBoundary.d.ts +24 -0
- package/dist/cjs/components/FatalErrorBoundary.d.ts.map +1 -0
- package/dist/cjs/components/FatalErrorBoundary.js +63 -0
- package/dist/cjs/components/FetchConfigProvider.d.ts +25 -0
- package/dist/cjs/components/FetchConfigProvider.d.ts.map +1 -0
- package/dist/cjs/components/FetchConfigProvider.js +80 -0
- package/dist/cjs/components/GraphQLHooksProvider.d.ts +45 -0
- package/dist/cjs/components/GraphQLHooksProvider.d.ts.map +1 -0
- package/dist/cjs/components/GraphQLHooksProvider.js +135 -0
- package/dist/cjs/components/MetaTags.d.ts +52 -0
- package/dist/cjs/components/MetaTags.d.ts.map +1 -0
- package/dist/cjs/components/MetaTags.js +69 -0
- package/dist/cjs/components/Metadata.d.ts +9 -0
- package/dist/cjs/components/Metadata.d.ts.map +1 -0
- package/dist/cjs/components/Metadata.js +95 -0
- package/dist/cjs/components/PortalHead.d.ts +4 -0
- package/dist/cjs/components/PortalHead.d.ts.map +1 -0
- package/dist/cjs/components/PortalHead.js +59 -0
- package/dist/cjs/components/RedwoodProvider.d.ts +9 -0
- package/dist/cjs/components/RedwoodProvider.d.ts.map +1 -0
- package/dist/cjs/components/RedwoodProvider.js +58 -0
- package/dist/cjs/components/ServerInject.d.ts +26 -0
- package/dist/cjs/components/ServerInject.d.ts.map +1 -0
- package/dist/cjs/components/ServerInject.js +75 -0
- package/dist/cjs/components/cell/CellCacheContext.d.ts +20 -0
- package/dist/cjs/components/cell/CellCacheContext.d.ts.map +1 -0
- package/dist/cjs/components/cell/CellCacheContext.js +53 -0
- package/dist/cjs/components/cell/CellErrorBoundary.d.ts +25 -0
- package/dist/cjs/components/cell/CellErrorBoundary.d.ts.map +1 -0
- package/dist/cjs/components/cell/CellErrorBoundary.js +66 -0
- package/dist/cjs/components/cell/cellTypes.d.ts +152 -0
- package/dist/cjs/components/cell/cellTypes.d.ts.map +1 -0
- package/dist/cjs/components/cell/cellTypes.js +16 -0
- package/dist/cjs/components/cell/createCell.d.ts +10 -0
- package/dist/cjs/components/cell/createCell.d.ts.map +1 -0
- package/dist/cjs/components/cell/createCell.js +165 -0
- package/dist/cjs/components/cell/createCell.test.js +351 -0
- package/dist/cjs/components/cell/createServerCell.d.ts +15 -0
- package/dist/cjs/components/cell/createServerCell.d.ts.map +1 -0
- package/dist/cjs/components/cell/createServerCell.js +91 -0
- package/dist/cjs/components/cell/createSuspendingCell.d.ts +11 -0
- package/dist/cjs/components/cell/createSuspendingCell.d.ts.map +1 -0
- package/dist/cjs/components/cell/createSuspendingCell.js +152 -0
- package/dist/cjs/components/cell/createSuspendingCell.test.js +115 -0
- package/dist/cjs/components/cell/isCellEmpty.d.ts +41 -0
- package/dist/cjs/components/cell/isCellEmpty.d.ts.map +1 -0
- package/dist/cjs/components/cell/isCellEmpty.js +35 -0
- package/dist/cjs/components/htmlTags.d.ts +52 -0
- package/dist/cjs/components/htmlTags.d.ts.map +1 -0
- package/dist/cjs/components/htmlTags.js +88 -0
- package/dist/cjs/config.d.ts +2 -0
- package/dist/cjs/config.d.ts.map +1 -0
- package/dist/cjs/config.js +6 -0
- package/dist/cjs/entry/index.js +39 -0
- package/dist/cjs/global.web-auto-imports.d.ts +30 -0
- package/dist/cjs/global.web-auto-imports.d.ts.map +1 -0
- package/dist/cjs/global.web-auto-imports.js +16 -0
- package/dist/cjs/graphql.d.ts +24 -0
- package/dist/cjs/graphql.d.ts.map +1 -0
- package/dist/cjs/graphql.js +36 -0
- package/dist/cjs/index.d.ts +20 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +80 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/routeHooks.types.d.ts +12 -0
- package/dist/cjs/routeHooks.types.d.ts.map +1 -0
- package/dist/cjs/routeHooks.types.js +16 -0
- package/dist/cjs/server/MiddlewareRequest.d.ts +28 -0
- package/dist/cjs/server/MiddlewareRequest.d.ts.map +1 -0
- package/dist/cjs/server/MiddlewareRequest.js +71 -0
- package/dist/cjs/server/MiddlewareResponse.d.ts +44 -0
- package/dist/cjs/server/MiddlewareResponse.d.ts.map +1 -0
- package/dist/cjs/server/MiddlewareResponse.js +130 -0
- package/dist/cjs/server/middleware.d.ts +17 -0
- package/dist/cjs/server/middleware.d.ts.map +1 -0
- package/dist/cjs/server/middleware.js +24 -0
- package/dist/cjs/server/request.d.ts +2 -0
- package/dist/cjs/server/request.d.ts.map +1 -0
- package/dist/cjs/server/request.js +34 -0
- package/dist/cjs/streamUtils/useDocumentReady.d.ts +11 -0
- package/dist/cjs/streamUtils/useDocumentReady.d.ts.map +1 -0
- package/dist/cjs/streamUtils/useDocumentReady.js +41 -0
- package/dist/cjs/toast/index.d.ts +3 -0
- package/dist/cjs/toast/index.d.ts.map +1 -0
- package/dist/cjs/toast/index.js +41 -0
- package/dist/components/DevFatalErrorPage.d.ts +21 -0
- package/dist/components/DevFatalErrorPage.d.ts.map +1 -0
- package/dist/components/DevFatalErrorPage.js +402 -0
- package/dist/components/FatalErrorBoundary.d.ts +24 -0
- package/dist/components/FatalErrorBoundary.d.ts.map +1 -0
- package/dist/components/FatalErrorBoundary.js +29 -0
- package/dist/components/FetchConfigProvider.d.ts +25 -0
- package/dist/components/FetchConfigProvider.d.ts.map +1 -0
- package/dist/components/FetchConfigProvider.js +43 -0
- package/dist/components/GraphQLHooksProvider.d.ts +45 -0
- package/dist/components/GraphQLHooksProvider.d.ts.map +1 -0
- package/dist/components/GraphQLHooksProvider.js +94 -0
- package/dist/components/MetaTags.d.ts +52 -0
- package/dist/components/MetaTags.d.ts.map +1 -0
- package/dist/components/MetaTags.js +35 -0
- package/dist/components/Metadata.d.ts +9 -0
- package/dist/components/Metadata.d.ts.map +1 -0
- package/dist/components/Metadata.js +61 -0
- package/dist/components/PortalHead.d.ts +4 -0
- package/dist/components/PortalHead.d.ts.map +1 -0
- package/dist/components/PortalHead.js +29 -0
- package/dist/components/RedwoodProvider.d.ts +9 -0
- package/dist/components/RedwoodProvider.d.ts.map +1 -0
- package/dist/components/RedwoodProvider.js +24 -0
- package/dist/components/ServerInject.d.ts +26 -0
- package/dist/components/ServerInject.d.ts.map +1 -0
- package/dist/components/ServerInject.js +37 -0
- package/dist/components/cell/CellCacheContext.d.ts +20 -0
- package/dist/components/cell/CellCacheContext.d.ts.map +1 -0
- package/dist/components/cell/CellCacheContext.js +18 -0
- package/dist/components/cell/CellErrorBoundary.d.ts +25 -0
- package/dist/components/cell/CellErrorBoundary.d.ts.map +1 -0
- package/dist/components/cell/CellErrorBoundary.js +32 -0
- package/dist/components/cell/cellTypes.d.ts +152 -0
- package/dist/components/cell/cellTypes.d.ts.map +1 -0
- package/dist/components/cell/cellTypes.js +0 -0
- package/dist/components/cell/createCell.d.ts +10 -0
- package/dist/components/cell/createCell.d.ts.map +1 -0
- package/dist/components/cell/createCell.js +131 -0
- package/dist/components/cell/createCell.test.js +328 -0
- package/dist/components/cell/createServerCell.d.ts +15 -0
- package/dist/components/cell/createServerCell.d.ts.map +1 -0
- package/dist/components/cell/createServerCell.js +57 -0
- package/dist/components/cell/createSuspendingCell.d.ts +11 -0
- package/dist/components/cell/createSuspendingCell.d.ts.map +1 -0
- package/dist/components/cell/createSuspendingCell.js +118 -0
- package/dist/components/cell/createSuspendingCell.test.js +92 -0
- package/dist/components/cell/isCellEmpty.d.ts +41 -0
- package/dist/components/cell/isCellEmpty.d.ts.map +1 -0
- package/dist/components/cell/isCellEmpty.js +11 -0
- package/dist/components/htmlTags.d.ts +52 -0
- package/dist/components/htmlTags.d.ts.map +1 -0
- package/dist/components/htmlTags.js +53 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +5 -0
- package/dist/entry/index.d.ts +1 -0
- package/dist/entry/index.js +16 -0
- package/dist/global.web-auto-imports.d.ts +30 -0
- package/dist/global.web-auto-imports.d.ts.map +1 -0
- package/dist/global.web-auto-imports.js +0 -0
- package/dist/graphql.d.ts +24 -0
- package/dist/graphql.d.ts.map +1 -0
- package/dist/graphql.js +12 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/package.json +1 -0
- package/dist/routeHooks.types.d.ts +12 -0
- package/dist/routeHooks.types.d.ts.map +1 -0
- package/dist/routeHooks.types.js +0 -0
- package/dist/server/MiddlewareRequest.d.ts +28 -0
- package/dist/server/MiddlewareRequest.d.ts.map +1 -0
- package/dist/server/MiddlewareRequest.js +46 -0
- package/dist/server/MiddlewareResponse.d.ts +44 -0
- package/dist/server/MiddlewareResponse.d.ts.map +1 -0
- package/dist/server/MiddlewareResponse.js +95 -0
- package/dist/server/middleware.d.ts +17 -0
- package/dist/server/middleware.d.ts.map +1 -0
- package/dist/server/middleware.js +2 -0
- package/dist/server/request.d.ts +2 -0
- package/dist/server/request.d.ts.map +1 -0
- package/dist/server/request.js +12 -0
- package/dist/streamUtils/useDocumentReady.d.ts +11 -0
- package/dist/streamUtils/useDocumentReady.d.ts.map +1 -0
- package/dist/streamUtils/useDocumentReady.js +17 -0
- package/dist/toast/index.d.ts +3 -0
- package/dist/toast/index.d.ts.map +1 -0
- package/dist/toast/index.js +5 -0
- package/package.json +193 -0
- package/src/entry/index.jsx +29 -0
- package/toast/index.js +2 -0
- package/toast/package.json +4 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Request as WhatWgRequest } from '@whatwg-node/fetch';
|
|
2
|
+
import type { ServerAuthState } from '@cedarjs/auth/dist/AuthProvider/ServerAuthProvider.js';
|
|
3
|
+
import { CookieJar } from '@cedarjs/cookie-jar';
|
|
4
|
+
declare class AuthStateJar {
|
|
5
|
+
private _data;
|
|
6
|
+
private _initialState;
|
|
7
|
+
constructor(initialState: ServerAuthState);
|
|
8
|
+
/**
|
|
9
|
+
* Always returns the server auth state, even if its set to null,
|
|
10
|
+
* it'll fall back to the initial state (created when mwReq is initialized)
|
|
11
|
+
*/
|
|
12
|
+
get(): ServerAuthState;
|
|
13
|
+
set(value: ServerAuthState | null): void;
|
|
14
|
+
clear(): void;
|
|
15
|
+
}
|
|
16
|
+
export declare class MiddlewareRequest extends WhatWgRequest {
|
|
17
|
+
cookies: CookieJar;
|
|
18
|
+
serverAuthState: AuthStateJar;
|
|
19
|
+
constructor(input: Request);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Converts a Web API Request object to a MiddlewareRequest object.
|
|
23
|
+
* Also ensures that serverAuthState is fresh for each request
|
|
24
|
+
* (assuming that it is a new instance for each request)
|
|
25
|
+
*/
|
|
26
|
+
export declare const createMiddlewareRequest: (req: Request) => MiddlewareRequest;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=MiddlewareRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareRequest.d.ts","sourceRoot":"","sources":["../../src/server/MiddlewareRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,aAAa,CAAiB;gBAE1B,YAAY,EAAE,eAAe;IAKzC;;;OAGG;IACH,GAAG;IAIH,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAIjC,KAAK;CAGN;AAED,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,EAAE,SAAS,CAAA;IAClB,eAAe,EAAE,YAAY,CAAA;gBAEjB,KAAK,EAAE,OAAO;CAY3B;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAS,OAAO,sBAGnD,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Request as WhatWgRequest } from "@whatwg-node/fetch";
|
|
2
|
+
import { middlewareDefaultAuthProviderState } from "@cedarjs/auth/dist/AuthProvider/AuthProviderState.js";
|
|
3
|
+
import { CookieJar } from "@cedarjs/cookie-jar";
|
|
4
|
+
class AuthStateJar {
|
|
5
|
+
_data;
|
|
6
|
+
_initialState;
|
|
7
|
+
constructor(initialState) {
|
|
8
|
+
this._data = initialState;
|
|
9
|
+
this._initialState = initialState;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Always returns the server auth state, even if its set to null,
|
|
13
|
+
* it'll fall back to the initial state (created when mwReq is initialized)
|
|
14
|
+
*/
|
|
15
|
+
get() {
|
|
16
|
+
return this._data || this._initialState;
|
|
17
|
+
}
|
|
18
|
+
set(value) {
|
|
19
|
+
this._data = value;
|
|
20
|
+
}
|
|
21
|
+
clear() {
|
|
22
|
+
this._data = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
class MiddlewareRequest extends WhatWgRequest {
|
|
26
|
+
cookies;
|
|
27
|
+
serverAuthState;
|
|
28
|
+
constructor(input) {
|
|
29
|
+
super(input);
|
|
30
|
+
const defaultServerAuthState = {
|
|
31
|
+
...middlewareDefaultAuthProviderState,
|
|
32
|
+
cookieHeader: input.headers.get("Cookie"),
|
|
33
|
+
roles: []
|
|
34
|
+
};
|
|
35
|
+
this.cookies = new CookieJar(input.headers.get("Cookie"));
|
|
36
|
+
this.serverAuthState = new AuthStateJar(defaultServerAuthState);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const createMiddlewareRequest = (req) => {
|
|
40
|
+
const middlewareRequest = new MiddlewareRequest(req);
|
|
41
|
+
return middlewareRequest;
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
MiddlewareRequest,
|
|
45
|
+
createMiddlewareRequest
|
|
46
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CookieJar } from '@cedarjs/cookie-jar';
|
|
2
|
+
export declare class MiddlewareShortCircuit extends Error {
|
|
3
|
+
mwResponse: MiddlewareResponse;
|
|
4
|
+
constructor(body?: BodyInit | null, responseInit?: ResponseInit);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* This is actually a Response builder class
|
|
8
|
+
* After setting all the required properties, we can call `build` to get a Web
|
|
9
|
+
* API Response object
|
|
10
|
+
*/
|
|
11
|
+
export declare class MiddlewareResponse {
|
|
12
|
+
cookies: CookieJar;
|
|
13
|
+
headers: Headers;
|
|
14
|
+
body: BodyInit | null | undefined;
|
|
15
|
+
status: number;
|
|
16
|
+
statusText: string | undefined;
|
|
17
|
+
constructor(body?: BodyInit | null, init?: ResponseInit);
|
|
18
|
+
static fromResponse: (res: Response) => MiddlewareResponse;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* Short circuit the middleware chain and return early.
|
|
22
|
+
* This will skip all the remaining middleware and return the response immediately.
|
|
23
|
+
*
|
|
24
|
+
* @returns MiddlewareResponse
|
|
25
|
+
*/
|
|
26
|
+
shortCircuit: (body?: BodyInit | null, init?: ResponseInit) => never;
|
|
27
|
+
/**
|
|
28
|
+
* Skip the current middleware and move to the next one.
|
|
29
|
+
* Careful: It creates a new Response, so any middleware that modifies the
|
|
30
|
+
* response before the current one will be lost.
|
|
31
|
+
* @returns MiddlewareResponse
|
|
32
|
+
*/
|
|
33
|
+
static next: () => MiddlewareResponse;
|
|
34
|
+
/**
|
|
35
|
+
* Return a MiddlewareResponse object that will redirect the client to the
|
|
36
|
+
* specified location
|
|
37
|
+
*
|
|
38
|
+
* @returns MiddlewareResponse
|
|
39
|
+
*/
|
|
40
|
+
static redirect: (location: string, type?: "permanent" | "temporary") => MiddlewareResponse;
|
|
41
|
+
isRedirect: () => boolean;
|
|
42
|
+
toResponse: () => Response;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=MiddlewareResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareResponse.d.ts","sourceRoot":"","sources":["../../src/server/MiddlewareResponse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,UAAU,EAAE,kBAAkB,CAAA;gBAElB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,YAAY,CAAC,EAAE,YAAY;CAKhE;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,YAAkB;IACzB,OAAO,UAAgB;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,MAAM,SAAM;IACZ,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;gBAElB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY;IAOvD,MAAM,CAAC,YAAY,QAAS,QAAQ,wBAMnC;IAED;;;;;;OAMG;IACH,YAAY,UAAW,QAAQ,GAAG,IAAI,SAAS,YAAY,WAgB1D;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,2BAEV;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,aACH,MAAM,SACV,WAAW,GAAG,WAAW,wBAOhC;IAED,UAAU,gBAET;IAED,UAAU,iBAaT;CACF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Response as PonyResponse } from "@whatwg-node/fetch";
|
|
2
|
+
import cookie from "cookie";
|
|
3
|
+
import { CookieJar } from "@cedarjs/cookie-jar";
|
|
4
|
+
class MiddlewareShortCircuit extends Error {
|
|
5
|
+
mwResponse;
|
|
6
|
+
constructor(body, responseInit) {
|
|
7
|
+
super("Short circuit. Skipping all middleware, and returning early");
|
|
8
|
+
this.name = "MiddlewareShortCircuit";
|
|
9
|
+
this.mwResponse = new MiddlewareResponse(body, responseInit);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
class MiddlewareResponse {
|
|
13
|
+
cookies = new CookieJar();
|
|
14
|
+
headers = new Headers();
|
|
15
|
+
body;
|
|
16
|
+
status = 200;
|
|
17
|
+
statusText;
|
|
18
|
+
constructor(body, init) {
|
|
19
|
+
this.body = body;
|
|
20
|
+
this.headers = new Headers(init?.headers);
|
|
21
|
+
this.status = init?.status || 200;
|
|
22
|
+
this.statusText = init?.statusText;
|
|
23
|
+
}
|
|
24
|
+
static fromResponse = (res) => {
|
|
25
|
+
return new MiddlewareResponse(res.body, {
|
|
26
|
+
headers: res.headers,
|
|
27
|
+
status: res.status,
|
|
28
|
+
statusText: res.statusText
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* Short circuit the middleware chain and return early.
|
|
34
|
+
* This will skip all the remaining middleware and return the response immediately.
|
|
35
|
+
*
|
|
36
|
+
* @returns MiddlewareResponse
|
|
37
|
+
*/
|
|
38
|
+
shortCircuit = (body, init) => {
|
|
39
|
+
for (const [ckName, ckParams] of this.cookies) {
|
|
40
|
+
this.headers.append(
|
|
41
|
+
"Set-Cookie",
|
|
42
|
+
cookie.serialize(ckName, ckParams.value, ckParams.options)
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
throw new MiddlewareShortCircuit(
|
|
46
|
+
body || this.body,
|
|
47
|
+
init || {
|
|
48
|
+
headers: this.headers,
|
|
49
|
+
status: this.status,
|
|
50
|
+
statusText: this.statusText
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Skip the current middleware and move to the next one.
|
|
56
|
+
* Careful: It creates a new Response, so any middleware that modifies the
|
|
57
|
+
* response before the current one will be lost.
|
|
58
|
+
* @returns MiddlewareResponse
|
|
59
|
+
*/
|
|
60
|
+
static next = () => {
|
|
61
|
+
return new MiddlewareResponse();
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Return a MiddlewareResponse object that will redirect the client to the
|
|
65
|
+
* specified location
|
|
66
|
+
*
|
|
67
|
+
* @returns MiddlewareResponse
|
|
68
|
+
*/
|
|
69
|
+
static redirect = (location, type = "temporary") => {
|
|
70
|
+
const res = new MiddlewareResponse();
|
|
71
|
+
res.headers.set("Location", location);
|
|
72
|
+
res.status = type === "permanent" ? 301 : 302;
|
|
73
|
+
return res;
|
|
74
|
+
};
|
|
75
|
+
isRedirect = () => {
|
|
76
|
+
return this.status === 301 || this.status === 302;
|
|
77
|
+
};
|
|
78
|
+
toResponse = () => {
|
|
79
|
+
for (const [ckName, ckParams] of this.cookies) {
|
|
80
|
+
this.headers.append(
|
|
81
|
+
"Set-Cookie",
|
|
82
|
+
cookie.serialize(ckName, ckParams.value, ckParams.options)
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
return new PonyResponse(this.body, {
|
|
86
|
+
headers: this.headers,
|
|
87
|
+
status: this.status,
|
|
88
|
+
statusText: this.statusText
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export {
|
|
93
|
+
MiddlewareResponse,
|
|
94
|
+
MiddlewareShortCircuit
|
|
95
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ViteDevServer } from 'vite';
|
|
2
|
+
import type { RWRouteManifestItem } from '@cedarjs/internal/dist/routes.js';
|
|
3
|
+
import type { MiddlewareRequest } from './MiddlewareRequest.js';
|
|
4
|
+
import type { MiddlewareResponse } from './MiddlewareResponse.js';
|
|
5
|
+
export * from './MiddlewareRequest.js';
|
|
6
|
+
export * from './MiddlewareResponse.js';
|
|
7
|
+
export type MiddlewareInvokeOptions = {
|
|
8
|
+
route?: RWRouteManifestItem;
|
|
9
|
+
cssPaths?: string[];
|
|
10
|
+
params?: Record<string, unknown>;
|
|
11
|
+
viteDevServer?: ViteDevServer;
|
|
12
|
+
};
|
|
13
|
+
export type Middleware = (req: MiddlewareRequest, res: MiddlewareResponse, options?: MiddlewareInvokeOptions) => Promise<MiddlewareResponse> | MiddlewareResponse | void;
|
|
14
|
+
export interface MiddlewareClass {
|
|
15
|
+
invoke: Middleware;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/server/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAIzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAE3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AAEvC,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,kBAAkB,EACvB,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAA;AAE5D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAA;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Use this hook to run a function when the document is ready.
|
|
4
|
+
*
|
|
5
|
+
* Useful to run things on ~first~ hard render only. Note that this will not fire on soft renders
|
|
6
|
+
*
|
|
7
|
+
* @param callback Any function you want to run, when document is ready
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare const useDocumentReady: (callback: () => void) => void;
|
|
11
|
+
//# sourceMappingURL=useDocumentReady.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDocumentReady.d.ts","sourceRoot":"","sources":["../../src/streamUtils/useDocumentReady.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,aAAc,MAAM,IAAI,SAepD,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
const useDocumentReady = (callback) => {
|
|
3
|
+
return useEffect(() => {
|
|
4
|
+
const handler = (_e) => {
|
|
5
|
+
if (document.readyState === "complete") {
|
|
6
|
+
callback();
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
document.addEventListener("readystatechange", handler);
|
|
10
|
+
return () => {
|
|
11
|
+
document.removeEventListener("readystatechange", handler);
|
|
12
|
+
};
|
|
13
|
+
}, [callback]);
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
useDocumentReady
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAClD,cAAc,iBAAiB,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cedarjs/web",
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
7
|
+
"directory": "packages/web"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"require": {
|
|
18
|
+
"types": "./dist/cjs/index.d.ts",
|
|
19
|
+
"default": "./dist/cjs/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"./serverInject": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/components/ServerInject.d.ts",
|
|
25
|
+
"default": "./dist/components/ServerInject.js"
|
|
26
|
+
},
|
|
27
|
+
"require": {
|
|
28
|
+
"types": "./dist/cjs/components/ServerInject.d.ts",
|
|
29
|
+
"default": "./dist/cjs/components/ServerInject.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"./request": {
|
|
33
|
+
"import": {
|
|
34
|
+
"types": "./dist/server/request.d.ts",
|
|
35
|
+
"default": "./dist/server/request.js"
|
|
36
|
+
},
|
|
37
|
+
"require": {
|
|
38
|
+
"types": "./dist/cjs/server/request.d.ts",
|
|
39
|
+
"default": "./dist/cjs/server/request.js"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"./middleware": {
|
|
43
|
+
"import": {
|
|
44
|
+
"types": "./dist/server/middleware.d.ts",
|
|
45
|
+
"default": "./dist/server/middleware.js"
|
|
46
|
+
},
|
|
47
|
+
"require": {
|
|
48
|
+
"types": "./dist/cjs/server/middleware.d.ts",
|
|
49
|
+
"default": "./dist/cjs/server/middleware.js"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"./dist/server/middleware": {
|
|
53
|
+
"import": {
|
|
54
|
+
"types": "./dist/server/middleware.d.ts",
|
|
55
|
+
"default": "./dist/server/middleware.js"
|
|
56
|
+
},
|
|
57
|
+
"require": {
|
|
58
|
+
"types": "./dist/cjs/server/middleware.d.ts",
|
|
59
|
+
"default": "./dist/cjs/server/middleware.js"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"./dist/components/*": {
|
|
63
|
+
"require": "./dist/cjs/components/*.js",
|
|
64
|
+
"import": "./dist/components/*.js"
|
|
65
|
+
},
|
|
66
|
+
"./htmlTags": {
|
|
67
|
+
"require": "./dist/cjs/components/htmlTags.js",
|
|
68
|
+
"import": "./dist/components/htmlTags.js"
|
|
69
|
+
},
|
|
70
|
+
"./Metadata": {
|
|
71
|
+
"require": "./dist/cjs/components/Metadata.js",
|
|
72
|
+
"import": "./dist/components/Metadata.js"
|
|
73
|
+
},
|
|
74
|
+
"./dist/apollo/suspense": {
|
|
75
|
+
"require": "./dist/cjs/apollo/suspense.js",
|
|
76
|
+
"import": "./dist/apollo/suspense.js"
|
|
77
|
+
},
|
|
78
|
+
"./dist/apollo/sseLink": {
|
|
79
|
+
"require": "./dist/cjs/apollo/sseLink.js",
|
|
80
|
+
"import": "./dist/apollo/sseLink.js"
|
|
81
|
+
},
|
|
82
|
+
"./dist/graphql.js": {
|
|
83
|
+
"require": "./dist/cjs/graphql.js",
|
|
84
|
+
"import": "./dist/graphql.js"
|
|
85
|
+
},
|
|
86
|
+
"./webpackEntry": {
|
|
87
|
+
"default": "./dist/entry/index.js"
|
|
88
|
+
},
|
|
89
|
+
"./toast": {
|
|
90
|
+
"import": {
|
|
91
|
+
"types": "./dist/toast/index.d.ts",
|
|
92
|
+
"default": "./dist/toast/index.js"
|
|
93
|
+
},
|
|
94
|
+
"require": {
|
|
95
|
+
"types": "./dist/cjs/toast/index.d.ts",
|
|
96
|
+
"default": "./dist/cjs/toast/index.js"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"./apollo": {
|
|
100
|
+
"import": {
|
|
101
|
+
"types": "./dist/apollo/index.d.ts",
|
|
102
|
+
"default": "./dist/apollo/index.js"
|
|
103
|
+
},
|
|
104
|
+
"require": {
|
|
105
|
+
"types": "./dist/cjs/apollo/index.d.ts",
|
|
106
|
+
"default": "./dist/cjs/apollo/index.js"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"./forceEsmApollo": {
|
|
110
|
+
"require": "./dist/apollo/index.js",
|
|
111
|
+
"import": "./dist/apollo/index.js"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"main": "./dist/index.js",
|
|
115
|
+
"types": "dist/index.d.ts",
|
|
116
|
+
"bin": {
|
|
117
|
+
"cross-env": "./dist/cjs/bins/cross-env.js",
|
|
118
|
+
"msw": "./dist/cjs/bins/msw.js",
|
|
119
|
+
"redwood": "./dist/cjs/bins/redwood.js",
|
|
120
|
+
"rw": "./dist/cjs/bins/redwood.js",
|
|
121
|
+
"rwfw": "./dist/cjs/bins/rwfw.js",
|
|
122
|
+
"storybook": "./dist/cjs/bins/storybook.js",
|
|
123
|
+
"tsc": "./dist/cjs/bins/tsc.js"
|
|
124
|
+
},
|
|
125
|
+
"files": [
|
|
126
|
+
"dist",
|
|
127
|
+
"apollo",
|
|
128
|
+
"toast",
|
|
129
|
+
"src/entry"
|
|
130
|
+
],
|
|
131
|
+
"scripts": {
|
|
132
|
+
"build": "tsx ./build.ts && yarn build:types",
|
|
133
|
+
"build:pack": "yarn pack -o cedar-web.tgz",
|
|
134
|
+
"build:types": "tsc --build --verbose ./tsconfig.build.json ./tsconfig.cjs.json",
|
|
135
|
+
"build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx\" --ignore dist --exec \"yarn build\"",
|
|
136
|
+
"check:attw": "tsx ./attw.ts",
|
|
137
|
+
"check:package": "concurrently npm:check:attw yarn:publint",
|
|
138
|
+
"prepublishOnly": "NODE_ENV=production yarn build",
|
|
139
|
+
"test": "vitest run",
|
|
140
|
+
"test:types": "tstyche",
|
|
141
|
+
"test:watch": "vitest watch"
|
|
142
|
+
},
|
|
143
|
+
"dependencies": {
|
|
144
|
+
"@apollo/client": "3.11.1",
|
|
145
|
+
"@babel/runtime-corejs3": "7.26.10",
|
|
146
|
+
"@cedarjs/auth": "0.0.4",
|
|
147
|
+
"@cedarjs/server-store": "0.0.4",
|
|
148
|
+
"@whatwg-node/fetch": "0.9.21",
|
|
149
|
+
"apollo-upload-client": "18.0.1",
|
|
150
|
+
"cookie": "0.7.2",
|
|
151
|
+
"core-js": "3.42.0",
|
|
152
|
+
"graphql": "16.9.0",
|
|
153
|
+
"graphql-sse": "2.5.3",
|
|
154
|
+
"graphql-tag": "2.12.6",
|
|
155
|
+
"react-helmet-async": "2.0.5",
|
|
156
|
+
"react-hot-toast": "2.4.1",
|
|
157
|
+
"stacktracey": "2.1.8",
|
|
158
|
+
"ts-toolbelt": "9.6.0"
|
|
159
|
+
},
|
|
160
|
+
"devDependencies": {
|
|
161
|
+
"@apollo/client-react-streaming": "0.10.0",
|
|
162
|
+
"@arethetypeswrong/cli": "0.16.4",
|
|
163
|
+
"@babel/cli": "7.26.4",
|
|
164
|
+
"@babel/core": "^7.26.10",
|
|
165
|
+
"@babel/plugin-transform-runtime": "7.26.10",
|
|
166
|
+
"@babel/runtime": "7.25.7",
|
|
167
|
+
"@cedarjs/framework-tools": "0.0.4",
|
|
168
|
+
"@cedarjs/internal": "0.0.4",
|
|
169
|
+
"@rollup/plugin-babel": "6.0.4",
|
|
170
|
+
"@testing-library/jest-dom": "6.5.0",
|
|
171
|
+
"@testing-library/react": "14.3.1",
|
|
172
|
+
"@types/apollo-upload-client": "^18",
|
|
173
|
+
"@types/react": "^18.2.55",
|
|
174
|
+
"@types/react-dom": "^18.2.19",
|
|
175
|
+
"concurrently": "8.2.2",
|
|
176
|
+
"nodemon": "3.1.9",
|
|
177
|
+
"publint": "0.3.11",
|
|
178
|
+
"react": "18.3.1",
|
|
179
|
+
"react-dom": "18.3.1",
|
|
180
|
+
"tstyche": "3.0.0",
|
|
181
|
+
"tsx": "4.19.3",
|
|
182
|
+
"typescript": "5.6.2",
|
|
183
|
+
"vitest": "2.1.9"
|
|
184
|
+
},
|
|
185
|
+
"peerDependencies": {
|
|
186
|
+
"react": "18.3.1",
|
|
187
|
+
"react-dom": "18.3.1"
|
|
188
|
+
},
|
|
189
|
+
"publishConfig": {
|
|
190
|
+
"access": "public"
|
|
191
|
+
},
|
|
192
|
+
"gitHead": "5b4f77f985bd86ee31ee7338312627accf0cb85b"
|
|
193
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { hydrateRoot, createRoot } from 'react-dom/client'
|
|
4
|
+
|
|
5
|
+
import App from '~redwood-app-root'
|
|
6
|
+
import Routes from '~redwood-app-routes'
|
|
7
|
+
/**
|
|
8
|
+
* When `#redwood-app` isn't empty then it's very likely that you're using
|
|
9
|
+
* prerendering. So React attaches event listeners to the existing markup
|
|
10
|
+
* rather than replacing it.
|
|
11
|
+
* https://react.dev/reference/react-dom/client/hydrateRoot
|
|
12
|
+
*/
|
|
13
|
+
const redwoodAppElement = document.getElementById('redwood-app')
|
|
14
|
+
|
|
15
|
+
if (redwoodAppElement.children?.length > 0) {
|
|
16
|
+
hydrateRoot(
|
|
17
|
+
redwoodAppElement,
|
|
18
|
+
<App>
|
|
19
|
+
<Routes />
|
|
20
|
+
</App>,
|
|
21
|
+
)
|
|
22
|
+
} else {
|
|
23
|
+
const root = createRoot(redwoodAppElement)
|
|
24
|
+
root.render(
|
|
25
|
+
<App>
|
|
26
|
+
<Routes />
|
|
27
|
+
</App>,
|
|
28
|
+
)
|
|
29
|
+
}
|
package/toast/index.js
ADDED