@comet/site-nextjs 9.0.0-canary-20251013121422 → 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.
Files changed (40) hide show
  1. package/lib/blocks/DamVideoBlock.js +4 -10
  2. package/lib/blocks/PixelImageBlock.js +1 -9
  3. package/lib/blocks/VimeoVideoBlock.js +2 -9
  4. package/lib/blocks/YouTubeVideoBlock.d.ts.map +1 -1
  5. package/lib/blocks/YouTubeVideoBlock.js +12 -10
  6. package/lib/blocks/factories/SeoBlock.js +0 -9
  7. package/lib/blocks.generated.d.ts +1 -1
  8. package/lib/blocks.generated.d.ts.map +1 -1
  9. package/lib/image/Image.js +0 -9
  10. package/lib/index.d.ts +2 -8
  11. package/lib/index.d.ts.map +1 -1
  12. package/lib/index.js +30 -24
  13. package/lib/{blocks → site-react/lib/blocks}/DamFileDownloadLinkBlock.js +1 -8
  14. package/lib/{blocks → site-react/lib/blocks}/ExternalLinkBlock.js +1 -9
  15. package/lib/site-react/lib/graphQLFetch/fetchInMemoryCache.js +2 -2
  16. package/lib/site-react/lib/iframebridge/IFrameBridge.js +1 -1
  17. package/lib/site-react/lib/iframebridge/withPreview.js +1 -1
  18. package/lib/site-react/lib/persistedQueries/createPersistedQueryGraphQLFetch.js +68 -0
  19. package/lib/site-react/lib/persistedQueries/persistedQueryRoute.js +100 -0
  20. package/lib/site-react/lib/persistedQueries/webpackPersistedQueriesLoader.js +51 -0
  21. package/lib/sitePreview/SitePreviewProvider.d.ts.map +1 -1
  22. package/lib/sitePreview/SitePreviewProvider.js +3 -10
  23. package/lib/style.css +1 -1
  24. package/package.json +14 -10
  25. package/lib/blocks/DamFileDownloadLinkBlock.d.ts +0 -12
  26. package/lib/blocks/DamFileDownloadLinkBlock.d.ts.map +0 -1
  27. package/lib/blocks/EmailLinkBlock.d.ts +0 -12
  28. package/lib/blocks/EmailLinkBlock.d.ts.map +0 -1
  29. package/lib/blocks/ExternalLinkBlock.d.ts +0 -12
  30. package/lib/blocks/ExternalLinkBlock.d.ts.map +0 -1
  31. package/lib/blocks/PhoneLinkBlock.d.ts +0 -12
  32. package/lib/blocks/PhoneLinkBlock.d.ts.map +0 -1
  33. package/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.d.ts +0 -18
  34. package/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.d.ts.map +0 -1
  35. package/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.d.ts +0 -3
  36. package/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.d.ts.map +0 -1
  37. /package/lib/{blocks → site-react/lib/blocks}/EmailLinkBlock.js +0 -0
  38. /package/lib/{blocks → site-react/lib/blocks}/PhoneLinkBlock.js +0 -0
  39. /package/lib/{sitePreview → site-react/lib/sitePreview}/iframebridge/SitePreviewIFrameMessage.js +0 -0
  40. /package/lib/{sitePreview → site-react/lib/sitePreview}/iframebridge/sendSitePreviewIFrameMessage.js +0 -0
@@ -1,17 +1,10 @@
1
1
  "use client";
2
2
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
3
- import { useState, useRef } from "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
6
3
  import { useIsElementInViewport } from "../site-react/lib/blocks/helpers/useIsElementInViewport.js";
7
4
  import { withPreview } from "../site-react/lib/iframebridge/withPreview.js";
8
- import "../site-react/lib/cookies/CookieApiContext.js";
9
- import "../site-react/lib/iframebridge/IFrameBridge.js";
10
- import "../site-react/lib/preview/PreviewContext.js";
11
- import "usehooks-ts";
12
- import "scroll-into-view-if-needed";
13
- import "../site-react/lib/preview/BlockPreviewProvider.js";
5
+ import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
14
6
  import clsx from "clsx";
7
+ import { useState, useRef } from "react";
15
8
  import styles from "./DamVideoBlock.module.scss.js";
16
9
  import { VideoPreviewImage } from "./helpers/VideoPreviewImage.js";
