fix: use latest sdks and proxy both request and op1.js in public
This commit is contained in:
@@ -1,67 +1,7 @@
|
||||
import { createHash } from 'node:crypto';
|
||||
import { getClientIpFromHeaders } from '@openpanel/common/server/get-client-ip';
|
||||
// adding .js next/script import fixes an issues
|
||||
// with esm and nextjs (when using pages dir)
|
||||
import { NextResponse } from 'next/server.js';
|
||||
import {
|
||||
createNextRouteHandler,
|
||||
createScriptHandler,
|
||||
} from '@openpanel/nextjs/server';
|
||||
|
||||
type CreateNextRouteHandlerOptions = {
|
||||
apiUrl?: string;
|
||||
};
|
||||
|
||||
function createNextRouteHandler(options: CreateNextRouteHandlerOptions) {
|
||||
return async function POST(req: Request) {
|
||||
const apiUrl = options.apiUrl ?? 'https://api.openpanel.dev';
|
||||
const headers = new Headers(req.headers);
|
||||
const clientIp = getClientIpFromHeaders(headers);
|
||||
console.log('debug', {
|
||||
clientIp,
|
||||
userAgent: req.headers.get('user-agent'),
|
||||
});
|
||||
try {
|
||||
const res = await fetch(`${apiUrl}/track`, {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: JSON.stringify(await req.json()),
|
||||
});
|
||||
return NextResponse.json(await res.text(), { status: res.status });
|
||||
} catch (e) {
|
||||
return NextResponse.json(e);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function createScriptHandler() {
|
||||
return async function GET(req: Request) {
|
||||
if (!req.url.endsWith('op1.js')) {
|
||||
return NextResponse.json({ error: 'Not found' }, { status: 404 });
|
||||
}
|
||||
|
||||
const scriptUrl = 'https://openpanel.dev/op1.js';
|
||||
try {
|
||||
const res = await fetch(scriptUrl, {
|
||||
next: { revalidate: 86400 },
|
||||
});
|
||||
const text = await res.text();
|
||||
const etag = `"${createHash('md5').update(text).digest('hex')}"`;
|
||||
return new NextResponse(text, {
|
||||
headers: {
|
||||
'Content-Type': 'text/javascript',
|
||||
'Cache-Control':
|
||||
'public, max-age=86400, stale-while-revalidate=86400',
|
||||
ETag: etag,
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: 'Failed to fetch script',
|
||||
message: e instanceof Error ? e.message : String(e),
|
||||
},
|
||||
{ status: 500 },
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export const POST = createNextRouteHandler({});
|
||||
export const POST = createNextRouteHandler();
|
||||
export const GET = createScriptHandler();
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"@hyperdx/node-opentelemetry": "^0.8.1",
|
||||
"@number-flow/react": "0.3.5",
|
||||
"@openpanel/common": "workspace:*",
|
||||
"@openpanel/nextjs": "^1.0.5",
|
||||
"@openpanel/nextjs": "^1.0.12",
|
||||
"@openpanel/payments": "workspace:^",
|
||||
"@openpanel/sdk-info": "workspace:^",
|
||||
"@openstatus/react": "0.0.3",
|
||||
|
||||
83
pnpm-lock.yaml
generated
83
pnpm-lock.yaml
generated
@@ -275,8 +275,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/common
|
||||
'@openpanel/nextjs':
|
||||
specifier: ^1.0.5
|
||||
version: 1.0.5(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
specifier: ^1.0.12
|
||||
version: 1.0.12(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
'@openpanel/payments':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/payments
|
||||
@@ -312,22 +312,22 @@ importers:
|
||||
version: 11.18.2(@emotion/is-prop-valid@0.8.8)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
fumadocs-core:
|
||||
specifier: 14.1.1
|
||||
version: 14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
version: 14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
fumadocs-mdx:
|
||||
specifier: 11.1.1
|
||||
version: 11.1.1(acorn@8.15.0)(fumadocs-core@14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
|
||||
version: 11.1.1(acorn@8.15.0)(fumadocs-core@14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
|
||||
fumadocs-ui:
|
||||
specifier: 14.1.1
|
||||
version: 14.1.1(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
version: 14.1.1(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
geist:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
|
||||
version: 1.3.1(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
|
||||
lucide-react:
|
||||
specifier: 0.454.0
|
||||
version: 0.454.0(react@19.1.1)
|
||||
next:
|
||||
specifier: 15.0.3
|
||||
version: 15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
version: 15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
react:
|
||||
specifier: 'catalog:'
|
||||
version: 19.1.1
|
||||
@@ -4797,12 +4797,12 @@ packages:
|
||||
resolution: {integrity: sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==}
|
||||
engines: {node: '>=8.0'}
|
||||
|
||||
'@openpanel/nextjs@1.0.5':
|
||||
resolution: {integrity: sha512-+Zdrl5fC8Iczub/pVvX8Xp9q6mQvApNXGenCEkdiAZk9nT7xpaLfzkdHnwx7XHxp5H50zdwgqWDGiwLMqRWjKA==}
|
||||
'@openpanel/nextjs@1.0.12':
|
||||
resolution: {integrity: sha512-uGNTsjQ37/rN07tGd2joUkXXWIWRFTNlMYq7P7H1hyQ4xnifRC4kZqKS4ocFWoO4yg6qfoDjCHgx15C7j6BZZQ==}
|
||||
peerDependencies:
|
||||
next: ^12.0.0 || ^13.0.0 || ^14.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
|
||||
'@openpanel/sdk@1.0.0':
|
||||
resolution: {integrity: sha512-FNmmfjdXoC/VHEjA+WkrQ4lyM5lxEmV7xDd57uj4E+lIS0sU3DLG2mV/dpS8AscnZbUvuMn3kPhiLCqYzuv/gg==}
|
||||
@@ -4810,6 +4810,9 @@ packages:
|
||||
'@openpanel/web@1.0.1':
|
||||
resolution: {integrity: sha512-cVZ7Kr9SicczJ/RDIfEtZs8+1iGDzwkabVA/j3NqSl8VSucsC8m1+LVbjmCDzCJNnK4yVn6tEcc9PJRi2rtllw==}
|
||||
|
||||
'@openpanel/web@1.0.2':
|
||||
resolution: {integrity: sha512-vU9Z9Kc0dxyE4abTi9KAu2zDE2/z4RDcHDLk9NwNRgrZGDlYereOatwKNnvrwfU96066bjfOrSd+vbjmkmsOoA==}
|
||||
|
||||
'@openstatus/react@0.0.3':
|
||||
resolution: {integrity: sha512-uDiegz7e3H67pG8lTT+op+6w5keTT7XpcENrREaqlWl5j53TYyO8nheOG1PeNw2/Qgd5KaGeRJJFn1crhTUSYw==}
|
||||
peerDependencies:
|
||||
@@ -19907,10 +19910,10 @@ snapshots:
|
||||
|
||||
'@oozcitak/util@8.3.8': {}
|
||||
|
||||
'@openpanel/nextjs@1.0.5(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
|
||||
'@openpanel/nextjs@1.0.12(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
|
||||
dependencies:
|
||||
'@openpanel/web': 1.0.1
|
||||
next: 15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
'@openpanel/web': 1.0.2
|
||||
next: 15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
react: 19.1.1
|
||||
react-dom: 19.1.1(react@19.1.1)
|
||||
|
||||
@@ -19920,6 +19923,10 @@ snapshots:
|
||||
dependencies:
|
||||
'@openpanel/sdk': 1.0.0
|
||||
|
||||
'@openpanel/web@1.0.2':
|
||||
dependencies:
|
||||
'@openpanel/sdk': 1.0.0
|
||||
|
||||
'@openstatus/react@0.0.3(react@19.1.1)':
|
||||
dependencies:
|
||||
react: 19.1.1
|
||||
@@ -27760,7 +27767,7 @@ snapshots:
|
||||
fsevents@2.3.3:
|
||||
optional: true
|
||||
|
||||
fumadocs-core@14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
|
||||
fumadocs-core@14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
|
||||
dependencies:
|
||||
'@formatjs/intl-localematcher': 0.5.6
|
||||
'@orama/orama': 3.0.1
|
||||
@@ -27778,14 +27785,14 @@ snapshots:
|
||||
unist-util-visit: 5.0.0
|
||||
optionalDependencies:
|
||||
algoliasearch: 4.24.0
|
||||
next: 15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
next: 15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
react: 19.1.1
|
||||
react-dom: 19.1.1(react@19.1.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
- supports-color
|
||||
|
||||
fumadocs-mdx@11.1.1(acorn@8.15.0)(fumadocs-core@14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)):
|
||||
fumadocs-mdx@11.1.1(acorn@8.15.0)(fumadocs-core@14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)):
|
||||
dependencies:
|
||||
'@mdx-js/mdx': 3.1.0(acorn@8.15.0)
|
||||
chokidar: 4.0.1
|
||||
@@ -27793,16 +27800,16 @@ snapshots:
|
||||
esbuild: 0.24.0
|
||||
estree-util-value-to-estree: 3.1.2
|
||||
fast-glob: 3.3.2
|
||||
fumadocs-core: 14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
fumadocs-core: 14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
gray-matter: 4.0.3
|
||||
micromatch: 4.0.8
|
||||
next: 15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
next: 15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
zod: 3.24.2
|
||||
transitivePeerDependencies:
|
||||
- acorn
|
||||
- supports-color
|
||||
|
||||
fumadocs-ui@14.1.1(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
|
||||
fumadocs-ui@14.1.1(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
|
||||
dependencies:
|
||||
'@radix-ui/react-accordion': 1.2.3(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
'@radix-ui/react-collapsible': 1.1.1(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
@@ -27816,8 +27823,8 @@ snapshots:
|
||||
'@tailwindcss/typography': 0.5.15(tailwindcss@3.4.17)
|
||||
class-variance-authority: 0.7.1
|
||||
cmdk: 1.0.0(@types/react-dom@19.1.8(@types/react@19.1.11))(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
fumadocs-core: 14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
next: 15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
fumadocs-core: 14.1.1(@types/react@19.1.11)(algoliasearch@4.24.0)(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
next: 15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
next-themes: 0.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
react: 19.1.1
|
||||
react-dom: 19.1.1(react@19.1.1)
|
||||
@@ -27865,9 +27872,9 @@ snapshots:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
geist@1.3.1(next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)):
|
||||
geist@1.3.1(next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)):
|
||||
dependencies:
|
||||
next: 15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
next: 15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
|
||||
|
||||
generic-pool@3.9.0: {}
|
||||
|
||||
@@ -30292,6 +30299,32 @@ snapshots:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
|
||||
next@15.0.3(@opentelemetry/api@1.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
|
||||
dependencies:
|
||||
'@next/env': 15.0.3
|
||||
'@swc/counter': 0.1.3
|
||||
'@swc/helpers': 0.5.13
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001674
|
||||
postcss: 8.4.31
|
||||
react: 19.1.1
|
||||
react-dom: 19.1.1(react@19.1.1)
|
||||
styled-jsx: 5.1.6(react@19.1.1)
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 15.0.3
|
||||
'@next/swc-darwin-x64': 15.0.3
|
||||
'@next/swc-linux-arm64-gnu': 15.0.3
|
||||
'@next/swc-linux-arm64-musl': 15.0.3
|
||||
'@next/swc-linux-x64-gnu': 15.0.3
|
||||
'@next/swc-linux-x64-musl': 15.0.3
|
||||
'@next/swc-win32-arm64-msvc': 15.0.3
|
||||
'@next/swc-win32-x64-msvc': 15.0.3
|
||||
'@opentelemetry/api': 1.8.0
|
||||
sharp: 0.33.5
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
|
||||
next@15.0.3(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
|
||||
dependencies:
|
||||
'@next/env': 15.0.3
|
||||
|
||||
Reference in New Issue
Block a user