@makeswift/runtime 0.24.9-canary.0 → 0.25.0-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/api/site-version.js +8 -2
- package/dist/cjs/api/site-version.js.map +1 -1
- package/dist/cjs/api-handler/cookies.js +38 -0
- package/dist/cjs/api-handler/cookies.js.map +1 -0
- package/dist/cjs/api-handler/cors.js +48 -0
- package/dist/cjs/api-handler/cors.js.map +1 -0
- package/dist/cjs/api-handler/handlers/clear-draft.js +41 -0
- package/dist/cjs/api-handler/handlers/clear-draft.js.map +1 -0
- package/dist/cjs/api-handler/handlers/element-tree.js +41 -0
- package/dist/cjs/api-handler/handlers/element-tree.js.map +1 -0
- package/dist/cjs/{next/api-handler → api-handler}/handlers/fonts.js +9 -9
- package/dist/cjs/api-handler/handlers/fonts.js.map +1 -0
- package/dist/cjs/api-handler/handlers/manifest.js +50 -0
- package/dist/cjs/api-handler/handlers/manifest.js.map +1 -0
- package/dist/cjs/api-handler/handlers/merge-translated-data.js +41 -0
- package/dist/cjs/api-handler/handlers/merge-translated-data.js.map +1 -0
- package/dist/cjs/api-handler/handlers/revalidate.js +60 -0
- package/dist/cjs/api-handler/handlers/revalidate.js.map +1 -0
- package/dist/cjs/api-handler/handlers/translatable-data.js +42 -0
- package/dist/cjs/api-handler/handlers/translatable-data.js.map +1 -0
- package/dist/cjs/{next/api-handler → api-handler}/handlers/webhook/index.js +16 -23
- package/dist/cjs/api-handler/handlers/webhook/index.js.map +1 -0
- package/dist/cjs/{next/api-handler → api-handler}/handlers/webhook/site-published.js +2 -4
- package/dist/cjs/api-handler/handlers/webhook/site-published.js.map +1 -0
- package/dist/cjs/api-handler/handlers/webhook/types.js.map +1 -0
- package/dist/cjs/api-handler/index.js +116 -0
- package/dist/cjs/api-handler/index.js.map +1 -0
- package/dist/cjs/api-handler/request-response.js +43 -0
- package/dist/cjs/api-handler/request-response.js.map +1 -0
- package/dist/cjs/next/api-handler/config/app-router.js +65 -0
- package/dist/cjs/next/api-handler/config/app-router.js.map +1 -0
- package/dist/cjs/next/api-handler/config/base.js +39 -0
- package/dist/cjs/next/api-handler/config/base.js.map +1 -0
- package/dist/cjs/next/api-handler/config/pages-router.js +123 -0
- package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -0
- package/dist/cjs/next/api-handler/{handlers/utils/draft.js → draft.js} +2 -14
- package/dist/cjs/next/api-handler/draft.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/redirect-draft.js +8 -17
- package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/redirect-preview.js +12 -19
- package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +1 -1
- package/dist/cjs/next/api-handler/index.js +19 -154
- package/dist/cjs/next/api-handler/index.js.map +1 -1
- package/dist/cjs/next/middleware/request-utils.js +1 -1
- package/dist/cjs/next/middleware/request-utils.js.map +1 -1
- package/dist/cjs/next/server.js.map +1 -1
- package/dist/cjs/next/tests/__fixtures__/element-tree.js +1776 -0
- package/dist/cjs/next/tests/__fixtures__/element-tree.js.map +1 -0
- package/dist/cjs/next/tests/__fixtures__/resources.js +99 -0
- package/dist/cjs/next/tests/__fixtures__/resources.js.map +1 -0
- package/dist/cjs/next/tests/__fixtures__/translated-data.js +83 -0
- package/dist/cjs/next/tests/__fixtures__/translated-data.js.map +1 -0
- package/dist/cjs/next/tests/test-utils.js +98 -23
- package/dist/cjs/next/tests/test-utils.js.map +1 -1
- package/dist/esm/api/site-version.js +6 -1
- package/dist/esm/api/site-version.js.map +1 -1
- package/dist/esm/api-handler/cookies.js +13 -0
- package/dist/esm/api-handler/cookies.js.map +1 -0
- package/dist/esm/api-handler/cors.js +24 -0
- package/dist/esm/api-handler/cors.js.map +1 -0
- package/dist/esm/api-handler/handlers/clear-draft.js +17 -0
- package/dist/esm/api-handler/handlers/clear-draft.js.map +1 -0
- package/dist/esm/api-handler/handlers/element-tree.js +17 -0
- package/dist/esm/api-handler/handlers/element-tree.js.map +1 -0
- package/dist/esm/api-handler/handlers/fonts.js +9 -0
- package/dist/esm/api-handler/handlers/fonts.js.map +1 -0
- package/dist/esm/api-handler/handlers/manifest.js +29 -0
- package/dist/esm/api-handler/handlers/manifest.js.map +1 -0
- package/dist/esm/api-handler/handlers/merge-translated-data.js +17 -0
- package/dist/esm/api-handler/handlers/merge-translated-data.js.map +1 -0
- package/dist/esm/api-handler/handlers/revalidate.js +29 -0
- package/dist/esm/api-handler/handlers/revalidate.js.map +1 -0
- package/dist/esm/api-handler/handlers/translatable-data.js +18 -0
- package/dist/esm/api-handler/handlers/translatable-data.js.map +1 -0
- package/dist/esm/api-handler/handlers/webhook/index.js +30 -0
- package/dist/esm/api-handler/handlers/webhook/index.js.map +1 -0
- package/dist/esm/api-handler/handlers/webhook/site-published.js +13 -0
- package/dist/esm/api-handler/handlers/webhook/site-published.js.map +1 -0
- package/dist/esm/api-handler/handlers/webhook/types.js.map +1 -0
- package/dist/esm/api-handler/index.js +95 -0
- package/dist/esm/api-handler/index.js.map +1 -0
- package/dist/esm/api-handler/request-response.js +18 -0
- package/dist/esm/api-handler/request-response.js.map +1 -0
- package/dist/esm/next/api-handler/config/app-router.js +40 -0
- package/dist/esm/next/api-handler/config/app-router.js.map +1 -0
- package/dist/esm/next/api-handler/config/base.js +15 -0
- package/dist/esm/next/api-handler/config/base.js.map +1 -0
- package/dist/esm/next/api-handler/config/pages-router.js +98 -0
- package/dist/esm/next/api-handler/config/pages-router.js.map +1 -0
- package/dist/esm/next/api-handler/{handlers/utils/draft.js → draft.js} +1 -11
- package/dist/esm/next/api-handler/draft.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/redirect-draft.js +5 -21
- package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/redirect-preview.js +4 -21
- package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +1 -1
- package/dist/esm/next/api-handler/index.js +20 -159
- package/dist/esm/next/api-handler/index.js.map +1 -1
- package/dist/esm/next/middleware/request-utils.js +1 -4
- package/dist/esm/next/middleware/request-utils.js.map +1 -1
- package/dist/esm/next/server.js.map +1 -1
- package/dist/esm/next/tests/__fixtures__/element-tree.js +1752 -0
- package/dist/esm/next/tests/__fixtures__/element-tree.js.map +1 -0
- package/dist/esm/next/tests/__fixtures__/resources.js +69 -0
- package/dist/esm/next/tests/__fixtures__/resources.js.map +1 -0
- package/dist/esm/next/tests/__fixtures__/translated-data.js +59 -0
- package/dist/esm/next/tests/__fixtures__/translated-data.js.map +1 -0
- package/dist/esm/next/tests/test-utils.js +98 -23
- package/dist/esm/next/tests/test-utils.js.map +1 -1
- package/dist/types/api/site-version.d.ts +1 -0
- package/dist/types/api/site-version.d.ts.map +1 -1
- package/dist/types/api-handler/cookies.d.ts +9 -0
- package/dist/types/api-handler/cookies.d.ts.map +1 -0
- package/dist/types/api-handler/cors.d.ts +10 -0
- package/dist/types/api-handler/cors.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/clear-draft.d.ts +7 -0
- package/dist/types/api-handler/handlers/clear-draft.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/element-tree.d.ts +9 -0
- package/dist/types/api-handler/handlers/element-tree.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/fonts.d.ts +18 -0
- package/dist/types/api-handler/handlers/fonts.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/manifest.d.ts +20 -0
- package/dist/types/api-handler/handlers/manifest.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/merge-translated-data.d.ts +11 -0
- package/dist/types/api-handler/handlers/merge-translated-data.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/revalidate.d.ts +10 -0
- package/dist/types/api-handler/handlers/revalidate.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/translatable-data.d.ts +15 -0
- package/dist/types/api-handler/handlers/translatable-data.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/webhook/index.d.ts +12 -0
- package/dist/types/api-handler/handlers/webhook/index.d.ts.map +1 -0
- package/dist/types/{next/api-handler → api-handler}/handlers/webhook/site-published.d.ts +2 -1
- package/dist/types/api-handler/handlers/webhook/site-published.d.ts.map +1 -0
- package/dist/types/{next/api-handler → api-handler}/handlers/webhook/types.d.ts +2 -4
- package/dist/types/api-handler/handlers/webhook/types.d.ts.map +1 -0
- package/dist/types/api-handler/index.d.ts +35 -0
- package/dist/types/api-handler/index.d.ts.map +1 -0
- package/dist/types/api-handler/request-response.d.ts +12 -0
- package/dist/types/api-handler/request-response.d.ts.map +1 -0
- package/dist/types/next/api-handler/config/app-router.d.ts +16 -0
- package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -0
- package/dist/types/next/api-handler/config/base.d.ts +15 -0
- package/dist/types/next/api-handler/config/base.d.ts.map +1 -0
- package/dist/types/next/api-handler/config/pages-router.d.ts +10 -0
- package/dist/types/next/api-handler/config/pages-router.d.ts.map +1 -0
- package/dist/types/next/api-handler/{handlers/utils/draft.d.ts → draft.d.ts} +0 -8
- package/dist/types/next/api-handler/draft.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/redirect-draft.d.ts +3 -16
- package/dist/types/next/api-handler/handlers/redirect-draft.d.ts.map +1 -1
- package/dist/types/next/api-handler/handlers/redirect-preview.d.ts +1 -14
- package/dist/types/next/api-handler/handlers/redirect-preview.d.ts.map +1 -1
- package/dist/types/next/api-handler/index.d.ts +10 -36
- package/dist/types/next/api-handler/index.d.ts.map +1 -1
- package/dist/types/next/middleware/request-utils.d.ts.map +1 -1
- package/dist/types/next/server.d.ts +2 -1
- package/dist/types/next/server.d.ts.map +1 -1
- package/dist/types/next/tests/__fixtures__/element-tree.d.ts +3 -0
- package/dist/types/next/tests/__fixtures__/element-tree.d.ts.map +1 -0
- package/dist/types/next/tests/__fixtures__/resources.d.ts +9 -0
- package/dist/types/next/tests/__fixtures__/resources.d.ts.map +1 -0
- package/dist/types/next/tests/__fixtures__/translated-data.d.ts +56 -0
- package/dist/types/next/tests/__fixtures__/translated-data.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-cors.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-cors.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-element-tree.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-element-tree.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-error-handling.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-error-handling.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-fonts.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-fonts.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-manifest.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-manifest.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-merge-translated-data.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-merge-translated-data.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-resources.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-resources.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-revalidate.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-revalidate.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-translatable-data.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-translatable-data.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-webhook.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-webhook.test.d.ts.map +1 -0
- package/dist/types/next/tests/test-utils.d.ts +37 -4
- package/dist/types/next/tests/test-utils.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/next/api-handler/handlers/clear-draft.js +0 -64
- package/dist/cjs/next/api-handler/handlers/clear-draft.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/element-tree.js +0 -47
- package/dist/cjs/next/api-handler/handlers/element-tree.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/fonts.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/manifest.js +0 -55
- package/dist/cjs/next/api-handler/handlers/manifest.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/merge-translated-data.js +0 -47
- package/dist/cjs/next/api-handler/handlers/merge-translated-data.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/revalidate.js +0 -74
- package/dist/cjs/next/api-handler/handlers/revalidate.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/translatable-data.js +0 -47
- package/dist/cjs/next/api-handler/handlers/translatable-data.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/utils/draft.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/webhook/index.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/webhook/types.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/clear-draft.js +0 -50
- package/dist/esm/next/api-handler/handlers/clear-draft.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/element-tree.js +0 -27
- package/dist/esm/next/api-handler/handlers/element-tree.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/fonts.js +0 -13
- package/dist/esm/next/api-handler/handlers/fonts.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/manifest.js +0 -35
- package/dist/esm/next/api-handler/handlers/manifest.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/merge-translated-data.js +0 -27
- package/dist/esm/next/api-handler/handlers/merge-translated-data.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/revalidate.js +0 -40
- package/dist/esm/next/api-handler/handlers/revalidate.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/translatable-data.js +0 -27
- package/dist/esm/next/api-handler/handlers/translatable-data.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/utils/draft.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/webhook/index.js +0 -41
- package/dist/esm/next/api-handler/handlers/webhook/index.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js +0 -15
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/webhook/types.js.map +0 -1
- package/dist/types/next/api-handler/handlers/clear-draft.d.ts +0 -20
- package/dist/types/next/api-handler/handlers/clear-draft.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/element-tree.d.ts +0 -20
- package/dist/types/next/api-handler/handlers/element-tree.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/fonts.d.ts +0 -28
- package/dist/types/next/api-handler/handlers/fonts.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/manifest.d.ts +0 -32
- package/dist/types/next/api-handler/handlers/manifest.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/merge-translated-data.d.ts +0 -20
- package/dist/types/next/api-handler/handlers/merge-translated-data.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/revalidate.d.ts +0 -22
- package/dist/types/next/api-handler/handlers/revalidate.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/translatable-data.d.ts +0 -20
- package/dist/types/next/api-handler/handlers/translatable-data.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/utils/draft.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts +0 -19
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/webhook/types.d.ts.map +0 -1
- package/dist/types/next/tests/server.makeswift-api-handler.test.d.ts +0 -2
- package/dist/types/next/tests/server.makeswift-api-handler.test.d.ts.map +0 -1
- /package/dist/cjs/{next/api-handler → api-handler}/handlers/webhook/types.js +0 -0
- /package/dist/esm/{next/api-handler → api-handler}/handlers/webhook/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\n\nimport { parse as parseSetCookie } from 'set-cookie-parser'\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport { cookieSettingOptions, SET_COOKIE_HEADER } from '../../../api-handler/cookies'\n\nimport { PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE, SearchParams } from '../draft'\n\nexport async function redirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse,\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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,+BAAwC;AACxC,oBAA6C;AAE7C,0BAAqC;AACrC,qBAAwD;AAExD,mBAA2E;AAE3E,eAAsB,uBACpB,KACA,KACA,EAAE,OAAO,GACM;AACf,QAAM,SAAS,IAAI,MAAM,0BAAa,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,yCAAqB,QAAQ,CAAC,EAC7E,UAAU,gCAAiB;AAE9B,MAAI,aAAa,gCAAiB;AAElC,QAAM,oBAAgB,yBAAAA,OAAe,MAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAE9E,QAAM,wBAAwB,cAAc,KAAK,OAAK,EAAE,SAAS,oCAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,gCAAmB;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,eAAO,cAAAC,WAAgB,MAAM,OAAO,EAAE,GAAG,oCAAqB,CAAC;AAAA,EACjE,CAAC;AAED,MAAI,UAAU,kCAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,UAAU,iBAAiB;AAC1D,iBAAe,aAAa,OAAO,0BAAa,WAAW;AAE3D,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":["parseSetCookie","serializeCookie"]}
|
|
@@ -31,162 +31,27 @@ __export(api_handler_exports, {
|
|
|
31
31
|
MakeswiftApiHandler: () => MakeswiftApiHandler
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(api_handler_exports);
|
|
34
|
-
var import_cors = __toESM(require("cors"));
|
|
35
|
-
var import_server = require("next/server");
|
|
36
|
-
var import_path_to_regexp = require("path-to-regexp");
|
|
37
|
-
var import_client = require("../client");
|
|
38
|
-
var import_element_tree = __toESM(require("./handlers/element-tree"));
|
|
39
|
-
var import_fonts = __toESM(require("./handlers/fonts"));
|
|
40
|
-
var import_manifest = __toESM(require("./handlers/manifest"));
|
|
41
|
-
var import_redirect_draft = __toESM(require("./handlers/redirect-draft"));
|
|
42
|
-
var import_redirect_preview = __toESM(require("./handlers/redirect-preview"));
|
|
43
|
-
var import_clear_draft = __toESM(require("./handlers/clear-draft"));
|
|
44
|
-
var import_revalidate = require("./handlers/revalidate");
|
|
45
|
-
var import_translatable_data = __toESM(require("./handlers/translatable-data"));
|
|
46
|
-
var import_merge_translated_data = __toESM(require("./handlers/merge-translated-data"));
|
|
47
|
-
var import_webhook = __toESM(require("./handlers/webhook"));
|
|
48
34
|
var import_ts_pattern = require("ts-pattern");
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
function MakeswiftApiHandler(apiKey, {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const apiRoutePattern = [import_ts_pattern.P.any, import_ts_pattern.P.any];
|
|
69
|
-
return function handler(...args) {
|
|
70
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, async (args2) => {
|
|
71
|
-
const [req] = args2;
|
|
72
|
-
if (req.method.toUpperCase() === "OPTIONS") {
|
|
73
|
-
return new import_server.NextResponse(null, {
|
|
74
|
-
status: 204,
|
|
75
|
-
headers: new Headers({
|
|
76
|
-
"Content-Length": "0",
|
|
77
|
-
"Access-Control-Allow-Origin": appOrigin,
|
|
78
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
79
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization"
|
|
80
|
-
})
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
const response = await makeswiftApiHandler(...args2);
|
|
84
|
-
response.headers.append("Access-Control-Allow-Origin", appOrigin);
|
|
85
|
-
response.headers.append("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
|
|
86
|
-
response.headers.append("Access-Control-Allow-Headers", "Content-Type, Authorization");
|
|
87
|
-
return response;
|
|
88
|
-
}).with(apiRoutePattern, async (args2) => {
|
|
89
|
-
const [req, res] = args2;
|
|
90
|
-
await new Promise((resolve, reject) => {
|
|
91
|
-
cors(req, res, (err) => {
|
|
92
|
-
if (err instanceof Error)
|
|
93
|
-
reject(err);
|
|
94
|
-
else
|
|
95
|
-
resolve();
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
return await makeswiftApiHandler(...args2);
|
|
99
|
-
}).exhaustive();
|
|
35
|
+
var import_client = require("../client");
|
|
36
|
+
var import_api_handler = require("../../api-handler");
|
|
37
|
+
var AppRouter = __toESM(require("./config/app-router"));
|
|
38
|
+
var PagesRouter = __toESM(require("./config/pages-router"));
|
|
39
|
+
function MakeswiftApiHandler(apiKey, { apiOrigin, runtime, ...userConfig }) {
|
|
40
|
+
const client = new import_client.Makeswift(apiKey, { apiOrigin, runtime });
|
|
41
|
+
return async function handler(...args) {
|
|
42
|
+
const { req, route, sendResponse, customRoutes, ...handlerConfig } = await (0, import_ts_pattern.match)(args).with(AppRouter.argsPattern, ([req2, context]) => AppRouter.config({ req: req2, context, apiKey })).with(PagesRouter.argsPattern, ([req2, res]) => PagesRouter.config({ req: req2, res, apiKey })).exhaustive();
|
|
43
|
+
const apiHandler = (0, import_api_handler.createApiHandler)(apiKey, {
|
|
44
|
+
...userConfig,
|
|
45
|
+
...handlerConfig,
|
|
46
|
+
runtime,
|
|
47
|
+
client
|
|
48
|
+
});
|
|
49
|
+
const customRouteResponse = await customRoutes(route);
|
|
50
|
+
if (customRouteResponse) {
|
|
51
|
+
return customRouteResponse.res;
|
|
52
|
+
}
|
|
53
|
+
return sendResponse(await apiHandler(req, route));
|
|
100
54
|
};
|
|
101
|
-
function getSiteVersionFromRequest(args) {
|
|
102
|
-
const header = (0, import_ts_pattern.match)(args).with(
|
|
103
|
-
routeHandlerPattern,
|
|
104
|
-
([request]) => request.headers.get(import_site_version.API_HANDLER_SITE_VERSION_HEADER)
|
|
105
|
-
).with(apiRoutePattern, ([req]) => req.headers[import_site_version.API_HANDLER_SITE_VERSION_HEADER.toLowerCase()]).exhaustive();
|
|
106
|
-
const parsed = import_site_version.makeswiftSiteVersionSchema.safeParse(header);
|
|
107
|
-
if (!parsed.success)
|
|
108
|
-
return import_site_version.MakeswiftSiteVersion.Live;
|
|
109
|
-
return parsed.data;
|
|
110
|
-
}
|
|
111
|
-
async function makeswiftApiHandler(...args) {
|
|
112
|
-
const params = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, ([, context]) => context.params).with(apiRoutePattern, ([req]) => apiRequestParams(req)).exhaustive();
|
|
113
|
-
const { makeswift } = await params;
|
|
114
|
-
if (!Array.isArray(makeswift)) {
|
|
115
|
-
throw new Error(
|
|
116
|
-
`The Makeswift Next.js API handler must be used in a dynamic catch-all route named \`[...makeswift]\`.
|
|
117
|
-
Received "${makeswift}" for the \`makeswift\` param instead.
|
|
118
|
-
Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes`
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
const client = new import_client.Makeswift(apiKey, { apiOrigin, runtime });
|
|
122
|
-
const siteVersion = getSiteVersionFromRequest(args);
|
|
123
|
-
const action = "/" + makeswift.join("/");
|
|
124
|
-
const matches = (pattern) => (0, import_path_to_regexp.match)(pattern, { decode: decodeURIComponent })(action);
|
|
125
|
-
let m;
|
|
126
|
-
if (matches("/manifest")) {
|
|
127
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_manifest.default)(...args2, { apiKey })).with(apiRoutePattern, (args2) => (0, import_manifest.default)(...args2, { apiKey })).exhaustive();
|
|
128
|
-
}
|
|
129
|
-
if (matches("/revalidate")) {
|
|
130
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_revalidate.revalidate)(...args2, { apiKey })).with(apiRoutePattern, (args2) => (0, import_revalidate.revalidate)(...args2, { apiKey })).exhaustive();
|
|
131
|
-
}
|
|
132
|
-
if (matches("/draft")) {
|
|
133
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_redirect_draft.default)(...args2, { apiKey })).with(apiRoutePattern, (args2) => (0, import_redirect_draft.default)(...args2, { apiKey })).exhaustive();
|
|
134
|
-
}
|
|
135
|
-
if (matches("/preview")) {
|
|
136
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_redirect_preview.default)(...args2, { apiKey })).with(apiRoutePattern, (args2) => (0, import_redirect_preview.default)(...args2, { apiKey })).exhaustive();
|
|
137
|
-
}
|
|
138
|
-
if (matches("/clear-draft")) {
|
|
139
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_clear_draft.default)(...args2, { apiKey })).with(apiRoutePattern, (args2) => (0, import_clear_draft.default)(...args2, { apiKey })).exhaustive();
|
|
140
|
-
}
|
|
141
|
-
if (matches("/fonts")) {
|
|
142
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_fonts.default)(...args2, { getFonts })).with(apiRoutePattern, (args2) => (0, import_fonts.default)(...args2, { getFonts })).exhaustive();
|
|
143
|
-
}
|
|
144
|
-
if (matches("/element-tree")) {
|
|
145
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_element_tree.default)(...args2, runtime)).with(apiRoutePattern, (args2) => (0, import_element_tree.default)(...args2, runtime)).exhaustive();
|
|
146
|
-
}
|
|
147
|
-
if (matches("/translatable-data")) {
|
|
148
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_translatable_data.default)(...args2, client)).with(apiRoutePattern, (args2) => (0, import_translatable_data.default)(...args2, client)).exhaustive();
|
|
149
|
-
}
|
|
150
|
-
if (matches("/merge-translated-data")) {
|
|
151
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_merge_translated_data.default)(...args2, client)).with(apiRoutePattern, (args2) => (0, import_merge_translated_data.default)(...args2, client)).exhaustive();
|
|
152
|
-
}
|
|
153
|
-
if (matches("/webhook")) {
|
|
154
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_webhook.default)(...args2, { apiKey, events })).with(apiRoutePattern, (args2) => (0, import_webhook.default)(...args2, { apiKey, events })).exhaustive();
|
|
155
|
-
}
|
|
156
|
-
const handleResource = (resource) => {
|
|
157
|
-
const status2 = resource === null ? 404 : 200;
|
|
158
|
-
const body2 = resource === null ? { message: "Not Found" } : resource;
|
|
159
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => import_server.NextResponse.json(body2, { status: status2 })).with(apiRoutePattern, ([, res]) => res.status(status2).json(body2)).exhaustive();
|
|
160
|
-
};
|
|
161
|
-
if (m = matches("/swatches/:id")) {
|
|
162
|
-
return client.getSwatch(m.params.id, siteVersion).then(handleResource);
|
|
163
|
-
}
|
|
164
|
-
if (m = matches("/files/:id")) {
|
|
165
|
-
return client.getFile(m.params.id).then(handleResource);
|
|
166
|
-
}
|
|
167
|
-
if (m = matches("/typographies/:id")) {
|
|
168
|
-
return client.getTypography(m.params.id, siteVersion).then(handleResource);
|
|
169
|
-
}
|
|
170
|
-
if (m = matches("/global-elements/:id")) {
|
|
171
|
-
return client.getGlobalElement(m.params.id, siteVersion).then(handleResource);
|
|
172
|
-
}
|
|
173
|
-
if (m = matches(
|
|
174
|
-
"/localized-global-elements/:globalElementId/:locale"
|
|
175
|
-
)) {
|
|
176
|
-
return client.getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion).then(handleResource);
|
|
177
|
-
}
|
|
178
|
-
if (m = matches("/page-pathname-slices/:id")) {
|
|
179
|
-
const localeParam = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get("locale")).with(apiRoutePattern, ([req]) => req.query.locale).exhaustive();
|
|
180
|
-
const locale = typeof localeParam === "string" ? localeParam : void 0;
|
|
181
|
-
return client.getPagePathnameSlice(m.params.id, siteVersion, { locale }).then(handleResource);
|
|
182
|
-
}
|
|
183
|
-
if (m = matches("/tables/:id")) {
|
|
184
|
-
return client.getTable(m.params.id).then(handleResource);
|
|
185
|
-
}
|
|
186
|
-
const status = 404;
|
|
187
|
-
const body = { message: "Not Found" };
|
|
188
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => import_server.NextResponse.json(body, { status })).with(apiRoutePattern, ([, res]) => res.status(status).json(body)).exhaustive();
|
|
189
|
-
}
|
|
190
55
|
}
|
|
191
56
|
// Annotate the CommonJS export names for ESM import in node:
|
|
192
57
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/api-handler/index.ts"],"sourcesContent":["import Cors from 'cors'\nimport { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { Match, match as matchPattern } from 'path-to-regexp'\nimport { APIResource } from '../../api'\nimport { Makeswift } from '../client'\n\nimport elementTree, { ElementTreeResponse } from './handlers/element-tree'\nimport fonts, { Font, FontsResponse, GetFonts } from './handlers/fonts'\nimport manifest, { Manifest, ManifestResponse } from './handlers/manifest'\nimport redirectDraft, { type RedirectDraftResponse } from './handlers/redirect-draft'\nimport redirectPreview, { type RedirectPreviewResponse } from './handlers/redirect-preview'\nimport clearDraft, { type ClearDraftResponse } from './handlers/clear-draft'\nimport { revalidate, RevalidationResponse } from './handlers/revalidate'\nimport translatableData, { TranslatableDataResponse } from './handlers/translatable-data'\nimport mergeTranslatedData, { TranslatedDataResponse } from './handlers/merge-translated-data'\nimport webhook from './handlers/webhook'\nimport { OnPublish, WebhookResponseBody } from './handlers/webhook/types'\nimport { ReactRuntime } from '../../react'\nimport { P, match } from 'ts-pattern'\nimport {\n API_HANDLER_SITE_VERSION_HEADER,\n MakeswiftSiteVersion,\n makeswiftSiteVersionSchema,\n} from '../../api/site-version'\n\nexport type { Manifest, Font }\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype Events = { onPublish: OnPublish }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n apiOrigin?: string\n getFonts?: GetFonts\n events?: Events\n runtime: ReactRuntime\n}\n\ntype NotFoundError = { message: string }\n\nexport type MakeswiftApiHandlerResponse =\n | ManifestResponse\n | RevalidationResponse\n | RedirectDraftResponse\n | RedirectPreviewResponse\n | ClearDraftResponse\n | FontsResponse\n | ElementTreeResponse\n | TranslatableDataResponse\n | TranslatedDataResponse\n | APIResource\n | NotFoundError\n | WebhookResponseBody\n\ntype MakeswiftApiHandlerArgs =\n | [NextRequest, Context]\n | [NextApiRequest, NextApiResponse<MakeswiftApiHandlerResponse>]\n\nfunction apiRequestParams(request: NextApiRequest): Promise<NextApiRequest['query']> {\n // `NextApiRequest.query` prop became async in Next.js 15, but it's not reflected in the type definition;\n // force-casting it to a `Promise` manually\n return Promise.resolve(request.query)\n}\n\nexport function MakeswiftApiHandler(\n apiKey: string,\n {\n appOrigin = 'https://app.makeswift.com',\n apiOrigin = 'https://api.makeswift.com',\n getFonts,\n events,\n runtime,\n }: MakeswiftApiHandlerConfig,\n): (...args: MakeswiftApiHandlerArgs) => Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n const cors = Cors({ origin: appOrigin })\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 const routeHandlerPattern = [P.instanceOf(Request), P.any] as const\n const apiRoutePattern = [P.any, P.any] as const\n\n return function handler(\n ...args: MakeswiftApiHandlerArgs\n ): Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, async args => {\n const [req] = args\n if (req.method.toUpperCase() === 'OPTIONS') {\n return new NextResponse(null, {\n status: 204,\n headers: new Headers({\n 'Content-Length': '0',\n 'Access-Control-Allow-Origin': appOrigin,\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers': 'Content-Type, Authorization',\n }),\n })\n }\n\n const response = await makeswiftApiHandler(...args)\n\n response.headers.append('Access-Control-Allow-Origin', appOrigin)\n response.headers.append('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')\n response.headers.append('Access-Control-Allow-Headers', 'Content-Type, Authorization')\n\n return response\n })\n .with(apiRoutePattern, async args => {\n const [req, res] = args\n\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 return await makeswiftApiHandler(...args)\n })\n .exhaustive()\n }\n\n function getSiteVersionFromRequest(args: MakeswiftApiHandlerArgs): MakeswiftSiteVersion {\n const header = match(args)\n .with(routeHandlerPattern, ([request]) =>\n request.headers.get(API_HANDLER_SITE_VERSION_HEADER),\n )\n .with(apiRoutePattern, ([req]) => req.headers[API_HANDLER_SITE_VERSION_HEADER.toLowerCase()])\n .exhaustive()\n\n const parsed = makeswiftSiteVersionSchema.safeParse(header)\n if (!parsed.success) return MakeswiftSiteVersion.Live\n return parsed.data\n }\n\n async function makeswiftApiHandler(\n request: NextRequest,\n context: Context,\n ): Promise<NextResponse<MakeswiftApiHandlerResponse>>\n async function makeswiftApiHandler(\n req: NextApiRequest,\n res: NextApiResponse<MakeswiftApiHandlerResponse>,\n ): Promise<void>\n async function makeswiftApiHandler(\n ...args: MakeswiftApiHandlerArgs\n ): Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n const params = match(args)\n .with(routeHandlerPattern, ([, context]) => context.params)\n .with(apiRoutePattern, ([req]) => apiRequestParams(req))\n .exhaustive()\n\n const { makeswift } = await params\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 client = new Makeswift(apiKey, { apiOrigin, runtime })\n const siteVersion = getSiteVersionFromRequest(args)\n const action = '/' + makeswift.join('/')\n const matches = <T extends object>(pattern: string): Match<T> =>\n matchPattern<T>(pattern, { decode: decodeURIComponent })(action)\n\n let m\n\n if (matches('/manifest')) {\n return match(args)\n .with(routeHandlerPattern, args => manifest(...args, { apiKey }))\n .with(apiRoutePattern, args => manifest(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/revalidate')) {\n return match(args)\n .with(routeHandlerPattern, args => revalidate(...args, { apiKey }))\n .with(apiRoutePattern, args => revalidate(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/draft')) {\n return match(args)\n .with(routeHandlerPattern, args => redirectDraft(...args, { apiKey }))\n .with(apiRoutePattern, args => redirectDraft(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/preview')) {\n return match(args)\n .with(routeHandlerPattern, args => redirectPreview(...args, { apiKey }))\n .with(apiRoutePattern, args => redirectPreview(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/clear-draft')) {\n return match(args)\n .with(routeHandlerPattern, args => clearDraft(...args, { apiKey }))\n .with(apiRoutePattern, args => clearDraft(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/fonts')) {\n return match(args)\n .with(routeHandlerPattern, args => fonts(...args, { getFonts }))\n .with(apiRoutePattern, args => fonts(...args, { getFonts }))\n .exhaustive()\n }\n\n if (matches('/element-tree')) {\n return match(args)\n .with(routeHandlerPattern, args => elementTree(...args, runtime))\n .with(apiRoutePattern, args => elementTree(...args, runtime))\n .exhaustive()\n }\n\n if (matches('/translatable-data')) {\n return match(args)\n .with(routeHandlerPattern, args => translatableData(...args, client))\n .with(apiRoutePattern, args => translatableData(...args, client))\n .exhaustive()\n }\n\n if (matches('/merge-translated-data')) {\n return match(args)\n .with(routeHandlerPattern, args => mergeTranslatedData(...args, client))\n .with(apiRoutePattern, args => mergeTranslatedData(...args, client))\n .exhaustive()\n }\n\n if (matches('/webhook')) {\n return match(args)\n .with(routeHandlerPattern, args => webhook(...args, { apiKey, events }))\n .with(apiRoutePattern, args => webhook(...args, { apiKey, events }))\n .exhaustive()\n }\n\n const handleResource = <T extends APIResource>(\n resource: T | null,\n ): NextResponse<MakeswiftApiHandlerResponse> | void => {\n const status = resource === null ? 404 : 200\n const body = resource === null ? { message: 'Not Found' } : resource\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n\n if ((m = matches<{ id: string }>('/swatches/:id'))) {\n return client.getSwatch(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/files/:id'))) {\n return client.getFile(m.params.id).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/typographies/:id'))) {\n return client.getTypography(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/global-elements/:id'))) {\n return client.getGlobalElement(m.params.id, siteVersion).then(handleResource)\n }\n\n if (\n (m = matches<{ globalElementId: string; locale: string }>(\n '/localized-global-elements/:globalElementId/:locale',\n ))\n ) {\n return client\n .getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion)\n .then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/page-pathname-slices/:id'))) {\n const localeParam = match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('locale'))\n .with(apiRoutePattern, ([req]) => req.query.locale)\n .exhaustive()\n const locale = typeof localeParam === 'string' ? localeParam : undefined\n\n return client.getPagePathnameSlice(m.params.id, siteVersion, { locale }).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/tables/:id'))) {\n return client.getTable(m.params.id).then(handleResource)\n }\n\n const status = 404\n const body = { message: 'Not Found' }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n}\n"],"mappings":"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","names":["Cors","args","matchPattern","manifest","redirectDraft","redirectPreview","clearDraft","fonts","elementTree","translatableData","mergeTranslatedData","webhook","status","body"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/api-handler/index.ts"],"sourcesContent":["import { match } from 'ts-pattern'\n\nimport { Makeswift as MakeswiftClient } from '../client'\n\nimport { type ApiHandlerUserConfig, createApiHandler } from '../../api-handler'\n\nimport * as AppRouter from './config/app-router'\nimport * as PagesRouter from './config/pages-router'\n\n/**\n * @deprecated This type is deprecated and will be removed in a future release.\n */\nexport type MakeswiftApiHandlerResponse = any\n\ntype ApiHandlerArgs = AppRouter.ApiHandlerArgs | PagesRouter.ApiHandlerArgs\n\nexport function MakeswiftApiHandler(\n apiKey: string,\n { apiOrigin, runtime, ...userConfig }: ApiHandlerUserConfig,\n): (...args: ApiHandlerArgs) => Promise<Response | void> {\n const client = new MakeswiftClient(apiKey, { apiOrigin, runtime })\n\n return async function handler(...args: ApiHandlerArgs): Promise<Response | void> {\n const { req, route, sendResponse, customRoutes, ...handlerConfig } = await match(args)\n .with(AppRouter.argsPattern, ([req, context]) => AppRouter.config({ req, context, apiKey }))\n .with(PagesRouter.argsPattern, ([req, res]) => PagesRouter.config({ req, res, apiKey }))\n .exhaustive()\n\n const apiHandler = createApiHandler(apiKey, {\n ...userConfig,\n ...handlerConfig,\n runtime,\n client,\n })\n\n const customRouteResponse = await customRoutes(route)\n if (customRouteResponse) {\n return customRouteResponse.res\n }\n\n return sendResponse(await apiHandler(req, route))\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AAEtB,oBAA6C;AAE7C,yBAA4D;AAE5D,gBAA2B;AAC3B,kBAA6B;AAStB,SAAS,oBACd,QACA,EAAE,WAAW,SAAS,GAAG,WAAW,GACmB;AACvD,QAAM,SAAS,IAAI,cAAAA,UAAgB,QAAQ,EAAE,WAAW,QAAQ,CAAC;AAEjE,SAAO,eAAe,WAAW,MAAgD;AAC/E,UAAM,EAAE,KAAK,OAAO,cAAc,cAAc,GAAG,cAAc,IAAI,UAAM,yBAAM,IAAI,EAClF,KAAK,UAAU,aAAa,CAAC,CAACC,MAAK,OAAO,MAAM,UAAU,OAAO,EAAE,KAAAA,MAAK,SAAS,OAAO,CAAC,CAAC,EAC1F,KAAK,YAAY,aAAa,CAAC,CAACA,MAAK,GAAG,MAAM,YAAY,OAAO,EAAE,KAAAA,MAAK,KAAK,OAAO,CAAC,CAAC,EACtF,WAAW;AAEd,UAAM,iBAAa,qCAAiB,QAAQ;AAAA,MAC1C,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AAED,UAAM,sBAAsB,MAAM,aAAa,KAAK;AACpD,QAAI,qBAAqB;AACvB,aAAO,oBAAoB;AAAA,IAC7B;AAEA,WAAO,aAAa,MAAM,WAAW,KAAK,KAAK,CAAC;AAAA,EAClD;AACF;","names":["MakeswiftClient","req"]}
|
|
@@ -21,7 +21,7 @@ __export(request_utils_exports, {
|
|
|
21
21
|
isDraftModeRequest: () => isDraftModeRequest
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(request_utils_exports);
|
|
24
|
-
var import_draft = require("../api-handler/
|
|
24
|
+
var import_draft = require("../api-handler/draft");
|
|
25
25
|
const HeaderNames = {
|
|
26
26
|
DraftMode: "X-Makeswift-Draft-Mode",
|
|
27
27
|
PreviewMode: "X-Makeswift-Preview-Mode"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/middleware/request-utils.ts"],"sourcesContent":["import { NextRequest } from 'next/server'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/middleware/request-utils.ts"],"sourcesContent":["import { NextRequest } from 'next/server'\nimport { MAKESWIFT_DRAFT_DATA_COOKIE, PRERENDER_BYPASS_COOKIE } from '../api-handler/draft'\n\nconst HeaderNames = {\n DraftMode: 'X-Makeswift-Draft-Mode',\n PreviewMode: 'X-Makeswift-Preview-Mode',\n} as const\n\nconst SearchParams = {\n DraftMode: 'x-makeswift-draft-mode',\n PreviewMode: 'x-makeswift-preview-mode',\n} as const\n\nfunction getDraftModeSecret(request: NextRequest): string | null {\n return (\n request.nextUrl.searchParams.get(SearchParams.DraftMode) ??\n request.headers.get(HeaderNames.DraftMode) ??\n null\n )\n}\n\nexport function isDraftModeRequest(request: NextRequest): boolean {\n const hasSecret = getDraftModeSecret(request) != null\n if (hasSecret) return true\n\n const hasDraftCookies =\n request.cookies.has(PRERENDER_BYPASS_COOKIE) && request.cookies.has(MAKESWIFT_DRAFT_DATA_COOKIE)\n\n if (hasDraftCookies) return true\n\n return false\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAqE;AAErE,MAAM,cAAc;AAAA,EAClB,WAAW;AAAA,EACX,aAAa;AACf;AAEA,MAAM,eAAe;AAAA,EACnB,WAAW;AAAA,EACX,aAAa;AACf;AAEA,SAAS,mBAAmB,SAAqC;AAC/D,SACE,QAAQ,QAAQ,aAAa,IAAI,aAAa,SAAS,KACvD,QAAQ,QAAQ,IAAI,YAAY,SAAS,KACzC;AAEJ;AAEO,SAAS,mBAAmB,SAA+B;AAChE,QAAM,YAAY,mBAAmB,OAAO,KAAK;AACjD,MAAI;AAAW,WAAO;AAEtB,QAAM,kBACJ,QAAQ,QAAQ,IAAI,oCAAuB,KAAK,QAAQ,QAAQ,IAAI,wCAA2B;AAEjG,MAAI;AAAiB,WAAO;AAE5B,SAAO;AACT;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/server.ts"],"sourcesContent":["export { MakeswiftApiHandler } from './api-handler'\nexport type { Manifest, Font
|
|
1
|
+
{"version":3,"sources":["../../../src/next/server.ts"],"sourcesContent":["export { MakeswiftApiHandler } from './api-handler'\nexport type { Manifest, Font } from '../api-handler'\nexport type { MakeswiftApiHandlerResponse } from './api-handler'\nexport { getSiteVersion } from './draft-mode'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAoC;AAGpC,wBAA+B;","names":[]}
|