@makeswift/runtime 0.25.0-canary.13 → 0.25.0-canary.14
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/index.js +103 -0
- package/dist/cjs/api/site-version/index.js.map +1 -0
- package/dist/cjs/api-handler/handlers/manifest.js +2 -3
- package/dist/cjs/api-handler/handlers/manifest.js.map +1 -1
- package/dist/cjs/api-handler/handlers/{clear-draft.js → redirect-live.js} +19 -10
- package/dist/cjs/api-handler/handlers/redirect-live.js.map +1 -0
- package/dist/cjs/api-handler/index.js +6 -5
- package/dist/cjs/api-handler/index.js.map +1 -1
- package/dist/cjs/api-handler/request-response.js +9 -0
- package/dist/cjs/api-handler/request-response.js.map +1 -1
- package/dist/cjs/client/index.js +67 -59
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/components/builtin/Root/Root.js +4 -4
- package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
- package/dist/cjs/components/builtin/Video/Video.js +3 -13
- package/dist/cjs/components/builtin/Video/Video.js.map +1 -1
- package/dist/cjs/components/hooks/useMediaQuery.js +1 -2
- package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +3 -13
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
- package/dist/cjs/components/shared/react-player.js +41 -0
- package/dist/cjs/components/shared/react-player.js.map +1 -0
- package/dist/cjs/next/api-handler/config/app-router.js +7 -9
- package/dist/cjs/next/api-handler/config/app-router.js.map +1 -1
- package/dist/cjs/next/api-handler/config/pages-router.js +7 -9
- package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/{redirect-draft.js → app-router-redirect-preview.js} +30 -26
- package/dist/cjs/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/{redirect-preview.js → pages-router-redirect-preview.js} +29 -22
- package/dist/cjs/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
- package/dist/cjs/next/api-handler/index.js +1 -1
- package/dist/cjs/next/api-handler/index.js.map +1 -1
- package/dist/cjs/next/api-handler/{draft.js → preview.js} +14 -9
- package/dist/cjs/next/api-handler/preview.js.map +1 -0
- package/dist/cjs/next/{draft-mode/index.js → app-router-site-version.js} +11 -27
- package/dist/cjs/next/app-router-site-version.js.map +1 -0
- package/dist/cjs/next/client.js +9 -3
- package/dist/cjs/next/client.js.map +1 -1
- package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
- package/dist/cjs/next/components/page.js +1 -1
- package/dist/cjs/next/components/page.js.map +1 -1
- package/dist/cjs/next/index.js.map +1 -1
- package/dist/cjs/next/middleware/request-utils.js +11 -17
- package/dist/cjs/next/middleware/request-utils.js.map +1 -1
- package/dist/cjs/next/root-style-registry.js +13 -20
- package/dist/cjs/next/root-style-registry.js.map +1 -1
- package/dist/cjs/next/server.js +2 -2
- package/dist/cjs/next/server.js.map +1 -1
- package/dist/cjs/next/testing/page-rendering.js +2 -2
- package/dist/cjs/next/testing/page-rendering.js.map +1 -1
- package/dist/cjs/next/testing/react-provider.js +2 -2
- package/dist/cjs/next/testing/react-provider.js.map +1 -1
- package/dist/cjs/next/tests/test-utils.js +6 -4
- package/dist/cjs/next/tests/test-utils.js.map +1 -1
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js +7 -9
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/components/framework-context.js +1 -1
- package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
- package/dist/cjs/runtimes/react/components/page/index.js +18 -16
- package/dist/cjs/runtimes/react/components/page/index.js.map +1 -1
- package/dist/cjs/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +12 -22
- package/dist/cjs/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
- package/dist/cjs/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +17 -9
- package/dist/cjs/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js +9 -10
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-selector.js +1 -1
- package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
- package/dist/cjs/runtimes/react/root-style-registry.js +24 -13
- package/dist/cjs/runtimes/react/root-style-registry.js.map +1 -1
- package/dist/cjs/{next/preview-mode.js → testing/fixtures.js} +16 -18
- package/dist/cjs/testing/fixtures.js.map +1 -0
- package/dist/cjs/utils/esm-compat.js +29 -0
- package/dist/cjs/utils/esm-compat.js.map +1 -0
- package/dist/esm/api/site-version/index.js +75 -0
- package/dist/esm/api/site-version/index.js.map +1 -0
- package/dist/esm/api-handler/handlers/manifest.js +2 -3
- package/dist/esm/api-handler/handlers/manifest.js.map +1 -1
- package/dist/esm/api-handler/handlers/redirect-live.js +26 -0
- package/dist/esm/api-handler/handlers/redirect-live.js.map +1 -0
- package/dist/esm/api-handler/index.js +7 -6
- package/dist/esm/api-handler/index.js.map +1 -1
- package/dist/esm/api-handler/request-response.js +9 -0
- package/dist/esm/api-handler/request-response.js.map +1 -1
- package/dist/esm/client/index.js +65 -58
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/components/builtin/Root/Root.js +4 -4
- package/dist/esm/components/builtin/Root/Root.js.map +1 -1
- package/dist/esm/components/builtin/Video/Video.js +1 -1
- package/dist/esm/components/builtin/Video/Video.js.map +1 -1
- package/dist/esm/components/hooks/useMediaQuery.js +1 -2
- package/dist/esm/components/hooks/useMediaQuery.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
- package/dist/esm/components/shared/react-player.js +7 -0
- package/dist/esm/components/shared/react-player.js.map +1 -0
- package/dist/esm/next/api-handler/config/app-router.js +7 -9
- package/dist/esm/next/api-handler/config/app-router.js.map +1 -1
- package/dist/esm/next/api-handler/config/pages-router.js +7 -9
- package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js +64 -0
- package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js +52 -0
- package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
- package/dist/esm/next/api-handler/index.js +1 -1
- package/dist/esm/next/api-handler/index.js.map +1 -1
- package/dist/esm/next/api-handler/preview.js +18 -0
- package/dist/esm/next/api-handler/preview.js.map +1 -0
- package/dist/esm/next/app-router-site-version.js +16 -0
- package/dist/esm/next/app-router-site-version.js.map +1 -0
- package/dist/esm/next/client.js +10 -4
- package/dist/esm/next/client.js.map +1 -1
- package/dist/esm/next/components/framework-provider/index.js.map +1 -1
- package/dist/esm/next/components/page.js +2 -4
- package/dist/esm/next/components/page.js.map +1 -1
- package/dist/esm/next/index.js.map +1 -1
- package/dist/esm/next/middleware/request-utils.js +14 -17
- package/dist/esm/next/middleware/request-utils.js.map +1 -1
- package/dist/esm/next/root-style-registry.js +12 -17
- package/dist/esm/next/root-style-registry.js.map +1 -1
- package/dist/esm/next/server.js +1 -1
- package/dist/esm/next/server.js.map +1 -1
- package/dist/esm/next/testing/page-rendering.js +2 -2
- package/dist/esm/next/testing/page-rendering.js.map +1 -1
- package/dist/esm/next/testing/react-provider.js +2 -2
- package/dist/esm/next/testing/react-provider.js.map +1 -1
- package/dist/esm/next/tests/test-utils.js +6 -4
- package/dist/esm/next/tests/test-utils.js.map +1 -1
- package/dist/esm/runtimes/react/components/RuntimeProvider.js +7 -9
- package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
- package/dist/esm/runtimes/react/components/framework-context.js +5 -2
- package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
- package/dist/esm/runtimes/react/components/page/index.js +19 -17
- package/dist/esm/runtimes/react/components/page/index.js.map +1 -1
- package/dist/esm/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +8 -18
- package/dist/esm/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
- package/dist/esm/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +13 -5
- package/dist/esm/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/makeswift-api.js +1 -2
- package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-selector.js +1 -1
- package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
- package/dist/esm/runtimes/react/root-style-registry.js +24 -13
- package/dist/esm/runtimes/react/root-style-registry.js.map +1 -1
- package/dist/esm/testing/fixtures.js +13 -0
- package/dist/esm/testing/fixtures.js.map +1 -0
- package/dist/esm/utils/esm-compat.js +5 -0
- package/dist/esm/utils/esm-compat.js.map +1 -0
- package/dist/types/api/site-version/index.d.ts +19 -0
- package/dist/types/api/site-version/index.d.ts.map +1 -0
- package/dist/types/api/site-version/site-version.test.d.ts +2 -0
- package/dist/types/api/site-version/site-version.test.d.ts.map +1 -0
- package/dist/types/api-handler/handlers/manifest.d.ts +0 -2
- package/dist/types/api-handler/handlers/manifest.d.ts.map +1 -1
- package/dist/types/api-handler/handlers/redirect-live.d.ts +5 -0
- package/dist/types/api-handler/handlers/redirect-live.d.ts.map +1 -0
- package/dist/types/api-handler/index.d.ts +4 -4
- package/dist/types/api-handler/index.d.ts.map +1 -1
- package/dist/types/api-handler/request-response.d.ts +1 -0
- package/dist/types/api-handler/request-response.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +32 -23
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/Root.d.ts +1 -1
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
- package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
- package/dist/types/components/shared/react-player.d.ts +3 -0
- package/dist/types/components/shared/react-player.d.ts.map +1 -0
- package/dist/types/next/api-handler/config/app-router.d.ts +3 -2
- package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -1
- package/dist/types/next/api-handler/config/pages-router.d.ts +3 -2
- package/dist/types/next/api-handler/config/pages-router.d.ts.map +1 -1
- package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts +5 -0
- package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts +2 -0
- package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts +4 -0
- package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts.map +1 -0
- package/dist/types/next/api-handler/preview.d.ts +11 -0
- package/dist/types/next/api-handler/preview.d.ts.map +1 -0
- package/dist/types/next/app-router-site-version.d.ts +3 -0
- package/dist/types/next/app-router-site-version.d.ts.map +1 -0
- package/dist/types/next/client.d.ts +3 -3
- package/dist/types/next/client.d.ts.map +1 -1
- package/dist/types/next/components/page.d.ts +2 -6
- package/dist/types/next/components/page.d.ts.map +1 -1
- package/dist/types/next/index.d.ts +1 -1
- package/dist/types/next/index.d.ts.map +1 -1
- package/dist/types/next/middleware/request-utils.d.ts +1 -0
- package/dist/types/next/middleware/request-utils.d.ts.map +1 -1
- package/dist/types/next/root-style-registry.d.ts +3 -12
- package/dist/types/next/root-style-registry.d.ts.map +1 -1
- package/dist/types/next/server.d.ts +1 -1
- package/dist/types/next/server.d.ts.map +1 -1
- package/dist/types/next/testing/react-provider.d.ts +3 -2
- package/dist/types/next/testing/react-provider.d.ts.map +1 -1
- package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts.map +1 -0
- package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts +2 -0
- package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts.map +1 -0
- package/dist/types/next/tests/test-utils.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +3 -2
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/framework-context.d.ts +2 -2
- package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/page/index.d.ts +23 -3
- package/dist/types/runtimes/react/components/page/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts +4 -0
- package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts +2 -0
- package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
- package/dist/types/runtimes/react/root-style-registry.d.ts +23 -11
- package/dist/types/runtimes/react/root-style-registry.d.ts.map +1 -1
- package/dist/types/testing/fixtures.d.ts +7 -0
- package/dist/types/testing/fixtures.d.ts.map +1 -0
- package/dist/types/utils/esm-compat.d.ts +2 -0
- package/dist/types/utils/esm-compat.d.ts.map +1 -0
- package/package.json +6 -5
- package/dist/cjs/api/site-version.js +0 -42
- package/dist/cjs/api/site-version.js.map +0 -1
- package/dist/cjs/api-handler/handlers/clear-draft.js.map +0 -1
- package/dist/cjs/next/api-handler/draft.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +0 -1
- package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +0 -1
- package/dist/cjs/next/draft-mode/index.js.map +0 -1
- package/dist/cjs/next/preview-mode.js.map +0 -1
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
- package/dist/esm/api/site-version.js +0 -15
- package/dist/esm/api/site-version.js.map +0 -1
- package/dist/esm/api-handler/handlers/clear-draft.js +0 -17
- package/dist/esm/api-handler/handlers/clear-draft.js.map +0 -1
- package/dist/esm/next/api-handler/draft.js +0 -14
- package/dist/esm/next/api-handler/draft.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/redirect-draft.js +0 -52
- package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +0 -1
- package/dist/esm/next/api-handler/handlers/redirect-preview.js +0 -37
- package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +0 -1
- package/dist/esm/next/draft-mode/index.js +0 -30
- package/dist/esm/next/draft-mode/index.js.map +0 -1
- package/dist/esm/next/preview-mode.js +0 -16
- package/dist/esm/next/preview-mode.js.map +0 -1
- package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
- package/dist/esm/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
- package/dist/types/api/site-version.d.ts +0 -7
- package/dist/types/api/site-version.d.ts.map +0 -1
- package/dist/types/api-handler/handlers/clear-draft.d.ts +0 -7
- package/dist/types/api-handler/handlers/clear-draft.d.ts.map +0 -1
- package/dist/types/next/api-handler/draft.d.ts +0 -8
- package/dist/types/next/api-handler/draft.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/redirect-draft.d.ts +0 -6
- package/dist/types/next/api-handler/handlers/redirect-draft.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts +0 -2
- package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts.map +0 -1
- package/dist/types/next/api-handler/handlers/redirect-preview.d.ts +0 -5
- package/dist/types/next/api-handler/handlers/redirect-preview.d.ts.map +0 -1
- package/dist/types/next/draft-mode/index.d.ts +0 -15
- package/dist/types/next/draft-mode/index.d.ts.map +0 -1
- package/dist/types/next/preview-mode.d.ts +0 -17
- package/dist/types/next/preview-mode.d.ts.map +0 -1
- package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts +0 -2
- package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts.map +0 -1
- package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts +0 -2
- package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts.map +0 -1
- package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts +0 -2
- package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts.map +0 -1
- package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts +0 -4
- package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts.map +0 -1
- package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts +0 -6
- package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/api-handler/config/pages-router.ts"],"sourcesContent":["import { P } from 'ts-pattern'\nimport { NextApiRequest, NextApiResponse } from 'next'\n\nimport { type ApiResponse } from '../../../api-handler/request-response'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/config/pages-router.ts"],"sourcesContent":["import { P } from 'ts-pattern'\nimport { NextApiRequest, NextApiResponse } from 'next'\n\nimport { type ApiResponse } from '../../../api-handler/request-response'\n\nimport { pagesRouterRedirectPreviewHandler } from '../handlers/pages-router-redirect-preview'\nimport { PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE } from '../preview'\n\nimport { validateApiRoute, type ApiHandlerConfig } from './base'\nimport { MakeswiftClient } from '../../../client'\n\nexport type ApiHandlerArgs = [NextApiRequest, NextApiResponse]\nexport const argsPattern = [P.any, P.any] as const\n\nexport async function config({\n req,\n res,\n client,\n}: {\n req: NextApiRequest\n res: NextApiResponse\n client: MakeswiftClient\n}): Promise<ApiHandlerConfig> {\n return {\n req: {\n headers: requestHeaders(req.headers),\n method: req.method ?? 'GET',\n url: req.url ?? '',\n json() {\n return req.body\n },\n },\n route: validateApiRoute(await apiRequestParams(req)),\n manifest: {},\n previewCookieNames: [PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE],\n sendResponse: async (apiResponse: ApiResponse): Promise<Response | void> => {\n const headers = responseHeaders(apiResponse.headers)\n Object.entries(headers).forEach(([key, value]) => {\n res.setHeader(key, value)\n })\n\n res.status(apiResponse.status)\n\n if (apiResponse.body) {\n await pipeTo(apiResponse.body, res)\n }\n\n res.end()\n },\n revalidationHandler: async (path?: string): Promise<void> => {\n if (path != null) {\n res.revalidate(path)\n } else {\n // No-op, Pages Router does not support tag-based revalidation\n }\n },\n customRoutes: async (route: string) => {\n if (route === '/redirect-preview') {\n return { res: await pagesRouterRedirectPreviewHandler(req, res, client) }\n }\n\n return null\n },\n }\n}\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\nfunction requestHeaders(headers: NextApiRequest['headers']): Headers {\n const result = new Headers()\n for (const [key, value] of Object.entries(headers)) {\n if (value != null) {\n if (Array.isArray(value)) {\n value.forEach(v => result.append(key, v))\n } else {\n result.append(key, value)\n }\n }\n }\n\n return result\n}\n\nfunction responseHeaders(headers: Headers): Record<string, string | string[]> {\n return [...headers.entries()].reduce<Record<string, string | string[]>>((acc, [key, value]) => {\n if (key in acc) {\n const existingValue = acc[key]\n if (Array.isArray(existingValue)) {\n existingValue.push(value)\n } else {\n acc[key] = [existingValue, value]\n }\n } else {\n acc[key] = value\n }\n return acc\n }, {})\n}\n\nasync function pipeTo(stream: ReadableStream<Uint8Array>, res: NextApiResponse): Promise<void> {\n try {\n const reader = stream.getReader()\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n res.write(value)\n }\n } catch (error) {\n res.destroy(error instanceof Error ? error : new Error(`${error}`))\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAkB;AAKlB,2CAAkD;AAClD,qBAA6D;AAE7D,kBAAwD;AAIjD,MAAM,cAAc,CAAC,oBAAE,KAAK,oBAAE,GAAG;AAExC,eAAsB,OAAO;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,GAI8B;AAC5B,SAAO;AAAA,IACL,KAAK;AAAA,MACH,SAAS,eAAe,IAAI,OAAO;AAAA,MACnC,QAAQ,IAAI,UAAU;AAAA,MACtB,KAAK,IAAI,OAAO;AAAA,MAChB,OAAO;AACL,eAAO,IAAI;AAAA,MACb;AAAA,IACF;AAAA,IACA,WAAO,8BAAiB,MAAM,iBAAiB,GAAG,CAAC;AAAA,IACnD,UAAU,CAAC;AAAA,IACX,oBAAoB,CAAC,wCAAyB,kCAAmB;AAAA,IACjE,cAAc,OAAO,gBAAuD;AAC1E,YAAM,UAAU,gBAAgB,YAAY,OAAO;AACnD,aAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAChD,YAAI,UAAU,KAAK,KAAK;AAAA,MAC1B,CAAC;AAED,UAAI,OAAO,YAAY,MAAM;AAE7B,UAAI,YAAY,MAAM;AACpB,cAAM,OAAO,YAAY,MAAM,GAAG;AAAA,MACpC;AAEA,UAAI,IAAI;AAAA,IACV;AAAA,IACA,qBAAqB,OAAO,SAAiC;AAC3D,UAAI,QAAQ,MAAM;AAChB,YAAI,WAAW,IAAI;AAAA,MACrB,OAAO;AAAA,MAEP;AAAA,IACF;AAAA,IACA,cAAc,OAAO,UAAkB;AACrC,UAAI,UAAU,qBAAqB;AACjC,eAAO,EAAE,KAAK,UAAM,wEAAkC,KAAK,KAAK,MAAM,EAAE;AAAA,MAC1E;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,SAA2D;AAGnF,SAAO,QAAQ,QAAQ,QAAQ,KAAK;AACtC;AAEA,SAAS,eAAe,SAA6C;AACnE,QAAM,SAAS,IAAI,QAAQ;AAC3B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,QAAI,SAAS,MAAM;AACjB,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,cAAM,QAAQ,OAAK,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,MAC1C,OAAO;AACL,eAAO,OAAO,KAAK,KAAK;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,gBAAgB,SAAqD;AAC5E,SAAO,CAAC,GAAG,QAAQ,QAAQ,CAAC,EAAE,OAA0C,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AAC7F,QAAI,OAAO,KAAK;AACd,YAAM,gBAAgB,IAAI,GAAG;AAC7B,UAAI,MAAM,QAAQ,aAAa,GAAG;AAChC,sBAAc,KAAK,KAAK;AAAA,MAC1B,OAAO;AACL,YAAI,GAAG,IAAI,CAAC,eAAe,KAAK;AAAA,MAClC;AAAA,IACF,OAAO;AACL,UAAI,GAAG,IAAI;AAAA,IACb;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;AAEA,eAAe,OAAO,QAAoC,KAAqC;AAC7F,MAAI;AACF,UAAM,SAAS,OAAO,UAAU;AAChC,WAAO,MAAM;AACX,YAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,UAAI;AAAM;AACV,UAAI,MAAM,KAAK;AAAA,IACjB;AAAA,EACF,SAAS,OAAO;AACd,QAAI,QAAQ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;AAAA,EACpE;AACF;","names":[]}
|
package/dist/cjs/next/api-handler/handlers/{redirect-draft.js → app-router-redirect-preview.js}
RENAMED
|
@@ -16,62 +16,66 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
var app_router_redirect_preview_exports = {};
|
|
20
|
+
__export(app_router_redirect_preview_exports, {
|
|
21
|
+
appRouterRedirectPreviewHandler: () => appRouterRedirectPreviewHandler,
|
|
22
|
+
originalRequestProtocol: () => originalRequestProtocol
|
|
23
23
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
24
|
+
module.exports = __toCommonJS(app_router_redirect_preview_exports);
|
|
25
25
|
var import_server = require("next/server");
|
|
26
26
|
var import_headers = require("next/headers");
|
|
27
27
|
var import_cookie = require("cookie");
|
|
28
|
-
var import_site_version = require("../../../api/site-version");
|
|
29
28
|
var import_cookies = require("../../../api-handler/cookies");
|
|
30
|
-
var
|
|
29
|
+
var import_site_version = require("../../../api/site-version");
|
|
30
|
+
var import_preview = require("../preview");
|
|
31
31
|
function originalRequestProtocol(request) {
|
|
32
32
|
const forwardedProto = request.headers.get("x-forwarded-proto");
|
|
33
33
|
return forwardedProto != null ? forwardedProto.split(",")[0].trim() : null;
|
|
34
34
|
}
|
|
35
|
-
async function
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
38
|
-
return new import_server.NextResponse("
|
|
39
|
-
status: 401
|
|
40
|
-
});
|
|
35
|
+
async function appRouterRedirectPreviewHandler(request, _context, client) {
|
|
36
|
+
const previewToken = request.nextUrl.searchParams.get(import_preview.SearchParams.PreviewToken);
|
|
37
|
+
if (previewToken == null) {
|
|
38
|
+
return new import_server.NextResponse("Bad request: no preview token provided", { status: 400 });
|
|
41
39
|
}
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
const verificationResult = await client.readPreviewToken(previewToken);
|
|
41
|
+
if (verificationResult == null) {
|
|
42
|
+
return new import_server.NextResponse("Failed to verify preview token", { status: 401 });
|
|
44
43
|
}
|
|
44
|
+
const { payload } = verificationResult;
|
|
45
45
|
const draft = await (0, import_headers.draftMode)();
|
|
46
46
|
const cookieStore = await (0, import_headers.cookies)();
|
|
47
47
|
draft.enable();
|
|
48
|
-
const prerenderBypassCookie = cookieStore.get(
|
|
48
|
+
const prerenderBypassCookie = cookieStore.get(import_preview.PRERENDER_BYPASS_COOKIE);
|
|
49
49
|
if (prerenderBypassCookie?.value == null) {
|
|
50
50
|
return new import_server.NextResponse("Could not retrieve draft mode bypass cookie", { status: 500 });
|
|
51
51
|
}
|
|
52
|
+
const siteVersion = { version: payload.version, token: previewToken };
|
|
53
|
+
const serializedSiteVersion = (0, import_site_version.serializeSiteVersion)(siteVersion);
|
|
54
|
+
const secondsUntilExpiration = (0, import_site_version.secondsUntilSiteVersionExpiration)(siteVersion);
|
|
52
55
|
const draftCookies = [
|
|
53
56
|
prerenderBypassCookie,
|
|
54
|
-
{
|
|
55
|
-
name: import_draft.MAKESWIFT_DRAFT_DATA_COOKIE,
|
|
56
|
-
// Eventually, we can make this value dynamic using the request
|
|
57
|
-
value: JSON.stringify({ makeswift: true, siteVersion: import_site_version.MakeswiftSiteVersion.Working })
|
|
58
|
-
}
|
|
57
|
+
{ name: import_preview.MAKESWIFT_SITE_VERSION_COOKIE, value: serializedSiteVersion }
|
|
59
58
|
];
|
|
60
59
|
const redirectProtocol = originalRequestProtocol(request) ?? request.nextUrl.protocol.replace(":", "");
|
|
61
60
|
const redirectHost = request.headers.get("x-forwarded-host") ?? request.headers.get("host") ?? request.nextUrl.host;
|
|
62
61
|
const redirectUrl = new URL(
|
|
63
62
|
`${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`
|
|
64
63
|
);
|
|
65
|
-
redirectUrl.searchParams.delete(
|
|
64
|
+
redirectUrl.searchParams.delete(import_preview.SearchParams.PreviewToken);
|
|
65
|
+
redirectUrl.searchParams.delete(import_preview.RewriteRuleMatches.PreviewToken);
|
|
66
|
+
redirectUrl.searchParams.delete(import_preview.RewriteRuleMatches.OriginalPath);
|
|
66
67
|
const headers = new Headers();
|
|
67
68
|
draftCookies.forEach(({ name, value }) => {
|
|
68
|
-
headers.append(
|
|
69
|
+
headers.append(
|
|
70
|
+
import_cookies.SET_COOKIE_HEADER,
|
|
71
|
+
(0, import_cookie.serialize)(name, value, { ...import_cookies.cookieSettingOptions, maxAge: secondsUntilExpiration })
|
|
72
|
+
);
|
|
69
73
|
});
|
|
70
74
|
return import_server.NextResponse.redirect(redirectUrl, { headers });
|
|
71
75
|
}
|
|
72
76
|
// Annotate the CommonJS export names for ESM import in node:
|
|
73
77
|
0 && (module.exports = {
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
appRouterRedirectPreviewHandler,
|
|
79
|
+
originalRequestProtocol
|
|
76
80
|
});
|
|
77
|
-
//# sourceMappingURL=redirect-
|
|
81
|
+
//# sourceMappingURL=app-router-redirect-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/app-router-redirect-preview.ts"],"sourcesContent":["import { NextRequest, NextResponse } from 'next/server'\nimport { cookies, draftMode } from 'next/headers'\n\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { cookieSettingOptions, SET_COOKIE_HEADER } from '../../../api-handler/cookies'\nimport {\n secondsUntilSiteVersionExpiration,\n serializeSiteVersion,\n type SiteVersion,\n} from '../../../api/site-version'\n\nimport {\n MAKESWIFT_SITE_VERSION_COOKIE,\n PRERENDER_BYPASS_COOKIE,\n RewriteRuleMatches,\n SearchParams,\n} from '../preview'\nimport { MakeswiftClient } from '../../../client'\n\nexport function originalRequestProtocol(request: NextRequest): string | null {\n // The `x-forwarded-proto` header is not formally standardized, but many proxies\n // *append* the protocol used for the request to the existing value. As a result,\n // if the request passes through multiple proxies, the header may contain a\n // comma-separated list of protocols: https://code.djangoproject.com/ticket/33569\n const forwardedProto = request.headers.get('x-forwarded-proto')\n return forwardedProto != null ? forwardedProto.split(',')[0].trim() : null\n}\n\nexport async function appRouterRedirectPreviewHandler(\n request: NextRequest,\n _context: any,\n client: MakeswiftClient,\n): Promise<NextResponse> {\n const previewToken = request.nextUrl.searchParams.get(SearchParams.PreviewToken)\n\n if (previewToken == null) {\n return new NextResponse('Bad request: no preview token provided', { status: 400 })\n }\n\n const verificationResult = await client.readPreviewToken(previewToken)\n\n if (verificationResult == null) {\n return new NextResponse('Failed to verify preview token', { status: 401 })\n }\n\n const { payload } = verificationResult\n\n const draft = await draftMode()\n const cookieStore = await cookies()\n\n draft.enable()\n\n const prerenderBypassCookie = cookieStore.get(PRERENDER_BYPASS_COOKIE)\n\n if (prerenderBypassCookie?.value == null) {\n return new NextResponse('Could not retrieve draft mode bypass cookie', { status: 500 })\n }\n\n const siteVersion: SiteVersion = { version: payload.version, token: previewToken }\n const serializedSiteVersion = serializeSiteVersion(siteVersion)\n const secondsUntilExpiration = secondsUntilSiteVersionExpiration(siteVersion)\n\n const draftCookies: { name: string; value: string }[] = [\n prerenderBypassCookie,\n { name: MAKESWIFT_SITE_VERSION_COOKIE, value: serializedSiteVersion },\n ]\n\n const redirectProtocol =\n originalRequestProtocol(request) ?? request.nextUrl.protocol.replace(':', '')\n\n const redirectHost =\n request.headers.get('x-forwarded-host') ?? request.headers.get('host') ?? request.nextUrl.host\n\n const redirectUrl = new URL(\n `${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`,\n )\n\n redirectUrl.searchParams.delete(SearchParams.PreviewToken)\n redirectUrl.searchParams.delete(RewriteRuleMatches.PreviewToken)\n redirectUrl.searchParams.delete(RewriteRuleMatches.OriginalPath)\n\n const headers = new Headers()\n draftCookies.forEach(({ name, value }) => {\n headers.append(\n SET_COOKIE_HEADER,\n serializeCookie(name, value, { ...cookieSettingOptions, maxAge: secondsUntilExpiration }),\n )\n })\n\n return NextResponse.redirect(redirectUrl, { headers })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0C;AAC1C,qBAAmC;AAEnC,oBAA6C;AAE7C,qBAAwD;AACxD,0BAIO;AAEP,qBAKO;AAGA,SAAS,wBAAwB,SAAqC;AAK3E,QAAM,iBAAiB,QAAQ,QAAQ,IAAI,mBAAmB;AAC9D,SAAO,kBAAkB,OAAO,eAAe,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI;AACxE;AAEA,eAAsB,gCACpB,SACA,UACA,QACuB;AACvB,QAAM,eAAe,QAAQ,QAAQ,aAAa,IAAI,4BAAa,YAAY;AAE/E,MAAI,gBAAgB,MAAM;AACxB,WAAO,IAAI,2BAAa,0CAA0C,EAAE,QAAQ,IAAI,CAAC;AAAA,EACnF;AAEA,QAAM,qBAAqB,MAAM,OAAO,iBAAiB,YAAY;AAErE,MAAI,sBAAsB,MAAM;AAC9B,WAAO,IAAI,2BAAa,kCAAkC,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC3E;AAEA,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,QAAQ,UAAM,0BAAU;AAC9B,QAAM,cAAc,UAAM,wBAAQ;AAElC,QAAM,OAAO;AAEb,QAAM,wBAAwB,YAAY,IAAI,sCAAuB;AAErE,MAAI,uBAAuB,SAAS,MAAM;AACxC,WAAO,IAAI,2BAAa,+CAA+C,EAAE,QAAQ,IAAI,CAAC;AAAA,EACxF;AAEA,QAAM,cAA2B,EAAE,SAAS,QAAQ,SAAS,OAAO,aAAa;AACjF,QAAM,4BAAwB,0CAAqB,WAAW;AAC9D,QAAM,6BAAyB,uDAAkC,WAAW;AAE5E,QAAM,eAAkD;AAAA,IACtD;AAAA,IACA,EAAE,MAAM,8CAA+B,OAAO,sBAAsB;AAAA,EACtE;AAEA,QAAM,mBACJ,wBAAwB,OAAO,KAAK,QAAQ,QAAQ,SAAS,QAAQ,KAAK,EAAE;AAE9E,QAAM,eACJ,QAAQ,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,QAAQ,IAAI,MAAM,KAAK,QAAQ,QAAQ;AAE5F,QAAM,cAAc,IAAI;AAAA,IACtB,GAAG,gBAAgB,MAAM,YAAY,GAAG,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,MAAM;AAAA,EAC3F;AAEA,cAAY,aAAa,OAAO,4BAAa,YAAY;AACzD,cAAY,aAAa,OAAO,kCAAmB,YAAY;AAC/D,cAAY,aAAa,OAAO,kCAAmB,YAAY;AAE/D,QAAM,UAAU,IAAI,QAAQ;AAC5B,eAAa,QAAQ,CAAC,EAAE,MAAM,MAAM,MAAM;AACxC,YAAQ;AAAA,MACN;AAAA,UACA,cAAAA,WAAgB,MAAM,OAAO,EAAE,GAAG,qCAAsB,QAAQ,uBAAuB,CAAC;AAAA,IAC1F;AAAA,EACF,CAAC;AAED,SAAO,2BAAa,SAAS,aAAa,EAAE,QAAQ,CAAC;AACvD;","names":["serializeCookie"]}
|
package/dist/cjs/next/api-handler/handlers/{redirect-preview.js → pages-router-redirect-preview.js}
RENAMED
|
@@ -16,46 +16,53 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var pages_router_redirect_preview_exports = {};
|
|
20
|
+
__export(pages_router_redirect_preview_exports, {
|
|
21
|
+
pagesRouterRedirectPreviewHandler: () => pagesRouterRedirectPreviewHandler
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(pages_router_redirect_preview_exports);
|
|
24
24
|
var import_set_cookie_parser = require("set-cookie-parser");
|
|
25
25
|
var import_cookie = require("cookie");
|
|
26
|
-
var import_site_version = require("../../../api/site-version");
|
|
27
26
|
var import_cookies = require("../../../api-handler/cookies");
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const pathname = req.query.
|
|
32
|
-
if (secret == null) {
|
|
33
|
-
return res.status(401).send("Unauthorized to enable preview mode: no secret provided");
|
|
34
|
-
}
|
|
35
|
-
if (secret !== apiKey) {
|
|
36
|
-
return res.status(401).send("Unauthorized to enable preview mode: secret is incorrect");
|
|
37
|
-
}
|
|
27
|
+
var import_preview = require("../preview");
|
|
28
|
+
var import_site_version = require("../../../api/site-version");
|
|
29
|
+
async function pagesRouterRedirectPreviewHandler(req, res, client) {
|
|
30
|
+
const pathname = req.query[import_preview.RewriteRuleMatches.OriginalPath];
|
|
38
31
|
if (pathname == null) {
|
|
39
32
|
return res.status(400).send("Bad request: incoming request does not have an associated pathname");
|
|
40
33
|
}
|
|
41
|
-
const
|
|
34
|
+
const previewToken = req.query[import_preview.SearchParams.PreviewToken];
|
|
35
|
+
if (previewToken == null) {
|
|
36
|
+
return res.status(400).send("Bad request: no preview token provided");
|
|
37
|
+
}
|
|
38
|
+
const verificationResult = await client.readPreviewToken(previewToken);
|
|
39
|
+
if (verificationResult == null) {
|
|
40
|
+
return res.status(401).send("Failed to verify preview token");
|
|
41
|
+
}
|
|
42
|
+
const { payload } = verificationResult;
|
|
43
|
+
const siteVersion = { version: payload.version, token: previewToken };
|
|
44
|
+
const secondsUntilExpiration = (0, import_site_version.secondsUntilSiteVersionExpiration)(siteVersion);
|
|
45
|
+
const serializedSiteVersion = (0, import_site_version.serializeSiteVersion)(siteVersion);
|
|
46
|
+
const setCookie = res.setPreviewData({ siteVersion: serializedSiteVersion }).getHeader(import_cookies.SET_COOKIE_HEADER);
|
|
42
47
|
res.removeHeader(import_cookies.SET_COOKIE_HEADER);
|
|
43
48
|
const parsedCookies = (0, import_set_cookie_parser.parse)(Array.isArray(setCookie) ? setCookie : "");
|
|
44
|
-
const prerenderBypassCookie = parsedCookies.find((c) => c.name ===
|
|
45
|
-
const previewDataCookie = parsedCookies.find((c) => c.name ===
|
|
49
|
+
const prerenderBypassCookie = parsedCookies.find((c) => c.name === import_preview.PRERENDER_BYPASS_COOKIE);
|
|
50
|
+
const previewDataCookie = parsedCookies.find((c) => c.name === import_preview.PREVIEW_DATA_COOKIE);
|
|
46
51
|
if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {
|
|
47
52
|
return res.status(500).send("Could not retrieve preview mode cookies");
|
|
48
53
|
}
|
|
49
54
|
const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {
|
|
50
|
-
return (0, import_cookie.serialize)(name, value, { ...import_cookies.cookieSettingOptions });
|
|
55
|
+
return (0, import_cookie.serialize)(name, value, { ...import_cookies.cookieSettingOptions, maxAge: secondsUntilExpiration });
|
|
51
56
|
});
|
|
52
57
|
res.setHeader(import_cookies.SET_COOKIE_HEADER, patchedCookies);
|
|
53
58
|
const destinationUrl = new URL(pathname, "http://test.com");
|
|
54
|
-
destinationUrl.searchParams.delete(
|
|
59
|
+
destinationUrl.searchParams.delete(import_preview.SearchParams.PreviewToken);
|
|
60
|
+
destinationUrl.searchParams.delete(import_preview.RewriteRuleMatches.PreviewToken);
|
|
61
|
+
destinationUrl.searchParams.delete(import_preview.RewriteRuleMatches.OriginalPath);
|
|
55
62
|
res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`);
|
|
56
63
|
}
|
|
57
64
|
// Annotate the CommonJS export names for ESM import in node:
|
|
58
65
|
0 && (module.exports = {
|
|
59
|
-
|
|
66
|
+
pagesRouterRedirectPreviewHandler
|
|
60
67
|
});
|
|
61
|
-
//# sourceMappingURL=redirect-preview.js.map
|
|
68
|
+
//# sourceMappingURL=pages-router-redirect-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/pages-router-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 { cookieSettingOptions, SET_COOKIE_HEADER } from '../../../api-handler/cookies'\n\nimport {\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n RewriteRuleMatches,\n SearchParams,\n} from '../preview'\nimport { MakeswiftClient } from '../../../client'\nimport {\n secondsUntilSiteVersionExpiration,\n serializeSiteVersion,\n type SiteVersion,\n} from '../../../api/site-version'\n\nexport async function pagesRouterRedirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse,\n client: MakeswiftClient,\n): Promise<void> {\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 the `query` to recover the original request path.\n const pathname = req.query[RewriteRuleMatches.OriginalPath] as string | undefined\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 previewToken = req.query[SearchParams.PreviewToken] as string | undefined\n\n if (previewToken == null) {\n return res.status(400).send('Bad request: no preview token provided')\n }\n\n const verificationResult = await client.readPreviewToken(previewToken)\n\n if (verificationResult == null) {\n return res.status(401).send('Failed to verify preview token')\n }\n\n const { payload } = verificationResult\n\n const siteVersion: SiteVersion = { version: payload.version, token: previewToken }\n const secondsUntilExpiration = secondsUntilSiteVersionExpiration(siteVersion)\n const serializedSiteVersion = serializeSiteVersion(siteVersion)\n\n const setCookie = res\n .setPreviewData({ siteVersion: serializedSiteVersion })\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, maxAge: secondsUntilExpiration })\n })\n res.setHeader(SET_COOKIE_HEADER, patchedCookies)\n\n const destinationUrl = new URL(pathname, 'http://test.com')\n destinationUrl.searchParams.delete(SearchParams.PreviewToken)\n destinationUrl.searchParams.delete(RewriteRuleMatches.PreviewToken)\n destinationUrl.searchParams.delete(RewriteRuleMatches.OriginalPath)\n\n res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,+BAAwC;AACxC,oBAA6C;AAE7C,qBAAwD;AAExD,qBAKO;AAEP,0BAIO;AAEP,eAAsB,kCACpB,KACA,KACA,QACe;AAKf,QAAM,WAAW,IAAI,MAAM,kCAAmB,YAAY;AAE1D,MAAI,YAAY,MAAM;AACpB,WAAO,IACJ,OAAO,GAAG,EACV,KAAK,oEAAoE;AAAA,EAC9E;AAEA,QAAM,eAAe,IAAI,MAAM,4BAAa,YAAY;AAExD,MAAI,gBAAgB,MAAM;AACxB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,wCAAwC;AAAA,EACtE;AAEA,QAAM,qBAAqB,MAAM,OAAO,iBAAiB,YAAY;AAErE,MAAI,sBAAsB,MAAM;AAC9B,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,gCAAgC;AAAA,EAC9D;AAEA,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,cAA2B,EAAE,SAAS,QAAQ,SAAS,OAAO,aAAa;AACjF,QAAM,6BAAyB,uDAAkC,WAAW;AAC5E,QAAM,4BAAwB,0CAAqB,WAAW;AAE9D,QAAM,YAAY,IACf,eAAe,EAAE,aAAa,sBAAsB,CAAC,EACrD,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,sCAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,kCAAmB;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,qCAAsB,QAAQ,uBAAuB,CAAC;AAAA,EACjG,CAAC;AACD,MAAI,UAAU,kCAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,UAAU,iBAAiB;AAC1D,iBAAe,aAAa,OAAO,4BAAa,YAAY;AAC5D,iBAAe,aAAa,OAAO,kCAAmB,YAAY;AAClE,iBAAe,aAAa,OAAO,kCAAmB,YAAY;AAElE,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":["parseSetCookie","serializeCookie"]}
|
|
@@ -39,7 +39,7 @@ var PagesRouter = __toESM(require("./config/pages-router"));
|
|
|
39
39
|
function MakeswiftApiHandler(apiKey, { apiOrigin, runtime, ...userConfig }) {
|
|
40
40
|
const client = new import_client.Makeswift(apiKey, { apiOrigin, runtime });
|
|
41
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,
|
|
42
|
+
const { req, route, sendResponse, customRoutes, ...handlerConfig } = await (0, import_ts_pattern.match)(args).with(AppRouter.argsPattern, ([req2, context]) => AppRouter.config({ req: req2, context, client })).with(PagesRouter.argsPattern, ([req2, res]) => PagesRouter.config({ req: req2, res, client })).exhaustive();
|
|
43
43
|
const apiHandler = (0, import_api_handler.createApiHandler)(apiKey, {
|
|
44
44
|
...userConfig,
|
|
45
45
|
...handlerConfig,
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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, client }))\n .with(PagesRouter.argsPattern, ([req, res]) => PagesRouter.config({ req, res, client }))\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"]}
|
|
@@ -16,26 +16,31 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var preview_exports = {};
|
|
20
|
+
__export(preview_exports, {
|
|
21
|
+
MAKESWIFT_SITE_VERSION_COOKIE: () => MAKESWIFT_SITE_VERSION_COOKIE,
|
|
22
22
|
PRERENDER_BYPASS_COOKIE: () => PRERENDER_BYPASS_COOKIE,
|
|
23
23
|
PREVIEW_DATA_COOKIE: () => PREVIEW_DATA_COOKIE,
|
|
24
|
+
RewriteRuleMatches: () => RewriteRuleMatches,
|
|
24
25
|
SearchParams: () => SearchParams
|
|
25
26
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
27
|
+
module.exports = __toCommonJS(preview_exports);
|
|
27
28
|
const PRERENDER_BYPASS_COOKIE = "__prerender_bypass";
|
|
28
29
|
const PREVIEW_DATA_COOKIE = "__next_preview_data";
|
|
29
|
-
const
|
|
30
|
+
const MAKESWIFT_SITE_VERSION_COOKIE = "makeswift-site-version";
|
|
30
31
|
const SearchParams = {
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
PreviewToken: "makeswift-preview-token"
|
|
33
|
+
};
|
|
34
|
+
const RewriteRuleMatches = {
|
|
35
|
+
PreviewToken: "makeswiftRewritePreviewToken",
|
|
36
|
+
OriginalPath: "makeswiftRewriteOriginalPath"
|
|
33
37
|
};
|
|
34
38
|
// Annotate the CommonJS export names for ESM import in node:
|
|
35
39
|
0 && (module.exports = {
|
|
36
|
-
|
|
40
|
+
MAKESWIFT_SITE_VERSION_COOKIE,
|
|
37
41
|
PRERENDER_BYPASS_COOKIE,
|
|
38
42
|
PREVIEW_DATA_COOKIE,
|
|
43
|
+
RewriteRuleMatches,
|
|
39
44
|
SearchParams
|
|
40
45
|
});
|
|
41
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/api-handler/preview.ts"],"sourcesContent":["export const PRERENDER_BYPASS_COOKIE = '__prerender_bypass'\nexport const PREVIEW_DATA_COOKIE = '__next_preview_data'\n\nexport const MAKESWIFT_SITE_VERSION_COOKIE = 'makeswift-site-version'\n\nexport const SearchParams = {\n PreviewToken: 'makeswift-preview-token',\n} as const\n\n// When there's a rewrite rule match, the matching values are included as query\n// parameters in the request URL, where the parameter name is the expression\n// used to match the value in the next.config. This behavior is typically\n// observed on projects deployed to Vercel. We keep track of these param names\n// so we can remove them in any subsequent redirects. Ideally, we can remove\n// this behavior altogether when we no longer rely on rewrites, or use something\n// like middleware.\n//\n// See:\n// https://nextjs.org/docs/app/api-reference/config/next-config-js/rewrites#rewrite-parameters\nexport const RewriteRuleMatches = {\n PreviewToken: 'makeswiftRewritePreviewToken',\n OriginalPath: 'makeswiftRewriteOriginalPath',\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,0BAA0B;AAChC,MAAM,sBAAsB;AAE5B,MAAM,gCAAgC;AAEtC,MAAM,eAAe;AAAA,EAC1B,cAAc;AAChB;AAYO,MAAM,qBAAqB;AAAA,EAChC,cAAc;AAAA,EACd,cAAc;AAChB;","names":[]}
|
|
@@ -16,41 +16,25 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
22
|
-
getSiteVersion: () => getSiteVersion,
|
|
23
|
-
makeswiftDraftDataSchema: () => makeswiftDraftDataSchema
|
|
19
|
+
var app_router_site_version_exports = {};
|
|
20
|
+
__export(app_router_site_version_exports, {
|
|
21
|
+
getSiteVersion: () => getSiteVersion
|
|
24
22
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
26
|
-
var import_zod = require("zod");
|
|
23
|
+
module.exports = __toCommonJS(app_router_site_version_exports);
|
|
27
24
|
var import_headers = require("next/headers");
|
|
28
|
-
var import_site_version = require("
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
makeswift: import_zod.z.literal(true),
|
|
32
|
-
siteVersion: import_site_version.makeswiftSiteVersionSchema
|
|
33
|
-
});
|
|
34
|
-
async function getDraftData() {
|
|
25
|
+
var import_site_version = require("../api/site-version");
|
|
26
|
+
var import_preview = require("./api-handler/preview");
|
|
27
|
+
async function getSiteVersion() {
|
|
35
28
|
const { isEnabled: isDraftModeEnabled } = await (0, import_headers.draftMode)();
|
|
36
29
|
if (!isDraftModeEnabled)
|
|
37
30
|
return null;
|
|
38
|
-
const cookie = (await (0, import_headers.cookies)()).get(
|
|
31
|
+
const cookie = (await (0, import_headers.cookies)()).get(import_preview.MAKESWIFT_SITE_VERSION_COOKIE);
|
|
39
32
|
if (cookie == null)
|
|
40
33
|
return null;
|
|
41
|
-
|
|
42
|
-
const result = makeswiftDraftDataSchema.safeParse(draftData);
|
|
43
|
-
if (result.success)
|
|
44
|
-
return result.data;
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
async function getSiteVersion() {
|
|
48
|
-
return (await getDraftData())?.siteVersion ?? import_site_version.MakeswiftSiteVersion.Live;
|
|
34
|
+
return (0, import_site_version.deserializeSiteVersion)(cookie.value);
|
|
49
35
|
}
|
|
50
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
51
37
|
0 && (module.exports = {
|
|
52
|
-
|
|
53
|
-
getSiteVersion,
|
|
54
|
-
makeswiftDraftDataSchema
|
|
38
|
+
getSiteVersion
|
|
55
39
|
});
|
|
56
|
-
//# sourceMappingURL=
|
|
40
|
+
//# sourceMappingURL=app-router-site-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/next/app-router-site-version.tsx"],"sourcesContent":["import { cookies, draftMode } from 'next/headers'\nimport { deserializeSiteVersion, SiteVersion } from '../api/site-version'\nimport { MAKESWIFT_SITE_VERSION_COOKIE } from './api-handler/preview'\n\nexport async function getSiteVersion(): Promise<SiteVersion | null> {\n const { isEnabled: isDraftModeEnabled } = await draftMode()\n if (!isDraftModeEnabled) return null\n\n const cookie = (await cookies()).get(MAKESWIFT_SITE_VERSION_COOKIE)\n if (cookie == null) return null\n\n return deserializeSiteVersion(cookie.value)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAmC;AACnC,0BAAoD;AACpD,qBAA8C;AAE9C,eAAsB,iBAA8C;AAClE,QAAM,EAAE,WAAW,mBAAmB,IAAI,UAAM,0BAAU;AAC1D,MAAI,CAAC;AAAoB,WAAO;AAEhC,QAAM,UAAU,UAAM,wBAAQ,GAAG,IAAI,4CAA6B;AAClE,MAAI,UAAU;AAAM,WAAO;AAE3B,aAAO,4CAAuB,OAAO,KAAK;AAC5C;","names":[]}
|
package/dist/cjs/next/client.js
CHANGED
|
@@ -21,16 +21,22 @@ __export(client_exports, {
|
|
|
21
21
|
Makeswift: () => Makeswift
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(client_exports);
|
|
24
|
+
var import_zod = require("zod");
|
|
24
25
|
var import_site_version = require("../api/site-version");
|
|
25
|
-
var import_preview_mode = require("./preview-mode");
|
|
26
26
|
var import_client = require("../client");
|
|
27
27
|
var import_cache = require("./cache");
|
|
28
|
+
const previewDataSchema = import_zod.z.object({
|
|
29
|
+
siteVersion: import_zod.z.string()
|
|
30
|
+
});
|
|
28
31
|
class Makeswift extends import_client.MakeswiftClient {
|
|
29
32
|
static getSiteVersion(previewData) {
|
|
30
|
-
|
|
33
|
+
const parsedSiteVersion = previewDataSchema.safeParse(previewData);
|
|
34
|
+
if (!parsedSiteVersion.success)
|
|
35
|
+
return null;
|
|
36
|
+
return (0, import_site_version.deserializeSiteVersion)(parsedSiteVersion.data.siteVersion);
|
|
31
37
|
}
|
|
32
38
|
static getPreviewMode(previewData) {
|
|
33
|
-
return
|
|
39
|
+
return this.getSiteVersion(previewData) != null;
|
|
34
40
|
}
|
|
35
41
|
fetchOptions(_siteVersion) {
|
|
36
42
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/client.ts"],"sourcesContent":["import { PreviewData } from 'next'\
|
|
1
|
+
{"version":3,"sources":["../../../src/next/client.ts"],"sourcesContent":["import { PreviewData } from 'next'\nimport { z } from 'zod'\n\nimport { deserializeSiteVersion, type SiteVersion } from '../api/site-version'\n\nimport { MakeswiftClient } from '../client'\nimport { MAKESWIFT_CACHE_TAG } from './cache'\n\nconst previewDataSchema = z.object({\n siteVersion: z.string(),\n})\n\nexport class Makeswift extends MakeswiftClient {\n static getSiteVersion(previewData: PreviewData): SiteVersion | null {\n const parsedSiteVersion = previewDataSchema.safeParse(previewData)\n if (!parsedSiteVersion.success) return null\n\n return deserializeSiteVersion(parsedSiteVersion.data.siteVersion)\n }\n\n static getPreviewMode(previewData: PreviewData): boolean {\n return this.getSiteVersion(previewData) != null\n }\n\n fetchOptions(_siteVersion: SiteVersion): Record<string, unknown> {\n return {\n next: {\n tags: [MAKESWIFT_CACHE_TAG],\n },\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkB;AAElB,0BAAyD;AAEzD,oBAAgC;AAChC,mBAAoC;AAEpC,MAAM,oBAAoB,aAAE,OAAO;AAAA,EACjC,aAAa,aAAE,OAAO;AACxB,CAAC;AAEM,MAAM,kBAAkB,8BAAgB;AAAA,EAC7C,OAAO,eAAe,aAA8C;AAClE,UAAM,oBAAoB,kBAAkB,UAAU,WAAW;AACjE,QAAI,CAAC,kBAAkB;AAAS,aAAO;AAEvC,eAAO,4CAAuB,kBAAkB,KAAK,WAAW;AAAA,EAClE;AAAA,EAEA,OAAO,eAAe,aAAmC;AACvD,WAAO,KAAK,eAAe,WAAW,KAAK;AAAA,EAC7C;AAAA,EAEA,aAAa,cAAoD;AAC/D,WAAO;AAAA,MACL,MAAM;AAAA,QACJ,MAAM,CAAC,gCAAmB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/components/framework-provider/index.tsx"],"sourcesContent":["'use client'\n\nimport { type PropsWithChildren, useMemo } from 'react'\nimport NextImage from 'next/image'\n\nimport { useIsPagesRouter } from '../../hooks/use-is-pages-router'\nimport {\n FrameworkContext,\n versionedFetch,\n} from '../../../runtimes/react/components/framework-context'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/components/framework-provider/index.tsx"],"sourcesContent":["'use client'\n\nimport { type PropsWithChildren, useMemo } from 'react'\nimport NextImage from 'next/image'\n\nimport { useIsPagesRouter } from '../../hooks/use-is-pages-router'\nimport {\n FrameworkContext,\n versionedFetch,\n} from '../../../runtimes/react/components/framework-context'\n\nimport { type SiteVersion } from '../../../api/site-version'\nimport { MAKESWIFT_CACHE_TAG } from '../../cache'\n\nimport { context as appRouterContext } from './app-router'\nimport { context as pagesRouterContext } from './pages-router'\nimport { Link } from './link'\n\nexport function FrameworkProvider({\n children,\n forcePagesRouter,\n}: PropsWithChildren<{ forcePagesRouter?: boolean }>) {\n const isPagesRouter = useIsPagesRouter() || forcePagesRouter\n const context = useMemo<FrameworkContext>(\n () => ({\n ...(isPagesRouter ? pagesRouterContext : appRouterContext),\n Image: NextImage,\n Link,\n versionedFetch: (siteVersion: SiteVersion | null) => (url, init) =>\n versionedFetch(siteVersion)(url, { ...init, next: { tags: [MAKESWIFT_CACHE_TAG] } }),\n }),\n [isPagesRouter],\n )\n\n return <FrameworkContext.Provider value={context}>{children}</FrameworkContext.Provider>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCS;AAhCT,mBAAgD;AAChD,mBAAsB;AAEtB,iCAAiC;AACjC,+BAGO;AAGP,mBAAoC;AAEpC,wBAA4C;AAC5C,0BAA8C;AAC9C,kBAAqB;AAEd,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AACF,GAAsD;AACpD,QAAM,oBAAgB,6CAAiB,KAAK;AAC5C,QAAM,cAAU;AAAA,IACd,OAAO;AAAA,MACL,GAAI,gBAAgB,oBAAAA,UAAqB,kBAAAC;AAAA,MACzC,OAAO,aAAAC;AAAA,MACP;AAAA,MACA,gBAAgB,CAAC,gBAAoC,CAAC,KAAK,aACzD,yCAAe,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,EAAE,MAAM,CAAC,gCAAmB,EAAE,EAAE,CAAC;AAAA,IACvF;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,SAAO,4CAAC,0CAAiB,UAAjB,EAA0B,OAAO,SAAU,UAAS;AAC9D;","names":["pagesRouterContext","appRouterContext","NextImage"]}
|
|
@@ -26,7 +26,7 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
26
26
|
var import_react = require("react");
|
|
27
27
|
var import_page = require("../../runtimes/react/components/page");
|
|
28
28
|
var import_use_router_locale_sync = require("../hooks/use-router-locale-sync");
|
|
29
|
-
const Page = (0, import_react.memo)(({ snapshot, metadata
|
|
29
|
+
const Page = (0, import_react.memo)(({ snapshot, metadata, ...extras }) => {
|
|
30
30
|
if ("runtime" in extras) {
|
|
31
31
|
throw new Error(
|
|
32
32
|
`The \`runtime\` prop is no longer supported in the \`@makeswift/runtime\` \`Page\` component as of \`0.15.0\`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/components/page.tsx"],"sourcesContent":["'use client'\n\nimport { memo } from 'react'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/components/page.tsx"],"sourcesContent":["'use client'\n\nimport { memo } from 'react'\n\nimport { Page as BuiltinPage, type PageProps } from '../../runtimes/react/components/page'\n\nimport { useRouterLocaleSync } from '../hooks/use-router-locale-sync'\n\nexport { type PageProps } from '../../runtimes/react/components/page'\n\n/**\n * @param snapshot - The snapshot of the page to render, from\n * `client.getPageSnapshot()`.\n * @param metadata - Allows control over whether to use data from Makeswift for\n * rendering metadata tags in the `<head>` of the page. Pass `true` (default if\n * not provided) to render all metadata tags, or `false` to not render any. For\n * more granular control, pass an object with boolean values for specific\n * metadata fields. Valid fields include:\n * - `title`\n * - `description`\n * - `keywords`\n * - `socialImage`\n * - `canonicalUrl`\n * - `indexingBlocked`\n * - `favicon`\n *\n * If a field is not provided, it will default to `false`.\n */\nexport const Page = memo(({ snapshot, metadata, ...extras }: PageProps) => {\n if ('runtime' in extras) {\n throw new Error(\n `The \\`runtime\\` prop is no longer supported in the \\`@makeswift/runtime\\` \\`Page\\` component as of \\`0.15.0\\`.\nSee our docs for more information on what's changed and instructions to migrate: https://docs.makeswift.com/migrations/0.15.0`,\n )\n }\n\n useRouterLocaleSync()\n\n return <BuiltinPage snapshot={snapshot} metadata={metadata} />\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCS;AApCT,mBAAqB;AAErB,kBAAoD;AAEpD,oCAAoC;AAsB7B,MAAM,WAAO,mBAAK,CAAC,EAAE,UAAU,UAAU,GAAG,OAAO,MAAiB;AACzE,MAAI,aAAa,QAAQ;AACvB,UAAM,IAAI;AAAA,MACR;AAAA;AAAA,IAEF;AAAA,EACF;AAEA,yDAAoB;AAEpB,SAAO,4CAAC,YAAAA,MAAA,EAAY,UAAoB,UAAoB;AAC9D,CAAC;","names":["BuiltinPage"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport { MakeswiftComponent } from '../runtimes/react/components/MakeswiftComponent'\nexport { Slot } from '../runtimes/react/components/Slot'\nexport type {\n MakeswiftPage,\n MakeswiftPageDocument,\n MakeswiftPageSnapshot,\n Sitemap,\n} from '../client'\nexport { Makeswift } from './client'\nexport type
|
|
1
|
+
{"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport { MakeswiftComponent } from '../runtimes/react/components/MakeswiftComponent'\nexport { Slot } from '../runtimes/react/components/Slot'\nexport type {\n MakeswiftPage,\n MakeswiftPageDocument,\n MakeswiftPageSnapshot,\n Sitemap,\n} from '../client'\nexport { Makeswift } from './client'\nexport { type SiteVersion } from '../api/site-version'\nexport { NextRootStyleRegistry as RootStyleRegistry } from './root-style-registry'\nexport { NextRuntimeProvider as ReactRuntimeProvider } from './runtime-provider'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAqB;AACrB,gCAAmC;AACnC,kBAAqB;AAOrB,oBAA0B;AAE1B,iCAA2D;AAC3D,8BAA4D;","names":[]}
|
|
@@ -18,32 +18,26 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var request_utils_exports = {};
|
|
20
20
|
__export(request_utils_exports, {
|
|
21
|
+
hasDraftModeCookies: () => hasDraftModeCookies,
|
|
21
22
|
isDraftModeRequest: () => isDraftModeRequest
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(request_utils_exports);
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
DraftMode: "x-makeswift-draft-mode",
|
|
31
|
-
PreviewMode: "x-makeswift-preview-mode"
|
|
32
|
-
};
|
|
33
|
-
function getDraftModeSecret(request) {
|
|
34
|
-
return request.nextUrl.searchParams.get(SearchParams.DraftMode) ?? request.headers.get(HeaderNames.DraftMode) ?? null;
|
|
25
|
+
var import_preview = require("../api-handler/preview");
|
|
26
|
+
function getPreviewTokenParam(request) {
|
|
27
|
+
return request.nextUrl.searchParams.get(import_preview.SearchParams.PreviewToken) ?? null;
|
|
28
|
+
}
|
|
29
|
+
function hasDraftModeCookies(request) {
|
|
30
|
+
return request.cookies.has(import_preview.PRERENDER_BYPASS_COOKIE) && request.cookies.has(import_preview.MAKESWIFT_SITE_VERSION_COOKIE);
|
|
35
31
|
}
|
|
36
32
|
function isDraftModeRequest(request) {
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
return true;
|
|
40
|
-
const hasDraftCookies = request.cookies.has(import_draft.PRERENDER_BYPASS_COOKIE) && request.cookies.has(import_draft.MAKESWIFT_DRAFT_DATA_COOKIE);
|
|
41
|
-
if (hasDraftCookies)
|
|
33
|
+
const hasToken = getPreviewTokenParam(request) != null;
|
|
34
|
+
if (hasToken)
|
|
42
35
|
return true;
|
|
43
|
-
return
|
|
36
|
+
return hasDraftModeCookies(request);
|
|
44
37
|
}
|
|
45
38
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46
39
|
0 && (module.exports = {
|
|
40
|
+
hasDraftModeCookies,
|
|
47
41
|
isDraftModeRequest
|
|
48
42
|
});
|
|
49
43
|
//# sourceMappingURL=request-utils.js.map
|
|
@@ -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 {\n MAKESWIFT_SITE_VERSION_COOKIE,\n PRERENDER_BYPASS_COOKIE,\n SearchParams,\n} from '../api-handler/preview'\n\nfunction getPreviewTokenParam(request: NextRequest): string | null {\n return request.nextUrl.searchParams.get(SearchParams.PreviewToken) ?? null\n}\n\nexport function hasDraftModeCookies(request: NextRequest): boolean {\n return (\n request.cookies.has(PRERENDER_BYPASS_COOKIE) &&\n request.cookies.has(MAKESWIFT_SITE_VERSION_COOKIE)\n )\n}\n\nexport function isDraftModeRequest(request: NextRequest): boolean {\n const hasToken = getPreviewTokenParam(request) != null\n if (hasToken) return true\n\n return hasDraftModeCookies(request)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAIO;AAEP,SAAS,qBAAqB,SAAqC;AACjE,SAAO,QAAQ,QAAQ,aAAa,IAAI,4BAAa,YAAY,KAAK;AACxE;AAEO,SAAS,oBAAoB,SAA+B;AACjE,SACE,QAAQ,QAAQ,IAAI,sCAAuB,KAC3C,QAAQ,QAAQ,IAAI,4CAA6B;AAErD;AAEO,SAAS,mBAAmB,SAA+B;AAChE,QAAM,WAAW,qBAAqB,OAAO,KAAK;AAClD,MAAI;AAAU,WAAO;AAErB,SAAO,oBAAoB,OAAO;AACpC;","names":[]}
|
|
@@ -19,42 +19,35 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
19
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
20
|
var root_style_registry_exports = {};
|
|
21
21
|
__export(root_style_registry_exports, {
|
|
22
|
-
NextRootStyleRegistry: () => NextRootStyleRegistry
|
|
23
|
-
useCSSResetEnabled: () => import_root_style_registry2.useCSSResetEnabled,
|
|
24
|
-
useCache: () => import_root_style_registry2.useCache
|
|
22
|
+
NextRootStyleRegistry: () => NextRootStyleRegistry
|
|
25
23
|
});
|
|
26
24
|
module.exports = __toCommonJS(root_style_registry_exports);
|
|
27
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
28
26
|
var import_react = require("react");
|
|
29
27
|
var import_navigation = require("next/navigation");
|
|
30
28
|
var import_root_style_registry = require("../runtimes/react/root-style-registry");
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
function NextRootStyleRegistry({
|
|
30
|
+
children,
|
|
31
|
+
cacheKey,
|
|
32
|
+
enableCssReset
|
|
33
|
+
}) {
|
|
34
|
+
const [cache] = (0, import_react.useState)(() => (0, import_root_style_registry.createRootStyleCache)({ key: cacheKey }));
|
|
34
35
|
(0, import_navigation.useServerInsertedHTML)(() => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
return null;
|
|
38
|
-
let styles = "";
|
|
39
|
-
for (const name of names) {
|
|
40
|
-
styles += cache.inserted[name];
|
|
41
|
-
}
|
|
42
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
36
|
+
const { classNames, css } = cache.flush();
|
|
37
|
+
return classNames.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
43
38
|
"style",
|
|
44
39
|
{
|
|
45
|
-
"data-emotion": `${cache.key} ${
|
|
40
|
+
"data-emotion": `${cache.key} ${classNames.join(" ")}`,
|
|
46
41
|
dangerouslySetInnerHTML: {
|
|
47
|
-
__html:
|
|
42
|
+
__html: css
|
|
48
43
|
}
|
|
49
44
|
}
|
|
50
|
-
);
|
|
45
|
+
) : null;
|
|
51
46
|
});
|
|
52
47
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_root_style_registry.RootStyleRegistry, { cache, enableCssReset, children });
|
|
53
48
|
}
|
|
54
49
|
// Annotate the CommonJS export names for ESM import in node:
|
|
55
50
|
0 && (module.exports = {
|
|
56
|
-
NextRootStyleRegistry
|
|
57
|
-
useCSSResetEnabled,
|
|
58
|
-
useCache
|
|
51
|
+
NextRootStyleRegistry
|
|
59
52
|
});
|
|
60
53
|
//# sourceMappingURL=root-style-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/root-style-registry.tsx"],"sourcesContent":["'use client'\n\nimport { type
|
|
1
|
+
{"version":3,"sources":["../../../src/next/root-style-registry.tsx"],"sourcesContent":["'use client'\n\nimport { type PropsWithChildren, useState } from 'react'\nimport { useServerInsertedHTML } from 'next/navigation'\n\nimport {\n createRootStyleCache,\n RootStyleRegistry as ReactRootStyleRegistry,\n type RootStyleProps,\n} from '../runtimes/react/root-style-registry'\n\nexport function NextRootStyleRegistry({\n children,\n cacheKey,\n enableCssReset,\n}: PropsWithChildren<RootStyleProps>) {\n const [cache] = useState(() => createRootStyleCache({ key: cacheKey }))\n\n useServerInsertedHTML(() => {\n const { classNames, css } = cache.flush()\n\n return classNames.length > 0 ? (\n <style\n data-emotion={`${cache.key} ${classNames.join(' ')}`}\n dangerouslySetInnerHTML={{\n __html: css,\n }}\n />\n ) : null\n })\n\n return (\n <ReactRootStyleRegistry cache={cache} enableCssReset={enableCssReset}>\n {children}\n </ReactRootStyleRegistry>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBM;AApBN,mBAAiD;AACjD,wBAAsC;AAEtC,iCAIO;AAEA,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,QAAM,CAAC,KAAK,QAAI,uBAAS,UAAM,iDAAqB,EAAE,KAAK,SAAS,CAAC,CAAC;AAEtE,+CAAsB,MAAM;AAC1B,UAAM,EAAE,YAAY,IAAI,IAAI,MAAM,MAAM;AAExC,WAAO,WAAW,SAAS,IACzB;AAAA,MAAC;AAAA;AAAA,QACC,gBAAc,GAAG,MAAM,GAAG,IAAI,WAAW,KAAK,GAAG,CAAC;AAAA,QAClD,yBAAyB;AAAA,UACvB,QAAQ;AAAA,QACV;AAAA;AAAA,IACF,IACE;AAAA,EACN,CAAC;AAED,SACE,4CAAC,2BAAAA,mBAAA,EAAuB,OAAc,gBACnC,UACH;AAEJ;","names":["ReactRootStyleRegistry"]}
|
package/dist/cjs/next/server.js
CHANGED
|
@@ -19,11 +19,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var server_exports = {};
|
|
20
20
|
__export(server_exports, {
|
|
21
21
|
MakeswiftApiHandler: () => import_api_handler.MakeswiftApiHandler,
|
|
22
|
-
getSiteVersion: () =>
|
|
22
|
+
getSiteVersion: () => import_app_router_site_version.getSiteVersion
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(server_exports);
|
|
25
25
|
var import_api_handler = require("./api-handler");
|
|
26
|
-
var
|
|
26
|
+
var import_app_router_site_version = require("./app-router-site-version");
|
|
27
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
28
|
0 && (module.exports = {
|
|
29
29
|
MakeswiftApiHandler,
|
|
@@ -1 +1 @@
|
|
|
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 './
|
|
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 './app-router-site-version'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAoC;AAGpC,qCAA+B;","names":[]}
|