@comet/site-react 9.0.0-canary-20251002124333 → 9.0.0-canary-20251113142723
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/lib/blocks/DamFileDownloadLinkBlock.d.ts +12 -0
- package/lib/blocks/DamFileDownloadLinkBlock.d.ts.map +1 -0
- package/lib/blocks/DamFileDownloadLinkBlock.js +28 -0
- package/lib/blocks/EmailLinkBlock.d.ts +12 -0
- package/lib/blocks/EmailLinkBlock.d.ts.map +1 -0
- package/lib/blocks/EmailLinkBlock.js +21 -0
- package/lib/blocks/ExternalLinkBlock.d.ts +12 -0
- package/lib/blocks/ExternalLinkBlock.d.ts.map +1 -0
- package/lib/blocks/ExternalLinkBlock.js +46 -0
- package/lib/blocks/PhoneLinkBlock.d.ts +12 -0
- package/lib/blocks/PhoneLinkBlock.d.ts.map +1 -0
- package/lib/blocks/PhoneLinkBlock.js +21 -0
- package/lib/blocks/helpers/useIsElementInViewport.d.ts +1 -1
- package/lib/blocks/helpers/useIsElementInViewport.d.ts.map +1 -1
- package/lib/blocks.generated.d.ts +1 -1
- package/lib/blocks.generated.d.ts.map +1 -1
- package/lib/graphQLFetch/fetchInMemoryCache.js +2 -2
- package/lib/iframebridge/IFrameBridge.js +1 -1
- package/lib/iframebridge/withPreview.js +1 -1
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -0
- package/lib/persistedQueries/createPersistedQueryGraphQLFetch.d.ts +5 -0
- package/lib/persistedQueries/createPersistedQueryGraphQLFetch.d.ts.map +1 -0
- package/lib/persistedQueries/createPersistedQueryGraphQLFetch.js +68 -0
- package/lib/persistedQueries/persistedQueryRoute.d.ts +7 -0
- package/lib/persistedQueries/persistedQueryRoute.d.ts.map +1 -0
- package/lib/persistedQueries/persistedQueryRoute.js +100 -0
- package/lib/persistedQueries/webpackPersistedQueriesLoader.d.ts +7 -0
- package/lib/persistedQueries/webpackPersistedQueriesLoader.d.ts.map +1 -0
- package/lib/persistedQueries/webpackPersistedQueriesLoader.js +51 -0
- package/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.d.ts +18 -0
- package/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.d.ts.map +1 -0
- package/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.js +8 -0
- package/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.d.ts +3 -0
- package/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.d.ts.map +1 -0
- package/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.js +6 -0
- package/lib/style.css +1 -1
- package/package.json +17 -12
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { DamFileDownloadLinkBlockData } from '../blocks.generated';
|
|
3
|
+
import { PropsWithData } from './PropsWithData';
|
|
4
|
+
interface Props extends PropsWithData<DamFileDownloadLinkBlockData> {
|
|
5
|
+
children: ReactElement;
|
|
6
|
+
title?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
legacyBehavior?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const DamFileDownloadLinkBlock: ({ ...componentProps }: import('../iframebridge/withPreview').WithPreviewProps & Props) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=DamFileDownloadLinkBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DamFileDownloadLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/DamFileDownloadLinkBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,UAAU,KAAM,SAAQ,aAAa,CAAC,4BAA4B,CAAC;IAC/D,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,wBAAwB,oIA4BpC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cloneElement } from "react";
|
|
4
|
+
import { withPreview } from "../iframebridge/withPreview.js";
|
|
5
|
+
const DamFileDownloadLinkBlock = withPreview(
|
|
6
|
+
({ data: { file, openFileType }, children, title, className, legacyBehavior }) => {
|
|
7
|
+
if (!file) {
|
|
8
|
+
if (legacyBehavior) {
|
|
9
|
+
return children;
|
|
10
|
+
}
|
|
11
|
+
return /* @__PURE__ */ jsx("span", { className, children });
|
|
12
|
+
}
|
|
13
|
+
const href = file.fileUrl;
|
|
14
|
+
const target = openFileType === "NewTab" ? "_blank" : void 0;
|
|
15
|
+
if (legacyBehavior) {
|
|
16
|
+
return cloneElement(children, {
|
|
17
|
+
href,
|
|
18
|
+
target,
|
|
19
|
+
title
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return /* @__PURE__ */ jsx("a", { href, target, title, className, children });
|
|
23
|
+
},
|
|
24
|
+
{ label: "DamFileDownloadLink" }
|
|
25
|
+
);
|
|
26
|
+
export {
|
|
27
|
+
DamFileDownloadLinkBlock
|
|
28
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { EmailLinkBlockData } from '../blocks.generated';
|
|
3
|
+
import { PropsWithData } from './PropsWithData';
|
|
4
|
+
interface EmailLinkBlockProps extends PropsWithData<EmailLinkBlockData> {
|
|
5
|
+
children: ReactElement;
|
|
6
|
+
title?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
legacyBehavior?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const EmailLinkBlock: ({ data: { email }, children, title, className, legacyBehavior }: EmailLinkBlockProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=EmailLinkBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/EmailLinkBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,UAAU,mBAAoB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IACnE,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,GAAI,iEAAiE,mBAAmB,4CAuBlH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cloneElement } from "react";
|
|
3
|
+
const EmailLinkBlock = ({ data: { email }, children, title, className, legacyBehavior }) => {
|
|
4
|
+
if (!email) {
|
|
5
|
+
if (legacyBehavior) {
|
|
6
|
+
return children;
|
|
7
|
+
}
|
|
8
|
+
return /* @__PURE__ */ jsx("span", { className, children });
|
|
9
|
+
}
|
|
10
|
+
const href = `mailto:${email}`;
|
|
11
|
+
if (legacyBehavior) {
|
|
12
|
+
return cloneElement(
|
|
13
|
+
children,
|
|
14
|
+
{ href, title }
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx("a", { href, title, className, children });
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
EmailLinkBlock
|
|
21
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { ExternalLinkBlockData } from '../blocks.generated';
|
|
3
|
+
import { PropsWithData } from './PropsWithData';
|
|
4
|
+
interface ExternalLinkBlockProps extends PropsWithData<ExternalLinkBlockData> {
|
|
5
|
+
children: ReactElement;
|
|
6
|
+
title?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
legacyBehavior?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function ExternalLinkBlock({ data: { targetUrl, openInNewWindow }, children, title, className, legacyBehavior }: ExternalLinkBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ExternalLinkBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/ExternalLinkBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA2F,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEnI,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,UAAU,sBAAuB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IACzE,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,sBAAsB,2CAwD7I"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cloneElement } from "react";
|
|
4
|
+
import { usePreview } from "../preview/usePreview.js";
|
|
5
|
+
import { sendSitePreviewIFrameMessage } from "../sitePreview/iframebridge/sendSitePreviewIFrameMessage.js";
|
|
6
|
+
import { SitePreviewIFrameMessageType } from "../sitePreview/iframebridge/SitePreviewIFrameMessage.js";
|
|
7
|
+
function ExternalLinkBlock({ data: { targetUrl, openInNewWindow }, children, title, className, legacyBehavior }) {
|
|
8
|
+
const preview = usePreview();
|
|
9
|
+
if (preview.previewType === "SitePreview" || preview.previewType === "BlockPreview") {
|
|
10
|
+
const onClick = (event) => {
|
|
11
|
+
event.preventDefault();
|
|
12
|
+
if (preview.previewType === "SitePreview") {
|
|
13
|
+
sendSitePreviewIFrameMessage({
|
|
14
|
+
cometType: SitePreviewIFrameMessageType.OpenLink,
|
|
15
|
+
data: { link: { openInNewWindow, targetUrl } }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
if (legacyBehavior) {
|
|
20
|
+
return cloneElement(
|
|
21
|
+
children,
|
|
22
|
+
{ href: "#", onClick, title }
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return /* @__PURE__ */ jsx("a", { href: "#", onClick, title, className, children });
|
|
26
|
+
} else {
|
|
27
|
+
if (!targetUrl) {
|
|
28
|
+
if (legacyBehavior) {
|
|
29
|
+
return children;
|
|
30
|
+
}
|
|
31
|
+
return /* @__PURE__ */ jsx("span", { className, children });
|
|
32
|
+
}
|
|
33
|
+
const href = targetUrl;
|
|
34
|
+
const target = openInNewWindow ? "_blank" : void 0;
|
|
35
|
+
if (legacyBehavior) {
|
|
36
|
+
return cloneElement(
|
|
37
|
+
children,
|
|
38
|
+
{ href, target, title }
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
return /* @__PURE__ */ jsx("a", { href, target, title, className, children });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export {
|
|
45
|
+
ExternalLinkBlock
|
|
46
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { PhoneLinkBlockData } from '../blocks.generated';
|
|
3
|
+
import { PropsWithData } from './PropsWithData';
|
|
4
|
+
interface PhoneLinkBlockProps extends PropsWithData<PhoneLinkBlockData> {
|
|
5
|
+
children: ReactElement;
|
|
6
|
+
title?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
legacyBehavior?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const PhoneLinkBlock: ({ data: { phone }, children, title, className, legacyBehavior }: PhoneLinkBlockProps) => React.ReactNode;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=PhoneLinkBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/PhoneLinkBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,UAAU,mBAAoB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IACnE,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,GAAI,iEAAiE,mBAAmB,KAAG,KAAK,CAAC,SAuB3H,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cloneElement } from "react";
|
|
3
|
+
const PhoneLinkBlock = ({ data: { phone }, children, title, className, legacyBehavior }) => {
|
|
4
|
+
if (!phone) {
|
|
5
|
+
if (legacyBehavior) {
|
|
6
|
+
return children;
|
|
7
|
+
}
|
|
8
|
+
return /* @__PURE__ */ jsx("span", { className, children });
|
|
9
|
+
}
|
|
10
|
+
const href = `tel:${phone}`;
|
|
11
|
+
if (legacyBehavior) {
|
|
12
|
+
return cloneElement(
|
|
13
|
+
children,
|
|
14
|
+
{ href, title }
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx("a", { href, title, className, children });
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
PhoneLinkBlock
|
|
21
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
-
export declare const useIsElementInViewport: (ref: RefObject<Element>, callback: (inView: boolean) => void) => void;
|
|
2
|
+
export declare const useIsElementInViewport: (ref: RefObject<Element | null>, callback: (inView: boolean) => void) => void;
|
|
3
3
|
//# sourceMappingURL=useIsElementInViewport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsElementInViewport.d.ts","sourceRoot":"","sources":["../../../src/blocks/helpers/useIsElementInViewport.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAElD,eAAO,MAAM,sBAAsB,GAAI,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"useIsElementInViewport.d.ts","sourceRoot":"","sources":["../../../src/blocks/helpers/useIsElementInViewport.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAElD,eAAO,MAAM,sBAAsB,GAAI,KAAK,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,SAiBzG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.generated.d.ts","sourceRoot":"","sources":["../src/blocks.generated.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,4BAA4B;IACzC,IAAI,CAAC,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC;CACvC;AACD,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;KAClD,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;KAClD,CAAC;CACL;AACD,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,mBAAmB,CAAC;IAClC,OAAO,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks.generated.d.ts","sourceRoot":"","sources":["../src/blocks.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const cache = {};
|
|
2
2
|
function createFetchInMemoryCache(fetch) {
|
|
3
3
|
return async function(input, init) {
|
|
4
|
-
var _a;
|
|
4
|
+
var _a, _b;
|
|
5
5
|
let cacheKey;
|
|
6
6
|
if ((init == null ? void 0 : init.cache) === "no-store") ;
|
|
7
7
|
else if (((_a = init == null ? void 0 : init.method) == null ? void 0 : _a.toUpperCase()) === "GET") {
|
|
@@ -11,7 +11,7 @@ function createFetchInMemoryCache(fetch) {
|
|
|
11
11
|
if (bodyString.startsWith("{")) {
|
|
12
12
|
try {
|
|
13
13
|
const body = JSON.parse(init.body.toString());
|
|
14
|
-
if (body.query && body.variables) {
|
|
14
|
+
if ((body.query || ((_b = body.extensions) == null ? void 0 : _b.persistedQuery)) && body.variables) {
|
|
15
15
|
cacheKey = `${input.toString()}#${init.body.toString()}`;
|
|
16
16
|
}
|
|
17
17
|
} catch {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { decodeJwt } from "jose";
|
|
4
4
|
import isEqual from "lodash.isequal";
|
|
5
|
-
import {
|
|
5
|
+
import { useState, useRef, useCallback, useEffect, useMemo, createContext } from "react";
|
|
6
6
|
import { useDebounceCallback } from "usehooks-ts";
|
|
7
7
|
import styles from "./IFrameBridge.module.scss.js";
|
|
8
8
|
import { AdminMessageType, IFrameMessageType } from "./IFrameMessage.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { useContext, createContext } from "react";
|
|
4
4
|
import { Preview } from "./Preview.js";
|
|
5
5
|
function isWithPreviewPropsData(block) {
|
|
6
6
|
return block.adminMeta !== void 0;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { type BlockLoader, type BlockLoaderDependencies, recursivelyLoadBlockData } from './blockLoader/blockLoader';
|
|
2
|
+
export { DamFileDownloadLinkBlock } from './blocks/DamFileDownloadLinkBlock';
|
|
3
|
+
export { EmailLinkBlock } from './blocks/EmailLinkBlock';
|
|
4
|
+
export { ExternalLinkBlock } from './blocks/ExternalLinkBlock';
|
|
2
5
|
export { BlocksBlock } from './blocks/factories/BlocksBlock';
|
|
3
6
|
export { ListBlock } from './blocks/factories/ListBlock';
|
|
4
7
|
export { OneOfBlock } from './blocks/factories/OneOfBlock';
|
|
@@ -6,6 +9,7 @@ export { OptionalBlock } from './blocks/factories/OptionalBlock';
|
|
|
6
9
|
export type { SupportedBlocks } from './blocks/factories/types';
|
|
7
10
|
export { hasRichTextBlockContent } from './blocks/helpers/RichTextBlockHelper';
|
|
8
11
|
export { useIsElementInViewport } from './blocks/helpers/useIsElementInViewport';
|
|
12
|
+
export { PhoneLinkBlock } from './blocks/PhoneLinkBlock';
|
|
9
13
|
export type { PropsWithData } from './blocks/PropsWithData';
|
|
10
14
|
export { SvgImageBlock } from './blocks/SvgImageBlock';
|
|
11
15
|
export { type CookieApi, CookieApiProvider, useCookieApi } from './cookies/CookieApiContext';
|
|
@@ -25,8 +29,13 @@ export { useIFrameBridge } from './iframebridge/useIFrameBridge';
|
|
|
25
29
|
export { isWithPreviewPropsData, withPreview, type WithPreviewProps } from './iframebridge/withPreview';
|
|
26
30
|
export { Image } from './image/Image';
|
|
27
31
|
export { calculateInheritAspectRatio, generateImageUrl, getMaxDimensionsFromArea, type ImageDimensions, parseAspectRatio } from './image/image.utils';
|
|
32
|
+
export { createPersistedQueryGraphQLFetch } from './persistedQueries/createPersistedQueryGraphQLFetch';
|
|
33
|
+
export { persistedQueryRoute } from './persistedQueries/persistedQueryRoute';
|
|
34
|
+
export { default as webpackPersistedQueriesLoader } from './persistedQueries/webpackPersistedQueriesLoader';
|
|
28
35
|
export { BlockPreviewProvider } from './preview/BlockPreviewProvider';
|
|
29
36
|
export { PreviewContext } from './preview/PreviewContext';
|
|
30
37
|
export { usePreview } from './preview/usePreview';
|
|
31
38
|
export { PreviewSkeleton } from './previewskeleton/PreviewSkeleton';
|
|
39
|
+
export { sendSitePreviewIFrameMessage } from './sitePreview/iframebridge/sendSitePreviewIFrameMessage';
|
|
40
|
+
export { type SitePreviewIFrameLocationMessage, SitePreviewIFrameMessageType } from './sitePreview/iframebridge/SitePreviewIFrameMessage';
|
|
32
41
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,EAClB,GAAG,EACH,KAAK,YAAY,EACjB,KAAK,WAAW,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,gBAAgB,EAChB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { recursivelyLoadBlockData } from "./blockLoader/blockLoader.js";
|
|
2
|
+
import { DamFileDownloadLinkBlock } from "./blocks/DamFileDownloadLinkBlock.js";
|
|
3
|
+
import { EmailLinkBlock } from "./blocks/EmailLinkBlock.js";
|
|
4
|
+
import { ExternalLinkBlock } from "./blocks/ExternalLinkBlock.js";
|
|
2
5
|
import { BlocksBlock } from "./blocks/factories/BlocksBlock.js";
|
|
3
6
|
import { ListBlock } from "./blocks/factories/ListBlock.js";
|
|
4
7
|
import { OneOfBlock } from "./blocks/factories/OneOfBlock.js";
|
|
5
8
|
import { OptionalBlock } from "./blocks/factories/OptionalBlock.js";
|
|
6
9
|
import { hasRichTextBlockContent } from "./blocks/helpers/RichTextBlockHelper.js";
|
|
7
10
|
import { useIsElementInViewport } from "./blocks/helpers/useIsElementInViewport.js";
|
|
11
|
+
import { PhoneLinkBlock } from "./blocks/PhoneLinkBlock.js";
|
|
8
12
|
import { SvgImageBlock } from "./blocks/SvgImageBlock.js";
|
|
9
13
|
import { CookieApiProvider, useCookieApi } from "./cookies/CookieApiContext.js";
|
|
10
14
|
import { CookieSafe } from "./cookies/CookieSafe.js";
|
|
@@ -23,27 +27,37 @@ import { useIFrameBridge } from "./iframebridge/useIFrameBridge.js";
|
|
|
23
27
|
import { isWithPreviewPropsData, withPreview } from "./iframebridge/withPreview.js";
|
|
24
28
|
import { Image } from "./image/Image.js";
|
|
25
29
|
import { calculateInheritAspectRatio, generateImageUrl, getMaxDimensionsFromArea, parseAspectRatio } from "./image/image.utils.js";
|
|
30
|
+
import { createPersistedQueryGraphQLFetch } from "./persistedQueries/createPersistedQueryGraphQLFetch.js";
|
|
31
|
+
import { persistedQueryRoute } from "./persistedQueries/persistedQueryRoute.js";
|
|
32
|
+
import { default as default2 } from "./persistedQueries/webpackPersistedQueriesLoader.js";
|
|
26
33
|
import { BlockPreviewProvider } from "./preview/BlockPreviewProvider.js";
|
|
27
34
|
import { PreviewContext } from "./preview/PreviewContext.js";
|
|
28
35
|
import { usePreview } from "./preview/usePreview.js";
|
|
29
36
|
import { PreviewSkeleton } from "./previewskeleton/PreviewSkeleton.js";
|
|
37
|
+
import { sendSitePreviewIFrameMessage } from "./sitePreview/iframebridge/sendSitePreviewIFrameMessage.js";
|
|
38
|
+
import { SitePreviewIFrameMessageType } from "./sitePreview/iframebridge/SitePreviewIFrameMessage.js";
|
|
30
39
|
export {
|
|
31
40
|
AdminMessageType,
|
|
32
41
|
BlockPreviewProvider,
|
|
33
42
|
BlocksBlock,
|
|
34
43
|
CookieApiProvider,
|
|
35
44
|
CookieSafe,
|
|
45
|
+
DamFileDownloadLinkBlock,
|
|
46
|
+
EmailLinkBlock,
|
|
36
47
|
ErrorHandlerBoundary,
|
|
37
48
|
ErrorHandlerProvider,
|
|
49
|
+
ExternalLinkBlock,
|
|
38
50
|
IFrameBridgeProvider,
|
|
39
51
|
IFrameMessageType,
|
|
40
52
|
Image,
|
|
41
53
|
ListBlock,
|
|
42
54
|
OneOfBlock,
|
|
43
55
|
OptionalBlock,
|
|
56
|
+
PhoneLinkBlock,
|
|
44
57
|
Preview,
|
|
45
58
|
PreviewContext,
|
|
46
59
|
PreviewSkeleton,
|
|
60
|
+
SitePreviewIFrameMessageType,
|
|
47
61
|
SvgImageBlock,
|
|
48
62
|
calculateInheritAspectRatio,
|
|
49
63
|
convertPreviewDataToHeaders,
|
|
@@ -51,13 +65,16 @@ export {
|
|
|
51
65
|
createFetchWithDefaults,
|
|
52
66
|
createFetchWithPreviewHeaders,
|
|
53
67
|
createGraphQLFetch,
|
|
68
|
+
createPersistedQueryGraphQLFetch,
|
|
54
69
|
generateImageUrl,
|
|
55
70
|
getMaxDimensionsFromArea,
|
|
56
71
|
gql,
|
|
57
72
|
hasRichTextBlockContent,
|
|
58
73
|
isWithPreviewPropsData,
|
|
59
74
|
parseAspectRatio,
|
|
75
|
+
persistedQueryRoute,
|
|
60
76
|
recursivelyLoadBlockData,
|
|
77
|
+
sendSitePreviewIFrameMessage,
|
|
61
78
|
useBlockPreviewFetch,
|
|
62
79
|
useCookieApi,
|
|
63
80
|
useCookieBotCookieApi,
|
|
@@ -66,5 +83,6 @@ export {
|
|
|
66
83
|
useLocalStorageCookieApi,
|
|
67
84
|
useOneTrustCookieApi,
|
|
68
85
|
usePreview,
|
|
86
|
+
default2 as webpackPersistedQueriesLoader,
|
|
69
87
|
withPreview
|
|
70
88
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPersistedQueryGraphQLFetch.d.ts","sourceRoot":"","sources":["../../src/persistedQueries/createPersistedQueryGraphQLFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,KAAK,KAAK,GAAG,OAAO,KAAK,CAAC;AAE1B,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAkExF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
function createPersistedQueryGraphQLFetch(fetch, url) {
|
|
2
|
+
return async function(query, variables, init) {
|
|
3
|
+
if (typeof query === "string") throw new Error("at runtime only hashed queries are supported");
|
|
4
|
+
const hash = query.hash;
|
|
5
|
+
let response;
|
|
6
|
+
if ((init == null ? void 0 : init.method) === "GET") {
|
|
7
|
+
const fetchUrl = new URL(url, window.location.origin);
|
|
8
|
+
fetchUrl.searchParams.append("extensions.persistedQuery.sha256Hash", hash);
|
|
9
|
+
fetchUrl.searchParams.append("variables", JSON.stringify(variables));
|
|
10
|
+
response = await fetch(fetchUrl, {
|
|
11
|
+
...init,
|
|
12
|
+
headers: {
|
|
13
|
+
/**
|
|
14
|
+
* It's recommended to add the `Apollo-Require-Preflight` header to GET requests, running on an Apollo Server 4.
|
|
15
|
+
*
|
|
16
|
+
* If this header is missing, Apollo Server 4 will return: This operation has been blocked as a potential Cross-Site Request Forgery (CSRF).
|
|
17
|
+
*
|
|
18
|
+
* see: https://www.apollographql.com/docs/graphos/routing/security/csrf#enable-csrf-prevention
|
|
19
|
+
*/
|
|
20
|
+
"Apollo-Require-Preflight": "true",
|
|
21
|
+
...init.headers
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
} else {
|
|
25
|
+
response = await fetch(url, {
|
|
26
|
+
method: "POST",
|
|
27
|
+
...init,
|
|
28
|
+
headers: { "Content-Type": "application/json", ...init == null ? void 0 : init.headers },
|
|
29
|
+
body: JSON.stringify({
|
|
30
|
+
extensions: {
|
|
31
|
+
persistedQuery: {
|
|
32
|
+
version: 1,
|
|
33
|
+
sha256Hash: hash
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
variables
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
let errorMessage = `Network response was not ok. Status: ${response.status}`;
|
|
42
|
+
const body = await response.text();
|
|
43
|
+
try {
|
|
44
|
+
const json = JSON.parse(body);
|
|
45
|
+
const { errors: errors2 } = json;
|
|
46
|
+
if (errors2) {
|
|
47
|
+
errorMessage += `
|
|
48
|
+
|
|
49
|
+
GraphQL error(s):
|
|
50
|
+
- ${errors2.map((error) => error.message).join("\n- ")}`;
|
|
51
|
+
}
|
|
52
|
+
} catch {
|
|
53
|
+
errorMessage += `
|
|
54
|
+
${body}`;
|
|
55
|
+
}
|
|
56
|
+
throw new Error(errorMessage);
|
|
57
|
+
}
|
|
58
|
+
const { data, errors } = await response.json();
|
|
59
|
+
if (errors) {
|
|
60
|
+
throw new Error(`GraphQL error(s):
|
|
61
|
+
- ${errors.map((error) => error.message).join("\n- ")}`);
|
|
62
|
+
}
|
|
63
|
+
return data;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
createPersistedQueryGraphQLFetch
|
|
68
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function persistedQueryRoute(req: Request, { graphqlTarget, headers: headersInit, persistedQueriesPath, cacheMaxAge, }: {
|
|
2
|
+
graphqlTarget: string;
|
|
3
|
+
headers?: HeadersInit;
|
|
4
|
+
persistedQueriesPath: string;
|
|
5
|
+
cacheMaxAge: number | undefined;
|
|
6
|
+
}): Promise<Response>;
|
|
7
|
+
//# sourceMappingURL=persistedQueryRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistedQueryRoute.d.ts","sourceRoot":"","sources":["../../src/persistedQueries/persistedQueryRoute.ts"],"names":[],"mappings":"AA8CA,wBAAsB,mBAAmB,CACrC,GAAG,EAAE,OAAO,EACZ,EACI,aAAa,EACb,OAAO,EAAE,WAAW,EACpB,oBAAgD,EAChD,WAAW,GACd,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,qBAoErH"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { readFile } from "fs/promises";
|
|
2
|
+
let queryMap;
|
|
3
|
+
let fragmentsMap;
|
|
4
|
+
async function loadPersistedQueries(path) {
|
|
5
|
+
const file = await readFile(path, { encoding: "utf-8" });
|
|
6
|
+
queryMap = JSON.parse(file.toString());
|
|
7
|
+
fragmentsMap = {};
|
|
8
|
+
for (const [, query] of Object.entries(queryMap)) {
|
|
9
|
+
const match = query.match(/^\s*fragment\s+(\w+)\s+on\s+\w+/m);
|
|
10
|
+
if (match) {
|
|
11
|
+
const fragmentName = match[1];
|
|
12
|
+
fragmentsMap[fragmentName] = query.replace(/\${.*?}/g, "");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function injectFragments(query) {
|
|
17
|
+
query = query.replace(/\${.*?}/g, "");
|
|
18
|
+
const injected = /* @__PURE__ */ new Set();
|
|
19
|
+
for (const m of query.matchAll(/^\s*fragment\s+(\w+)\s+on\s+\w+/gm)) {
|
|
20
|
+
injected.add(m[1]);
|
|
21
|
+
}
|
|
22
|
+
function inject(q) {
|
|
23
|
+
const spreads = Array.from(q.matchAll(/\.\.\.(\w+)/g)).map((m) => m[1]);
|
|
24
|
+
let result = q;
|
|
25
|
+
for (const fragmentName of spreads) {
|
|
26
|
+
if (!injected.has(fragmentName) && fragmentsMap[fragmentName]) {
|
|
27
|
+
injected.add(fragmentName);
|
|
28
|
+
result += `
|
|
29
|
+
${inject(fragmentsMap[fragmentName])}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
query = inject(query);
|
|
35
|
+
return query;
|
|
36
|
+
}
|
|
37
|
+
async function persistedQueryRoute(req, {
|
|
38
|
+
graphqlTarget,
|
|
39
|
+
headers: headersInit,
|
|
40
|
+
persistedQueriesPath = ".persisted-queries.json",
|
|
41
|
+
cacheMaxAge
|
|
42
|
+
}) {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
if (!queryMap) {
|
|
45
|
+
await loadPersistedQueries(persistedQueriesPath);
|
|
46
|
+
}
|
|
47
|
+
let hash;
|
|
48
|
+
let variables;
|
|
49
|
+
if (req.method === "POST") {
|
|
50
|
+
const body = await req.json();
|
|
51
|
+
hash = (_b = (_a = body.extensions) == null ? void 0 : _a.persistedQuery) == null ? void 0 : _b.sha256Hash;
|
|
52
|
+
variables = body.variables;
|
|
53
|
+
} else if (req.method === "GET") {
|
|
54
|
+
const url = new URL(req.url);
|
|
55
|
+
hash = url.searchParams.get("extensions.persistedQuery.sha256Hash");
|
|
56
|
+
const variablesParam = url.searchParams.get("variables");
|
|
57
|
+
variables = variablesParam ? JSON.parse(variablesParam) : void 0;
|
|
58
|
+
} else {
|
|
59
|
+
return Response.json({ error: "MethodNotAllowed" }, { status: 405 });
|
|
60
|
+
}
|
|
61
|
+
if (!hash) {
|
|
62
|
+
return Response.json({ error: "OnlyPersistedQueriesAllowed" }, { status: 400 });
|
|
63
|
+
}
|
|
64
|
+
let query = queryMap[hash];
|
|
65
|
+
if (!query) {
|
|
66
|
+
return Response.json({ error: "PersistedQueryNotFound", hash }, { status: 400 });
|
|
67
|
+
}
|
|
68
|
+
query = injectFragments(query);
|
|
69
|
+
if (req.method === "GET") {
|
|
70
|
+
const apolloPreflight = req.headers.get("Apollo-Require-Preflight");
|
|
71
|
+
if (apolloPreflight !== "true") {
|
|
72
|
+
return Response.json({ error: "CSRFProtection", message: "Missing Apollo-Require-Preflight header" }, { status: 403 });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const headers = new Headers(headersInit);
|
|
76
|
+
headers.set("Content-Type", "application/json");
|
|
77
|
+
for (const header of ["x-include-invisible-content", "x-preview-dam-urls"]) {
|
|
78
|
+
const value = req.headers.get(header);
|
|
79
|
+
if (value !== null) {
|
|
80
|
+
headers.set(header, value);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const upstreamRes = await fetch(graphqlTarget, {
|
|
84
|
+
method: "POST",
|
|
85
|
+
headers,
|
|
86
|
+
body: JSON.stringify({ query, variables })
|
|
87
|
+
});
|
|
88
|
+
const responseHeaders = {
|
|
89
|
+
"Content-Type": "application/json"
|
|
90
|
+
};
|
|
91
|
+
if (req.method === "GET" && upstreamRes.ok && cacheMaxAge !== void 0) {
|
|
92
|
+
responseHeaders["Cache-Control"] = `public, max-age=${cacheMaxAge}`;
|
|
93
|
+
}
|
|
94
|
+
return new Response(upstreamRes.body, {
|
|
95
|
+
headers: responseHeaders
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
export {
|
|
99
|
+
persistedQueryRoute
|
|
100
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LoaderContext } from 'webpack';
|
|
2
|
+
interface GqlHashLoaderOptions {
|
|
3
|
+
persistedQueriesPath?: string;
|
|
4
|
+
}
|
|
5
|
+
declare const webpackPersistedQueriesLoader: (this: LoaderContext<GqlHashLoaderOptions>, source: string) => string;
|
|
6
|
+
export default webpackPersistedQueriesLoader;
|
|
7
|
+
//# sourceMappingURL=webpackPersistedQueriesLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpackPersistedQueriesLoader.d.ts","sourceRoot":"","sources":["../../src/persistedQueries/webpackPersistedQueriesLoader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,UAAU,oBAAoB;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAqBD,QAAA,MAAM,6BAA6B,GAAa,MAAM,aAAa,CAAC,oBAAoB,CAAC,EAAE,QAAQ,MAAM,WAqCxG,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createHash } from "crypto";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
function loadHashMap(path) {
|
|
4
|
+
if (fs.existsSync(path)) {
|
|
5
|
+
return JSON.parse(fs.readFileSync(path, "utf-8"));
|
|
6
|
+
}
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
function saveHashMap(path, hashMap) {
|
|
10
|
+
fs.writeFileSync(path, JSON.stringify(hashMap, null, 2));
|
|
11
|
+
}
|
|
12
|
+
function hashQuery(query) {
|
|
13
|
+
return createHash("sha256").update(query).digest("hex");
|
|
14
|
+
}
|
|
15
|
+
const gqlTagRegex = /gql`([\s\S]*?)`/gm;
|
|
16
|
+
const webpackPersistedQueriesLoader = function(source) {
|
|
17
|
+
const options = this.getOptions() || {};
|
|
18
|
+
const persistedQueriesPath = options.persistedQueriesPath || ".persisted-queries.json";
|
|
19
|
+
const hashMap = loadHashMap(persistedQueriesPath);
|
|
20
|
+
const replacements = [];
|
|
21
|
+
let match;
|
|
22
|
+
while ((match = gqlTagRegex.exec(source)) !== null) {
|
|
23
|
+
const query = match[1];
|
|
24
|
+
const hash = hashQuery(query);
|
|
25
|
+
hashMap[hash] = query;
|
|
26
|
+
const fragmentVariables = Array.from(query.matchAll(/\${.*?}/g) ?? []).map((m) => m[0]).join(" ");
|
|
27
|
+
if (query.match(/^\s*fragment\s+(\w+)\s+on\s+\w+/)) {
|
|
28
|
+
replacements.push({
|
|
29
|
+
start: match.index,
|
|
30
|
+
end: match.index + match[0].length,
|
|
31
|
+
replacement: `{ fragment: true, fragmentVariables: \`${fragmentVariables}\` }`
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
replacements.push({
|
|
35
|
+
start: match.index,
|
|
36
|
+
end: match.index + match[0].length,
|
|
37
|
+
replacement: `{ hash: "${hash}", fragmentVariables: \`${fragmentVariables}\` }`
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
let modifiedSource = source;
|
|
42
|
+
for (let i = replacements.length - 1; i >= 0; i--) {
|
|
43
|
+
const { start, end, replacement } = replacements[i];
|
|
44
|
+
modifiedSource = modifiedSource.slice(0, start) + replacement + modifiedSource.slice(end);
|
|
45
|
+
}
|
|
46
|
+
saveHashMap(persistedQueriesPath, hashMap);
|
|
47
|
+
return modifiedSource;
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
webpackPersistedQueriesLoader as default
|
|
51
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ExternalLinkBlockData } from '../../blocks.generated';
|
|
2
|
+
export declare enum SitePreviewIFrameMessageType {
|
|
3
|
+
OpenLink = "OpenLink",
|
|
4
|
+
SitePreviewLocation = "SitePreviewLocation"
|
|
5
|
+
}
|
|
6
|
+
interface SitePreviewIFrameOpenLinkMessage {
|
|
7
|
+
cometType: SitePreviewIFrameMessageType.OpenLink;
|
|
8
|
+
data: {
|
|
9
|
+
link: ExternalLinkBlockData;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface SitePreviewIFrameLocationMessage {
|
|
13
|
+
cometType: SitePreviewIFrameMessageType.SitePreviewLocation;
|
|
14
|
+
data: Pick<Location, "search" | "pathname">;
|
|
15
|
+
}
|
|
16
|
+
export type SitePreviewIFrameMessage = SitePreviewIFrameOpenLinkMessage | SitePreviewIFrameLocationMessage;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=SitePreviewIFrameMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SitePreviewIFrameMessage.d.ts","sourceRoot":"","sources":["../../../src/sitePreview/iframebridge/SitePreviewIFrameMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAIpE,oBAAY,4BAA4B;IACpC,QAAQ,aAAa;IACrB,mBAAmB,wBAAwB;CAC9C;AAED,UAAU,gCAAgC;IACtC,SAAS,EAAE,4BAA4B,CAAC,QAAQ,CAAC;IACjD,IAAI,EAAE;QACF,IAAI,EAAE,qBAAqB,CAAC;KAC/B,CAAC;CACL;AAED,MAAM,WAAW,gCAAgC;IAC7C,SAAS,EAAE,4BAA4B,CAAC,mBAAmB,CAAC;IAC5D,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,GAAG,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var SitePreviewIFrameMessageType = /* @__PURE__ */ ((SitePreviewIFrameMessageType2) => {
|
|
2
|
+
SitePreviewIFrameMessageType2["OpenLink"] = "OpenLink";
|
|
3
|
+
SitePreviewIFrameMessageType2["SitePreviewLocation"] = "SitePreviewLocation";
|
|
4
|
+
return SitePreviewIFrameMessageType2;
|
|
5
|
+
})(SitePreviewIFrameMessageType || {});
|
|
6
|
+
export {
|
|
7
|
+
SitePreviewIFrameMessageType
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendSitePreviewIFrameMessage.d.ts","sourceRoot":"","sources":["../../../src/sitePreview/iframebridge/sendSitePreviewIFrameMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,wBAAwB,QAE7E"}
|
package/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
._childrenWrapper_qguhx_1{position:relative;z-index:1}._root_v4248_1{position:absolute;z-index:2;top:0;left:0;right:0;min-height:100vh;height:var(--height)}._root_1ya0k_1{position:absolute;cursor:pointer;outline:1px solid transparent;outline-offset:-1px}._root_1ya0k_1:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.25}._root_1ya0k_1:hover{outline-color:#29b6f6;outline-style:solid}._root_1ya0k_1:hover:after{background-color:#29b6f6}._isHoveredInBlockList_1ya0k_24{outline-color:#29b6f6;outline-style:solid}._isHoveredInBlockList_1ya0k_24:after{background-color:#29b6f6}._showBlockOutlines_1ya0k_32:not(:hover){outline-color:#d9d9d9;outline-style:dashed}._blockIsSelected_1ya0k_37{outline-color:#29b6f6}._blockIsSelected_1ya0k_37 ._label_1ya0k_40{display:inline-block}._label_1ya0k_40{position:absolute;padding:2px;background-color:#57b0eb;line-height:16px;color:#fff;top:1px;right:1px;font-size:12px;display:none}._barSkeleton_zomv4_1{min-height:20px;margin-bottom:5px;margin-right:5px;background-color:var(--background-color);color:var(--color)}._rowsContainer_zomv4_9{width:100%;min-width:300px}._rowSkeleton_zomv4_14{margin-bottom:10px;min-height:20px;width:var(--width);background-color:var(--background-color);color:var(--color)}._imageContainer_zomv4_22{width:100%;aspect-ratio:var(--aspect-ratio);height:var(--height);background-color:var(--background-color);color:var(--color)}
|
|
1
|
+
._previewElementContainer_nwhl6_1{display:contents}._childrenWrapper_qguhx_1{position:relative;z-index:1}._root_v4248_1{position:absolute;z-index:2;top:0;left:0;right:0;min-height:100vh;height:var(--height)}._root_1ya0k_1{position:absolute;cursor:pointer;outline:1px solid transparent;outline-offset:-1px}._root_1ya0k_1:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.25}._root_1ya0k_1:hover{outline-color:#29b6f6;outline-style:solid}._root_1ya0k_1:hover:after{background-color:#29b6f6}._isHoveredInBlockList_1ya0k_24{outline-color:#29b6f6;outline-style:solid}._isHoveredInBlockList_1ya0k_24:after{background-color:#29b6f6}._showBlockOutlines_1ya0k_32:not(:hover){outline-color:#d9d9d9;outline-style:dashed}._blockIsSelected_1ya0k_37{outline-color:#29b6f6}._blockIsSelected_1ya0k_37 ._label_1ya0k_40{display:inline-block}._label_1ya0k_40{position:absolute;padding:2px;background-color:#57b0eb;line-height:16px;color:#fff;top:1px;right:1px;font-size:12px;display:none}._barSkeleton_zomv4_1{min-height:20px;margin-bottom:5px;margin-right:5px;background-color:var(--background-color);color:var(--color)}._rowsContainer_zomv4_9{width:100%;min-width:300px}._rowSkeleton_zomv4_14{margin-bottom:10px;min-height:20px;width:var(--width);background-color:var(--background-color);color:var(--color)}._imageContainer_zomv4_22{width:100%;aspect-ratio:var(--aspect-ratio);height:var(--height);background-color:var(--background-color);color:var(--color)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comet/site-react",
|
|
3
|
-
"version": "9.0.0-canary-
|
|
3
|
+
"version": "9.0.0-canary-20251113142723",
|
|
4
4
|
"description": "Comet Site React package",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -8,13 +8,17 @@
|
|
|
8
8
|
"directory": "packages/site/site-react"
|
|
9
9
|
},
|
|
10
10
|
"license": "BSD-2-Clause",
|
|
11
|
+
"sideEffects": [
|
|
12
|
+
"**/*.css"
|
|
13
|
+
],
|
|
11
14
|
"type": "module",
|
|
12
15
|
"exports": {
|
|
13
16
|
".": {
|
|
14
17
|
"types": "./lib/index.d.ts",
|
|
15
18
|
"import": "./lib/index.js"
|
|
16
19
|
},
|
|
17
|
-
"./css": "./lib/style.css"
|
|
20
|
+
"./css": "./lib/style.css",
|
|
21
|
+
"./webpackPersistedQueriesLoader": "./lib/persistedQueries/webpackPersistedQueriesLoader.js"
|
|
18
22
|
},
|
|
19
23
|
"module": "./lib/index.js",
|
|
20
24
|
"types": "lib/index.d.ts",
|
|
@@ -32,7 +36,7 @@
|
|
|
32
36
|
"@types/draft-js": "^0.11.18",
|
|
33
37
|
"@types/jest": "^29.5.14",
|
|
34
38
|
"@types/lodash.isequal": "^4.5.8",
|
|
35
|
-
"@types/react": "^
|
|
39
|
+
"@types/react": "^19.2.0",
|
|
36
40
|
"@vitejs/plugin-react": "^4.6.0",
|
|
37
41
|
"chokidar-cli": "^3.0.0",
|
|
38
42
|
"eslint": "^9.30.1",
|
|
@@ -41,7 +45,7 @@
|
|
|
41
45
|
"jest-junit": "^16.0.0",
|
|
42
46
|
"npm-run-all2": "^8.0.0",
|
|
43
47
|
"prettier": "^3.6.2",
|
|
44
|
-
"react": "^
|
|
48
|
+
"react": "^19.2.0",
|
|
45
49
|
"rimraf": "^6.0.1",
|
|
46
50
|
"rollup": "^4.44.2",
|
|
47
51
|
"rollup-plugin-preserve-directives": "^0.4.0",
|
|
@@ -50,11 +54,12 @@
|
|
|
50
54
|
"typescript": "5.8.3",
|
|
51
55
|
"vite": "^5.4.19",
|
|
52
56
|
"vite-plugin-dts": "^4.5.4",
|
|
53
|
-
"
|
|
54
|
-
"@comet/
|
|
57
|
+
"webpack": "^5.102.1",
|
|
58
|
+
"@comet/cli": "9.0.0-canary-20251113142723",
|
|
59
|
+
"@comet/eslint-config": "9.0.0-canary-20251113142723"
|
|
55
60
|
},
|
|
56
61
|
"peerDependencies": {
|
|
57
|
-
"react": "^18.0.0"
|
|
62
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
58
63
|
},
|
|
59
64
|
"engines": {
|
|
60
65
|
"node": ">=18.0.0"
|
|
@@ -64,14 +69,14 @@
|
|
|
64
69
|
"registry": "https://registry.npmjs.org"
|
|
65
70
|
},
|
|
66
71
|
"scripts": {
|
|
67
|
-
"build": "
|
|
72
|
+
"build": "pnpm run clean && pnpm run generate-block-types && vite build",
|
|
68
73
|
"clean": "rimraf lib 'src/**/*.generated.ts'",
|
|
69
|
-
"dev": "
|
|
74
|
+
"dev": "pnpm run clean && pnpm generate-block-types && vite build --watch",
|
|
70
75
|
"generate-block-types": "comet generate-block-types",
|
|
71
|
-
"generate-block-types:watch": "chokidar -s \"block-meta.json\" -c \"
|
|
72
|
-
"lint": "
|
|
76
|
+
"generate-block-types:watch": "chokidar -s \"block-meta.json\" -c \"pnpm generate-block-types\"",
|
|
77
|
+
"lint": "pnpm generate-block-types && run-p lint:prettier lint:eslint lint:tsc",
|
|
73
78
|
"lint:eslint": "eslint --max-warnings 0 src/ **/*.json --no-warn-ignored",
|
|
74
|
-
"lint:prettier": "
|
|
79
|
+
"lint:prettier": "pnpm exec prettier --check './**/*.{js,json,md,yml,yaml,css,scss}'",
|
|
75
80
|
"lint:tsc": "tsc --noEmit",
|
|
76
81
|
"test": "jest --verbose=true --passWithNoTests",
|
|
77
82
|
"test:watch": "jest --watch"
|