@makeswift/runtime 0.24.8-canary.0 → 0.24.8-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/builder/serialization/controls/types.js.map +1 -1
- package/dist/cjs/client/index.js +2 -1
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/components/builtin/SocialLinks/options.js.map +1 -1
- package/dist/cjs/components/hooks/useRouterLocaleSync.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
- package/dist/cjs/controls/link.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/webhook/index.js +4 -1
- package/dist/cjs/next/api-handler/handlers/webhook/index.js.map +1 -1
- package/dist/cjs/next/client.js.map +1 -1
- package/dist/cjs/next/components/MakeswiftComponent.js +3 -2
- package/dist/cjs/next/components/MakeswiftComponent.js.map +1 -1
- package/dist/cjs/next/index.js.map +1 -1
- package/dist/cjs/next/tests/test-utils.js +1 -3
- package/dist/cjs/next/tests/test-utils.js.map +1 -1
- package/dist/cjs/runtimes/react/components/PageProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js.map +1 -1
- package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
- package/dist/cjs/runtimes/react/react-runtime.js +3 -2
- package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
- package/dist/cjs/state/actions.js.map +1 -1
- package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
- package/dist/cjs/state/modules/components-meta.js.map +1 -1
- package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
- package/dist/cjs/utils/intersection.js +10 -7
- package/dist/cjs/utils/intersection.js.map +1 -1
- package/dist/cjs/utils/pagination.js.map +1 -1
- package/dist/esm/client/index.js +2 -1
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/components/builtin/SocialLinks/options.js.map +1 -1
- package/dist/esm/components/hooks/useRouterLocaleSync.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
- package/dist/esm/controls/link.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/webhook/index.js +4 -1
- package/dist/esm/next/api-handler/handlers/webhook/index.js.map +1 -1
- package/dist/esm/next/client.js.map +1 -1
- package/dist/esm/next/components/MakeswiftComponent.js +3 -2
- package/dist/esm/next/components/MakeswiftComponent.js.map +1 -1
- package/dist/esm/next/index.js.map +1 -1
- package/dist/esm/next/tests/test-utils.js +1 -3
- package/dist/esm/next/tests/test-utils.js.map +1 -1
- package/dist/esm/runtimes/react/components/PageProvider.js.map +1 -1
- package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js.map +1 -1
- package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-register-document.js +5 -1
- package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
- package/dist/esm/runtimes/react/react-runtime.js +3 -2
- package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
- package/dist/esm/state/actions.js.map +1 -1
- package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
- package/dist/esm/state/modules/components-meta.js.map +1 -1
- package/dist/esm/state/modules/read-only-documents.js.map +1 -1
- package/dist/esm/utils/intersection.js +10 -7
- package/dist/esm/utils/intersection.js.map +1 -1
- package/dist/esm/utils/pagination.js.map +1 -1
- package/dist/types/builder/serialization/controls/types.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +2 -1
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/options.d.ts +1 -1
- package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -1
- package/dist/types/controls/__tests__/fixtures/shape.d.ts +2 -0
- package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -1
- package/dist/types/controls/link.d.ts +1 -0
- package/dist/types/controls/link.d.ts.map +1 -1
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts.map +1 -1
- package/dist/types/next/client.d.ts.map +1 -1
- package/dist/types/next/components/MakeswiftComponent.d.ts +2 -1
- package/dist/types/next/components/MakeswiftComponent.d.ts.map +1 -1
- package/dist/types/next/index.d.ts +1 -1
- package/dist/types/next/index.d.ts.map +1 -1
- package/dist/types/next/tests/test-utils.d.ts +3 -3
- package/dist/types/next/tests/test-utils.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/PageProvider.d.ts +1 -1
- package/dist/types/runtimes/react/components/PageProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts.map +1 -1
- package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
- package/dist/types/runtimes/react/react-runtime.d.ts +2 -1
- package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/index.d.ts +1 -0
- package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -1
- package/dist/types/state/actions.d.ts +1 -0
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/modules/builder-edit-mode.d.ts +1 -1
- package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
- package/dist/types/state/modules/components-meta.d.ts +2 -1
- package/dist/types/state/modules/components-meta.d.ts.map +1 -1
- package/dist/types/state/modules/read-only-documents.d.ts +1 -0
- package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
- package/dist/types/utils/intersection.d.ts.map +1 -1
- package/dist/types/utils/pagination.d.ts.map +1 -1
- package/package.json +7 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/builtin/SocialLinks/options.tsx"],"sourcesContent":["import { LogoAngellist20 } from '../../icons/LogoAngellist20'\nimport { LogoCodepen20 } from '../../icons/LogoCodepen20'\nimport { LogoDiscord20 } from '../../icons/LogoDiscord20'\nimport { LogoDribbble20 } from '../../icons/LogoDribbble20'\nimport { LogoFacebook20 } from '../../icons/LogoFacebook20'\nimport { LogoGithub20 } from '../../icons/LogoGithub20'\nimport { LogoInstagram20 } from '../../icons/LogoInstagram20'\nimport { LogoLinkedin20 } from '../../icons/LogoLinkedin20'\nimport { LogoMedium20 } from '../../icons/LogoMedium20'\nimport { LogoPinterest20 } from '../../icons/LogoPinterest20'\nimport { LogoReddit20 } from '../../icons/LogoReddit20'\nimport { LogoRss20 } from '../../icons/LogoRss20'\nimport { LogoSlack20 } from '../../icons/LogoSlack20'\nimport { LogoSnapchat20 } from '../../icons/LogoSnapchat20'\nimport { LogoSoundcloud20 } from '../../icons/LogoSoundcloud20'\nimport { LogoSpotify20 } from '../../icons/LogoSpotify20'\nimport { LogoTelegram20 } from '../../icons/LogoTelegram20'\nimport { LogoTumblr20 } from '../../icons/LogoTumblr20'\nimport { LogoTwitch20 } from '../../icons/LogoTwitch20'\nimport { LogoTwitter20 } from '../../icons/LogoTwitter20'\nimport { LogoWhatsapp20 } from '../../icons/LogoWhatsapp20'\nimport { LogoVimeo20 } from '../../icons/LogoVimeo20'\nimport { LogoX20 } from '../../icons/LogoX20'\nimport { LogoYelp20 } from '../../icons/LogoYelp20'\nimport { LogoYoutube20 } from '../../icons/LogoYoutube20'\n\nexport const SocialLinksOptions = [\n { type: 'angellist', label: 'AngelList', icon: <LogoAngellist20 />, brandColor: 'black' },\n { type: 'codepen', label: 'CodePen', icon: <LogoCodepen20 />, brandColor: 'black' },\n { type: 'discord', label: 'Discord', icon: <LogoDiscord20 />, brandColor: '#5865F2' },\n { type: 'dribbble', label: 'Dribbble', icon: <LogoDribbble20 />, brandColor: '#ea4c89' },\n { type: 'facebook', label: 'Facebook', icon: <LogoFacebook20 />, brandColor: '#3b5998' },\n { type: 'github', label: 'GitHub', icon: <LogoGithub20 />, brandColor: 'black' },\n { type: 'instagram', label: 'Instagram', icon: <LogoInstagram20 />, brandColor: 'black' },\n { type: 'linkedin', label: 'LinkedIn', icon: <LogoLinkedin20 />, brandColor: '#0077b5' },\n { type: 'medium', label: 'Medium', icon: <LogoMedium20 />, brandColor: 'black' },\n { type: 'pinterest', label: 'Pinterest', icon: <LogoPinterest20 />, brandColor: '#bd081c' },\n { type: 'reddit', label: 'Reddit', icon: <LogoReddit20 />, brandColor: '#ff4500' },\n { type: 'rss', label: 'RSS', icon: <LogoRss20 />, brandColor: 'black' },\n { type: 'slack', label: 'Slack', icon: <LogoSlack20 />, brandColor: '#fffc00' },\n { type: 'snapchat', label: 'Snapchat', icon: <LogoSnapchat20 />, brandColor: '#fffc00' },\n { type: 'soundcloud', label: 'SoundCloud', icon: <LogoSoundcloud20 />, brandColor: '#ff3300' },\n { type: 'spotify', label: 'Spotify', icon: <LogoSpotify20 />, brandColor: '#1db954' },\n { type: 'telegram', label: 'Telegram', icon: <LogoTelegram20 />, brandColor: '#0088cc' },\n { type: 'tumblr', label: 'Tumblr', icon: <LogoTumblr20 />, brandColor: '#35465c' },\n { type: 'twitch', label: 'Twitch', icon: <LogoTwitch20 />, brandColor: '#6441A4' },\n { type: 'twitter', label: 'Twitter', icon: <LogoTwitter20 />, brandColor: '#1da1f2' },\n { type: 'whatsapp', label: 'WhatsApp', icon: <LogoWhatsapp20 />, brandColor: '#25d366' },\n { type: 'vimeo', label: 'Vimeo', icon: <LogoVimeo20 />, brandColor: '#1ab7ea' },\n { type: 'x', label: 'X', icon: <LogoX20 />, brandColor: 'black' },\n { type: 'yelp', label: 'Yelp', icon: <LogoYelp20 />, brandColor: '#af0606' },\n { type: 'youtube', label: 'YouTube', icon: <LogoYoutube20 />, brandColor: '#ff0000' },\n] as const\n\nexport type SocialLinksOptionType = typeof SocialLinksOptions[number]['type']\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/builtin/SocialLinks/options.tsx"],"sourcesContent":["import { LogoAngellist20 } from '../../icons/LogoAngellist20'\nimport { LogoCodepen20 } from '../../icons/LogoCodepen20'\nimport { LogoDiscord20 } from '../../icons/LogoDiscord20'\nimport { LogoDribbble20 } from '../../icons/LogoDribbble20'\nimport { LogoFacebook20 } from '../../icons/LogoFacebook20'\nimport { LogoGithub20 } from '../../icons/LogoGithub20'\nimport { LogoInstagram20 } from '../../icons/LogoInstagram20'\nimport { LogoLinkedin20 } from '../../icons/LogoLinkedin20'\nimport { LogoMedium20 } from '../../icons/LogoMedium20'\nimport { LogoPinterest20 } from '../../icons/LogoPinterest20'\nimport { LogoReddit20 } from '../../icons/LogoReddit20'\nimport { LogoRss20 } from '../../icons/LogoRss20'\nimport { LogoSlack20 } from '../../icons/LogoSlack20'\nimport { LogoSnapchat20 } from '../../icons/LogoSnapchat20'\nimport { LogoSoundcloud20 } from '../../icons/LogoSoundcloud20'\nimport { LogoSpotify20 } from '../../icons/LogoSpotify20'\nimport { LogoTelegram20 } from '../../icons/LogoTelegram20'\nimport { LogoTumblr20 } from '../../icons/LogoTumblr20'\nimport { LogoTwitch20 } from '../../icons/LogoTwitch20'\nimport { LogoTwitter20 } from '../../icons/LogoTwitter20'\nimport { LogoWhatsapp20 } from '../../icons/LogoWhatsapp20'\nimport { LogoVimeo20 } from '../../icons/LogoVimeo20'\nimport { LogoX20 } from '../../icons/LogoX20'\nimport { LogoYelp20 } from '../../icons/LogoYelp20'\nimport { LogoYoutube20 } from '../../icons/LogoYoutube20'\n\nexport const SocialLinksOptions = [\n { type: 'angellist', label: 'AngelList', icon: <LogoAngellist20 />, brandColor: 'black' },\n { type: 'codepen', label: 'CodePen', icon: <LogoCodepen20 />, brandColor: 'black' },\n { type: 'discord', label: 'Discord', icon: <LogoDiscord20 />, brandColor: '#5865F2' },\n { type: 'dribbble', label: 'Dribbble', icon: <LogoDribbble20 />, brandColor: '#ea4c89' },\n { type: 'facebook', label: 'Facebook', icon: <LogoFacebook20 />, brandColor: '#3b5998' },\n { type: 'github', label: 'GitHub', icon: <LogoGithub20 />, brandColor: 'black' },\n { type: 'instagram', label: 'Instagram', icon: <LogoInstagram20 />, brandColor: 'black' },\n { type: 'linkedin', label: 'LinkedIn', icon: <LogoLinkedin20 />, brandColor: '#0077b5' },\n { type: 'medium', label: 'Medium', icon: <LogoMedium20 />, brandColor: 'black' },\n { type: 'pinterest', label: 'Pinterest', icon: <LogoPinterest20 />, brandColor: '#bd081c' },\n { type: 'reddit', label: 'Reddit', icon: <LogoReddit20 />, brandColor: '#ff4500' },\n { type: 'rss', label: 'RSS', icon: <LogoRss20 />, brandColor: 'black' },\n { type: 'slack', label: 'Slack', icon: <LogoSlack20 />, brandColor: '#fffc00' },\n { type: 'snapchat', label: 'Snapchat', icon: <LogoSnapchat20 />, brandColor: '#fffc00' },\n { type: 'soundcloud', label: 'SoundCloud', icon: <LogoSoundcloud20 />, brandColor: '#ff3300' },\n { type: 'spotify', label: 'Spotify', icon: <LogoSpotify20 />, brandColor: '#1db954' },\n { type: 'telegram', label: 'Telegram', icon: <LogoTelegram20 />, brandColor: '#0088cc' },\n { type: 'tumblr', label: 'Tumblr', icon: <LogoTumblr20 />, brandColor: '#35465c' },\n { type: 'twitch', label: 'Twitch', icon: <LogoTwitch20 />, brandColor: '#6441A4' },\n { type: 'twitter', label: 'Twitter', icon: <LogoTwitter20 />, brandColor: '#1da1f2' },\n { type: 'whatsapp', label: 'WhatsApp', icon: <LogoWhatsapp20 />, brandColor: '#25d366' },\n { type: 'vimeo', label: 'Vimeo', icon: <LogoVimeo20 />, brandColor: '#1ab7ea' },\n { type: 'x', label: 'X', icon: <LogoX20 />, brandColor: 'black' },\n { type: 'yelp', label: 'Yelp', icon: <LogoYelp20 />, brandColor: '#af0606' },\n { type: 'youtube', label: 'YouTube', icon: <LogoYoutube20 />, brandColor: '#ff0000' },\n] as const\n\nexport type SocialLinksOptionType = (typeof SocialLinksOptions)[number]['type']\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/hooks/useRouterLocaleSync.ts"],"sourcesContent":["import { useRouter as usePagesRouter } from 'next/router'\nimport { P, match } from 'ts-pattern'\nimport { useEffect } from 'react'\n\nimport { setLocale } from '../../state/actions'\nimport { useDispatch } from '../../runtimes/react/hooks/use-dispatch'\n\nfunction useRouter() {\n try {\n const router = usePagesRouter()\n\n return router\n } catch (e) {\n return
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/hooks/useRouterLocaleSync.ts"],"sourcesContent":["import { useRouter as usePagesRouter } from 'next/router'\nimport { P, match } from 'ts-pattern'\nimport { useEffect } from 'react'\n\nimport { setLocale } from '../../state/actions'\nimport { useDispatch } from '../../runtimes/react/hooks/use-dispatch'\n\nfunction useRouter() {\n try {\n const router = usePagesRouter()\n\n return router\n } catch (e) {\n return\n }\n}\n\nexport const useRouterLocaleSync = () => {\n const router = useRouter()\n const dispatch = useDispatch()\n\n useEffect(() => {\n match(router)\n .with({ locale: P.string }, ({ locale }) => dispatch(setLocale(new Intl.Locale(locale))))\n .otherwise(() => {})\n }, [router])\n}\n"],"mappings":"AAAA,SAAS,aAAa,sBAAsB;AAC5C,SAAS,GAAG,aAAa;AACzB,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,SAAS,YAAY;AACnB,MAAI;AACF,UAAM,SAAS,eAAe;AAE9B,WAAO;AAAA,EACT,SAAS,GAAG;AACV;AAAA,EACF;AACF;AAEO,MAAM,sBAAsB,MAAM;AACvC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,YAAY;AAE7B,YAAU,MAAM;AACd,UAAM,MAAM,EACT,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,MAAM,SAAS,UAAU,IAAI,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,EACvF,UAAU,MAAM;AAAA,IAAC,CAAC;AAAA,EACvB,GAAG,CAAC,MAAM,CAAC;AACb;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx"],"sourcesContent":["import NextImage from 'next/image'\nimport type NextLegacyImageType from 'next/legacy/image'\n\nimport { BackgroundsPropControllerValue, BackgroundsData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\nimport { CSSObject } from '@emotion/css'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { useResponsiveStyle } from '../../../../utils/responsive-style'\nimport { major as nextMajorVersion } from '../../../../../next/next-version'\n\nconst NextLegacyImage = NextImage as typeof NextLegacyImageType\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\nconst absoluteFillStyle: CSSObject = {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n}\n\nconst containerStyle: CSSObject = {\n ...absoluteFillStyle,\n borderRadius: 'inherit',\n}\n\ntype Props = { backgrounds: BackgroundsPropControllerValue | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return <BackgroundDeviceLayer key={deviceId} layer={value} visibility={visibility} />\n })}\n </>\n )\n}\n\ntype BackgroundLayerProps = {\n layer: BackgroundsData\n visibility: ResponsiveValue<boolean>\n}\n\nfunction BackgroundDeviceLayer({ layer, visibility }: BackgroundLayerProps) {\n const visibilityStyle = useResponsiveStyle([visibility], ([v]) => ({\n display: v === true ? 'block' : 'none',\n }))\n\n return (\n <div className={useStyle({ ...containerStyle, ...visibilityStyle, overflow: 'hidden' })}>\n {[...layer].reverse().map(bg => {\n if (bg.type === 'color') {\n return <ColorBackground key={bg.id} color={getColor(bg.payload)} />\n }\n\n if (bg.type === 'image' && bg.payload) {\n return <ImageBackground {...bg.payload} key={bg.id} />\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n return (\n <GradientBackground\n {...bg.payload}\n key={bg.id}\n gradient={getStopsStyle(bg.payload.stops)}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n return (\n <VideoBackground\n {...bg.payload}\n key={bg.id}\n maskColor={getColor(bg.payload.maskColor)}\n />\n )\n }\n\n return null\n })}\n </div>\n )\n}\n\ntype ColorBackgroundProps = { color: string }\n\nfunction ColorBackground({ color }: ColorBackgroundProps) {\n return <div className={useStyle({ ...containerStyle, backgroundColor: color })} />\n}\n\nconst ImageBackgroundRepeat = {\n NoRepeat: 'no-repeat',\n RepeatX: 'repeat-x',\n RepeatY: 'repeat-y',\n Repeat: 'repeat',\n} as const\n\ntype ImageBackgroundRepeat = typeof ImageBackgroundRepeat[keyof typeof ImageBackgroundRepeat]\n\nconst ImageBackgroundSize = {\n Cover: 'cover',\n Contain: 'contain',\n Auto: 'auto',\n} as const\n\ntype ImageBackgroundSize = typeof ImageBackgroundSize[keyof typeof ImageBackgroundSize]\n\ntype ImageBackgroundProps = {\n publicUrl?: string\n position: { x: number; y: number }\n repeat?: ImageBackgroundRepeat\n size?: ImageBackgroundSize\n opacity?: number\n parallax?: number\n priority?: boolean\n}\n\nfunction ImageBackground({\n publicUrl,\n position,\n repeat = ImageBackgroundRepeat.NoRepeat,\n size = ImageBackgroundSize.Cover,\n opacity,\n parallax,\n priority,\n}: ImageBackgroundProps) {\n const backgroundPosition = `${position.x}% ${position.y}%`\n const containerClassName = useStyle(containerStyle)\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n {nextMajorVersion < 13 ? (\n <NextLegacyImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n priority={priority}\n />\n ) : (\n <NextImage\n src={publicUrl}\n alt={''}\n fill\n sizes=\"100vw\"\n style={{\n objectPosition: backgroundPosition,\n objectFit: size,\n }}\n priority={priority}\n />\n )}\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div\n className={containerClassName}\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n}\n\ntype GradientBackgroundProps = {\n gradient: string\n angle?: number\n isRadial?: boolean\n}\n\nfunction GradientBackground({\n gradient,\n isRadial = false,\n angle = Math.PI,\n}: GradientBackgroundProps) {\n return (\n <div\n className={useStyle({\n ...containerStyle,\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n })}\n />\n )\n}\n\nconst BackgroundVideoAspectRatio = {\n Wide: 'wide',\n Standard: 'standard',\n} as const\n\ntype BackgroundVideoAspectRatio =\n typeof BackgroundVideoAspectRatio[keyof typeof BackgroundVideoAspectRatio]\n\nfunction getAspectRatio(aspectRatio: BackgroundVideoAspectRatio | null | undefined): number {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n\n case 'standard':\n return 4 / 3\n\n default:\n return 16 / 9\n }\n}\n\ntype VideoBackgroundProps = {\n url?: string\n aspectRatio?: BackgroundVideoAspectRatio\n maskColor: string\n zoom?: number\n opacity?: number\n parallax?: number\n}\n\nfunction VideoBackground({\n url,\n aspectRatio,\n maskColor,\n zoom,\n opacity,\n parallax,\n}: VideoBackgroundProps) {\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ className: useStyle(containerStyle) })}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={maskColor}\n />\n </div>\n )}\n </Parallax>\n )\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx"],"sourcesContent":["import NextImage from 'next/image'\nimport type NextLegacyImageType from 'next/legacy/image'\n\nimport { BackgroundsPropControllerValue, BackgroundsData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\nimport { CSSObject } from '@emotion/css'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { useResponsiveStyle } from '../../../../utils/responsive-style'\nimport { major as nextMajorVersion } from '../../../../../next/next-version'\n\nconst NextLegacyImage = NextImage as typeof NextLegacyImageType\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\nconst absoluteFillStyle: CSSObject = {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n}\n\nconst containerStyle: CSSObject = {\n ...absoluteFillStyle,\n borderRadius: 'inherit',\n}\n\ntype Props = { backgrounds: BackgroundsPropControllerValue | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return <BackgroundDeviceLayer key={deviceId} layer={value} visibility={visibility} />\n })}\n </>\n )\n}\n\ntype BackgroundLayerProps = {\n layer: BackgroundsData\n visibility: ResponsiveValue<boolean>\n}\n\nfunction BackgroundDeviceLayer({ layer, visibility }: BackgroundLayerProps) {\n const visibilityStyle = useResponsiveStyle([visibility], ([v]) => ({\n display: v === true ? 'block' : 'none',\n }))\n\n return (\n <div className={useStyle({ ...containerStyle, ...visibilityStyle, overflow: 'hidden' })}>\n {[...layer].reverse().map(bg => {\n if (bg.type === 'color') {\n return <ColorBackground key={bg.id} color={getColor(bg.payload)} />\n }\n\n if (bg.type === 'image' && bg.payload) {\n return <ImageBackground {...bg.payload} key={bg.id} />\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n return (\n <GradientBackground\n {...bg.payload}\n key={bg.id}\n gradient={getStopsStyle(bg.payload.stops)}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n return (\n <VideoBackground\n {...bg.payload}\n key={bg.id}\n maskColor={getColor(bg.payload.maskColor)}\n />\n )\n }\n\n return null\n })}\n </div>\n )\n}\n\ntype ColorBackgroundProps = { color: string }\n\nfunction ColorBackground({ color }: ColorBackgroundProps) {\n return <div className={useStyle({ ...containerStyle, backgroundColor: color })} />\n}\n\nconst ImageBackgroundRepeat = {\n NoRepeat: 'no-repeat',\n RepeatX: 'repeat-x',\n RepeatY: 'repeat-y',\n Repeat: 'repeat',\n} as const\n\ntype ImageBackgroundRepeat = (typeof ImageBackgroundRepeat)[keyof typeof ImageBackgroundRepeat]\n\nconst ImageBackgroundSize = {\n Cover: 'cover',\n Contain: 'contain',\n Auto: 'auto',\n} as const\n\ntype ImageBackgroundSize = (typeof ImageBackgroundSize)[keyof typeof ImageBackgroundSize]\n\ntype ImageBackgroundProps = {\n publicUrl?: string\n position: { x: number; y: number }\n repeat?: ImageBackgroundRepeat\n size?: ImageBackgroundSize\n opacity?: number\n parallax?: number\n priority?: boolean\n}\n\nfunction ImageBackground({\n publicUrl,\n position,\n repeat = ImageBackgroundRepeat.NoRepeat,\n size = ImageBackgroundSize.Cover,\n opacity,\n parallax,\n priority,\n}: ImageBackgroundProps) {\n const backgroundPosition = `${position.x}% ${position.y}%`\n const containerClassName = useStyle(containerStyle)\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n {nextMajorVersion < 13 ? (\n <NextLegacyImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n priority={priority}\n />\n ) : (\n <NextImage\n src={publicUrl}\n alt={''}\n fill\n sizes=\"100vw\"\n style={{\n objectPosition: backgroundPosition,\n objectFit: size,\n }}\n priority={priority}\n />\n )}\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div\n className={containerClassName}\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n}\n\ntype GradientBackgroundProps = {\n gradient: string\n angle?: number\n isRadial?: boolean\n}\n\nfunction GradientBackground({\n gradient,\n isRadial = false,\n angle = Math.PI,\n}: GradientBackgroundProps) {\n return (\n <div\n className={useStyle({\n ...containerStyle,\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n })}\n />\n )\n}\n\nconst BackgroundVideoAspectRatio = {\n Wide: 'wide',\n Standard: 'standard',\n} as const\n\ntype BackgroundVideoAspectRatio =\n (typeof BackgroundVideoAspectRatio)[keyof typeof BackgroundVideoAspectRatio]\n\nfunction getAspectRatio(aspectRatio: BackgroundVideoAspectRatio | null | undefined): number {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n\n case 'standard':\n return 4 / 3\n\n default:\n return 16 / 9\n }\n}\n\ntype VideoBackgroundProps = {\n url?: string\n aspectRatio?: BackgroundVideoAspectRatio\n maskColor: string\n zoom?: number\n opacity?: number\n parallax?: number\n}\n\nfunction VideoBackground({\n url,\n aspectRatio,\n maskColor,\n zoom,\n opacity,\n parallax,\n}: VideoBackgroundProps) {\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ className: useStyle(containerStyle) })}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={maskColor}\n />\n </div>\n )}\n </Parallax>\n )\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/controls/link.ts"],"sourcesContent":["import { z } from 'zod'\nimport { type MouseEvent } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\n\nimport {\n type DeserializedRecord,\n LinkDefinition as BaseLinkDefinition,\n LinkSchema,\n} from '@makeswift/controls'\n\ntype DataType = z.infer<typeof LinkDefinition.schema.data>\ntype ScrollOptions = z.infer<typeof LinkSchema.scrollOptions>\ntype MouseEventType = MouseEvent<Element>\n\nexport function validateElementRef(href: string) {\n try {\n const hash = new URL(`http://www.example.com/${href}`).hash\n return href === hash ? hash : undefined\n } catch (error) {\n return undefined\n }\n}\n\nexport class LinkDefinition extends BaseLinkDefinition<MouseEventType> {\n static deserialize(data: DeserializedRecord): LinkDefinition {\n if (data.type !== LinkDefinition.type) {\n throw new Error(`Link: expected type ${LinkDefinition.type}, got ${data.type}`)\n }\n\n const { config } = LinkDefinition.schema.definition.parse(data)\n return Link(config)\n }\n\n resolveOnClick(\n data: DataType | undefined,\n href: string,\n scrollOptions: ScrollOptions | undefined,\n ) {\n const onClick = (event: MouseEvent<Element>) => {\n if (event.defaultPrevented) return\n\n if (data && data.type === 'SCROLL_TO_ELEMENT') {\n const hash = validateElementRef(href)\n if (hash == null) {\n console.error(`Scroll-to-element link received invalid href: ${href}`)\n return\n }\n\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block: scrollOptions?.block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n\n onClick.$scrollOptions = scrollOptions\n return onClick\n }\n}\n\nexport function Link(config?: { label?: string }): LinkDefinition {\n return new LinkDefinition(config ?? {})\n}\n"],"mappings":"AAEA,OAAO,oBAAoB;AAE3B;AAAA,EAEE,kBAAkB;AAAA,OAEb;AAMA,SAAS,mBAAmB,MAAc;AAC/C,MAAI;AACF,UAAM,OAAO,IAAI,IAAI,0BAA0B,IAAI,EAAE,EAAE;AACvD,WAAO,SAAS,OAAO,OAAO;AAAA,EAChC,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,mBAAmC;AAAA,EACrE,OAAO,YAAY,MAA0C;AAC3D,QAAI,KAAK,SAAS,eAAe,MAAM;AACrC,YAAM,IAAI,MAAM,uBAAuB,eAAe,IAAI,SAAS,KAAK,IAAI,EAAE;AAAA,IAChF;AAEA,UAAM,EAAE,OAAO,IAAI,eAAe,OAAO,WAAW,MAAM,IAAI;AAC9D,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,eACE,MACA,MACA,eACA;AACA,UAAM,UAAU,CAAC,UAA+B;AAC9C,UAAI,MAAM;AAAkB;AAE5B,UAAI,QAAQ,KAAK,SAAS,qBAAqB;AAC7C,cAAM,OAAO,mBAAmB,IAAI;AACpC,YAAI,QAAQ,MAAM;AAChB,kBAAQ,MAAM,iDAAiD,IAAI,EAAE;AACrE;AAAA,QACF;AAEA,cAAM,eAAe;AACrB,cAAM,OAAO,MAAM;AAEnB,uBAAe,KAAK,SAAS,cAAc,IAAI,GAAI;AAAA,UACjD,UAAU;AAAA,UACV,OAAO,eAAe;AAAA,QACxB,CAAC;AAED,YAAI,KAAK,SAAS,SAAS;AAAM,eAAK,QAAQ,UAAU,CAAC,GAAG,IAAI,IAAI;AAAA,MACtE;AAAA,IACF;AAEA,YAAQ,iBAAiB;AACzB,WAAO;AAAA,EACT;AACF;AAEO,SAAS,KAAK,
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/link.ts"],"sourcesContent":["import { z } from 'zod'\nimport { type MouseEvent } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\n\nimport {\n type DeserializedRecord,\n LinkDefinition as BaseLinkDefinition,\n LinkSchema,\n} from '@makeswift/controls'\n\ntype DataType = z.infer<typeof LinkDefinition.schema.data>\ntype ScrollOptions = z.infer<typeof LinkSchema.scrollOptions>\ntype MouseEventType = MouseEvent<Element>\n\nexport function validateElementRef(href: string) {\n try {\n const hash = new URL(`http://www.example.com/${href}`).hash\n return href === hash ? hash : undefined\n } catch (error) {\n return undefined\n }\n}\n\nexport class LinkDefinition extends BaseLinkDefinition<MouseEventType> {\n static deserialize(data: DeserializedRecord): LinkDefinition {\n if (data.type !== LinkDefinition.type) {\n throw new Error(`Link: expected type ${LinkDefinition.type}, got ${data.type}`)\n }\n\n const { config } = LinkDefinition.schema.definition.parse(data)\n return Link(config)\n }\n\n resolveOnClick(\n data: DataType | undefined,\n href: string,\n scrollOptions: ScrollOptions | undefined,\n ) {\n const onClick = (event: MouseEvent<Element>) => {\n if (event.defaultPrevented) return\n\n if (data && data.type === 'SCROLL_TO_ELEMENT') {\n const hash = validateElementRef(href)\n if (hash == null) {\n console.error(`Scroll-to-element link received invalid href: ${href}`)\n return\n }\n\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block: scrollOptions?.block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n\n onClick.$scrollOptions = scrollOptions\n return onClick\n }\n}\n\nexport function Link(config?: { description?: string, label?: string }): LinkDefinition {\n return new LinkDefinition(config ?? {})\n}\n"],"mappings":"AAEA,OAAO,oBAAoB;AAE3B;AAAA,EAEE,kBAAkB;AAAA,OAEb;AAMA,SAAS,mBAAmB,MAAc;AAC/C,MAAI;AACF,UAAM,OAAO,IAAI,IAAI,0BAA0B,IAAI,EAAE,EAAE;AACvD,WAAO,SAAS,OAAO,OAAO;AAAA,EAChC,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,mBAAmC;AAAA,EACrE,OAAO,YAAY,MAA0C;AAC3D,QAAI,KAAK,SAAS,eAAe,MAAM;AACrC,YAAM,IAAI,MAAM,uBAAuB,eAAe,IAAI,SAAS,KAAK,IAAI,EAAE;AAAA,IAChF;AAEA,UAAM,EAAE,OAAO,IAAI,eAAe,OAAO,WAAW,MAAM,IAAI;AAC9D,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,eACE,MACA,MACA,eACA;AACA,UAAM,UAAU,CAAC,UAA+B;AAC9C,UAAI,MAAM;AAAkB;AAE5B,UAAI,QAAQ,KAAK,SAAS,qBAAqB;AAC7C,cAAM,OAAO,mBAAmB,IAAI;AACpC,YAAI,QAAQ,MAAM;AAChB,kBAAQ,MAAM,iDAAiD,IAAI,EAAE;AACrE;AAAA,QACF;AAEA,cAAM,eAAe;AACrB,cAAM,OAAO,MAAM;AAEnB,uBAAe,KAAK,SAAS,cAAc,IAAI,GAAI;AAAA,UACjD,UAAU;AAAA,UACV,OAAO,eAAe;AAAA,QACxB,CAAC;AAED,YAAI,KAAK,SAAS,SAAS;AAAM,eAAK,QAAQ,UAAU,CAAC,GAAG,IAAI,IAAI;AAAA,MACtE;AAAA,IACF;AAEA,YAAQ,iBAAiB;AACzB,WAAO;AAAA,EACT;AACF;AAEO,SAAS,KAAK,QAAmE;AACtF,SAAO,IAAI,eAAe,UAAU,CAAC,CAAC;AACxC;","names":[]}
|
|
@@ -14,7 +14,7 @@ async function handler(...args) {
|
|
|
14
14
|
const supportsDraftMode = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
15
15
|
const supportsWebhook = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
16
16
|
const body = {
|
|
17
|
-
version: "0.24.8-canary.
|
|
17
|
+
version: "0.24.8-canary.2",
|
|
18
18
|
previewMode: supportsPreviewMode,
|
|
19
19
|
draftMode: supportsDraftMode,
|
|
20
20
|
interactionMode: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-draft.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport { cookies, draftMode } from 'next/headers'\n\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n MAKESWIFT_DRAFT_DATA_COOKIE,\n PRERENDER_BYPASS_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectDraftError = string\n\ntype Response = unknown\n\nexport type RedirectDraftResponse = RedirectDraftError | Response\n\ntype RedirectDraftHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectDraftResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectDraftHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectDraftResponse>>\nexport default async function redirectDraftHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectDraftResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectDraftHandler(\n ...args: RedirectDraftHandlerArgs\n): Promise<NextResponse<RedirectDraftResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectDraftRouteHandler(...args))\n .with(apiRoutePattern, args => redirectDraftApiRouteHandler(...args))\n .exhaustive()\n}\n\nexport function originalRequestProtocol(request: NextRequest): string | null {\n // The `x-forwarded-proto` header is not formally standardized, but many proxies\n // *append* the protocol used for the request to the existing value. As a result,\n // if the request passes through multiple proxies, the header may contain a\n // comma-separated list of protocols: https://code.djangoproject.com/ticket/33569\n const forwardedProto = request.headers.get('x-forwarded-proto')\n return forwardedProto != null ? forwardedProto.split(',')[0].trim() : null\n}\n\nasync function redirectDraftRouteHandler(\n request: NextRequest,\n _context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectDraftResponse>> {\n const secret = request.nextUrl.searchParams.get(SearchParams.DraftMode)\n\n if (secret == null) {\n return new NextResponse('Unauthorized to enable draft mode: no secret provided', {\n status: 401,\n })\n }\n if (secret !== apiKey) {\n return new NextResponse('Unauthorized to enable draft mode: incorrect secret', { status: 401 })\n }\n\n const draft = await draftMode()\n const cookieStore = await cookies()\n\n draft.enable()\n\n const prerenderBypassCookie = cookieStore.get(PRERENDER_BYPASS_COOKIE)\n\n if (prerenderBypassCookie?.value == null) {\n return new NextResponse('Could not retrieve draft mode bypass cookie', { status: 500 })\n }\n\n const draftCookies: { name: string; value: string }[] = [\n prerenderBypassCookie,\n {\n name: MAKESWIFT_DRAFT_DATA_COOKIE,\n // Eventually, we can make this value dynamic using the request\n value: JSON.stringify({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working }),\n },\n ]\n\n const redirectProtocol =\n originalRequestProtocol(request) ?? request.nextUrl.protocol.replace(':', '')\n\n const redirectHost =\n request.headers.get('x-forwarded-host') ?? request.headers.get('host') ?? request.nextUrl.host\n\n const redirectUrl = new URL(\n `${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`,\n )\n\n redirectUrl.searchParams.delete(SearchParams.DraftMode)\n\n const headers = new Headers()\n draftCookies.forEach(({ name, value }) => {\n headers.append(SET_COOKIE_HEADER, serializeCookie(name, value, { ...cookieSettingOptions }))\n })\n\n return NextResponse.redirect(redirectUrl, { headers })\n}\n\nasync function redirectDraftApiRouteHandler(\n _req: NextApiRequest,\n res: NextApiResponse<RedirectDraftResponse>,\n {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-draft.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport { cookies, draftMode } from 'next/headers'\n\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n MAKESWIFT_DRAFT_DATA_COOKIE,\n PRERENDER_BYPASS_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectDraftError = string\n\ntype Response = unknown\n\nexport type RedirectDraftResponse = RedirectDraftError | Response\n\ntype RedirectDraftHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectDraftResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectDraftHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectDraftResponse>>\nexport default async function redirectDraftHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectDraftResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectDraftHandler(\n ...args: RedirectDraftHandlerArgs\n): Promise<NextResponse<RedirectDraftResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectDraftRouteHandler(...args))\n .with(apiRoutePattern, args => redirectDraftApiRouteHandler(...args))\n .exhaustive()\n}\n\nexport function originalRequestProtocol(request: NextRequest): string | null {\n // The `x-forwarded-proto` header is not formally standardized, but many proxies\n // *append* the protocol used for the request to the existing value. As a result,\n // if the request passes through multiple proxies, the header may contain a\n // comma-separated list of protocols: https://code.djangoproject.com/ticket/33569\n const forwardedProto = request.headers.get('x-forwarded-proto')\n return forwardedProto != null ? forwardedProto.split(',')[0].trim() : null\n}\n\nasync function redirectDraftRouteHandler(\n request: NextRequest,\n _context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectDraftResponse>> {\n const secret = request.nextUrl.searchParams.get(SearchParams.DraftMode)\n\n if (secret == null) {\n return new NextResponse('Unauthorized to enable draft mode: no secret provided', {\n status: 401,\n })\n }\n if (secret !== apiKey) {\n return new NextResponse('Unauthorized to enable draft mode: incorrect secret', { status: 401 })\n }\n\n const draft = await draftMode()\n const cookieStore = await cookies()\n\n draft.enable()\n\n const prerenderBypassCookie = cookieStore.get(PRERENDER_BYPASS_COOKIE)\n\n if (prerenderBypassCookie?.value == null) {\n return new NextResponse('Could not retrieve draft mode bypass cookie', { status: 500 })\n }\n\n const draftCookies: { name: string; value: string }[] = [\n prerenderBypassCookie,\n {\n name: MAKESWIFT_DRAFT_DATA_COOKIE,\n // Eventually, we can make this value dynamic using the request\n value: JSON.stringify({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working }),\n },\n ]\n\n const redirectProtocol =\n originalRequestProtocol(request) ?? request.nextUrl.protocol.replace(':', '')\n\n const redirectHost =\n request.headers.get('x-forwarded-host') ?? request.headers.get('host') ?? request.nextUrl.host\n\n const redirectUrl = new URL(\n `${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`,\n )\n\n redirectUrl.searchParams.delete(SearchParams.DraftMode)\n\n const headers = new Headers()\n draftCookies.forEach(({ name, value }) => {\n headers.append(SET_COOKIE_HEADER, serializeCookie(name, value, { ...cookieSettingOptions }))\n })\n\n return NextResponse.redirect(redirectUrl, { headers })\n}\n\nasync function redirectDraftApiRouteHandler(\n _req: NextApiRequest,\n res: NextApiResponse<RedirectDraftResponse>,\n {}: { apiKey: string },\n): Promise<void> {\n const message =\n 'Cannot request draft endpoint from an API handler registered in `pages`. Move your Makeswift API handler to the `app` directory'\n console.error(message)\n return res.status(500).send(message)\n}\n"],"mappings":"AACA,SAAsB,oBAAoB;AAC1C,SAAS,GAAG,aAAa;AACzB,SAAS,SAAS,iBAAiB;AAEnC,SAAS,aAAa,uBAAuB;AAE7C,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP,MAAM,sBAAsB,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;AAY5C,eAAO,wBACF,MACkD;AACrD,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,0BAA0B,GAAGA,KAAI,CAAC,EACpE,KAAK,iBAAiB,CAAAA,UAAQ,6BAA6B,GAAGA,KAAI,CAAC,EACnE,WAAW;AAChB;AAEO,SAAS,wBAAwB,SAAqC;AAK3E,QAAM,iBAAiB,QAAQ,QAAQ,IAAI,mBAAmB;AAC9D,SAAO,kBAAkB,OAAO,eAAe,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI;AACxE;AAEA,eAAe,0BACb,SACA,UACA,EAAE,OAAO,GACqC;AAC9C,QAAM,SAAS,QAAQ,QAAQ,aAAa,IAAI,aAAa,SAAS;AAEtE,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,aAAa,yDAAyD;AAAA,MAC/E,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACA,MAAI,WAAW,QAAQ;AACrB,WAAO,IAAI,aAAa,uDAAuD,EAAE,QAAQ,IAAI,CAAC;AAAA,EAChG;AAEA,QAAM,QAAQ,MAAM,UAAU;AAC9B,QAAM,cAAc,MAAM,QAAQ;AAElC,QAAM,OAAO;AAEb,QAAM,wBAAwB,YAAY,IAAI,uBAAuB;AAErE,MAAI,uBAAuB,SAAS,MAAM;AACxC,WAAO,IAAI,aAAa,+CAA+C,EAAE,QAAQ,IAAI,CAAC;AAAA,EACxF;AAEA,QAAM,eAAkD;AAAA,IACtD;AAAA,IACA;AAAA,MACE,MAAM;AAAA;AAAA,MAEN,OAAO,KAAK,UAAU,EAAE,WAAW,MAAM,aAAa,qBAAqB,QAAQ,CAAC;AAAA,IACtF;AAAA,EACF;AAEA,QAAM,mBACJ,wBAAwB,OAAO,KAAK,QAAQ,QAAQ,SAAS,QAAQ,KAAK,EAAE;AAE9E,QAAM,eACJ,QAAQ,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,QAAQ,IAAI,MAAM,KAAK,QAAQ,QAAQ;AAE5F,QAAM,cAAc,IAAI;AAAA,IACtB,GAAG,gBAAgB,MAAM,YAAY,GAAG,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,MAAM;AAAA,EAC3F;AAEA,cAAY,aAAa,OAAO,aAAa,SAAS;AAEtD,QAAM,UAAU,IAAI,QAAQ;AAC5B,eAAa,QAAQ,CAAC,EAAE,MAAM,MAAM,MAAM;AACxC,YAAQ,OAAO,mBAAmB,gBAAgB,MAAM,OAAO,EAAE,GAAG,qBAAqB,CAAC,CAAC;AAAA,EAC7F,CAAC;AAED,SAAO,aAAa,SAAS,aAAa,EAAE,QAAQ,CAAC;AACvD;AAEA,eAAe,6BACb,MACA,KACA,CAAC,GACc;AACf,QAAM,UACJ;AACF,UAAQ,MAAM,OAAO;AACrB,SAAO,IAAI,OAAO,GAAG,EAAE,KAAK,OAAO;AACrC;","names":["args"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\nimport { parse as parseSetCookie } from 'set-cookie-parser'\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectPreviewError = string\n\ntype Response = unknown\n\nexport type RedirectPreviewResponse = RedirectPreviewError | Response\n\ntype RedirectPreviewHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectPreviewResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectPreviewHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>>\nexport default async function redirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectPreviewHandler(\n ...args: RedirectPreviewHandlerArgs\n): Promise<NextResponse<RedirectPreviewResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectPreviewRouteHandler(...args))\n .with(apiRoutePattern, args => redirectPreviewApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function redirectPreviewRouteHandler(\n _request: NextRequest,\n _context: Context,\n {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\nimport { parse as parseSetCookie } from 'set-cookie-parser'\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectPreviewError = string\n\ntype Response = unknown\n\nexport type RedirectPreviewResponse = RedirectPreviewError | Response\n\ntype RedirectPreviewHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectPreviewResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectPreviewHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>>\nexport default async function redirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectPreviewHandler(\n ...args: RedirectPreviewHandlerArgs\n): Promise<NextResponse<RedirectPreviewResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectPreviewRouteHandler(...args))\n .with(apiRoutePattern, args => redirectPreviewApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function redirectPreviewRouteHandler(\n _request: NextRequest,\n _context: Context,\n {}: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>> {\n const message =\n 'Cannot request preview endpoint from an API handler registered in `app`. Move your Makeswift API handler to the `pages/api` directory'\n console.error(message)\n return NextResponse.json(message, { status: 500 })\n}\n\nasync function redirectPreviewApiRouteHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void> {\n const secret = req.query[SearchParams.PreviewMode]\n // Next.js automatically strips the locale prefix from rewritten request's URL, even when the\n // rewrite's `locale` option is set to `false`: https://github.com/vercel/next.js/discussions/21798.\n // At the same time, it also maps rewrite's URL segments (e.g. `:path`) to query parameters\n // on the rewritten request, so we use `query.path` to recover the original request path.\n const pathname = req.query.path as string | undefined\n\n if (secret == null) {\n return res.status(401).send('Unauthorized to enable preview mode: no secret provided')\n }\n\n if (secret !== apiKey) {\n return res.status(401).send('Unauthorized to enable preview mode: secret is incorrect')\n }\n\n if (pathname == null) {\n return res\n .status(400)\n .send('Bad request: incoming request does not have an associated pathname')\n }\n\n const setCookie = res\n // Eventually, we can make the preview data value dynamic using the request\n .setPreviewData({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working })\n .getHeader(SET_COOKIE_HEADER)\n\n res.removeHeader(SET_COOKIE_HEADER)\n\n const parsedCookies = parseSetCookie(Array.isArray(setCookie) ? setCookie : '')\n\n const prerenderBypassCookie = parsedCookies.find(c => c.name === PRERENDER_BYPASS_COOKIE)\n const previewDataCookie = parsedCookies.find(c => c.name === PREVIEW_DATA_COOKIE)\n\n if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {\n return res.status(500).send('Could not retrieve preview mode cookies')\n }\n\n const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {\n return serializeCookie(name, value, { ...cookieSettingOptions })\n })\n\n res.setHeader(SET_COOKIE_HEADER, patchedCookies)\n\n const destinationUrl = new URL(pathname, 'http://test.com')\n destinationUrl.searchParams.delete(SearchParams.PreviewMode)\n\n res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`)\n}\n"],"mappings":"AACA,SAAsB,oBAAoB;AAC1C,SAAS,GAAG,aAAa;AAEzB,SAAS,SAAS,sBAAsB;AACxC,SAAS,aAAa,uBAAuB;AAE7C,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP,MAAM,sBAAsB,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;AAY5C,eAAO,0BACF,MACoD;AACvD,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,4BAA4B,GAAGA,KAAI,CAAC,EACtE,KAAK,iBAAiB,CAAAA,UAAQ,+BAA+B,GAAGA,KAAI,CAAC,EACrE,WAAW;AAChB;AAEA,eAAe,4BACb,UACA,UACA,CAAC,GAC+C;AAChD,QAAM,UACJ;AACF,UAAQ,MAAM,OAAO;AACrB,SAAO,aAAa,KAAK,SAAS,EAAE,QAAQ,IAAI,CAAC;AACnD;AAEA,eAAe,+BACb,KACA,KACA,EAAE,OAAO,GACM;AACf,QAAM,SAAS,IAAI,MAAM,aAAa,WAAW;AAKjD,QAAM,WAAW,IAAI,MAAM;AAE3B,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yDAAyD;AAAA,EACvF;AAEA,MAAI,WAAW,QAAQ;AACrB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,0DAA0D;AAAA,EACxF;AAEA,MAAI,YAAY,MAAM;AACpB,WAAO,IACJ,OAAO,GAAG,EACV,KAAK,oEAAoE;AAAA,EAC9E;AAEA,QAAM,YAAY,IAEf,eAAe,EAAE,WAAW,MAAM,aAAa,qBAAqB,QAAQ,CAAC,EAC7E,UAAU,iBAAiB;AAE9B,MAAI,aAAa,iBAAiB;AAElC,QAAM,gBAAgB,eAAe,MAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAE9E,QAAM,wBAAwB,cAAc,KAAK,OAAK,EAAE,SAAS,uBAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,mBAAmB;AAEhF,MAAI,uBAAuB,SAAS,QAAQ,mBAAmB,SAAS,MAAM;AAC5E,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yCAAyC;AAAA,EACvE;AAEA,QAAM,iBAAiB,CAAC,uBAAuB,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM;AACzF,WAAO,gBAAgB,MAAM,OAAO,EAAE,GAAG,qBAAqB,CAAC;AAAA,EACjE,CAAC;AAED,MAAI,UAAU,mBAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,UAAU,iBAAiB;AAC1D,iBAAe,aAAa,OAAO,aAAa,WAAW;AAE3D,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":["args"]}
|
|
@@ -29,7 +29,10 @@ async function handler(...args) {
|
|
|
29
29
|
console.error(error);
|
|
30
30
|
return respond(args, { message: "Invalid request body" }, 400);
|
|
31
31
|
}
|
|
32
|
-
const result = await match(payload.type).with(
|
|
32
|
+
const result = await match(payload.type).with(
|
|
33
|
+
WebhookEventType.SITE_PUBLISHED,
|
|
34
|
+
() => handleSitePublished(payload, { onPublish: events?.onPublish })
|
|
35
|
+
).exhaustive();
|
|
33
36
|
return respond(args, result.body, result.status);
|
|
34
37
|
}
|
|
35
38
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/index.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport { handleSitePublished } from './site-published'\nimport {\n OnPublish,\n sitePublishedWebhookPayloadSchema,\n WebhookEventType,\n WebhookPayloadSchema,\n WebhookResponseBody,\n} from './types'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype WebhookParams = {\n apiKey: string
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/index.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport { handleSitePublished } from './site-published'\nimport {\n OnPublish,\n sitePublishedWebhookPayloadSchema,\n WebhookEventType,\n WebhookPayloadSchema,\n WebhookResponseBody,\n} from './types'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype WebhookParams = {\n apiKey: string\n events?: { onPublish?: OnPublish }\n}\n\nexport type WebhookHandlerArgs =\n | [request: NextRequest, context: Context, params: WebhookParams]\n | [req: NextApiRequest, res: NextApiResponse<WebhookResponseBody>, params: WebhookParams]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nfunction getSecret(args: WebhookHandlerArgs) {\n return match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('secret'))\n .with(apiRoutePattern, ([req]) => req.query.secret)\n .exhaustive()\n}\n\nfunction getRequestBody(args: WebhookHandlerArgs) {\n return match(args)\n .with(routeHandlerPattern, ([request]) => request.json())\n .with(apiRoutePattern, ([req]) => req.body)\n .exhaustive()\n}\n\nfunction respond(args: WebhookHandlerArgs, response: WebhookResponseBody, status?: number) {\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(response, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status ?? 200).json(response))\n .exhaustive()\n}\n\nexport default async function handler(\n request: NextRequest,\n context: Context,\n { apiKey, events }: WebhookParams,\n): Promise<NextResponse<WebhookResponseBody>>\nexport default async function handler(\n req: NextApiRequest,\n res: NextApiResponse<WebhookResponseBody>,\n { apiKey, events }: WebhookParams,\n): Promise<void>\nexport default async function handler(\n ...args: WebhookHandlerArgs\n): Promise<NextResponse<WebhookResponseBody> | void> {\n const [, , { apiKey, events }] = args\n const secret = getSecret(args)\n\n if (secret !== apiKey) return respond(args, { message: 'Unauthorized' }, 401)\n\n let payload: WebhookPayloadSchema\n\n try {\n const body = await getRequestBody(args)\n payload = sitePublishedWebhookPayloadSchema.parse(body)\n } catch (error) {\n console.error(error)\n return respond(args, { message: 'Invalid request body' }, 400)\n }\n\n const result = await match(payload.type)\n .with(WebhookEventType.SITE_PUBLISHED, () =>\n handleSitePublished(payload, { onPublish: events?.onPublish }),\n )\n .exhaustive()\n\n return respond(args, result.body, result.status)\n}\n"],"mappings":"AACA,SAAsB,oBAAoB;AAC1C,SAAS,GAAG,aAAa;AACzB,SAAS,2BAA2B;AACpC;AAAA,EAEE;AAAA,EACA;AAAA,OAGK;AAaP,MAAM,sBAAsB,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;AAE5C,SAAS,UAAU,MAA0B;AAC3C,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAC,CAAC,OAAO,MAAM,QAAQ,QAAQ,aAAa,IAAI,QAAQ,CAAC,EACnF,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,MAAM,EACjD,WAAW;AAChB;AAEA,SAAS,eAAe,MAA0B;AAChD,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAC,CAAC,OAAO,MAAM,QAAQ,KAAK,CAAC,EACvD,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EACzC,WAAW;AAChB;AAEA,SAAS,QAAQ,MAA0B,UAA+B,QAAiB;AACzF,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,MAAM,aAAa,KAAK,UAAU,EAAE,OAAO,CAAC,CAAC,EACvE,KAAK,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,OAAO,UAAU,GAAG,EAAE,KAAK,QAAQ,CAAC,EAC3E,WAAW;AAChB;AAYA,eAAO,WACF,MACgD;AACnD,QAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,OAAO,CAAC,IAAI;AACjC,QAAM,SAAS,UAAU,IAAI;AAE7B,MAAI,WAAW;AAAQ,WAAO,QAAQ,MAAM,EAAE,SAAS,eAAe,GAAG,GAAG;AAE5E,MAAI;AAEJ,MAAI;AACF,UAAM,OAAO,MAAM,eAAe,IAAI;AACtC,cAAU,kCAAkC,MAAM,IAAI;AAAA,EACxD,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AACnB,WAAO,QAAQ,MAAM,EAAE,SAAS,uBAAuB,GAAG,GAAG;AAAA,EAC/D;AAEA,QAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,EACpC;AAAA,IAAK,iBAAiB;AAAA,IAAgB,MACrC,oBAAoB,SAAS,EAAE,WAAW,QAAQ,UAAU,CAAC;AAAA,EAC/D,EACC,WAAW;AAEd,SAAO,QAAQ,MAAM,OAAO,MAAM,OAAO,MAAM;AACjD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/client.ts"],"sourcesContent":["import { PreviewData } from 'next'\n\nimport { MakeswiftSiteVersion } from '../api/site-version'\nimport { getMakeswiftSiteVersion } from './preview-mode'\n\nimport { MakeswiftClient } from '../client'\nimport { MAKESWIFT_CACHE_TAG } from './cache'\n\nexport class Makeswift extends MakeswiftClient {\n
|
|
1
|
+
{"version":3,"sources":["../../../src/next/client.ts"],"sourcesContent":["import { PreviewData } from 'next'\n\nimport { MakeswiftSiteVersion } from '../api/site-version'\nimport { getMakeswiftSiteVersion } from './preview-mode'\n\nimport { MakeswiftClient } from '../client'\nimport { MAKESWIFT_CACHE_TAG } from './cache'\n\nexport class Makeswift extends MakeswiftClient {\n static getSiteVersion(previewData: PreviewData): MakeswiftSiteVersion {\n return getMakeswiftSiteVersion(previewData) ?? MakeswiftSiteVersion.Live\n }\n\n static getPreviewMode(previewData: PreviewData): boolean {\n return getMakeswiftSiteVersion(previewData) === MakeswiftSiteVersion.Working\n }\n\n fetchOptions(_siteVersion: MakeswiftSiteVersion): Record<string, unknown> {\n return {\n next: {\n tags: [MAKESWIFT_CACHE_TAG],\n },\n }\n }\n}\n"],"mappings":"AAEA,SAAS,4BAA4B;AACrC,SAAS,+BAA+B;AAExC,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,MAAM,kBAAkB,gBAAgB;AAAA,EAC7C,OAAO,eAAe,aAAgD;AACpE,WAAO,wBAAwB,WAAW,KAAK,qBAAqB;AAAA,EACtE;AAAA,EAEA,OAAO,eAAe,aAAmC;AACvD,WAAO,wBAAwB,WAAW,MAAM,qBAAqB;AAAA,EACvE;AAAA,EAEA,aAAa,cAA6D;AACxE,WAAO;AAAA,MACL,MAAM;AAAA,QACJ,MAAM,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -5,7 +5,7 @@ import { componentDocumentToRootEmbeddedDocument } from "../../client";
|
|
|
5
5
|
import { DocumentRoot } from "../../runtimes/react/components/DocumentRoot";
|
|
6
6
|
import { useCacheData } from "../../runtimes/react/hooks/use-cache-data";
|
|
7
7
|
import { useRegisterDocument } from "../../runtimes/react/hooks/use-register-document";
|
|
8
|
-
const MakeswiftComponent = memo(({ snapshot, label, type }) => {
|
|
8
|
+
const MakeswiftComponent = memo(({ snapshot, label, type, description }) => {
|
|
9
9
|
useCacheData(snapshot.cacheData);
|
|
10
10
|
const rootDocument = useMemo(
|
|
11
11
|
() => componentDocumentToRootEmbeddedDocument({
|
|
@@ -13,9 +13,10 @@ const MakeswiftComponent = memo(({ snapshot, label, type }) => {
|
|
|
13
13
|
documentKey: snapshot.key,
|
|
14
14
|
name: label,
|
|
15
15
|
type,
|
|
16
|
+
description,
|
|
16
17
|
meta: snapshot.meta
|
|
17
18
|
}),
|
|
18
|
-
[snapshot, label, type]
|
|
19
|
+
[snapshot, label, type, description]
|
|
19
20
|
);
|
|
20
21
|
useRegisterDocument(rootDocument);
|
|
21
22
|
return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(DocumentRoot, { rootDocument }) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/components/MakeswiftComponent.tsx"],"sourcesContent":["'use client'\n\nimport { memo, Suspense, useMemo } from 'react'\nimport { componentDocumentToRootEmbeddedDocument, MakeswiftComponentSnapshot } from '../../client'\nimport { DocumentRoot } from '../../runtimes/react/components/DocumentRoot'\nimport { useCacheData } from '../../runtimes/react/hooks/use-cache-data'\nimport { useRegisterDocument } from '../../runtimes/react/hooks/use-register-document'\n\ntype Props = {\n snapshot: MakeswiftComponentSnapshot\n label: string\n type: string\n}\n\nexport const MakeswiftComponent = memo(({ snapshot, label, type }: Props) => {\n useCacheData(snapshot.cacheData)\n\n const rootDocument = useMemo(\n () =>\n componentDocumentToRootEmbeddedDocument({\n document: snapshot.document,\n documentKey: snapshot.key,\n name: label,\n type,\n meta: snapshot.meta,\n }),\n [snapshot, label, type],\n )\n\n useRegisterDocument(rootDocument)\n\n return (\n <Suspense>\n <DocumentRoot rootDocument={rootDocument} />\n </Suspense>\n )\n})\n"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/components/MakeswiftComponent.tsx"],"sourcesContent":["'use client'\n\nimport { memo, Suspense, useMemo } from 'react'\nimport { componentDocumentToRootEmbeddedDocument, MakeswiftComponentSnapshot } from '../../client'\nimport { DocumentRoot } from '../../runtimes/react/components/DocumentRoot'\nimport { useCacheData } from '../../runtimes/react/hooks/use-cache-data'\nimport { useRegisterDocument } from '../../runtimes/react/hooks/use-register-document'\n\ntype Props = {\n snapshot: MakeswiftComponentSnapshot\n label: string\n type: string\n description?: string\n}\n\nexport const MakeswiftComponent = memo(({ snapshot, label, type, description }: Props) => {\n useCacheData(snapshot.cacheData)\n\n const rootDocument = useMemo(\n () =>\n componentDocumentToRootEmbeddedDocument({\n document: snapshot.document,\n documentKey: snapshot.key,\n name: label,\n type,\n description,\n meta: snapshot.meta,\n }),\n [snapshot, label, type, description],\n )\n\n useRegisterDocument(rootDocument)\n\n return (\n <Suspense>\n <DocumentRoot rootDocument={rootDocument} />\n </Suspense>\n )\n})\n"],"mappings":";AAmCM;AAjCN,SAAS,MAAM,UAAU,eAAe;AACxC,SAAS,+CAA2E;AACpF,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAS7B,MAAM,qBAAqB,KAAK,CAAC,EAAE,UAAU,OAAO,MAAM,YAAY,MAAa;AACxF,eAAa,SAAS,SAAS;AAE/B,QAAM,eAAe;AAAA,IACnB,MACE,wCAAwC;AAAA,MACtC,UAAU,SAAS;AAAA,MACnB,aAAa,SAAS;AAAA,MACtB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM,SAAS;AAAA,IACjB,CAAC;AAAA,IACH,CAAC,UAAU,OAAO,MAAM,WAAW;AAAA,EACrC;AAEA,sBAAoB,YAAY;AAEhC,SACE,oBAAC,YACC,8BAAC,gBAAa,cAA4B,GAC5C;AAEJ,CAAC;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport { MakeswiftComponent } from './components/MakeswiftComponent'\nexport { Slot } from './components/Slot'\nexport type {
|
|
1
|
+
{"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport { MakeswiftComponent } from './components/MakeswiftComponent'\nexport { Slot } from './components/Slot'\nexport type {\n MakeswiftPage,\n MakeswiftPageDocument,\n MakeswiftPageSnapshot,\n Sitemap,\n} from '../client'\nexport { Makeswift } from './client'\nexport type { MakeswiftPreviewData } from './preview-mode'\nexport { RootStyleRegistry } from './root-style-registry'\nexport { ReactRuntimeProvider } from '../runtimes/react/'\n"],"mappings":"AACA,SAAS,YAAY;AACrB,SAAS,0BAA0B;AACnC,SAAS,YAAY;AAOrB,SAAS,iBAAiB;AAE1B,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;","names":[]}
|
|
@@ -14,9 +14,7 @@ function urlToQuery(url) {
|
|
|
14
14
|
current[segments[segments.length - 2]] = [segments[segments.length - 1]];
|
|
15
15
|
return {
|
|
16
16
|
...structure,
|
|
17
|
-
...Object.fromEntries(
|
|
18
|
-
url.searchParams.entries()
|
|
19
|
-
)
|
|
17
|
+
...Object.fromEntries(url.searchParams.entries())
|
|
20
18
|
};
|
|
21
19
|
}
|
|
22
20
|
function createNextApiRequest({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/tests/test-utils.ts"],"sourcesContent":["import { NextApiRequest } from
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/tests/test-utils.ts"],"sourcesContent":["import { NextApiRequest } from 'next'\nimport { createRequest, RequestMethod } from 'node-mocks-http'\n\ntype Query = { [key: string]: Query } | string[]\n\nfunction urlToQuery(url: URL): Query {\n const segments = url.pathname.split('/').filter(Boolean)\n\n if (segments.length === 0) return {}\n if (segments.length === 1) return [segments[0]]\n\n let structure: { [key: string]: any } = {}\n let current = structure\n\n for (let i = 0; i < segments.length - 2; i++) {\n current[segments[i]] = {}\n current = current[segments[i]]\n }\n\n current[segments[segments.length - 2]] = [segments[segments.length - 1]]\n\n return {\n ...structure,\n ...Object.fromEntries(url.searchParams.entries()),\n }\n}\n\nexport function createNextApiRequest({\n method,\n path,\n body,\n}: {\n method: RequestMethod\n path: string\n body?: Record<string, unknown>\n}): NextApiRequest {\n return createRequest<NextApiRequest>({\n method,\n url: path,\n query: urlToQuery(new URL(path, 'http://localhost')),\n body,\n })\n}\n"],"mappings":"AACA,SAAS,qBAAoC;AAI7C,SAAS,WAAW,KAAiB;AACnC,QAAM,WAAW,IAAI,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAEvD,MAAI,SAAS,WAAW;AAAG,WAAO,CAAC;AACnC,MAAI,SAAS,WAAW;AAAG,WAAO,CAAC,SAAS,CAAC,CAAC;AAE9C,MAAI,YAAoC,CAAC;AACzC,MAAI,UAAU;AAEd,WAAS,IAAI,GAAG,IAAI,SAAS,SAAS,GAAG,KAAK;AAC5C,YAAQ,SAAS,CAAC,CAAC,IAAI,CAAC;AACxB,cAAU,QAAQ,SAAS,CAAC,CAAC;AAAA,EAC/B;AAEA,UAAQ,SAAS,SAAS,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,SAAS,CAAC,CAAC;AAEvE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,OAAO,YAAY,IAAI,aAAa,QAAQ,CAAC;AAAA,EAClD;AACF;AAEO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACF,GAImB;AACjB,SAAO,cAA8B;AAAA,IACnC;AAAA,IACA,KAAK;AAAA,IACL,OAAO,WAAW,IAAI,IAAI,MAAM,kBAAkB,CAAC;AAAA,IACnD;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/components/PageProvider.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef } from 'react'\nimport { PageContext } from '../hooks/use-page-id'\n\ntype PageProviderProps = {\n id: string\n children: ComponentPropsWithoutRef<typeof PageContext['Provider']>['children']\n}\n\nexport function PageProvider({ id, children }: PageProviderProps) {\n return <PageContext.Provider value={id}>{children}</PageContext.Provider>\n}\n"],"mappings":"AASS;AART,SAAS,mBAAmB;AAOrB,SAAS,aAAa,EAAE,IAAI,SAAS,GAAsB;AAChE,SAAO,oBAAC,YAAY,UAAZ,EAAqB,OAAO,IAAK,UAAS;AACpD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/PageProvider.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef } from 'react'\nimport { PageContext } from '../hooks/use-page-id'\n\ntype PageProviderProps = {\n id: string\n children: ComponentPropsWithoutRef<(typeof PageContext)['Provider']>['children']\n}\n\nexport function PageProvider({ id, children }: PageProviderProps) {\n return <PageContext.Provider value={id}>{children}</PageContext.Provider>\n}\n"],"mappings":"AASS;AART,SAAS,mBAAmB;AAOrB,SAAS,aAAa,EAAE,IAAI,SAAS,GAAsB;AAChE,SAAO,oBAAC,YAAY,UAAZ,EAAqB,OAAO,IAAK,UAAS;AACpD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/runtimes/react/components/draft-switcher/draft-switcher.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { PageMeta } from '../../../../next/components/head-tags'\nimport { useIsInBuilder } from '../../hooks/use-is-in-builder'\nimport { DraftToolbar } from './draft-toolbar'\n\nconst ClearDraftModeRequestPath = '/api/makeswift/clear-draft'\n\nasync function exitDraftMode() {\n try {\n await fetch(ClearDraftModeRequestPath)\n window.location.reload()\n } catch (err) {\n console.error('Could not clear Makeswift cookies. Please report this error to your developer.')\n console.error(err)\n }\n}\n\nexport function DraftSwitcher({ isDraft }: { isDraft: boolean }) {\n const shadowContainerRef = useRef<HTMLSpanElement | null>(null)\n const [shadowRoot, setShadowRoot] = useState<ShadowRoot | null>(null)\n const isInBuilder = useIsInBuilder()\n\n const showToolbar = !isInBuilder && isDraft\n\n useEffect(() => {\n if (!showToolbar) return\n if (\n shadowContainerRef.current &&\n shadowContainerRef.current.shadowRoot == null &&\n shadowRoot == null\n ) {\n const root = shadowContainerRef.current.attachShadow({ mode: 'open' })\n setShadowRoot(root)\n }\n }, [showToolbar, shadowRoot, setShadowRoot])\n\n return (\n <>\n {showToolbar && (\n <span id=\"makeswift-draft-switcher\" ref={shadowContainerRef}>\n {shadowRoot\n ? createPortal(<DraftToolbar onExitDraft={exitDraftMode} />, shadowRoot)\n : null}\n </span>\n )}\n {/* Insert draft mode information into the DOM to make it easier to debug draft mode-related \n issues on production sites */}\n <PageMeta\n name=\"makeswift-draft-info\"\n content={JSON.stringify({ draft: isDraft, inBuilder: isInBuilder })}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/runtimes/react/components/draft-switcher/draft-switcher.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { PageMeta } from '../../../../next/components/head-tags'\nimport { useIsInBuilder } from '../../hooks/use-is-in-builder'\nimport { DraftToolbar } from './draft-toolbar'\n\nconst ClearDraftModeRequestPath = '/api/makeswift/clear-draft'\n\nasync function exitDraftMode() {\n try {\n await fetch(ClearDraftModeRequestPath)\n window.location.reload()\n } catch (err) {\n console.error('Could not clear Makeswift cookies. Please report this error to your developer.')\n console.error(err)\n }\n}\n\nexport function DraftSwitcher({ isDraft }: { isDraft: boolean }) {\n const shadowContainerRef = useRef<HTMLSpanElement | null>(null)\n const [shadowRoot, setShadowRoot] = useState<ShadowRoot | null>(null)\n const isInBuilder = useIsInBuilder()\n\n const showToolbar = !isInBuilder && isDraft\n\n useEffect(() => {\n if (!showToolbar) return\n if (\n shadowContainerRef.current &&\n shadowContainerRef.current.shadowRoot == null &&\n shadowRoot == null\n ) {\n const root = shadowContainerRef.current.attachShadow({ mode: 'open' })\n setShadowRoot(root)\n }\n }, [showToolbar, shadowRoot, setShadowRoot])\n\n return (\n <>\n {showToolbar && (\n <span id=\"makeswift-draft-switcher\" ref={shadowContainerRef}>\n {shadowRoot\n ? createPortal(<DraftToolbar onExitDraft={exitDraftMode} />, shadowRoot)\n : null}\n </span>\n )}\n {/* Insert draft mode information into the DOM to make it easier to debug draft mode-related \n issues on production sites */}\n <PageMeta\n name=\"makeswift-draft-info\"\n content={JSON.stringify({ draft: isDraft, inBuilder: isInBuilder })}\n />\n </>\n )\n}\n"],"mappings":"AAuCI,mBAIuB,KAJvB;AAvCJ,SAAS,WAAW,QAAQ,gBAAgB;AAC5C,SAAS,oBAAoB;AAE7B,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAE7B,MAAM,4BAA4B;AAElC,eAAe,gBAAgB;AAC7B,MAAI;AACF,UAAM,MAAM,yBAAyB;AACrC,WAAO,SAAS,OAAO;AAAA,EACzB,SAAS,KAAK;AACZ,YAAQ,MAAM,gFAAgF;AAC9F,YAAQ,MAAM,GAAG;AAAA,EACnB;AACF;AAEO,SAAS,cAAc,EAAE,QAAQ,GAAyB;AAC/D,QAAM,qBAAqB,OAA+B,IAAI;AAC9D,QAAM,CAAC,YAAY,aAAa,IAAI,SAA4B,IAAI;AACpE,QAAM,cAAc,eAAe;AAEnC,QAAM,cAAc,CAAC,eAAe;AAEpC,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,QACE,mBAAmB,WACnB,mBAAmB,QAAQ,cAAc,QACzC,cAAc,MACd;AACA,YAAM,OAAO,mBAAmB,QAAQ,aAAa,EAAE,MAAM,OAAO,CAAC;AACrE,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,aAAa,YAAY,aAAa,CAAC;AAE3C,SACE,iCACG;AAAA,mBACC,oBAAC,UAAK,IAAG,4BAA2B,KAAK,oBACtC,uBACG,aAAa,oBAAC,gBAAa,aAAa,eAAe,GAAI,UAAU,IACrE,MACN;AAAA,IAIF;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS,KAAK,UAAU,EAAE,OAAO,SAAS,WAAW,YAAY,CAAC;AAAA;AAAA,IACpE;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel, BoxModelHandle } from '../../box-model'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel, BoxModelHandle } from '../../box-model'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n >\n implements BoxModelHandle, PropControllersHandle<T>\n{\n private getCurrent: () => unknown = () => null\n private lastPropControllers: DescriptorsPropControllers<T> | null = null\n\n callback(getCurrent: () => unknown) {\n const current = this.getCurrent()\n\n if (current === null) this.setPropControllers(null)\n\n this.getCurrent = getCurrent\n\n if (this.lastPropControllers !== null) this.setPropControllers(this.lastPropControllers)\n }\n\n getBoxModel(): BoxModel | null {\n const current = this.getCurrent()\n\n return isMeasurable(current) ? measure(current) : null\n }\n\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void {\n const current = this.getCurrent()\n\n if (isPropControllersHandle(current)) current.setPropControllers(propControllers)\n\n this.lastPropControllers = propControllers\n }\n\n getDomNode(): Element | null {\n const current = this.getCurrent()\n\n if (isDomNodeHandle(current)) return current.getDomNode()\n\n return current instanceof Element ? current : null\n }\n}\n\ntype DomNodeHandle = {\n getDomNode(): Element | null\n}\n\nexport function isDomNodeHandle(value: unknown): value is DomNodeHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getDomNode' in value &&\n typeof (value as { getDomNode: unknown }).getDomNode === 'function'\n ) {\n return true\n }\n\n return false\n}\n"],"mappings":"AAGA,SAAS,cAAc,eAAe;AACtC;AAAA,EACE;AAAA,OAEK;AAEA,MAAM,wBAIb;AAAA,EACU,aAA4B,MAAM;AAAA,EAClC,sBAA4D;AAAA,EAEpE,SAAS,YAA2B;AAClC,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,YAAY;AAAM,WAAK,mBAAmB,IAAI;AAElD,SAAK,aAAa;AAElB,QAAI,KAAK,wBAAwB;AAAM,WAAK,mBAAmB,KAAK,mBAAmB;AAAA,EACzF;AAAA,EAEA,cAA+B;AAC7B,UAAM,UAAU,KAAK,WAAW;AAEhC,WAAO,aAAa,OAAO,IAAI,QAAQ,OAAO,IAAI;AAAA,EACpD;AAAA,EAEA,mBAAmB,iBAA6D;AAC9E,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,wBAAwB,OAAO;AAAG,cAAQ,mBAAmB,eAAe;AAEhF,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,aAA6B;AAC3B,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,gBAAgB,OAAO;AAAG,aAAO,QAAQ,WAAW;AAExD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD;AACF;AAMO,SAAS,gBAAgB,OAAwC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACV,gBAAgB,SAChB,OAAQ,MAAkC,eAAe,YACzD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useDispatch } from "./use-dispatch";
|
|
3
3
|
import { useIsInBuilder } from "./use-is-in-builder";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
registerBuilderDocumentsEffect,
|
|
6
|
+
registerDocument,
|
|
7
|
+
registerDocumentsEffect
|
|
8
|
+
} from "../../../state/actions";
|
|
5
9
|
import { isServer } from "../../../utils/is-server";
|
|
6
10
|
import { useIsomorphicLayoutEffect } from "../../../components/hooks/useIsomorphicLayoutEffect";
|
|
7
11
|
function useRegisterDocument(document) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport {\n registerBuilderDocumentsEffect,\n registerDocument,\n registerDocumentsEffect,\n} from '../../../state/actions'\nimport { isServer } from '../../../utils/is-server'\nimport { useIsomorphicLayoutEffect } from '../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n if (isServer()) {\n dispatch(registerDocument(document))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useIsomorphicLayoutEffect(() => {\n return dispatch(registerDocumentsEffect([document]))\n }, [dispatch, document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAKnC,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,MAAI,SAAS,GAAG;AACd,aAAS,iBAAiB,QAAQ,CAAC;AAAA,EACrC;AAMA,4BAA0B,MAAM;AAC9B,WAAO,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,QAAQ,CAAC;AAIvB,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
|
|
@@ -16,11 +16,12 @@ class ReactRuntime extends RuntimeCore {
|
|
|
16
16
|
label,
|
|
17
17
|
icon = ComponentIcon.Cube,
|
|
18
18
|
hidden = false,
|
|
19
|
-
props
|
|
19
|
+
props,
|
|
20
|
+
description
|
|
20
21
|
}) {
|
|
21
22
|
validateComponentType(type, component);
|
|
22
23
|
const unregisterComponent = this.store.dispatch(
|
|
23
|
-
registerComponentEffect(type, { label, icon, hidden }, props ?? {})
|
|
24
|
+
registerComponentEffect(type, { label, icon, hidden, description }, props ?? {})
|
|
24
25
|
);
|
|
25
26
|
const unregisterReactComponent = this.store.dispatch(
|
|
26
27
|
registerReactComponentEffect(type, component)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/react/react-runtime.ts"],"sourcesContent":["import { registerBuiltinComponents } from '../../components/builtin/register'\nimport { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { registerComponentEffect, registerReactComponentEffect } from '../../state/actions'\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/react-page'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntime extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n props,\n }: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n\n registerBuiltinComponents(this)\n }\n}\n"],"mappings":"AAAA,SAAS,iCAAiC;AAK1C,SAAS,yBAAyB,oCAAoC;AAEtE,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,qBAAqB,YAAY;AAAA,EAC5C,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,cAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,EACF,GACY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,MACrC,wBAAwB,MAAM,EAAE,OAAO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/react/react-runtime.ts"],"sourcesContent":["import { registerBuiltinComponents } from '../../components/builtin/register'\nimport { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { registerComponentEffect, registerReactComponentEffect } from '../../state/actions'\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/react-page'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntime extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n props,\n description,\n }: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P; description?: string },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(type, { label, icon, hidden, description }, props ?? {}),\n )\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n\n registerBuiltinComponents(this)\n }\n}\n"],"mappings":"AAAA,SAAS,iCAAiC;AAK1C,SAAS,yBAAyB,oCAAoC;AAEtE,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,qBAAqB,YAAY;AAAA,EAC5C,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,cAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACF,GACY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,MACrC,wBAAwB,MAAM,EAAE,OAAO,MAAM,QAAQ,YAAY,GAAG,SAAS,CAAC,CAAC;AAAA,IACjF;AAEA,UAAM,2BAA2B,KAAK,MAAM;AAAA,MAC1C,6BAA6B,MAAM,SAAqC;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,0BAAoB;AACpB,+BAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,YAAY,EAAE,YAAY,IAAwC,CAAC,GAAG;AACpE,UAAM,EAAE,YAAY,CAAC;AAErB,8BAA0B,IAAI;AAAA,EAChC;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\nimport { ControlInstance } from '@makeswift/controls'\n\nimport { type Element, type Document, EMBEDDED_DOCUMENT_TYPE } from './modules/read-only-documents'\nimport type { DescriptorsByComponentType } from './modules/prop-controllers'\nimport type { ComponentType } from './modules/react-components'\nimport type { Measurable, BoxModel } from './modules/box-models'\nimport type { ThunkAction } from 'redux-thunk'\nimport { ComponentMeta } from './modules/components-meta'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport type { Size } from './react-builder-preview'\nimport type { PropControllersHandle } from './modules/prop-controller-handles'\nimport type { PropControllerMessage } from '../prop-controllers/instances'\nimport type { APIResource, APIResourceType, APIResourceLocale } from '../api/types'\nimport type { SerializedControl } from '../builder'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\nimport { BuilderEditMode } from './modules/builder-edit-mode'\nimport type { Point } from './modules/pointer'\nimport { Breakpoints } from './modules/breakpoints'\nimport { type SerializedState as APIClientCache } from './makeswift-api-client'\nimport { LocaleString, localeStringSchema } from '../locale'\n\nexport const ActionTypes = {\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n CREATE_ELEMENT_TREE: 'CREATE_ELEMENT_TREE',\n DELETE_ELEMENT_TREE: 'DELETE_ELEMENT_TREE',\n CHANGE_ELEMENT_TREE: 'CHANGE_ELEMENT_TREE',\n\n REGISTER_BUILDER_DOCUMENT: 'REGISTER_BUILDER_DOCUMENT',\n UNREGISTER_BUILDER_DOCUMENT: 'UNREGISTER_BUILDER_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_COMPONENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n\n API_RESOURCE_FULFILLED: 'API_RESOURCE_FULFILLED',\n\n SET_BUILDER_EDIT_MODE: 'SET_BUILDER_EDIT_MODE',\n MAKESWIFT_CONNECTION_INIT: 'MAKESWIFT_CONNECTION_INIT',\n MAKESWIFT_CONNECTION_CHECK: 'MAKESWIFT_CONNECTION_CHECK',\n\n BUILDER_POINTER_MOVE: 'BUILDER_POINTER_MOVE',\n ELEMENT_FROM_POINT_CHANGE: 'ELEMENT_FROM_POINT_CHANGE',\n\n SET_BREAKPOINTS: 'SET_BREAKPOINTS',\n\n SET_LOCALE: 'SET_LOCALE',\n\n SET_LOCALIZED_RESOURCE_ID: 'SET_LOCALIZED_RESOURCE_ID',\n\n UPDATE_API_CLIENT_CACHE: 'UPDATE_API_CLIENT_CACHE',\n} as const\n\ntype InitAction = { type: typeof ActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof ActionTypes.CLEAN_UP }\n\ntype DocumentPayloadBaseDocument = {\n key: string\n rootElement: Element\n locale?: string | null // older versions of the runtime may not provide this field\n}\n\ntype DocumentPayloadEmbeddedDocument = {\n key: string\n locale: string | null\n id: string\n type: string\n name: string\n rootElement: Element\n meta: { allowLocaleFallback: boolean; requestedLocale: string | null }\n __type: typeof EMBEDDED_DOCUMENT_TYPE\n}\n\nexport type DocumentPayload = DocumentPayloadBaseDocument | DocumentPayloadEmbeddedDocument\n\ntype RegisterDocumentAction = {\n type: typeof ActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype ChangeDocumentAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype CreateElementTreeAction = {\n type: typeof ActionTypes.CREATE_ELEMENT_TREE\n payload: { document: DocumentPayload; descriptors: DescriptorsByComponentType }\n}\n\ntype DeleteElementTreeAction = {\n type: typeof ActionTypes.DELETE_ELEMENT_TREE\n payload: { documentKey: string }\n}\n\ntype ChangeElementTreeAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_TREE\n payload: {\n oldDocument: DocumentPayload\n newDocument: DocumentPayload\n descriptors: DescriptorsByComponentType\n operation: Operation\n }\n}\n\ntype RegisterBuilderDocumentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterBuilderDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype RegisterComponentAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n propControllerDescriptors: Record<string, PropControllerDescriptor>\n }\n}\n\ntype UnregisterComponentAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n transferables?: Transferable[]\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof ActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof ActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\n\ntype MountComponentAction = {\n type: typeof ActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: ElementImperativeHandle }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof ActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, ControlInstance>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof ActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource; locale?: string | null }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof ActionTypes.EVICT_API_RESOURCE\n payload: { id: string; locale?: string | null }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof ActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype HandleWheelAction = {\n type: typeof ActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof ActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\ntype APIResourceFulfilledAction = {\n type: typeof ActionTypes.API_RESOURCE_FULFILLED\n payload: {\n resourceType: APIResourceType\n resourceId: string\n resource: APIResource | null\n locale?: string | null\n }\n}\n\ntype SetBuilderEditModeAction = {\n type: typeof ActionTypes.SET_BUILDER_EDIT_MODE\n payload: { editMode: BuilderEditMode }\n}\n\ntype BuilderPointerMoveAction = {\n type: typeof ActionTypes.BUILDER_POINTER_MOVE\n payload: { pointer: Point | null }\n}\n\ntype ElementFromPointChangeAction = {\n type: typeof ActionTypes.ELEMENT_FROM_POINT_CHANGE\n payload: { keys: { documentKey: string; elementKey: string } | null }\n}\n\nexport type SetBreakpointsAction = {\n type: typeof ActionTypes.SET_BREAKPOINTS\n payload: { breakpoints: Breakpoints }\n}\n\ntype SetLocaleAction = {\n type: typeof ActionTypes.SET_LOCALE\n payload: { locale: LocaleString; pathname?: string }\n}\n\ntype SetLocalizedResourceIdAction = {\n type: typeof ActionTypes.SET_LOCALIZED_RESOURCE_ID\n // TODO: make `locale` required once we've upgraded the builder to always provide it\n payload: { locale?: string; resourceId: string; localizedResourceId: string | null }\n}\n\ntype UpdateAPIClientCache = {\n type: typeof ActionTypes.UPDATE_API_CLIENT_CACHE\n payload: APIClientCache\n}\n\nexport type Action =\n | InitAction\n | CleanUpAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | ChangeDocumentAction\n | CreateElementTreeAction\n | DeleteElementTreeAction\n | ChangeElementTreeAction\n | RegisterBuilderDocumentAction\n | UnregisterBuilderDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetIsInBuilderAction\n | HandleWheelAction\n | HandlePointerMoveAction\n | APIResourceFulfilledAction\n | SetBuilderEditModeAction\n | BuilderPointerMoveAction\n | ElementFromPointChangeAction\n | SetBreakpointsAction\n | SetLocaleAction\n | SetLocalizedResourceIdAction\n | UpdateAPIClientCache\n\nexport function init(): InitAction {\n return { type: ActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: ActionTypes.CLEAN_UP }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return { type: ActionTypes.REGISTER_DOCUMENT, payload: { documentKey: document.key, document } }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: ActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function createElementTree(\n payload: CreateElementTreeAction['payload'],\n): CreateElementTreeAction {\n return {\n type: ActionTypes.CREATE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function deleteElementTree(\n payload: DeleteElementTreeAction['payload'],\n): DeleteElementTreeAction {\n return { type: ActionTypes.DELETE_ELEMENT_TREE, payload }\n}\n\nexport function changeElementTree(\n payload: ChangeElementTreeAction['payload'],\n): ChangeElementTreeAction {\n return {\n type: ActionTypes.CHANGE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function registerBuilderDocument(document: Document): RegisterBuilderDocumentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterBuilderDocument(documentKey: string): UnregisterBuilderDocumentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n documents.forEach(document => dispatch(registerDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterDocument(document.key)))\n }\n }\n}\n\nexport function registerBuilderDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n documents.forEach(document => dispatch(registerBuilderDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterBuilderDocument(document.key)))\n }\n }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function registerComponent(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): RegisterComponentAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT,\n payload: { type, meta, propControllerDescriptors },\n }\n}\n\nexport function unregisterComponent(type: string): UnregisterComponentAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT, payload: { type } }\n}\n\nexport function registerComponentEffect(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n\n return () => {\n dispatch(unregisterComponent(type))\n }\n }\n}\n\nexport function registerBuilderComponent(\n payload: RegisterBuilderComponentAction['payload'],\n transferables?: Transferable[],\n): RegisterBuilderComponentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_COMPONENT,\n payload,\n transferables,\n }\n}\n\nexport function unregisterBuilderComponent(\n payload: UnregisterBuilderComponentAction['payload'],\n): UnregisterBuilderComponentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_COMPONENT, payload }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: ActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: ActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: ElementImperativeHandle,\n): RegisterComponentHandleAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: ElementImperativeHandle,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: ActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, ControlInstance>,\n): RegisterPropControllersAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource<R extends APIResource>(\n resource: R,\n locale?: APIResourceLocale<R>,\n): ChangeAPIResourceAction {\n return { type: ActionTypes.CHANGE_API_RESOURCE, payload: { resource, locale } }\n}\n\nexport function evictApiResource(id: string, locale?: string | null): EvictAPIResourceAction {\n return { type: ActionTypes.EVICT_API_RESOURCE, payload: { id, locale } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: ActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: ActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: ActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n\nexport function apiResourceFulfilled<T extends APIResourceType>(\n resourceType: T,\n resourceId: string,\n resource: APIResource | null,\n locale?: APIResourceLocale<T>,\n): APIResourceFulfilledAction {\n return {\n type: ActionTypes.API_RESOURCE_FULFILLED,\n payload: { resourceType, resourceId, resource, locale },\n }\n}\n\nexport function setBuilderEditMode(editMode: BuilderEditMode): SetBuilderEditModeAction {\n return {\n type: ActionTypes.SET_BUILDER_EDIT_MODE,\n payload: { editMode },\n }\n}\n\nexport function builderPointerMove(pointer: Point | null): BuilderPointerMoveAction {\n return { type: ActionTypes.BUILDER_POINTER_MOVE, payload: { pointer } }\n}\n\nexport function elementFromPointChange(\n keys: {\n documentKey: string\n elementKey: string\n } | null,\n): ElementFromPointChangeAction {\n return { type: ActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } }\n}\n\nexport function setBreakpoints(breakpoints: Breakpoints): SetBreakpointsAction {\n return { type: ActionTypes.SET_BREAKPOINTS, payload: { breakpoints } }\n}\n\nexport function setLocale(locale: Intl.Locale, pathname?: string): SetLocaleAction {\n return {\n type: ActionTypes.SET_LOCALE,\n payload: { locale: localeStringSchema.parse(locale.toString()), pathname },\n }\n}\n\nexport function setLocalizedResourceId({\n resourceId,\n localizedResourceId,\n locale,\n}: {\n resourceId: string\n localizedResourceId: string | null\n locale?: string\n}): SetLocalizedResourceIdAction {\n return {\n type: ActionTypes.SET_LOCALIZED_RESOURCE_ID,\n payload: { resourceId, localizedResourceId, locale },\n }\n}\n\nexport function updateAPIClientCache(payload: APIClientCache): UpdateAPIClientCache {\n return { type: ActionTypes.UPDATE_API_CLIENT_CACHE, payload }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/state/actions.ts"],"sourcesContent":["import type { Operation } from 'ot-json0'\n\nimport { ControlInstance } from '@makeswift/controls'\n\nimport { type Element, type Document, EMBEDDED_DOCUMENT_TYPE } from './modules/read-only-documents'\nimport type { DescriptorsByComponentType } from './modules/prop-controllers'\nimport type { ComponentType } from './modules/react-components'\nimport type { Measurable, BoxModel } from './modules/box-models'\nimport type { ThunkAction } from 'redux-thunk'\nimport { ComponentMeta } from './modules/components-meta'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport type { Size } from './react-builder-preview'\nimport type { PropControllersHandle } from './modules/prop-controller-handles'\nimport type { PropControllerMessage } from '../prop-controllers/instances'\nimport type { APIResource, APIResourceType, APIResourceLocale } from '../api/types'\nimport type { SerializedControl } from '../builder'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\nimport { BuilderEditMode } from './modules/builder-edit-mode'\nimport type { Point } from './modules/pointer'\nimport { Breakpoints } from './modules/breakpoints'\nimport { type SerializedState as APIClientCache } from './makeswift-api-client'\nimport { LocaleString, localeStringSchema } from '../locale'\n\nexport const ActionTypes = {\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n CREATE_ELEMENT_TREE: 'CREATE_ELEMENT_TREE',\n DELETE_ELEMENT_TREE: 'DELETE_ELEMENT_TREE',\n CHANGE_ELEMENT_TREE: 'CHANGE_ELEMENT_TREE',\n\n REGISTER_BUILDER_DOCUMENT: 'REGISTER_BUILDER_DOCUMENT',\n UNREGISTER_BUILDER_DOCUMENT: 'UNREGISTER_BUILDER_DOCUMENT',\n\n REGISTER_COMPONENT: 'REGISTER_COMPONENT',\n UNREGISTER_COMPONENT: 'UNREGISTER_COMPONENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n\n API_RESOURCE_FULFILLED: 'API_RESOURCE_FULFILLED',\n\n SET_BUILDER_EDIT_MODE: 'SET_BUILDER_EDIT_MODE',\n MAKESWIFT_CONNECTION_INIT: 'MAKESWIFT_CONNECTION_INIT',\n MAKESWIFT_CONNECTION_CHECK: 'MAKESWIFT_CONNECTION_CHECK',\n\n BUILDER_POINTER_MOVE: 'BUILDER_POINTER_MOVE',\n ELEMENT_FROM_POINT_CHANGE: 'ELEMENT_FROM_POINT_CHANGE',\n\n SET_BREAKPOINTS: 'SET_BREAKPOINTS',\n\n SET_LOCALE: 'SET_LOCALE',\n\n SET_LOCALIZED_RESOURCE_ID: 'SET_LOCALIZED_RESOURCE_ID',\n\n UPDATE_API_CLIENT_CACHE: 'UPDATE_API_CLIENT_CACHE',\n} as const\n\ntype InitAction = { type: typeof ActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof ActionTypes.CLEAN_UP }\n\ntype DocumentPayloadBaseDocument = {\n key: string\n rootElement: Element\n locale?: string | null // older versions of the runtime may not provide this field\n}\n\ntype DocumentPayloadEmbeddedDocument = {\n key: string\n locale: string | null\n id: string\n type: string\n name: string\n rootElement: Element\n meta: { allowLocaleFallback: boolean; requestedLocale: string | null; description?: string }\n __type: typeof EMBEDDED_DOCUMENT_TYPE\n}\n\nexport type DocumentPayload = DocumentPayloadBaseDocument | DocumentPayloadEmbeddedDocument\n\ntype RegisterDocumentAction = {\n type: typeof ActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype ChangeDocumentAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype CreateElementTreeAction = {\n type: typeof ActionTypes.CREATE_ELEMENT_TREE\n payload: { document: DocumentPayload; descriptors: DescriptorsByComponentType }\n}\n\ntype DeleteElementTreeAction = {\n type: typeof ActionTypes.DELETE_ELEMENT_TREE\n payload: { documentKey: string }\n}\n\ntype ChangeElementTreeAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_TREE\n payload: {\n oldDocument: DocumentPayload\n newDocument: DocumentPayload\n descriptors: DescriptorsByComponentType\n operation: Operation\n }\n}\n\ntype RegisterBuilderDocumentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterBuilderDocumentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype RegisterComponentAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n propControllerDescriptors: Record<string, PropControllerDescriptor>\n }\n}\n\ntype UnregisterComponentAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof ActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n transferables?: Transferable[]\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof ActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof ActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof ActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\n\ntype MountComponentAction = {\n type: typeof ActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof ActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof ActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: ElementImperativeHandle }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof ActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof ActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof ActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof ActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof ActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof ActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, ControlInstance>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof ActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof ActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource; locale?: string | null }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof ActionTypes.EVICT_API_RESOURCE\n payload: { id: string; locale?: string | null }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof ActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype HandleWheelAction = {\n type: typeof ActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof ActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\ntype APIResourceFulfilledAction = {\n type: typeof ActionTypes.API_RESOURCE_FULFILLED\n payload: {\n resourceType: APIResourceType\n resourceId: string\n resource: APIResource | null\n locale?: string | null\n }\n}\n\ntype SetBuilderEditModeAction = {\n type: typeof ActionTypes.SET_BUILDER_EDIT_MODE\n payload: { editMode: BuilderEditMode }\n}\n\ntype BuilderPointerMoveAction = {\n type: typeof ActionTypes.BUILDER_POINTER_MOVE\n payload: { pointer: Point | null }\n}\n\ntype ElementFromPointChangeAction = {\n type: typeof ActionTypes.ELEMENT_FROM_POINT_CHANGE\n payload: { keys: { documentKey: string; elementKey: string } | null }\n}\n\nexport type SetBreakpointsAction = {\n type: typeof ActionTypes.SET_BREAKPOINTS\n payload: { breakpoints: Breakpoints }\n}\n\ntype SetLocaleAction = {\n type: typeof ActionTypes.SET_LOCALE\n payload: { locale: LocaleString; pathname?: string }\n}\n\ntype SetLocalizedResourceIdAction = {\n type: typeof ActionTypes.SET_LOCALIZED_RESOURCE_ID\n // TODO: make `locale` required once we've upgraded the builder to always provide it\n payload: { locale?: string; resourceId: string; localizedResourceId: string | null }\n}\n\ntype UpdateAPIClientCache = {\n type: typeof ActionTypes.UPDATE_API_CLIENT_CACHE\n payload: APIClientCache\n}\n\nexport type Action =\n | InitAction\n | CleanUpAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | ChangeDocumentAction\n | CreateElementTreeAction\n | DeleteElementTreeAction\n | ChangeElementTreeAction\n | RegisterBuilderDocumentAction\n | UnregisterBuilderDocumentAction\n | RegisterComponentAction\n | UnregisterComponentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | MountComponentAction\n | UnmountComponentAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | ChangeElementBoxModelsAction\n | ChangeDocumentElementSizeAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | MessageHostPropControllerAction\n | MessageBuilderPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetIsInBuilderAction\n | HandleWheelAction\n | HandlePointerMoveAction\n | APIResourceFulfilledAction\n | SetBuilderEditModeAction\n | BuilderPointerMoveAction\n | ElementFromPointChangeAction\n | SetBreakpointsAction\n | SetLocaleAction\n | SetLocalizedResourceIdAction\n | UpdateAPIClientCache\n\nexport function init(): InitAction {\n return { type: ActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: ActionTypes.CLEAN_UP }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return { type: ActionTypes.REGISTER_DOCUMENT, payload: { documentKey: document.key, document } }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: ActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function createElementTree(\n payload: CreateElementTreeAction['payload'],\n): CreateElementTreeAction {\n return {\n type: ActionTypes.CREATE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function deleteElementTree(\n payload: DeleteElementTreeAction['payload'],\n): DeleteElementTreeAction {\n return { type: ActionTypes.DELETE_ELEMENT_TREE, payload }\n}\n\nexport function changeElementTree(\n payload: ChangeElementTreeAction['payload'],\n): ChangeElementTreeAction {\n return {\n type: ActionTypes.CHANGE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function registerBuilderDocument(document: Document): RegisterBuilderDocumentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterBuilderDocument(documentKey: string): UnregisterBuilderDocumentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n documents.forEach(document => dispatch(registerDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterDocument(document.key)))\n }\n }\n}\n\nexport function registerBuilderDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n documents.forEach(document => dispatch(registerBuilderDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterBuilderDocument(document.key)))\n }\n }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: ActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function registerComponent(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): RegisterComponentAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT,\n payload: { type, meta, propControllerDescriptors },\n }\n}\n\nexport function unregisterComponent(type: string): UnregisterComponentAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT, payload: { type } }\n}\n\nexport function registerComponentEffect(\n type: string,\n meta: ComponentMeta,\n propControllerDescriptors: Record<string, PropControllerDescriptor>,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponent(type, meta, propControllerDescriptors))\n\n return () => {\n dispatch(unregisterComponent(type))\n }\n }\n}\n\nexport function registerBuilderComponent(\n payload: RegisterBuilderComponentAction['payload'],\n transferables?: Transferable[],\n): RegisterBuilderComponentAction {\n return {\n type: ActionTypes.REGISTER_BUILDER_COMPONENT,\n payload,\n transferables,\n }\n}\n\nexport function unregisterBuilderComponent(\n payload: UnregisterBuilderComponentAction['payload'],\n): UnregisterBuilderComponentAction {\n return { type: ActionTypes.UNREGISTER_BUILDER_COMPONENT, payload }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: ActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: ActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: ActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: ActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: ElementImperativeHandle,\n): RegisterComponentHandleAction {\n return {\n type: ActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return { type: ActionTypes.UNREGISTER_COMPONENT_HANDLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: ElementImperativeHandle,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return { type: ActionTypes.REGISTER_MEASURABLE, payload: { documentKey, elementKey, measurable } }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: ActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return { type: ActionTypes.CHANGE_ELEMENT_BOX_MODELS, payload: { changedElementBoxModels } }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: ActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, ControlInstance>,\n): RegisterPropControllersAction {\n return {\n type: ActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return { type: ActionTypes.UNREGISTER_PROP_CONTROLLERS, payload: { documentKey, elementKey } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource<R extends APIResource>(\n resource: R,\n locale?: APIResourceLocale<R>,\n): ChangeAPIResourceAction {\n return { type: ActionTypes.CHANGE_API_RESOURCE, payload: { resource, locale } }\n}\n\nexport function evictApiResource(id: string, locale?: string | null): EvictAPIResourceAction {\n return { type: ActionTypes.EVICT_API_RESOURCE, payload: { id, locale } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: ActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: ActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: ActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n\nexport function apiResourceFulfilled<T extends APIResourceType>(\n resourceType: T,\n resourceId: string,\n resource: APIResource | null,\n locale?: APIResourceLocale<T>,\n): APIResourceFulfilledAction {\n return {\n type: ActionTypes.API_RESOURCE_FULFILLED,\n payload: { resourceType, resourceId, resource, locale },\n }\n}\n\nexport function setBuilderEditMode(editMode: BuilderEditMode): SetBuilderEditModeAction {\n return {\n type: ActionTypes.SET_BUILDER_EDIT_MODE,\n payload: { editMode },\n }\n}\n\nexport function builderPointerMove(pointer: Point | null): BuilderPointerMoveAction {\n return { type: ActionTypes.BUILDER_POINTER_MOVE, payload: { pointer } }\n}\n\nexport function elementFromPointChange(\n keys: {\n documentKey: string\n elementKey: string\n } | null,\n): ElementFromPointChangeAction {\n return { type: ActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } }\n}\n\nexport function setBreakpoints(breakpoints: Breakpoints): SetBreakpointsAction {\n return { type: ActionTypes.SET_BREAKPOINTS, payload: { breakpoints } }\n}\n\nexport function setLocale(locale: Intl.Locale, pathname?: string): SetLocaleAction {\n return {\n type: ActionTypes.SET_LOCALE,\n payload: { locale: localeStringSchema.parse(locale.toString()), pathname },\n }\n}\n\nexport function setLocalizedResourceId({\n resourceId,\n localizedResourceId,\n locale,\n}: {\n resourceId: string\n localizedResourceId: string | null\n locale?: string\n}): SetLocalizedResourceIdAction {\n return {\n type: ActionTypes.SET_LOCALIZED_RESOURCE_ID,\n payload: { resourceId, localizedResourceId, locale },\n }\n}\n\nexport function updateAPIClientCache(payload: APIClientCache): UpdateAPIClientCache {\n return { type: ActionTypes.UPDATE_API_CLIENT_CACHE, payload }\n}\n"],"mappings":"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","names":[]}
|