@makeswift/runtime 0.0.0-20221020195708 → 0.0.0-20221024204131
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/next.cjs.js
CHANGED
|
@@ -218,7 +218,7 @@ class Document extends NextDocument__default["default"] {
|
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
|
-
const version = "0.0.0-
|
|
221
|
+
const version = "0.0.0-20221024204131";
|
|
222
222
|
function MakeswiftApiHandler(apiKey, { appOrigin = "https://app.makeswift.com", getFonts } = {}) {
|
|
223
223
|
const cors = Cors__default["default"]({ origin: appOrigin });
|
|
224
224
|
const previewModeProxy = httpProxy.createProxyServer();
|
|
@@ -300,7 +300,7 @@ Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-r
|
|
|
300
300
|
return res.status(400).send("Bad Request");
|
|
301
301
|
const forwardedProto = req.headers["x-forwarded-proto"];
|
|
302
302
|
const proto = typeof forwardedProto === "string" ? forwardedProto : "http";
|
|
303
|
-
let target =
|
|
303
|
+
let target = `https://${host}`;
|
|
304
304
|
if (process.env["NODE_ENV"] !== "production") {
|
|
305
305
|
const port = req.socket.localPort;
|
|
306
306
|
if (port != null)
|
|
@@ -319,10 +319,12 @@ Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-r
|
|
|
319
319
|
url: req.url,
|
|
320
320
|
query: req.query,
|
|
321
321
|
target,
|
|
322
|
-
cookie: cookie$1
|
|
322
|
+
cookie: cookie$1,
|
|
323
|
+
proto,
|
|
324
|
+
forwardedProto
|
|
323
325
|
}
|
|
324
326
|
}, null, 2));
|
|
325
|
-
return await new Promise((resolve, reject) => previewModeProxy.web(req, res, { target, headers: { cookie: cookie$1 }
|
|
327
|
+
return await new Promise((resolve, reject) => previewModeProxy.web(req, res, { target, headers: { cookie: cookie$1 } }, (err) => {
|
|
326
328
|
if (err)
|
|
327
329
|
reject(err);
|
|
328
330
|
else
|
package/dist/next.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.cjs.js","sources":["../src/next/client.ts","../src/next/preview-mode.tsx","../src/next/document.tsx","../src/next/api-handler.ts","../src/next/index.tsx"],"sourcesContent":["import { NormalizedCacheObject } from '@apollo/client'\nimport { MakeswiftClient } from '../api/react'\nimport { Element } from '../state/react-page'\n\nexport type MakeswiftPage = {\n id: string\n path: string\n}\n\nexport type MakeswiftPageDocument = {\n id: string\n site: { id: string }\n data: Element\n snippets: {\n id: string\n code: string\n location: 'HEAD' | 'BODY'\n liveEnabled: boolean\n builderEnabled: boolean\n cleanup: string | null\n }[]\n fonts: { family: string; variants: string[] }[]\n meta: {\n title: string | null\n description: string | null\n keywords: string | null\n socialImage: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n favicon: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n }\n seo: {\n canonicalUrl: string | null\n isIndexingBlocked: boolean | null\n }\n}\n\nexport type MakeswiftPageSnapshot = {\n document: MakeswiftPageDocument\n apiOrigin: string\n cacheData: NormalizedCacheObject\n}\n\ntype MakeswiftConfig = {\n apiOrigin?: string\n}\n\nexport class Makeswift {\n private apiKey: string\n private apiOrigin: URL\n\n constructor(apiKey: string, { apiOrigin = 'https://api.makeswift.com' }: MakeswiftConfig = {}) {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift client must be passed a valid Makeswift site API key: ' +\n \"`new Makeswift('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n this.apiKey = apiKey\n\n try {\n this.apiOrigin = new URL(apiOrigin)\n } catch {\n throw new Error(\n `The Makeswift client received an invalid \\`apiOrigin\\` parameter: \"${apiOrigin}\".`,\n )\n }\n }\n\n private async fetch(path: string, init?: RequestInit): Promise<Response> {\n const response = await fetch(new URL(path, this.apiOrigin).toString(), {\n ...init,\n headers: { ...init?.headers, ['X-API-Key']: this.apiKey },\n })\n\n return response\n }\n\n async getPages(params: { path?: string } = {}): Promise<MakeswiftPage[]> {\n const searchParams = new URLSearchParams(params)\n const response = await this.fetch(`/v1/pages?${searchParams}`)\n\n if (!response.ok) {\n throw new Error(`Failed to get pages with error: \"${response.statusText}\"`)\n }\n\n const json = await response.json()\n\n return json\n }\n\n private async createSnapshot(document: MakeswiftPageDocument): Promise<MakeswiftPageSnapshot> {\n const client = new MakeswiftClient({ uri: new URL('graphql', this.apiOrigin).href })\n const cacheData = await client.prefetch(document.data)\n\n return { document, apiOrigin: this.apiOrigin.href, cacheData }\n }\n\n private async getPageSnapshotByPageId(\n pageId: string,\n { preview = false }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const searchParams = new URLSearchParams({ preview: String(preview) })\n const response = await this.fetch(`/v1/pages/${pageId}/document?${searchParams}`)\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n throw new Error(`Failed to get snapshot with error: \"${response.statusText}\"`)\n }\n\n const document: MakeswiftPageDocument = await response.json()\n\n return await this.createSnapshot(document)\n }\n\n async getPageSnapshot(\n path: string,\n { preview }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const [page] = await this.getPages({ path })\n\n if (page == null) return null\n\n const snapshot = this.getPageSnapshotByPageId(page.id, { preview })\n\n return snapshot\n }\n}\n","type Props = {\n isPreview?: boolean\n appOrigin?: string\n}\n\nexport function PreviewModeScript({\n isPreview = false,\n appOrigin = 'https://app.makeswift.com',\n}: Props) {\n const __html = `\nconst isPreview = ${isPreview}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-preview-mode'\nconst headerName = 'X-Makeswift-Preview-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_preview_mode') {\n const { secret } = event.data\n\n if (!isPreview && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(input, init) {\n return originalFetch.call(this, input, {\n ...init,\n headers: { ...init?.headers, [headerName]: secret },\n })\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_preview_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n return <script id=\"makeswift-preview-mode\" type=\"module\" dangerouslySetInnerHTML={{ __html }} />\n}\n\nexport type MakeswiftPreviewData = { makeswift: true }\n","import { cache } from '@emotion/css'\nimport createEmotionServer from '@emotion/server/create-instance'\nimport NextDocument, {\n DocumentContext,\n DocumentInitialProps,\n Head,\n Html,\n Main,\n NextScript,\n} from 'next/document'\nimport { KeyUtils } from 'slate'\nimport { ServerStyleSheet } from 'styled-components'\nimport { PreviewModeScript } from './preview-mode'\n\nexport class Document extends NextDocument {\n static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {\n const sheet = new ServerStyleSheet()\n const originalRenderPage = ctx.renderPage\n\n try {\n ctx.renderPage = () =>\n originalRenderPage({\n enhanceApp: App => props => sheet.collectStyles(<App {...props} />),\n })\n\n const initialProps = await NextDocument.getInitialProps(ctx)\n\n KeyUtils.resetGenerator()\n\n const { extractCritical } = createEmotionServer(cache)\n const { ids, css } = extractCritical(initialProps.html)\n\n return {\n ...initialProps,\n styles: (\n <>\n {initialProps.styles}\n {sheet.getStyleElement()}\n <style\n data-emotion={`css ${ids.join(' ')}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n </>\n ),\n }\n } finally {\n sheet.seal()\n }\n }\n\n render() {\n const { isPreview } = this.props.__NEXT_DATA__\n\n return (\n <Html>\n <Head>\n <PreviewModeScript isPreview={isPreview} />\n </Head>\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n )\n }\n}\n","import { CookieSerializeOptions, serialize } from 'cookie'\nimport Cors from 'cors'\nimport { createProxyServer } from 'http-proxy'\nimport { NextApiHandler } from 'next'\nimport { parse } from 'set-cookie-parser'\nimport { version } from '../../package.json'\n\ntype Fonts = Font[]\n\ntype Font = {\n family: string\n variants: FontVariant[]\n}\n\ntype FontVariant = { weight: string; style: 'italic' | 'normal'; src?: string }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n getFonts?: () => Fonts | Promise<Fonts>\n}\n\nexport type MakeswiftApiHandlerErrorResponse = { message: string }\nexport type MakeswiftApiHandlerRevalidateErrorResponse = string\nexport type MakeswiftApiHandlerRevalidateResponse = { revalidated: boolean }\nexport type MakeswiftApiHandlerManifestResponse = { version: string; previewMode: boolean }\nexport type MakeswiftApiHandlerFontsResponse = Fonts\n\nexport type MakeswiftApiHandlerResponse =\n | MakeswiftApiHandlerErrorResponse\n | MakeswiftApiHandlerRevalidateErrorResponse\n | MakeswiftApiHandlerRevalidateResponse\n | MakeswiftApiHandlerManifestResponse\n | MakeswiftApiHandlerFontsResponse\n\nexport function MakeswiftApiHandler(\n apiKey: string,\n { appOrigin = 'https://app.makeswift.com', getFonts }: MakeswiftApiHandlerConfig = {},\n): NextApiHandler<MakeswiftApiHandlerResponse> {\n const cors = Cors({ origin: appOrigin })\n const previewModeProxy = createProxyServer()\n\n previewModeProxy.on('proxyReq', (proxyReq, req) => {\n proxyReq.removeHeader('X-Makeswift-Preview-Mode')\n\n const url = new URL(proxyReq.path, 'http://n')\n\n url.searchParams.delete('x-makeswift-preview-mode')\n\n proxyReq.path = url.pathname + url.search\n\n console.log(\n JSON.stringify(\n {\n proxyReq: {\n host: proxyReq.host,\n method: proxyReq.method,\n path: proxyReq.path,\n },\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n },\n },\n null,\n 2,\n ),\n )\n })\n\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift Next.js API handler must be passed a valid Makeswift site API key: ' +\n \"`MakeswiftApiHandler('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n return async function makeswiftApiHandler(req, res) {\n await new Promise<void>((resolve, reject) => {\n cors(req, res, err => {\n if (err instanceof Error) reject(err)\n else resolve()\n })\n })\n\n const { makeswift } = req.query\n\n if (!Array.isArray(makeswift)) {\n throw new Error(\n 'The Makeswift Next.js API handler must be used in a dynamic catch-all route named `[...makeswift]`.\\n' +\n `Received \"${makeswift}\" for the \\`makeswift\\` param instead.\\n` +\n 'Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes',\n )\n }\n\n const action = makeswift.join('/')\n\n switch (action) {\n case 'manifest': {\n if (req.query.secret !== apiKey) return res.status(401).json({ message: 'Unauthorized' })\n\n return res.json({\n version,\n previewMode: true,\n })\n }\n\n case 'revalidate': {\n if (req.query.secret !== apiKey) {\n return res.status(401).json({ message: 'Unauthorized' })\n }\n\n if (typeof req.query.path !== 'string') {\n return res.status(400).json({ message: 'Bad Request' })\n }\n\n const revalidate = res.revalidate ?? res.unstable_revalidate\n\n if (typeof revalidate !== 'function') {\n const message =\n `Cannot revalidate path \"${req.query.path}\" because \\`revalidate\\` function does not exist in API handler response. ` +\n 'Please update to Next.js v12.2.0 or higher for support for on-demand revalidation.\\n' +\n 'Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-regeneration-stable'\n\n console.warn(message)\n\n return res.json({ revalidated: false })\n }\n\n try {\n await revalidate(req.query.path)\n\n return res.json({ revalidated: true })\n } catch (error) {\n return res.status(500).json({ message: 'Error Revalidating' })\n }\n }\n\n case 'proxy-preview-mode': {\n if (req.query.secret !== apiKey) return res.status(401).send('Unauthorized')\n\n const host = req.headers.host\n\n if (host == null) return res.status(400).send('Bad Request')\n\n const forwardedProto = req.headers['x-forwarded-proto']\n\n const proto = typeof forwardedProto === 'string' ? forwardedProto : 'http'\n let target = `${proto}://${host}`\n\n // During local development we want to use the local Next.js address for proxying. The\n // reason we want to do this is that the user might be using a local SSL proxy to deal with\n // mixed content browser limitations. If the user generates a locally-trusted CA for their\n // SSL cert, it's likely that Node.js won't trust this CA unless they used the\n // `NODE_EXTRA_CA_CERTS` option (see https://stackoverflow.com/a/68135600). To provide a\n // better developer experience, instead of requiring the user to provide the CA to Node.js,\n // we just proxy directly to the running Next.js process.\n if (process.env['NODE_ENV'] !== 'production') {\n const port = req.socket.localPort\n\n if (port != null) target = `http://localhost:${port}`\n }\n\n const setCookie = res.setPreviewData({ makeswift: true }).getHeader('Set-Cookie')\n res.removeHeader('Set-Cookie')\n\n if (!Array.isArray(setCookie)) return res.status(500).send('Internal Server Error')\n\n const cookie = parse(setCookie)\n .map(cookie => serialize(cookie.name, cookie.value, cookie as CookieSerializeOptions))\n .join(';')\n\n console.log(\n JSON.stringify(\n {\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n query: req.query,\n target,\n cookie,\n },\n },\n null,\n 2,\n ),\n )\n\n return await new Promise<void>((resolve, reject) =>\n previewModeProxy.web(\n req,\n res,\n { target, headers: { cookie }, followRedirects: true },\n err => {\n if (err) reject(err)\n else resolve()\n },\n ),\n )\n }\n\n case 'fonts': {\n const fonts = (await getFonts?.()) ?? []\n return res.json(fonts)\n }\n\n default:\n return res.status(404).json({ message: 'Not Found' })\n }\n }\n}\n","import { useEffect, useState } from 'react'\n\nimport { RuntimeProvider } from '../runtimes/react'\nimport { Page as PageMeta } from '../components/page'\nimport { MakeswiftClient } from '../api/react'\nimport { MakeswiftPageSnapshot } from './client'\n\nexport { MakeswiftClient }\n\nexport type PageProps = {\n snapshot: MakeswiftPageSnapshot\n}\n\nimport {\n GetServerSidePropsContext,\n GetServerSidePropsResult,\n GetStaticPathsResult,\n GetStaticPropsContext,\n GetStaticPropsResult,\n} from 'next'\nimport { Makeswift } from './client'\nimport { MakeswiftPreviewData } from './preview-mode'\n\nfunction getApiOrigin(): string {\n const apiOriginString = process['env'].MAKESWIFT_API_HOST ?? 'https://api.makeswift.com'\n\n try {\n const url = new URL(apiOriginString)\n\n return url.origin\n } catch (error) {\n const errorMessage =\n '\"MAKESWIFT_API_HOST\" environment variable must be a valid URL. ' +\n `Expected something like \"https://api.makeswift.com\" but instead received \"${apiOriginString}\".`\n\n throw new Error(errorMessage)\n }\n}\n\nconst uuidRegExp =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/\n\nfunction getApiKey(): string {\n const apiKey = process['env'].MAKESWIFT_SITE_API_KEY\n\n if (apiKey == null) {\n const errorMessage =\n '\"MAKESWIFT_SITE_API_KEY\" environment variable must be set. ' +\n 'Please add your site API key to your `.env.local` file. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMessage)\n }\n\n if (!uuidRegExp.test(apiKey)) {\n const errorMEssage =\n `Invalid Makeswift site API key \"${apiKey}\". ` +\n 'Please check your `.env.local` file for the \"MAKESWIFT_SITE_API_KEY\" environment variable. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMEssage)\n }\n\n return apiKey\n}\n\ntype ParsedUrlQuery = { path?: string[] }\n\nfunction deprecationWarning(methodName: string): void {\n const warningMessage =\n `The \\`${methodName}\\` export has been deprecated and will be removed in the next minor version. ` +\n 'More info: https://github.com/makeswift/makeswift/releases/tag/%40makeswift%2Fruntime%400.2.0'\n\n if (process.env['NODE_ENV'] !== 'production') console.warn(warningMessage)\n}\n\nexport async function getStaticPaths(): Promise<GetStaticPathsResult<ParsedUrlQuery>> {\n deprecationWarning('getStaticPaths')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const pages = await makeswift.getPages()\n\n return {\n paths: pages.map(page => ({\n params: { path: page.path.split('/').filter(segment => segment !== '') },\n })),\n fallback: 'blocking',\n }\n}\n\nconst REVALIDATE_SECONDS = 1\n\nexport async function getStaticProps(\n ctx: GetStaticPropsContext<ParsedUrlQuery, MakeswiftPreviewData>,\n): Promise<GetStaticPropsResult<PageProps>> {\n deprecationWarning('getStaticProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, {\n preview: ctx.previewData?.makeswift === true,\n })\n\n if (snapshot == null) return { notFound: true, revalidate: REVALIDATE_SECONDS }\n\n return { props: { snapshot }, revalidate: REVALIDATE_SECONDS }\n}\n\nexport async function getServerSideProps(\n ctx: GetServerSidePropsContext<{ path?: string[] }>,\n): Promise<GetServerSidePropsResult<PageProps>> {\n deprecationWarning('getServerSideProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, { preview: true })\n\n if (snapshot == null) return { notFound: true }\n\n return { props: { snapshot } }\n}\n\nexport function Page({ snapshot }: PageProps) {\n const [client] = useState(\n () =>\n new MakeswiftClient({\n uri: new URL('graphql', snapshot.apiOrigin).href,\n cacheData: snapshot.cacheData,\n }),\n )\n\n useEffect(() => {\n client.updateCacheData(snapshot.cacheData)\n }, [client, snapshot])\n\n return (\n <RuntimeProvider\n client={client}\n rootElements={new Map([[snapshot.document.id, snapshot.document.data]])}\n >\n <PageMeta document={snapshot.document} />\n </RuntimeProvider>\n )\n}\n\nexport * from './client'\nexport * from './preview-mode'\nexport * from './document'\nexport * from './api-handler'\nexport * from './dynamic'\n"],"names":["MakeswiftClient","isPreview","appOrigin","__html","replace","Document","NextDocument","getInitialProps","ctx","sheet","ServerStyleSheet","originalRenderPage","renderPage","enhanceApp","App","props","collectStyles","initialProps","KeyUtils","resetGenerator","extractCritical","createEmotionServer","cache","ids","css","html","styles","_Fragment","getStyleElement","join","seal","render","__NEXT_DATA__","Html","_jsx","Head","_jsxs","Main","NextScript","Cors","createProxyServer","cookie","parse","serialize","apiOriginString","process","MAKESWIFT_API_HOST","url","URL","origin","error","errorMessage","Error","uuidRegExp","apiKey","MAKESWIFT_SITE_API_KEY","test","errorMEssage","methodName","warningMessage","env","console","warn","deprecationWarning","makeswift","Makeswift","getApiKey","apiOrigin","getApiOrigin","pages","getPages","paths","map","page","params","path","split","filter","segment","fallback","REVALIDATE_SECONDS","snapshot","getPageSnapshot","preview","previewData","notFound","revalidate","client","useState","uri","href","cacheData","useEffect","updateCacheData","RuntimeProvider","Map","document","id","data","PageMeta"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next.cjs.js","sources":["../src/next/client.ts","../src/next/preview-mode.tsx","../src/next/document.tsx","../src/next/api-handler.ts","../src/next/index.tsx"],"sourcesContent":["import { NormalizedCacheObject } from '@apollo/client'\nimport { MakeswiftClient } from '../api/react'\nimport { Element } from '../state/react-page'\n\nexport type MakeswiftPage = {\n id: string\n path: string\n}\n\nexport type MakeswiftPageDocument = {\n id: string\n site: { id: string }\n data: Element\n snippets: {\n id: string\n code: string\n location: 'HEAD' | 'BODY'\n liveEnabled: boolean\n builderEnabled: boolean\n cleanup: string | null\n }[]\n fonts: { family: string; variants: string[] }[]\n meta: {\n title: string | null\n description: string | null\n keywords: string | null\n socialImage: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n favicon: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n }\n seo: {\n canonicalUrl: string | null\n isIndexingBlocked: boolean | null\n }\n}\n\nexport type MakeswiftPageSnapshot = {\n document: MakeswiftPageDocument\n apiOrigin: string\n cacheData: NormalizedCacheObject\n}\n\ntype MakeswiftConfig = {\n apiOrigin?: string\n}\n\nexport class Makeswift {\n private apiKey: string\n private apiOrigin: URL\n\n constructor(apiKey: string, { apiOrigin = 'https://api.makeswift.com' }: MakeswiftConfig = {}) {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift client must be passed a valid Makeswift site API key: ' +\n \"`new Makeswift('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n this.apiKey = apiKey\n\n try {\n this.apiOrigin = new URL(apiOrigin)\n } catch {\n throw new Error(\n `The Makeswift client received an invalid \\`apiOrigin\\` parameter: \"${apiOrigin}\".`,\n )\n }\n }\n\n private async fetch(path: string, init?: RequestInit): Promise<Response> {\n const response = await fetch(new URL(path, this.apiOrigin).toString(), {\n ...init,\n headers: { ...init?.headers, ['X-API-Key']: this.apiKey },\n })\n\n return response\n }\n\n async getPages(params: { path?: string } = {}): Promise<MakeswiftPage[]> {\n const searchParams = new URLSearchParams(params)\n const response = await this.fetch(`/v1/pages?${searchParams}`)\n\n if (!response.ok) {\n throw new Error(`Failed to get pages with error: \"${response.statusText}\"`)\n }\n\n const json = await response.json()\n\n return json\n }\n\n private async createSnapshot(document: MakeswiftPageDocument): Promise<MakeswiftPageSnapshot> {\n const client = new MakeswiftClient({ uri: new URL('graphql', this.apiOrigin).href })\n const cacheData = await client.prefetch(document.data)\n\n return { document, apiOrigin: this.apiOrigin.href, cacheData }\n }\n\n private async getPageSnapshotByPageId(\n pageId: string,\n { preview = false }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const searchParams = new URLSearchParams({ preview: String(preview) })\n const response = await this.fetch(`/v1/pages/${pageId}/document?${searchParams}`)\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n throw new Error(`Failed to get snapshot with error: \"${response.statusText}\"`)\n }\n\n const document: MakeswiftPageDocument = await response.json()\n\n return await this.createSnapshot(document)\n }\n\n async getPageSnapshot(\n path: string,\n { preview }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const [page] = await this.getPages({ path })\n\n if (page == null) return null\n\n const snapshot = this.getPageSnapshotByPageId(page.id, { preview })\n\n return snapshot\n }\n}\n","type Props = {\n isPreview?: boolean\n appOrigin?: string\n}\n\nexport function PreviewModeScript({\n isPreview = false,\n appOrigin = 'https://app.makeswift.com',\n}: Props) {\n const __html = `\nconst isPreview = ${isPreview}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-preview-mode'\nconst headerName = 'X-Makeswift-Preview-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_preview_mode') {\n const { secret } = event.data\n\n if (!isPreview && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(input, init) {\n return originalFetch.call(this, input, {\n ...init,\n headers: { ...init?.headers, [headerName]: secret },\n })\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_preview_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n return <script id=\"makeswift-preview-mode\" type=\"module\" dangerouslySetInnerHTML={{ __html }} />\n}\n\nexport type MakeswiftPreviewData = { makeswift: true }\n","import { cache } from '@emotion/css'\nimport createEmotionServer from '@emotion/server/create-instance'\nimport NextDocument, {\n DocumentContext,\n DocumentInitialProps,\n Head,\n Html,\n Main,\n NextScript,\n} from 'next/document'\nimport { KeyUtils } from 'slate'\nimport { ServerStyleSheet } from 'styled-components'\nimport { PreviewModeScript } from './preview-mode'\n\nexport class Document extends NextDocument {\n static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {\n const sheet = new ServerStyleSheet()\n const originalRenderPage = ctx.renderPage\n\n try {\n ctx.renderPage = () =>\n originalRenderPage({\n enhanceApp: App => props => sheet.collectStyles(<App {...props} />),\n })\n\n const initialProps = await NextDocument.getInitialProps(ctx)\n\n KeyUtils.resetGenerator()\n\n const { extractCritical } = createEmotionServer(cache)\n const { ids, css } = extractCritical(initialProps.html)\n\n return {\n ...initialProps,\n styles: (\n <>\n {initialProps.styles}\n {sheet.getStyleElement()}\n <style\n data-emotion={`css ${ids.join(' ')}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n </>\n ),\n }\n } finally {\n sheet.seal()\n }\n }\n\n render() {\n const { isPreview } = this.props.__NEXT_DATA__\n\n return (\n <Html>\n <Head>\n <PreviewModeScript isPreview={isPreview} />\n </Head>\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n )\n }\n}\n","import { CookieSerializeOptions, serialize } from 'cookie'\nimport Cors from 'cors'\nimport { createProxyServer } from 'http-proxy'\nimport { NextApiHandler } from 'next'\nimport { parse } from 'set-cookie-parser'\nimport { version } from '../../package.json'\n\ntype Fonts = Font[]\n\ntype Font = {\n family: string\n variants: FontVariant[]\n}\n\ntype FontVariant = { weight: string; style: 'italic' | 'normal'; src?: string }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n getFonts?: () => Fonts | Promise<Fonts>\n}\n\nexport type MakeswiftApiHandlerErrorResponse = { message: string }\nexport type MakeswiftApiHandlerRevalidateErrorResponse = string\nexport type MakeswiftApiHandlerRevalidateResponse = { revalidated: boolean }\nexport type MakeswiftApiHandlerManifestResponse = { version: string; previewMode: boolean }\nexport type MakeswiftApiHandlerFontsResponse = Fonts\n\nexport type MakeswiftApiHandlerResponse =\n | MakeswiftApiHandlerErrorResponse\n | MakeswiftApiHandlerRevalidateErrorResponse\n | MakeswiftApiHandlerRevalidateResponse\n | MakeswiftApiHandlerManifestResponse\n | MakeswiftApiHandlerFontsResponse\n\nexport function MakeswiftApiHandler(\n apiKey: string,\n { appOrigin = 'https://app.makeswift.com', getFonts }: MakeswiftApiHandlerConfig = {},\n): NextApiHandler<MakeswiftApiHandlerResponse> {\n const cors = Cors({ origin: appOrigin })\n const previewModeProxy = createProxyServer()\n\n previewModeProxy.on('proxyReq', (proxyReq, req) => {\n proxyReq.removeHeader('X-Makeswift-Preview-Mode')\n\n const url = new URL(proxyReq.path, 'http://n')\n\n url.searchParams.delete('x-makeswift-preview-mode')\n\n proxyReq.path = url.pathname + url.search\n\n console.log(\n JSON.stringify(\n {\n proxyReq: {\n host: proxyReq.host,\n method: proxyReq.method,\n path: proxyReq.path,\n },\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n },\n },\n null,\n 2,\n ),\n )\n })\n\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift Next.js API handler must be passed a valid Makeswift site API key: ' +\n \"`MakeswiftApiHandler('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n return async function makeswiftApiHandler(req, res) {\n await new Promise<void>((resolve, reject) => {\n cors(req, res, err => {\n if (err instanceof Error) reject(err)\n else resolve()\n })\n })\n\n const { makeswift } = req.query\n\n if (!Array.isArray(makeswift)) {\n throw new Error(\n 'The Makeswift Next.js API handler must be used in a dynamic catch-all route named `[...makeswift]`.\\n' +\n `Received \"${makeswift}\" for the \\`makeswift\\` param instead.\\n` +\n 'Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes',\n )\n }\n\n const action = makeswift.join('/')\n\n switch (action) {\n case 'manifest': {\n if (req.query.secret !== apiKey) return res.status(401).json({ message: 'Unauthorized' })\n\n return res.json({\n version,\n previewMode: true,\n })\n }\n\n case 'revalidate': {\n if (req.query.secret !== apiKey) {\n return res.status(401).json({ message: 'Unauthorized' })\n }\n\n if (typeof req.query.path !== 'string') {\n return res.status(400).json({ message: 'Bad Request' })\n }\n\n const revalidate = res.revalidate ?? res.unstable_revalidate\n\n if (typeof revalidate !== 'function') {\n const message =\n `Cannot revalidate path \"${req.query.path}\" because \\`revalidate\\` function does not exist in API handler response. ` +\n 'Please update to Next.js v12.2.0 or higher for support for on-demand revalidation.\\n' +\n 'Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-regeneration-stable'\n\n console.warn(message)\n\n return res.json({ revalidated: false })\n }\n\n try {\n await revalidate(req.query.path)\n\n return res.json({ revalidated: true })\n } catch (error) {\n return res.status(500).json({ message: 'Error Revalidating' })\n }\n }\n\n case 'proxy-preview-mode': {\n if (req.query.secret !== apiKey) return res.status(401).send('Unauthorized')\n\n const host = req.headers.host\n\n if (host == null) return res.status(400).send('Bad Request')\n\n const forwardedProto = req.headers['x-forwarded-proto']\n\n const proto = typeof forwardedProto === 'string' ? forwardedProto : 'http'\n let target = `https://${host}`\n\n // During local development we want to use the local Next.js address for proxying. The\n // reason we want to do this is that the user might be using a local SSL proxy to deal with\n // mixed content browser limitations. If the user generates a locally-trusted CA for their\n // SSL cert, it's likely that Node.js won't trust this CA unless they used the\n // `NODE_EXTRA_CA_CERTS` option (see https://stackoverflow.com/a/68135600). To provide a\n // better developer experience, instead of requiring the user to provide the CA to Node.js,\n // we just proxy directly to the running Next.js process.\n if (process.env['NODE_ENV'] !== 'production') {\n const port = req.socket.localPort\n\n if (port != null) target = `http://localhost:${port}`\n }\n\n const setCookie = res.setPreviewData({ makeswift: true }).getHeader('Set-Cookie')\n res.removeHeader('Set-Cookie')\n\n if (!Array.isArray(setCookie)) return res.status(500).send('Internal Server Error')\n\n const cookie = parse(setCookie)\n .map(cookie => serialize(cookie.name, cookie.value, cookie as CookieSerializeOptions))\n .join(';')\n\n console.log(\n JSON.stringify(\n {\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n query: req.query,\n target,\n cookie,\n proto,\n forwardedProto,\n },\n },\n null,\n 2,\n ),\n )\n\n return await new Promise<void>((resolve, reject) =>\n previewModeProxy.web(req, res, { target, headers: { cookie } }, err => {\n if (err) reject(err)\n else resolve()\n }),\n )\n }\n\n case 'fonts': {\n const fonts = (await getFonts?.()) ?? []\n return res.json(fonts)\n }\n\n default:\n return res.status(404).json({ message: 'Not Found' })\n }\n }\n}\n","import { useEffect, useState } from 'react'\n\nimport { RuntimeProvider } from '../runtimes/react'\nimport { Page as PageMeta } from '../components/page'\nimport { MakeswiftClient } from '../api/react'\nimport { MakeswiftPageSnapshot } from './client'\n\nexport { MakeswiftClient }\n\nexport type PageProps = {\n snapshot: MakeswiftPageSnapshot\n}\n\nimport {\n GetServerSidePropsContext,\n GetServerSidePropsResult,\n GetStaticPathsResult,\n GetStaticPropsContext,\n GetStaticPropsResult,\n} from 'next'\nimport { Makeswift } from './client'\nimport { MakeswiftPreviewData } from './preview-mode'\n\nfunction getApiOrigin(): string {\n const apiOriginString = process['env'].MAKESWIFT_API_HOST ?? 'https://api.makeswift.com'\n\n try {\n const url = new URL(apiOriginString)\n\n return url.origin\n } catch (error) {\n const errorMessage =\n '\"MAKESWIFT_API_HOST\" environment variable must be a valid URL. ' +\n `Expected something like \"https://api.makeswift.com\" but instead received \"${apiOriginString}\".`\n\n throw new Error(errorMessage)\n }\n}\n\nconst uuidRegExp =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/\n\nfunction getApiKey(): string {\n const apiKey = process['env'].MAKESWIFT_SITE_API_KEY\n\n if (apiKey == null) {\n const errorMessage =\n '\"MAKESWIFT_SITE_API_KEY\" environment variable must be set. ' +\n 'Please add your site API key to your `.env.local` file. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMessage)\n }\n\n if (!uuidRegExp.test(apiKey)) {\n const errorMEssage =\n `Invalid Makeswift site API key \"${apiKey}\". ` +\n 'Please check your `.env.local` file for the \"MAKESWIFT_SITE_API_KEY\" environment variable. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMEssage)\n }\n\n return apiKey\n}\n\ntype ParsedUrlQuery = { path?: string[] }\n\nfunction deprecationWarning(methodName: string): void {\n const warningMessage =\n `The \\`${methodName}\\` export has been deprecated and will be removed in the next minor version. ` +\n 'More info: https://github.com/makeswift/makeswift/releases/tag/%40makeswift%2Fruntime%400.2.0'\n\n if (process.env['NODE_ENV'] !== 'production') console.warn(warningMessage)\n}\n\nexport async function getStaticPaths(): Promise<GetStaticPathsResult<ParsedUrlQuery>> {\n deprecationWarning('getStaticPaths')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const pages = await makeswift.getPages()\n\n return {\n paths: pages.map(page => ({\n params: { path: page.path.split('/').filter(segment => segment !== '') },\n })),\n fallback: 'blocking',\n }\n}\n\nconst REVALIDATE_SECONDS = 1\n\nexport async function getStaticProps(\n ctx: GetStaticPropsContext<ParsedUrlQuery, MakeswiftPreviewData>,\n): Promise<GetStaticPropsResult<PageProps>> {\n deprecationWarning('getStaticProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, {\n preview: ctx.previewData?.makeswift === true,\n })\n\n if (snapshot == null) return { notFound: true, revalidate: REVALIDATE_SECONDS }\n\n return { props: { snapshot }, revalidate: REVALIDATE_SECONDS }\n}\n\nexport async function getServerSideProps(\n ctx: GetServerSidePropsContext<{ path?: string[] }>,\n): Promise<GetServerSidePropsResult<PageProps>> {\n deprecationWarning('getServerSideProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, { preview: true })\n\n if (snapshot == null) return { notFound: true }\n\n return { props: { snapshot } }\n}\n\nexport function Page({ snapshot }: PageProps) {\n const [client] = useState(\n () =>\n new MakeswiftClient({\n uri: new URL('graphql', snapshot.apiOrigin).href,\n cacheData: snapshot.cacheData,\n }),\n )\n\n useEffect(() => {\n client.updateCacheData(snapshot.cacheData)\n }, [client, snapshot])\n\n return (\n <RuntimeProvider\n client={client}\n rootElements={new Map([[snapshot.document.id, snapshot.document.data]])}\n >\n <PageMeta document={snapshot.document} />\n </RuntimeProvider>\n )\n}\n\nexport * from './client'\nexport * from './preview-mode'\nexport * from './document'\nexport * from './api-handler'\nexport * from './dynamic'\n"],"names":["MakeswiftClient","isPreview","appOrigin","__html","replace","Document","NextDocument","getInitialProps","ctx","sheet","ServerStyleSheet","originalRenderPage","renderPage","enhanceApp","App","props","collectStyles","initialProps","KeyUtils","resetGenerator","extractCritical","createEmotionServer","cache","ids","css","html","styles","_Fragment","getStyleElement","join","seal","render","__NEXT_DATA__","Html","_jsx","Head","_jsxs","Main","NextScript","Cors","createProxyServer","cookie","parse","serialize","apiOriginString","process","MAKESWIFT_API_HOST","url","URL","origin","error","errorMessage","Error","uuidRegExp","apiKey","MAKESWIFT_SITE_API_KEY","test","errorMEssage","methodName","warningMessage","env","console","warn","deprecationWarning","makeswift","Makeswift","getApiKey","apiOrigin","getApiOrigin","pages","getPages","paths","map","page","params","path","split","filter","segment","fallback","REVALIDATE_SECONDS","snapshot","getPageSnapshot","preview","previewData","notFound","revalidate","client","useState","uri","href","cacheData","useEffect","updateCacheData","RuntimeProvider","Map","document","id","data","PageMeta"],"mappings":"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"}
|
package/dist/next.es.js
CHANGED
|
@@ -211,7 +211,7 @@ class Document extends NextDocument {
|
|
|
211
211
|
});
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
const version = "0.0.0-
|
|
214
|
+
const version = "0.0.0-20221024204131";
|
|
215
215
|
function MakeswiftApiHandler(apiKey, { appOrigin = "https://app.makeswift.com", getFonts } = {}) {
|
|
216
216
|
const cors = Cors({ origin: appOrigin });
|
|
217
217
|
const previewModeProxy = createProxyServer();
|
|
@@ -293,7 +293,7 @@ Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-r
|
|
|
293
293
|
return res.status(400).send("Bad Request");
|
|
294
294
|
const forwardedProto = req.headers["x-forwarded-proto"];
|
|
295
295
|
const proto = typeof forwardedProto === "string" ? forwardedProto : "http";
|
|
296
|
-
let target =
|
|
296
|
+
let target = `https://${host}`;
|
|
297
297
|
if (process.env["NODE_ENV"] !== "production") {
|
|
298
298
|
const port = req.socket.localPort;
|
|
299
299
|
if (port != null)
|
|
@@ -312,10 +312,12 @@ Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-r
|
|
|
312
312
|
url: req.url,
|
|
313
313
|
query: req.query,
|
|
314
314
|
target,
|
|
315
|
-
cookie
|
|
315
|
+
cookie,
|
|
316
|
+
proto,
|
|
317
|
+
forwardedProto
|
|
316
318
|
}
|
|
317
319
|
}, null, 2));
|
|
318
|
-
return await new Promise((resolve, reject) => previewModeProxy.web(req, res, { target, headers: { cookie }
|
|
320
|
+
return await new Promise((resolve, reject) => previewModeProxy.web(req, res, { target, headers: { cookie } }, (err) => {
|
|
319
321
|
if (err)
|
|
320
322
|
reject(err);
|
|
321
323
|
else
|
package/dist/next.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.es.js","sources":["../src/next/client.ts","../src/next/preview-mode.tsx","../src/next/document.tsx","../src/next/api-handler.ts","../src/next/index.tsx"],"sourcesContent":["import { NormalizedCacheObject } from '@apollo/client'\nimport { MakeswiftClient } from '../api/react'\nimport { Element } from '../state/react-page'\n\nexport type MakeswiftPage = {\n id: string\n path: string\n}\n\nexport type MakeswiftPageDocument = {\n id: string\n site: { id: string }\n data: Element\n snippets: {\n id: string\n code: string\n location: 'HEAD' | 'BODY'\n liveEnabled: boolean\n builderEnabled: boolean\n cleanup: string | null\n }[]\n fonts: { family: string; variants: string[] }[]\n meta: {\n title: string | null\n description: string | null\n keywords: string | null\n socialImage: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n favicon: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n }\n seo: {\n canonicalUrl: string | null\n isIndexingBlocked: boolean | null\n }\n}\n\nexport type MakeswiftPageSnapshot = {\n document: MakeswiftPageDocument\n apiOrigin: string\n cacheData: NormalizedCacheObject\n}\n\ntype MakeswiftConfig = {\n apiOrigin?: string\n}\n\nexport class Makeswift {\n private apiKey: string\n private apiOrigin: URL\n\n constructor(apiKey: string, { apiOrigin = 'https://api.makeswift.com' }: MakeswiftConfig = {}) {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift client must be passed a valid Makeswift site API key: ' +\n \"`new Makeswift('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n this.apiKey = apiKey\n\n try {\n this.apiOrigin = new URL(apiOrigin)\n } catch {\n throw new Error(\n `The Makeswift client received an invalid \\`apiOrigin\\` parameter: \"${apiOrigin}\".`,\n )\n }\n }\n\n private async fetch(path: string, init?: RequestInit): Promise<Response> {\n const response = await fetch(new URL(path, this.apiOrigin).toString(), {\n ...init,\n headers: { ...init?.headers, ['X-API-Key']: this.apiKey },\n })\n\n return response\n }\n\n async getPages(params: { path?: string } = {}): Promise<MakeswiftPage[]> {\n const searchParams = new URLSearchParams(params)\n const response = await this.fetch(`/v1/pages?${searchParams}`)\n\n if (!response.ok) {\n throw new Error(`Failed to get pages with error: \"${response.statusText}\"`)\n }\n\n const json = await response.json()\n\n return json\n }\n\n private async createSnapshot(document: MakeswiftPageDocument): Promise<MakeswiftPageSnapshot> {\n const client = new MakeswiftClient({ uri: new URL('graphql', this.apiOrigin).href })\n const cacheData = await client.prefetch(document.data)\n\n return { document, apiOrigin: this.apiOrigin.href, cacheData }\n }\n\n private async getPageSnapshotByPageId(\n pageId: string,\n { preview = false }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const searchParams = new URLSearchParams({ preview: String(preview) })\n const response = await this.fetch(`/v1/pages/${pageId}/document?${searchParams}`)\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n throw new Error(`Failed to get snapshot with error: \"${response.statusText}\"`)\n }\n\n const document: MakeswiftPageDocument = await response.json()\n\n return await this.createSnapshot(document)\n }\n\n async getPageSnapshot(\n path: string,\n { preview }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const [page] = await this.getPages({ path })\n\n if (page == null) return null\n\n const snapshot = this.getPageSnapshotByPageId(page.id, { preview })\n\n return snapshot\n }\n}\n","type Props = {\n isPreview?: boolean\n appOrigin?: string\n}\n\nexport function PreviewModeScript({\n isPreview = false,\n appOrigin = 'https://app.makeswift.com',\n}: Props) {\n const __html = `\nconst isPreview = ${isPreview}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-preview-mode'\nconst headerName = 'X-Makeswift-Preview-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_preview_mode') {\n const { secret } = event.data\n\n if (!isPreview && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(input, init) {\n return originalFetch.call(this, input, {\n ...init,\n headers: { ...init?.headers, [headerName]: secret },\n })\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_preview_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n return <script id=\"makeswift-preview-mode\" type=\"module\" dangerouslySetInnerHTML={{ __html }} />\n}\n\nexport type MakeswiftPreviewData = { makeswift: true }\n","import { cache } from '@emotion/css'\nimport createEmotionServer from '@emotion/server/create-instance'\nimport NextDocument, {\n DocumentContext,\n DocumentInitialProps,\n Head,\n Html,\n Main,\n NextScript,\n} from 'next/document'\nimport { KeyUtils } from 'slate'\nimport { ServerStyleSheet } from 'styled-components'\nimport { PreviewModeScript } from './preview-mode'\n\nexport class Document extends NextDocument {\n static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {\n const sheet = new ServerStyleSheet()\n const originalRenderPage = ctx.renderPage\n\n try {\n ctx.renderPage = () =>\n originalRenderPage({\n enhanceApp: App => props => sheet.collectStyles(<App {...props} />),\n })\n\n const initialProps = await NextDocument.getInitialProps(ctx)\n\n KeyUtils.resetGenerator()\n\n const { extractCritical } = createEmotionServer(cache)\n const { ids, css } = extractCritical(initialProps.html)\n\n return {\n ...initialProps,\n styles: (\n <>\n {initialProps.styles}\n {sheet.getStyleElement()}\n <style\n data-emotion={`css ${ids.join(' ')}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n </>\n ),\n }\n } finally {\n sheet.seal()\n }\n }\n\n render() {\n const { isPreview } = this.props.__NEXT_DATA__\n\n return (\n <Html>\n <Head>\n <PreviewModeScript isPreview={isPreview} />\n </Head>\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n )\n }\n}\n","import { CookieSerializeOptions, serialize } from 'cookie'\nimport Cors from 'cors'\nimport { createProxyServer } from 'http-proxy'\nimport { NextApiHandler } from 'next'\nimport { parse } from 'set-cookie-parser'\nimport { version } from '../../package.json'\n\ntype Fonts = Font[]\n\ntype Font = {\n family: string\n variants: FontVariant[]\n}\n\ntype FontVariant = { weight: string; style: 'italic' | 'normal'; src?: string }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n getFonts?: () => Fonts | Promise<Fonts>\n}\n\nexport type MakeswiftApiHandlerErrorResponse = { message: string }\nexport type MakeswiftApiHandlerRevalidateErrorResponse = string\nexport type MakeswiftApiHandlerRevalidateResponse = { revalidated: boolean }\nexport type MakeswiftApiHandlerManifestResponse = { version: string; previewMode: boolean }\nexport type MakeswiftApiHandlerFontsResponse = Fonts\n\nexport type MakeswiftApiHandlerResponse =\n | MakeswiftApiHandlerErrorResponse\n | MakeswiftApiHandlerRevalidateErrorResponse\n | MakeswiftApiHandlerRevalidateResponse\n | MakeswiftApiHandlerManifestResponse\n | MakeswiftApiHandlerFontsResponse\n\nexport function MakeswiftApiHandler(\n apiKey: string,\n { appOrigin = 'https://app.makeswift.com', getFonts }: MakeswiftApiHandlerConfig = {},\n): NextApiHandler<MakeswiftApiHandlerResponse> {\n const cors = Cors({ origin: appOrigin })\n const previewModeProxy = createProxyServer()\n\n previewModeProxy.on('proxyReq', (proxyReq, req) => {\n proxyReq.removeHeader('X-Makeswift-Preview-Mode')\n\n const url = new URL(proxyReq.path, 'http://n')\n\n url.searchParams.delete('x-makeswift-preview-mode')\n\n proxyReq.path = url.pathname + url.search\n\n console.log(\n JSON.stringify(\n {\n proxyReq: {\n host: proxyReq.host,\n method: proxyReq.method,\n path: proxyReq.path,\n },\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n },\n },\n null,\n 2,\n ),\n )\n })\n\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift Next.js API handler must be passed a valid Makeswift site API key: ' +\n \"`MakeswiftApiHandler('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n return async function makeswiftApiHandler(req, res) {\n await new Promise<void>((resolve, reject) => {\n cors(req, res, err => {\n if (err instanceof Error) reject(err)\n else resolve()\n })\n })\n\n const { makeswift } = req.query\n\n if (!Array.isArray(makeswift)) {\n throw new Error(\n 'The Makeswift Next.js API handler must be used in a dynamic catch-all route named `[...makeswift]`.\\n' +\n `Received \"${makeswift}\" for the \\`makeswift\\` param instead.\\n` +\n 'Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes',\n )\n }\n\n const action = makeswift.join('/')\n\n switch (action) {\n case 'manifest': {\n if (req.query.secret !== apiKey) return res.status(401).json({ message: 'Unauthorized' })\n\n return res.json({\n version,\n previewMode: true,\n })\n }\n\n case 'revalidate': {\n if (req.query.secret !== apiKey) {\n return res.status(401).json({ message: 'Unauthorized' })\n }\n\n if (typeof req.query.path !== 'string') {\n return res.status(400).json({ message: 'Bad Request' })\n }\n\n const revalidate = res.revalidate ?? res.unstable_revalidate\n\n if (typeof revalidate !== 'function') {\n const message =\n `Cannot revalidate path \"${req.query.path}\" because \\`revalidate\\` function does not exist in API handler response. ` +\n 'Please update to Next.js v12.2.0 or higher for support for on-demand revalidation.\\n' +\n 'Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-regeneration-stable'\n\n console.warn(message)\n\n return res.json({ revalidated: false })\n }\n\n try {\n await revalidate(req.query.path)\n\n return res.json({ revalidated: true })\n } catch (error) {\n return res.status(500).json({ message: 'Error Revalidating' })\n }\n }\n\n case 'proxy-preview-mode': {\n if (req.query.secret !== apiKey) return res.status(401).send('Unauthorized')\n\n const host = req.headers.host\n\n if (host == null) return res.status(400).send('Bad Request')\n\n const forwardedProto = req.headers['x-forwarded-proto']\n\n const proto = typeof forwardedProto === 'string' ? forwardedProto : 'http'\n let target = `${proto}://${host}`\n\n // During local development we want to use the local Next.js address for proxying. The\n // reason we want to do this is that the user might be using a local SSL proxy to deal with\n // mixed content browser limitations. If the user generates a locally-trusted CA for their\n // SSL cert, it's likely that Node.js won't trust this CA unless they used the\n // `NODE_EXTRA_CA_CERTS` option (see https://stackoverflow.com/a/68135600). To provide a\n // better developer experience, instead of requiring the user to provide the CA to Node.js,\n // we just proxy directly to the running Next.js process.\n if (process.env['NODE_ENV'] !== 'production') {\n const port = req.socket.localPort\n\n if (port != null) target = `http://localhost:${port}`\n }\n\n const setCookie = res.setPreviewData({ makeswift: true }).getHeader('Set-Cookie')\n res.removeHeader('Set-Cookie')\n\n if (!Array.isArray(setCookie)) return res.status(500).send('Internal Server Error')\n\n const cookie = parse(setCookie)\n .map(cookie => serialize(cookie.name, cookie.value, cookie as CookieSerializeOptions))\n .join(';')\n\n console.log(\n JSON.stringify(\n {\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n query: req.query,\n target,\n cookie,\n },\n },\n null,\n 2,\n ),\n )\n\n return await new Promise<void>((resolve, reject) =>\n previewModeProxy.web(\n req,\n res,\n { target, headers: { cookie }, followRedirects: true },\n err => {\n if (err) reject(err)\n else resolve()\n },\n ),\n )\n }\n\n case 'fonts': {\n const fonts = (await getFonts?.()) ?? []\n return res.json(fonts)\n }\n\n default:\n return res.status(404).json({ message: 'Not Found' })\n }\n }\n}\n","import { useEffect, useState } from 'react'\n\nimport { RuntimeProvider } from '../runtimes/react'\nimport { Page as PageMeta } from '../components/page'\nimport { MakeswiftClient } from '../api/react'\nimport { MakeswiftPageSnapshot } from './client'\n\nexport { MakeswiftClient }\n\nexport type PageProps = {\n snapshot: MakeswiftPageSnapshot\n}\n\nimport {\n GetServerSidePropsContext,\n GetServerSidePropsResult,\n GetStaticPathsResult,\n GetStaticPropsContext,\n GetStaticPropsResult,\n} from 'next'\nimport { Makeswift } from './client'\nimport { MakeswiftPreviewData } from './preview-mode'\n\nfunction getApiOrigin(): string {\n const apiOriginString = process['env'].MAKESWIFT_API_HOST ?? 'https://api.makeswift.com'\n\n try {\n const url = new URL(apiOriginString)\n\n return url.origin\n } catch (error) {\n const errorMessage =\n '\"MAKESWIFT_API_HOST\" environment variable must be a valid URL. ' +\n `Expected something like \"https://api.makeswift.com\" but instead received \"${apiOriginString}\".`\n\n throw new Error(errorMessage)\n }\n}\n\nconst uuidRegExp =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/\n\nfunction getApiKey(): string {\n const apiKey = process['env'].MAKESWIFT_SITE_API_KEY\n\n if (apiKey == null) {\n const errorMessage =\n '\"MAKESWIFT_SITE_API_KEY\" environment variable must be set. ' +\n 'Please add your site API key to your `.env.local` file. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMessage)\n }\n\n if (!uuidRegExp.test(apiKey)) {\n const errorMEssage =\n `Invalid Makeswift site API key \"${apiKey}\". ` +\n 'Please check your `.env.local` file for the \"MAKESWIFT_SITE_API_KEY\" environment variable. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMEssage)\n }\n\n return apiKey\n}\n\ntype ParsedUrlQuery = { path?: string[] }\n\nfunction deprecationWarning(methodName: string): void {\n const warningMessage =\n `The \\`${methodName}\\` export has been deprecated and will be removed in the next minor version. ` +\n 'More info: https://github.com/makeswift/makeswift/releases/tag/%40makeswift%2Fruntime%400.2.0'\n\n if (process.env['NODE_ENV'] !== 'production') console.warn(warningMessage)\n}\n\nexport async function getStaticPaths(): Promise<GetStaticPathsResult<ParsedUrlQuery>> {\n deprecationWarning('getStaticPaths')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const pages = await makeswift.getPages()\n\n return {\n paths: pages.map(page => ({\n params: { path: page.path.split('/').filter(segment => segment !== '') },\n })),\n fallback: 'blocking',\n }\n}\n\nconst REVALIDATE_SECONDS = 1\n\nexport async function getStaticProps(\n ctx: GetStaticPropsContext<ParsedUrlQuery, MakeswiftPreviewData>,\n): Promise<GetStaticPropsResult<PageProps>> {\n deprecationWarning('getStaticProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, {\n preview: ctx.previewData?.makeswift === true,\n })\n\n if (snapshot == null) return { notFound: true, revalidate: REVALIDATE_SECONDS }\n\n return { props: { snapshot }, revalidate: REVALIDATE_SECONDS }\n}\n\nexport async function getServerSideProps(\n ctx: GetServerSidePropsContext<{ path?: string[] }>,\n): Promise<GetServerSidePropsResult<PageProps>> {\n deprecationWarning('getServerSideProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, { preview: true })\n\n if (snapshot == null) return { notFound: true }\n\n return { props: { snapshot } }\n}\n\nexport function Page({ snapshot }: PageProps) {\n const [client] = useState(\n () =>\n new MakeswiftClient({\n uri: new URL('graphql', snapshot.apiOrigin).href,\n cacheData: snapshot.cacheData,\n }),\n )\n\n useEffect(() => {\n client.updateCacheData(snapshot.cacheData)\n }, [client, snapshot])\n\n return (\n <RuntimeProvider\n client={client}\n rootElements={new Map([[snapshot.document.id, snapshot.document.data]])}\n >\n <PageMeta document={snapshot.document} />\n </RuntimeProvider>\n )\n}\n\nexport * from './client'\nexport * from './preview-mode'\nexport * from './document'\nexport * from './api-handler'\nexport * from './dynamic'\n"],"names":["isPreview","appOrigin","__html","replace","Document","NextDocument","getInitialProps","ctx","sheet","ServerStyleSheet","originalRenderPage","renderPage","enhanceApp","App","props","collectStyles","initialProps","KeyUtils","resetGenerator","extractCritical","createEmotionServer","cache","ids","css","html","styles","_Fragment","getStyleElement","join","seal","render","__NEXT_DATA__","_jsx","_jsxs","apiOriginString","process","MAKESWIFT_API_HOST","url","URL","origin","error","errorMessage","Error","uuidRegExp","apiKey","MAKESWIFT_SITE_API_KEY","test","errorMEssage","methodName","warningMessage","env","console","warn","deprecationWarning","makeswift","Makeswift","getApiKey","apiOrigin","getApiOrigin","pages","getPages","paths","map","page","params","path","split","filter","segment","fallback","REVALIDATE_SECONDS","snapshot","getPageSnapshot","preview","previewData","notFound","revalidate","client","useState","MakeswiftClient","uri","href","cacheData","useEffect","updateCacheData","Map","document","id","data","PageMeta"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next.es.js","sources":["../src/next/client.ts","../src/next/preview-mode.tsx","../src/next/document.tsx","../src/next/api-handler.ts","../src/next/index.tsx"],"sourcesContent":["import { NormalizedCacheObject } from '@apollo/client'\nimport { MakeswiftClient } from '../api/react'\nimport { Element } from '../state/react-page'\n\nexport type MakeswiftPage = {\n id: string\n path: string\n}\n\nexport type MakeswiftPageDocument = {\n id: string\n site: { id: string }\n data: Element\n snippets: {\n id: string\n code: string\n location: 'HEAD' | 'BODY'\n liveEnabled: boolean\n builderEnabled: boolean\n cleanup: string | null\n }[]\n fonts: { family: string; variants: string[] }[]\n meta: {\n title: string | null\n description: string | null\n keywords: string | null\n socialImage: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n favicon: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n }\n seo: {\n canonicalUrl: string | null\n isIndexingBlocked: boolean | null\n }\n}\n\nexport type MakeswiftPageSnapshot = {\n document: MakeswiftPageDocument\n apiOrigin: string\n cacheData: NormalizedCacheObject\n}\n\ntype MakeswiftConfig = {\n apiOrigin?: string\n}\n\nexport class Makeswift {\n private apiKey: string\n private apiOrigin: URL\n\n constructor(apiKey: string, { apiOrigin = 'https://api.makeswift.com' }: MakeswiftConfig = {}) {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift client must be passed a valid Makeswift site API key: ' +\n \"`new Makeswift('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n this.apiKey = apiKey\n\n try {\n this.apiOrigin = new URL(apiOrigin)\n } catch {\n throw new Error(\n `The Makeswift client received an invalid \\`apiOrigin\\` parameter: \"${apiOrigin}\".`,\n )\n }\n }\n\n private async fetch(path: string, init?: RequestInit): Promise<Response> {\n const response = await fetch(new URL(path, this.apiOrigin).toString(), {\n ...init,\n headers: { ...init?.headers, ['X-API-Key']: this.apiKey },\n })\n\n return response\n }\n\n async getPages(params: { path?: string } = {}): Promise<MakeswiftPage[]> {\n const searchParams = new URLSearchParams(params)\n const response = await this.fetch(`/v1/pages?${searchParams}`)\n\n if (!response.ok) {\n throw new Error(`Failed to get pages with error: \"${response.statusText}\"`)\n }\n\n const json = await response.json()\n\n return json\n }\n\n private async createSnapshot(document: MakeswiftPageDocument): Promise<MakeswiftPageSnapshot> {\n const client = new MakeswiftClient({ uri: new URL('graphql', this.apiOrigin).href })\n const cacheData = await client.prefetch(document.data)\n\n return { document, apiOrigin: this.apiOrigin.href, cacheData }\n }\n\n private async getPageSnapshotByPageId(\n pageId: string,\n { preview = false }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const searchParams = new URLSearchParams({ preview: String(preview) })\n const response = await this.fetch(`/v1/pages/${pageId}/document?${searchParams}`)\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n throw new Error(`Failed to get snapshot with error: \"${response.statusText}\"`)\n }\n\n const document: MakeswiftPageDocument = await response.json()\n\n return await this.createSnapshot(document)\n }\n\n async getPageSnapshot(\n path: string,\n { preview }: { preview?: boolean } = {},\n ): Promise<MakeswiftPageSnapshot | null> {\n const [page] = await this.getPages({ path })\n\n if (page == null) return null\n\n const snapshot = this.getPageSnapshotByPageId(page.id, { preview })\n\n return snapshot\n }\n}\n","type Props = {\n isPreview?: boolean\n appOrigin?: string\n}\n\nexport function PreviewModeScript({\n isPreview = false,\n appOrigin = 'https://app.makeswift.com',\n}: Props) {\n const __html = `\nconst isPreview = ${isPreview}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-preview-mode'\nconst headerName = 'X-Makeswift-Preview-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_preview_mode') {\n const { secret } = event.data\n\n if (!isPreview && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(input, init) {\n return originalFetch.call(this, input, {\n ...init,\n headers: { ...init?.headers, [headerName]: secret },\n })\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_preview_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n return <script id=\"makeswift-preview-mode\" type=\"module\" dangerouslySetInnerHTML={{ __html }} />\n}\n\nexport type MakeswiftPreviewData = { makeswift: true }\n","import { cache } from '@emotion/css'\nimport createEmotionServer from '@emotion/server/create-instance'\nimport NextDocument, {\n DocumentContext,\n DocumentInitialProps,\n Head,\n Html,\n Main,\n NextScript,\n} from 'next/document'\nimport { KeyUtils } from 'slate'\nimport { ServerStyleSheet } from 'styled-components'\nimport { PreviewModeScript } from './preview-mode'\n\nexport class Document extends NextDocument {\n static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {\n const sheet = new ServerStyleSheet()\n const originalRenderPage = ctx.renderPage\n\n try {\n ctx.renderPage = () =>\n originalRenderPage({\n enhanceApp: App => props => sheet.collectStyles(<App {...props} />),\n })\n\n const initialProps = await NextDocument.getInitialProps(ctx)\n\n KeyUtils.resetGenerator()\n\n const { extractCritical } = createEmotionServer(cache)\n const { ids, css } = extractCritical(initialProps.html)\n\n return {\n ...initialProps,\n styles: (\n <>\n {initialProps.styles}\n {sheet.getStyleElement()}\n <style\n data-emotion={`css ${ids.join(' ')}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n </>\n ),\n }\n } finally {\n sheet.seal()\n }\n }\n\n render() {\n const { isPreview } = this.props.__NEXT_DATA__\n\n return (\n <Html>\n <Head>\n <PreviewModeScript isPreview={isPreview} />\n </Head>\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n )\n }\n}\n","import { CookieSerializeOptions, serialize } from 'cookie'\nimport Cors from 'cors'\nimport { createProxyServer } from 'http-proxy'\nimport { NextApiHandler } from 'next'\nimport { parse } from 'set-cookie-parser'\nimport { version } from '../../package.json'\n\ntype Fonts = Font[]\n\ntype Font = {\n family: string\n variants: FontVariant[]\n}\n\ntype FontVariant = { weight: string; style: 'italic' | 'normal'; src?: string }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n getFonts?: () => Fonts | Promise<Fonts>\n}\n\nexport type MakeswiftApiHandlerErrorResponse = { message: string }\nexport type MakeswiftApiHandlerRevalidateErrorResponse = string\nexport type MakeswiftApiHandlerRevalidateResponse = { revalidated: boolean }\nexport type MakeswiftApiHandlerManifestResponse = { version: string; previewMode: boolean }\nexport type MakeswiftApiHandlerFontsResponse = Fonts\n\nexport type MakeswiftApiHandlerResponse =\n | MakeswiftApiHandlerErrorResponse\n | MakeswiftApiHandlerRevalidateErrorResponse\n | MakeswiftApiHandlerRevalidateResponse\n | MakeswiftApiHandlerManifestResponse\n | MakeswiftApiHandlerFontsResponse\n\nexport function MakeswiftApiHandler(\n apiKey: string,\n { appOrigin = 'https://app.makeswift.com', getFonts }: MakeswiftApiHandlerConfig = {},\n): NextApiHandler<MakeswiftApiHandlerResponse> {\n const cors = Cors({ origin: appOrigin })\n const previewModeProxy = createProxyServer()\n\n previewModeProxy.on('proxyReq', (proxyReq, req) => {\n proxyReq.removeHeader('X-Makeswift-Preview-Mode')\n\n const url = new URL(proxyReq.path, 'http://n')\n\n url.searchParams.delete('x-makeswift-preview-mode')\n\n proxyReq.path = url.pathname + url.search\n\n console.log(\n JSON.stringify(\n {\n proxyReq: {\n host: proxyReq.host,\n method: proxyReq.method,\n path: proxyReq.path,\n },\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n },\n },\n null,\n 2,\n ),\n )\n })\n\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift Next.js API handler must be passed a valid Makeswift site API key: ' +\n \"`MakeswiftApiHandler('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n return async function makeswiftApiHandler(req, res) {\n await new Promise<void>((resolve, reject) => {\n cors(req, res, err => {\n if (err instanceof Error) reject(err)\n else resolve()\n })\n })\n\n const { makeswift } = req.query\n\n if (!Array.isArray(makeswift)) {\n throw new Error(\n 'The Makeswift Next.js API handler must be used in a dynamic catch-all route named `[...makeswift]`.\\n' +\n `Received \"${makeswift}\" for the \\`makeswift\\` param instead.\\n` +\n 'Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes',\n )\n }\n\n const action = makeswift.join('/')\n\n switch (action) {\n case 'manifest': {\n if (req.query.secret !== apiKey) return res.status(401).json({ message: 'Unauthorized' })\n\n return res.json({\n version,\n previewMode: true,\n })\n }\n\n case 'revalidate': {\n if (req.query.secret !== apiKey) {\n return res.status(401).json({ message: 'Unauthorized' })\n }\n\n if (typeof req.query.path !== 'string') {\n return res.status(400).json({ message: 'Bad Request' })\n }\n\n const revalidate = res.revalidate ?? res.unstable_revalidate\n\n if (typeof revalidate !== 'function') {\n const message =\n `Cannot revalidate path \"${req.query.path}\" because \\`revalidate\\` function does not exist in API handler response. ` +\n 'Please update to Next.js v12.2.0 or higher for support for on-demand revalidation.\\n' +\n 'Read more here: https://nextjs.org/blog/next-12-2#on-demand-incremental-static-regeneration-stable'\n\n console.warn(message)\n\n return res.json({ revalidated: false })\n }\n\n try {\n await revalidate(req.query.path)\n\n return res.json({ revalidated: true })\n } catch (error) {\n return res.status(500).json({ message: 'Error Revalidating' })\n }\n }\n\n case 'proxy-preview-mode': {\n if (req.query.secret !== apiKey) return res.status(401).send('Unauthorized')\n\n const host = req.headers.host\n\n if (host == null) return res.status(400).send('Bad Request')\n\n const forwardedProto = req.headers['x-forwarded-proto']\n\n const proto = typeof forwardedProto === 'string' ? forwardedProto : 'http'\n let target = `https://${host}`\n\n // During local development we want to use the local Next.js address for proxying. The\n // reason we want to do this is that the user might be using a local SSL proxy to deal with\n // mixed content browser limitations. If the user generates a locally-trusted CA for their\n // SSL cert, it's likely that Node.js won't trust this CA unless they used the\n // `NODE_EXTRA_CA_CERTS` option (see https://stackoverflow.com/a/68135600). To provide a\n // better developer experience, instead of requiring the user to provide the CA to Node.js,\n // we just proxy directly to the running Next.js process.\n if (process.env['NODE_ENV'] !== 'production') {\n const port = req.socket.localPort\n\n if (port != null) target = `http://localhost:${port}`\n }\n\n const setCookie = res.setPreviewData({ makeswift: true }).getHeader('Set-Cookie')\n res.removeHeader('Set-Cookie')\n\n if (!Array.isArray(setCookie)) return res.status(500).send('Internal Server Error')\n\n const cookie = parse(setCookie)\n .map(cookie => serialize(cookie.name, cookie.value, cookie as CookieSerializeOptions))\n .join(';')\n\n console.log(\n JSON.stringify(\n {\n req: {\n headers: req.headers,\n httpVersion: req.httpVersion,\n method: req.method,\n url: req.url,\n query: req.query,\n target,\n cookie,\n proto,\n forwardedProto,\n },\n },\n null,\n 2,\n ),\n )\n\n return await new Promise<void>((resolve, reject) =>\n previewModeProxy.web(req, res, { target, headers: { cookie } }, err => {\n if (err) reject(err)\n else resolve()\n }),\n )\n }\n\n case 'fonts': {\n const fonts = (await getFonts?.()) ?? []\n return res.json(fonts)\n }\n\n default:\n return res.status(404).json({ message: 'Not Found' })\n }\n }\n}\n","import { useEffect, useState } from 'react'\n\nimport { RuntimeProvider } from '../runtimes/react'\nimport { Page as PageMeta } from '../components/page'\nimport { MakeswiftClient } from '../api/react'\nimport { MakeswiftPageSnapshot } from './client'\n\nexport { MakeswiftClient }\n\nexport type PageProps = {\n snapshot: MakeswiftPageSnapshot\n}\n\nimport {\n GetServerSidePropsContext,\n GetServerSidePropsResult,\n GetStaticPathsResult,\n GetStaticPropsContext,\n GetStaticPropsResult,\n} from 'next'\nimport { Makeswift } from './client'\nimport { MakeswiftPreviewData } from './preview-mode'\n\nfunction getApiOrigin(): string {\n const apiOriginString = process['env'].MAKESWIFT_API_HOST ?? 'https://api.makeswift.com'\n\n try {\n const url = new URL(apiOriginString)\n\n return url.origin\n } catch (error) {\n const errorMessage =\n '\"MAKESWIFT_API_HOST\" environment variable must be a valid URL. ' +\n `Expected something like \"https://api.makeswift.com\" but instead received \"${apiOriginString}\".`\n\n throw new Error(errorMessage)\n }\n}\n\nconst uuidRegExp =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/\n\nfunction getApiKey(): string {\n const apiKey = process['env'].MAKESWIFT_SITE_API_KEY\n\n if (apiKey == null) {\n const errorMessage =\n '\"MAKESWIFT_SITE_API_KEY\" environment variable must be set. ' +\n 'Please add your site API key to your `.env.local` file. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMessage)\n }\n\n if (!uuidRegExp.test(apiKey)) {\n const errorMEssage =\n `Invalid Makeswift site API key \"${apiKey}\". ` +\n 'Please check your `.env.local` file for the \"MAKESWIFT_SITE_API_KEY\" environment variable. ' +\n 'More info: https://www.makeswift.com/docs/guides/manual-setup#add-environment-variables'\n\n throw new Error(errorMEssage)\n }\n\n return apiKey\n}\n\ntype ParsedUrlQuery = { path?: string[] }\n\nfunction deprecationWarning(methodName: string): void {\n const warningMessage =\n `The \\`${methodName}\\` export has been deprecated and will be removed in the next minor version. ` +\n 'More info: https://github.com/makeswift/makeswift/releases/tag/%40makeswift%2Fruntime%400.2.0'\n\n if (process.env['NODE_ENV'] !== 'production') console.warn(warningMessage)\n}\n\nexport async function getStaticPaths(): Promise<GetStaticPathsResult<ParsedUrlQuery>> {\n deprecationWarning('getStaticPaths')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const pages = await makeswift.getPages()\n\n return {\n paths: pages.map(page => ({\n params: { path: page.path.split('/').filter(segment => segment !== '') },\n })),\n fallback: 'blocking',\n }\n}\n\nconst REVALIDATE_SECONDS = 1\n\nexport async function getStaticProps(\n ctx: GetStaticPropsContext<ParsedUrlQuery, MakeswiftPreviewData>,\n): Promise<GetStaticPropsResult<PageProps>> {\n deprecationWarning('getStaticProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, {\n preview: ctx.previewData?.makeswift === true,\n })\n\n if (snapshot == null) return { notFound: true, revalidate: REVALIDATE_SECONDS }\n\n return { props: { snapshot }, revalidate: REVALIDATE_SECONDS }\n}\n\nexport async function getServerSideProps(\n ctx: GetServerSidePropsContext<{ path?: string[] }>,\n): Promise<GetServerSidePropsResult<PageProps>> {\n deprecationWarning('getServerSideProps')\n\n const makeswift = new Makeswift(getApiKey(), { apiOrigin: getApiOrigin() })\n const path = '/' + (ctx.params?.path ?? []).join('/')\n const snapshot = await makeswift.getPageSnapshot(path, { preview: true })\n\n if (snapshot == null) return { notFound: true }\n\n return { props: { snapshot } }\n}\n\nexport function Page({ snapshot }: PageProps) {\n const [client] = useState(\n () =>\n new MakeswiftClient({\n uri: new URL('graphql', snapshot.apiOrigin).href,\n cacheData: snapshot.cacheData,\n }),\n )\n\n useEffect(() => {\n client.updateCacheData(snapshot.cacheData)\n }, [client, snapshot])\n\n return (\n <RuntimeProvider\n client={client}\n rootElements={new Map([[snapshot.document.id, snapshot.document.data]])}\n >\n <PageMeta document={snapshot.document} />\n </RuntimeProvider>\n )\n}\n\nexport * from './client'\nexport * from './preview-mode'\nexport * from './document'\nexport * from './api-handler'\nexport * from './dynamic'\n"],"names":["isPreview","appOrigin","__html","replace","Document","NextDocument","getInitialProps","ctx","sheet","ServerStyleSheet","originalRenderPage","renderPage","enhanceApp","App","props","collectStyles","initialProps","KeyUtils","resetGenerator","extractCritical","createEmotionServer","cache","ids","css","html","styles","_Fragment","getStyleElement","join","seal","render","__NEXT_DATA__","_jsx","_jsxs","apiOriginString","process","MAKESWIFT_API_HOST","url","URL","origin","error","errorMessage","Error","uuidRegExp","apiKey","MAKESWIFT_SITE_API_KEY","test","errorMEssage","methodName","warningMessage","env","console","warn","deprecationWarning","makeswift","Makeswift","getApiKey","apiOrigin","getApiOrigin","pages","getPages","paths","map","page","params","path","split","filter","segment","fallback","REVALIDATE_SECONDS","snapshot","getPageSnapshot","preview","previewData","notFound","revalidate","client","useState","MakeswiftClient","uri","href","cacheData","useEffect","updateCacheData","Map","document","id","data","PageMeta"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../../src/next/api-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAIrC,aAAK,KAAK,GAAG,IAAI,EAAE,CAAA;AAEnB,aAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,EAAE,CAAA;CACxB,CAAA;AAED,aAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/E,aAAK,yBAAyB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;CACxC,CAAA;AAED,oBAAY,gCAAgC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAClE,oBAAY,0CAA0C,GAAG,MAAM,CAAA;AAC/D,oBAAY,qCAAqC,GAAG;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,CAAA;AAC5E,oBAAY,mCAAmC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAA;AAC3F,oBAAY,gCAAgC,GAAG,KAAK,CAAA;AAEpD,oBAAY,2BAA2B,GACnC,gCAAgC,GAChC,0CAA0C,GAC1C,qCAAqC,GACrC,mCAAmC,GACnC,gCAAgC,CAAA;AAEpC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,EAAE,SAAuC,EAAE,QAAQ,EAAE,GAAE,yBAA8B,GACpF,cAAc,CAAC,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../../src/next/api-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAIrC,aAAK,KAAK,GAAG,IAAI,EAAE,CAAA;AAEnB,aAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,EAAE,CAAA;CACxB,CAAA;AAED,aAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/E,aAAK,yBAAyB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;CACxC,CAAA;AAED,oBAAY,gCAAgC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAClE,oBAAY,0CAA0C,GAAG,MAAM,CAAA;AAC/D,oBAAY,qCAAqC,GAAG;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,CAAA;AAC5E,oBAAY,mCAAmC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAA;AAC3F,oBAAY,gCAAgC,GAAG,KAAK,CAAA;AAEpD,oBAAY,2BAA2B,GACnC,gCAAgC,GAChC,0CAA0C,GAC1C,qCAAqC,GACrC,mCAAmC,GACnC,gCAAgC,CAAA;AAEpC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,EAAE,SAAuC,EAAE,QAAQ,EAAE,GAAE,yBAA8B,GACpF,cAAc,CAAC,2BAA2B,CAAC,CA8K7C"}
|