diff --git a/.changeset/release-v2 b/.changeset/release-v2 new file mode 100755 index 000000000..339e200a7 --- /dev/null +++ b/.changeset/release-v2 @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +pnpm build +sed -i.bak -e '3,6d' .changeset/config.json + +sed -i 's/@opennextjs\/aws/open-next/' .changeset/config.json +#cp packages/open-next/package.json packages/open-next/dist/package.json +cp README.md packages/open-next/README.md +#sed -i.bak -e '2,5d' packages/open-next/dist/package.json +pnpm changeset publish +cp .changeset/config.json.bak .changeset/config.json diff --git a/.github/workflows/v2-release.yml b/.github/workflows/v2-release.yml new file mode 100644 index 000000000..3a3112e51 --- /dev/null +++ b/.github/workflows/v2-release.yml @@ -0,0 +1,28 @@ +name: v2-release + +on: workflow_dispatch + +jobs: + release: + name: Pre-release + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + # https://github.com/actions/checkout + uses: actions/checkout@v4 + + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v4 + with: + registry-url: "https://registry.npmjs.org" + + - uses: ./.github/actions/pnpm-setup + + - name: Install dependencies + run: pnpm install + + + - name: Publish Pre-release to npm + run: pnpm release-v2 + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file diff --git a/package.json b/package.json index dcc13a820..5a6054e3e 100644 --- a/package.json +++ b/package.json @@ -16,18 +16,18 @@ "e2e:test": "turbo run e2e:test", "version": "./.changeset/version", "release": "./.changeset/release", - "release-snapshot": "./.changeset/snapshot" - + "release-snapshot": "./.changeset/snapshot", + "release-v2": "./.changeset/release-v2" }, "devDependencies": { "@changesets/changelog-github": "^0.4.4", "@changesets/cli": "^2.22.0", "@sladg/eslint-config-base": "1.4.1", "eslint": "^8.47.0", - "turbo": "1.10.12" + "turbo": "1.10.12" }, "engines": { "node": ">=16", "pnpm": ">=8" } -} +} \ No newline at end of file diff --git a/packages/open-next/package.json b/packages/open-next/package.json index af0a741a9..ee0fed89c 100644 --- a/packages/open-next/package.json +++ b/packages/open-next/package.json @@ -3,7 +3,7 @@ "access": "public" }, "name": "open-next", - "version": "2.3.9", + "version": "2.3.10", "bin": { "open-next": "./dist/index.js" }, @@ -58,4 +58,4 @@ "type": "git", "url": "git+https://github.com/sst/open-next.git" } -} +} \ No newline at end of file diff --git a/packages/open-next/src/adapters/routing/middleware.ts b/packages/open-next/src/adapters/routing/middleware.ts index 85eb02b3b..0e342b917 100644 --- a/packages/open-next/src/adapters/routing/middleware.ts +++ b/packages/open-next/src/adapters/routing/middleware.ts @@ -1,6 +1,6 @@ import path from "node:path"; -import { NEXT_DIR, NextConfig } from "../config/index.js"; +import { NEXT_DIR, NextConfig, PrerenderManifest } from "../config/index.js"; import { InternalEvent, InternalResult } from "../event-mapper.js"; import { IncomingMessage } from "../http/request.js"; import { ServerlessResponse } from "../http/response.js"; @@ -46,7 +46,12 @@ export async function handleMiddleware( const hasMatch = middleMatch.some((r) => r.test(rawPath)); if (!hasMatch) return internalEvent; // We bypass the middleware if the request is internal - if (internalEvent.headers["x-isr"]) return internalEvent; + if ( + internalEvent.headers["x-isr"] && + internalEvent.headers["x-prerender-revalidate"] === + PrerenderManifest.preview.previewModeId + ) + return internalEvent; const req = new IncomingMessage(internalEvent); const res = new ServerlessResponse({ diff --git a/packages/open-next/src/adapters/types/next-types.ts b/packages/open-next/src/adapters/types/next-types.ts index 99312216f..a6191fbcc 100644 --- a/packages/open-next/src/adapters/types/next-types.ts +++ b/packages/open-next/src/adapters/types/next-types.ts @@ -142,6 +142,9 @@ export interface PrerenderManifest { dataRouteRegex: string; }; }; + preview: { + previewModeId: string; + }; } export type Options = {