diff --git a/arcjet-next/index.ts b/arcjet-next/index.ts
index 83db0df89..c6c19aaf9 100644
--- a/arcjet-next/index.ts
+++ b/arcjet-next/index.ts
@@ -84,7 +84,7 @@ export interface ArcjetNextRequest {
ip?: string;
- nextUrl?: NextRequest["nextUrl"];
+ nextUrl?: Partial<{ pathname: string, search: string }>;
}
export interface ArcjetNext {
diff --git a/examples/nextjs-13-pages-wrap/.eslintrc.json b/examples/nextjs-13-pages-wrap/.eslintrc.json
new file mode 100644
index 000000000..bffb357a7
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": "next/core-web-vitals"
+}
diff --git a/examples/nextjs-13-pages-wrap/.gitignore b/examples/nextjs-13-pages-wrap/.gitignore
new file mode 100644
index 000000000..fd3dbb571
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+.yarn/install-state.gz
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/examples/nextjs-13-pages-wrap/README.md b/examples/nextjs-13-pages-wrap/README.md
new file mode 100644
index 000000000..6e0cdb10d
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/README.md
@@ -0,0 +1,29 @@
+
+
+
+
+# Using `withArcjet` with Next.js 13 and the Pages Router
+
+This example shows how to use `withArcjet` in a Next.js [API
+Route](https://nextjs.org/docs/pages/building-your-application/routing/api-routes).
+
+## How to use
+
+1. From the root of the project, install the dependencies.
+
+ ```bash
+ npm ci
+ ```
+
+2. Enter this directory and start the dev server.
+
+ ```bash
+ cd examples/nextjs-13-pages-wrap
+ npm run dev
+ ```
+
+3. Visit `http://localhost:3000/api/arcjet`.
+4. Refresh the page to trigger the rate limit.
diff --git a/examples/nextjs-13-pages-wrap/next.config.js b/examples/nextjs-13-pages-wrap/next.config.js
new file mode 100644
index 000000000..a843cbee0
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/next.config.js
@@ -0,0 +1,6 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ reactStrictMode: true,
+}
+
+module.exports = nextConfig
diff --git a/examples/nextjs-13-pages-wrap/package.json b/examples/nextjs-13-pages-wrap/package.json
new file mode 100644
index 000000000..0e51e3220
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "nextjs-13-pages-wrap",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@arcjet/next": "*",
+ "react": "^18",
+ "react-dom": "^18",
+ "next": "13.5.6"
+ },
+ "devDependencies": {
+ "typescript": "^5",
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "autoprefixer": "^10.0.1",
+ "postcss": "^8",
+ "tailwindcss": "^3.3.0",
+ "eslint": "^8",
+ "eslint-config-next": "14.0.4"
+ }
+}
diff --git a/examples/nextjs-13-pages-wrap/pages/_app.tsx b/examples/nextjs-13-pages-wrap/pages/_app.tsx
new file mode 100644
index 000000000..021681f4d
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/pages/_app.tsx
@@ -0,0 +1,6 @@
+import '@/styles/globals.css'
+import type { AppProps } from 'next/app'
+
+export default function App({ Component, pageProps }: AppProps) {
+ return
+}
diff --git a/examples/nextjs-13-pages-wrap/pages/_document.tsx b/examples/nextjs-13-pages-wrap/pages/_document.tsx
new file mode 100644
index 000000000..54e8bf3e2
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/pages/_document.tsx
@@ -0,0 +1,13 @@
+import { Html, Head, Main, NextScript } from 'next/document'
+
+export default function Document() {
+ return (
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/nextjs-13-pages-wrap/pages/api/arcjet-edge.ts b/examples/nextjs-13-pages-wrap/pages/api/arcjet-edge.ts
new file mode 100644
index 000000000..99ff17a5b
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/pages/api/arcjet-edge.ts
@@ -0,0 +1,28 @@
+// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
+import arcjet, { rateLimit, withArcjet } from "@arcjet/next";
+import { NextRequest, NextResponse } from "next/server";
+
+export const config = {
+ runtime: "edge",
+};
+
+const aj = arcjet({
+ // mark
+ key: "ajkey_yourkey",
+ rules: [
+ rateLimit({
+ mode: "LIVE",
+ // Limiting by ip.src is the default if not specified
+ //characteristics: ["ip.src"],
+ window: "1m",
+ max: 1,
+ timeout: "10m",
+ }),
+ ],
+});
+
+export default withArcjet(aj, async function handler(req: NextRequest) {
+ return NextResponse.json({
+ message: "Hello world",
+ });
+});
diff --git a/examples/nextjs-13-pages-wrap/pages/api/arcjet.ts b/examples/nextjs-13-pages-wrap/pages/api/arcjet.ts
new file mode 100644
index 000000000..1fa947026
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/pages/api/arcjet.ts
@@ -0,0 +1,25 @@
+// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
+import arcjet, { rateLimit, withArcjet } from "@arcjet/next";
+import type { NextApiRequest, NextApiResponse } from "next";
+
+const aj = arcjet({
+ // mark
+ key: "ajkey_yourkey",
+ rules: [
+ rateLimit({
+ mode: "LIVE",
+ // Limiting by ip.src is the default if not specified
+ //characteristics: ["ip.src"],
+ window: "1m",
+ max: 1,
+ timeout: "10m",
+ }),
+ ],
+});
+
+export default withArcjet(
+ aj,
+ async function handler(req: NextApiRequest, res: NextApiResponse) {
+ res.status(200).json({ name: "Hello world" });
+ },
+);
diff --git a/examples/nextjs-13-pages-wrap/pages/index.tsx b/examples/nextjs-13-pages-wrap/pages/index.tsx
new file mode 100644
index 000000000..000a75138
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/pages/index.tsx
@@ -0,0 +1,118 @@
+import Image from 'next/image'
+import { Inter } from 'next/font/google'
+
+const inter = Inter({ subsets: ['latin'] })
+
+export default function Home() {
+ return (
+
+
+
+ Get started by editing
+ pages/index.tsx
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/nextjs-13-pages-wrap/postcss.config.js b/examples/nextjs-13-pages-wrap/postcss.config.js
new file mode 100644
index 000000000..33ad091d2
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/examples/nextjs-13-pages-wrap/public/favicon.ico b/examples/nextjs-13-pages-wrap/public/favicon.ico
new file mode 100644
index 000000000..718d6fea4
Binary files /dev/null and b/examples/nextjs-13-pages-wrap/public/favicon.ico differ
diff --git a/examples/nextjs-13-pages-wrap/public/next.svg b/examples/nextjs-13-pages-wrap/public/next.svg
new file mode 100644
index 000000000..5174b28c5
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/public/next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/examples/nextjs-13-pages-wrap/public/vercel.svg b/examples/nextjs-13-pages-wrap/public/vercel.svg
new file mode 100644
index 000000000..d2f842227
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/examples/nextjs-13-pages-wrap/styles/globals.css b/examples/nextjs-13-pages-wrap/styles/globals.css
new file mode 100644
index 000000000..fd81e8858
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/styles/globals.css
@@ -0,0 +1,27 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+:root {
+ --foreground-rgb: 0, 0, 0;
+ --background-start-rgb: 214, 219, 220;
+ --background-end-rgb: 255, 255, 255;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --foreground-rgb: 255, 255, 255;
+ --background-start-rgb: 0, 0, 0;
+ --background-end-rgb: 0, 0, 0;
+ }
+}
+
+body {
+ color: rgb(var(--foreground-rgb));
+ background: linear-gradient(
+ to bottom,
+ transparent,
+ rgb(var(--background-end-rgb))
+ )
+ rgb(var(--background-start-rgb));
+}
diff --git a/examples/nextjs-13-pages-wrap/tailwind.config.ts b/examples/nextjs-13-pages-wrap/tailwind.config.ts
new file mode 100644
index 000000000..c7ead8046
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/tailwind.config.ts
@@ -0,0 +1,20 @@
+import type { Config } from 'tailwindcss'
+
+const config: Config = {
+ content: [
+ './pages/**/*.{js,ts,jsx,tsx,mdx}',
+ './components/**/*.{js,ts,jsx,tsx,mdx}',
+ './app/**/*.{js,ts,jsx,tsx,mdx}',
+ ],
+ theme: {
+ extend: {
+ backgroundImage: {
+ 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
+ 'gradient-conic':
+ 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
+ },
+ },
+ },
+ plugins: [],
+}
+export default config
diff --git a/examples/nextjs-13-pages-wrap/tsconfig.json b/examples/nextjs-13-pages-wrap/tsconfig.json
new file mode 100644
index 000000000..670224f3e
--- /dev/null
+++ b/examples/nextjs-13-pages-wrap/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "paths": {
+ "@/*": ["./*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/examples/nextjs-14-app-dir-rl/middleware.ts b/examples/nextjs-14-app-dir-rl/middleware.ts
deleted file mode 100644
index 08dc018f0..000000000
--- a/examples/nextjs-14-app-dir-rl/middleware.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { createMiddleware, rateLimit } from "@arcjet/next";
-export const config = {
- // matcher tells Next.js which routes to run the middleware on
- matcher: ["/"],
-};
-const middleware = createMiddleware({
- key: "ajkey_yourkey",
- rules: [],
-});
-export default middleware;
diff --git a/package-lock.json b/package-lock.json
index a74b9de0d..8afc3d82d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -81,6 +81,24 @@
"node": ">=18"
}
},
+ "arcjet-next/node_modules/@connectrpc/connect": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.2.0.tgz",
+ "integrity": "sha512-kHF30xAlXF2Y7S1I7XN/D3psKLfjxitgNRmF093KNP+cE9yAnqDAGop6aby3Z5k4XQw2ebjeX4E41db7R3FzaQ==",
+ "peer": true,
+ "peerDependencies": {
+ "@bufbuild/protobuf": "^1.4.2"
+ }
+ },
+ "arcjet-next/node_modules/@connectrpc/connect-web": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-1.2.0.tgz",
+ "integrity": "sha512-vjFKTP/AzSnC8JvkGKRgpggZIB0v+Lv7U+/Tb/pRNGZI0WSElhGDXWgIn3xfcSNQWi079m45c5MlikszzIRsYg==",
+ "peerDependencies": {
+ "@bufbuild/protobuf": "^1.4.2",
+ "@connectrpc/connect": "1.2.0"
+ }
+ },
"eslint-config": {
"name": "@arcjet/eslint-config",
"version": "1.0.0-alpha.5",
@@ -102,6 +120,220 @@
"eslint": "^8"
}
},
+ "examples/nextjs-13-pages-wrap": {
+ "version": "0.1.0",
+ "dependencies": {
+ "@arcjet/next": "*",
+ "next": "13.5.6",
+ "react": "^18",
+ "react-dom": "^18"
+ },
+ "devDependencies": {
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "autoprefixer": "^10.0.1",
+ "eslint": "^8",
+ "eslint-config-next": "14.0.4",
+ "postcss": "^8",
+ "tailwindcss": "^3.3.0",
+ "typescript": "^5"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/env": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz",
+ "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw=="
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-darwin-arm64": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz",
+ "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-darwin-x64": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz",
+ "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz",
+ "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-linux-arm64-musl": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz",
+ "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-linux-x64-gnu": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz",
+ "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-linux-x64-musl": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz",
+ "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz",
+ "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-win32-ia32-msvc": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz",
+ "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@next/swc-win32-x64-msvc": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz",
+ "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/@types/node": {
+ "version": "20.10.4",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz",
+ "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "examples/nextjs-13-pages-wrap/node_modules/next": {
+ "version": "13.5.6",
+ "resolved": "https://registry.npmjs.org/next/-/next-13.5.6.tgz",
+ "integrity": "sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==",
+ "dependencies": {
+ "@next/env": "13.5.6",
+ "@swc/helpers": "0.5.2",
+ "busboy": "1.6.0",
+ "caniuse-lite": "^1.0.30001406",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.1",
+ "watchpack": "2.4.0"
+ },
+ "bin": {
+ "next": "dist/bin/next"
+ },
+ "engines": {
+ "node": ">=16.14.0"
+ },
+ "optionalDependencies": {
+ "@next/swc-darwin-arm64": "13.5.6",
+ "@next/swc-darwin-x64": "13.5.6",
+ "@next/swc-linux-arm64-gnu": "13.5.6",
+ "@next/swc-linux-arm64-musl": "13.5.6",
+ "@next/swc-linux-x64-gnu": "13.5.6",
+ "@next/swc-linux-x64-musl": "13.5.6",
+ "@next/swc-win32-arm64-msvc": "13.5.6",
+ "@next/swc-win32-ia32-msvc": "13.5.6",
+ "@next/swc-win32-x64-msvc": "13.5.6"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "sass": "^1.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
"examples/nextjs-14-app-dir-rl": {
"version": "0.1.0",
"dependencies": {
@@ -352,33 +584,6 @@
}
}
},
- "examples/nextjs-14-app-dir-rl/node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
"examples/nextjs-14-app-dir-validate-email": {
"version": "0.1.0",
"dependencies": {
@@ -1203,23 +1408,6 @@
"resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.6.0.tgz",
"integrity": "sha512-hp19vSFgNw3wBBcVBx5qo5pufCqjaJ0Cfk5H/pfjNOfNWU+4/w0QVOmfAOZNRrNWRrVuaJWxcN8P2vhOkkzbBQ=="
},
- "node_modules/@connectrpc/connect": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.2.0.tgz",
- "integrity": "sha512-kHF30xAlXF2Y7S1I7XN/D3psKLfjxitgNRmF093KNP+cE9yAnqDAGop6aby3Z5k4XQw2ebjeX4E41db7R3FzaQ==",
- "peerDependencies": {
- "@bufbuild/protobuf": "^1.4.2"
- }
- },
- "node_modules/@connectrpc/connect-web": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-1.2.0.tgz",
- "integrity": "sha512-vjFKTP/AzSnC8JvkGKRgpggZIB0v+Lv7U+/Tb/pRNGZI0WSElhGDXWgIn3xfcSNQWi079m45c5MlikszzIRsYg==",
- "peerDependencies": {
- "@bufbuild/protobuf": "^1.4.2",
- "@connectrpc/connect": "1.2.0"
- }
- },
"node_modules/@edge-runtime/jest-environment": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/@edge-runtime/jest-environment/-/jest-environment-2.3.7.tgz",
@@ -6367,32 +6555,9 @@
}
}
},
- "node_modules/next/node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
+ "node_modules/nextjs-13-pages-wrap": {
+ "resolved": "examples/nextjs-13-pages-wrap",
+ "link": true
},
"node_modules/nextjs-14-app-dir-rl": {
"resolved": "examples/nextjs-14-app-dir-rl",
@@ -6807,10 +6972,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.32",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
- "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
- "dev": true,
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"funding": [
{
"type": "opencollective",
@@ -6826,7 +6990,7 @@
}
],
"dependencies": {
- "nanoid": "^3.3.7",
+ "nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -8281,6 +8445,14 @@
"node": ">=18"
}
},
+ "protocol/node_modules/@connectrpc/connect": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.2.0.tgz",
+ "integrity": "sha512-kHF30xAlXF2Y7S1I7XN/D3psKLfjxitgNRmF093KNP+cE9yAnqDAGop6aby3Z5k4XQw2ebjeX4E41db7R3FzaQ==",
+ "peerDependencies": {
+ "@bufbuild/protobuf": "^1.4.2"
+ }
+ },
"rollup-config": {
"name": "@arcjet/rollup-config",
"version": "1.0.0-alpha.5",