17
10
  const DamVideoBlock = withPreview(
@@ -24,6 +17,7 @@ const DamVideoBlock = withPreview(
24
17
  previewImageIcon,
25
18
  playButtonAriaLabel
26
19
  }) => {
20
+ var _a;
27
21
  if (damFile === void 0) {
28
22
  return /* @__PURE__ */ jsx(PreviewSkeleton, { type: "media", hasContent: false, aspectRatio });
29
23
  }
@@ -69,7 +63,7 @@ const DamVideoBlock = withPreview(
69
63
  className: clsx(styles.video, fill && styles.fill),
70
64
  style: !fill ? { "--aspect-ratio": aspectRatio.replace("x", " / ") } : void 0,
71
65
  children: [
72
- damFile.captions.map((caption) => {
66
+ (_a = damFile.captions) == null ? void 0 : _a.map((caption) => {
73
67
  return /* @__PURE__ */ jsx("track", { src: caption.fileUrl, kind: "captions", srcLang: caption.language }, caption.id);
74
68
  }),
75
69
  /* @__PURE__ */ jsx("source", { src: damFile.fileUrl, type: damFile.mimetype })
@@ -1,16 +1,8 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
6
3
  import { withPreview } from "../site-react/lib/iframebridge/withPreview.js";
7
- import "../site-react/lib/cookies/CookieApiContext.js";
8
- import "../site-react/lib/iframebridge/IFrameBridge.js";
9
- import "../site-react/lib/preview/PreviewContext.js";
10
- import "usehooks-ts";
11
- import "scroll-into-view-if-needed";
12
4
  import { calculateInheritAspectRatio, parseAspectRatio, getMaxDimensionsFromArea, generateImageUrl } from "../site-react/lib/image/image.utils.js";
13
- import "../site-react/lib/preview/BlockPreviewProvider.js";
5
+ import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
14
6
  import NextImage from "next/image";
15
7
  import styles from "./PixelImageBlock.module.scss.js";
16
8
  const PixelImageBlock = withPreview(
@@ -1,17 +1,10 @@
1
1
  "use client";
2
2
  import { jsx, Fragment } from "react/jsx-runtime";
3
- import { useState, useRef } from "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
6
3
  import { useIsElementInViewport } from "../site-react/lib/blocks/helpers/useIsElementInViewport.js";
7
4
  import { withPreview } from "../site-react/lib/iframebridge/withPreview.js";
8
- import "../site-react/lib/cookies/CookieApiContext.js";
9
- import "../site-react/lib/iframebridge/IFrameBridge.js";
10
- import "../site-react/lib/preview/PreviewContext.js";
11
- import "usehooks-ts";
12
- import "scroll-into-view-if-needed";
13
- import "../site-react/lib/preview/BlockPreviewProvider.js";
5
+ import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
14
6
  import clsx from "clsx";
7
+ import { useState, useRef } from "react";
15
8
  import { VideoPreviewImage } from "./helpers/VideoPreviewImage.js";
16
9
  import styles from "./VimeoVideoBlock.module.scss.js";
17
10
  function parseVimeoIdentifier(vimeoIdentifier) {
@@ -1 +1 @@
1
- {"version":3,"file":"YouTubeVideoBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/YouTubeVideoBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,aAAa,EAAuC,MAAM,mBAAmB,CAAC;AAE7G,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAoB,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAc7F,UAAU,sBAAuB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,YAAY,CAAC;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,2IA6F7B,CAAC"}
1
+ {"version":3,"file":"YouTubeVideoBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/YouTubeVideoBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,aAAa,EAAuC,MAAM,mBAAmB,CAAC;AAE7G,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAoB,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAc7F,UAAU,sBAAuB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,YAAY,CAAC;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,2IAmG7B,CAAC"}
@@ -1,17 +1,10 @@
1
1
  "use client";
2
2
  import { jsx, Fragment } from "react/jsx-runtime";
3
- import { useState, useRef } from "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
6
3
  import { useIsElementInViewport } from "../site-react/lib/blocks/helpers/useIsElementInViewport.js";
7
4
  import { withPreview } from "../site-react/lib/iframebridge/withPreview.js";
8
- import "../site-react/lib/cookies/CookieApiContext.js";
9
- import "../site-react/lib/iframebridge/IFrameBridge.js";
10
- import "../site-react/lib/preview/PreviewContext.js";
11
- import "usehooks-ts";
12
- import "scroll-into-view-if-needed";
13
- import "../site-react/lib/preview/BlockPreviewProvider.js";
5
+ import { PreviewSkeleton } from "../site-react/lib/previewskeleton/PreviewSkeleton.js";
14
6
  import clsx from "clsx";
7
+ import { useState, useRef } from "react";
15
8
  import { VideoPreviewImage } from "./helpers/VideoPreviewImage.js";
16
9
  import styles from "./YouTubeVideoBlock.module.scss.js";
17
10
  const EXPECTED_YT_ID_LENGTH = 11;
@@ -92,7 +85,16 @@ const YouTubeVideoBlock = withPreview(
92
85
  ref: inViewRef,
93
86
  className: clsx(styles.videoContainer, fill && styles.fill),
94
87
  style: !fill ? { "--aspect-ratio": aspectRatio.replace("x", "/") } : void 0,
95
- children: /* @__PURE__ */ jsx("iframe", { ref: iframeRef, className: styles.youtubeContainer, allow: "autoplay", src: youtubeUrl.toString() })
88
+ children: /* @__PURE__ */ jsx(
89
+ "iframe",
90
+ {
91
+ ref: iframeRef,
92
+ className: styles.youtubeContainer,
93
+ allow: "autoplay",
94
+ referrerPolicy: "strict-origin-when-cross-origin",
95
+ src: youtubeUrl.toString()
96
+ }
97
+ )
96
98
  }
97
99
  ) });
98
100
  },
@@ -1,14 +1,5 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import "react";
3
- import "../../site-react/lib/errorHandler/ErrorHandlerProvider.js";
4
- import "../../site-react/lib/iframebridge/IFrameBridge.js";
5
- import "../../site-react/lib/preview/PreviewContext.js";
6
- import "../../site-react/lib/iframebridge/withPreview.js";
7
- import "../../site-react/lib/cookies/CookieApiContext.js";
8
- import "usehooks-ts";
9
- import "scroll-into-view-if-needed";
10
2
  import { generateImageUrl } from "../../site-react/lib/image/image.utils.js";
11
- import "../../site-react/lib/preview/BlockPreviewProvider.js";
12
3
  import Head from "next/head";
13
4
  const SeoBlock = ({
14
5
  data: {
@@ -41,7 +41,7 @@ export interface DamVideoBlockData {
41
41
  archived: boolean;
42
42
  scope?: unknown;
43
43
  fileUrl: string;
44
- captions: Array<{
44
+ captions?: Array<{
45
45
  id: string;
46
46
  language: string;
47
47
  fileUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.generated.d.ts","sourceRoot":"","sources":["../src/blocks.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.generated.d.ts","sourceRoot":"","sources":["../src/blocks.generated.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import "react";
3
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
4
- import "../site-react/lib/iframebridge/IFrameBridge.js";
5
- import "../site-react/lib/preview/PreviewContext.js";
6
- import "../site-react/lib/iframebridge/withPreview.js";
7
- import "../site-react/lib/cookies/CookieApiContext.js";
8
- import "usehooks-ts";
9
- import "scroll-into-view-if-needed";
10
2
  import { parseAspectRatio, generateImageUrl } from "../site-react/lib/image/image.utils.js";
11
- import "../site-react/lib/preview/BlockPreviewProvider.js";
12
3
  import NextImage from "next/image";
13
4
  function Image({ aspectRatio, ...nextImageProps }) {
14
5
  const usedAspectRatio = parseAspectRatio(aspectRatio);
package/lib/index.d.ts CHANGED
@@ -1,24 +1,18 @@
1
- export { DamFileDownloadLinkBlock } from './blocks/DamFileDownloadLinkBlock';
2
1
  export { DamVideoBlock } from './blocks/DamVideoBlock';
3
- export { EmailLinkBlock } from './blocks/EmailLinkBlock';
4
- export { ExternalLinkBlock } from './blocks/ExternalLinkBlock';
5
2
  export { SeoBlock } from './blocks/factories/SeoBlock';
6
3
  export type { VideoPreviewImageProps } from './blocks/helpers/VideoPreviewImage';
7
4
  export { VideoPreviewImage } from './blocks/helpers/VideoPreviewImage';
8
5
  export { InternalLinkBlock } from './blocks/InternalLinkBlock';
9
- export { PhoneLinkBlock } from './blocks/PhoneLinkBlock';
10
6
  export { PixelImageBlock } from './blocks/PixelImageBlock';
11
7
  export { VimeoVideoBlock } from './blocks/VimeoVideoBlock';
12
8
  export { YouTubeVideoBlock } from './blocks/YouTubeVideoBlock';
13
9
  export { createFetchWithDefaultNextRevalidate, createFetchWithDefaults } from './graphQLFetch/graphQLFetch';
14
10
  export { Image } from './image/Image';
15
11
  export { sitePreviewRoute } from './sitePreview/appRouter/sitePreviewRoute';
16
- export { sendSitePreviewIFrameMessage } from './sitePreview/iframebridge/sendSitePreviewIFrameMessage';
17
- export { SitePreviewIFrameMessageType } from './sitePreview/iframebridge/SitePreviewIFrameMessage';
18
12
  export { legacyPagesRouterSitePreviewApiHandler } from './sitePreview/pagesRouter/legacyPagesRouterSitePreviewApiHandler';
19
13
  export { legacyPagesRouterPreviewParams, previewParams, type SitePreviewParams } from './sitePreview/previewUtils';
20
14
  export { SitePreviewProvider } from './sitePreview/SitePreviewProvider';
21
- export { AdminMessageType, type BlockLoader, type BlockLoaderDependencies, BlockPreviewProvider, BlocksBlock, calculateInheritAspectRatio, convertPreviewDataToHeaders, type CookieApi, CookieApiProvider, CookieSafe, createFetchWithPreviewHeaders, createGraphQLFetch, ErrorHandlerBoundary, ErrorHandlerProvider, generateImageUrl, getMaxDimensionsFromArea, gql, type GraphQLFetch, hasRichTextBlockContent, type IAdminContentScopeMessage, type IAdminGraphQLApiUrlMessage, type IAdminHoverComponentMessage, type IAdminShowOnlyVisibleMessage, IFrameBridgeProvider, type IFrameHoverComponentMessage, type IFrameLocationMessage, type IFrameMessage, IFrameMessageType, type IFrameOpenLinkMessage, type IFrameSelectComponentMessage, type ImageDimensions, type IReadyIFrameMessage, isWithPreviewPropsData, ListBlock, OneOfBlock, OptionalBlock, parseAspectRatio, Preview, type PreviewData, PreviewSkeleton, type PropsWithData, recursivelyLoadBlockData,
15
+ export { AdminMessageType, type BlockLoader, type BlockLoaderDependencies, BlockPreviewProvider, BlocksBlock, calculateInheritAspectRatio, convertPreviewDataToHeaders, type CookieApi, CookieApiProvider, CookieSafe, createFetchInMemoryCache, createFetchWithPreviewHeaders, createGraphQLFetch, createPersistedQueryGraphQLFetch, DamFileDownloadLinkBlock, EmailLinkBlock, ErrorHandlerBoundary, ErrorHandlerProvider, ExternalLinkBlock, generateImageUrl, getMaxDimensionsFromArea, gql, type GraphQLFetch, hasRichTextBlockContent, type IAdminContentScopeMessage, type IAdminGraphQLApiUrlMessage, type IAdminHoverComponentMessage, type IAdminShowOnlyVisibleMessage, IFrameBridgeProvider, type IFrameHoverComponentMessage, type IFrameLocationMessage, type IFrameMessage, IFrameMessageType, type IFrameOpenLinkMessage, type IFrameSelectComponentMessage, type ImageDimensions, type IReadyIFrameMessage, isWithPreviewPropsData, ListBlock, OneOfBlock, OptionalBlock, parseAspectRatio, persistedQueryRoute, PhoneLinkBlock, Preview, type PreviewData, PreviewSkeleton, type PropsWithData, recursivelyLoadBlockData, sendSitePreviewIFrameMessage,
22
16
  /** @deprecated Use PreviewData instead. */
23
- type PreviewData as SitePreviewData, type SupportedBlocks, SvgImageBlock, useBlockPreviewFetch, useCookieApi, useCookieBotCookieApi, useIFrameBridge, useIsElementInViewport, useLocalStorageCookieApi, useOneTrustCookieApi, usePreview, withPreview, type WithPreviewProps, } from '@comet/site-react';
17
+ type PreviewData as SitePreviewData, SitePreviewIFrameMessageType, type SupportedBlocks, SvgImageBlock, useBlockPreviewFetch, useCookieApi, useCookieBotCookieApi, useIFrameBridge, useIsElementInViewport, useLocalStorageCookieApi, useOneTrustCookieApi, usePreview, webpackPersistedQueriesLoader, withPreview, type WithPreviewProps, } from '@comet/site-react';
24
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,sCAAsC,EAAE,MAAM,kEAAkE,CAAC;AAC1H,OAAO,EAAE,8BAA8B,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EACH,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,oBAAoB,EACpB,WAAW,EACX,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,SAAS,EACd,iBAAiB,EACjB,UAAU,EACV,6BAA6B,EAC7B,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,GAAG,EACH,KAAK,YAAY,EACjB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,aAAa,EAClB,wBAAwB;AACxB,2CAA2C;AAC3C,KAAK,WAAW,IAAI,eAAe,EACnC,KAAK,eAAe,EACpB,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,KAAK,gBAAgB,GACxB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,sCAAsC,EAAE,MAAM,kEAAkE,CAAC;AAC1H,OAAO,EAAE,8BAA8B,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EACH,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,oBAAoB,EACpB,WAAW,EACX,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,SAAS,EACd,iBAAiB,EACjB,UAAU,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,gCAAgC,EAChC,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,GAAG,EACH,KAAK,YAAY,EACjB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,OAAO,EACP,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,aAAa,EAClB,wBAAwB,EACxB,4BAA4B;AAC5B,2CAA2C;AAC3C,KAAK,WAAW,IAAI,eAAe,EACnC,4BAA4B,EAC5B,KAAK,eAAe,EACpB,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,6BAA6B,EAC7B,WAAW,EACX,KAAK,gBAAgB,GACxB,MAAM,mBAAmB,CAAC"}
package/lib/index.js CHANGED
@@ -1,51 +1,53 @@
1
1
  /* empty css */
2
- import { DamFileDownloadLinkBlock } from "./blocks/DamFileDownloadLinkBlock.js";
3
2
  import { DamVideoBlock } from "./blocks/DamVideoBlock.js";
4
- import { EmailLinkBlock } from "./blocks/EmailLinkBlock.js";
5
- import { ExternalLinkBlock } from "./blocks/ExternalLinkBlock.js";
6
3
  import { SeoBlock } from "./blocks/factories/SeoBlock.js";
7
4
  import { VideoPreviewImage } from "./blocks/helpers/VideoPreviewImage.js";
8
5
  import { InternalLinkBlock } from "./blocks/InternalLinkBlock.js";
9
- import { PhoneLinkBlock } from "./blocks/PhoneLinkBlock.js";
10
6
  import { PixelImageBlock } from "./blocks/PixelImageBlock.js";
11
7
  import { VimeoVideoBlock } from "./blocks/VimeoVideoBlock.js";
12
8
  import { YouTubeVideoBlock } from "./blocks/YouTubeVideoBlock.js";
13
9
  import { createFetchWithDefaultNextRevalidate, createFetchWithDefaults } from "./graphQLFetch/graphQLFetch.js";
14
10
  import { Image } from "./image/Image.js";
15
11
  import { sitePreviewRoute } from "./sitePreview/appRouter/sitePreviewRoute.js";
16
- import { sendSitePreviewIFrameMessage } from "./sitePreview/iframebridge/sendSitePreviewIFrameMessage.js";
17
- import { SitePreviewIFrameMessageType } from "./sitePreview/iframebridge/SitePreviewIFrameMessage.js";
18
12
  import { legacyPagesRouterSitePreviewApiHandler } from "./sitePreview/pagesRouter/legacyPagesRouterSitePreviewApiHandler.js";
19
13
  import { legacyPagesRouterPreviewParams, previewParams } from "./sitePreview/previewUtils.js";
20
14
  import { SitePreviewProvider } from "./sitePreview/SitePreviewProvider.js";
21
- import { recursivelyLoadBlockData } from "./site-react/lib/blockLoader/blockLoader.js";
15
+ import { AdminMessageType, IFrameMessageType } from "./site-react/lib/iframebridge/IFrameMessage.js";
16
+ import { BlockPreviewProvider } from "./site-react/lib/preview/BlockPreviewProvider.js";
22
17
  import { BlocksBlock } from "./site-react/lib/blocks/factories/BlocksBlock.js";
23
- import { ListBlock } from "./site-react/lib/blocks/factories/ListBlock.js";
24
- import { OneOfBlock } from "./site-react/lib/blocks/factories/OneOfBlock.js";
25
- import { OptionalBlock } from "./site-react/lib/blocks/factories/OptionalBlock.js";
26
- import { hasRichTextBlockContent } from "./site-react/lib/blocks/helpers/RichTextBlockHelper.js";
27
- import { useIsElementInViewport } from "./site-react/lib/blocks/helpers/useIsElementInViewport.js";
28
- import { SvgImageBlock } from "./site-react/lib/blocks/SvgImageBlock.js";
18
+ import { calculateInheritAspectRatio, generateImageUrl, getMaxDimensionsFromArea, parseAspectRatio } from "./site-react/lib/image/image.utils.js";
19
+ import { convertPreviewDataToHeaders, createFetchWithPreviewHeaders, createGraphQLFetch, gql } from "./site-react/lib/graphQLFetch/graphQLFetch.js";
29
20
  import { CookieApiProvider, useCookieApi } from "./site-react/lib/cookies/CookieApiContext.js";
30
21
  import { CookieSafe } from "./site-react/lib/cookies/CookieSafe.js";
31
- import { useCookieBotCookieApi } from "./site-react/lib/cookies/useCookieBotCookieApi.js";
32
- import { useLocalStorageCookieApi } from "./site-react/lib/cookies/useLocalStorageCookieApi.js";
33
- import { useOneTrustCookieApi } from "./site-react/lib/cookies/useOneTrustCookieApi.js";
22
+ import { createFetchInMemoryCache } from "./site-react/lib/graphQLFetch/fetchInMemoryCache.js";
23
+ import { createPersistedQueryGraphQLFetch } from "./site-react/lib/persistedQueries/createPersistedQueryGraphQLFetch.js";
24
+ import { DamFileDownloadLinkBlock } from "./site-react/lib/blocks/DamFileDownloadLinkBlock.js";
25
+ import { EmailLinkBlock } from "./site-react/lib/blocks/EmailLinkBlock.js";
34
26
  import { ErrorHandlerBoundary } from "./site-react/lib/errorHandler/ErrorHandlerBoundary.js";
35
27
  import { ErrorHandlerProvider } from "./site-react/lib/errorHandler/ErrorHandlerProvider.js";
36
- import { convertPreviewDataToHeaders, createFetchWithPreviewHeaders, createGraphQLFetch, gql } from "./site-react/lib/graphQLFetch/graphQLFetch.js";
28
+ import { ExternalLinkBlock } from "./site-react/lib/blocks/ExternalLinkBlock.js";
29
+ import { hasRichTextBlockContent } from "./site-react/lib/blocks/helpers/RichTextBlockHelper.js";
37
30
  import { IFrameBridgeProvider } from "./site-react/lib/iframebridge/IFrameBridge.js";
38
- import { AdminMessageType, IFrameMessageType } from "./site-react/lib/iframebridge/IFrameMessage.js";
31
+ import { isWithPreviewPropsData, withPreview } from "./site-react/lib/iframebridge/withPreview.js";
32
+ import { ListBlock } from "./site-react/lib/blocks/factories/ListBlock.js";
33
+ import { OneOfBlock } from "./site-react/lib/blocks/factories/OneOfBlock.js";
34
+ import { OptionalBlock } from "./site-react/lib/blocks/factories/OptionalBlock.js";
35
+ import { persistedQueryRoute } from "./site-react/lib/persistedQueries/persistedQueryRoute.js";
36
+ import { PhoneLinkBlock } from "./site-react/lib/blocks/PhoneLinkBlock.js";
39
37
  import { Preview } from "./site-react/lib/iframebridge/Preview.js";
38
+ import { PreviewSkeleton } from "./site-react/lib/previewskeleton/PreviewSkeleton.js";
39
+ import { recursivelyLoadBlockData } from "./site-react/lib/blockLoader/blockLoader.js";
40
+ import { sendSitePreviewIFrameMessage } from "./site-react/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.js";
41
+ import { SitePreviewIFrameMessageType } from "./site-react/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.js";
42
+ import { SvgImageBlock } from "./site-react/lib/blocks/SvgImageBlock.js";
40
43
  import { useBlockPreviewFetch } from "./site-react/lib/iframebridge/useBlockPreviewFetch.js";
44
+ import { useCookieBotCookieApi } from "./site-react/lib/cookies/useCookieBotCookieApi.js";
41
45
  import { useIFrameBridge } from "./site-react/lib/iframebridge/useIFrameBridge.js";
42
- import { isWithPreviewPropsData, withPreview } from "./site-react/lib/iframebridge/withPreview.js";
43
- import "react/jsx-runtime";
44
- import { calculateInheritAspectRatio, generateImageUrl, getMaxDimensionsFromArea, parseAspectRatio } from "./site-react/lib/image/image.utils.js";
45
- import { BlockPreviewProvider } from "./site-react/lib/preview/BlockPreviewProvider.js";
46
- import "./site-react/lib/preview/PreviewContext.js";
46
+ import { useIsElementInViewport } from "./site-react/lib/blocks/helpers/useIsElementInViewport.js";
47
+ import { useLocalStorageCookieApi } from "./site-react/lib/cookies/useLocalStorageCookieApi.js";
48
+ import { useOneTrustCookieApi } from "./site-react/lib/cookies/useOneTrustCookieApi.js";
47
49
  import { usePreview } from "./site-react/lib/preview/usePreview.js";
48
- import { PreviewSkeleton } from "./site-react/lib/previewskeleton/PreviewSkeleton.js";
50
+ import { default as default2 } from "./site-react/lib/persistedQueries/webpackPersistedQueriesLoader.js";
49
51
  export {
50
52
  AdminMessageType,
51
53
  BlockPreviewProvider,
@@ -78,10 +80,12 @@ export {
78
80
  YouTubeVideoBlock,
79
81
  calculateInheritAspectRatio,
80
82
  convertPreviewDataToHeaders,
83
+ createFetchInMemoryCache,
81
84
  createFetchWithDefaultNextRevalidate,
82
85
  createFetchWithDefaults,
83
86
  createFetchWithPreviewHeaders,
84
87
  createGraphQLFetch,
88
+ createPersistedQueryGraphQLFetch,
85
89
  generateImageUrl,
86
90
  getMaxDimensionsFromArea,
87
91
  gql,
@@ -90,6 +94,7 @@ export {
90
94
  legacyPagesRouterPreviewParams,
91
95
  legacyPagesRouterSitePreviewApiHandler,
92
96
  parseAspectRatio,
97
+ persistedQueryRoute,
93
98
  previewParams,
94
99
  recursivelyLoadBlockData,
95
100
  sendSitePreviewIFrameMessage,
@@ -102,5 +107,6 @@ export {
102
107
  useLocalStorageCookieApi,
103
108
  useOneTrustCookieApi,
104
109
  usePreview,
110
+ default2 as webpackPersistedQueriesLoader,
105
111
  withPreview
106
112
  };
@@ -1,14 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { cloneElement } from "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import "../site-react/lib/iframebridge/IFrameBridge.js";
6
- import "../site-react/lib/preview/PreviewContext.js";
7
- import { withPreview } from "../site-react/lib/iframebridge/withPreview.js";
8
- import "../site-react/lib/cookies/CookieApiContext.js";
9
- import "usehooks-ts";
10
- import "scroll-into-view-if-needed";
11
- import "../site-react/lib/preview/BlockPreviewProvider.js";
4
+ import { withPreview } from "../iframebridge/withPreview.js";
12
5
  const DamFileDownloadLinkBlock = withPreview(
13
6
  ({ data: { file, openFileType }, children, title, className, legacyBehavior }) => {
14
7
  if (!file) {
@@ -1,15 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { cloneElement } from "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import { usePreview } from "../site-react/lib/preview/usePreview.js";
6
- import "../site-react/lib/iframebridge/withPreview.js";
7
- import "../site-react/lib/cookies/CookieApiContext.js";
8
- import "usehooks-ts";
9
- import "../site-react/lib/iframebridge/IFrameBridge.js";
10
- import "scroll-into-view-if-needed";
11
- import "../site-react/lib/preview/BlockPreviewProvider.js";
12
- import "../site-react/lib/preview/PreviewContext.js";
4
+ import { usePreview } from "../preview/usePreview.js";
13
5
  import { sendSitePreviewIFrameMessage } from "../sitePreview/iframebridge/sendSitePreviewIFrameMessage.js";
14
6
  import { SitePreviewIFrameMessageType } from "../sitePreview/iframebridge/SitePreviewIFrameMessage.js";
15
7
  function ExternalLinkBlock({ data: { targetUrl, openInNewWindow }, children, title, className, legacyBehavior }) {
@@ -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 { createContext, useState, useRef, useCallback, useEffect, useMemo } from "react";
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 { createContext, useContext } from "react";
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;
@@ -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,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,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
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"SitePreviewProvider.d.ts","sourceRoot":"","sources":["../../src/sitePreview/SitePreviewProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAoC1D,eAAO,MAAM,mBAAmB,GAAI,cAAc,iBAAiB,4CAElE,CAAC"}
1
+ {"version":3,"file":"SitePreviewProvider.d.ts","sourceRoot":"","sources":["../../src/sitePreview/SitePreviewProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAiC1D,eAAO,MAAM,mBAAmB,GAAI,cAAc,iBAAiB,4CAElE,CAAC"}
@@ -1,17 +1,10 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { useEffect } from "react";
4
- import "../site-react/lib/errorHandler/ErrorHandlerProvider.js";
5
- import "../site-react/lib/iframebridge/IFrameBridge.js";
6
3
  import { PreviewContext } from "../site-react/lib/preview/PreviewContext.js";
7
- import "../site-react/lib/iframebridge/withPreview.js";
8
- import "../site-react/lib/cookies/CookieApiContext.js";
9
- import "usehooks-ts";
10
- import "scroll-into-view-if-needed";
11
- import "../site-react/lib/preview/BlockPreviewProvider.js";
4
+ import { sendSitePreviewIFrameMessage } from "../site-react/lib/sitePreview/iframebridge/sendSitePreviewIFrameMessage.js";
5
+ import { SitePreviewIFrameMessageType } from "../site-react/lib/sitePreview/iframebridge/SitePreviewIFrameMessage.js";
12
6
  import { usePathname, useSearchParams } from "next/navigation";
13
- import { sendSitePreviewIFrameMessage } from "./iframebridge/sendSitePreviewIFrameMessage.js";
14
- import { SitePreviewIFrameMessageType } from "./iframebridge/SitePreviewIFrameMessage.js";
7
+ import { useEffect } from "react";
15
8
  const SitePreview = ({ children }) => {
16
9
  const pathname = usePathname();
17
10
  const searchParams = useSearchParams();
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)}._previewElementContainer_nwhl6_1{display:contents}._video_17b8y_1{width:100%;object-fit:cover;aspect-ratio:var(--aspect-ratio)}._fill_17b8y_7{height:100%}._imageContainer_ecpdr_1{position:relative;width:100%;aspect-ratio:var(--aspect-ratio)}._root_1k5a5_1{position:relative;width:100%}._fill_1k5a5_6{height:100%}._iconWrapper_1k5a5_10{position:absolute;top:0;right:0;left:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#000;opacity:.5;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;cursor:pointer}._iconWrapper_1k5a5_10:focus ._playIcon_1k5a5_26{outline:4px solid white;outline-offset:10px;border-radius:2px}._playIcon_1k5a5_26{width:64px;height:64px;box-sizing:border-box;border-style:solid;border-width:32px 0 32px 64px;border-color:transparent transparent transparent white}._videoContainer_1flq1_1{overflow:hidden;position:relative;aspect-ratio:var(--aspect-ratio)}._fill_1flq1_7{width:100%;height:100%}._vimeoContainer_1flq1_12{position:absolute;border:0;top:0;left:0;width:100%;height:100%}._videoContainer_bhmhr_1{overflow:hidden;position:relative;aspect-ratio:var(--aspect-ratio)}._fill_bhmhr_7{width:100%;height:100%}._youtubeContainer_bhmhr_12{position:absolute;border:0;top:0;left:0;width:100%;height:100%}
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)}._video_17b8y_1{width:100%;object-fit:cover;aspect-ratio:var(--aspect-ratio)}._fill_17b8y_7{height:100%}._imageContainer_ecpdr_1{position:relative;width:100%;aspect-ratio:var(--aspect-ratio)}._root_1k5a5_1{position:relative;width:100%}._fill_1k5a5_6{height:100%}._iconWrapper_1k5a5_10{position:absolute;top:0;right:0;left:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#000;opacity:.5;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;cursor:pointer}._iconWrapper_1k5a5_10:focus ._playIcon_1k5a5_26{outline:4px solid white;outline-offset:10px;border-radius:2px}._playIcon_1k5a5_26{width:64px;height:64px;box-sizing:border-box;border-style:solid;border-width:32px 0 32px 64px;border-color:transparent transparent transparent white}._videoContainer_1flq1_1{overflow:hidden;position:relative;aspect-ratio:var(--aspect-ratio)}._fill_1flq1_7{width:100%;height:100%}._vimeoContainer_1flq1_12{position:absolute;border:0;top:0;left:0;width:100%;height:100%}._videoContainer_bhmhr_1{overflow:hidden;position:relative;aspect-ratio:var(--aspect-ratio)}._fill_bhmhr_7{width:100%;height:100%}._youtubeContainer_bhmhr_12{position:absolute;border:0;top:0;left:0;width:100%;height:100%}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comet/site-nextjs",
3
- "version": "9.0.0-canary-20251013121422",
3
+ "version": "9.0.0-canary-20251113142723",
4
4
  "description": "Comet Site Next.js package",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,13 +8,17 @@
8
8
  "directory": "packages/site/site-nextjs"
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/site-react/lib/persistedQueries/webpackPersistedQueriesLoader.js"
18
22
  },
19
23
  "module": "./lib/index.js",
20
24
  "types": "lib/index.d.ts",
@@ -25,7 +29,7 @@
25
29
  "clsx": "^2.1.1",
26
30
  "jose": "^5.10.0",
27
31
  "server-only": "^0.0.1",
28
- "@comet/site-react": "9.0.0-canary-20251013121422"
32
+ "@comet/site-react": "9.0.0-canary-20251113142723"
29
33
  },
30
34
  "devDependencies": {
31
35
  "@types/jest": "^29.5.14",
@@ -50,8 +54,8 @@
50
54
  "typescript": "5.8.3",
51
55
  "vite": "^5.4.19",
52
56
  "vite-plugin-dts": "^4.5.4",
53
- "@comet/cli": "9.0.0-canary-20251013121422",
54
- "@comet/eslint-config": "9.0.0-canary-20251013121422"
57
+ "@comet/cli": "9.0.0-canary-20251113142723",
58
+ "@comet/eslint-config": "9.0.0-canary-20251113142723"
55
59
  },
56
60
  "peerDependencies": {
57
61
  "next": "^15.0.0",
@@ -66,14 +70,14 @@
66
70
  "registry": "https://registry.npmjs.org"
67
71
  },
68
72
  "scripts": {
69
- "build": "$npm_execpath run clean && npm run generate-block-types && vite build",
73
+ "build": "pnpm run clean && pnpm run generate-block-types && vite build",
70
74
  "clean": "rimraf lib 'src/**/*.generated.ts'",
71
- "dev": "$npm_execpath run clean && $npm_execpath generate-block-types && vite build --watch",
75
+ "dev": "pnpm run clean && pnpm run generate-block-types && vite build --watch",
72
76
  "generate-block-types": "comet generate-block-types",
73
- "generate-block-types:watch": "chokidar -s \"block-meta.json\" -c \"$npm_execpath generate-block-types\"",
74
- "lint": "$npm_execpath generate-block-types && run-p lint:prettier lint:eslint lint:tsc",
77
+ "generate-block-types:watch": "chokidar -s \"block-meta.json\" -c \"pnpm run generate-block-types\"",
78
+ "lint": "pnpm run generate-block-types && run-p lint:prettier lint:eslint lint:tsc",
75
79
  "lint:eslint": "eslint --max-warnings 0 src/ **/*.json --no-warn-ignored",
76
- "lint:prettier": "npx prettier --check './**/*.{js,json,md,yml,yaml,css,scss}'",
80
+ "lint:prettier": "pnpm exec prettier --check './**/*.{js,json,md,yml,yaml,css,scss}'",
77
81
  "lint:tsc": "tsc --noEmit",
78
82
  "test": "jest --verbose=true --passWithNoTests",
79
83
  "test:watch": "jest --watch"
@@ -1,12 +0,0 @@
1
- import { PropsWithData } from '@comet/site-react';
2
- import { ReactElement } from 'react';
3
- import { DamFileDownloadLinkBlockData } from '../blocks.generated';
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('@comet/site-react').WithPreviewProps & Props) => import("react/jsx-runtime").JSX.Element;
11
- export {};
12
- //# sourceMappingURL=DamFileDownloadLinkBlock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DamFileDownloadLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/DamFileDownloadLinkBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,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,0HA4BpC,CAAC"}
@@ -1,12 +0,0 @@
1
- import { PropsWithData } from '@comet/site-react';
2
- import { ReactElement } from 'react';
3
- import { EmailLinkBlockData } from '../blocks.generated';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmailLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/EmailLinkBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,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"}
@@ -1,12 +0,0 @@
1
- import { PropsWithData } from '@comet/site-react';
2
- import { ReactElement } from 'react';
3
- import { ExternalLinkBlockData } from '../blocks.generated';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExternalLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/ExternalLinkBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAA2F,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEnI,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,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"}
@@ -1,12 +0,0 @@
1
- import { PropsWithData } from '@comet/site-react';
2
- import { ReactElement } from 'react';
3
- import { PhoneLinkBlockData } from '../blocks.generated';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"PhoneLinkBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/PhoneLinkBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAmE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,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"}
@@ -1,18 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"SitePreviewIFrameMessage.d.ts","sourceRoot":"","sources":["../../../src/sitePreview/iframebridge/SitePreviewIFrameMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,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"}
@@ -1,3 +0,0 @@
1
- import { SitePreviewIFrameMessage } from './SitePreviewIFrameMessage';
2
- export declare function sendSitePreviewIFrameMessage(message: SitePreviewIFrameMessage): void;
3
- //# sourceMappingURL=sendSitePreviewIFrameMessage.d.ts.map
@@ -1 +0,0 @@
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"}