@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,22 +1,20 @@
|
|
|
1
1
|
import { P } from "ts-pattern";
|
|
2
2
|
import { revalidatePath, revalidateTag } from "next/cache";
|
|
3
3
|
import { MAKESWIFT_CACHE_TAG } from "../../cache";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { appRouterRedirectPreviewHandler } from "../handlers/app-router-redirect-preview";
|
|
5
|
+
import { MAKESWIFT_SITE_VERSION_COOKIE, PRERENDER_BYPASS_COOKIE } from "../preview";
|
|
6
6
|
import { validateApiRoute } from "./base";
|
|
7
7
|
const argsPattern = [P.instanceOf(Request), P.any];
|
|
8
8
|
async function config({
|
|
9
9
|
req,
|
|
10
10
|
context,
|
|
11
|
-
|
|
11
|
+
client
|
|
12
12
|
}) {
|
|
13
13
|
return {
|
|
14
14
|
req,
|
|
15
15
|
route: validateApiRoute(await context.params),
|
|
16
|
-
manifest: {
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
draftCookieNames: [PRERENDER_BYPASS_COOKIE, MAKESWIFT_DRAFT_DATA_COOKIE],
|
|
16
|
+
manifest: {},
|
|
17
|
+
previewCookieNames: [PRERENDER_BYPASS_COOKIE, MAKESWIFT_SITE_VERSION_COOKIE],
|
|
20
18
|
sendResponse: async (res) => res,
|
|
21
19
|
revalidationHandler: async (path) => {
|
|
22
20
|
if (path != null) {
|
|
@@ -26,8 +24,8 @@ async function config({
|
|
|
26
24
|
}
|
|
27
25
|
},
|
|
28
26
|
customRoutes: async (route) => {
|
|
29
|
-
if (route === "/
|
|
30
|
-
return { res: await
|
|
27
|
+
if (route === "/redirect-preview") {
|
|
28
|
+
return { res: await appRouterRedirectPreviewHandler(req, context, client) };
|
|
31
29
|
}
|
|
32
30
|
return null;
|
|
33
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/api-handler/config/app-router.ts"],"sourcesContent":["import { P } from 'ts-pattern'\nimport { revalidatePath, revalidateTag } from 'next/cache'\nimport { NextRequest } from 'next/server'\n\nimport { MAKESWIFT_CACHE_TAG } from '../../cache'\nimport { type ApiResponse } from '../../../api-handler/request-response'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/config/app-router.ts"],"sourcesContent":["import { P } from 'ts-pattern'\nimport { revalidatePath, revalidateTag } from 'next/cache'\nimport { NextRequest } from 'next/server'\n\nimport { MAKESWIFT_CACHE_TAG } from '../../cache'\nimport { type ApiResponse } from '../../../api-handler/request-response'\n\nimport { appRouterRedirectPreviewHandler } from '../handlers/app-router-redirect-preview'\nimport { MAKESWIFT_SITE_VERSION_COOKIE, PRERENDER_BYPASS_COOKIE } from '../preview'\n\nimport { validateApiRoute, type ApiHandlerConfig } from './base'\nimport { MakeswiftClient } from '../../../client'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\nexport type ApiHandlerArgs = [NextRequest, Context]\nexport const argsPattern = [P.instanceOf(Request), P.any] as const\n\nexport async function config({\n req,\n context,\n client,\n}: {\n req: NextRequest\n context: Context\n client: MakeswiftClient\n}): Promise<ApiHandlerConfig> {\n return {\n req,\n route: validateApiRoute(await context.params),\n manifest: {},\n previewCookieNames: [PRERENDER_BYPASS_COOKIE, MAKESWIFT_SITE_VERSION_COOKIE],\n sendResponse: async (res: ApiResponse): Promise<Response | void> => res,\n revalidationHandler: async (path?: string): Promise<void> => {\n if (path != null) {\n revalidatePath(path)\n } else {\n revalidateTag(MAKESWIFT_CACHE_TAG)\n }\n },\n customRoutes: async (route: string) => {\n if (route === '/redirect-preview') {\n return { res: await appRouterRedirectPreviewHandler(req, context, client) }\n }\n\n return null\n },\n }\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,SAAS,gBAAgB,qBAAqB;AAG9C,SAAS,2BAA2B;AAGpC,SAAS,uCAAuC;AAChD,SAAS,+BAA+B,+BAA+B;AAEvE,SAAS,wBAA+C;AAMjD,MAAM,cAAc,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,GAAG;AAExD,eAAsB,OAAO;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,GAI8B;AAC5B,SAAO;AAAA,IACL;AAAA,IACA,OAAO,iBAAiB,MAAM,QAAQ,MAAM;AAAA,IAC5C,UAAU,CAAC;AAAA,IACX,oBAAoB,CAAC,yBAAyB,6BAA6B;AAAA,IAC3E,cAAc,OAAO,QAA+C;AAAA,IACpE,qBAAqB,OAAO,SAAiC;AAC3D,UAAI,QAAQ,MAAM;AAChB,uBAAe,IAAI;AAAA,MACrB,OAAO;AACL,sBAAc,mBAAmB;AAAA,MACnC;AAAA,IACF;AAAA,IACA,cAAc,OAAO,UAAkB;AACrC,UAAI,UAAU,qBAAqB;AACjC,eAAO,EAAE,KAAK,MAAM,gCAAgC,KAAK,SAAS,MAAM,EAAE;AAAA,MAC5E;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { P } from "ts-pattern";
|
|
2
|
-
import {
|
|
3
|
-
import { PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE } from "../
|
|
2
|
+
import { pagesRouterRedirectPreviewHandler } from "../handlers/pages-router-redirect-preview";
|
|
3
|
+
import { PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE } from "../preview";
|
|
4
4
|
import { validateApiRoute } from "./base";
|
|
5
5
|
const argsPattern = [P.any, P.any];
|
|
6
6
|
async function config({
|
|
7
7
|
req,
|
|
8
8
|
res,
|
|
9
|
-
|
|
9
|
+
client
|
|
10
10
|
}) {
|
|
11
11
|
return {
|
|
12
12
|
req: {
|
|
@@ -18,10 +18,8 @@ async function config({
|
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
route: validateApiRoute(await apiRequestParams(req)),
|
|
21
|
-
manifest: {
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
draftCookieNames: [PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE],
|
|
21
|
+
manifest: {},
|
|
22
|
+
previewCookieNames: [PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE],
|
|
25
23
|
sendResponse: async (apiResponse) => {
|
|
26
24
|
const headers = responseHeaders(apiResponse.headers);
|
|
27
25
|
Object.entries(headers).forEach(([key, value]) => {
|
|
@@ -40,8 +38,8 @@ async function config({
|
|
|
40
38
|
}
|
|
41
39
|
},
|
|
42
40
|
customRoutes: async (route) => {
|
|
43
|
-
if (route === "/preview") {
|
|
44
|
-
return { res: await
|
|
41
|
+
if (route === "/redirect-preview") {
|
|
42
|
+
return { res: await pagesRouterRedirectPreviewHandler(req, res, client) };
|
|
45
43
|
}
|
|
46
44
|
return null;
|
|
47
45
|
}
|
|
@@ -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,SAAS,SAAS;AAKlB,SAAS,yCAAyC;AAClD,SAAS,yBAAyB,2BAA2B;AAE7D,SAAS,wBAA+C;AAIjD,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,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,OAAO,iBAAiB,MAAM,iBAAiB,GAAG,CAAC;AAAA,IACnD,UAAU,CAAC;AAAA,IACX,oBAAoB,CAAC,yBAAyB,mBAAmB;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,MAAM,kCAAkC,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":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { NextResponse } from "next/server";
|
|
2
|
+
import { cookies, draftMode } from "next/headers";
|
|
3
|
+
import { serialize as serializeCookie } from "cookie";
|
|
4
|
+
import { cookieSettingOptions, SET_COOKIE_HEADER } from "../../../api-handler/cookies";
|
|
5
|
+
import {
|
|
6
|
+
secondsUntilSiteVersionExpiration,
|
|
7
|
+
serializeSiteVersion
|
|
8
|
+
} from "../../../api/site-version";
|
|
9
|
+
import {
|
|
10
|
+
MAKESWIFT_SITE_VERSION_COOKIE,
|
|
11
|
+
PRERENDER_BYPASS_COOKIE,
|
|
12
|
+
RewriteRuleMatches,
|
|
13
|
+
SearchParams
|
|
14
|
+
} from "../preview";
|
|
15
|
+
function originalRequestProtocol(request) {
|
|
16
|
+
const forwardedProto = request.headers.get("x-forwarded-proto");
|
|
17
|
+
return forwardedProto != null ? forwardedProto.split(",")[0].trim() : null;
|
|
18
|
+
}
|
|
19
|
+
async function appRouterRedirectPreviewHandler(request, _context, client) {
|
|
20
|
+
const previewToken = request.nextUrl.searchParams.get(SearchParams.PreviewToken);
|
|
21
|
+
if (previewToken == null) {
|
|
22
|
+
return new NextResponse("Bad request: no preview token provided", { status: 400 });
|
|
23
|
+
}
|
|
24
|
+
const verificationResult = await client.readPreviewToken(previewToken);
|
|
25
|
+
if (verificationResult == null) {
|
|
26
|
+
return new NextResponse("Failed to verify preview token", { status: 401 });
|
|
27
|
+
}
|
|
28
|
+
const { payload } = verificationResult;
|
|
29
|
+
const draft = await draftMode();
|
|
30
|
+
const cookieStore = await cookies();
|
|
31
|
+
draft.enable();
|
|
32
|
+
const prerenderBypassCookie = cookieStore.get(PRERENDER_BYPASS_COOKIE);
|
|
33
|
+
if (prerenderBypassCookie?.value == null) {
|
|
34
|
+
return new NextResponse("Could not retrieve draft mode bypass cookie", { status: 500 });
|
|
35
|
+
}
|
|
36
|
+
const siteVersion = { version: payload.version, token: previewToken };
|
|
37
|
+
const serializedSiteVersion = serializeSiteVersion(siteVersion);
|
|
38
|
+
const secondsUntilExpiration = secondsUntilSiteVersionExpiration(siteVersion);
|
|
39
|
+
const draftCookies = [
|
|
40
|
+
prerenderBypassCookie,
|
|
41
|
+
{ name: MAKESWIFT_SITE_VERSION_COOKIE, value: serializedSiteVersion }
|
|
42
|
+
];
|
|
43
|
+
const redirectProtocol = originalRequestProtocol(request) ?? request.nextUrl.protocol.replace(":", "");
|
|
44
|
+
const redirectHost = request.headers.get("x-forwarded-host") ?? request.headers.get("host") ?? request.nextUrl.host;
|
|
45
|
+
const redirectUrl = new URL(
|
|
46
|
+
`${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`
|
|
47
|
+
);
|
|
48
|
+
redirectUrl.searchParams.delete(SearchParams.PreviewToken);
|
|
49
|
+
redirectUrl.searchParams.delete(RewriteRuleMatches.PreviewToken);
|
|
50
|
+
redirectUrl.searchParams.delete(RewriteRuleMatches.OriginalPath);
|
|
51
|
+
const headers = new Headers();
|
|
52
|
+
draftCookies.forEach(({ name, value }) => {
|
|
53
|
+
headers.append(
|
|
54
|
+
SET_COOKIE_HEADER,
|
|
55
|
+
serializeCookie(name, value, { ...cookieSettingOptions, maxAge: secondsUntilExpiration })
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
return NextResponse.redirect(redirectUrl, { headers });
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
appRouterRedirectPreviewHandler,
|
|
62
|
+
originalRequestProtocol
|
|
63
|
+
};
|
|
64
|
+
//# 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,SAAsB,oBAAoB;AAC1C,SAAS,SAAS,iBAAiB;AAEnC,SAAS,aAAa,uBAAuB;AAE7C,SAAS,sBAAsB,yBAAyB;AACxD;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;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,aAAa,YAAY;AAE/E,MAAI,gBAAgB,MAAM;AACxB,WAAO,IAAI,aAAa,0CAA0C,EAAE,QAAQ,IAAI,CAAC;AAAA,EACnF;AAEA,QAAM,qBAAqB,MAAM,OAAO,iBAAiB,YAAY;AAErE,MAAI,sBAAsB,MAAM;AAC9B,WAAO,IAAI,aAAa,kCAAkC,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC3E;AAEA,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,QAAQ,MAAM,UAAU;AAC9B,QAAM,cAAc,MAAM,QAAQ;AAElC,QAAM,OAAO;AAEb,QAAM,wBAAwB,YAAY,IAAI,uBAAuB;AAErE,MAAI,uBAAuB,SAAS,MAAM;AACxC,WAAO,IAAI,aAAa,+CAA+C,EAAE,QAAQ,IAAI,CAAC;AAAA,EACxF;AAEA,QAAM,cAA2B,EAAE,SAAS,QAAQ,SAAS,OAAO,aAAa;AACjF,QAAM,wBAAwB,qBAAqB,WAAW;AAC9D,QAAM,yBAAyB,kCAAkC,WAAW;AAE5E,QAAM,eAAkD;AAAA,IACtD;AAAA,IACA,EAAE,MAAM,+BAA+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,aAAa,YAAY;AACzD,cAAY,aAAa,OAAO,mBAAmB,YAAY;AAC/D,cAAY,aAAa,OAAO,mBAAmB,YAAY;AAE/D,QAAM,UAAU,IAAI,QAAQ;AAC5B,eAAa,QAAQ,CAAC,EAAE,MAAM,MAAM,MAAM;AACxC,YAAQ;AAAA,MACN;AAAA,MACA,gBAAgB,MAAM,OAAO,EAAE,GAAG,sBAAsB,QAAQ,uBAAuB,CAAC;AAAA,IAC1F;AAAA,EACF,CAAC;AAED,SAAO,aAAa,SAAS,aAAa,EAAE,QAAQ,CAAC;AACvD;","names":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { parse as parseSetCookie } from "set-cookie-parser";
|
|
2
|
+
import { serialize as serializeCookie } from "cookie";
|
|
3
|
+
import { cookieSettingOptions, SET_COOKIE_HEADER } from "../../../api-handler/cookies";
|
|
4
|
+
import {
|
|
5
|
+
PRERENDER_BYPASS_COOKIE,
|
|
6
|
+
PREVIEW_DATA_COOKIE,
|
|
7
|
+
RewriteRuleMatches,
|
|
8
|
+
SearchParams
|
|
9
|
+
} from "../preview";
|
|
10
|
+
import {
|
|
11
|
+
secondsUntilSiteVersionExpiration,
|
|
12
|
+
serializeSiteVersion
|
|
13
|
+
} from "../../../api/site-version";
|
|
14
|
+
async function pagesRouterRedirectPreviewHandler(req, res, client) {
|
|
15
|
+
const pathname = req.query[RewriteRuleMatches.OriginalPath];
|
|
16
|
+
if (pathname == null) {
|
|
17
|
+
return res.status(400).send("Bad request: incoming request does not have an associated pathname");
|
|
18
|
+
}
|
|
19
|
+
const previewToken = req.query[SearchParams.PreviewToken];
|
|
20
|
+
if (previewToken == null) {
|
|
21
|
+
return res.status(400).send("Bad request: no preview token provided");
|
|
22
|
+
}
|
|
23
|
+
const verificationResult = await client.readPreviewToken(previewToken);
|
|
24
|
+
if (verificationResult == null) {
|
|
25
|
+
return res.status(401).send("Failed to verify preview token");
|
|
26
|
+
}
|
|
27
|
+
const { payload } = verificationResult;
|
|
28
|
+
const siteVersion = { version: payload.version, token: previewToken };
|
|
29
|
+
const secondsUntilExpiration = secondsUntilSiteVersionExpiration(siteVersion);
|
|
30
|
+
const serializedSiteVersion = serializeSiteVersion(siteVersion);
|
|
31
|
+
const setCookie = res.setPreviewData({ siteVersion: serializedSiteVersion }).getHeader(SET_COOKIE_HEADER);
|
|
32
|
+
res.removeHeader(SET_COOKIE_HEADER);
|
|
33
|
+
const parsedCookies = parseSetCookie(Array.isArray(setCookie) ? setCookie : "");
|
|
34
|
+
const prerenderBypassCookie = parsedCookies.find((c) => c.name === PRERENDER_BYPASS_COOKIE);
|
|
35
|
+
const previewDataCookie = parsedCookies.find((c) => c.name === PREVIEW_DATA_COOKIE);
|
|
36
|
+
if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {
|
|
37
|
+
return res.status(500).send("Could not retrieve preview mode cookies");
|
|
38
|
+
}
|
|
39
|
+
const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {
|
|
40
|
+
return serializeCookie(name, value, { ...cookieSettingOptions, maxAge: secondsUntilExpiration });
|
|
41
|
+
});
|
|
42
|
+
res.setHeader(SET_COOKIE_HEADER, patchedCookies);
|
|
43
|
+
const destinationUrl = new URL(pathname, "http://test.com");
|
|
44
|
+
destinationUrl.searchParams.delete(SearchParams.PreviewToken);
|
|
45
|
+
destinationUrl.searchParams.delete(RewriteRuleMatches.PreviewToken);
|
|
46
|
+
destinationUrl.searchParams.delete(RewriteRuleMatches.OriginalPath);
|
|
47
|
+
res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`);
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
pagesRouterRedirectPreviewHandler
|
|
51
|
+
};
|
|
52
|
+
//# 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":"AAEA,SAAS,SAAS,sBAAsB;AACxC,SAAS,aAAa,uBAAuB;AAE7C,SAAS,sBAAsB,yBAAyB;AAExD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAEP,eAAsB,kCACpB,KACA,KACA,QACe;AAKf,QAAM,WAAW,IAAI,MAAM,mBAAmB,YAAY;AAE1D,MAAI,YAAY,MAAM;AACpB,WAAO,IACJ,OAAO,GAAG,EACV,KAAK,oEAAoE;AAAA,EAC9E;AAEA,QAAM,eAAe,IAAI,MAAM,aAAa,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,yBAAyB,kCAAkC,WAAW;AAC5E,QAAM,wBAAwB,qBAAqB,WAAW;AAE9D,QAAM,YAAY,IACf,eAAe,EAAE,aAAa,sBAAsB,CAAC,EACrD,UAAU,iBAAiB;AAE9B,MAAI,aAAa,iBAAiB;AAElC,QAAM,gBAAgB,eAAe,MAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAE9E,QAAM,wBAAwB,cAAc,KAAK,OAAK,EAAE,SAAS,uBAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,mBAAmB;AAEhF,MAAI,uBAAuB,SAAS,QAAQ,mBAAmB,SAAS,MAAM;AAC5E,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yCAAyC;AAAA,EACvE;AAEA,QAAM,iBAAiB,CAAC,uBAAuB,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM;AACzF,WAAO,gBAAgB,MAAM,OAAO,EAAE,GAAG,sBAAsB,QAAQ,uBAAuB,CAAC;AAAA,EACjG,CAAC;AACD,MAAI,UAAU,mBAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,UAAU,iBAAiB;AAC1D,iBAAe,aAAa,OAAO,aAAa,YAAY;AAC5D,iBAAe,aAAa,OAAO,mBAAmB,YAAY;AAClE,iBAAe,aAAa,OAAO,mBAAmB,YAAY;AAElE,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":[]}
|
|
@@ -6,7 +6,7 @@ import * as PagesRouter from "./config/pages-router";
|
|
|
6
6
|
function MakeswiftApiHandler(apiKey, { apiOrigin, runtime, ...userConfig }) {
|
|
7
7
|
const client = new MakeswiftClient(apiKey, { apiOrigin, runtime });
|
|
8
8
|
return async function handler(...args) {
|
|
9
|
-
const { req, route, sendResponse, customRoutes, ...handlerConfig } = await match(args).with(AppRouter.argsPattern, ([req2, context]) => AppRouter.config({ req: req2, context,
|
|
9
|
+
const { req, route, sendResponse, customRoutes, ...handlerConfig } = await 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();
|
|
10
10
|
const apiHandler = createApiHandler(apiKey, {
|
|
11
11
|
...userConfig,
|
|
12
12
|
...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,SAAS,aAAa;AAEtB,SAAS,aAAa,uBAAuB;AAE7C,SAAoC,wBAAwB;AAE5D,YAAY,eAAe;AAC3B,YAAY,iBAAiB;AAStB,SAAS,oBACd,QACA,EAAE,WAAW,SAAS,GAAG,WAAW,GACmB;AACvD,QAAM,SAAS,IAAI,gBAAgB,QAAQ,EAAE,WAAW,QAAQ,CAAC;AAEjE,SAAO,eAAe,WAAW,MAAgD;AAC/E,UAAM,EAAE,KAAK,OAAO,cAAc,cAAc,GAAG,cAAc,IAAI,MAAM,MAAM,IAAI,EAClF,KAAK,UAAU,aAAa,CAAC,CAACA,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,aAAa,iBAAiB,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":["req"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const PRERENDER_BYPASS_COOKIE = "__prerender_bypass";
|
|
2
|
+
const PREVIEW_DATA_COOKIE = "__next_preview_data";
|
|
3
|
+
const MAKESWIFT_SITE_VERSION_COOKIE = "makeswift-site-version";
|
|
4
|
+
const SearchParams = {
|
|
5
|
+
PreviewToken: "makeswift-preview-token"
|
|
6
|
+
};
|
|
7
|
+
const RewriteRuleMatches = {
|
|
8
|
+
PreviewToken: "makeswiftRewritePreviewToken",
|
|
9
|
+
OriginalPath: "makeswiftRewriteOriginalPath"
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
MAKESWIFT_SITE_VERSION_COOKIE,
|
|
13
|
+
PRERENDER_BYPASS_COOKIE,
|
|
14
|
+
PREVIEW_DATA_COOKIE,
|
|
15
|
+
RewriteRuleMatches,
|
|
16
|
+
SearchParams
|
|
17
|
+
};
|
|
18
|
+
//# 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":"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":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { cookies, draftMode } from "next/headers";
|
|
2
|
+
import { deserializeSiteVersion } from "../api/site-version";
|
|
3
|
+
import { MAKESWIFT_SITE_VERSION_COOKIE } from "./api-handler/preview";
|
|
4
|
+
async function getSiteVersion() {
|
|
5
|
+
const { isEnabled: isDraftModeEnabled } = await draftMode();
|
|
6
|
+
if (!isDraftModeEnabled)
|
|
7
|
+
return null;
|
|
8
|
+
const cookie = (await cookies()).get(MAKESWIFT_SITE_VERSION_COOKIE);
|
|
9
|
+
if (cookie == null)
|
|
10
|
+
return null;
|
|
11
|
+
return deserializeSiteVersion(cookie.value);
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
getSiteVersion
|
|
15
|
+
};
|
|
16
|
+
//# 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,SAAS,SAAS,iBAAiB;AACnC,SAAS,8BAA2C;AACpD,SAAS,qCAAqC;AAE9C,eAAsB,iBAA8C;AAClE,QAAM,EAAE,WAAW,mBAAmB,IAAI,MAAM,UAAU;AAC1D,MAAI,CAAC;AAAoB,WAAO;AAEhC,QAAM,UAAU,MAAM,QAAQ,GAAG,IAAI,6BAA6B;AAClE,MAAI,UAAU;AAAM,WAAO;AAE3B,SAAO,uBAAuB,OAAO,KAAK;AAC5C;","names":[]}
|
package/dist/esm/next/client.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { deserializeSiteVersion } from "../api/site-version";
|
|
3
3
|
import { MakeswiftClient } from "../client";
|
|
4
4
|
import { MAKESWIFT_CACHE_TAG } from "./cache";
|
|
5
|
+
const previewDataSchema = z.object({
|
|
6
|
+
siteVersion: z.string()
|
|
7
|
+
});
|
|
5
8
|
class Makeswift extends MakeswiftClient {
|
|
6
9
|
static getSiteVersion(previewData) {
|
|
7
|
-
|
|
10
|
+
const parsedSiteVersion = previewDataSchema.safeParse(previewData);
|
|
11
|
+
if (!parsedSiteVersion.success)
|
|
12
|
+
return null;
|
|
13
|
+
return deserializeSiteVersion(parsedSiteVersion.data.siteVersion);
|
|
8
14
|
}
|
|
9
15
|
static getPreviewMode(previewData) {
|
|
10
|
-
return
|
|
16
|
+
return this.getSiteVersion(previewData) != null;
|
|
11
17
|
}
|
|
12
18
|
fetchOptions(_siteVersion) {
|
|
13
19
|
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":"AACA,SAAS,SAAS;AAElB,SAAS,8BAAgD;AAEzD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAEpC,MAAM,oBAAoB,EAAE,OAAO;AAAA,EACjC,aAAa,EAAE,OAAO;AACxB,CAAC;AAEM,MAAM,kBAAkB,gBAAgB;AAAA,EAC7C,OAAO,eAAe,aAA8C;AAClE,UAAM,oBAAoB,kBAAkB,UAAU,WAAW;AACjE,QAAI,CAAC,kBAAkB;AAAS,aAAO;AAEvC,WAAO,uBAAuB,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,mBAAmB;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":";AAkCS;AAhCT,SAAiC,eAAe;AAChD,OAAO,eAAe;AAEtB,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,2BAA2B;AAEpC,SAAS,WAAW,wBAAwB;AAC5C,SAAS,WAAW,0BAA0B;AAC9C,SAAS,YAAY;AAEd,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AACF,GAAsD;AACpD,QAAM,gBAAgB,iBAAiB,KAAK;AAC5C,QAAM,UAAU;AAAA,IACd,OAAO;AAAA,MACL,GAAI,gBAAgB,qBAAqB;AAAA,MACzC,OAAO;AAAA,MACP;AAAA,MACA,gBAAgB,CAAC,gBAAoC,CAAC,KAAK,SACzD,eAAe,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;AAAA,IACvF;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,SAAO,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,SAAU,UAAS;AAC9D;","names":[]}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { memo } from "react";
|
|
4
|
-
import {
|
|
5
|
-
Page as BuiltinPage
|
|
6
|
-
} from "../../runtimes/react/components/page";
|
|
4
|
+
import { Page as BuiltinPage } from "../../runtimes/react/components/page";
|
|
7
5
|
import { useRouterLocaleSync } from "../hooks/use-router-locale-sync";
|
|
8
|
-
const Page = memo(({ snapshot, metadata
|
|
6
|
+
const Page = memo(({ snapshot, metadata, ...extras }) => {
|
|
9
7
|
if ("runtime" in extras) {
|
|
10
8
|
throw new Error(
|
|
11
9
|
`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":";AAsCS;AApCT,SAAS,YAAY;AAErB,SAAS,QAAQ,mBAAmC;AAEpD,SAAS,2BAA2B;AAsB7B,MAAM,OAAO,KAAK,CAAC,EAAE,UAAU,UAAU,GAAG,OAAO,MAAiB;AACzE,MAAI,aAAa,QAAQ;AACvB,UAAM,IAAI;AAAA,MACR;AAAA;AAAA,IAEF;AAAA,EACF;AAEA,sBAAoB;AAEpB,SAAO,oBAAC,eAAY,UAAoB,UAAoB;AAC9D,CAAC;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport { MakeswiftComponent } from '../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":"AACA,SAAS,YAAY;AACrB,SAAS,0BAA0B;AACnC,SAAS,YAAY;AAOrB,SAAS,iBAAiB;AAE1B,SAAkC,6BAAyB;AAC3D,SAAgC,2BAA4B;","names":[]}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return request.nextUrl.searchParams.get(SearchParams.DraftMode) ?? request.headers.get(HeaderNames.DraftMode) ?? null;
|
|
1
|
+
import {
|
|
2
|
+
MAKESWIFT_SITE_VERSION_COOKIE,
|
|
3
|
+
PRERENDER_BYPASS_COOKIE,
|
|
4
|
+
SearchParams
|
|
5
|
+
} from "../api-handler/preview";
|
|
6
|
+
function getPreviewTokenParam(request) {
|
|
7
|
+
return request.nextUrl.searchParams.get(SearchParams.PreviewToken) ?? null;
|
|
8
|
+
}
|
|
9
|
+
function hasDraftModeCookies(request) {
|
|
10
|
+
return request.cookies.has(PRERENDER_BYPASS_COOKIE) && request.cookies.has(MAKESWIFT_SITE_VERSION_COOKIE);
|
|
12
11
|
}
|
|
13
12
|
function isDraftModeRequest(request) {
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
return true;
|
|
17
|
-
const hasDraftCookies = request.cookies.has(PRERENDER_BYPASS_COOKIE) && request.cookies.has(MAKESWIFT_DRAFT_DATA_COOKIE);
|
|
18
|
-
if (hasDraftCookies)
|
|
13
|
+
const hasToken = getPreviewTokenParam(request) != null;
|
|
14
|
+
if (hasToken)
|
|
19
15
|
return true;
|
|
20
|
-
return
|
|
16
|
+
return hasDraftModeCookies(request);
|
|
21
17
|
}
|
|
22
18
|
export {
|
|
19
|
+
hasDraftModeCookies,
|
|
23
20
|
isDraftModeRequest
|
|
24
21
|
};
|
|
25
22
|
//# 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":"AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,qBAAqB,SAAqC;AACjE,SAAO,QAAQ,QAAQ,aAAa,IAAI,aAAa,YAAY,KAAK;AACxE;AAEO,SAAS,oBAAoB,SAA+B;AACjE,SACE,QAAQ,QAAQ,IAAI,uBAAuB,KAC3C,QAAQ,QAAQ,IAAI,6BAA6B;AAErD;AAEO,SAAS,mBAAmB,SAA+B;AAChE,QAAM,WAAW,qBAAqB,OAAO,KAAK;AAClD,MAAI;AAAU,WAAO;AAErB,SAAO,oBAAoB,OAAO;AACpC;","names":[]}
|
|
@@ -6,32 +6,27 @@ import {
|
|
|
6
6
|
createRootStyleCache,
|
|
7
7
|
RootStyleRegistry as ReactRootStyleRegistry
|
|
8
8
|
} from "../runtimes/react/root-style-registry";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
function NextRootStyleRegistry({
|
|
10
|
+
children,
|
|
11
|
+
cacheKey,
|
|
12
|
+
enableCssReset
|
|
13
|
+
}) {
|
|
14
|
+
const [cache] = useState(() => createRootStyleCache({ key: cacheKey }));
|
|
12
15
|
useServerInsertedHTML(() => {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
return null;
|
|
16
|
-
let styles = "";
|
|
17
|
-
for (const name of names) {
|
|
18
|
-
styles += cache.inserted[name];
|
|
19
|
-
}
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
16
|
+
const { classNames, css } = cache.flush();
|
|
17
|
+
return classNames.length > 0 ? /* @__PURE__ */ jsx(
|
|
21
18
|
"style",
|
|
22
19
|
{
|
|
23
|
-
"data-emotion": `${cache.key} ${
|
|
20
|
+
"data-emotion": `${cache.key} ${classNames.join(" ")}`,
|
|
24
21
|
dangerouslySetInnerHTML: {
|
|
25
|
-
__html:
|
|
22
|
+
__html: css
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
|
-
);
|
|
25
|
+
) : null;
|
|
29
26
|
});
|
|
30
27
|
return /* @__PURE__ */ jsx(ReactRootStyleRegistry, { cache, enableCssReset, children });
|
|
31
28
|
}
|
|
32
29
|
export {
|
|
33
|
-
NextRootStyleRegistry
|
|
34
|
-
useCSSResetEnabled,
|
|
35
|
-
useCache
|
|
30
|
+
NextRootStyleRegistry
|
|
36
31
|
};
|
|
37
32
|
//# 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":";AAsBM;AApBN,SAAiC,gBAAgB;AACjD,SAAS,6BAA6B;AAEtC;AAAA,EACE;AAAA,EACA,qBAAqB;AAAA,OAEhB;AAEA,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,QAAM,CAAC,KAAK,IAAI,SAAS,MAAM,qBAAqB,EAAE,KAAK,SAAS,CAAC,CAAC;AAEtE,wBAAsB,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,oBAAC,0BAAuB,OAAc,gBACnC,UACH;AAEJ;","names":[]}
|
package/dist/esm/next/server.js
CHANGED
|
@@ -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,SAAS,2BAA2B;AAGpC,SAAS,sBAAsB;","names":[]}
|
|
@@ -15,7 +15,7 @@ async function testMakeswiftPageHeadRendering(props, { forcePagesRouter = false
|
|
|
15
15
|
});
|
|
16
16
|
return await act(
|
|
17
17
|
async () => render(
|
|
18
|
-
/* @__PURE__ */ jsx(ReactProvider, { runtime,
|
|
18
|
+
/* @__PURE__ */ jsx(ReactProvider, { runtime, siteVersion: null, forcePagesRouter, children: /* @__PURE__ */ jsx(MakeswiftPage, { ...props }) }),
|
|
19
19
|
{
|
|
20
20
|
container: document.body.appendChild(document.createElement("head"))
|
|
21
21
|
}
|
|
@@ -26,7 +26,7 @@ async function testMakeswiftPageRendering(props, { forcePagesRouter = false } =
|
|
|
26
26
|
const runtime = new ReactRuntime();
|
|
27
27
|
return await act(
|
|
28
28
|
async () => render(
|
|
29
|
-
/* @__PURE__ */ jsx(ReactProvider, { runtime,
|
|
29
|
+
/* @__PURE__ */ jsx(ReactProvider, { runtime, siteVersion: null, forcePagesRouter, children: /* @__PURE__ */ jsx(MakeswiftPage, { ...props }) }),
|
|
30
30
|
{
|
|
31
31
|
container: document.body.appendChild(document.createElement("div"))
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/testing/page-rendering.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\n\nimport '@testing-library/jest-dom'\nimport { act } from 'react-dom/test-utils'\nimport { render } from '@testing-library/react'\n\nimport { ReactRuntime } from '../../runtimes/react/react-runtime'\nimport { MakeswiftComponentType } from '../../components'\n\nimport { Page as MakeswiftPage } from '../components/page'\n\nimport { ReactProvider } from './react-provider'\n\nexport async function testMakeswiftPageHeadRendering(\n props: ComponentPropsWithoutRef<typeof MakeswiftPage>,\n { forcePagesRouter = false }: { forcePagesRouter?: boolean } = {},\n) {\n const runtime = new ReactRuntime()\n\n runtime.registerComponent(() => <></>, {\n type: MakeswiftComponentType.Root,\n label: 'Root',\n props: {},\n })\n\n return await act(async () =>\n render(\n <ReactProvider runtime={runtime}
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/testing/page-rendering.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\n\nimport '@testing-library/jest-dom'\nimport { act } from 'react-dom/test-utils'\nimport { render } from '@testing-library/react'\n\nimport { ReactRuntime } from '../../runtimes/react/react-runtime'\nimport { MakeswiftComponentType } from '../../components'\n\nimport { Page as MakeswiftPage } from '../components/page'\n\nimport { ReactProvider } from './react-provider'\n\nexport async function testMakeswiftPageHeadRendering(\n props: ComponentPropsWithoutRef<typeof MakeswiftPage>,\n { forcePagesRouter = false }: { forcePagesRouter?: boolean } = {},\n) {\n const runtime = new ReactRuntime()\n\n runtime.registerComponent(() => <></>, {\n type: MakeswiftComponentType.Root,\n label: 'Root',\n props: {},\n })\n\n return await act(async () =>\n render(\n <ReactProvider runtime={runtime} siteVersion={null} forcePagesRouter={forcePagesRouter}>\n <MakeswiftPage {...props} />\n </ReactProvider>,\n {\n container: document.body.appendChild(document.createElement('head')),\n },\n ),\n )\n}\n\nexport async function testMakeswiftPageRendering(\n props: ComponentPropsWithoutRef<typeof MakeswiftPage>,\n { forcePagesRouter = false }: { forcePagesRouter?: boolean } = {},\n) {\n const runtime = new ReactRuntime()\n\n return await act(async () =>\n render(\n <ReactProvider runtime={runtime} siteVersion={null} forcePagesRouter={forcePagesRouter}>\n <MakeswiftPage {...props} />\n </ReactProvider>,\n {\n container: document.body.appendChild(document.createElement('div')),\n },\n ),\n )\n}\n"],"mappings":"AAmBkC;AAjBlC,OAAO;AACP,SAAS,WAAW;AACpB,SAAS,cAAc;AAEvB,SAAS,oBAAoB;AAC7B,SAAS,8BAA8B;AAEvC,SAAS,QAAQ,qBAAqB;AAEtC,SAAS,qBAAqB;AAE9B,eAAsB,+BACpB,OACA,EAAE,mBAAmB,MAAM,IAAoC,CAAC,GAChE;AACA,QAAM,UAAU,IAAI,aAAa;AAEjC,UAAQ,kBAAkB,MAAM,gCAAE,GAAK;AAAA,IACrC,MAAM,uBAAuB;AAAA,IAC7B,OAAO;AAAA,IACP,OAAO,CAAC;AAAA,EACV,CAAC;AAED,SAAO,MAAM;AAAA,IAAI,YACf;AAAA,MACE,oBAAC,iBAAc,SAAkB,aAAa,MAAM,kBAClD,8BAAC,iBAAe,GAAG,OAAO,GAC5B;AAAA,MACA;AAAA,QACE,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,MAAM,CAAC;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACF;AAEA,eAAsB,2BACpB,OACA,EAAE,mBAAmB,MAAM,IAAoC,CAAC,GAChE;AACA,QAAM,UAAU,IAAI,aAAa;AAEjC,SAAO,MAAM;AAAA,IAAI,YACf;AAAA,MACE,oBAAC,iBAAc,SAAkB,aAAa,MAAM,kBAClD,8BAAC,iBAAe,GAAG,OAAO,GAC5B;AAAA,MACA;AAAA,QACE,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,KAAK,CAAC;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -5,10 +5,10 @@ import { NextRootStyleRegistry } from "../root-style-registry";
|
|
|
5
5
|
function ReactProvider({
|
|
6
6
|
children,
|
|
7
7
|
runtime,
|
|
8
|
-
|
|
8
|
+
siteVersion = null,
|
|
9
9
|
forcePagesRouter = false
|
|
10
10
|
}) {
|
|
11
|
-
return /* @__PURE__ */ jsx(FrameworkProvider, { forcePagesRouter, children: /* @__PURE__ */ jsx(RuntimeProvider, {
|
|
11
|
+
return /* @__PURE__ */ jsx(FrameworkProvider, { forcePagesRouter, children: /* @__PURE__ */ jsx(RuntimeProvider, { siteVersion, runtime, children: /* @__PURE__ */ jsx(NextRootStyleRegistry, { children }) }) });
|
|
12
12
|
}
|
|
13
13
|
export {
|
|
14
14
|
ReactProvider
|